summaryrefslogtreecommitdiff
path: root/home/vcopy.asm
diff options
context:
space:
mode:
Diffstat (limited to 'home/vcopy.asm')
-rw-r--r--home/vcopy.asm66
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