summaryrefslogtreecommitdiff
path: root/engine
diff options
context:
space:
mode:
Diffstat (limited to 'engine')
-rwxr-xr-xengine/battle/14.asm2
-rwxr-xr-xengine/battle/core.asm8
-rwxr-xr-xengine/cable_club.asm2
-rwxr-xr-xengine/evolution.asm2
-rwxr-xr-xengine/evos_moves.asm4
-rwxr-xr-xengine/hall_of_fame.asm2
-rwxr-xr-xengine/hidden_object_functions18.asm2
-rwxr-xr-xengine/hidden_object_functions3.asm27
-rwxr-xr-xengine/hidden_object_functions7.asm6
-rwxr-xr-xengine/in_game_trades.asm2
-rw-r--r--engine/menu/bills_pc.asm2
-rwxr-xr-xengine/menu/league_pc.asm6
-rwxr-xr-xengine/menu/pokedex.asm6
-rwxr-xr-xengine/menu/start_sub_menus.asm6
-rwxr-xr-xengine/menu/status_screen.asm12
-rwxr-xr-xengine/oak_speech.asm2
-rwxr-xr-xengine/overworld/card_key.asm66
-rwxr-xr-xengine/overworld/cut.asm4
-rwxr-xr-xengine/overworld/elevator.asm2
-rwxr-xr-xengine/overworld/hidden_objects.asm110
-rwxr-xr-xengine/overworld/npc_movement.asm13
-rwxr-xr-xengine/play_time.asm26
-rwxr-xr-xengine/predefs.asm8
-rwxr-xr-xengine/save.asm192
-rwxr-xr-xengine/titlescreen.asm2
-rwxr-xr-xengine/town_map.asm41
-rwxr-xr-xengine/trade.asm2
27 files changed, 284 insertions, 273 deletions
diff --git a/engine/battle/14.asm b/engine/battle/14.asm
index 530032a0..18aaa5e1 100755
--- a/engine/battle/14.asm
+++ b/engine/battle/14.asm
@@ -1,5 +1,5 @@
Func_525af: ; 525af (14:65af)
- ld a, [$ffd7]
+ ld a, [hTilesetType]
ld [wd0d4], a
xor a
ld [wcd6a], a
diff --git a/engine/battle/core.asm b/engine/battle/core.asm
index 26465b8f..7b1c1d12 100755
--- a/engine/battle/core.asm
+++ b/engine/battle/core.asm
@@ -136,7 +136,7 @@ SlidePlayerAndEnemySilhouettesOnScreen: ; 3c04c (f:404c)
ld [hVBlankWY], a
ld [rWY], a
xor a
- ld [$ffd7], a
+ ld [hTilesetType], a
ld [hVBlankSCY], a
dec a
ld [wUpdateSpritesEnabled], a
@@ -1015,7 +1015,7 @@ TrainerBattleVictory: ; 3c696 (f:4696)
call ScrollTrainerPicAfterBattle
ld c, $28
call DelayFrames
- call Func_3381
+ call PrintEndBattleText
ld hl, MoneyForWinningText
call PrintText
ld de, wPlayerMoney + 2
@@ -6263,7 +6263,7 @@ DoBattleTransitionAndInitBattleVariables: ; 3ec32 (f:6c32)
ld [H_AUTOBGTRANSFERENABLED], a
ld [hVBlankWY], a
ld [rWY], a
- ld [$ffd7], a
+ ld [hTilesetType], a
ld hl, wd060
ld [hli], a
ld [hli], a
@@ -6851,7 +6851,7 @@ InitBattle_Common: ; 3efeb (f:6feb)
pop af
ld [wMapPalOffset], a
ld a, [wd0d4]
- ld [$ffd7], a
+ ld [hTilesetType], a
scf
ret
.emptyString
diff --git a/engine/cable_club.asm b/engine/cable_club.asm
index 9b4017e2..34a9d0a1 100755
--- a/engine/cable_club.asm
+++ b/engine/cable_club.asm
@@ -572,7 +572,7 @@ Func_577d: ; 577d (1:577d)
dec a
ld [wDestinationWarpID], a
call LoadMapData
- callba Func_c335
+ callba ClearVariablesAfterLoadingMapData
pop hl
pop af
ld [hl], a
diff --git a/engine/evolution.asm b/engine/evolution.asm
index 07ccdbda..106107d2 100755
--- a/engine/evolution.asm
+++ b/engine/evolution.asm
@@ -19,7 +19,7 @@ Func_7bde9: ; 7bde9 (1e:7de9)
call Delay3
xor a
ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
- ld [$ffd7], a
+ ld [hTilesetType], a
ld a, [wHPBarMaxHP]
ld [wcf1d], a
ld c, $0
diff --git a/engine/evos_moves.asm b/engine/evos_moves.asm
index 240fd9fa..bda4c9ff 100755
--- a/engine/evos_moves.asm
+++ b/engine/evos_moves.asm
@@ -11,7 +11,7 @@ TryEvolvingMon: ; 3ad0e (e:6d0e)
; this is only called after battle
; it is supposed to do level up evolutions, though there is a bug that allows item evolutions to occur
EvolutionAfterBattle: ; 3ad1c (e:6d1c)
- ld a, [$ffd7]
+ ld a, [hTilesetType]
push af
xor a
ld [wd121], a
@@ -245,7 +245,7 @@ Evolution_PartyMonLoop: ; loop over party mons
pop bc
pop hl
pop af
- ld [$ffd7], a
+ ld [hTilesetType], a
ld a, [W_ISLINKBATTLE]
cp $32
ret z
diff --git a/engine/hall_of_fame.asm b/engine/hall_of_fame.asm
index 30ae6266..406fac01 100755
--- a/engine/hall_of_fame.asm
+++ b/engine/hall_of_fame.asm
@@ -19,7 +19,7 @@ AnimateHallOfFame: ; 701a0 (1c:41a0)
call FillMemory
xor a
ld [wUpdateSpritesEnabled], a
- ld [$ffd7], a
+ ld [hTilesetType], a
ld [W_SPRITEFLIPPED], a
ld [wd358], a
ld [wTrainerScreenY], a
diff --git a/engine/hidden_object_functions18.asm b/engine/hidden_object_functions18.asm
index 9dd7fac7..7696626f 100755
--- a/engine/hidden_object_functions18.asm
+++ b/engine/hidden_object_functions18.asm
@@ -70,7 +70,7 @@ PrintBenchGuyText: ; 6245d (18:645d)
ld a, [hl]
jp PrintPredefTextID
-; format: db map id, 08, text id of PointerTable_3f22
+; format: db map id, 08, text id of PredefTextIDPointerTable
PokeCenterMapIDList: ; 6247e (18:647e)
db VIRIDIAN_POKECENTER,$08,$0F
db PEWTER_POKECENTER,$08,$10
diff --git a/engine/hidden_object_functions3.asm b/engine/hidden_object_functions3.asm
index 09d9ebcc..d3d83f08 100755
--- a/engine/hidden_object_functions3.asm
+++ b/engine/hidden_object_functions3.asm
@@ -1,22 +1,23 @@
; prints text for bookshelves in buildings without sign events
PrintBookshelfText: ; fb50 (3:7b50)
- ld a, [wSpriteStateData1 + 9]
- cp $4
- jr nz, .asm_fb7f
- ld a, [W_CURMAPTILESET] ; W_CURMAPTILESET
+ ld a, [wSpriteStateData1 + 9] ; player's sprite facing direction
+ cp SPRITE_FACING_UP
+ jr nz, .noMatch
+; facing up
+ ld a, [W_CURMAPTILESET]
ld b, a
aCoord 8, 7
ld c, a
- ld hl, BookshelfTileIDs ; $7b8b
-.asm_fb62
+ ld hl, BookshelfTileIDs
+.loop
ld a, [hli]
cp $ff
- jr z, .asm_fb7f
+ jr z, .noMatch
cp b
- jr nz, .asm_fb7b
+ jr nz, .nextBookshelfEntry1
ld a, [hli]
cp c
- jr nz, .asm_fb7c
+ jr nz, .nextBookshelfEntry2
ld a, [hl]
push af
call EnableAutoTextBoxDrawing
@@ -25,12 +26,12 @@ PrintBookshelfText: ; fb50 (3:7b50)
xor a
ld [$ffdb], a
ret
-.asm_fb7b
+.nextBookshelfEntry1
inc hl
-.asm_fb7c
+.nextBookshelfEntry2
inc hl
- jr .asm_fb62
-.asm_fb7f
+ jr .loop
+.noMatch
ld a, $ff
ld [$ffdb], a
ld b, BANK(PrintCardKeyText)
diff --git a/engine/hidden_object_functions7.asm b/engine/hidden_object_functions7.asm
index c00749e4..012e941d 100755
--- a/engine/hidden_object_functions7.asm
+++ b/engine/hidden_object_functions7.asm
@@ -60,7 +60,7 @@ SafariZoneCheckSteps: ; 1e997 (7:6997)
ld [wSafariSteps + 1], a ; wd70e
asm_1e9ab: ; 1e9ab (7:69ab)
xor a
- ld [wda46], a
+ ld [wSafariZoneGameOver], a
ret
asm_1e9b0: ; 1e9b0 (7:69b0)
call EnableAutoTextBoxDrawing
@@ -89,7 +89,7 @@ asm_1e9b0: ; 1e9b0 (7:69b0)
ld hl, wd790
set 6, [hl]
ld a, $1
- ld [wda46], a
+ ld [wSafariZoneGameOver], a
ret
PrintSafariGameOverText: ; 1e9ed (7:69ed)
@@ -291,7 +291,7 @@ CinnabarGymQuiz_1eb0a: ; 1eb0a (7:6b0a)
.asm_1eb38
pop bc
ld [wd09f], a
- predef Func_ee9e
+ predef ReplaceTileBlock
ld hl, $ffdb
dec [hl]
jr nz, .asm_1eb0e
diff --git a/engine/in_game_trades.asm b/engine/in_game_trades.asm
index 4f232eb4..7464edb3 100755
--- a/engine/in_game_trades.asm
+++ b/engine/in_game_trades.asm
@@ -138,7 +138,7 @@ Func_71c07: ; 71c07 (1c:5c07)
callab EvolveTradeMon
call ClearScreen
call Func_71ca2
- callba Func_eedc
+ callba RedrawMapView
and a
ld a,$3
jr .asm_ee803 ; 0x71c9b $1
diff --git a/engine/menu/bills_pc.asm b/engine/menu/bills_pc.asm
index b5ee9b94..65b70bb1 100644
--- a/engine/menu/bills_pc.asm
+++ b/engine/menu/bills_pc.asm
@@ -332,7 +332,7 @@ Func_21673: ; 21673 (8:5673)
jp Func_214e8
Func_216b3: ; 216b3 (8:56b3)
- callba Func_738a1
+ callba ChangeBox
jp Func_214e8
Func_216be: ; 216be (8:56be)
diff --git a/engine/menu/league_pc.asm b/engine/menu/league_pc.asm
index ffde236a..a6dd7021 100755
--- a/engine/menu/league_pc.asm
+++ b/engine/menu/league_pc.asm
@@ -6,10 +6,10 @@ PKMNLeaguePC: ; 0x7657e
push hl
ld a, [wUpdateSpritesEnabled]
push af
- ld a, [$ffD7]
+ ld a, [hTilesetType]
push af
xor a
- ld [$ffD7], a
+ ld [hTilesetType], a
ld [W_SPRITEFLIPPED], a
ld [wUpdateSpritesEnabled], a
ld [wTrainerScreenX], a
@@ -38,7 +38,7 @@ PKMNLeaguePC: ; 0x7657e
jr nz, .first
.second
pop af
- ld [$ffD7], a
+ ld [hTilesetType], a
pop af
ld [wUpdateSpritesEnabled], a
pop hl
diff --git a/engine/menu/pokedex.asm b/engine/menu/pokedex.asm
index 8f4bc508..152b8129 100755
--- a/engine/menu/pokedex.asm
+++ b/engine/menu/pokedex.asm
@@ -404,10 +404,10 @@ ShowPokedexDataInternal: ; 402e2 (10:42e2)
call GoPAL_SET
pop af
ld [wd11e],a
- ld a,[$ffd7]
+ ld a,[hTilesetType]
push af
xor a
- ld [$ffd7],a
+ ld [hTilesetType],a
hlCoord 0, 0
ld de,1
ld bc,$6414
@@ -554,7 +554,7 @@ ShowPokedexDataInternal: ; 402e2 (10:42e2)
and a,%00000011 ; A button and B button
jr z,.waitForButtonPress
pop af
- ld [$ffd7],a
+ ld [hTilesetType],a
call GBPalWhiteOut
call ClearScreen
call GoPAL_SET_CF1C
diff --git a/engine/menu/start_sub_menus.asm b/engine/menu/start_sub_menus.asm
index e91386b0..c6373e76 100755
--- a/engine/menu/start_sub_menus.asm
+++ b/engine/menu/start_sub_menus.asm
@@ -500,10 +500,10 @@ StartMenu_TrainerInfo: ; 13460 (4:7460)
call GBPalWhiteOut
call ClearScreen
call UpdateSprites ; move sprites
- ld a,[$ffd7]
+ ld a,[hTilesetType]
push af
xor a
- ld [$ffd7],a
+ ld [hTilesetType],a
call DrawTrainerInfo
predef DrawBadges ; draw badges
ld b,$0d
@@ -517,7 +517,7 @@ StartMenu_TrainerInfo: ; 13460 (4:7460)
call ReloadMapData
call LoadGBPal
pop af
- ld [$ffd7],a
+ ld [hTilesetType],a
jp RedisplayStartMenu
; loads tile patterns and draws everything except for gym leader faces / badges
diff --git a/engine/menu/status_screen.asm b/engine/menu/status_screen.asm
index 65b06e9d..f215fd0e 100755
--- a/engine/menu/status_screen.asm
+++ b/engine/menu/status_screen.asm
@@ -36,10 +36,10 @@ StatusScreen: ; 12953 (4:6953)
ld hl, vChars2 + $720
ld bc,(BANK(PTile) << 8 | $01)
call CopyVideoDataDouble ; P (for PP), inline
- ld a, [$ffd7]
+ ld a, [hTilesetType]
push af
xor a
- ld [$ffd7], a
+ ld [hTilesetType], a
hlCoord 19, 1
ld bc, $060a
call DrawLineBox ; Draws the box around name, HP and status
@@ -109,7 +109,7 @@ StatusScreen: ; 12953 (4:6953)
call PlayCry ; play Pokémon cry
call WaitForTextScrollButtonPress ; wait for button
pop af
- ld [$ffd7], a
+ ld [hTilesetType], a
ret
.unk_12a7e ; 0x12a7e ; I don't know what this does, iterates over pointers?
ld a, [wcc49]
@@ -227,10 +227,10 @@ StatsText: ; 12b3a (4:6b3a)
next "SPECIAL@"
StatusScreen2: ; 12b57 (4:6b57)
- ld a, [$ffd7]
+ ld a, [hTilesetType]
push af
xor a
- ld [$ffd7], a
+ ld [hTilesetType], a
ld [$ffba], a
ld bc, $0005
ld hl, wd0dc
@@ -360,7 +360,7 @@ StatusScreen2: ; 12b57 (4:6b57)
call Delay3
call WaitForTextScrollButtonPress ; wait for button
pop af
- ld [$ffd7], a
+ ld [hTilesetType], a
ld hl, wd72c
res 1, [hl]
ld a, $77
diff --git a/engine/oak_speech.asm b/engine/oak_speech.asm
index 518bea2a..0cbdaa3d 100755
--- a/engine/oak_speech.asm
+++ b/engine/oak_speech.asm
@@ -52,7 +52,7 @@ OakSpeech: ; 6115 (1:6115)
ld [wDestinationMap],a
call SpecialWarpIn
xor a
- ld [$FFD7],a
+ ld [hTilesetType],a
ld a,[wd732]
bit 1,a ; XXX when is bit 1 set?
jp nz,Func_61bc ; easter egg: skip the intro
diff --git a/engine/overworld/card_key.asm b/engine/overworld/card_key.asm
index 885932d5..c4df0d51 100755
--- a/engine/overworld/card_key.asm
+++ b/engine/overworld/card_key.asm
@@ -2,18 +2,18 @@ PrintCardKeyText: ; 52673 (14:6673)
ld hl, SilphCoMapList
ld a, [W_CURMAP]
ld b, a
-.asm_5267a
+.silphCoMapListLoop
ld a, [hli]
cp $ff
ret z
cp b
- jr nz, .asm_5267a
+ jr nz, .silphCoMapListLoop
predef GetTileAndCoordsInFrontOfPlayer
ld a, [wTileInFrontOfPlayer]
cp $18
- jr z, .asm_5269c
+ jr z, .cardKeyDoorInFrontOfPlayer
cp $24
- jr z, .asm_5269c
+ jr z, .cardKeyDoorInFrontOfPlayer
ld b, a
ld a, [W_CURMAP]
cp SILPH_CO_11F
@@ -21,41 +21,41 @@ PrintCardKeyText: ; 52673 (14:6673)
ld a, b
cp $5e
ret nz
-.asm_5269c
+.cardKeyDoorInFrontOfPlayer
ld b, CARD_KEY
call IsItemInBag
- jr z, .asm_526dc
- call Func_526fd
+ jr z, .noCardKey
+ call GetCoordsInFrontOfPlayer
push de
ld a, $1
- ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+ ld [H_DOWNARROWBLINKCNT2], a
call PrintPredefTextID
pop de
srl d
ld a, d
ld b, a
- ld [wd73f], a
+ ld [wCardKeyDoorY], a
srl e
ld a, e
ld c, a
- ld [wd740], a
- ld a, [W_CURMAP] ; W_CURMAP
+ ld [wCardKeyDoorX], a
+ ld a, [W_CURMAP]
cp SILPH_CO_11F
- jr nz, .asm_526c8
+ jr nz, .notSilphCo11F
ld a, $3
- jr .asm_526ca
-.asm_526c8
+ jr .replaceCardKeyDoorTileBlock
+.notSilphCo11F
ld a, $e
-.asm_526ca
+.replaceCardKeyDoorTileBlock
ld [wd09f], a
- predef Func_ee9e
+ predef ReplaceTileBlock
ld hl, wd126
set 5, [hl]
ld a, (SFX_1f_57 - SFX_Headers_1f) / 3
jp PlaySound
-.asm_526dc
+.noCardKey
ld a, $2
- ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+ ld [H_DOWNARROWBLINKCNT2], a
jp PrintPredefTextID
SilphCoMapList: ; 526e3 (14:66e3)
@@ -81,26 +81,32 @@ CardKeyFailText: ; 526f8 (14:66f8)
TX_FAR _CardKeyFailText
db "@"
-Func_526fd: ; 526fd (14:66fd)
- ld a, [W_YCOORD] ; wd361
+; d = Y
+; e = X
+GetCoordsInFrontOfPlayer: ; 526fd (14:66fd)
+ ld a, [W_YCOORD]
ld d, a
- ld a, [W_XCOORD] ; wd362
+ ld a, [W_XCOORD]
ld e, a
- ld a, [wSpriteStateData1 + 9]
+ ld a, [wSpriteStateData1 + 9] ; player's sprite facing direction
and a
- jr nz, .asm_5270d
+ jr nz, .notFacingDown
+; facing down
inc d
ret
-.asm_5270d
- cp $4
- jr nz, .asm_52713
+.notFacingDown
+ cp SPRITE_FACING_UP
+ jr nz, .notFacingUp
+; facing up
dec d
ret
-.asm_52713
- cp $8
- jr nz, .asm_52719
+.notFacingUp
+ cp SPRITE_FACING_LEFT
+ jr nz, .notFacingLeft
+; facing left
dec e
ret
-.asm_52719
+.notFacingLeft
+; facing right
inc e
ret
diff --git a/engine/overworld/cut.asm b/engine/overworld/cut.asm
index 0cbc0214..f57b6465 100755
--- a/engine/overworld/cut.asm
+++ b/engine/overworld/cut.asm
@@ -56,7 +56,7 @@ asm_ef82: ; ef82 (3:6f82)
call AnimateCutTree
ld de, CutTreeBlockSwaps ; $7100
call Func_f09f
- call Func_eedc
+ call RedrawMapView
callba Func_79e96
ld a, $1
ld [wUpdateSpritesEnabled], a
@@ -65,7 +65,7 @@ asm_ef82: ; ef82 (3:6f82)
ld a, $90
ld [hVBlankWY], a
call UpdateSprites
- jp Func_eedc
+ jp RedrawMapView
UsedCutText: ; eff2 (3:6ff2)
TX_FAR _UsedCutText
diff --git a/engine/overworld/elevator.asm b/engine/overworld/elevator.asm
index d1d7d82a..c2191b91 100755
--- a/engine/overworld/elevator.asm
+++ b/engine/overworld/elevator.asm
@@ -41,7 +41,7 @@ ShakeElevator: ; 7bf15 (1e:7f15)
jp PlayDefaultMusic
Func_7bf64: ; 7bf64 (1e:7f64)
- ld hl, wd527
+ ld hl, wMapViewVRAMPointer + 1
ld a, [hld]
push af
ld a, [hl]
diff --git a/engine/overworld/hidden_objects.asm b/engine/overworld/hidden_objects.asm
index 1be5170c..ae67aeed 100755
--- a/engine/overworld/hidden_objects.asm
+++ b/engine/overworld/hidden_objects.asm
@@ -6,7 +6,7 @@ Func_46981: ; 46981 (11:6981)
ret nz
call ArePlayerCoordsInArray
ret nc
- ld a, [wWhichTrade] ; wWhichTrade
+ ld a, [wWhichTrade]
ld [wWhichDungeonWarp], a
ld hl, wd72d
set 4, [hl]
@@ -14,7 +14,8 @@ Func_46981: ; 46981 (11:6981)
set 4, [hl]
ret
-Func_469a0: ; 469a0 (11:69a0)
+; if a hidden object was found, stores $00 in [$ffee], else stores $ff
+CheckForHiddenObject: ; 469a0 (11:69a0)
ld hl, $ffeb
xor a
ld [hli], a
@@ -22,107 +23,110 @@ Func_469a0: ; 469a0 (11:69a0)
ld [hli], a
ld [hl], a
ld de, $0
- ld hl, HiddenObjectMaps ; $6a40
-.asm_469ae
+ ld hl, HiddenObjectMaps
+.hiddenMapLoop
ld a, [hli]
ld b, a
cp $ff
- jr z, .asm_469fc
- ld a, [W_CURMAP] ; W_CURMAP
+ jr z, .noMatch
+ ld a, [W_CURMAP]
cp b
- jr z, .asm_469be
+ jr z, .foundMatchingMap
inc de
inc de
- jr .asm_469ae
-.asm_469be
- ld hl, HiddenObjectPointers ; $6a96
+ jr .hiddenMapLoop
+.foundMatchingMap
+ ld hl, HiddenObjectPointers
add hl, de
ld a, [hli]
ld h, [hl]
ld l, a
push hl
- ld hl, wWhichTrade ; wWhichTrade
+ ld hl, wHiddenObjectFunctionArgument
xor a
ld [hli], a
ld [hli], a
ld [hl], a
pop hl
-.asm_469ce
+.hiddenObjectLoop
ld a, [hli]
cp $ff
- jr z, .asm_469fc
- ld [wTrainerScreenY], a
+ jr z, .noMatch
+ ld [wHiddenObjectY], a
ld b, a
ld a, [hli]
- ld [wTrainerScreenX], a
+ ld [wHiddenObjectX], a
ld c, a
- call Func_46a01
+ call CheckIfCoordsInFrontOfPlayerMatch
ld a, [$ffea]
and a
- jr z, .asm_469f0
+ jr z, .foundMatchingObject
inc hl
inc hl
inc hl
inc hl
push hl
- ld hl, wTrainerFacingDirection
+ ld hl, wHiddenObjectIndex
inc [hl]
pop hl
- jr .asm_469ce
-.asm_469f0
+ jr .hiddenObjectLoop
+.foundMatchingObject
ld a, [hli]
- ld [wWhichTrade], a ; wWhichTrade
+ ld [wHiddenObjectFunctionArgument], a
ld a, [hli]
- ld [wTrainerEngageDistance], a
+ ld [wHiddenObjectFunctionRomBank], a
ld a, [hli]
ld h, [hl]
ld l, a
ret
-.asm_469fc
+.noMatch
ld a, $ff
ld [$ffee], a
ret
-Func_46a01: ; 46a01 (11:6a01)
- ld a, [wSpriteStateData1 + 9]
- cp $4
- jr z, .asm_46a16
- cp $8
- jr z, .asm_46a25
- cp $c
- jr z, .asm_46a2b
- ld a, [W_YCOORD] ; wd361
+; checks if the coordinates in front of the player's sprite match Y in b and X in c
+; [$ffea] = $00 if they match, $ff if they don't match
+CheckIfCoordsInFrontOfPlayerMatch: ; 46a01 (11:6a01)
+ ld a, [wSpriteStateData1 + 9] ; player's sprite facing direction
+ cp SPRITE_FACING_UP
+ jr z, .facingUp
+ cp SPRITE_FACING_LEFT
+ jr z, .facingLeft
+ cp SPRITE_FACING_RIGHT
+ jr z, .facingRight
+; facing down
+ ld a, [W_YCOORD]
inc a
- jr .asm_46a1a
-.asm_46a16
- ld a, [W_YCOORD] ; wd361
+ jr .upDownCommon
+.facingUp
+ ld a, [W_YCOORD]
dec a
-.asm_46a1a
+.upDownCommon
cp b
- jr nz, .asm_46a3b
- ld a, [W_XCOORD] ; wd362
+ jr nz, .didNotMatch
+ ld a, [W_XCOORD]
cp c
- jr nz, .asm_46a3b
- jr .asm_46a38
-.asm_46a25
- ld a, [W_XCOORD] ; wd362
+ jr nz, .didNotMatch
+ jr .matched
+.facingLeft
+ ld a, [W_XCOORD]
dec a
- jr .asm_46a2f
-.asm_46a2b
- ld a, [W_XCOORD] ; wd362
+ jr .leftRightCommon
+.facingRight
+ ld a, [W_XCOORD]
inc a
-.asm_46a2f
+.leftRightCommon
cp c
- jr nz, .asm_46a3b
- ld a, [W_YCOORD] ; wd361
+ jr nz, .didNotMatch
+ ld a, [W_YCOORD]
cp b
- jr nz, .asm_46a3b
-.asm_46a38
+ jr nz, .didNotMatch
+.matched
xor a
- jr .asm_46a3d
-.asm_46a3b
+ jr .done
+.didNotMatch
ld a, $ff
-.asm_46a3d
+.done
ld [$ffea], a
ret
diff --git a/engine/overworld/npc_movement.asm b/engine/overworld/npc_movement.asm
index 07a73be6..84e39853 100755
--- a/engine/overworld/npc_movement.asm
+++ b/engine/overworld/npc_movement.asm
@@ -260,12 +260,11 @@ RLEList_PewterGymGuy: ; 1a5da (6:65da)
db $C0, $03
db $FF
-; XXX why would this function want to return on POKEMONTOWER_7?
-Func_1a5e7: ; 1a5e7 (6:65e7)
- ld a, [W_CURMAP] ; W_CURMAP
+FreezeEnemyTrainerSprite: ; 1a5e7 (6:65e7)
+ ld a, [W_CURMAP]
cp POKEMONTOWER_7
- ret z
- ld hl, RivalIDs ; $6605
+ ret z ; the Rockets on Pokemon Tower 7F leave after battling, so don't freeze them
+ ld hl, RivalIDs
ld a, [wEngagedTrainerClass]
ld b, a
.loop
@@ -273,11 +272,11 @@ Func_1a5e7: ; 1a5e7 (6:65e7)
cp $ff
jr z, .notRival
cp b
- ret z
+ ret z ; the rival leaves after battling, so don't freeze him
jr .loop
.notRival
ld a, [wSpriteIndex]
- ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+ ld [H_SPRITEINDEX], a
jp SetSpriteMovementBytesToFF
RivalIDs: ; 1a605 (6:6605)
diff --git a/engine/play_time.asm b/engine/play_time.asm
index db7d6f67..74da9c59 100755
--- a/engine/play_time.asm
+++ b/engine/play_time.asm
@@ -1,25 +1,25 @@
-Func_18dee: ; 18dee (6:4dee)
- call Func_18e36
+TrackPlayTime: ; 18dee (6:4dee)
+ call CountDownIgnoreInputBitReset
ld a, [wd732]
bit 0, a
ret z
- ld a, [W_PLAYTIMEMINUTES] ; wda42
+ ld a, [W_PLAYTIMEMINUTES]
and a
ret nz
- ld a, [W_PLAYTIMEFRAMES] ; wda45
+ ld a, [W_PLAYTIMEFRAMES]
inc a
- ld [W_PLAYTIMEFRAMES], a ; wda45
+ ld [W_PLAYTIMEFRAMES], a
cp 60
ret nz
xor a
- ld [W_PLAYTIMEFRAMES], a ; wda45
- ld a, [W_PLAYTIMESECONDS] ; wda44
+ ld [W_PLAYTIMEFRAMES], a
+ ld a, [W_PLAYTIMESECONDS]
inc a
- ld [W_PLAYTIMESECONDS], a ; wda44
+ ld [W_PLAYTIMESECONDS], a
cp 60
ret nz
xor a
- ld [W_PLAYTIMESECONDS], a ; wda44
+ ld [W_PLAYTIMESECONDS], a
ld a, [W_PLAYTIMEMINUTES + 1]
inc a
ld [W_PLAYTIMEMINUTES + 1], a
@@ -33,11 +33,11 @@ Func_18dee: ; 18dee (6:4dee)
cp $ff
ret nz
ld a, $ff
- ld [W_PLAYTIMEMINUTES], a ; wda42
+ ld [W_PLAYTIMEMINUTES], a
ret
-Func_18e36: ; 18e36 (6:4e36)
- ld a, [wd13a]
+CountDownIgnoreInputBitReset: ; 18e36 (6:4e36)
+ ld a, [wIgnoreInputCounter]
and a
jr nz, .asm_18e40
ld a, $ff
@@ -45,7 +45,7 @@ Func_18e36: ; 18e36 (6:4e36)
.asm_18e40
dec a
.asm_18e41
- ld [wd13a], a
+ ld [wIgnoreInputCounter], a
and a
ret nz
ld a, [wd730]
diff --git a/engine/predefs.asm b/engine/predefs.asm
index 0a5eff03..b73c485a 100755
--- a/engine/predefs.asm
+++ b/engine/predefs.asm
@@ -58,7 +58,7 @@ PredefPointers:: ; 4fe79 (13:7e79)
add_predef ScaleSpriteByTwo
add_predef LoadMonBackPic
add_predef Func_79aba
- add_predef Func_f132
+ add_predef LoadMissableObjects
add_predef HealParty
add_predef MoveAnimation; 08 play move animation
add_predef DivideBCDPredef
@@ -75,13 +75,13 @@ PredefPointers:: ; 4fe79 (13:7e79)
add_predef AnyPartyAlive
add_predef ShowObject
add_predef ShowObject2
- add_predef Func_ee9e
+ add_predef ReplaceTileBlock
add_predef InitPlayerData2
add_predef LoadTilesetHeader
add_predef LearnMoveFromLevelUp
add_predef LearnMove
add_predef IsItemInBag_ ; 1C, used in Pokémon Tower
- dbw $03,Func_3eb5 ; for these two, the bank number is actually 0
+ dbw $03,CheckForHiddenObjectOrBookshelfOrCardKeyDoor ; for these two, the bank number is actually 0
dbw $03,GiveItem
add_predef ChangeBGPalColor0_4Frames
add_predef FindPathToPlayer
@@ -117,7 +117,7 @@ PredefPointers:: ; 4fe79 (13:7e79)
add_predef WriteMonMoves
add_predef SaveSAV
add_predef LoadSGB
- add_predef Func_f113
+ add_predef MarkTownVisitedAndLoadMissableObjects
add_predef SetPartyMonTypes
add_predef CanLearnTM
add_predef TMToMove
diff --git a/engine/save.asm b/engine/save.asm
index fcfbd133..f4057577 100755
--- a/engine/save.asm
+++ b/engine/save.asm
@@ -32,11 +32,11 @@ FileDataDestroyedText: ; 7361e (1c:761e)
db "@"
LoadSAVCheckSum: ; 73623 (1c:7623)
- ld a, $a
- ld [$0], a
+ ld a, SRAM_ENABLE
+ ld [MBC1SRamEnable], a
ld a, $1
- ld [$6000], a
- ld [$4000], a
+ ld [MBC1SRamBankingMode], a
+ ld [MBC1SRamBank], a
ld hl, $a598 ; hero name located in SRAM
ld bc, $f8b ; but here checks the full SAV
call SAVCheckSum
@@ -58,30 +58,30 @@ LoadSAVCheckSum: ; 73623 (1c:7623)
ld bc, $b
call CopyData
ld hl, $a5a3
- ld de, wPokedexOwned ; wPokedexOwned
+ ld de, wPokedexOwned
ld bc, $789
call CopyData
- ld hl, W_CURMAPTILESET ; W_CURMAPTILESET
+ ld hl, W_CURMAPTILESET
set 7, [hl]
ld hl, $ad2c
ld de, wSpriteStateData1
ld bc, $200
call CopyData
ld a, [$b522]
- ld [$ffd7], a
+ ld [hTilesetType], a
ld hl, $b0c0
- ld de, W_NUMINBOX ; wda80
- ld bc, $462
+ ld de, W_NUMINBOX
+ ld bc, wBoxMonNicksEnd - W_NUMINBOX
call CopyData
and a
jp SAVGoodChecksum
LoadSAVCheckSum1: ; 73690 (1c:7690)
- ld a, $a
- ld [$0], a
+ ld a, SRAM_ENABLE
+ ld [MBC1SRamEnable], a
ld a, $1
- ld [$6000], a
- ld [$4000], a
+ ld [MBC1SRamBankingMode], a
+ ld [MBC1SRamBank], a
ld hl, $a598 ; hero name located in SRAM
ld bc, $f8b ; but here checks the full SAV
call SAVCheckSum
@@ -90,18 +90,18 @@ LoadSAVCheckSum1: ; 73690 (1c:7690)
cp c
jr nz, SAVBadCheckSum
ld hl, $b0c0
- ld de, W_NUMINBOX ; wda80
- ld bc, $462
+ ld de, W_NUMINBOX
+ ld bc, wBoxMonNicksEnd - W_NUMINBOX
call CopyData
and a
jp SAVGoodChecksum
LoadSAVCheckSum2: ; 736bd (1c:76bd)
- ld a, $a
- ld [$0], a
+ ld a, SRAM_ENABLE
+ ld [MBC1SRamEnable], a
ld a, $1
- ld [$6000], a
- ld [$4000], a
+ ld [MBC1SRamBankingMode], a
+ ld [MBC1SRamBank], a
ld hl, $a598 ; hero name located in SRAM
ld bc, $f8b ; but here checks the full SAV
call SAVCheckSum
@@ -125,8 +125,8 @@ SAVBadCheckSum: ; 736f7 (1c:76f7)
SAVGoodChecksum: ; 736f8 (1c:76f8)
ld a, $0
- ld [$6000], a
- ld [$0], a
+ ld [MBC1SRamBankingMode], a
+ ld [MBC1SRamEnable], a
ret
Func_73701: ; 0x73701
@@ -193,67 +193,67 @@ OlderFileWillBeErasedText: ; 73787 (1c:7787)
db "@"
SaveSAVtoSRAM0: ; 7378c (1c:778c)
- ld a, $a
- ld [$0], a
+ ld a, SRAM_ENABLE
+ ld [MBC1SRamEnable], a
ld a, $1
- ld [$6000], a
- ld [$4000], a
- ld hl, wPlayerName ; wd158
+ ld [MBC1SRamBankingMode], a
+ ld [MBC1SRamBank], a
+ ld hl, wPlayerName
ld de, $a598
ld bc, $b
call CopyData
- ld hl, wPokedexOwned ; wPokedexOwned
+ ld hl, wPokedexOwned
ld de, $a5a3
- ld bc, $789
+ ld bc, W_NUMINBOX - wPokedexOwned
call CopyData
- ld hl, wSpriteStateData1 ; OAM?
+ ld hl, wSpriteStateData1
ld de, $ad2c
ld bc, $200
call CopyData
- ld hl, W_NUMINBOX ; wda80
+ ld hl, W_NUMINBOX
ld de, $b0c0
- ld bc, $462
+ ld bc, wBoxMonNicksEnd - W_NUMINBOX
call CopyData
- ld a, [$ffd7]
+ ld a, [hTilesetType]
ld [$b522], a
ld hl, $a598
ld bc, $f8b
call SAVCheckSum
ld [$b523], a
xor a
- ld [$6000], a
- ld [$0], a
+ ld [MBC1SRamBankingMode], a
+ ld [MBC1SRamEnable], a
ret
SaveSAVtoSRAM1: ; 737e2 (1c:77e2)
; stored pokémon
- ld a, $a
- ld [$0], a
+ ld a, SRAM_ENABLE
+ ld [MBC1SRamEnable], a
ld a, $1
- ld [$6000], a
- ld [$4000], a
- ld hl, W_NUMINBOX ; wda80
+ ld [MBC1SRamBankingMode], a
+ ld [MBC1SRamBank], a
+ ld hl, W_NUMINBOX
ld de, $b0c0
- ld bc, $462
+ ld bc, wBoxMonNicksEnd - W_NUMINBOX
call CopyData
ld hl, $a598
ld bc, $f8b
call SAVCheckSum
ld [$b523], a
xor a
- ld [$6000], a
- ld [$0], a
+ ld [MBC1SRamBankingMode], a
+ ld [MBC1SRamEnable], a
ret
SaveSAVtoSRAM2: ; 7380f (1c:780f)
- ld a, $a
- ld [$0], a
+ ld a, SRAM_ENABLE
+ ld [MBC1SRamEnable], a
ld a, $1
- ld [$6000], a
- ld [$4000], a
- ld hl, wPartyCount ; wPartyCount
+ ld [MBC1SRamBankingMode], a
+ ld [MBC1SRamBank], a
+ ld hl, wPartyCount
ld de, $af2c
- ld bc, $194
+ ld bc, wPokedexOwned - wPartyCount
call CopyData
ld hl, wPokedexOwned ; pokédex only
ld de, $a5a3
@@ -264,8 +264,8 @@ SaveSAVtoSRAM2: ; 7380f (1c:780f)
call SAVCheckSum
ld [$b523], a
xor a
- ld [$6000], a
- ld [$0], a
+ ld [MBC1SRamBankingMode], a
+ ld [MBC1SRamEnable], a
ret
SaveSAVtoSRAM: ; 73848 (1c:7848)
@@ -334,13 +334,13 @@ PointerTable_73895: ; 73895 (1c:7895)
dw $B188
dw $B5EA
-Func_738a1:: ; 738a1 (1c:78a1)
+ChangeBox:: ; 738a1 (1c:78a1)
ld hl, WhenYouChangeBoxText
call PrintText
call YesNoChoice
- ld a, [wCurrentMenuItem] ; wCurrentMenuItem
+ ld a, [wCurrentMenuItem]
and a
- ret nz
+ ret nz ; return if No was chosen
ld hl, wd5a0
bit 7, [hl]
call z, Func_73a29
@@ -356,25 +356,25 @@ Func_738a1:: ; 738a1 (1c:78a1)
call Func_7387b
ld e, l
ld d, h
- ld hl, W_NUMINBOX ; wda80
+ ld hl, W_NUMINBOX
call Func_7390e
- ld a, [wCurrentMenuItem] ; wCurrentMenuItem
+ ld a, [wCurrentMenuItem]
set 7, a
ld [wd5a0], a
call Func_7387b
- ld de, W_NUMINBOX ; wda80
+ ld de, W_NUMINBOX
call Func_7390e
- ld hl, W_MAPTEXTPTR ; wd36c
- ld de, wWhichTrade ; wWhichTrade
+ ld hl, W_MAPTEXTPTR
+ ld de, wChangeBoxSavedMapTextPointer
ld a, [hli]
ld [de], a
inc de
ld a, [hl]
ld [de], a
- call Func_3f05
+ call RestoreMapTextPointer
call SaveSAVtoSRAM
- ld hl, wWhichTrade ; wWhichTrade
- call Func_3f0f
+ ld hl, wChangeBoxSavedMapTextPointer
+ call SetMapTextPointer
ld a, (SFX_02_5d - SFX_Headers_02) / 3
call PlaySoundWaitForCurrent
call WaitForSoundToFinish
@@ -386,12 +386,12 @@ WhenYouChangeBoxText: ; 73909 (1c:7909)
Func_7390e: ; 7390e (1c:790e)
push hl
- ld a, $a
- ld [$0], a
+ ld a, SRAM_ENABLE
+ ld [MBC1SRamEnable], a
ld a, $1
- ld [$6000], a
+ ld [MBC1SRamBankingMode], a
ld a, b
- ld [$4000], a
+ ld [MBC1SRamBank], a
ld bc, $462
call CopyData
pop hl
@@ -405,8 +405,8 @@ Func_7390e: ; 7390e (1c:790e)
ld [$ba4c], a
call Func_73863
xor a
- ld [$6000], a
- ld [$0], a
+ ld [MBC1SRamBankingMode], a
+ ld [MBC1SRamEnable], a
ret
Func_7393f: ; 7393f (1c:793f)
@@ -502,19 +502,19 @@ BoxNoText: ; 73a21 (1c:7a21)
db "BOX No.@"
Func_73a29: ; 73a29 (1c:7a29)
- ld a, $a
- ld [$0], a
+ ld a, SRAM_ENABLE
+ ld [MBC1SRamEnable], a
ld a, $1
- ld [$6000], a
+ ld [MBC1SRamBankingMode], a
ld a, $2
- ld [$4000], a
+ ld [MBC1SRamBank], a
call Func_73a4b
ld a, $3
- ld [$4000], a
+ ld [MBC1SRamBank], a
call Func_73a4b
xor a
- ld [$6000], a
- ld [$0], a
+ ld [MBC1SRamBankingMode], a
+ ld [MBC1SRamEnable], a
ret
Func_73a4b: ; 73a4b (1c:7a4b)
@@ -547,19 +547,19 @@ Func_73a7f: ; 73a7f (1c:7a7f)
Func_73a84: ; 73a84 (1c:7a84)
ld hl, wWhichTrade ; wWhichTrade
push hl
- ld a, $a
- ld [$0], a
+ ld a, SRAM_ENABLE
+ ld [MBC1SRamEnable], a
ld a, $1
- ld [$6000], a
+ ld [MBC1SRamBankingMode], a
ld a, $2
- ld [$4000], a
+ ld [MBC1SRamBank], a
call Func_73ab8
ld a, $3
- ld [$4000], a
+ ld [MBC1SRamBank], a
call Func_73ab8
xor a
- ld [$6000], a
- ld [$0], a
+ ld [MBC1SRamBankingMode], a
+ ld [MBC1SRamEnable], a
pop hl
ld a, [wd5a0]
and $7f
@@ -592,8 +592,8 @@ SAVCheckRandomID: ;$7ad1
ld a,$0a
ld [$0000],a
ld a,$01
- ld [$6000],a
- ld [$4000],a
+ ld [MBC1SRamBankingMode],a
+ ld [MBC1SRamBank],a
ld a,[$a598]
and a
jr z,.next
@@ -615,7 +615,7 @@ SAVCheckRandomID: ;$7ad1
cp h
.next
ld a,$00
- ld [$6000],a
+ ld [MBC1SRamBankingMode],a
ld [$0000],a
ret
@@ -653,23 +653,23 @@ LoadHallOfFameTeams: ; 73b3f (1c:7b3f)
; fallthrough
HallOfFame_Copy: ; 73b51 (1c:7b51)
- ld a, $a
- ld [$0], a
+ ld a, SRAM_ENABLE
+ ld [MBC1SRamEnable], a
ld a, $1
- ld [$6000], a
+ ld [MBC1SRamBankingMode], a
xor a
- ld [$4000], a
+ ld [MBC1SRamBank], a
call CopyData
xor a
- ld [$6000], a
- ld [$0], a
+ ld [MBC1SRamBankingMode], a
+ ld [MBC1SRamEnable], a
ret
Func_73b6a: ; 73b6a (1c:7b6a)
- ld a, $a
- ld [$0], a
+ ld a, SRAM_ENABLE
+ ld [MBC1SRamEnable], a
ld a, $1
- ld [$6000], a
+ ld [MBC1SRamBankingMode], a
xor a
call PadSRAM_FF
ld a, $1
@@ -679,12 +679,12 @@ Func_73b6a: ; 73b6a (1c:7b6a)
ld a, $3
call PadSRAM_FF
xor a
- ld [$6000], a
- ld [$0], a
+ ld [MBC1SRamBankingMode], a
+ ld [MBC1SRamEnable], a
ret
PadSRAM_FF: ; 73b8f (1c:7b8f)
- ld [$4000], a
+ ld [MBC1SRamBank], a
ld hl, $a000
ld bc, $2000
ld a, $ff
diff --git a/engine/titlescreen.asm b/engine/titlescreen.asm
index 3f9cc613..ca81eff8 100755
--- a/engine/titlescreen.asm
+++ b/engine/titlescreen.asm
@@ -26,7 +26,7 @@ LoadTitlescreenGraphics: ; 42dd (1:42dd)
ld a, $1
ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
xor a
- ld [$ffd7], a
+ ld [hTilesetType], a
ld [$ffae], a
ld a, $40
ld [$ffaf], a
diff --git a/engine/town_map.asm b/engine/town_map.asm
index 6d10c222..3b7506d5 100755
--- a/engine/town_map.asm
+++ b/engine/town_map.asm
@@ -64,7 +64,7 @@ Func_70e92: ; 70e92 (1c:4e92)
ld bc, $10
call CopyData
.asm_70ec8
- call Func_716c6
+ call TownMapSpriteBlinkingAnimation
call JoypadLowSensitivity
ld a, [$ffb5]
ld b, a
@@ -77,9 +77,9 @@ Func_70e92: ; 70e92 (1c:4e92)
bit 7, b
jr nz, .asm_70f01
xor a
- ld [wd09b], a
+ ld [wTownMapSpriteBlinkingEnabled], a
ld [$ffb7], a
- ld [W_SUBANIMTRANSFORM], a ; W_SUBANIMTRANSFORM
+ ld [wTownMapSpriteBlinkingCounter], a
call Func_711ab
pop hl
pop af
@@ -213,7 +213,7 @@ LoadTownMap_Fly: ; 70f90 (1c:4f90)
set 7, [hl]
.asm_71037
xor a
- ld [wd09b], a
+ ld [wTownMapSpriteBlinkingEnabled], a
call GBPalWhiteOutWithDelay3
pop hl
pop af
@@ -319,9 +319,9 @@ LoadTownMap: ; 7109b (1c:509b)
call Delay3
call GBPalNormal
xor a
- ld [W_SUBANIMTRANSFORM], a ; W_SUBANIMTRANSFORM
+ ld [wTownMapSpriteBlinkingCounter], a
inc a
- ld [wd09b], a
+ ld [wTownMapSpriteBlinkingEnabled], a
ret
CompressedMap: ; 71100 (1c:5100)
@@ -330,7 +330,7 @@ CompressedMap: ; 71100 (1c:5100)
Func_711ab: ; 711ab (1c:51ab)
xor a
- ld [wd09b], a
+ ld [wTownMapSpriteBlinkingEnabled], a
call GBPalWhiteOut
call ClearScreen
call ClearSprites
@@ -570,29 +570,30 @@ INCLUDE "text/map_names.asm"
MonNestIcon: ; 716be (1c:56be)
INCBIN "gfx/mon_nest_icon.1bpp"
-Func_716c6: ; 716c6 (1c:56c6)
- ld a, [W_SUBANIMTRANSFORM] ; W_SUBANIMTRANSFORM
+TownMapSpriteBlinkingAnimation: ; 716c6 (1c:56c6)
+ ld a, [wTownMapSpriteBlinkingCounter]
inc a
- cp $19
- jr z, .asm_716e1
- cp $32
- jr nz, .asm_716f1
+ cp 25
+ jr z, .hideSprites
+ cp 50
+ jr nz, .done
+; show sprites when the counter reaches 50
ld hl, wTileMapBackup
ld de, wOAMBuffer
ld bc, $90
call CopyData
xor a
- jr .asm_716f1
-.asm_716e1
+ jr .done
+.hideSprites
ld hl, wOAMBuffer
ld b, $24
ld de, $4
-.asm_716e9
+.hideSpritesLoop
ld [hl], $a0
add hl, de
dec b
- jr nz, .asm_716e9
- ld a, $19
-.asm_716f1
- ld [W_SUBANIMTRANSFORM], a ; W_SUBANIMTRANSFORM
+ jr nz, .hideSpritesLoop
+ ld a, 25
+.done
+ ld [wTownMapSpriteBlinkingCounter], a
jp DelayFrame
diff --git a/engine/trade.asm b/engine/trade.asm
index 5be77f3e..d134e15a 100755
--- a/engine/trade.asm
+++ b/engine/trade.asm
@@ -475,7 +475,7 @@ Func_4149f: ; 4149f (10:549f)
Func_414ae: ; 414ae (10:54ae)
push hl
hlCoord 0, 4
- call ScheduleRowRedrawHelper
+ call CopyToScreenEdgeTiles
pop hl
ld a, h
ld [H_SCREENEDGEREDRAWADDR + 1], a