Use labels instead of constants for HRAM

Use explicit ldh instruction to access HRAM locations, don't rely on optimizing ld
This commit is contained in:
Rangi
2018-08-25 14:28:22 -04:00
parent 376c64468b
commit eb1e3636bb
243 changed files with 4706 additions and 4661 deletions

View File

@@ -1,51 +1,51 @@
SaveMenu_CopyTilemapAtOnce:
ld a, [hCGB]
ldh a, [hCGB]
and a
jp z, WaitBGMap
; The following is a modified version of CopyTilemapAtOnce.
ld a, [hBGMapMode]
ldh a, [hBGMapMode]
push af
xor a
ld [hBGMapMode], a
ld a, [hMapAnims]
ldh [hBGMapMode], a
ldh a, [hMapAnims]
push af
xor a
ld [hMapAnims], a
ldh [hMapAnims], a
.WaitLY:
ld a, [rLY]
ldh a, [rLY]
cp $60
jr c, .WaitLY
di
ld a, BANK(vBGMap2)
ld [rVBK], a
ldh [rVBK], a
hlcoord 0, 0, wAttrMap
call .CopyTilemapAtOnce
ld a, BANK(vBGMap0)
ld [rVBK], a
ldh [rVBK], a
hlcoord 0, 0
call .CopyTilemapAtOnce
.WaitLY2:
ld a, [rLY]
ldh a, [rLY]
cp $60
jr c, .WaitLY2
ei
pop af
ld [hMapAnims], a
ldh [hMapAnims], a
pop af
ld [hBGMapMode], a
ldh [hBGMapMode], a
ret
.CopyTilemapAtOnce:
ld [hSPBuffer], sp ; $ffd9
ld sp, hl
ld a, [hBGMapAddress + 1]
ldh a, [hBGMapAddress + 1]
ld h, a
ld l, 0
ld a, SCREEN_HEIGHT
ld [hTilesPerCycle], a
ldh [hTilesPerCycle], a
ld b, 1 << 1
ld c, LOW(rSTAT)
@@ -64,14 +64,14 @@ endr
ld de, BG_MAP_WIDTH - SCREEN_WIDTH
add hl, de
ld a, [hTilesPerCycle]
ldh a, [hTilesPerCycle]
dec a
ld [hTilesPerCycle], a
ldh [hTilesPerCycle], a
jr nz, .loop
ld a, [hSPBuffer]
ldh a, [hSPBuffer]
ld l, a
ld a, [hSPBuffer + 1]
ldh a, [hSPBuffer + 1]
ld h, a
ld sp, hl
ret