diff options
Diffstat (limited to 'home/vcopy.asm')
-rw-r--r-- | home/vcopy.asm | 66 |
1 files changed, 20 insertions, 46 deletions
diff --git a/home/vcopy.asm b/home/vcopy.asm index 458fa610..9b6efb3a 100644 --- a/home/vcopy.asm +++ b/home/vcopy.asm @@ -123,11 +123,7 @@ AutoBgMapTransfer:: ldh a, [hAutoBGTransferEnabled] and a ret z - ld hl, sp + 0 - ld a, h - ldh [hSPTemp], a - ld a, l - ldh [hSPTemp + 1], a ; save stack pinter + ld [hSPTemp], sp ; save stack pointer ldh a, [hAutoBGTransferPortion] and a jr z, .transferTopThird @@ -193,9 +189,9 @@ TransferBgRows:: jr nz, TransferBgRows ldh a, [hSPTemp] - ld h, a - ldh a, [hSPTemp + 1] ld l, a + ldh a, [hSPTemp + 1] + ld h, a ld sp, hl ret @@ -205,11 +201,7 @@ VBlankCopyBgMap:: ldh a, [hVBlankCopyBGSource] ; doubles as enabling byte and a ret z - ld hl, sp + 0 - ld a, h - ldh [hSPTemp], a - ld a, l - ldh [hSPTemp + 1], a ; save stack pointer + ld [hSPTemp], sp ; save stack pointer ldh a, [hVBlankCopyBGSource] ld l, a ldh a, [hVBlankCopyBGSource + 1] @@ -238,11 +230,7 @@ VBlankCopyDouble:: and a ret z - ld hl, sp + 0 - ld a, h - ldh [hSPTemp], a - ld a, l - ldh [hSPTemp + 1], a + ld [hSPTemp], sp ; save stack pointer ldh a, [hVBlankCopyDoubleSource] ld l, a @@ -285,21 +273,14 @@ VBlankCopyDouble:: dec b jr nz, .loop - ld a, l - ldh [hVBlankCopyDoubleDest], a - ld a, h - ldh [hVBlankCopyDoubleDest + 1], a - - ld hl, sp + 0 - ld a, l - ldh [hVBlankCopyDoubleSource], a - ld a, h - ldh [hVBlankCopyDoubleSource + 1], a + ld [hVBlankCopyDoubleSource], sp + ld sp, hl ; load destination into sp to save time with ld [$xxxx], sp + ld [hVBlankCopyDoubleDest], sp ldh a, [hSPTemp] - ld h, a - ldh a, [hSPTemp + 1] ld l, a + ldh a, [hSPTemp + 1] + ld h, a ld sp, hl ret @@ -316,11 +297,7 @@ VBlankCopy:: and a ret z - ld hl, sp + 0 - ld a, h - ldh [hSPTemp], a - ld a, l - ldh [hSPTemp + 1], a + ld [hSPTemp], sp ldh a, [hVBlankCopySource] ld l, a @@ -355,21 +332,14 @@ VBlankCopy:: dec b jr nz, .loop - ld a, l - ldh [hVBlankCopyDest], a - ld a, h - ldh [hVBlankCopyDest + 1], a - - ld hl, sp + 0 - ld a, l - ldh [hVBlankCopySource], a - ld a, h - ldh [hVBlankCopySource + 1], a + ld [hVBlankCopySource], sp + ld sp, hl + ld [hVBlankCopyDest], sp ldh a, [hSPTemp] - ld h, a - ldh a, [hSPTemp + 1] ld l, a + ldh a, [hSPTemp + 1] + ld h, a ld sp, hl ret @@ -383,6 +353,10 @@ UpdateMovingBgTiles:: and a ret z ; no animations if indoors (or if a menu set this to 0) + ldh a, [rLY] + cp $90 ; check if not in vblank period??? (maybe if vblank is too long) + ret c + ldh a, [hMovingBGTilesCounter1] inc a ldh [hMovingBGTilesCounter1], a |