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 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