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 93c035eb..3b26cf1d 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 pointer + ld [hSPTemp], sp ; save stack pointer ldh a, [hAutoBGTransferPortion] and a jr z, .transferTopThird @@ -191,9 +187,9 @@ ENDR 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 @@ -203,11 +199,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] @@ -236,11 +228,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 @@ -282,21 +270,14 @@ ENDR 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 @@ -313,11 +294,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 @@ -351,21 +328,14 @@ ENDR 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 @@ -379,6 +349,10 @@ UpdateMovingBgTiles:: and a ret z + 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 |