summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcus Huderle <huderlem@gmail.com>2017-07-09 16:03:44 -0700
committerMarcus Huderle <huderlem@gmail.com>2017-07-09 16:03:44 -0700
commit50240b834c959de010d50d296ccdd4f07fd83a32 (patch)
tree6d2b4d816c8bed05a9603026d359a0d82d3fcc19
parent66e007a3593a843b1b1f8ba6be3cfff9c0c31117 (diff)
Finish labeling all funcs in blue and red resolve_collision files
-rwxr-xr-xdata/queued_tiledata/blue_field/arrow_indicators.asm949
-rwxr-xr-xdata/queued_tiledata/blue_field/pokeballs.asm41
-rwxr-xr-xdata/queued_tiledata/red_field/arrow_indicators.asm863
-rwxr-xr-xdata/queued_tiledata/red_field/pokeballs.asm37
-rwxr-xr-xdata/queued_tiledata/red_field/staryu_bumper.asm247
-rwxr-xr-xdata/queued_tiledata/red_field/structures.asm804
-rw-r--r--engine/pinball_game/ball_loss/ball_loss_blue_field.asm6
-rw-r--r--engine/pinball_game/bonus_multiplier.asm4
-rw-r--r--engine/pinball_game/catchem_mode.asm14
-rw-r--r--engine/pinball_game/draw_sprites/draw_blue_field_sprites.asm2
-rw-r--r--engine/pinball_game/draw_sprites/draw_red_field_sprites.asm2
-rw-r--r--engine/pinball_game/extra_ball.asm8
-rw-r--r--engine/pinball_game/load_stage_data/load_blue_field.asm18
-rw-r--r--engine/pinball_game/load_stage_data/load_gengar_bonus.asm2
-rw-r--r--engine/pinball_game/load_stage_data/load_meowth_bonus.asm2
-rw-r--r--engine/pinball_game/load_stage_data/load_mewtwo_bonus.asm2
-rw-r--r--engine/pinball_game/load_stage_data/load_red_field.asm22
-rw-r--r--engine/pinball_game/load_stage_data/load_seel_bonus.asm2
-rw-r--r--engine/pinball_game/object_collision/blue_stage_resolve_collision.asm1206
-rw-r--r--engine/pinball_game/object_collision/red_stage_resolve_collision.asm2161
-rw-r--r--engine/pinball_game/timer.asm2
-rw-r--r--main.asm30
-rw-r--r--wram.asm22
23 files changed, 3243 insertions, 3203 deletions
diff --git a/data/queued_tiledata/blue_field/arrow_indicators.asm b/data/queued_tiledata/blue_field/arrow_indicators.asm
new file mode 100755
index 0000000..90485f2
--- /dev/null
+++ b/data/queued_tiledata/blue_field/arrow_indicators.asm
@@ -0,0 +1,949 @@
+TileDataPointers_1eb61:
+ dw TileDataPointers_1eb6b
+ dw TileDataPointers_1eb75
+ dw TileDataPointers_1eb7f
+ dw TileDataPointers_1eb87
+ dw TileDataPointers_1eb8f
+
+TileDataPointers_1eb6b: ; 0x1eb6b
+ dw TileData_1eb97
+ dw TileData_1eb9a
+ dw TileData_1eb9d
+ dw TileData_1eba0
+ dw TileData_1eba3
+
+TileDataPointers_1eb75: ; 0x1eb75
+ dw TileData_1eba6
+ dw TileData_1eba9
+ dw TileData_1ebac
+ dw TileData_1ebaf
+ dw TileData_1ebb2
+
+TileDataPointers_1eb7f: ; 0x1eb7f
+ dw TileData_1ebb5
+ dw TileData_1ebb8
+ dw TileData_1ebbb
+ dw TileData_1ebbe
+
+TileDataPointers_1eb87: ; 0x1eb87
+ dw TileData_1ebc1
+ dw TileData_1ebc6
+ dw TileData_1ebcb
+ dw TileData_1ebd0
+
+TileDataPointers_1eb8f: ; 0x1eb8f
+ dw TileData_1ebd5
+ dw TileData_1ebda
+ dw TileData_1ebdf
+ dw TileData_1ebe4
+
+TileData_1eb97: ; 0x1eb97
+ db $01
+ dw TileData_1ebe9
+
+TileData_1eb9a: ; 0x1eb9a
+ db $01
+ dw TileData_1ebf9
+
+TileData_1eb9d: ; 0x1eb9d
+ db $01
+ dw TileData_1ec09
+
+TileData_1eba0: ; 0x1eba0
+ db $01
+ dw TileData_1ec19
+
+TileData_1eba3: ; 0x1eba3
+ db $01
+ dw TileData_1ec29
+
+TileData_1eba6: ; 0x1eba6
+ db $01
+ dw TileData_1ec39
+
+TileData_1eba9: ; 0x1eba9
+ db $01
+ dw TileData_1ec49
+
+TileData_1ebac: ; 0x1ebac
+ db $01
+ dw TileData_1ec59
+
+TileData_1ebaf: ; 0x1ebaf
+ db $01
+ dw TileData_1ec69
+
+TileData_1ebb2: ; 0x1ebb2
+ db $01
+ dw TileData_1ec79
+
+TileData_1ebb5: ; 0x1ebb5
+ db $01
+ dw TileData_1ec89
+
+TileData_1ebb8: ; 0x1ebb8
+ db $01
+ dw TileData_1ec93
+
+TileData_1ebbb: ; 0x1ebbb
+ db $01
+ dw TileData_1ec9d
+
+TileData_1ebbe: ; 0x1ebbe
+ db $01
+ dw TileData_1eca7
+
+TileData_1ebc1: ; 0x1ebc1
+ db $02
+ dw TileData_1ecb1
+ dw TileData_1ecbb
+
+TileData_1ebc6: ; 0x1ebc6
+ db $02
+ dw TileData_1ecc5
+ dw TileData_1eccf
+
+TileData_1ebcb: ; 0x1ebcb
+ db $02
+ dw TileData_1ecd9
+ dw TileData_1ece3
+
+TileData_1ebd0: ; 0x1ebd0
+ db $02
+ dw TileData_1eced
+ dw TileData_1ecf7
+
+TileData_1ebd5: ; 0x1ebd5
+ db $02
+ dw TileData_1ed01
+ dw TileData_1ed0b
+
+TileData_1ebda: ; 0x1ebda
+ db $02
+ dw TileData_1ed15
+ dw TileData_1ed1f
+
+TileData_1ebdf: ; 0x1ebdf
+ db $02
+ dw TileData_1ed01
+ dw TileData_1ed0b
+
+TileData_1ebe4: ; 0x1ebe4
+ db $02
+ dw TileData_1ed15
+ dw TileData_1ed1f
+
+TileData_1ebe9: ; 0x1ebe9
+ dw LoadTileLists
+ db $03 ; total number of tiles
+
+ db $01 ; number of tiles
+ dw vBGMap + $64
+ db $3D
+
+ db $01 ; number of tiles
+ dw vBGMap + $84
+ db $17
+
+ db $01 ; number of tiles
+ dw vBGMap + $A5
+ db $3D
+
+ db $00 ; terminator
+
+TileData_1ebf9: ; 0x1ebf9
+ dw LoadTileLists
+ db $03 ; total number of tiles
+
+ db $01 ; number of tiles
+ dw vBGMap + $64
+ db $3E
+
+ db $01 ; number of tiles
+ dw vBGMap + $84
+ db $17
+
+ db $01 ; number of tiles
+ dw vBGMap + $A5
+ db $3D
+
+ db $00 ; terminator
+
+TileData_1ec09: ; 0x1ec09
+ dw LoadTileLists
+ db $03 ; total number of tiles
+
+ db $01 ; number of tiles
+ dw vBGMap + $64
+ db $3E
+
+ db $01 ; number of tiles
+ dw vBGMap + $84
+ db $18
+
+ db $01 ; number of tiles
+ dw vBGMap + $A5
+ db $3D
+
+ db $00 ; terminator
+
+TileData_1ec19: ; 0x1ec19
+ dw LoadTileLists
+ db $03 ; total number of tiles
+
+ db $01 ; number of tiles
+ dw vBGMap + $64
+ db $3E
+
+ db $01 ; number of tiles
+ dw vBGMap + $84
+ db $18
+
+ db $01 ; number of tiles
+ dw vBGMap + $A5
+ db $3E
+
+ db $00 ; terminator
+
+TileData_1ec29: ; 0x1ec29
+ dw LoadTileLists
+ db $03 ; total number of tiles
+
+ db $01 ; number of tiles
+ dw vBGMap + $64
+ db $3D
+
+ db $01 ; number of tiles
+ dw vBGMap + $84
+ db $18
+
+ db $01 ; number of tiles
+ dw vBGMap + $A5
+ db $3D
+
+ db $00 ; terminator
+
+TileData_1ec39: ; 0x1ec39
+ dw LoadTileLists
+ db $03 ; total number of tiles
+
+ db $01 ; number of tiles
+ dw vBGMap + $6F
+ db $3F
+
+ db $01 ; number of tiles
+ dw vBGMap + $8F
+ db $1D
+
+ db $01 ; number of tiles
+ dw vBGMap + $AE
+ db $3F
+
+ db $00 ; terminator
+
+TileData_1ec49: ; 0x1ec49
+ dw LoadTileLists
+ db $03 ; total number of tiles
+
+ db $01 ; number of tiles
+ dw vBGMap + $6F
+ db $40
+
+ db $01 ; number of tiles
+ dw vBGMap + $8F
+ db $1D
+
+ db $01 ; number of tiles
+ dw vBGMap + $AE
+ db $3F
+
+ db $00 ; terminator
+
+TileData_1ec59: ; 0x1ec59
+ dw LoadTileLists
+ db $03 ; total number of tiles
+
+ db $01 ; number of tiles
+ dw vBGMap + $6F
+ db $40
+
+ db $01 ; number of tiles
+ dw vBGMap + $8F
+ db $1E
+
+ db $01 ; number of tiles
+ dw vBGMap + $AE
+ db $3F
+
+ db $00 ; terminator
+
+TileData_1ec69: ; 0x1ec69
+ dw LoadTileLists
+ db $03 ; total number of tiles
+
+ db $01 ; number of tiles
+ dw vBGMap + $6F
+ db $40
+
+ db $01 ; number of tiles
+ dw vBGMap + $8F
+ db $1E
+
+ db $01 ; number of tiles
+ dw vBGMap + $AE
+ db $40
+
+ db $00 ; terminator
+
+TileData_1ec79: ; 0x1ec79
+ dw LoadTileLists
+ db $03 ; total number of tiles
+
+ db $01 ; number of tiles
+ dw vBGMap + $6F
+ db $40
+
+ db $01 ; number of tiles
+ dw vBGMap + $8F
+ db $1D
+
+ db $01 ; number of tiles
+ dw vBGMap + $AE
+ db $40
+
+ db $00 ; terminator
+
+TileData_1ec89: ; 0x1ec89
+ dw Func_11d2
+ db $20, $02
+ dw vTilesBG tile $15
+ dw StageBlueFieldBottomBaseGameBoyGfx + $950
+ db Bank(StageBlueFieldBottomBaseGameBoyGfx)
+ db $00
+
+TileData_1ec93: ; 0x1ec93
+ dw Func_11d2
+ db $20, $02
+ dw vTilesBG tile $15
+ dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1F40
+ db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
+ db $00
+
+TileData_1ec9d: ; 0x1ec9d
+ dw Func_11d2
+ db $20, $02
+ dw vTilesBG tile $15
+ dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1F60
+ db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
+ db $00
+
+TileData_1eca7: ; 0x1eca7
+ dw Func_11d2
+ db $20, $02
+ dw vTilesBG tile $15
+ dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1F80
+ db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
+ db $00
+
+TileData_1ecb1: ; 0x1ecb1
+ dw Func_11d2
+ db $20, $02
+ dw vTilesBG tile $19
+ dw StageBlueFieldBottomBaseGameBoyGfx + $990
+ db Bank(StageBlueFieldBottomBaseGameBoyGfx)
+ db $00
+
+TileData_1ecbb: ; 0x1ecbb
+ dw Func_11d2
+ db $20, $02
+ dw vTilesBG tile $1B
+ dw StageBlueFieldBottomBaseGameBoyGfx + $9B0
+ db Bank(StageBlueFieldBottomBaseGameBoyGfx)
+ db $00
+
+TileData_1ecc5: ; 0x1ecc5
+ dw Func_11d2
+ db $20, $02
+ dw vTilesBG tile $19
+ dw StageRedFieldBottomIndicatorsGfx_Gameboy + $2270
+ db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
+ db $00
+
+TileData_1eccf: ; 0x1eccf
+ dw Func_11d2
+ db $20, $02
+ dw vTilesBG tile $1B
+ dw StageRedFieldBottomIndicatorsGfx_Gameboy + $2290
+ db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
+ db $00
+
+TileData_1ecd9: ; 0x1ecd9
+ dw Func_11d2
+ db $20, $02
+ dw vTilesBG tile $19
+ dw StageRedFieldBottomIndicatorsGfx_Gameboy + $22B0
+ db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
+ db $00
+
+TileData_1ece3: ; 0x1ece3
+ dw Func_11d2
+ db $20, $02
+ dw vTilesBG tile $1B
+ dw StageRedFieldBottomIndicatorsGfx_Gameboy + $22D0
+ db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
+ db $00
+
+TileData_1eced: ; 0x1eced
+ dw Func_11d2
+ db $20, $02
+ dw vTilesBG tile $19
+ dw StageRedFieldBottomIndicatorsGfx_Gameboy + $22F0
+ db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
+ db $00
+
+TileData_1ecf7: ; 0x1ecf7
+ dw Func_11d2
+ db $20, $02
+ dw vTilesBG tile $1B
+ dw StageRedFieldBottomIndicatorsGfx_Gameboy + $2310
+ db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
+ db $00
+
+TileData_1ed01: ; 0x1ed01
+ dw Func_11d2
+ db $20, $02
+ dw vTilesBG tile $23
+ dw StageBlueFieldBottomBaseGameBoyGfx + $A30
+ db Bank(StageBlueFieldBottomBaseGameBoyGfx)
+ db $00
+
+TileData_1ed0b: ; 0x1ed0b
+ dw Func_11d2
+ db $20, $02
+ dw vTilesBG tile $25
+ dw StageBlueFieldBottomBaseGameBoyGfx + $A50
+ db Bank(StageBlueFieldBottomBaseGameBoyGfx)
+ db $00
+
+TileData_1ed15: ; 0x1ed15
+ dw Func_11d2
+ db $20, $02
+ dw vTilesBG tile $23
+ dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1C00
+ db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
+ db $00
+
+TileData_1ed1f: ; 0x1ed1f
+ dw Func_11d2
+ db $20, $02
+ dw vTilesBG tile $25
+ dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1C20
+ db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
+ db $00
+
+TileData_1ed29: ; 0x1ed29
+ dw Func_11d2
+ db $20, $02
+ dw vTilesBG tile $23
+ dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1C40
+ db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
+ db $00
+
+TileData_1ed33: ; 0x1ed33
+ dw Func_11d2
+ db $20, $02
+ dw vTilesBG tile $25
+ dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1C60
+ db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
+ db $00
+
+TileData_1e3d: ; 0x1e3d
+ dw Func_11d2
+ db $20, $02
+ dw vTilesBG tile $23
+ dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1C80
+ db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
+ db $00
+
+TileData_1ed47: ; 0x1ed47
+ dw Func_11d2
+ db $20, $02
+ dw vTilesBG tile $25
+ dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1CA0
+ db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
+ db $00
+
+TileDataPointers_1ed51: ; 0x1ed51
+ dw TileDataPointers_1ed5b
+ dw TileDataPointers_1ed65
+ dw TileDataPointers_1ed6f
+ dw TileDataPointers_1ed77
+ dw TileDataPointers_1ed7f
+
+TileDataPointers_1ed5b: ; 0x1ed5b
+ dw TileData_1ed87
+ dw TileData_1ed8a
+ dw TileData_1ed8d
+ dw TileData_1ed90
+ dw TileData_1ed93
+
+TileDataPointers_1ed65: ; 0x1ed65
+ dw TileData_1ed96
+ dw TileData_1ed99
+ dw TileData_1ed9c
+ dw TileData_1ed9f
+ dw TileData_1eda2
+
+TileDataPointers_1ed6f: ; 0x1ed6f
+ dw TileData_1eda5
+ dw TileData_1eda8
+ dw TileData_1edab
+ dw TileData_1edae
+
+TileDataPointers_1ed77: ; 0x1ed77
+ dw TileData_1edb1
+ dw TileData_1edb4
+ dw TileData_1edb7
+ dw TileData_1edba
+
+TileDataPointers_1ed7f: ; 0x1ed7f
+ dw TileData_1edbd
+ dw TileData_1edc0
+ dw TileData_1edc3
+ dw TileData_1edc6
+
+TileData_1ed87: ; 0x1ed87
+ db $01
+ dw TileData_1edc9
+
+TileData_1ed8a: ; 0x1ed8a
+ db $01
+ dw TileData_1edd9
+
+TileData_1ed8d: ; 0x1ed8d
+ db $01
+ dw TileData_1ede9
+
+TileData_1ed90: ; 0x1ed90
+ db $01
+ dw TileData_1edf9
+
+TileData_1ed93: ; 0x1ed93
+ db $01
+ dw TileData_1ee09
+
+TileData_1ed96: ; 0x1ed96
+ db $01
+ dw TileData_1ee19
+
+TileData_1ed99: ; 0x1ed99
+ db $01
+ dw TileData_1ee29
+
+TileData_1ed9c: ; 0x1ed9c
+ db $01
+ dw TileData_1ee39
+
+TileData_1ed9f: ; 0x1ed9f
+ db $01
+ dw TileData_1ee49
+
+TileData_1eda2: ; 0x1eda2
+ db $01
+ dw TileData_1ee59
+
+TileData_1eda5: ; 0x1eda5
+ db $01
+ dw TileData_1ee69
+
+TileData_1eda8: ; 0x1eda8
+ db $01
+ dw TileData_1ee75
+
+TileData_1edab: ; 0x1edab
+ db $01
+ dw TileData_1ee81
+
+TileData_1edae: ; 0x1edae
+ db $01
+ dw TileData_1ee8d
+
+TileData_1edb1: ; 0x1edb1
+ db $01
+ dw TileData_1ee99
+
+TileData_1edb4: ; 0x1edb4
+ db $01
+ dw TileData_1eea7
+
+TileData_1edb7: ; 0x1edb7
+ db $01
+ dw TileData_1eeb5
+
+TileData_1edba: ; 0x1edba
+ db $01
+ dw TileData_1eec3
+
+TileData_1edbd: ; 0x1edbd
+ db $01
+ dw TileData_1eed1
+
+TileData_1edc0: ; 0x1edc0
+ db $01
+ dw TileData_1eedf
+
+TileData_1edc3: ; 0x1edc3
+ db $01
+ dw TileData_1eeed
+
+TileData_1edc6: ; 0x1edc6
+ db $01
+ dw TileData_1eefb
+
+TileData_1edc9: ; 0x1edc9
+ dw LoadTileLists
+ db $03 ; total number of tiles
+
+ db $01 ; number of tiles
+ dw vBGMap + $64
+ db $31
+
+ db $01 ; number of tiles
+ dw vBGMap + $84
+ db $0D
+
+ db $01 ; number of tiles
+ dw vBGMap + $A5
+ db $7C
+
+ db $00 ; terminator
+
+TileData_1edd9: ; 0x1edd9
+ dw LoadTileLists
+ db $03 ; total number of tiles
+
+ db $01 ; number of tiles
+ dw vBGMap + $64
+ db $32
+
+ db $01 ; number of tiles
+ dw vBGMap + $84
+ db $0D
+
+ db $01 ; number of tiles
+ dw vBGMap + $A5
+ db $7C
+
+ db $00 ; terminator
+
+TileData_1ede9: ; 0x1ede9
+ dw LoadTileLists
+ db $03 ; total number of tiles
+
+ db $01 ; number of tiles
+ dw vBGMap + $64
+ db $32
+
+ db $01 ; number of tiles
+ dw vBGMap + $84
+ db $0E
+
+ db $01 ; number of tiles
+ dw vBGMap + $A5
+ db $7C
+
+ db $00 ; terminator
+
+TileData_1edf9: ; 0x1edf9
+ dw LoadTileLists
+ db $03 ; total number of tiles
+
+ db $01 ; number of tiles
+ dw vBGMap + $64
+ db $32
+
+ db $01 ; number of tiles
+ dw vBGMap + $84
+ db $0E
+
+ db $01 ; number of tiles
+ dw vBGMap + $A5
+ db $7D
+
+ db $00 ; terminator
+
+TileData_1ee09: ; 0x1ee09
+ dw LoadTileLists
+ db $03 ; total number of tiles
+
+ db $01 ; number of tiles
+ dw vBGMap + $64
+ db $31
+
+ db $01 ; number of tiles
+ dw vBGMap + $84
+ db $0E
+
+ db $01 ; number of tiles
+ dw vBGMap + $A5
+ db $7C
+
+ db $00 ; terminator
+
+TileData_1ee19: ; 0x1ee19
+ dw LoadTileLists
+ db $03 ; total number of tiles
+
+ db $01 ; number of tiles
+ dw vBGMap + $6F
+ db $33
+
+ db $01 ; number of tiles
+ dw vBGMap + $8F
+ db $0F
+
+ db $01 ; number of tiles
+ dw vBGMap + $AE
+ db $7E
+
+ db $00 ; terminator
+
+TileData_1ee29: ; 0x1ee29
+ dw LoadTileLists
+ db $03 ; total number of tiles
+
+ db $01 ; number of tiles
+ dw vBGMap + $6F
+ db $34
+
+ db $01 ; number of tiles
+ dw vBGMap + $8F
+ db $0F
+
+ db $01 ; number of tiles
+ dw vBGMap + $AE
+ db $7E
+
+ db $00 ; terminator
+
+TileData_1ee39: ; 0x1ee39
+ dw LoadTileLists
+ db $03 ; total number of tiles
+
+ db $01 ; number of tiles
+ dw vBGMap + $6F
+ db $34
+
+ db $01 ; number of tiles
+ dw vBGMap + $8F
+ db $10
+
+ db $01 ; number of tiles
+ dw vBGMap + $AE
+ db $7E
+
+ db $00 ; terminator
+
+TileData_1ee49: ; 0x1ee49
+ dw LoadTileLists
+ db $03 ; total number of tiles
+
+ db $01 ; number of tiles
+ dw vBGMap + $6F
+ db $34
+
+ db $01 ; number of tiles
+ dw vBGMap + $8F
+ db $10
+
+ db $01 ; number of tiles
+ dw vBGMap + $AE
+ db $7F
+
+ db $00 ; terminator
+
+TileData_1ee59: ; 0x1ee59
+ dw LoadTileLists
+ db $03 ; total number of tiles
+
+ db $01 ; number of tiles
+ dw vBGMap + $6F
+ db $33
+
+ db $01 ; number of tiles
+ dw vBGMap + $8F
+ db $10
+
+ db $01 ; number of tiles
+ dw vBGMap + $AE
+ db $7E
+
+ db $00 ; terminator
+
+TileData_1ee69: ; 0x1ee69
+ dw LoadTileLists
+ db $02 ; total number of tiles
+
+ db $01 ; number of tiles
+ dw vBGMap + $48
+ db $05
+
+ db $01 ; number of tiles
+ dw vBGMap + $68
+ db $06
+
+ db $00 ; terminator
+
+TileData_1ee75: ; 0x1ee75
+ dw LoadTileLists
+ db $02 ; total number of tiles
+
+ db $01 ; number of tiles
+ dw vBGMap + $48
+ db $07
+
+ db $01 ; number of tiles
+ dw vBGMap + $68
+ db $08
+
+ db $00 ; terminator
+
+TileData_1ee81: ; 0x1ee81
+ dw LoadTileLists
+ db $02 ; total number of tiles
+
+ db $01 ; number of tiles
+ dw vBGMap + $48
+ db $09
+
+ db $01 ; number of tiles
+ dw vBGMap + $68
+ db $0A
+
+ db $00 ; terminator
+
+TileData_1ee8d: ; 0x1ee8d
+ dw LoadTileLists
+ db $02 ; total number of tiles
+
+ db $01 ; number of tiles
+ dw vBGMap + $48
+ db $0B
+
+ db $01 ; number of tiles
+ dw vBGMap + $68
+ db $0C
+
+ db $00 ; terminator
+
+TileData_1ee99: ; 0x1ee99
+ dw LoadTileLists
+ db $04 ; total number of tiles
+
+ db $02 ; number of tiles
+ dw vBGMap + $4B
+ db $26, $27
+
+ db $02 ; number of tiles
+ dw vBGMap + $6B
+ db $28, $29
+
+ db $00 ; terminator
+
+TileData_1eea7: ; 0x1eea7
+ dw LoadTileLists
+ db $04 ; total number of tiles
+
+ db $02 ; number of tiles
+ dw vBGMap + $4B
+ db $2A, $2B
+
+ db $02 ; number of tiles
+ dw vBGMap + $6B
+ db $2C, $2D
+
+ db $00 ; terminator
+
+TileData_1eeb5: ; 0x1eeb5
+ dw LoadTileLists
+ db $04 ; total number of tiles
+
+ db $02 ; number of tiles
+ dw vBGMap + $4B
+ db $2E, $2F
+
+ db $02 ; number of tiles
+ dw vBGMap + $6B
+ db $30, $31
+
+ db $00 ; terminator
+
+TileData_1eec3: ; 0x1eec3
+ dw LoadTileLists
+ db $04 ; total number of tiles
+
+ db $02 ; number of tiles
+ dw vBGMap + $4B
+ db $32, $33
+
+ db $02 ; number of tiles
+ dw vBGMap + $6B
+ db $34, $35
+
+ db $00 ; terminator
+
+TileData_1eed1: ; 0x1eed1
+ dw LoadTileLists
+ db $04 ; total number of tiles
+
+ db $02 ; number of tiles
+ dw vBGMap + $49
+ db $16, $17
+
+ db $02 ; number of tiles
+ dw vBGMap + $69
+ db $18, $19
+
+ db $00 ; terminator
+
+TileData_1eedf: ; 0x1eedf
+ dw LoadTileLists
+ db $04 ; total number of tiles
+
+ db $02 ; number of tiles
+ dw vBGMap + $49
+ db $1A, $1B
+
+ db $02 ; number of tiles
+ dw vBGMap + $69
+ db $1C, $1D
+
+ db $00 ; terminator
+
+TileData_1eeed: ; 0x1eeed
+ dw LoadTileLists
+ db $04 ; total number of tiles
+
+ db $02 ; number of tiles
+ dw vBGMap + $49
+ db $1E, $1F
+
+ db $02 ; number of tiles
+ dw vBGMap + $69
+ db $20, $21
+
+ db $00 ; terminator
+
+TileData_1eefb: ; 0x1eefb
+ dw LoadTileLists
+ db $04 ; total number of tiles
+
+ db $02 ; number of tiles
+ dw vBGMap + $49
+ db $22, $23
+
+ db $02 ; number of tiles
+ dw vBGMap + $69
+ db $24, $25
+
+ db $00 ; terminator
diff --git a/data/queued_tiledata/blue_field/pokeballs.asm b/data/queued_tiledata/blue_field/pokeballs.asm
new file mode 100755
index 0000000..781f0ab
--- /dev/null
+++ b/data/queued_tiledata/blue_field/pokeballs.asm
@@ -0,0 +1,41 @@
+TileDataPointers_1f2b9:
+ dw TileData_1f2c1
+ dw TileData_1f2cc
+ dw TileData_1f2d7
+ dw TileData_1f2e2
+
+TileData_1f2c1: ; 0x1f2c1
+ db $06 ; total number of tiles
+
+ db $06 ; number of tiles
+ dw vBGMap + $107
+ db $B0, $B1, $B0, $B1, $B0, $B1
+
+ db $00 ; terminator
+
+TileData_1f2cc: ; 0x1f2cc
+ db $06 ; total number of tiles
+
+ db $06 ; number of tiles
+ dw vBGMap + $107
+ db $AE, $AF, $B0, $B1, $B0, $B1
+
+ db $00 ; terminator
+
+TileData_1f2d7: ; 0x1f2d7
+ db $06 ; total number of tiles
+
+ db $06 ; number of tiles
+ dw vBGMap + $107
+ db $AE, $AF, $AE, $AF, $B0, $B1
+
+ db $00 ; terminator
+
+TileData_1f2e2: ; 0x1f2e2
+ db $06 ; total number of tiles
+
+ db $06 ; number of tiles
+ dw vBGMap + $107
+ db $AE, $AF, $AE, $AF, $AE, $AF
+
+ db $00 ; terminator
diff --git a/data/queued_tiledata/red_field/arrow_indicators.asm b/data/queued_tiledata/red_field/arrow_indicators.asm
new file mode 100755
index 0000000..c23c29c
--- /dev/null
+++ b/data/queued_tiledata/red_field/arrow_indicators.asm
@@ -0,0 +1,863 @@
+TileDataPointers_169ed:
+ dw TileDataPointers_169f7
+ dw TileDataPointers_16a01
+ dw TileDataPointers_16a0b
+ dw TileDataPointers_16a0f
+ dw TileDataPointers_16a13
+
+TileDataPointers_169f7: ; 0x169f7
+ dw TileData_16a17
+ dw TileData_16a1e
+ dw TileData_16a25
+ dw TileData_16a2c
+ dw TileData_16a33
+
+TileDataPointers_16a01: ; 0x16a01
+ dw TileData_16a3a
+ dw TileData_16a41
+ dw TileData_16a48
+ dw TileData_16a4f
+ dw TileData_16a56
+
+TileDataPointers_16a0b: ; 0x16a0b
+ dw TileData_16a5d
+ dw TileData_16a60
+
+TileDataPointers_16a0f: ; 0x16a0f
+ dw TileData_16a63
+ dw TileData_16a66
+
+TileDataPointers_16a13: ; 0x16a13
+ dw TileData_16a69
+ dw TileData_16a6e
+
+TileData_16a17: ; 0x16a17
+ db $03
+ dw TileData_16a73
+ dw TileData_16a7d
+ dw TileData_16a87
+
+TileData_16a1e: ; 0x16a1e
+ db $03
+ dw TileData_16a91
+ dw TileData_16a9b
+ dw TileData_16aa5
+
+TileData_16a25: ; 0x16a25
+ db $03
+ dw TileData_16aaf
+ dw TileData_16ab9
+ dw TileData_16ac3
+
+TileData_16a2c: ; 0x16a2c
+ db $03
+ dw TileData_16acd
+ dw TileData_16ad7
+ dw TileData_16ae1
+
+TileData_16a33: ; 0x16a33
+ db $03
+ dw TileData_16aeb
+ dw TileData_16af5
+ dw TileData_16aff
+
+TileData_16a3a: ; 0x16a3a
+ db $03
+ dw TileData_16b09
+ dw TileData_16b13
+ dw TileData_16b1d
+
+TileData_16a41: ; 0x16a41
+ db $03
+ dw TileData_16b27
+ dw TileData_16b31
+ dw TileData_16b3b
+
+TileData_16a48: ; 0x16a48
+ db $03
+ dw TileData_16b45
+ dw TileData_16b4f
+ dw TileData_16b59
+
+TileData_16a4f: ; 0x16a4f
+ db $03
+ dw TileData_16b63
+ dw TileData_16b6d
+ dw TileData_16b77
+
+TileData_16a56: ; 0x16a56
+ db $03
+ dw TileData_16b81
+ dw TileData_16b8b
+ dw TileData_16b95
+
+TileData_16a5d: ; 0x16a5d
+ db $01
+ dw TileData_16b9f
+
+TileData_16a60: ; 0x16a60
+ db $01
+ dw TileData_16ba9
+
+TileData_16a63: ; 0x16a63
+ db $01
+ dw TileData_16bb3
+
+TileData_16a66: ; 0x16a66
+ db $01
+ dw TileData_16bbd
+
+TileData_16a69: ; 0x16a69
+ db $02
+ dw TileData_16bc7
+ dw TileData_16bd1
+
+TileData_16a6e: ; 0x16a6e
+ db $02
+ dw TileData_16bdb
+ dw TileData_16be5
+
+TileData_16a73: ; 0x16a73
+ dw Func_11d2
+ db $30, $03
+ dw vTilesBG tile $3A
+ dw StageRedFieldBottomBaseGameBoyGfx + $ba0
+ db Bank(StageRedFieldBottomBaseGameBoyGfx)
+ db $00
+
+TileData_16a7d: ; 0x16a7d
+ dw Func_11d2
+ db $30, $03
+ dw vTilesBG tile $3D
+ dw StageRedFieldBottomBaseGameBoyGfx + $bd0
+ db Bank(StageRedFieldBottomBaseGameBoyGfx)
+ db $00
+
+TileData_16a87: ; 0x16a87
+ dw Func_11d2
+ db $10, $01
+ dw vTilesBG tile $40
+ dw StageRedFieldBottomBaseGameBoyGfx + $c00
+ db Bank(StageRedFieldBottomBaseGameBoyGfx)
+ db $00
+
+TileData_16a91: ; 0x16a91
+ dw Func_11d2
+ db $30, $03
+ dw vTilesBG tile $3A
+ dw StageRedFieldBottomIndicatorsGfx_Gameboy + $380
+ db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
+ db $00
+
+TileData_16a9b: ; 0x16a9b
+ dw Func_11d2
+ db $30, $03
+ dw vTilesBG tile $3D
+ dw StageRedFieldBottomIndicatorsGfx_Gameboy + $3B0
+ db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
+ db $00
+
+TileData_16aa5: ; 0x16aa5
+ dw Func_11d2
+ db $10, $01
+ dw vTilesBG tile $40
+ dw StageRedFieldBottomIndicatorsGfx_Gameboy + $3E0
+ db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
+ db $00
+
+TileData_16aaf: ; 0x16aaf
+ dw Func_11d2
+ db $30, $03
+ dw vTilesBG tile $3A
+ dw StageRedFieldBottomIndicatorsGfx_Gameboy + $3F0
+ db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
+ db $00
+
+TileData_16ab9: ; 0x16ab9
+ dw Func_11d2
+ db $30, $03
+ dw vTilesBG tile $3D
+ dw StageRedFieldBottomIndicatorsGfx_Gameboy + $420
+ db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
+ db $00
+
+TileData_16ac3: ; 0x16ac3
+ dw Func_11d2
+ db $10, $01
+ dw vTilesBG tile $40
+ dw StageRedFieldBottomIndicatorsGfx_Gameboy + $450
+ db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
+ db $00
+
+TileData_16acd: ; 0x16acd
+ dw Func_11d2
+ db $30, $03
+ dw vTilesBG tile $3A
+ dw StageRedFieldBottomIndicatorsGfx_Gameboy + $460
+ db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
+ db $00
+
+TileData_16ad7: ; 0x16ad7
+ dw Func_11d2
+ db $30, $03
+ dw vTilesBG tile $3D
+ dw StageRedFieldBottomIndicatorsGfx_Gameboy + $490
+ db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
+ db $00
+
+TileData_16ae1: ; 0x16ae1
+ dw Func_11d2
+ db $10, $01
+ dw vTilesBG tile $40
+ dw StageRedFieldBottomIndicatorsGfx_Gameboy + $4C0
+ db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
+ db $00
+
+TileData_16aeb: ; 0x16aeb
+ dw Func_11d2
+ db $30, $03
+ dw vTilesBG tile $3A
+ dw StageRedFieldBottomIndicatorsGfx_Gameboy + $F30
+ db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
+ db $00
+
+TileData_16af5: ; 0x16af5
+ dw Func_11d2
+ db $30, $03
+ dw vTilesBG tile $3D
+ dw StageRedFieldBottomIndicatorsGfx_Gameboy + $F60
+ db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
+ db $00
+
+TileData_16aff: ; 0x16aff
+ dw Func_11d2
+ db $10, $01
+ dw vTilesBG tile $40
+ dw StageRedFieldBottomIndicatorsGfx_Gameboy + $F90
+ db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
+ db $00
+
+TileData_16b09: ; 0x16b09
+ dw Func_11d2
+ db $30, $03
+ dw vTilesBG tile $41
+ dw StageRedFieldBottomBaseGameBoyGfx + $c10
+ db Bank(StageRedFieldBottomBaseGameBoyGfx)
+ db $00
+
+TileData_16b13: ; 0x16b13
+ dw Func_11d2
+ db $30, $03
+ dw vTilesBG tile $44
+ dw StageRedFieldBottomBaseGameBoyGfx + $c40
+ db Bank(StageRedFieldBottomBaseGameBoyGfx)
+ db $00
+
+TileData_16b1d: ; 0x16b1d
+ dw Func_11d2
+ db $10, $01
+ dw vTilesBG tile $47
+ dw StageRedFieldBottomBaseGameBoyGfx + $c70
+ db Bank(StageRedFieldBottomBaseGameBoyGfx)
+ db $00
+
+TileData_16b27: ; 0x16b27
+ dw Func_11d2
+ db $30, $03
+ dw vTilesBG tile $41
+ dw StageRedFieldBottomIndicatorsGfx_Gameboy + $4D0
+ db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
+ db $00
+
+TileData_16b31: ; 0x16b31
+ dw Func_11d2
+ db $30, $03
+ dw vTilesBG tile $44
+ dw StageRedFieldBottomIndicatorsGfx_Gameboy + $500
+ db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
+ db $00
+
+TileData_16b3b: ; 0x16b3b
+ dw Func_11d2
+ db $10, $01
+ dw vTilesBG tile $47
+ dw StageRedFieldBottomIndicatorsGfx_Gameboy + $530
+ db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
+ db $00
+
+TileData_16b45: ; 0x16b45
+ dw Func_11d2
+ db $30, $03
+ dw vTilesBG tile $41
+ dw StageRedFieldBottomIndicatorsGfx_Gameboy + $540
+ db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
+ db $00
+
+TileData_16b4f: ; 0x16b4f
+ dw Func_11d2
+ db $30, $03
+ dw vTilesBG tile $44
+ dw StageRedFieldBottomIndicatorsGfx_Gameboy + $570
+ db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
+ db $00
+
+TileData_16b59: ; 0x16b59
+ dw Func_11d2
+ db $10, $01
+ dw vTilesBG tile $47
+ dw StageRedFieldBottomIndicatorsGfx_Gameboy + $5A0
+ db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
+ db $00
+
+TileData_16b63: ; 0x16b63
+ dw Func_11d2
+ db $30, $03
+ dw vTilesBG tile $41
+ dw StageRedFieldBottomIndicatorsGfx_Gameboy + $5B0
+ db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
+ db $00
+
+TileData_16b6d: ; 0x16b6d
+ dw Func_11d2
+ db $30, $03
+ dw vTilesBG tile $44
+ dw StageRedFieldBottomIndicatorsGfx_Gameboy + $5E0
+ db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
+ db $00
+
+TileData_16b77: ; 0x16b77
+ dw Func_11d2
+ db $10, $01
+ dw vTilesBG tile $47
+ dw StageRedFieldBottomIndicatorsGfx_Gameboy + $610
+ db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
+ db $00
+
+TileData_16b81: ; 0x16b81
+ dw Func_11d2
+ db $30, $03
+ dw vTilesBG tile $41
+ dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1010
+ db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
+ db $00
+
+TileData_16b8b: ; 0x16b8b
+ dw Func_11d2
+ db $30, $03
+ dw vTilesBG tile $44
+ dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1040
+ db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
+ db $00
+
+TileData_16b95: ; 0x16b95
+ dw Func_11d2
+ db $10, $01
+ dw vTilesBG tile $47
+ dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1070
+ db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
+ db $00
+
+TileData_16b9f: ; 0x16b9f
+ dw Func_11d2
+ db $30, $03
+ dw vTilesBG tile $20
+ dw StageRedFieldBottomBaseGameBoyGfx + $a00
+ db Bank(StageRedFieldBottomBaseGameBoyGfx)
+ db $00
+
+TileData_16ba9: ; 0x16ba9
+ dw Func_11d2
+ db $30, $03
+ dw vTilesBG tile $20
+ dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1080
+ db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
+ db $00
+
+TileData_16bb3: ; 0x16bb3
+ dw Func_11d2
+ db $30, $03
+ dw vTilesBG tile $23
+ dw StageRedFieldBottomBaseGameBoyGfx + $a30
+ db Bank(StageRedFieldBottomBaseGameBoyGfx)
+ db $00
+
+TileData_16bbd: ; 0x16bbd
+ dw Func_11d2
+ db $30, $03
+ dw vTilesBG tile $23
+ dw StageRedFieldBottomIndicatorsGfx_Gameboy + $10B0
+ db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
+ db $00
+
+TileData_16bc7: ; 0x16bc7
+ dw Func_11d2
+ db $20, $02
+ dw vTilesBG tile $1C
+ dw StageRedFieldBottomBaseGameBoyGfx + $9c0
+ db Bank(StageRedFieldBottomBaseGameBoyGfx)
+ db $00
+
+TileData_16bd1: ; 0x16bd1
+ dw Func_11d2
+ db $20, $02
+ dw vTilesBG tile $1E
+ dw StageRedFieldBottomBaseGameBoyGfx + $9e0
+ db Bank(StageRedFieldBottomBaseGameBoyGfx)
+ db $00
+
+TileData_16bdb: ; 0x16bdb
+ dw Func_11d2
+ db $20, $02
+ dw vTilesBG tile $1C
+ dw StageRedFieldBottomIndicatorsGfx_Gameboy + $6E0
+ db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
+ db $00
+
+TileData_16be5: ; 0x16be5
+ dw Func_11d2
+ db $20, $02
+ dw vTilesBG tile $1E
+ dw StageRedFieldBottomIndicatorsGfx_Gameboy + $700
+ db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
+ db $00
+
+TileDataPointers_16bef:
+ dw TileDataPointers_16bf9
+ dw TileDataPointers_16c03
+ dw TileDataPointers_16c0d
+ dw TileDataPointers_16c11
+ dw TileDataPointers_16c15
+
+TileDataPointers_16bf9: ; 0x16bf9
+ dw TileData_16c19
+ dw TileData_16c1c
+ dw TileData_16c1f
+ dw TileData_16c22
+ dw TileData_16c25
+
+TileDataPointers_16c03: ; 0x16c03
+ dw TileData_16c28
+ dw TileData_16c2b
+ dw TileData_16c2e
+ dw TileData_16c31
+ dw TileData_16c34
+
+TileDataPointers_16c0d: ; 0x16c0d
+ dw TileData_16c37
+ dw TileData_16c3a
+
+TileDataPointers_16c11: ; 0x16c11
+ dw TileData_16c3d
+ dw TileData_16c40
+
+TileDataPointers_16c15: ; 0x16c15
+ dw TileData_16c43
+ dw TileData_16c46
+
+TileData_16c19: ; 0x16c19
+ db $01
+ dw TileData_16c49
+
+TileData_16c1c: ; 0x16c1c
+ db $01
+ dw TileData_16c63
+
+TileData_16c1f: ; 0x16c1f
+ db $01
+ dw TileData_16c7d
+
+TileData_16c22: ; 0x16c22
+ db $01
+ dw TileData_16c97
+
+TileData_16c25: ; 0x16c25
+ db $01
+ dw TileData_16cb1
+
+TileData_16c28: ; 0x16c28
+ db $01
+ dw TileData_16ccb
+
+TileData_16c2b: ; 0x16c2b
+ db $01
+ dw TileData_16ce5
+
+TileData_16c2e: ; 0x16c2e
+ db $01
+ dw TileData_16cff
+
+TileData_16c31: ; 0x16c31
+ db $01
+ dw TileData_16d19
+
+TileData_16c34: ; 0x16c34
+ db $01
+ dw TileData_16d33
+
+TileData_16c37: ; 0x16c37
+ db $01
+ dw TileData_16d4d
+
+TileData_16c3a: ; 0x16c3a
+ db $01
+ dw TileData_16d5a
+
+TileData_16c3d: ; 0x16c3d
+ db $01
+ dw TileData_16d67
+
+TileData_16c40: ; 0x16c40
+ db $01
+ dw TileData_16d74
+
+TileData_16c43: ; 0x16c43
+ db $01
+ dw TileData_16d81
+
+TileData_16c46: ; 0x16c46
+ db $01
+ dw TileData_16d8f
+
+TileData_16c49: ; 0x16c49
+ dw LoadTileLists
+ db $07
+
+ db $01
+ dw vBGMap + $23
+ db $5E
+
+ db $02
+ dw vBGMap + $43
+ db $5F, $60
+
+ db $02
+ dw vBGMap + $64
+ db $61, $62
+
+ db $01
+ dw vBGMap + $85
+ db $63
+
+ db $01
+ dw vBGMap + $A5
+ db $64
+
+ db $00
+
+TileData_16c63: ; 0x16c63
+ dw LoadTileLists
+ db $07
+
+ db $01
+ dw vBGMap + $23
+ db $65
+
+ db $02
+ dw vBGMap + $43
+ db $66, $67
+
+ db $02
+ dw vBGMap + $64
+ db $61, $62
+
+ db $01
+ dw vBGMap + $85
+ db $63
+
+ db $01
+ dw vBGMap + $A5
+ db $64
+
+ db $00
+
+TileData_16c7d: ; 0x16c7d
+ dw LoadTileLists
+ db $07
+
+ db $01
+ dw vBGMap + $23
+ db $65
+
+ db $02
+ dw vBGMap + $43
+ db $66, $67
+
+ db $02
+ dw vBGMap + $64
+ db $68, $69
+
+ db $01
+ dw vBGMap + $85
+ db $63
+
+ db $01
+ dw vBGMap + $A5
+ db $64
+
+ db $00
+
+TileData_16c97: ; 0x16c97
+ dw LoadTileLists
+ db $07
+
+ db $01
+ dw vBGMap + $23
+ db $65
+
+ db $02
+ dw vBGMap + $43
+ db $66, $67
+
+ db $02
+ dw vBGMap + $64
+ db $68, $69
+
+ db $01
+ dw vBGMap + $85
+ db $6A
+
+ db $01
+ dw vBGMap + $A5
+ db $6B
+
+ db $00
+
+TileData_16cb1: ; 0x16cb1
+ dw LoadTileLists
+ db $07
+
+ db $01
+ dw vBGMap + $23
+ db $5E
+
+ db $02
+ dw vBGMap + $43
+ db $5F, $60
+
+ db $02
+ dw vBGMap + $64
+ db $68, $69
+
+ db $01
+ dw vBGMap + $85
+ db $6A
+
+ db $01
+ dw vBGMap + $A5
+ db $6B
+
+ db $00
+
+TileData_16ccb: ; 0x16ccb
+ dw LoadTileLists
+ db $07
+
+ db $01
+ dw vBGMap + $30
+ db $6C
+
+ db $02
+ dw vBGMap + $4F
+ db $6D, $6E
+
+ db $02
+ dw vBGMap + $6E
+ db $6F, $70
+
+ db $01
+ dw vBGMap + $8E
+ db $71
+
+ db $01
+ dw vBGMap + $AE
+ db $72
+
+ db $00
+
+TileData_16ce5: ; 0x16ce5
+ dw LoadTileLists
+ db $07
+
+ db $01
+ dw vBGMap + $30
+ db $73
+
+ db $02
+ dw vBGMap + $4F
+ db $74, $75
+
+ db $02
+ dw vBGMap + $6E
+ db $6F, $70
+
+ db $01
+ dw vBGMap + $8E
+ db $71
+
+ db $01
+ dw vBGMap + $AE
+ db $72
+
+ db $00
+
+TileData_16cff: ; 0x16cff
+ dw LoadTileLists
+ db $07
+
+ db $01
+ dw vBGMap + $30
+ db $73
+
+ db $02
+ dw vBGMap + $4F
+ db $74, $75
+
+ db $02
+ dw vBGMap + $6E
+ db $76, $77
+
+ db $01
+ dw vBGMap + $8E
+ db $71
+
+ db $01
+ dw vBGMap + $AE
+ db $72
+
+ db $00
+
+TileData_16d19: ; 0x16d19
+ dw LoadTileLists
+ db $07
+
+ db $01
+ dw vBGMap + $30
+ db $73
+
+ db $02
+ dw vBGMap + $4F
+ db $74, $75
+
+ db $02
+ dw vBGMap + $6E
+ db $76, $77
+
+ db $01
+ dw vBGMap + $8E
+ db $78
+
+ db $01
+ dw vBGMap + $AE
+ db $79
+
+ db $00
+
+TileData_16d33: ; 0x16d33
+ dw LoadTileLists
+ db $07
+
+ db $01
+ dw vBGMap + $30
+ db $6C
+
+ db $02
+ dw vBGMap + $4F
+ db $6D, $6E
+
+ db $02
+ dw vBGMap + $6E
+ db $76, $77
+
+ db $01
+ dw vBGMap + $8E
+ db $78
+
+ db $01
+ dw vBGMap + $AE
+ db $79
+
+ db $00
+
+TileData_16d4d: ; 0x16d4d
+ dw LoadTileLists
+ db $03
+
+ db $01
+ dw vBGMap + $6
+ db $48
+
+ db $02
+ dw vBGMap + $26
+ db $49, $4A
+
+ db $00
+
+TileData_16d5a: ; 0x16d5a
+ dw LoadTileLists
+ db $03
+
+ db $01
+ dw vBGMap + $6
+ db $4B
+
+ db $02
+ dw vBGMap + $26
+ db $4C, $4D
+
+ db $00
+
+TileData_16d67: ; 0x16d67
+ dw LoadTileLists
+ db $03
+
+ db $01
+ dw vBGMap + $D
+ db $4E
+
+ db $02
+ dw vBGMap + $2C
+ db $4F, $50
+
+ db $00
+
+TileData_16d74: ; 0x16d74
+ dw LoadTileLists
+ db $03
+
+ db $01
+ dw vBGMap + $D
+ db $51
+
+ db $02
+ dw vBGMap + $2C
+ db $52, $53
+
+ db $00
+
+TileData_16d81: ; 0x16d81
+ dw LoadTileLists
+ db $04
+
+ db $02
+ dw vBGMap + $49
+ db $40, $41
+
+ db $02
+ dw vBGMap + $69
+ db $42, $43
+
+ db $00
+
+TileData_16d8f: ; 0x16d8f
+ dw LoadTileLists
+ db $04
+
+ db $02
+ dw vBGMap + $49
+ db $44, $45
+
+ db $02
+ dw vBGMap + $69
+ db $46, $47
+
+ db $00
diff --git a/data/queued_tiledata/red_field/pokeballs.asm b/data/queued_tiledata/red_field/pokeballs.asm
new file mode 100755
index 0000000..fce8dcd
--- /dev/null
+++ b/data/queued_tiledata/red_field/pokeballs.asm
@@ -0,0 +1,37 @@
+TileDataPointers_17528:
+ dw TileData_17530
+ dw TileData_1753B
+ dw TileData_17546
+ dw TileData_17551
+
+TileData_17530: ; 0x17530
+ db $06 ; total number of tiles
+
+ db $06 ; number of tiles
+ dw $9907
+ db $B0, $B1, $B0, $B1, $B0, $B1
+ db $00
+
+TileData_1753B: ; 0x1753B
+ db $06 ; total number of tiles
+
+ db $06 ; number of tiles
+ dw $9907
+ db $AE, $AF, $B0, $B1, $B0, $B1
+ db $00
+
+TileData_17546: ; 0x17546
+ db $06 ; total number of tiles
+
+ db $06 ; number of tiles
+ dw $9907
+ db $AE, $AF, $AE, $AF, $B0, $B1
+ db $00
+
+TileData_17551: ; 0x17551
+ db $06 ; total number of tiles
+
+ db $06 ; number of tiles
+ dw $9907
+ db $AE, $AF, $AE, $AF, $AE, $AF
+ db $00
diff --git a/data/queued_tiledata/red_field/staryu_bumper.asm b/data/queued_tiledata/red_field/staryu_bumper.asm
new file mode 100755
index 0000000..823e0ca
--- /dev/null
+++ b/data/queued_tiledata/red_field/staryu_bumper.asm
@@ -0,0 +1,247 @@
+TileDataPointers_16899:
+ dw TileData_168a1
+ dw TileData_168a8
+ dw TileData_168af
+ dw TileData_168af
+
+TileData_168a1: ; 0x168a1
+ db $03
+ dw TileData_168b6
+ dw TileData_168c0
+ dw TileData_168ca
+
+TileData_168a8: ; 0x168a8
+ db $03
+ dw TileData_168d4
+ dw TileData_168de
+ dw TileData_168e8
+
+TileData_168af: ; 0x168af
+ db $03
+ dw TileData_168f2
+ dw TileData_168fc
+ dw TileData_16906
+
+TileData_168b6: ; 0x168b6
+ dw Func_11d2
+ db $30, $03
+ dw vTilesSH tile $50
+ dw StageRedFieldTopBaseGameBoyGfx + $260
+ db Bank(StageRedFieldTopBaseGameBoyGfx)
+ db $00
+
+TileData_168c0: ; 0x168c0
+ dw Func_11d2
+ db $30, $03
+ dw vTilesSH tile $53
+ dw StageRedFieldTopBaseGameBoyGfx + $290
+ db Bank(StageRedFieldTopBaseGameBoyGfx)
+ db $00
+
+TileData_168ca: ; 0x168ca
+ dw Func_11d2
+ db $10, $01
+ dw vTilesSH tile $56
+ dw StageRedFieldTopBaseGameBoyGfx + $2c0
+ db Bank(StageRedFieldTopBaseGameBoyGfx)
+ db $00
+
+TileData_168d4: ; 0x168d4
+ dw Func_11d2
+ db $30, $03
+ dw vTilesSH tile $52
+ dw StageRedFieldTopBaseGameBoyGfx + $280
+ db Bank(StageRedFieldTopBaseGameBoyGfx)
+ db $00
+
+TileData_168de: ; 0x168de
+ dw Func_11d2
+ db $20, $02
+ dw vTilesSH tile $55
+ dw StageRedFieldTopBaseGameBoyGfx + $2b0
+ db Bank(StageRedFieldTopBaseGameBoyGfx)
+ db $00
+
+TileData_168e8: ; 0x168e8
+ dw Func_11d2
+ db $20, $02
+ dw vTilesSH tile $50
+ dw StageRedFieldBottomIndicatorsGfx_Gameboy + $EA0
+ db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
+ db $00
+
+TileData_168f2: ; 0x168f2
+ dw Func_11d2
+ db $30, $03
+ dw vTilesSH tile $51
+ dw StageRedFieldBottomIndicatorsGfx_Gameboy + $10E0
+ db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
+ db $00
+
+TileData_168fc: ; 0x168fc
+ dw Func_11d2
+ db $30, $03
+ dw vTilesSH tile $54
+ dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1110
+ db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
+ db $00
+
+TileData_16906: ; 0x16906
+ dw Func_11d2
+ db $10, $01
+ dw vTilesSH tile $50
+ dw StageRedFieldTopBaseGameBoyGfx + $260
+ db Bank(StageRedFieldTopBaseGameBoyGfx)
+ db $00
+
+TileDataPointers_16910:
+ dw TileData_16918
+ dw TileData_1691b
+ dw TileData_1691e
+ dw TileData_1691e
+
+TileData_16918: ;0x16918
+ db $01
+ dw TileData_16921
+
+TileData_1691b: ;0x1691b
+ db $01
+ dw TileData_16934
+
+TileData_1691e: ;0x1691e
+ db $01
+ dw TileData_16947
+
+TileData_16921: ; 0x16921
+ dw LoadTileLists
+ db $06
+
+ db $03
+ dw vBGMap + $1C6
+ db $C3, $C4, $C5
+
+ db $02
+ dw vBGMap + $1E7
+ db $C6, $C7
+
+ db $01
+ dw vBGMap + $207
+ db $C8
+
+ db $00
+
+TileData_16934: ; 0x16934
+ dw LoadTileLists
+ db $06
+
+ db $03
+ dw vBGMap + $1C6
+ db $CD, $CE, $C5
+
+ db $02
+ dw vBGMap + $1E7
+ db $C6, $C7
+
+ db $01
+ dw vBGMap + $207
+ db $C8
+
+ db $00
+
+TileData_16947: ; 0x16947
+ dw LoadTileLists
+ db $06
+
+ db $03
+ dw vBGMap + $1C6
+ db $C3, $C4, $C9
+
+ db $02
+ dw vBGMap + $1E7
+ db $CA, $CB
+
+ db $01
+ dw vBGMap + $207
+ db $CC
+
+ db $00
+
+TileDataPointers_1695a:
+ dw TileData_1695e
+ dw TileData_16961
+
+TileData_1695e: ; 0x1695e
+ db $01
+ dw TileData_16964
+
+TileData_16961: ; 0x16961
+ db $01
+ dw TileData_16972
+
+TileData_16964: ; 0x16964
+ dw LoadTileLists
+ db $04
+
+ db $02
+ dw vBGMap + $40
+ db $BE, $BF
+
+ db $02
+ dw vBGMap + $60
+ db $C0, $C1
+
+ db $00
+
+TileData_16972: ; 0x16972
+ dw LoadTileLists
+ db $04
+
+ db $02
+ dw vBGMap + $40
+ db $C2, $C3
+
+ db $02
+ dw vBGMap + $60
+ db $C4, $C5
+
+ db $00
+
+TileDataPointers_16980:
+ dw TileData_16984
+ dw TileData_16987
+
+TileData_16984: ; 0x16984
+ db $01
+ dw TileData_1698a
+
+TileData_16987: ; 0x16987
+ db $01
+ dw TileData_16998
+
+TileData_1698a: ; 0x1698a
+ dw LoadTileLists
+ db $04
+
+ db $02
+ dw vBGMap + $40
+ db $BC, $BD
+
+ db $02
+ dw vBGMap + $60
+ db $BE, $BF
+
+ db $00
+
+TileData_16998: ; 0x16998
+ dw LoadTileLists
+ db $04
+
+ db $02
+ dw vBGMap + $40
+ db $C0, $C1
+
+ db $02
+ dw vBGMap + $60
+ db $C2, $C3
+
+ db $00
diff --git a/data/queued_tiledata/red_field/structures.asm b/data/queued_tiledata/red_field/structures.asm
new file mode 100755
index 0000000..38f2d8d
--- /dev/null
+++ b/data/queued_tiledata/red_field/structures.asm
@@ -0,0 +1,804 @@
+TileDataPointers_15a3f:
+ dw $0000
+ dw TileData_15b71
+ dw TileData_15b16
+ dw TileData_15abf
+ dw TileData_15b23
+ dw TileData_15adc
+ dw TileData_15b2a
+ dw TileData_15af3
+ dw $0000
+ dw $0000
+ dw $0000
+ dw TileData_15b16
+ dw $0000
+ dw TileData_15b23
+ dw $0000
+ dw TileData_15b2a
+ dw $0000
+ dw $0000
+ dw $0000
+ dw TileData_15b71
+ dw TileData_15b3d
+ dw $0000
+ dw TileData_15b50
+ dw $0000
+ dw $0000
+ dw $0000
+ dw TileData_15b82
+ dw $0000
+ dw $0000
+ dw TileData_15b3d
+ dw $0000
+ dw TileData_15b50
+ dw $0000
+ dw $0000
+ dw TileData_15b57
+ dw $0000
+ dw $0000
+ dw TileData_15b71
+ dw TileData_15b2a
+ dw $0000
+ dw $0000
+ dw $0000
+ dw $0000
+ dw TileData_15b57
+ dw TileData_15b82
+ dw $0000
+ dw $0000
+ dw TileData_15b2a
+ dw $0000
+ dw $0000
+ dw TileData_15b6a
+ dw $0000
+ dw TileData_15b3d
+ dw $0000
+ dw $0000
+ dw TileData_15b71
+ dw $0000
+ dw $0000
+ dw $0000
+ dw TileData_15b6a
+ dw $0000
+ dw TileData_15b3d
+ dw TileData_15b82
+ dw $0000
+
+TileData_15abf: ; 0x15abf
+ db $e
+ dw TileData_15b93
+ dw TileData_15b9d
+ dw TileData_15ba7
+ dw TileData_15bb1
+ dw TileData_15bbb
+ dw TileData_15bc5
+ dw TileData_15c0b
+ dw TileData_15c15
+ dw TileData_15c1f
+ dw TileData_15c29
+ dw TileData_15c33
+ dw TileData_15c3d
+ dw TileData_15c47
+ dw TileData_15c51
+
+TileData_15adc: ; 0x15adc
+ db $0b
+ dw TileData_15c0b
+ dw TileData_15c15
+ dw TileData_15c1f
+ dw TileData_15c29
+ dw TileData_15c33
+ dw TileData_15c3d
+ dw TileData_15c47
+ dw TileData_15c51
+ dw TileData_15ce7
+ dw TileData_15cf1
+ dw TileData_15cfb
+
+TileData_15af3: ; 0x15af3
+ db $11
+ dw TileData_15b93
+ dw TileData_15b9d
+ dw TileData_15ba7
+ dw TileData_15bb1
+ dw TileData_15bbb
+ dw TileData_15bc5
+ dw TileData_15c0b
+ dw TileData_15c15
+ dw TileData_15c1f
+ dw TileData_15c29
+ dw TileData_15c33
+ dw TileData_15c3d
+ dw TileData_15c47
+ dw TileData_15c51
+ dw TileData_15cab
+ dw TileData_15cb5
+ dw TileData_15cbf
+
+TileData_15b16: ; 0x15b16
+ db $06
+ dw TileData_15b93
+ dw TileData_15b9d
+ dw TileData_15ba7
+ dw TileData_15bb1
+ dw TileData_15bbb
+ dw TileData_15bc5
+
+TileData_15b23: ; 0x15b23
+ db $03
+ dw TileData_15ce7
+ dw TileData_15cf1
+ dw TileData_15cfb
+
+TileData_15b2a: ; 0x15b2a
+ db $09
+ dw TileData_15b93
+ dw TileData_15b9d
+ dw TileData_15ba7
+ dw TileData_15bb1
+ dw TileData_15bbb
+ dw TileData_15bc5
+ dw TileData_15cab
+ dw TileData_15cb5
+ dw TileData_15cbf
+
+TileData_15b3d: ; 0x15b3d
+ db $09
+ dw TileData_15bcf
+ dw TileData_15bd9
+ dw TileData_15be3
+ dw TileData_15bed
+ dw TileData_15bf7
+ dw TileData_15c01
+ dw TileData_15ce7
+ dw TileData_15cf1
+ dw TileData_15cfb
+
+TileData_15b50: ; 0x15b50
+ db $03
+ dw TileData_15cab
+ dw TileData_15cb5
+ dw TileData_15cbf
+
+TileData_15b57: ; 0x15b57
+ db $09
+ dw TileData_15b93
+ dw TileData_15b9d
+ dw TileData_15ba7
+ dw TileData_15bb1
+ dw TileData_15bbb
+ dw TileData_15bc5
+ dw TileData_15cc9
+ dw TileData_15cd3
+ dw TileData_15cdd
+
+TileData_15b6a: ; 0x15b6a
+ db $03
+ dw TileData_15cc9
+ dw TileData_15cd3
+ dw TileData_15cdd
+
+TileData_15b71: ; 0x15b71
+ db $08
+ dw TileData_15c0b
+ dw TileData_15c15
+ dw TileData_15c1f
+ dw TileData_15c29
+ dw TileData_15c33
+ dw TileData_15c3d
+ dw TileData_15c47
+ dw TileData_15c51
+
+TileData_15b82: ; 0x15b82
+ db $08
+ dw TileData_15c5b
+ dw TileData_15c65
+ dw TileData_15c6f
+ dw TileData_15c79
+ dw TileData_15c83
+ dw TileData_15c8d
+ dw TileData_15c97
+ dw TileData_15ca1
+
+TileData_15b93: ; 0x15b93
+ dw Func_11d2
+ db $30, $03
+ dw vTilesBG tile $44
+ dw StageRedFieldBottomIndicatorsGfx_Gameboy
+ db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
+ db $00
+
+TileData_15b9d: ; 0x15b9d
+ dw Func_11d2
+ db $30, $03
+ dw vTilesBG tile $47
+ dw StageRedFieldBottomIndicatorsGfx_Gameboy + $30
+ db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
+ db $00
+
+TileData_15ba7: ; 0x15ba7
+ dw Func_11d2
+ db $30, $03
+ dw vTilesBG tile $4A
+ dw StageRedFieldBottomIndicatorsGfx_Gameboy + $60
+ db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
+ db $00
+
+TileData_15bb1: ; 0x15bb1
+ dw Func_11d2
+ db $30, $03
+ dw vTilesBG tile $4D
+ dw StageRedFieldBottomIndicatorsGfx_Gameboy + $90
+ db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
+ db $00
+
+TileData_15bbb: ; 0x15bbb
+ dw Func_11d2
+ db $30, $03
+ dw vTilesBG tile $50
+ dw StageRedFieldBottomIndicatorsGfx_Gameboy + $C0
+ db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
+ db $00
+
+TileData_15bc5: ; 0x15bc5
+ dw Func_11d2
+ db $30, $03
+ dw vTilesBG tile $53
+ dw StageRedFieldBottomIndicatorsGfx_Gameboy + $F0
+ db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
+ db $00
+
+TileData_15bcf: ; 0x15bcf
+ dw Func_11d2
+ db $30, $03
+ dw vTilesBG tile $44
+ dw StageRedFieldTopBaseGameBoyGfx + $9a0
+ db Bank(StageRedFieldTopBaseGameBoyGfx)
+ db $00
+
+TileData_15bd9: ; 0x15bd9
+ dw Func_11d2
+ db $30, $03
+ dw vTilesBG tile $47
+ dw StageRedFieldTopBaseGameBoyGfx + $9d0
+ db Bank(StageRedFieldTopBaseGameBoyGfx)
+ db $00
+
+TileData_15be3: ; 0x15be3
+ dw Func_11d2
+ db $30, $03
+ dw vTilesBG tile $4A
+ dw StageRedFieldTopBaseGameBoyGfx + $a00
+ db Bank(StageRedFieldTopBaseGameBoyGfx)
+ db $00
+
+TileData_15bed: ; 0x15bed
+ dw Func_11d2
+ db $30, $03
+ dw vTilesBG tile $4D
+ dw StageRedFieldTopBaseGameBoyGfx + $a30
+ db Bank(StageRedFieldTopBaseGameBoyGfx)
+ db $00
+
+TileData_15bf7: ; 0x15bf7
+ dw Func_11d2
+ db $30, $03
+ dw vTilesBG tile $50
+ dw StageRedFieldTopBaseGameBoyGfx + $a60
+ db Bank(StageRedFieldTopBaseGameBoyGfx)
+ db $00
+
+TileData_15c01: ; 0x15c01
+ dw Func_11d2
+ db $30, $03
+ dw vTilesBG tile $53
+ dw StageRedFieldTopBaseGameBoyGfx + $a90
+ db Bank(StageRedFieldTopBaseGameBoyGfx)
+ db $00
+
+TileData_15c0b: ; 0x15c0b
+ dw Func_11d2
+ db $30, $03
+ dw vTilesBG tile $56
+ dw StageRedFieldBottomIndicatorsGfx_Gameboy + $120
+ db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
+ db $00
+
+TileData_15c15: ; 0x15c15
+ dw Func_11d2
+ db $30, $03
+ dw vTilesBG tile $59
+ dw StageRedFieldBottomIndicatorsGfx_Gameboy + $150
+ db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
+ db $00
+
+TileData_15c1f: ; 0x15c1f
+ dw Func_11d2
+ db $30, $03
+ dw vTilesBG tile $5C
+ dw StageRedFieldBottomIndicatorsGfx_Gameboy + $180
+ db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
+ db $00
+
+TileData_15c29: ; 0x15c29
+ dw Func_11d2
+ db $30, $03
+ dw vTilesBG tile $5F
+ dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1B0
+ db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
+ db $00
+
+TileData_15c33: ; 0x15c33
+ dw Func_11d2
+ db $30, $03
+ dw vTilesBG tile $62
+ dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1E0
+ db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
+ db $00
+
+TileData_15c3d: ; 0x15c3d
+ dw Func_11d2
+ db $10, $01
+ dw vTilesBG tile $65
+ dw StageRedFieldBottomIndicatorsGfx_Gameboy + $210
+ db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
+ db $00
+
+TileData_15c47: ; 0x15c47
+ dw Func_11d2
+ db $30, $03
+ dw vTilesBG tile $66
+ dw StageRedFieldBottomIndicatorsGfx_Gameboy + $620
+ db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
+ db $00
+
+TileData_15c51: ; 0x15c51
+ dw Func_11d2
+ db $30, $03
+ dw vTilesBG tile $69
+ dw StageRedFieldBottomIndicatorsGfx_Gameboy + $650
+ db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
+ db $00
+
+TileData_15c5b: ; 0x15c5b
+ dw Func_11d2
+ db $30, $03
+ dw vTilesBG tile $56
+ dw StageRedFieldTopBaseGameBoyGfx + $ac0
+ db Bank(StageRedFieldTopBaseGameBoyGfx)
+ db $00
+
+TileData_15c65: ; 0x15c65
+ dw Func_11d2
+ db $30, $03
+ dw vTilesBG tile $59
+ dw StageRedFieldTopBaseGameBoyGfx + $af0
+ db Bank(StageRedFieldTopBaseGameBoyGfx)
+ db $00
+
+TileData_15c6f: ; 0x15c6f
+ dw Func_11d2
+ db $30, $03
+ dw vTilesBG tile $5C
+ dw StageRedFieldTopBaseGameBoyGfx + $b20
+ db Bank(StageRedFieldTopBaseGameBoyGfx)
+ db $00
+
+TileData_15c79: ; 0x15c79
+ dw Func_11d2
+ db $30, $03
+ dw vTilesBG tile $5F
+ dw StageRedFieldTopBaseGameBoyGfx + $b50
+ db Bank(StageRedFieldTopBaseGameBoyGfx)
+ db $00
+
+TileData_15c83: ; 0x15c83
+ dw Func_11d2
+ db $30, $03
+ dw vTilesBG tile $62
+ dw StageRedFieldTopBaseGameBoyGfx + $b80
+ db Bank(StageRedFieldTopBaseGameBoyGfx)
+ db $00
+
+TileData_15c8d: ; 0x15c8d
+ dw Func_11d2
+ db $10, $01
+ dw vTilesBG tile $65
+ dw StageRedFieldTopBaseGameBoyGfx + $bb0
+ db Bank(StageRedFieldTopBaseGameBoyGfx)
+ db $00
+
+TileData_15c97: ; 0x15c97
+ dw Func_11d2
+ db $30, $03
+ dw vTilesBG tile $66
+ dw StageRedFieldTopBaseGameBoyGfx + $bc0
+ db Bank(StageRedFieldTopBaseGameBoyGfx)
+ db $00
+
+TileData_15ca1: ; 0x15ca1
+ dw Func_11d2
+ db $30, $03
+ dw vTilesBG tile $69
+ dw StageRedFieldTopBaseGameBoyGfx + $bf0
+ db Bank(StageRedFieldTopBaseGameBoyGfx)
+ db $00
+
+TileData_15cab: ; 0x15cab
+ dw Func_11d2
+ db $30, $03
+ dw vTilesBG tile $6C
+ dw StageRedFieldBottomIndicatorsGfx_Gameboy + $2B0
+ db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
+ db $00
+
+TileData_15cb5: ; 0x15cb5
+ dw Func_11d2
+ db $30, $03
+ dw vTilesBG tile $6F
+ dw StageRedFieldBottomIndicatorsGfx_Gameboy + $2E0
+ db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
+ db $00
+
+TileData_15cbf: ; 0x15cbf
+ dw Func_11d2
+ db $30, $03
+ dw vTilesBG tile $72
+ dw StageRedFieldBottomIndicatorsGfx_Gameboy + $310
+ db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
+ db $00
+
+TileData_15cc9: ; 0x15cc9
+ dw Func_11d2
+ db $30, $03
+ dw vTilesBG tile $6C
+ dw StageRedFieldTopBaseGameBoyGfx + $c20
+ db Bank(StageRedFieldTopBaseGameBoyGfx)
+ db $00
+
+TileData_15cd3: ; 0x15cd3
+ dw Func_11d2
+ db $30, $03
+ dw vTilesBG tile $6F
+ dw StageRedFieldTopBaseGameBoyGfx + $c50
+ db Bank(StageRedFieldTopBaseGameBoyGfx)
+ db $00
+
+TileData_15cdd: ; 0x15cdd
+ dw Func_11d2
+ db $30, $03
+ dw vTilesBG tile $72
+ dw StageRedFieldTopBaseGameBoyGfx + $c80
+ db Bank(StageRedFieldTopBaseGameBoyGfx)
+ db $00
+
+TileData_15ce7: ; 0x15ce7
+ dw Func_11d2
+ db $30, $03
+ dw vTilesBG tile $6C
+ dw StageRedFieldBottomIndicatorsGfx_Gameboy + $220
+ db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
+ db $00
+
+TileData_15cf1: ; 0x15cf1
+ dw Func_11d2
+ db $30, $03
+ dw vTilesBG tile $6F
+ dw StageRedFieldBottomIndicatorsGfx_Gameboy + $250
+ db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
+ db $00
+
+TileData_15cfb: ; 0x15cfb
+ dw Func_11d2
+ db $30, $03
+ dw vTilesBG tile $72
+ dw StageRedFieldBottomIndicatorsGfx_Gameboy + $280
+ db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
+ db $00
+
+TileDataPointers_15d05:
+ dw $0000
+ dw TileData_15db1
+ dw TileData_15d96
+ dw TileData_15d85
+ dw TileData_15d99
+ dw TileData_15d8a
+ dw TileData_15d9c
+ dw TileData_15d8f
+ dw $0000
+ dw $0000
+ dw $0000
+ dw TileData_15d96
+ dw $0000
+ dw TileData_15d99
+ dw $0000
+ dw TileData_15d9c
+ dw $0000
+ dw $0000
+ dw $0000
+ dw TileData_15db1
+ dw TileData_15da1
+ dw $0000
+ dw TileData_15da6
+ dw $0000
+ dw $0000
+ dw $0000
+ dw TileData_15db4
+ dw $0000
+ dw $0000
+ dw TileData_15da1
+ dw $0000
+ dw TileData_15da6
+ dw $0000
+ dw $0000
+ dw TileData_15da9
+ dw $0000
+ dw $0000
+ dw TileData_15db1
+ dw TileData_15d9c
+ dw $0000
+ dw $0000
+ dw $0000
+ dw $0000
+ dw TileData_15da9
+ dw TileData_15db4
+ dw $0000
+ dw $0000
+ dw TileData_15d9c
+ dw $0000
+ dw $0000
+ dw TileData_15dae
+ dw $0000
+ dw TileData_15da1
+ dw $0000
+ dw $0000
+ dw TileData_15db1
+ dw $0000
+ dw $0000
+ dw $0000
+ dw TileData_15dae
+ dw $0000
+ dw TileData_15da1
+ dw TileData_15db4
+ dw $0000
+
+TileData_15d85: ; 0x15d85
+ db $02
+ dw TileData_15db7
+ dw TileData_15df2
+
+TileData_15d8a: ; 0x15d8a
+ db $02
+ dw TileData_15df2
+ dw TileData_15e82
+
+TileData_15d8f: ; 0x15d8f
+ db $03
+ dw TileData_15db7
+ dw TileData_15df2
+ dw TileData_15e50
+
+TileData_15d96: ; 0x15d96
+ db $01
+ dw TileData_15db7
+
+TileData_15d99: ; 0x15d99
+ db $01
+ dw TileData_15e82
+
+TileData_15d9c: ; 0x15d9c
+ db $02
+ dw TileData_15db7
+ dw TileData_15e50
+
+TileData_15da1: ; 0x15da1
+ db $02
+ dw TileData_15dd5
+ dw TileData_15e82
+
+TileData_15da6: ; 0x15da6
+ db $01
+ dw TileData_15e50
+
+TileData_15da9: ; 0x15da9
+ db $02
+ dw TileData_15db7
+ dw TileData_15e69
+
+TileData_15dae: ; 0x15dae
+ db $01
+ dw TileData_15e69
+
+TileData_15db1: ; 0x15dab1
+ db $01
+ dw TileData_15df2
+
+TileData_15db4: ; 0x15db4
+ db $01
+ dw TileData_15e21
+
+TileData_15db7: ; 0x15db7
+ dw Func_1198
+
+ db ($a << 1)
+ db $03
+ dw vBGMap + $4c
+
+ db ($40 << 1)
+ db $09
+ dw vBGMap + $6c
+
+ db (($32 << 1) | 1)
+ db $08
+ dw vBGMap + $8d
+
+ db (4 << 1)
+ dw vBGMap + $ae
+
+ db (2 << 1)
+ dw vBGMap + $d0
+
+ db (2 << 1)
+ dw vBGMap + $f1
+
+ db (2 << 1)
+ dw vBGMap + $111
+
+ db (1 << 1)
+ dw vBGMap + $132
+
+ db $00 ; terminator
+
+TileData_15dd5: ; 0x15dd5
+ dw Func_1198
+
+ db ($a << 1)
+ db $03
+ dw vBGMap + $4c
+
+ db (($28 << 1) | 1)
+ db $08
+ dw vBGMap + $6c
+
+ db ($4 << 1)
+ dw vBGMap + $8d
+
+ db ($04 << 1)
+ dw vBGMap + $ae
+
+ db ($02 << 1)
+ dw vBGMap + $d0
+
+ db ($02 << 1)
+ dw vBGMap + $f1
+
+ db ($02 << 1)
+ dw vBGMap + $111
+
+ db (1 << 1)
+ dw vBGMap + $132
+
+ db $00 ; terminator
+
+TileData_15df2: ; 0x15df2
+ dw LoadTileLists
+ db $19 ; total number of tiles
+
+ db $05 ; number of tiles
+ dw vBGMap + $a9
+ db $1e, $1f, $20, $21, $22
+
+ db $07
+ dw vBGMap + $c7
+ db $23, $24, $39, $3a, $25, $3b, $26
+
+ db $08 ; number of tiles
+ dw vBGMap + $e6
+ db $27, $37, $28, $29, $2a, $2b, $3c, $2c
+
+ db $03 ; number of tiles
+ dw vBGMap + $106
+ db $2d, $38, $2e
+
+ db $01 ; number of tiles
+ dw vBGMap + $10d
+ db $2f
+
+ db $01 ; number of tiles
+ dw vBGMap + $126
+ db $30
+
+ db 00 ; terminator
+
+TileData_15e21: ; 0x15e21
+ dw LoadTileLists
+ db $19 ; total number of tiles
+
+ db $05 ; number of tiles
+ dw vBGMap + $a9
+ db $0b, $0c, $0d, $0e, $0f
+
+ db $07
+ dw vBGMap + $c7
+ db $10, $11, $33, $34, $12, $35, $13
+
+ db $08 ; number of tiles
+ dw vBGMap + $e6
+ db $14, $31, $15, $16, $17, $18, $36, $19
+
+ db $03 ; number of tiles
+ dw vBGMap + $106
+ db $1a, $32, $1b
+
+ db $01 ; number of tiles
+ dw vBGMap + $10d
+ db $1c
+
+ db $01 ; number of tiles
+ dw vBGMap + $126
+ db $1d
+
+ db 00 ; terminator
+
+TileData_15e50: ; 0x15e50
+ dw LoadTileLists
+ db $09 ; total number of tiles
+
+ db $03 ; number of tiles
+ dw vBGMap + $100
+ db $45, $46, $22
+
+ db $02 ; number of tiles
+ dw vBGMap + $120
+ db $45, $46
+
+ db $02 ; number of tiles
+ dw vBGMap + $140
+ db $45, $46
+
+ db $02 ; number of tiles
+ dw vBGMap + $160
+ db $45, $46
+
+ db $00 ; terminator
+
+TileData_15e69: ; 0x15e69
+ dw LoadTileLists
+ db $09 ; total number of tiles
+
+ db $03 ; number of tiles
+ dw vBGMap + $100
+ db $43, $44, $22
+
+ db $02 ; number of tiles
+ dw vBGMap + $120
+ db $45, $46
+
+ db $02 ; number of tiles
+ dw vBGMap + $140
+ db $45, $46
+
+ db $02 ; number of tiles
+ dw vBGMap + $160
+ db $45, $46
+
+ db $00 ; terminator
+
+TileData_15e82: ; 0x15e82
+ dw Func_1198
+
+ db ((4 << 1) | 1)
+ db $07
+ dw vBGMap + $100
+
+ db (($23 << 1) | 1)
+ db $04
+ dw vBGMap + $120
+
+ db (2 << 1)
+ dw vBGMap + $140
+
+ db (2 << 1)
+ dw vBGMap + $160
+
+ db $00 ; terminator
diff --git a/engine/pinball_game/ball_loss/ball_loss_blue_field.asm b/engine/pinball_game/ball_loss/ball_loss_blue_field.asm
index e14a2b7..0d241fb 100644
--- a/engine/pinball_game/ball_loss/ball_loss_blue_field.asm
+++ b/engine/pinball_game/ball_loss/ball_loss_blue_field.asm
@@ -37,16 +37,16 @@ HandleBallLossBlueField: ; 0xde4f
call Func_ded6
ld a, [wCurBonusMultiplierFromFieldEvents]
and a
- jr z, .asm_deb6
+ jr z, .noExtraBall
dec a
ld [wCurBonusMultiplierFromFieldEvents], a
ld a, $1
- ld [wd49c], a
+ ld [wd49c], a ; Extra Ball
ld de, EndOfBallBonusText
call Func_dc6d
ret
-.asm_deb6
+.noExtraBall
ld a, [wd49d]
ld hl, wd49e
cp [hl]
diff --git a/engine/pinball_game/bonus_multiplier.asm b/engine/pinball_game/bonus_multiplier.asm
index d286be3..f5f595d 100644
--- a/engine/pinball_game/bonus_multiplier.asm
+++ b/engine/pinball_game/bonus_multiplier.asm
@@ -9,12 +9,12 @@ IncrementBonusMultiplierFromFieldEvent: ; 0x30164
jr z, .maxed
ld [wCurBonusMultiplierFromFieldEvents], a
ld a, $1
- ld [wd4ca], a
+ ld [wShowExtraBallText], a
ret
.maxed
ld bc, TenMillionPoints
callba AddBigBCD6FromQueue
ld a, $2
- ld [wd4ca], a
+ ld [wShowExtraBallText], a
ret
diff --git a/engine/pinball_game/catchem_mode.asm b/engine/pinball_game/catchem_mode.asm
index d466c4a..d03bac1 100644
--- a/engine/pinball_game/catchem_mode.asm
+++ b/engine/pinball_game/catchem_mode.asm
@@ -1100,7 +1100,7 @@ Func_107c2: ; 0x107c2
ld [wFramesUntilSlotCaveOpens], a
ret
-Func_107c8: ; 0x107c8
+SetLeftAndRightAlleyArrowIndicatorStates_RedField: ; 0x107c8
ld a, [wRightAlleyCount]
cp $3
jr z, .asm_107d1
@@ -1232,7 +1232,7 @@ Func_10871: ; 0x10871
bit 0, a
jr nz, .asm_108d3
callba LoadStageCollisionAttributes
- callba Func_159f4
+ callba LoadFieldStructureGraphics_RedField
ret
.asm_108d3
@@ -1246,7 +1246,7 @@ Func_10871: ; 0x10871
Func_108f5: ; 0x108f5
call ResetIndicatorStates
call Func_107c2
- call Func_107c8
+ call SetLeftAndRightAlleyArrowIndicatorStates_RedField
call Func_107e9
ld a, [wCurrentStage]
bit 0, a
@@ -1268,7 +1268,7 @@ Func_108f5: ; 0x108f5
ld a, BANK(BlankSaverSpaceTileDataRedField)
call Func_10aa
ld a, [wPreviousNumPokeballs]
- callba Func_174d4
+ callba LoadPokeballsGraphics_RedField
ld hl, CaughtPokeballTileDataPointers
ld a, BANK(CaughtPokeballTileDataPointers)
call Func_10aa
@@ -1358,7 +1358,7 @@ Func_1098c: ; 0x1098c
jr nz, .loop
xor a
ld [wRightAlleyCount], a
- callba Func_1f2ed
+ callba CloseSlotCave
ld de, $0002
call PlaySong
ld a, [wCurrentStage]
@@ -1377,7 +1377,7 @@ Func_1098c: ; 0x1098c
Func_109fc: ; 0x109fc
call ResetIndicatorStates
call Func_107c2
- callba Func_1f2ff
+ callba SetLeftAndRightAlleyArrowIndicatorStates_BlueField
ld a, [wCurrentStage]
bit 0, a
ret z
@@ -1398,7 +1398,7 @@ Func_109fc: ; 0x109fc
ld a, BANK(BlankSaverSpaceTileDataBlueField)
call Func_10aa
ld a, [wPreviousNumPokeballs]
- callba Func_174d4
+ callba LoadPokeballsGraphics_RedField
ld hl, Data_10a88
ld a, BANK(Data_10a88)
call Func_10aa
diff --git a/engine/pinball_game/draw_sprites/draw_blue_field_sprites.asm b/engine/pinball_game/draw_sprites/draw_blue_field_sprites.asm
index d3eb504..f9d1b86 100644
--- a/engine/pinball_game/draw_sprites/draw_blue_field_sprites.asm
+++ b/engine/pinball_game/draw_sprites/draw_blue_field_sprites.asm
@@ -149,7 +149,7 @@ DrawPikachuSavers_BlueStage: ; 0x1f448
ld e, a
ld a, [wPikachuSaverSlotRewardActive]
and a
- ld a, [wd518]
+ ld a, [wWhichPikachuSaverSide]
jr z, .asm_1f473
ld a, [wd51c]
and a
diff --git a/engine/pinball_game/draw_sprites/draw_red_field_sprites.asm b/engine/pinball_game/draw_sprites/draw_red_field_sprites.asm
index 4f6cd38..ee25c7c 100644
--- a/engine/pinball_game/draw_sprites/draw_red_field_sprites.asm
+++ b/engine/pinball_game/draw_sprites/draw_red_field_sprites.asm
@@ -433,7 +433,7 @@ DrawPikachuSavers_RedStage: ; 0x17e08
ld e, a
ld a, [wPikachuSaverSlotRewardActive]
and a
- ld a, [wd518]
+ ld a, [wWhichPikachuSaverSide]
jr z, .asm_17e33
ld a, [wd51c]
and a
diff --git a/engine/pinball_game/extra_ball.asm b/engine/pinball_game/extra_ball.asm
index 2436763..f753f5f 100644
--- a/engine/pinball_game/extra_ball.asm
+++ b/engine/pinball_game/extra_ball.asm
@@ -1,9 +1,9 @@
-HandleExtraBall: ; 0x30188
-; Grants the player an extra Ball, if they qualify for it.
+ShowExtraBallMessage: ; 0x30188
+; Displays the extra ball scrolling message, if an extra ball has been granted.
ld a, [wd5ca]
and a
ret nz
- ld a, [wd4ca]
+ ld a, [wShowExtraBallText]
and a
ret z
cp $1
@@ -32,5 +32,5 @@ HandleExtraBall: ; 0x30188
call LoadScrollingText
.asm_301c9
xor a
- ld [wd4ca], a
+ ld [wShowExtraBallText], a
ret
diff --git a/engine/pinball_game/load_stage_data/load_blue_field.asm b/engine/pinball_game/load_stage_data/load_blue_field.asm
index 3db26f4..de5c455 100644
--- a/engine/pinball_game/load_stage_data/load_blue_field.asm
+++ b/engine/pinball_game/load_stage_data/load_blue_field.asm
@@ -6,8 +6,8 @@ _LoadStageDataBlueFieldTop: ; 0x1c165
callba Func_142fc
ld a, $1
ld [wBlueStageForceFieldGfxNeedsLoading], a
- call Func_1f18a
- callba Func_1404a
+ call UpdateForceFieldGraphics
+ callba LoadTimerGraphics
call Func_1c203
ret
@@ -19,13 +19,13 @@ _LoadStageDataBlueFieldBottom: ; 0x1c191
call Func_1c43c
call Func_1c305
call Func_1c3ee
- callba Func_14746
+ callba LoadAgainTextGraphics
callba DrawBallSaverIcon
call Func_1c235
call Func_1c21e
call LoadSlotCaveCoverGraphics_BlueField
callba Func_142fc
- callba Func_1404a
+ callba LoadTimerGraphics
call Func_1c203
ret
@@ -117,7 +117,7 @@ Func_1c235: ; 0x1c235
ld a, [wd644]
and a
jr z, .asm_1c28a
- ld a, [wd55a]
+ ld a, [wMapMoveDirection]
and a
jr nz, .asm_1c2bd
jr .asm_1c291
@@ -177,7 +177,7 @@ Func_1c2cb: ; 0x1c2cb
add hl, bc
ld a, [hl]
res 7, a
- call Func_1eb41
+ call LoadArrowIndicatorGraphics_BlueStage
pop bc
inc c
ld a, c
@@ -198,7 +198,7 @@ Func_1c2cb: ; 0x1c2cb
ld d, a
pop af
add d
- call Func_1eb41
+ call LoadArrowIndicatorGraphics_BlueStage
pop bc
inc c
ld a, c
@@ -373,7 +373,7 @@ Func_1c43c: ; 0x1c43c
.asm_1c458
ld a, [wPreviousNumPokeballs]
- call Func_1f265
+ call LoadPokeballsGraphics_BlueField
ld a, BANK(CaughtPokeballGfx)
ld hl, CaughtPokeballGfx
ld de, vTilesSH tile $2e
@@ -467,7 +467,7 @@ Func_1c4b6: ; 0x1c4b6
and a
ld a, $14
jr nz, .asm_1c515
- ld a, [wd55a]
+ ld a, [wMapMoveDirection]
add $12
.asm_1c515
callba LoadBillboardTileData
diff --git a/engine/pinball_game/load_stage_data/load_gengar_bonus.asm b/engine/pinball_game/load_stage_data/load_gengar_bonus.asm
index 767d37d..b6d30fd 100644
--- a/engine/pinball_game/load_stage_data/load_gengar_bonus.asm
+++ b/engine/pinball_game/load_stage_data/load_gengar_bonus.asm
@@ -3,7 +3,7 @@ _LoadStageDataGengarBonus: ; 0x1818b
call Func_2862
call Func_18d72
ld a, [wd7c1]
- callba Func_1404a
+ callba LoadTimerGraphics
and a
ret z
call Func_183db
diff --git a/engine/pinball_game/load_stage_data/load_meowth_bonus.asm b/engine/pinball_game/load_stage_data/load_meowth_bonus.asm
index 01a49ba..e51c8af 100644
--- a/engine/pinball_game/load_stage_data/load_meowth_bonus.asm
+++ b/engine/pinball_game/load_stage_data/load_meowth_bonus.asm
@@ -3,5 +3,5 @@ _LoadStageDataMeowthBonus: ; 0x24128
call Func_2862
callba Func_24fa3
call Func_24516
- callba Func_1404a
+ callba LoadTimerGraphics
ret
diff --git a/engine/pinball_game/load_stage_data/load_mewtwo_bonus.asm b/engine/pinball_game/load_stage_data/load_mewtwo_bonus.asm
index 47bbfc4..567576a 100644
--- a/engine/pinball_game/load_stage_data/load_mewtwo_bonus.asm
+++ b/engine/pinball_game/load_stage_data/load_mewtwo_bonus.asm
@@ -1,7 +1,7 @@
_LoadStageDataMewtwoBonus: ; 0x19310
callba Func_142fc
call Func_2862
- callba Func_1404a
+ callba LoadTimerGraphics
ld a, [wd7c1]
and a
ret z
diff --git a/engine/pinball_game/load_stage_data/load_red_field.asm b/engine/pinball_game/load_stage_data/load_red_field.asm
index e55559d..026cea3 100644
--- a/engine/pinball_game/load_stage_data/load_red_field.asm
+++ b/engine/pinball_game/load_stage_data/load_red_field.asm
@@ -1,13 +1,13 @@
_LoadStageDataRedFieldTop: ; 0x14000
call Func_14091
- call Func_159f4
+ call LoadFieldStructureGraphics_RedField
call LoadPinballUpgradeTriggersGraphics_RedField
- call Func_16859
+ call LoadStaryuGraphics_Top
call UpdateSpinnerChargeGraphics_RedField
call Func_14234
call LoadSlotCaveCoverGraphics_RedField
call Func_142fc
- call Func_1404a
+ call LoadTimerGraphics
ret
_LoadStageDataRedFieldBottom: ; 0x1401c
@@ -18,17 +18,17 @@ _LoadStageDataRedFieldBottom: ; 0x1401c
call Func_14282
call Func_1414b
call Func_14234
- call Func_14746
+ call LoadAgainTextGraphics
call DrawBallSaverIcon
call Func_140f9
- call Func_16878
+ call LoadStaryuGraphics_Bottom
call Func_140e2
call LoadSlotCaveCoverGraphics_RedField
call Func_142fc
- call Func_1404a
+ call LoadTimerGraphics
ret
-Func_1404a: ; 0x1404a
+LoadTimerGraphics: ; 0x1404a
ld a, [wTimerActive]
and a
ret z
@@ -95,7 +95,7 @@ Func_14091: ; 0x14091
bit 0, a
ret nz
callba LoadStageCollisionAttributes
- call Func_159f4
+ call LoadFieldStructureGraphics_RedField
ret
Func_140e2: ; 0x140e2
@@ -147,7 +147,7 @@ Func_14135: ; 0x14135
add hl, bc
ld a, [hl]
res 7, a
- call Func_169cd
+ call LoadArrowIndicatorGraphics_RedField
pop bc
inc c
ld a, c
@@ -322,7 +322,7 @@ Func_14282: ; 0x14282
.asm_1429e
ld a, [wPreviousNumPokeballs]
- call Func_174d4
+ call LoadPokeballsGraphics_RedField
ld a, BANK(CaughtPokeballGfx)
ld hl, CaughtPokeballGfx
ld de, vTilesSH tile $2e
@@ -473,7 +473,7 @@ Func_14377: ; 0x14377
and a
ld a, $14
jr nz, .asm_143d6
- ld a, [wd55a]
+ ld a, [wMapMoveDirection]
add $12
.asm_143d6
callba LoadBillboardTileData
diff --git a/engine/pinball_game/load_stage_data/load_seel_bonus.asm b/engine/pinball_game/load_stage_data/load_seel_bonus.asm
index e72b9a7..45dcf75 100644
--- a/engine/pinball_game/load_stage_data/load_seel_bonus.asm
+++ b/engine/pinball_game/load_stage_data/load_seel_bonus.asm
@@ -3,5 +3,5 @@ _LoadStageDataSeelBonus: ; 0x25b97
call Func_2862
callba Func_262f4
call Func_25d0e
- callba Func_1404a
+ callba LoadTimerGraphics
ret
diff --git a/engine/pinball_game/object_collision/blue_stage_resolve_collision.asm b/engine/pinball_game/object_collision/blue_stage_resolve_collision.asm
index 93736a9..8cc2636 100644
--- a/engine/pinball_game/object_collision/blue_stage_resolve_collision.asm
+++ b/engine/pinball_game/object_collision/blue_stage_resolve_collision.asm
@@ -10,21 +10,21 @@ ResolveBlueFieldTopGameObjectCollisions: ; 0x1c715
call ResolveCloysterCollision
call ApplySlotForceField_BlueFieldTop
call ResolvePsyduckPoliwagCollision
- call ResolveBlueStageForceFieldCollision
+ call ResolveForceFieldCollision
call OpenSlotCave_BlueField
call UpdateForceFieldDirection
- call Func_1f18a
+ call UpdateForceFieldGraphics
callba UpdateBallSaverState
- call Func_1f27b
+ call UpdateBlinkingPokeballs_BlueField
call UpdateMapMoveCounters_BlueFieldTop
- callba HandleExtraBall
+ callba ShowExtraBallMessage
ld a, $0
callba Func_10000
ret
ResolveBlueFieldBottomGameObjectCollisions: ; 0x1c769
call ResolveWildMonCollision_BlueField
- call ResolveBlueStageBumperCollision
+ call ResolveBumpersCollision_BlueField
call ResolvePsyduckPoliwagCollision
call UpdateBlueStageSpinner
call UpdatePinballUpgradeBlinkingAnimation_BlueField
@@ -32,17 +32,17 @@ ResolveBlueFieldBottomGameObjectCollisions: ; 0x1c769
call ResolveCAVELightCollision_BlueField
call ResolveBlueStagePinballLaunchCollision
call ResolveBlueStagePikachuCollision
- call Func_1ead4
+ call UpdateArrowIndicators_BlueField
call ResolveBonusMultiplierCollision_BlueField
call ResolveSlotCollision_BlueField
call OpenSlotCave_BlueField
call ApplySlotForceField_BlueFieldBottom
call UpdateForceFieldDirection
- callba Func_14733
+ callba UpdateAgainText
callba UpdateBallSaver
- call Func_1f261
+ call UpdatePokeballs_BlueField
call UpdateMapMoveCounters_BlueFieldBottom
- callba HandleExtraBall
+ callba ShowExtraBallMessage
ld a, $0
callba Func_10000
ret
@@ -219,7 +219,7 @@ UpdateForceFieldDirection: ; 0x1c8b6
ld a, [wd644]
cp $0
jr z, .asm_1c925
- ld a, [wd55a]
+ ld a, [wMapMoveDirection]
cp $0
jr nz, .asm_1c933
jr .asm_1c947
@@ -245,7 +245,7 @@ UpdateForceFieldDirection: ; 0x1c8b6
ld a, [wd644]
cp $0
jr z, .asm_1c955
- ld a, [wd55a]
+ ld a, [wMapMoveDirection]
cp $0
jr z, .asm_1c969
.asm_1c955
@@ -526,40 +526,43 @@ UpdateSpinnerChargeGraphics_BlueField: ; 0x1cb43
INCLUDE "data/queued_tiledata/blue_field/spinner.asm"
-ResolveBlueStageBumperCollision: ; 1ce40
+ResolveBumpersCollision_BlueField: ; 1ce40
ld a, [wWhichBumper]
and a
- jr z, .asm_1ce53
- call LoadBumperCollisionGraphics_BlueField
- call Func_1ce60
+ jr z, .noNewCollision
+ call LoadBumpersGraphics_BlueField
+ call LightUpBumper_BlueField
xor a
ld [wWhichBumper], a
call ApplyBumperCollision_BlueField
-.asm_1ce53
- ld a, [wd4da]
+.noNewCollision
+ ld a, [wBumperLightUpDuration]
and a
ret z
dec a
- ld [wd4da], a
- call z, LoadBumperCollisionGraphics_BlueField
+ ld [wBumperLightUpDuration], a
+ call z, LoadBumpersGraphics_BlueField
ret
-Func_1ce60: ; 0x1ce60
- ld a, $10
- ld [wd4da], a
+LightUpBumper_BlueField: ; 0x1ce60
+; Makes the hit bumper light briefly
+ ld a, 16
+ ld [wBumperLightUpDuration], a
ld a, [wWhichBumperId]
sub $1
ld [wd4db], a
sla a
inc a
- jr asm_1ce7a
+ jr LoadBumperGraphics_BlueField
-LoadBumperCollisionGraphics_BlueField: ; 1ce72
+LoadBumpersGraphics_BlueField: ; 1ce72
ld a, [wd4db]
cp $ff
ret z
sla a
-asm_1ce7a: ; 0x1ce7a
+ ; fall through
+
+LoadBumperGraphics_BlueField: ; 0x1ce7a
sla a
ld c, a
ld b, $0
@@ -623,7 +626,7 @@ ResolveBlueStageBoardTriggerCollision: ; 0x1cfaa
callba LoadStageCollisionAttributes
ld a, $1
ld [wd580], a
- callba Func_1404a
+ callba LoadTimerGraphics
.asm_1cfe5
ld a, [wWhichBoardTriggerId]
sub $7
@@ -739,14 +742,14 @@ ResolveBlueStagePikachuCollision: ; 0x1d0a1
jr nz, .asm_1d0c9
ld a, [wWhichPikachuId]
sub $d
- ld hl, wd518
+ ld hl, wWhichPikachuSaverSide
cp [hl]
jr nz, .asm_1d110
ld a, [wPikachuSaverCharge]
cp MAX_PIKACHU_SAVER_CHARGE
jr nz, .asm_1d0fc
.asm_1d0c9
- ld hl, PikachuSaverAnimationDataRedStage
+ ld hl, PikachuSaverAnimationData_BlueField
ld de, wPikachuSaverAnimation
call InitAnimation
ld a, [wPikachuSaverSlotRewardActive]
@@ -769,7 +772,7 @@ ResolveBlueStagePikachuCollision: ; 0x1d0a1
jr .asm_1d110
.asm_1d0fc
- ld hl, PikachuSaverAnimation2DataRedStage
+ ld hl, PikachuSaverAnimation2Data_BlueField
ld de, wPikachuSaverAnimation
call InitAnimation
ld a, $2
@@ -779,8 +782,8 @@ ResolveBlueStagePikachuCollision: ; 0x1d0a1
.asm_1d110
ld a, [wd51c]
and a
- call z, Func_1d1fb
- call Func_1d133
+ call z, SetPikachuSaverSide_BlueField
+ call UpdatePikachuSaverAnimation_BlueField
ld a, [wPikachuSaverCharge]
cp MAX_PIKACHU_SAVER_CHARGE
ret nz
@@ -795,11 +798,11 @@ ResolveBlueStagePikachuCollision: ; 0x1d0a1
call PlaySoundEffect
ret
-Func_1d133: ; 0x1d133
+UpdatePikachuSaverAnimation_BlueField: ; 0x1d133
ld a, [wd51c]
cp $1
jr nz, .asm_1d1ae
- ld hl, PikachuSaverAnimationDataRedStage
+ ld hl, PikachuSaverAnimationData_BlueField
ld de, wPikachuSaverAnimation
call UpdateAnimation
ret nc
@@ -846,7 +849,7 @@ Func_1d133: ; 0x1d133
.asm_1d1ae
cp $2
jr nz, .asm_1d1c7
- ld hl, PikachuSaverAnimation2DataRedStage
+ ld hl, PikachuSaverAnimation2Data_BlueField
ld de, wPikachuSaverAnimation
call UpdateAnimation
ret nc
@@ -864,7 +867,7 @@ Func_1d133: ; 0x1d133
ld [wPikachuSaverAnimationFrame], a
ret
-PikachuSaverAnimationDataRedStage: ; 0x1d1d1
+PikachuSaverAnimationData_BlueField: ; 0x1d1d1
; Each entry is [duration][OAM id]
db $0C, $02
db $05, $03
@@ -886,17 +889,18 @@ PikachuSaverAnimationDataRedStage: ; 0x1d1d1
db $01, $00
db $00
-PikachuSaverAnimation2DataRedStage: ; 0x1d1f6
+PikachuSaverAnimation2Data_BlueField: ; 0x1d1f6
; Each entry is [duration][OAM id]
db $0C, $02
db $01, $00
db $00
-Func_1d1fb: ; 0x1d1fb
+SetPikachuSaverSide_BlueField: ; 0x1d1fb
+; Sets which side Pikachu is on, depending on which flipper was pressed last.
ld hl, wKeyConfigLeftFlipper
call IsKeyPressed2
jr z, .asm_1d209
- ld hl, wd518
+ ld hl, wWhichPikachuSaverSide
ld [hl], $0
ret
@@ -904,7 +908,7 @@ Func_1d1fb: ; 0x1d1fb
ld hl, wKeyConfigRightFlipper
call IsKeyPressed2
ret z
- ld hl, wd518
+ ld hl, wWhichPikachuSaverSide
ld [hl], $1
ret
@@ -1148,7 +1152,7 @@ CloysterCollisionAnimationData: ; 0x1d41d
db 00 ; terminator
ResolveBonusMultiplierCollision_BlueField: ; 0x1d438
- call Func_1d692
+ call UpdateBonusMultiplierRailingLight
ld a, [wWhichBonusMultiplierRailing]
and a
jp z, UpdateBonusMultiplierRailing_BlueField
@@ -1170,7 +1174,7 @@ ResolveBonusMultiplierCollision_BlueField: ; 0x1d438
.asm_1d45e
call LoadBonusMultiplierRailingGraphics_BlueField
ld a, $3c
- ld [wd647], a
+ ld [wBonusMultiplierRailingEndLightDuration], a
ld a, $9
callba Func_10000
ld a, [wd610]
@@ -1197,7 +1201,7 @@ ResolveBonusMultiplierCollision_BlueField: ; 0x1d438
.asm_1d499
call LoadBonusMultiplierRailingGraphics_BlueField
ld a, $1e
- ld [wd647], a
+ ld [wBonusMultiplierRailingEndLightDuration], a
ld a, $a
callba Func_10000
ld a, [wd611]
@@ -1238,8 +1242,8 @@ asm_1d4fa: ; 0x1d4fa
ld a, [wBonusMultiplierOnesDigit]
add $14
call LoadBonusMultiplierRailingGraphics_BlueField
- ld a, $3c
- ld [wd647], a
+ ld a, 60
+ ld [wBonusMultiplierRailingEndLightDuration], a
ret
UpdateBonusMultiplierRailing_BlueField: ; 0x1d51b
@@ -1443,7 +1447,7 @@ GetBCDForNextBonusMultiplier_BlueField: ; 0x1d65f
.max99
ld b, a
xor a
- ld hl, Data_1d68b
+ ld hl, PowersOfTwo_1d68b
ld c, $7
.loop
bit 0, b
@@ -1464,31 +1468,33 @@ GetBCDForNextBonusMultiplier_BlueField: ; 0x1d65f
ld [wBonusMultiplierOnesDigit], a
ret
-Data_1d68b:
+PowersOfTwo_1d68b:
; BCD powers of 2
db $01, $02, $04, $08, $16, $32, $64
-Func_1d692: ; 0x1d692
- ld a, [wd647]
+UpdateBonusMultiplierRailingLight: ; 0x1d692
+; When one of the two bonus multiplier buttons are hit, they stay lit up for a second.
+; This function turns of the light effect after the duration runs out.
+ ld a, [wBonusMultiplierRailingEndLightDuration]
cp $1
- jr z, .asm_1d69e
+ jr z, .turnOffLight
dec a
- ld [wd647], a
+ ld [wBonusMultiplierRailingEndLightDuration], a
ret
-.asm_1d69e
+.turnOffLight
ld a, $0
- ld [wd647], a
+ ld [wBonusMultiplierRailingEndLightDuration], a
ld a, [hGameBoyColorFlag]
and a
- jr nz, .asm_1d6b3
+ jr nz, .gameboy
ld a, $1e
call LoadBonusMultiplierRailingGraphics_BlueField
ld a, $20
call LoadBonusMultiplierRailingGraphics_BlueField
ret
-.asm_1d6b3
+.gameboy
ld a, $2a
call LoadBonusMultiplierRailingGraphics_BlueField
ld a, $28
@@ -1775,7 +1781,7 @@ HitPoliwag3Times: ; 0x1ddc7
callba z, IncrementBonusMultiplierFromFieldEvent
.asm_1dde4
xor a
- ld [wd55a], a
+ ld [wMapMoveDirection], a
callba StartMapMoveMode
scf
ret
@@ -1791,7 +1797,7 @@ HitPsyduck3Times: ; 0x1ddf4
callba z, IncrementBonusMultiplierFromFieldEvent
.asm_1de11
ld a, $1
- ld [wd55a], a
+ ld [wMapMoveDirection], a
callba StartMapMoveMode
scf
ret
@@ -2024,7 +2030,7 @@ ResolveBallUpgradeTriggersCollision_BlueField: ; 0x1e356
callba LoadStageCollisionAttributes
ld a, $1
ld [wd580], a
- callba Func_1404a
+ callba LoadTimerGraphics
.asm_1e386
ld a, [wStageCollisionState]
bit 0, a
@@ -2885,7 +2891,8 @@ _ApplySlotForceField_BlueField: ; 0x1ea6a
call PlaySoundEffect
ret
-Func_1ead4: ; 0x1ead4
+UpdateArrowIndicators_BlueField: ; 0x1ead4
+; Updates the 5 blinking arrow indicators in the blue field bottom.
ld a, [hNumFramesDropped]
and $f
ret nz
@@ -2906,7 +2913,7 @@ Func_1ead4: ; 0x1ead4
jr z, .asm_1eaf5
inc a
.asm_1eaf5
- call Func_1eb41
+ call LoadArrowIndicatorGraphics_BlueStage
.asm_1eaf8
pop bc
inc c
@@ -2920,7 +2927,7 @@ Func_1ead4: ; 0x1ead4
bit 0, a
ret z
ld bc, $0002
-.asm_1eb0d
+.loop
push bc
ld hl, wIndicatorStates
add hl, bc
@@ -2950,23 +2957,23 @@ Func_1ead4: ; 0x1ead4
ld d, a
pop af
add d
- call Func_1eb41
+ call LoadArrowIndicatorGraphics_BlueStage
pop bc
inc c
ld a, c
cp $5
- jr nz, .asm_1eb0d
+ jr nz, .loop
ret
-Func_1eb41: ; 0x1eb41
+LoadArrowIndicatorGraphics_BlueStage: ; 0x1eb41
push af
sla c
ld hl, TileDataPointers_1eb61
ld a, [hGameBoyColorFlag]
and a
- jr z, .asm_1eb4f
+ jr z, .gameboy
ld hl, TileDataPointers_1ed51
-.asm_1eb4f
+.gameboy
add hl, bc
ld a, [hli]
ld h, [hl]
@@ -2982,970 +2989,23 @@ Func_1eb41: ; 0x1eb41
call Func_10aa
ret
-TileDataPointers_1eb61:
- dw TileDataPointers_1eb6b
- dw TileDataPointers_1eb75
- dw TileDataPointers_1eb7f
- dw TileDataPointers_1eb87
- dw TileDataPointers_1eb8f
-
-TileDataPointers_1eb6b: ; 0x1eb6b
- dw TileData_1eb97
- dw TileData_1eb9a
- dw TileData_1eb9d
- dw TileData_1eba0
- dw TileData_1eba3
-
-TileDataPointers_1eb75: ; 0x1eb75
- dw TileData_1eba6
- dw TileData_1eba9
- dw TileData_1ebac
- dw TileData_1ebaf
- dw TileData_1ebb2
-
-TileDataPointers_1eb7f: ; 0x1eb7f
- dw TileData_1ebb5
- dw TileData_1ebb8
- dw TileData_1ebbb
- dw TileData_1ebbe
-
-TileDataPointers_1eb87: ; 0x1eb87
- dw TileData_1ebc1
- dw TileData_1ebc6
- dw TileData_1ebcb
- dw TileData_1ebd0
-
-TileDataPointers_1eb8f: ; 0x1eb8f
- dw TileData_1ebd5
- dw TileData_1ebda
- dw TileData_1ebdf
- dw TileData_1ebe4
-
-TileData_1eb97: ; 0x1eb97
- db $01
- dw TileData_1ebe9
-
-TileData_1eb9a: ; 0x1eb9a
- db $01
- dw TileData_1ebf9
-
-TileData_1eb9d: ; 0x1eb9d
- db $01
- dw TileData_1ec09
-
-TileData_1eba0: ; 0x1eba0
- db $01
- dw TileData_1ec19
-
-TileData_1eba3: ; 0x1eba3
- db $01
- dw TileData_1ec29
-
-TileData_1eba6: ; 0x1eba6
- db $01
- dw TileData_1ec39
-
-TileData_1eba9: ; 0x1eba9
- db $01
- dw TileData_1ec49
-
-TileData_1ebac: ; 0x1ebac
- db $01
- dw TileData_1ec59
-
-TileData_1ebaf: ; 0x1ebaf
- db $01
- dw TileData_1ec69
-
-TileData_1ebb2: ; 0x1ebb2
- db $01
- dw TileData_1ec79
-
-TileData_1ebb5: ; 0x1ebb5
- db $01
- dw TileData_1ec89
-
-TileData_1ebb8: ; 0x1ebb8
- db $01
- dw TileData_1ec93
-
-TileData_1ebbb: ; 0x1ebbb
- db $01
- dw TileData_1ec9d
-
-TileData_1ebbe: ; 0x1ebbe
- db $01
- dw TileData_1eca7
-
-TileData_1ebc1: ; 0x1ebc1
- db $02
- dw TileData_1ecb1
- dw TileData_1ecbb
-
-TileData_1ebc6: ; 0x1ebc6
- db $02
- dw TileData_1ecc5
- dw TileData_1eccf
-
-TileData_1ebcb: ; 0x1ebcb
- db $02
- dw TileData_1ecd9
- dw TileData_1ece3
-
-TileData_1ebd0: ; 0x1ebd0
- db $02
- dw TileData_1eced
- dw TileData_1ecf7
-
-TileData_1ebd5: ; 0x1ebd5
- db $02
- dw TileData_1ed01
- dw TileData_1ed0b
-
-TileData_1ebda: ; 0x1ebda
- db $02
- dw TileData_1ed15
- dw TileData_1ed1f
-
-TileData_1ebdf: ; 0x1ebdf
- db $02
- dw TileData_1ed01
- dw TileData_1ed0b
-
-TileData_1ebe4: ; 0x1ebe4
- db $02
- dw TileData_1ed15
- dw TileData_1ed1f
-
-TileData_1ebe9: ; 0x1ebe9
- dw LoadTileLists
- db $03 ; total number of tiles
-
- db $01 ; number of tiles
- dw vBGMap + $64
- db $3D
-
- db $01 ; number of tiles
- dw vBGMap + $84
- db $17
-
- db $01 ; number of tiles
- dw vBGMap + $A5
- db $3D
-
- db $00 ; terminator
-
-TileData_1ebf9: ; 0x1ebf9
- dw LoadTileLists
- db $03 ; total number of tiles
-
- db $01 ; number of tiles
- dw vBGMap + $64
- db $3E
-
- db $01 ; number of tiles
- dw vBGMap + $84
- db $17
-
- db $01 ; number of tiles
- dw vBGMap + $A5
- db $3D
-
- db $00 ; terminator
-
-TileData_1ec09: ; 0x1ec09
- dw LoadTileLists
- db $03 ; total number of tiles
-
- db $01 ; number of tiles
- dw vBGMap + $64
- db $3E
-
- db $01 ; number of tiles
- dw vBGMap + $84
- db $18
-
- db $01 ; number of tiles
- dw vBGMap + $A5
- db $3D
-
- db $00 ; terminator
-
-TileData_1ec19: ; 0x1ec19
- dw LoadTileLists
- db $03 ; total number of tiles
-
- db $01 ; number of tiles
- dw vBGMap + $64
- db $3E
-
- db $01 ; number of tiles
- dw vBGMap + $84
- db $18
-
- db $01 ; number of tiles
- dw vBGMap + $A5
- db $3E
-
- db $00 ; terminator
-
-TileData_1ec29: ; 0x1ec29
- dw LoadTileLists
- db $03 ; total number of tiles
-
- db $01 ; number of tiles
- dw vBGMap + $64
- db $3D
-
- db $01 ; number of tiles
- dw vBGMap + $84
- db $18
-
- db $01 ; number of tiles
- dw vBGMap + $A5
- db $3D
-
- db $00 ; terminator
-
-TileData_1ec39: ; 0x1ec39
- dw LoadTileLists
- db $03 ; total number of tiles
-
- db $01 ; number of tiles
- dw vBGMap + $6F
- db $3F
-
- db $01 ; number of tiles
- dw vBGMap + $8F
- db $1D
-
- db $01 ; number of tiles
- dw vBGMap + $AE
- db $3F
-
- db $00 ; terminator
-
-TileData_1ec49: ; 0x1ec49
- dw LoadTileLists
- db $03 ; total number of tiles
-
- db $01 ; number of tiles
- dw vBGMap + $6F
- db $40
-
- db $01 ; number of tiles
- dw vBGMap + $8F
- db $1D
-
- db $01 ; number of tiles
- dw vBGMap + $AE
- db $3F
-
- db $00 ; terminator
-
-TileData_1ec59: ; 0x1ec59
- dw LoadTileLists
- db $03 ; total number of tiles
-
- db $01 ; number of tiles
- dw vBGMap + $6F
- db $40
-
- db $01 ; number of tiles
- dw vBGMap + $8F
- db $1E
-
- db $01 ; number of tiles
- dw vBGMap + $AE
- db $3F
-
- db $00 ; terminator
-
-TileData_1ec69: ; 0x1ec69
- dw LoadTileLists
- db $03 ; total number of tiles
-
- db $01 ; number of tiles
- dw vBGMap + $6F
- db $40
-
- db $01 ; number of tiles
- dw vBGMap + $8F
- db $1E
-
- db $01 ; number of tiles
- dw vBGMap + $AE
- db $40
-
- db $00 ; terminator
-
-TileData_1ec79: ; 0x1ec79
- dw LoadTileLists
- db $03 ; total number of tiles
-
- db $01 ; number of tiles
- dw vBGMap + $6F
- db $40
-
- db $01 ; number of tiles
- dw vBGMap + $8F
- db $1D
-
- db $01 ; number of tiles
- dw vBGMap + $AE
- db $40
-
- db $00 ; terminator
-
-TileData_1ec89: ; 0x1ec89
- dw Func_11d2
- db $20, $02
- dw vTilesBG tile $15
- dw StageBlueFieldBottomBaseGameBoyGfx + $950
- db Bank(StageBlueFieldBottomBaseGameBoyGfx)
- db $00
-
-TileData_1ec93: ; 0x1ec93
- dw Func_11d2
- db $20, $02
- dw vTilesBG tile $15
- dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1F40
- db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
- db $00
-
-TileData_1ec9d: ; 0x1ec9d
- dw Func_11d2
- db $20, $02
- dw vTilesBG tile $15
- dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1F60
- db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
- db $00
-
-TileData_1eca7: ; 0x1eca7
- dw Func_11d2
- db $20, $02
- dw vTilesBG tile $15
- dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1F80
- db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
- db $00
-
-TileData_1ecb1: ; 0x1ecb1
- dw Func_11d2
- db $20, $02
- dw vTilesBG tile $19
- dw StageBlueFieldBottomBaseGameBoyGfx + $990
- db Bank(StageBlueFieldBottomBaseGameBoyGfx)
- db $00
-
-TileData_1ecbb: ; 0x1ecbb
- dw Func_11d2
- db $20, $02
- dw vTilesBG tile $1B
- dw StageBlueFieldBottomBaseGameBoyGfx + $9B0
- db Bank(StageBlueFieldBottomBaseGameBoyGfx)
- db $00
-
-TileData_1ecc5: ; 0x1ecc5
- dw Func_11d2
- db $20, $02
- dw vTilesBG tile $19
- dw StageRedFieldBottomIndicatorsGfx_Gameboy + $2270
- db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
- db $00
-
-TileData_1eccf: ; 0x1eccf
- dw Func_11d2
- db $20, $02
- dw vTilesBG tile $1B
- dw StageRedFieldBottomIndicatorsGfx_Gameboy + $2290
- db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
- db $00
-
-TileData_1ecd9: ; 0x1ecd9
- dw Func_11d2
- db $20, $02
- dw vTilesBG tile $19
- dw StageRedFieldBottomIndicatorsGfx_Gameboy + $22B0
- db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
- db $00
-
-TileData_1ece3: ; 0x1ece3
- dw Func_11d2
- db $20, $02
- dw vTilesBG tile $1B
- dw StageRedFieldBottomIndicatorsGfx_Gameboy + $22D0
- db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
- db $00
-
-TileData_1eced: ; 0x1eced
- dw Func_11d2
- db $20, $02
- dw vTilesBG tile $19
- dw StageRedFieldBottomIndicatorsGfx_Gameboy + $22F0
- db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
- db $00
-
-TileData_1ecf7: ; 0x1ecf7
- dw Func_11d2
- db $20, $02
- dw vTilesBG tile $1B
- dw StageRedFieldBottomIndicatorsGfx_Gameboy + $2310
- db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
- db $00
-
-TileData_1ed01: ; 0x1ed01
- dw Func_11d2
- db $20, $02
- dw vTilesBG tile $23
- dw StageBlueFieldBottomBaseGameBoyGfx + $A30
- db Bank(StageBlueFieldBottomBaseGameBoyGfx)
- db $00
-
-TileData_1ed0b: ; 0x1ed0b
- dw Func_11d2
- db $20, $02
- dw vTilesBG tile $25
- dw StageBlueFieldBottomBaseGameBoyGfx + $A50
- db Bank(StageBlueFieldBottomBaseGameBoyGfx)
- db $00
-
-TileData_1ed15: ; 0x1ed15
- dw Func_11d2
- db $20, $02
- dw vTilesBG tile $23
- dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1C00
- db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
- db $00
-
-TileData_1ed1f: ; 0x1ed1f
- dw Func_11d2
- db $20, $02
- dw vTilesBG tile $25
- dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1C20
- db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
- db $00
-
-TileData_1ed29: ; 0x1ed29
- dw Func_11d2
- db $20, $02
- dw vTilesBG tile $23
- dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1C40
- db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
- db $00
-
-TileData_1ed33: ; 0x1ed33
- dw Func_11d2
- db $20, $02
- dw vTilesBG tile $25
- dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1C60
- db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
- db $00
-
-TileData_1e3d: ; 0x1e3d
- dw Func_11d2
- db $20, $02
- dw vTilesBG tile $23
- dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1C80
- db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
- db $00
-
-TileData_1ed47: ; 0x1ed47
- dw Func_11d2
- db $20, $02
- dw vTilesBG tile $25
- dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1CA0
- db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
- db $00
-
-TileDataPointers_1ed51: ; 0x1ed51
- dw TileDataPointers_1ed5b
- dw TileDataPointers_1ed65
- dw TileDataPointers_1ed6f
- dw TileDataPointers_1ed77
- dw TileDataPointers_1ed7f
-
-TileDataPointers_1ed5b: ; 0x1ed5b
- dw TileData_1ed87
- dw TileData_1ed8a
- dw TileData_1ed8d
- dw TileData_1ed90
- dw TileData_1ed93
-
-TileDataPointers_1ed65: ; 0x1ed65
- dw TileData_1ed96
- dw TileData_1ed99
- dw TileData_1ed9c
- dw TileData_1ed9f
- dw TileData_1eda2
-
-TileDataPointers_1ed6f: ; 0x1ed6f
- dw TileData_1eda5
- dw TileData_1eda8
- dw TileData_1edab
- dw TileData_1edae
-
-TileDataPointers_1ed77: ; 0x1ed77
- dw TileData_1edb1
- dw TileData_1edb4
- dw TileData_1edb7
- dw TileData_1edba
-
-TileDataPointers_1ed7f: ; 0x1ed7f
- dw TileData_1edbd
- dw TileData_1edc0
- dw TileData_1edc3
- dw TileData_1edc6
-
-TileData_1ed87: ; 0x1ed87
- db $01
- dw TileData_1edc9
-
-TileData_1ed8a: ; 0x1ed8a
- db $01
- dw TileData_1edd9
-
-TileData_1ed8d: ; 0x1ed8d
- db $01
- dw TileData_1ede9
-
-TileData_1ed90: ; 0x1ed90
- db $01
- dw TileData_1edf9
-
-TileData_1ed93: ; 0x1ed93
- db $01
- dw TileData_1ee09
-
-TileData_1ed96: ; 0x1ed96
- db $01
- dw TileData_1ee19
-
-TileData_1ed99: ; 0x1ed99
- db $01
- dw TileData_1ee29
-
-TileData_1ed9c: ; 0x1ed9c
- db $01
- dw TileData_1ee39
-
-TileData_1ed9f: ; 0x1ed9f
- db $01
- dw TileData_1ee49
-
-TileData_1eda2: ; 0x1eda2
- db $01
- dw TileData_1ee59
-
-TileData_1eda5: ; 0x1eda5
- db $01
- dw TileData_1ee69
-
-TileData_1eda8: ; 0x1eda8
- db $01
- dw TileData_1ee75
-
-TileData_1edab: ; 0x1edab
- db $01
- dw TileData_1ee81
-
-TileData_1edae: ; 0x1edae
- db $01
- dw TileData_1ee8d
-
-TileData_1edb1: ; 0x1edb1
- db $01
- dw TileData_1ee99
-
-TileData_1edb4: ; 0x1edb4
- db $01
- dw TileData_1eea7
-
-TileData_1edb7: ; 0x1edb7
- db $01
- dw TileData_1eeb5
-
-TileData_1edba: ; 0x1edba
- db $01
- dw TileData_1eec3
-
-TileData_1edbd: ; 0x1edbd
- db $01
- dw TileData_1eed1
-
-TileData_1edc0: ; 0x1edc0
- db $01
- dw TileData_1eedf
-
-TileData_1edc3: ; 0x1edc3
- db $01
- dw TileData_1eeed
-
-TileData_1edc6: ; 0x1edc6
- db $01
- dw TileData_1eefb
-
-TileData_1edc9: ; 0x1edc9
- dw LoadTileLists
- db $03 ; total number of tiles
-
- db $01 ; number of tiles
- dw vBGMap + $64
- db $31
-
- db $01 ; number of tiles
- dw vBGMap + $84
- db $0D
-
- db $01 ; number of tiles
- dw vBGMap + $A5
- db $7C
-
- db $00 ; terminator
+INCLUDE "data/queued_tiledata/blue_field/arrow_indicators.asm"
-TileData_1edd9: ; 0x1edd9
- dw LoadTileLists
- db $03 ; total number of tiles
-
- db $01 ; number of tiles
- dw vBGMap + $64
- db $32
-
- db $01 ; number of tiles
- dw vBGMap + $84
- db $0D
-
- db $01 ; number of tiles
- dw vBGMap + $A5
- db $7C
-
- db $00 ; terminator
-
-TileData_1ede9: ; 0x1ede9
- dw LoadTileLists
- db $03 ; total number of tiles
-
- db $01 ; number of tiles
- dw vBGMap + $64
- db $32
-
- db $01 ; number of tiles
- dw vBGMap + $84
- db $0E
-
- db $01 ; number of tiles
- dw vBGMap + $A5
- db $7C
-
- db $00 ; terminator
-
-TileData_1edf9: ; 0x1edf9
- dw LoadTileLists
- db $03 ; total number of tiles
-
- db $01 ; number of tiles
- dw vBGMap + $64
- db $32
-
- db $01 ; number of tiles
- dw vBGMap + $84
- db $0E
-
- db $01 ; number of tiles
- dw vBGMap + $A5
- db $7D
-
- db $00 ; terminator
-
-TileData_1ee09: ; 0x1ee09
- dw LoadTileLists
- db $03 ; total number of tiles
-
- db $01 ; number of tiles
- dw vBGMap + $64
- db $31
-
- db $01 ; number of tiles
- dw vBGMap + $84
- db $0E
-
- db $01 ; number of tiles
- dw vBGMap + $A5
- db $7C
-
- db $00 ; terminator
-
-TileData_1ee19: ; 0x1ee19
- dw LoadTileLists
- db $03 ; total number of tiles
-
- db $01 ; number of tiles
- dw vBGMap + $6F
- db $33
-
- db $01 ; number of tiles
- dw vBGMap + $8F
- db $0F
-
- db $01 ; number of tiles
- dw vBGMap + $AE
- db $7E
-
- db $00 ; terminator
-
-TileData_1ee29: ; 0x1ee29
- dw LoadTileLists
- db $03 ; total number of tiles
-
- db $01 ; number of tiles
- dw vBGMap + $6F
- db $34
-
- db $01 ; number of tiles
- dw vBGMap + $8F
- db $0F
-
- db $01 ; number of tiles
- dw vBGMap + $AE
- db $7E
-
- db $00 ; terminator
-
-TileData_1ee39: ; 0x1ee39
- dw LoadTileLists
- db $03 ; total number of tiles
-
- db $01 ; number of tiles
- dw vBGMap + $6F
- db $34
-
- db $01 ; number of tiles
- dw vBGMap + $8F
- db $10
-
- db $01 ; number of tiles
- dw vBGMap + $AE
- db $7E
-
- db $00 ; terminator
-
-TileData_1ee49: ; 0x1ee49
- dw LoadTileLists
- db $03 ; total number of tiles
-
- db $01 ; number of tiles
- dw vBGMap + $6F
- db $34
-
- db $01 ; number of tiles
- dw vBGMap + $8F
- db $10
-
- db $01 ; number of tiles
- dw vBGMap + $AE
- db $7F
-
- db $00 ; terminator
-
-TileData_1ee59: ; 0x1ee59
- dw LoadTileLists
- db $03 ; total number of tiles
-
- db $01 ; number of tiles
- dw vBGMap + $6F
- db $33
-
- db $01 ; number of tiles
- dw vBGMap + $8F
- db $10
-
- db $01 ; number of tiles
- dw vBGMap + $AE
- db $7E
-
- db $00 ; terminator
-
-TileData_1ee69: ; 0x1ee69
- dw LoadTileLists
- db $02 ; total number of tiles
-
- db $01 ; number of tiles
- dw vBGMap + $48
- db $05
-
- db $01 ; number of tiles
- dw vBGMap + $68
- db $06
-
- db $00 ; terminator
-
-TileData_1ee75: ; 0x1ee75
- dw LoadTileLists
- db $02 ; total number of tiles
-
- db $01 ; number of tiles
- dw vBGMap + $48
- db $07
-
- db $01 ; number of tiles
- dw vBGMap + $68
- db $08
-
- db $00 ; terminator
-
-TileData_1ee81: ; 0x1ee81
- dw LoadTileLists
- db $02 ; total number of tiles
-
- db $01 ; number of tiles
- dw vBGMap + $48
- db $09
-
- db $01 ; number of tiles
- dw vBGMap + $68
- db $0A
-
- db $00 ; terminator
-
-TileData_1ee8d: ; 0x1ee8d
- dw LoadTileLists
- db $02 ; total number of tiles
-
- db $01 ; number of tiles
- dw vBGMap + $48
- db $0B
-
- db $01 ; number of tiles
- dw vBGMap + $68
- db $0C
-
- db $00 ; terminator
-
-TileData_1ee99: ; 0x1ee99
- dw LoadTileLists
- db $04 ; total number of tiles
-
- db $02 ; number of tiles
- dw vBGMap + $4B
- db $26, $27
-
- db $02 ; number of tiles
- dw vBGMap + $6B
- db $28, $29
-
- db $00 ; terminator
-
-TileData_1eea7: ; 0x1eea7
- dw LoadTileLists
- db $04 ; total number of tiles
-
- db $02 ; number of tiles
- dw vBGMap + $4B
- db $2A, $2B
-
- db $02 ; number of tiles
- dw vBGMap + $6B
- db $2C, $2D
-
- db $00 ; terminator
-
-TileData_1eeb5: ; 0x1eeb5
- dw LoadTileLists
- db $04 ; total number of tiles
-
- db $02 ; number of tiles
- dw vBGMap + $4B
- db $2E, $2F
-
- db $02 ; number of tiles
- dw vBGMap + $6B
- db $30, $31
-
- db $00 ; terminator
-
-TileData_1eec3: ; 0x1eec3
- dw LoadTileLists
- db $04 ; total number of tiles
-
- db $02 ; number of tiles
- dw vBGMap + $4B
- db $32, $33
-
- db $02 ; number of tiles
- dw vBGMap + $6B
- db $34, $35
-
- db $00 ; terminator
-
-TileData_1eed1: ; 0x1eed1
- dw LoadTileLists
- db $04 ; total number of tiles
-
- db $02 ; number of tiles
- dw vBGMap + $49
- db $16, $17
-
- db $02 ; number of tiles
- dw vBGMap + $69
- db $18, $19
-
- db $00 ; terminator
-
-TileData_1eedf: ; 0x1eedf
- dw LoadTileLists
- db $04 ; total number of tiles
-
- db $02 ; number of tiles
- dw vBGMap + $49
- db $1A, $1B
-
- db $02 ; number of tiles
- dw vBGMap + $69
- db $1C, $1D
-
- db $00 ; terminator
-
-TileData_1eeed: ; 0x1eeed
- dw LoadTileLists
- db $04 ; total number of tiles
-
- db $02 ; number of tiles
- dw vBGMap + $49
- db $1E, $1F
-
- db $02 ; number of tiles
- dw vBGMap + $69
- db $20, $21
-
- db $00 ; terminator
-
-TileData_1eefb: ; 0x1eefb
- dw LoadTileLists
- db $04 ; total number of tiles
-
- db $02 ; number of tiles
- dw vBGMap + $49
- db $22, $23
-
- db $02 ; number of tiles
- dw vBGMap + $69
- db $24, $25
-
- db $00 ; terminator
-
-ResolveBlueStageForceFieldCollision: ; 0x1ef09
+ResolveForceFieldCollision: ; 0x1ef09
+; Handles the collision with the directional force field in between Slowpoke and Cloyster.
ld a, [wBlueStageForceFieldDirection]
cp $0 ; up direction
- jp z, Func_1ef20
+ jp z, ResolveForceFieldCollision_Up
cp $1 ; right direction
- jp z, Func_1ef4d
+ jp z, ResolveForceFieldCollision_Right
cp $2 ; down direction
- jp z, Func_1ef7e
+ jp z, ResolveForceFieldCollision_Down
cp $3 ; left direction
- jp z, Func_1efae
+ jp z, ResolveForceFieldCollision_Left
; fall through
; default to upward forcefield
-Func_1ef20: ; 0x1ef20
+ResolveForceFieldCollision_Up: ; 0x1ef20
ld a, [wBallYPos + 1]
sub $60
cp $30
@@ -3970,9 +3030,9 @@ Func_1ef20: ; 0x1ef20
sla c
sla c
add hl, bc
- jp Func_1efdc
+ jp ApplyForceFieldForce
-Func_1ef4d: ; 0x1ef4d
+ResolveForceFieldCollision_Right: ; 0x1ef4d
ld a, [wBallXPos + 1]
sub $38
cp $30
@@ -4000,9 +3060,9 @@ Func_1ef4d: ; 0x1ef4d
sla c
sla c
add hl, bc
- jp Func_1efdc
+ jp ApplyForceFieldForce
-Func_1ef7e: ; 0x1ef7e
+ResolveForceFieldCollision_Down: ; 0x1ef7e
ld a, [wBallYPos + 1]
sub $60
cp $30
@@ -4030,9 +3090,9 @@ Func_1ef7e: ; 0x1ef7e
sla c
sla c
add hl, bc
- jr Func_1efdc
+ jr ApplyForceFieldForce
-Func_1efae: ; 0x1efae
+ResolveForceFieldCollision_Left: ; 0x1efae
ld a, [wBallXPos + 1]
sub $38
cp $30
@@ -4061,20 +3121,21 @@ Func_1efae: ; 0x1efae
sla c
add hl, bc
; fall through
-Func_1efdc: ; 0x1efdc
+
+ApplyForceFieldForce: ; 0x1efdc
ld a, [wBlueStageForceFieldDirection]
cp $0 ; up direction
- jp z, Func_1eff3
+ jp z, ApplyForceFieldForce_Up
cp $1 ; right direction
- jp z, Func_1f0be
+ jp z, ApplyForceFieldForce_Right
cp $2 ; down direction
- jp z, Func_1f057
+ jp z, ApplyForceFieldForce_Down
cp $3 ; left direction
- jp z, Func_1f124
+ jp z, ApplyForceFieldForce_Left
; fall through
; default to upward forcefield
-Func_1eff3: ; 0x1eff3
+ApplyForceFieldForce_Up: ; 0x1eff3
ld bc, BallPhysicsData_ec000
add hl, bc
ld de, wBallXVelocity
@@ -4147,7 +3208,7 @@ Func_1eff3: ; 0x1eff3
ld [wRumbleDuration], a
ret
-Func_1f057: ; 0x1f057
+ApplyForceFieldForce_Down: ; 0x1f057
ld bc, BallPhysicsData_ec000
add hl, bc
ld de, wBallXVelocity
@@ -4222,7 +3283,7 @@ Func_1f057: ; 0x1f057
ld [wRumbleDuration], a
ret
-Func_1f0be: ; 0x1f0be
+ApplyForceFieldForce_Right: ; 0x1f0be
ld bc, BallPhysicsData_ec000
add hl, bc
ld de, wBallYVelocity
@@ -4297,7 +3358,7 @@ Func_1f0be: ; 0x1f0be
ld [wRumbleDuration], a
ret
-Func_1f124: ; 0x1f124
+ApplyForceFieldForce_Left: ; 0x1f124
ld bc, BallPhysicsData_ec000
add hl, bc
ld de, wBallYVelocity
@@ -4372,10 +3433,10 @@ Func_1f124: ; 0x1f124
ld [wRumbleDuration], a
ret
-Func_1f18a: ; 0x1f18a
+UpdateForceFieldGraphics: ; 0x1f18a
ld a, [wBlueStageForceFieldGfxNeedsLoading]
cp $0
- jr z, .asm_1f1b4
+ jr z, .done
ld a, [wBlueStageForceFieldDirection]
sla a
ld c, a
@@ -4383,9 +3444,9 @@ Func_1f18a: ; 0x1f18a
ld hl, TileDataPointers_1f1b5
ld a, [hGameBoyColorFlag]
and a
- jr z, .asm_1f1a4
+ jr z, .gameboy
ld hl, TileDataPointers_1f201
-.asm_1f1a4
+.gameboy
add hl, bc
ld a, [hli]
ld h, [hl]
@@ -4396,17 +3457,19 @@ Func_1f18a: ; 0x1f18a
call Func_10aa
ld a, $0
ld [wBlueStageForceFieldGfxNeedsLoading], a
-.asm_1f1b4
+.done
ret
INCLUDE "data/queued_tiledata/blue_field/force_field.asm"
-Func_1f261: ; 0x1f261
- call Func_1f27b
+UpdatePokeballs_BlueField: ; 0x1f261
+; Update the pokeballs underneath the billboard, which blink for awhile after catch'em mode and evolution mode.
+ call UpdateBlinkingPokeballs_BlueField
ret nc
; fall through
-Func_1f265: ; 0x1f265
+LoadPokeballsGraphics_BlueField: ; 0x1f265
+; Loads the graphics for the list of pokeballs underneath the billboard picture.
sla a
ld c, a
ld b, $0
@@ -4421,7 +3484,7 @@ Func_1f265: ; 0x1f265
call Func_10c5
ret
-Func_1f27b: ; 0x1f27b
+UpdateBlinkingPokeballs_BlueField: ; 0x1f27b
ld a, [wPreviousNumPokeballs]
ld hl, wNumPokeballs
cp [hl]
@@ -4429,21 +3492,21 @@ Func_1f27b: ; 0x1f27b
ld a, [wPokeballBlinkingCounter]
dec a
ld [wPokeballBlinkingCounter], a
- jr nz, .asm_1f2a5
+ jr nz, .stillBlinking
ld a, [wNumPokeballs]
ld [wPreviousNumPokeballs], a
cp $3
- jr c, .asm_1f2a0
+ jr c, .dontOpenSlot
ld a, $1
ld [wOpenedSlotByGetting3Pokeballs], a
ld a, $3
ld [wFramesUntilSlotCaveOpens], a
-.asm_1f2a0
+.dontOpenSlot
ld a, [wPreviousNumPokeballs]
scf
ret
-.asm_1f2a5
+.stillBlinking
and $7
ret nz
ld a, [wPokeballBlinkingCounter]
@@ -4458,49 +3521,10 @@ Func_1f27b: ; 0x1f27b
scf
ret
-TileDataPointers_1f2b9:
- dw TileData_1f2c1
- dw TileData_1f2cc
- dw TileData_1f2d7
- dw TileData_1f2e2
-
-TileData_1f2c1: ; 0x1f2c1
- db $06 ; total number of tiles
-
- db $06 ; number of tiles
- dw vBGMap + $107
- db $B0, $B1, $B0, $B1, $B0, $B1
-
- db $00 ; terminator
-
-TileData_1f2cc: ; 0x1f2cc
- db $06 ; total number of tiles
-
- db $06 ; number of tiles
- dw vBGMap + $107
- db $AE, $AF, $B0, $B1, $B0, $B1
-
- db $00 ; terminator
-
-TileData_1f2d7: ; 0x1f2d7
- db $06 ; total number of tiles
-
- db $06 ; number of tiles
- dw vBGMap + $107
- db $AE, $AF, $AE, $AF, $B0, $B1
-
- db $00 ; terminator
-
-TileData_1f2e2: ; 0x1f2e2
- db $06 ; total number of tiles
-
- db $06 ; number of tiles
- dw vBGMap + $107
- db $AE, $AF, $AE, $AF, $AE, $AF
-
- db $00 ; terminator
+INCLUDE "data/queued_tiledata/blue_field/pokeballs.asm"
-Func_1f2ed: ; 0x1f2ed
+CloseSlotCave: ; 0x1f2ed
+; Closes the Slot cave, so it can't be entered.
xor a
ld [wSlotIsOpen], a
ld [wIndicatorStates + 4], a
@@ -4510,7 +3534,7 @@ Func_1f2ed: ; 0x1f2ed
call BankSwitch
ret
-Func_1f2ff: ; 0x1f2ff
+SetLeftAndRightAlleyArrowIndicatorStates_BlueField: ; 0x1f2ff
ld a, [wLeftAlleyCount]
cp $3
jr c, .asm_1f30b
diff --git a/engine/pinball_game/object_collision/red_stage_resolve_collision.asm b/engine/pinball_game/object_collision/red_stage_resolve_collision.asm
index 3c784f3..cf70cf1 100644
--- a/engine/pinball_game/object_collision/red_stage_resolve_collision.asm
+++ b/engine/pinball_game/object_collision/red_stage_resolve_collision.asm
@@ -8,22 +8,22 @@ ResolveRedFieldTopGameObjectCollisions: ; 0x1460e
call UpdateCAVELightsBlinking_RedField
call ResolveRedStageBoardTriggerCollision
call ResolveRedStagePikachuCollision
- call ResolveStaryuCollision
+ call ResolveStaryuCollision_Top
call ResolveBellsproutCollision
call ResolveDittoSlotCollision
call ApplySlotForceField_RedFieldTop
call OpenSlotCave_RedField
call UpdateBallSaverState
- call Func_174ea
+ call UpdateBlinkingPokeballs_RedField
call UpdateMapMoveCounters_RedFieldTop
- callba HandleExtraBall
+ callba ShowExtraBallMessage
ld a, $0
callba Func_10000
ret
ResolveRedFieldBottomGameObjectCollisions: ; 0x14652
call ResolveWildMonCollision_RedField
- call ResolveRedStageBumperCollision
+ call ResolveBumpersCollision_RedField
call ResolveDiglettCollision
call UpdateMapMoveCounters_RedFieldBottom
call UpdateRedStageSpinner
@@ -32,16 +32,16 @@ ResolveRedFieldBottomGameObjectCollisions: ; 0x14652
call ResolveCAVELightCollision_RedField
call ResolveRedStagePinballLaunchCollision
call ResolveRedStagePikachuCollision
- call Func_167ff
- call Func_169a6
+ call ResolveStaryuCollision_Bottom
+ call UpdateArrowIndicators_RedField
call ResolveRedStageBonusMultiplierCollision
call ResolveSlotCollision_RedField
call ApplySlotForceField_RedFieldBottom
call OpenSlotCave_RedField
- call Func_14733
+ call UpdateAgainText
call UpdateBallSaver
- call Func_174d0
- callba HandleExtraBall
+ call UpdatePokeballs_RedField
+ callba ShowExtraBallMessage
ld a, $0
callba Func_10000
ret
@@ -130,21 +130,23 @@ BgTileData_1172b: ;BallSaverIconOffSprite
BgTileData_1472f: ;BallSaverIconOnSprite
db $B4, $B5, $B6, $B7
-Func_14733: ; 0x14733
+UpdateAgainText: ; 0x14733
+; Determine which "Again" text to load. (Faded or solid, if extra ball).
ld c, $0
ld a, [wCurBonusMultiplierFromFieldEvents]
and a
jr z, .asm_1473d
ld c, $1
.asm_1473d
- ld a, [wd4a9]
+ ld a, [wExtraBall]
cp c
ld a, c
- ld [wd4a9], a
+ ld [wExtraBall], a
ret z
; fall through
-Func_14746: ; 0x14746
+LoadAgainTextGraphics: ; 0x14746
+; Loads the graphics that show whether or not the player has an Extra Ball.
ld c, $0
ld a, [wCurBonusMultiplierFromFieldEvents]
and a
@@ -152,30 +154,30 @@ Func_14746: ; 0x14746
ld c, $2
.asm_14750
ld b, $0
- ld hl, AgainTextTileDataRedField
+ ld hl, AgainTextTileData
add hl, bc
ld a, [hli]
ld h, [hl]
ld l, a
- ld a, BANK(AgainTextTileDataRedField)
+ ld a, BANK(AgainTextTileData)
call Func_10aa
ret
-AgainTextTileDataRedField:
- dw AgainTextOffTileDataRedField
- dw AgainTextOnTileDataRedField
+AgainTextTileData:
+ dw AgainTextOffTileData
+ dw AgainTextOnTileData
-AgainTextOffTileDataRedField:
+AgainTextOffTileData:
db 2
- dw AgainTextOffTileDataRedField1
- dw AgainTextOffTileDataRedField2
+ dw AgainTextOffTileData1
+ dw AgainTextOffTileData2
-AgainTextOnTileDataRedField:
+AgainTextOnTileData:
db 2
- dw AgainTextOnTileDataRedField1
- dw AgainTextOnTileDataRedField2
+ dw AgainTextOnTileData1
+ dw AgainTextOnTileData2
-AgainTextOffTileDataRedField1:
+AgainTextOffTileData1:
dw Func_11d2
db $20, $02
dw vTilesSH tile $38
@@ -183,7 +185,7 @@ AgainTextOffTileDataRedField1:
db Bank(AgainTextOffGfx)
db $00
-AgainTextOffTileDataRedField2:
+AgainTextOffTileData2:
dw Func_11d2
db $20, $02
dw vTilesSH tile $3a
@@ -191,7 +193,7 @@ AgainTextOffTileDataRedField2:
db Bank(AgainTextOffGfx)
db $00
-AgainTextOnTileDataRedField1:
+AgainTextOnTileData1:
dw Func_11d2
db $20, $02
dw vTilesSH tile $38
@@ -199,7 +201,7 @@ AgainTextOnTileDataRedField1:
db Bank(StageRedFieldBottomBaseGameBoyGfx)
db $00
-AgainTextOnTileDataRedField2:
+AgainTextOnTileData2:
dw Func_11d2
db $20, $02
dw vTilesSH tile $3a
@@ -317,7 +319,7 @@ ResolveDiglettCollision: ; 0x147aa
ld a, $69
ld [wStageCollisionMap + $110], a
.asm_1487c
- call Func_14990
+ call UpdateDiglettAnimations
ret
UpdateMapMoveCounters_RedFieldBottom: ; 0x14880
@@ -438,7 +440,7 @@ HitRightDiglett3Times: ; 0x14920
callba z, IncrementBonusMultiplierFromFieldEvent
.asm_14937
ld a, $1
- ld [wd55a], a
+ ld [wMapMoveDirection], a
callba StartMapMoveMode
ret
@@ -451,7 +453,7 @@ HitLeftDiglett3Times: ; 0x14947
callba z, IncrementBonusMultiplierFromFieldEvent
.asm_1495e
xor a
- ld [wd55a], a
+ ld [wMapMoveDirection], a
callba StartMapMoveMode
ret
@@ -468,7 +470,7 @@ AddScoreForHittingDiglett: ; 0x1496d
call PlaySoundEffect
ret
-Func_14990: ; 0x14990
+UpdateDiglettAnimations: ; 0x14990
ld a, [wd4ef]
and a
jr nz, .asm_149b6
@@ -557,7 +559,7 @@ ResolveVoltorbCollision: ; 0x14d85
jr z, .noVoltorbCollision
xor a
ld [wWhichVoltorb], a
- call Func_14dc9
+ call ApplyVoltorbCollision
ld a, $10
ld [wVoltorbHitAnimationDuration], a
ld a, [wWhichVoltorbId]
@@ -580,7 +582,7 @@ ResolveVoltorbCollision: ; 0x14d85
ld [wWhichAnimatedVoltorb], a
ret
-Func_14dc9: ; 0x14dc9
+ApplyVoltorbCollision: ; 0x14dc9
ld a, $ff
ld [wRumblePattern], a
ld a, $3
@@ -933,7 +935,7 @@ ResolveBallUpgradeTriggersCollision_RedField: ; 0x1535d
ld [wRightAlleyTrigger], a
ld [wLeftAlleyTrigger], a
ld [wSecondaryLeftAlleyTrigger], a
- call Func_159c9
+ call UpdateFieldStructures_RedField
ld a, $b
callba Func_10000
ld a, [wWhichPinballUpgradeTriggerId]
@@ -1285,7 +1287,7 @@ ResolveRedStageBoardTriggerCollision: ; 0x1581f
call nz, HandleRightAlleyTrigger_RedField
ld a, [wCollidedAlleyTriggers + 7]
and a
- call nz, Func_15990
+ call nz, HandleThirdRightAlleyTrigger_RedField
ret
HandleSecondaryLeftAlleyTrigger_RedField: ; 0x1587c
@@ -1315,7 +1317,7 @@ HandleSecondaryLeftAlleyTrigger_RedField: ; 0x1587c
or $6
ld [wStageCollisionState], a
callba LoadStageCollisionAttributes
- call Func_159f4
+ call LoadFieldStructureGraphics_RedField
ret
HandleThirdLeftAlleyTrigger_RedField: ; 0x158c0
@@ -1345,7 +1347,7 @@ HandleThirdLeftAlleyTrigger_RedField: ; 0x158c0
or $6
ld [wStageCollisionState], a
callba LoadStageCollisionAttributes
- call Func_159f4
+ call LoadFieldStructureGraphics_RedField
ret
HandleSecondaryStaryuAlleyTrigger_RedField: ; 0x15904
@@ -1369,7 +1371,7 @@ HandleLeftAlleyTrigger_RedField: ; 0x1591e
ld [wSecondaryLeftAlleyTrigger], a
ld a, $1
ld [wLeftAlleyTrigger], a
- call Func_159c9
+ call UpdateFieldStructures_RedField
ret
HandleStaryuAlleyTrigger_RedField: ; 0x15931
@@ -1380,7 +1382,7 @@ HandleStaryuAlleyTrigger_RedField: ; 0x15931
ld [wLeftAlleyTrigger], a
ld a, $1
ld [wSecondaryLeftAlleyTrigger], a
- call Func_159c9
+ call UpdateFieldStructures_RedField
ret
HandleSecondaryRightAlleyTrigger_RedField: ; 0x15944
@@ -1420,10 +1422,10 @@ HandleRightAlleyTrigger_RedField: ; 0x1597d
ld [wSecondaryLeftAlleyTrigger], a
ld a, $1
ld [wRightAlleyTrigger], a
- call Func_159c9
+ call UpdateFieldStructures_RedField
ret
-Func_15990: ; 0x15990
+HandleThirdRightAlleyTrigger_RedField: ; 0x15990
xor a
ld [wCollidedAlleyTriggers + 7], a
ld a, [wRightAlleyTrigger]
@@ -1451,7 +1453,8 @@ Func_15990: ; 0x15990
ld [wIndicatorStates + 3], a
ret
-Func_159c9: ; 0x159c9
+UpdateFieldStructures_RedField: ; 0x159c9
+; The Red field's top half has some dynamic strucutres, such as Ditto, the lightning bolt guard rail, and the roof over the 3 Voltorbs.
ld a, [wd7ad]
bit 7, a
ret nz
@@ -1463,13 +1466,15 @@ Func_159c9: ; 0x159c9
ld a, $ff
ld [wd7ad], a
callba LoadStageCollisionAttributes
- call Func_159f4
+ call LoadFieldStructureGraphics_RedField
ld a, $1
ld [wd580], a
- call Func_1404a
+ call LoadTimerGraphics
ret
-Func_159f4: ; 0x159f4
+LoadFieldStructureGraphics_RedField: ; 0x159f4
+; Based on the current stage collision state, load the proper graphics.
+; Things that change on the Red field are Ditto, the lightning bolt guard rail, and the roof over the 3 Voltorbs.
ld a, [hLCDC]
bit 7, a
jr z, .asm_15a13
@@ -1512,810 +1517,7 @@ Func_159f4: ; 0x159f4
ld [wd7f2], a
ret
-TileDataPointers_15a3f:
- dw $0000
- dw TileData_15b71
- dw TileData_15b16
- dw TileData_15abf
- dw TileData_15b23
- dw TileData_15adc
- dw TileData_15b2a
- dw TileData_15af3
- dw $0000
- dw $0000
- dw $0000
- dw TileData_15b16
- dw $0000
- dw TileData_15b23
- dw $0000
- dw TileData_15b2a
- dw $0000
- dw $0000
- dw $0000
- dw TileData_15b71
- dw TileData_15b3d
- dw $0000
- dw TileData_15b50
- dw $0000
- dw $0000
- dw $0000
- dw TileData_15b82
- dw $0000
- dw $0000
- dw TileData_15b3d
- dw $0000
- dw TileData_15b50
- dw $0000
- dw $0000
- dw TileData_15b57
- dw $0000
- dw $0000
- dw TileData_15b71
- dw TileData_15b2a
- dw $0000
- dw $0000
- dw $0000
- dw $0000
- dw TileData_15b57
- dw TileData_15b82
- dw $0000
- dw $0000
- dw TileData_15b2a
- dw $0000
- dw $0000
- dw TileData_15b6a
- dw $0000
- dw TileData_15b3d
- dw $0000
- dw $0000
- dw TileData_15b71
- dw $0000
- dw $0000
- dw $0000
- dw TileData_15b6a
- dw $0000
- dw TileData_15b3d
- dw TileData_15b82
- dw $0000
-
-TileData_15abf: ; 0x15abf
- db $e
- dw TileData_15b93
- dw TileData_15b9d
- dw TileData_15ba7
- dw TileData_15bb1
- dw TileData_15bbb
- dw TileData_15bc5
- dw TileData_15c0b
- dw TileData_15c15
- dw TileData_15c1f
- dw TileData_15c29
- dw TileData_15c33
- dw TileData_15c3d
- dw TileData_15c47
- dw TileData_15c51
-
-TileData_15adc: ; 0x15adc
- db $0b
- dw TileData_15c0b
- dw TileData_15c15
- dw TileData_15c1f
- dw TileData_15c29
- dw TileData_15c33
- dw TileData_15c3d
- dw TileData_15c47
- dw TileData_15c51
- dw TileData_15ce7
- dw TileData_15cf1
- dw TileData_15cfb
-
-TileData_15af3: ; 0x15af3
- db $11
- dw TileData_15b93
- dw TileData_15b9d
- dw TileData_15ba7
- dw TileData_15bb1
- dw TileData_15bbb
- dw TileData_15bc5
- dw TileData_15c0b
- dw TileData_15c15
- dw TileData_15c1f
- dw TileData_15c29
- dw TileData_15c33
- dw TileData_15c3d
- dw TileData_15c47
- dw TileData_15c51
- dw TileData_15cab
- dw TileData_15cb5
- dw TileData_15cbf
-
-TileData_15b16: ; 0x15b16
- db $06
- dw TileData_15b93
- dw TileData_15b9d
- dw TileData_15ba7
- dw TileData_15bb1
- dw TileData_15bbb
- dw TileData_15bc5
-
-TileData_15b23: ; 0x15b23
- db $03
- dw TileData_15ce7
- dw TileData_15cf1
- dw TileData_15cfb
-
-TileData_15b2a: ; 0x15b2a
- db $09
- dw TileData_15b93
- dw TileData_15b9d
- dw TileData_15ba7
- dw TileData_15bb1
- dw TileData_15bbb
- dw TileData_15bc5
- dw TileData_15cab
- dw TileData_15cb5
- dw TileData_15cbf
-
-TileData_15b3d: ; 0x15b3d
- db $09
- dw TileData_15bcf
- dw TileData_15bd9
- dw TileData_15be3
- dw TileData_15bed
- dw TileData_15bf7
- dw TileData_15c01
- dw TileData_15ce7
- dw TileData_15cf1
- dw TileData_15cfb
-
-TileData_15b50: ; 0x15b50
- db $03
- dw TileData_15cab
- dw TileData_15cb5
- dw TileData_15cbf
-
-TileData_15b57: ; 0x15b57
- db $09
- dw TileData_15b93
- dw TileData_15b9d
- dw TileData_15ba7
- dw TileData_15bb1
- dw TileData_15bbb
- dw TileData_15bc5
- dw TileData_15cc9
- dw TileData_15cd3
- dw TileData_15cdd
-
-TileData_15b6a: ; 0x15b6a
- db $03
- dw TileData_15cc9
- dw TileData_15cd3
- dw TileData_15cdd
-
-TileData_15b71: ; 0x15b71
- db $08
- dw TileData_15c0b
- dw TileData_15c15
- dw TileData_15c1f
- dw TileData_15c29
- dw TileData_15c33
- dw TileData_15c3d
- dw TileData_15c47
- dw TileData_15c51
-
-TileData_15b82: ; 0x15b82
- db $08
- dw TileData_15c5b
- dw TileData_15c65
- dw TileData_15c6f
- dw TileData_15c79
- dw TileData_15c83
- dw TileData_15c8d
- dw TileData_15c97
- dw TileData_15ca1
-
-TileData_15b93: ; 0x15b93
- dw Func_11d2
- db $30, $03
- dw vTilesBG tile $44
- dw StageRedFieldBottomIndicatorsGfx_Gameboy
- db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
- db $00
-
-TileData_15b9d: ; 0x15b9d
- dw Func_11d2
- db $30, $03
- dw vTilesBG tile $47
- dw StageRedFieldBottomIndicatorsGfx_Gameboy + $30
- db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
- db $00
-
-TileData_15ba7: ; 0x15ba7
- dw Func_11d2
- db $30, $03
- dw vTilesBG tile $4A
- dw StageRedFieldBottomIndicatorsGfx_Gameboy + $60
- db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
- db $00
-
-TileData_15bb1: ; 0x15bb1
- dw Func_11d2
- db $30, $03
- dw vTilesBG tile $4D
- dw StageRedFieldBottomIndicatorsGfx_Gameboy + $90
- db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
- db $00
-
-TileData_15bbb: ; 0x15bbb
- dw Func_11d2
- db $30, $03
- dw vTilesBG tile $50
- dw StageRedFieldBottomIndicatorsGfx_Gameboy + $C0
- db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
- db $00
-
-TileData_15bc5: ; 0x15bc5
- dw Func_11d2
- db $30, $03
- dw vTilesBG tile $53
- dw StageRedFieldBottomIndicatorsGfx_Gameboy + $F0
- db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
- db $00
-
-TileData_15bcf: ; 0x15bcf
- dw Func_11d2
- db $30, $03
- dw vTilesBG tile $44
- dw StageRedFieldTopBaseGameBoyGfx + $9a0
- db Bank(StageRedFieldTopBaseGameBoyGfx)
- db $00
-
-TileData_15bd9: ; 0x15bd9
- dw Func_11d2
- db $30, $03
- dw vTilesBG tile $47
- dw StageRedFieldTopBaseGameBoyGfx + $9d0
- db Bank(StageRedFieldTopBaseGameBoyGfx)
- db $00
-
-TileData_15be3: ; 0x15be3
- dw Func_11d2
- db $30, $03
- dw vTilesBG tile $4A
- dw StageRedFieldTopBaseGameBoyGfx + $a00
- db Bank(StageRedFieldTopBaseGameBoyGfx)
- db $00
-
-TileData_15bed: ; 0x15bed
- dw Func_11d2
- db $30, $03
- dw vTilesBG tile $4D
- dw StageRedFieldTopBaseGameBoyGfx + $a30
- db Bank(StageRedFieldTopBaseGameBoyGfx)
- db $00
-
-TileData_15bf7: ; 0x15bf7
- dw Func_11d2
- db $30, $03
- dw vTilesBG tile $50
- dw StageRedFieldTopBaseGameBoyGfx + $a60
- db Bank(StageRedFieldTopBaseGameBoyGfx)
- db $00
-
-TileData_15c01: ; 0x15c01
- dw Func_11d2
- db $30, $03
- dw vTilesBG tile $53
- dw StageRedFieldTopBaseGameBoyGfx + $a90
- db Bank(StageRedFieldTopBaseGameBoyGfx)
- db $00
-
-TileData_15c0b: ; 0x15c0b
- dw Func_11d2
- db $30, $03
- dw vTilesBG tile $56
- dw StageRedFieldBottomIndicatorsGfx_Gameboy + $120
- db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
- db $00
-
-TileData_15c15: ; 0x15c15
- dw Func_11d2
- db $30, $03
- dw vTilesBG tile $59
- dw StageRedFieldBottomIndicatorsGfx_Gameboy + $150
- db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
- db $00
-
-TileData_15c1f: ; 0x15c1f
- dw Func_11d2
- db $30, $03
- dw vTilesBG tile $5C
- dw StageRedFieldBottomIndicatorsGfx_Gameboy + $180
- db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
- db $00
-
-TileData_15c29: ; 0x15c29
- dw Func_11d2
- db $30, $03
- dw vTilesBG tile $5F
- dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1B0
- db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
- db $00
-
-TileData_15c33: ; 0x15c33
- dw Func_11d2
- db $30, $03
- dw vTilesBG tile $62
- dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1E0
- db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
- db $00
-
-TileData_15c3d: ; 0x15c3d
- dw Func_11d2
- db $10, $01
- dw vTilesBG tile $65
- dw StageRedFieldBottomIndicatorsGfx_Gameboy + $210
- db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
- db $00
-
-TileData_15c47: ; 0x15c47
- dw Func_11d2
- db $30, $03
- dw vTilesBG tile $66
- dw StageRedFieldBottomIndicatorsGfx_Gameboy + $620
- db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
- db $00
-
-TileData_15c51: ; 0x15c51
- dw Func_11d2
- db $30, $03
- dw vTilesBG tile $69
- dw StageRedFieldBottomIndicatorsGfx_Gameboy + $650
- db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
- db $00
-
-TileData_15c5b: ; 0x15c5b
- dw Func_11d2
- db $30, $03
- dw vTilesBG tile $56
- dw StageRedFieldTopBaseGameBoyGfx + $ac0
- db Bank(StageRedFieldTopBaseGameBoyGfx)
- db $00
-
-TileData_15c65: ; 0x15c65
- dw Func_11d2
- db $30, $03
- dw vTilesBG tile $59
- dw StageRedFieldTopBaseGameBoyGfx + $af0
- db Bank(StageRedFieldTopBaseGameBoyGfx)
- db $00
-
-TileData_15c6f: ; 0x15c6f
- dw Func_11d2
- db $30, $03
- dw vTilesBG tile $5C
- dw StageRedFieldTopBaseGameBoyGfx + $b20
- db Bank(StageRedFieldTopBaseGameBoyGfx)
- db $00
-
-TileData_15c79: ; 0x15c79
- dw Func_11d2
- db $30, $03
- dw vTilesBG tile $5F
- dw StageRedFieldTopBaseGameBoyGfx + $b50
- db Bank(StageRedFieldTopBaseGameBoyGfx)
- db $00
-
-TileData_15c83: ; 0x15c83
- dw Func_11d2
- db $30, $03
- dw vTilesBG tile $62
- dw StageRedFieldTopBaseGameBoyGfx + $b80
- db Bank(StageRedFieldTopBaseGameBoyGfx)
- db $00
-
-TileData_15c8d: ; 0x15c8d
- dw Func_11d2
- db $10, $01
- dw vTilesBG tile $65
- dw StageRedFieldTopBaseGameBoyGfx + $bb0
- db Bank(StageRedFieldTopBaseGameBoyGfx)
- db $00
-
-TileData_15c97: ; 0x15c97
- dw Func_11d2
- db $30, $03
- dw vTilesBG tile $66
- dw StageRedFieldTopBaseGameBoyGfx + $bc0
- db Bank(StageRedFieldTopBaseGameBoyGfx)
- db $00
-
-TileData_15ca1: ; 0x15ca1
- dw Func_11d2
- db $30, $03
- dw vTilesBG tile $69
- dw StageRedFieldTopBaseGameBoyGfx + $bf0
- db Bank(StageRedFieldTopBaseGameBoyGfx)
- db $00
-
-TileData_15cab: ; 0x15cab
- dw Func_11d2
- db $30, $03
- dw vTilesBG tile $6C
- dw StageRedFieldBottomIndicatorsGfx_Gameboy + $2B0
- db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
- db $00
-
-TileData_15cb5: ; 0x15cb5
- dw Func_11d2
- db $30, $03
- dw vTilesBG tile $6F
- dw StageRedFieldBottomIndicatorsGfx_Gameboy + $2E0
- db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
- db $00
-
-TileData_15cbf: ; 0x15cbf
- dw Func_11d2
- db $30, $03
- dw vTilesBG tile $72
- dw StageRedFieldBottomIndicatorsGfx_Gameboy + $310
- db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
- db $00
-
-TileData_15cc9: ; 0x15cc9
- dw Func_11d2
- db $30, $03
- dw vTilesBG tile $6C
- dw StageRedFieldTopBaseGameBoyGfx + $c20
- db Bank(StageRedFieldTopBaseGameBoyGfx)
- db $00
-
-TileData_15cd3: ; 0x15cd3
- dw Func_11d2
- db $30, $03
- dw vTilesBG tile $6F
- dw StageRedFieldTopBaseGameBoyGfx + $c50
- db Bank(StageRedFieldTopBaseGameBoyGfx)
- db $00
-
-TileData_15cdd: ; 0x15cdd
- dw Func_11d2
- db $30, $03
- dw vTilesBG tile $72
- dw StageRedFieldTopBaseGameBoyGfx + $c80
- db Bank(StageRedFieldTopBaseGameBoyGfx)
- db $00
-
-TileData_15ce7: ; 0x15ce7
- dw Func_11d2
- db $30, $03
- dw vTilesBG tile $6C
- dw StageRedFieldBottomIndicatorsGfx_Gameboy + $220
- db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
- db $00
-
-TileData_15cf1: ; 0x15cf1
- dw Func_11d2
- db $30, $03
- dw vTilesBG tile $6F
- dw StageRedFieldBottomIndicatorsGfx_Gameboy + $250
- db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
- db $00
-
-TileData_15cfb: ; 0x15cfb
- dw Func_11d2
- db $30, $03
- dw vTilesBG tile $72
- dw StageRedFieldBottomIndicatorsGfx_Gameboy + $280
- db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
- db $00
-
-TileDataPointers_15d05:
- dw $0000
- dw TileData_15db1
- dw TileData_15d96
- dw TileData_15d85
- dw TileData_15d99
- dw TileData_15d8a
- dw TileData_15d9c
- dw TileData_15d8f
- dw $0000
- dw $0000
- dw $0000
- dw TileData_15d96
- dw $0000
- dw TileData_15d99
- dw $0000
- dw TileData_15d9c
- dw $0000
- dw $0000
- dw $0000
- dw TileData_15db1
- dw TileData_15da1
- dw $0000
- dw TileData_15da6
- dw $0000
- dw $0000
- dw $0000
- dw TileData_15db4
- dw $0000
- dw $0000
- dw TileData_15da1
- dw $0000
- dw TileData_15da6
- dw $0000
- dw $0000
- dw TileData_15da9
- dw $0000
- dw $0000
- dw TileData_15db1
- dw TileData_15d9c
- dw $0000
- dw $0000
- dw $0000
- dw $0000
- dw TileData_15da9
- dw TileData_15db4
- dw $0000
- dw $0000
- dw TileData_15d9c
- dw $0000
- dw $0000
- dw TileData_15dae
- dw $0000
- dw TileData_15da1
- dw $0000
- dw $0000
- dw TileData_15db1
- dw $0000
- dw $0000
- dw $0000
- dw TileData_15dae
- dw $0000
- dw TileData_15da1
- dw TileData_15db4
- dw $0000
-
-TileData_15d85: ; 0x15d85
- db $02
- dw TileData_15db7
- dw TileData_15df2
-
-TileData_15d8a: ; 0x15d8a
- db $02
- dw TileData_15df2
- dw TileData_15e82
-
-TileData_15d8f: ; 0x15d8f
- db $03
- dw TileData_15db7
- dw TileData_15df2
- dw TileData_15e50
-
-TileData_15d96: ; 0x15d96
- db $01
- dw TileData_15db7
-
-TileData_15d99: ; 0x15d99
- db $01
- dw TileData_15e82
-
-TileData_15d9c: ; 0x15d9c
- db $02
- dw TileData_15db7
- dw TileData_15e50
-
-TileData_15da1: ; 0x15da1
- db $02
- dw TileData_15dd5
- dw TileData_15e82
-
-TileData_15da6: ; 0x15da6
- db $01
- dw TileData_15e50
-
-TileData_15da9: ; 0x15da9
- db $02
- dw TileData_15db7
- dw TileData_15e69
-
-TileData_15dae: ; 0x15dae
- db $01
- dw TileData_15e69
-
-TileData_15db1: ; 0x15dab1
- db $01
- dw TileData_15df2
-
-TileData_15db4: ; 0x15db4
- db $01
- dw TileData_15e21
-
-TileData_15db7: ; 0x15db7
- dw Func_1198
-
- db ($a << 1)
- db $03
- dw vBGMap + $4c
-
- db ($40 << 1)
- db $09
- dw vBGMap + $6c
-
- db (($32 << 1) | 1)
- db $08
- dw vBGMap + $8d
-
- db (4 << 1)
- dw vBGMap + $ae
-
- db (2 << 1)
- dw vBGMap + $d0
-
- db (2 << 1)
- dw vBGMap + $f1
-
- db (2 << 1)
- dw vBGMap + $111
-
- db (1 << 1)
- dw vBGMap + $132
-
- db $00 ; terminator
-
-TileData_15dd5: ; 0x15dd5
- dw Func_1198
-
- db ($a << 1)
- db $03
- dw vBGMap + $4c
-
- db (($28 << 1) | 1)
- db $08
- dw vBGMap + $6c
-
- db ($4 << 1)
- dw vBGMap + $8d
-
- db ($04 << 1)
- dw vBGMap + $ae
-
- db ($02 << 1)
- dw vBGMap + $d0
-
- db ($02 << 1)
- dw vBGMap + $f1
-
- db ($02 << 1)
- dw vBGMap + $111
-
- db (1 << 1)
- dw vBGMap + $132
-
- db $00 ; terminator
-
-TileData_15df2: ; 0x15df2
- dw LoadTileLists
- db $19 ; total number of tiles
-
- db $05 ; number of tiles
- dw vBGMap + $a9
- db $1e, $1f, $20, $21, $22
-
- db $07
- dw vBGMap + $c7
- db $23, $24, $39, $3a, $25, $3b, $26
-
- db $08 ; number of tiles
- dw vBGMap + $e6
- db $27, $37, $28, $29, $2a, $2b, $3c, $2c
-
- db $03 ; number of tiles
- dw vBGMap + $106
- db $2d, $38, $2e
-
- db $01 ; number of tiles
- dw vBGMap + $10d
- db $2f
-
- db $01 ; number of tiles
- dw vBGMap + $126
- db $30
-
- db 00 ; terminator
-
-TileData_15e21: ; 0x15e21
- dw LoadTileLists
- db $19 ; total number of tiles
-
- db $05 ; number of tiles
- dw vBGMap + $a9
- db $0b, $0c, $0d, $0e, $0f
-
- db $07
- dw vBGMap + $c7
- db $10, $11, $33, $34, $12, $35, $13
-
- db $08 ; number of tiles
- dw vBGMap + $e6
- db $14, $31, $15, $16, $17, $18, $36, $19
-
- db $03 ; number of tiles
- dw vBGMap + $106
- db $1a, $32, $1b
-
- db $01 ; number of tiles
- dw vBGMap + $10d
- db $1c
-
- db $01 ; number of tiles
- dw vBGMap + $126
- db $1d
-
- db 00 ; terminator
-
-TileData_15e50: ; 0x15e50
- dw LoadTileLists
- db $09 ; total number of tiles
-
- db $03 ; number of tiles
- dw vBGMap + $100
- db $45, $46, $22
-
- db $02 ; number of tiles
- dw vBGMap + $120
- db $45, $46
-
- db $02 ; number of tiles
- dw vBGMap + $140
- db $45, $46
-
- db $02 ; number of tiles
- dw vBGMap + $160
- db $45, $46
-
- db $00 ; terminator
-
-TileData_15e69: ; 0x15e69
- dw LoadTileLists
- db $09 ; total number of tiles
-
- db $03 ; number of tiles
- dw vBGMap + $100
- db $43, $44, $22
-
- db $02 ; number of tiles
- dw vBGMap + $120
- db $45, $46
-
- db $02 ; number of tiles
- dw vBGMap + $140
- db $45, $46
-
- db $02 ; number of tiles
- dw vBGMap + $160
- db $45, $46
-
- db $00 ; terminator
-
-TileData_15e82: ; 0x15e82
- dw Func_1198
-
- db ((4 << 1) | 1)
- db $07
- dw vBGMap + $100
-
- db (($23 << 1) | 1)
- db $04
- dw vBGMap + $120
-
- db (2 << 1)
- dw vBGMap + $140
-
- db (2 << 1)
- dw vBGMap + $160
-
- db $00 ; terminator
+INCLUDE "data/queued_tiledata/red_field/structures.asm"
ResolveBellsproutCollision: ; 0x15e93
ld a, [wBellsproutCollision]
@@ -2425,40 +1627,43 @@ BellsproutAnimationData: ; 0x15f69
db $28, $01
db $00 ; terminator
-ResolveRedStageBumperCollision: ; 0x15f86
+ResolveBumpersCollision_RedField: ; 0x15f86
ld a, [wWhichBumper]
and a
- jr z, .asm_15f99
- call LoadBumperCollisionGraphics_RedField
- call Func_15fa6
+ jr z, .noNewCollision
+ call LoadBumpersGraphics_RedField
+ call LightUpBumper_RedField
xor a
ld [wWhichBumper], a
call ApplyBumperCollision_RedField
-.asm_15f99
- ld a, [wd4da]
+.noNewCollision
+ ld a, [wBumperLightUpDuration]
and a
ret z
dec a
- ld [wd4da], a
- call z, LoadBumperCollisionGraphics_RedField
+ ld [wBumperLightUpDuration], a
+ call z, LoadBumpersGraphics_RedField
ret
-Func_15fa6: ; 0x15fa6
+LightUpBumper_RedField: ; 0x15fa6
+; Makes the hit bumper light up briefly
ld a, $10
- ld [wd4da], a
+ ld [wBumperLightUpDuration], a
ld a, [wWhichBumperId]
sub $6
ld [wd4db], a
sla a
inc a
- jr asm_15fc0
+ jr LoadBumperGraphics_RedField
-LoadBumperCollisionGraphics_RedField: ; 0x5fb8
+LoadBumpersGraphics_RedField: ; 0x15fb8
ld a, [wd4db]
cp $ff
ret z
sla a
-asm_15fc0
+ ; fall through
+
+LoadBumperGraphics_RedField: ; 0x15fc0
sla a
ld c, a
ld b, $0
@@ -3119,14 +2324,14 @@ ResolveRedStagePikachuCollision: ; 0x1660c
jr nz, .asm_16634
ld a, [wWhichPikachuId]
sub $1c
- ld hl, wd518
+ ld hl, wWhichPikachuSaverSide
cp [hl]
jr nz, .asm_1667b
ld a, [wPikachuSaverCharge]
cp MAX_PIKACHU_SAVER_CHARGE
jr nz, .asm_16667
.asm_16634
- ld hl, PikachuSaverAnimationDataBlueStage
+ ld hl, PikachuSaverAnimationData_RedField
ld de, wPikachuSaverAnimation
call InitAnimation
ld a, [wPikachuSaverSlotRewardActive]
@@ -3149,7 +2354,7 @@ ResolveRedStagePikachuCollision: ; 0x1660c
jr .asm_1667b
.asm_16667
- ld hl, PikachuSaverAnimation2DataBlueStage
+ ld hl, PikachuSaverAnimation2Data_RedField
ld de, wPikachuSaverAnimation
call InitAnimation
ld a, $2
@@ -3159,8 +2364,8 @@ ResolveRedStagePikachuCollision: ; 0x1660c
.asm_1667b
ld a, [wd51c]
and a
- call z, Func_16766
- call Func_1669e
+ call z, SetPikachuSaverSide_RedField
+ call UpdatePikachuSaverAnimation_RedField
ld a, [wPikachuSaverCharge]
cp MAX_PIKACHU_SAVER_CHARGE
ret nz
@@ -3175,11 +2380,11 @@ ResolveRedStagePikachuCollision: ; 0x1660c
call PlaySoundEffect
ret
-Func_1669e: ; 0x1669e
+UpdatePikachuSaverAnimation_RedField: ; 0x1669e
ld a, [wd51c]
cp $1
jr nz, .asm_16719
- ld hl, PikachuSaverAnimationDataBlueStage
+ ld hl, PikachuSaverAnimationData_RedField
ld de, wPikachuSaverAnimation
call UpdateAnimation
ret nc
@@ -3226,7 +2431,7 @@ Func_1669e: ; 0x1669e
.asm_16719
cp $2
jr nz, .asm_16732
- ld hl, PikachuSaverAnimation2DataBlueStage
+ ld hl, PikachuSaverAnimation2Data_RedField
ld de, wPikachuSaverAnimation
call UpdateAnimation
ret nc
@@ -3244,7 +2449,7 @@ Func_1669e: ; 0x1669e
ld [wPikachuSaverAnimationFrame], a
ret
-PikachuSaverAnimationDataBlueStage: ; 0x1673c
+PikachuSaverAnimationData_RedField: ; 0x1673c
; Each entry is [duration][OAM id]
db $0C, $02
db $05, $03
@@ -3266,29 +2471,30 @@ PikachuSaverAnimationDataBlueStage: ; 0x1673c
db $01, $00
db $00
-PikachuSaverAnimation2DataBlueStage: ; 0x16761
+PikachuSaverAnimation2Data_RedField: ; 0x16761
; Each entry is [duration][OAM id]
db $0C, $02
db $01, $00
db $00
-Func_16766: ; 0x16766
+SetPikachuSaverSide_RedField: ; 0x16766
+; Sets which side Pikachu is on, depending on which flipper was pressed last.
ld hl, wKeyConfigLeftFlipper
call IsKeyPressed2
- jr z, .asm_16774
- ld hl, wd518
+ jr z, .checkRightFlipperKeyPress
+ ld hl, wWhichPikachuSaverSide
ld [hl], $0
ret
-.asm_16774
+.checkRightFlipperKeyPress
ld hl, wKeyConfigRightFlipper
call IsKeyPressed2
ret z
- ld hl, wd518
+ ld hl, wWhichPikachuSaverSide
ld [hl], $1
ret
-ResolveStaryuCollision: ; 0x16781
+ResolveStaryuCollision_Top: ; 0x16781
ld a, [wStaryuCollision]
and a
jr z, .asm_167bd
@@ -3305,7 +2511,7 @@ ResolveStaryuCollision: ; 0x16781
ld [wd502], a
ld a, $14
ld [wd503], a
- call Func_16859
+ call LoadStaryuGraphics_Top
ld a, $6
callba Func_10000
ret
@@ -3321,7 +2527,7 @@ ResolveStaryuCollision: ; 0x16781
ld a, [wd502]
res 1, a
ld [wd502], a
- call Func_16859
+ call LoadStaryuGraphics_Top
ld a, [wd502]
and $1
ld c, a
@@ -3330,7 +2536,7 @@ ResolveStaryuCollision: ; 0x16781
or c
ld [wStageCollisionState], a
callba LoadStageCollisionAttributes
- call Func_159f4
+ call LoadFieldStructureGraphics_RedField
lb de, $00, $07
call PlaySoundEffect
ld a, [wStageCollisionState]
@@ -3338,10 +2544,10 @@ ResolveStaryuCollision: ; 0x16781
jp nz, LoadPinballUpgradeTriggersGraphics_RedField
jp LoadDisabledPinballUpgradeTriggerGraphics_RedField
-Func_167ff: ; 0x167ff
+ResolveStaryuCollision_Bottom: ; 0x167ff
ld a, [wStaryuCollision]
and a
- jr z, .asm_16839
+ jr z, .noCollision
xor a
ld [wStaryuCollision], a
ld a, [wd503]
@@ -3354,12 +2560,12 @@ Func_167ff: ; 0x167ff
ld [wd502], a
ld a, $14
ld [wd503], a
- call Func_16878
+ call LoadStaryuGraphics_Bottom
ld a, $6
callba Func_10000
ret
-.asm_16839
+.noCollision
ld a, [wd503]
and a
ret z
@@ -3378,7 +2584,7 @@ Func_167ff: ; 0x167ff
call PlaySoundEffect
ret
-Func_16859: ; 0x16859
+LoadStaryuGraphics_Top: ; 0x16859
ld a, [wd502]
sla a
ld c, a
@@ -3399,7 +2605,7 @@ Func_16859: ; 0x16859
call Func_10aa
ret
-Func_16878: ; 0x16878
+LoadStaryuGraphics_Bottom: ; 0x16878
ld a, [wd502]
and $1
sla a
@@ -3421,260 +2627,15 @@ Func_16878: ; 0x16878
call Func_10aa
ret
-TileDataPointers_16899:
- dw TileData_168a1
- dw TileData_168a8
- dw TileData_168af
- dw TileData_168af
-
-TileData_168a1: ; 0x168a1
- db $03
- dw TileData_168b6
- dw TileData_168c0
- dw TileData_168ca
-
-TileData_168a8: ; 0x168a8
- db $03
- dw TileData_168d4
- dw TileData_168de
- dw TileData_168e8
-
-TileData_168af: ; 0x168af
- db $03
- dw TileData_168f2
- dw TileData_168fc
- dw TileData_16906
-
-TileData_168b6: ; 0x168b6
- dw Func_11d2
- db $30, $03
- dw vTilesSH tile $50
- dw StageRedFieldTopBaseGameBoyGfx + $260
- db Bank(StageRedFieldTopBaseGameBoyGfx)
- db $00
-
-TileData_168c0: ; 0x168c0
- dw Func_11d2
- db $30, $03
- dw vTilesSH tile $53
- dw StageRedFieldTopBaseGameBoyGfx + $290
- db Bank(StageRedFieldTopBaseGameBoyGfx)
- db $00
-
-TileData_168ca: ; 0x168ca
- dw Func_11d2
- db $10, $01
- dw vTilesSH tile $56
- dw StageRedFieldTopBaseGameBoyGfx + $2c0
- db Bank(StageRedFieldTopBaseGameBoyGfx)
- db $00
-
-TileData_168d4: ; 0x168d4
- dw Func_11d2
- db $30, $03
- dw vTilesSH tile $52
- dw StageRedFieldTopBaseGameBoyGfx + $280
- db Bank(StageRedFieldTopBaseGameBoyGfx)
- db $00
-
-TileData_168de: ; 0x168de
- dw Func_11d2
- db $20, $02
- dw vTilesSH tile $55
- dw StageRedFieldTopBaseGameBoyGfx + $2b0
- db Bank(StageRedFieldTopBaseGameBoyGfx)
- db $00
-
-TileData_168e8: ; 0x168e8
- dw Func_11d2
- db $20, $02
- dw vTilesSH tile $50
- dw StageRedFieldBottomIndicatorsGfx_Gameboy + $EA0
- db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
- db $00
-
-TileData_168f2: ; 0x168f2
- dw Func_11d2
- db $30, $03
- dw vTilesSH tile $51
- dw StageRedFieldBottomIndicatorsGfx_Gameboy + $10E0
- db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
- db $00
-
-TileData_168fc: ; 0x168fc
- dw Func_11d2
- db $30, $03
- dw vTilesSH tile $54
- dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1110
- db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
- db $00
-
-TileData_16906: ; 0x16906
- dw Func_11d2
- db $10, $01
- dw vTilesSH tile $50
- dw StageRedFieldTopBaseGameBoyGfx + $260
- db Bank(StageRedFieldTopBaseGameBoyGfx)
- db $00
-
-TileDataPointers_16910:
- dw TileData_16918
- dw TileData_1691b
- dw TileData_1691e
- dw TileData_1691e
-
-TileData_16918: ;0x16918
- db $01
- dw TileData_16921
-
-TileData_1691b: ;0x1691b
- db $01
- dw TileData_16934
-
-TileData_1691e: ;0x1691e
- db $01
- dw TileData_16947
-
-TileData_16921: ; 0x16921
- dw LoadTileLists
- db $06
-
- db $03
- dw vBGMap + $1C6
- db $C3, $C4, $C5
-
- db $02
- dw vBGMap + $1E7
- db $C6, $C7
-
- db $01
- dw vBGMap + $207
- db $C8
-
- db $00
-
-TileData_16934: ; 0x16934
- dw LoadTileLists
- db $06
-
- db $03
- dw vBGMap + $1C6
- db $CD, $CE, $C5
-
- db $02
- dw vBGMap + $1E7
- db $C6, $C7
-
- db $01
- dw vBGMap + $207
- db $C8
-
- db $00
-
-TileData_16947: ; 0x16947
- dw LoadTileLists
- db $06
-
- db $03
- dw vBGMap + $1C6
- db $C3, $C4, $C9
-
- db $02
- dw vBGMap + $1E7
- db $CA, $CB
-
- db $01
- dw vBGMap + $207
- db $CC
-
- db $00
-
-TileDataPointers_1695a:
- dw TileData_1695e
- dw TileData_16961
-
-TileData_1695e: ; 0x1695e
- db $01
- dw TileData_16964
-
-TileData_16961: ; 0x16961
- db $01
- dw TileData_16972
-
-TileData_16964: ; 0x16964
- dw LoadTileLists
- db $04
-
- db $02
- dw vBGMap + $40
- db $BE, $BF
-
- db $02
- dw vBGMap + $60
- db $C0, $C1
-
- db $00
-
-TileData_16972: ; 0x16972
- dw LoadTileLists
- db $04
-
- db $02
- dw vBGMap + $40
- db $C2, $C3
-
- db $02
- dw vBGMap + $60
- db $C4, $C5
-
- db $00
-
-TileDataPointers_16980:
- dw TileData_16984
- dw TileData_16987
-
-TileData_16984: ; 0x16984
- db $01
- dw TileData_1698a
-
-TileData_16987: ; 0x16987
- db $01
- dw TileData_16998
-
-TileData_1698a: ; 0x1698a
- dw LoadTileLists
- db $04
-
- db $02
- dw vBGMap + $40
- db $BC, $BD
-
- db $02
- dw vBGMap + $60
- db $BE, $BF
-
- db $00
+INCLUDE "data/queued_tiledata/red_field/staryu_bumper.asm"
-TileData_16998: ; 0x16998
- dw LoadTileLists
- db $04
-
- db $02
- dw vBGMap + $40
- db $C0, $C1
-
- db $02
- dw vBGMap + $60
- db $C2, $C3
-
- db $00
-
-Func_169a6: ; 0x169a6
+UpdateArrowIndicators_RedField: ; 0x169a6
+; Updates the 5 blinking arrow indicators in the red field bottom.
ld a, [hNumFramesDropped]
and $1f
ret nz
ld bc, $0000
-.asm_169ae
+.loop
push bc
ld hl, wIndicatorStates
add hl, bc
@@ -3687,16 +2648,16 @@ Func_169a6: ; 0x169a6
jr z, .asm_169c2
inc a
.asm_169c2
- call Func_169cd
+ call LoadArrowIndicatorGraphics_RedField
.asm_169c5
pop bc
inc c
ld a, c
cp $5
- jr nz, .asm_169ae
+ jr nz, .loop
ret
-Func_169cd: ; 0x169cd
+LoadArrowIndicatorGraphics_RedField: ; 0x169cd
push af
sla c
ld hl, TileDataPointers_169ed
@@ -3720,869 +2681,7 @@ Func_169cd: ; 0x169cd
call Func_10aa
ret
-TileDataPointers_169ed:
- dw TileDataPointers_169f7
- dw TileDataPointers_16a01
- dw TileDataPointers_16a0b
- dw TileDataPointers_16a0f
- dw TileDataPointers_16a13
-
-TileDataPointers_169f7: ; 0x169f7
- dw TileData_16a17
- dw TileData_16a1e
- dw TileData_16a25
- dw TileData_16a2c
- dw TileData_16a33
-
-TileDataPointers_16a01: ; 0x16a01
- dw TileData_16a3a
- dw TileData_16a41
- dw TileData_16a48
- dw TileData_16a4f
- dw TileData_16a56
-
-TileDataPointers_16a0b: ; 0x16a0b
- dw TileData_16a5d
- dw TileData_16a60
-
-TileDataPointers_16a0f: ; 0x16a0f
- dw TileData_16a63
- dw TileData_16a66
-
-TileDataPointers_16a13: ; 0x16a13
- dw TileData_16a69
- dw TileData_16a6e
-
-TileData_16a17: ; 0x16a17
- db $03
- dw TileData_16a73
- dw TileData_16a7d
- dw TileData_16a87
-
-TileData_16a1e: ; 0x16a1e
- db $03
- dw TileData_16a91
- dw TileData_16a9b
- dw TileData_16aa5
-
-TileData_16a25: ; 0x16a25
- db $03
- dw TileData_16aaf
- dw TileData_16ab9
- dw TileData_16ac3
-
-TileData_16a2c: ; 0x16a2c
- db $03
- dw TileData_16acd
- dw TileData_16ad7
- dw TileData_16ae1
-
-TileData_16a33: ; 0x16a33
- db $03
- dw TileData_16aeb
- dw TileData_16af5
- dw TileData_16aff
-
-TileData_16a3a: ; 0x16a3a
- db $03
- dw TileData_16b09
- dw TileData_16b13
- dw TileData_16b1d
-
-TileData_16a41: ; 0x16a41
- db $03
- dw TileData_16b27
- dw TileData_16b31
- dw TileData_16b3b
-
-TileData_16a48: ; 0x16a48
- db $03
- dw TileData_16b45
- dw TileData_16b4f
- dw TileData_16b59
-
-TileData_16a4f: ; 0x16a4f
- db $03
- dw TileData_16b63
- dw TileData_16b6d
- dw TileData_16b77
-
-TileData_16a56: ; 0x16a56
- db $03
- dw TileData_16b81
- dw TileData_16b8b
- dw TileData_16b95
-
-TileData_16a5d: ; 0x16a5d
- db $01
- dw TileData_16b9f
-
-TileData_16a60: ; 0x16a60
- db $01
- dw TileData_16ba9
-
-TileData_16a63: ; 0x16a63
- db $01
- dw TileData_16bb3
-
-TileData_16a66: ; 0x16a66
- db $01
- dw TileData_16bbd
-
-TileData_16a69: ; 0x16a69
- db $02
- dw TileData_16bc7
- dw TileData_16bd1
-
-TileData_16a6e: ; 0x16a6e
- db $02
- dw TileData_16bdb
- dw TileData_16be5
-
-TileData_16a73: ; 0x16a73
- dw Func_11d2
- db $30, $03
- dw vTilesBG tile $3A
- dw StageRedFieldBottomBaseGameBoyGfx + $ba0
- db Bank(StageRedFieldBottomBaseGameBoyGfx)
- db $00
-
-TileData_16a7d: ; 0x16a7d
- dw Func_11d2
- db $30, $03
- dw vTilesBG tile $3D
- dw StageRedFieldBottomBaseGameBoyGfx + $bd0
- db Bank(StageRedFieldBottomBaseGameBoyGfx)
- db $00
-
-TileData_16a87: ; 0x16a87
- dw Func_11d2
- db $10, $01
- dw vTilesBG tile $40
- dw StageRedFieldBottomBaseGameBoyGfx + $c00
- db Bank(StageRedFieldBottomBaseGameBoyGfx)
- db $00
-
-TileData_16a91: ; 0x16a91
- dw Func_11d2
- db $30, $03
- dw vTilesBG tile $3A
- dw StageRedFieldBottomIndicatorsGfx_Gameboy + $380
- db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
- db $00
-
-TileData_16a9b: ; 0x16a9b
- dw Func_11d2
- db $30, $03
- dw vTilesBG tile $3D
- dw StageRedFieldBottomIndicatorsGfx_Gameboy + $3B0
- db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
- db $00
-
-TileData_16aa5: ; 0x16aa5
- dw Func_11d2
- db $10, $01
- dw vTilesBG tile $40
- dw StageRedFieldBottomIndicatorsGfx_Gameboy + $3E0
- db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
- db $00
-
-TileData_16aaf: ; 0x16aaf
- dw Func_11d2
- db $30, $03
- dw vTilesBG tile $3A
- dw StageRedFieldBottomIndicatorsGfx_Gameboy + $3F0
- db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
- db $00
-
-TileData_16ab9: ; 0x16ab9
- dw Func_11d2
- db $30, $03
- dw vTilesBG tile $3D
- dw StageRedFieldBottomIndicatorsGfx_Gameboy + $420
- db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
- db $00
-
-TileData_16ac3: ; 0x16ac3
- dw Func_11d2
- db $10, $01
- dw vTilesBG tile $40
- dw StageRedFieldBottomIndicatorsGfx_Gameboy + $450
- db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
- db $00
-
-TileData_16acd: ; 0x16acd
- dw Func_11d2
- db $30, $03
- dw vTilesBG tile $3A
- dw StageRedFieldBottomIndicatorsGfx_Gameboy + $460
- db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
- db $00
-
-TileData_16ad7: ; 0x16ad7
- dw Func_11d2
- db $30, $03
- dw vTilesBG tile $3D
- dw StageRedFieldBottomIndicatorsGfx_Gameboy + $490
- db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
- db $00
-
-TileData_16ae1: ; 0x16ae1
- dw Func_11d2
- db $10, $01
- dw vTilesBG tile $40
- dw StageRedFieldBottomIndicatorsGfx_Gameboy + $4C0
- db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
- db $00
-
-TileData_16aeb: ; 0x16aeb
- dw Func_11d2
- db $30, $03
- dw vTilesBG tile $3A
- dw StageRedFieldBottomIndicatorsGfx_Gameboy + $F30
- db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
- db $00
-
-TileData_16af5: ; 0x16af5
- dw Func_11d2
- db $30, $03
- dw vTilesBG tile $3D
- dw StageRedFieldBottomIndicatorsGfx_Gameboy + $F60
- db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
- db $00
-
-TileData_16aff: ; 0x16aff
- dw Func_11d2
- db $10, $01
- dw vTilesBG tile $40
- dw StageRedFieldBottomIndicatorsGfx_Gameboy + $F90
- db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
- db $00
-
-TileData_16b09: ; 0x16b09
- dw Func_11d2
- db $30, $03
- dw vTilesBG tile $41
- dw StageRedFieldBottomBaseGameBoyGfx + $c10
- db Bank(StageRedFieldBottomBaseGameBoyGfx)
- db $00
-
-TileData_16b13: ; 0x16b13
- dw Func_11d2
- db $30, $03
- dw vTilesBG tile $44
- dw StageRedFieldBottomBaseGameBoyGfx + $c40
- db Bank(StageRedFieldBottomBaseGameBoyGfx)
- db $00
-
-TileData_16b1d: ; 0x16b1d
- dw Func_11d2
- db $10, $01
- dw vTilesBG tile $47
- dw StageRedFieldBottomBaseGameBoyGfx + $c70
- db Bank(StageRedFieldBottomBaseGameBoyGfx)
- db $00
-
-TileData_16b27: ; 0x16b27
- dw Func_11d2
- db $30, $03
- dw vTilesBG tile $41
- dw StageRedFieldBottomIndicatorsGfx_Gameboy + $4D0
- db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
- db $00
-
-TileData_16b31: ; 0x16b31
- dw Func_11d2
- db $30, $03
- dw vTilesBG tile $44
- dw StageRedFieldBottomIndicatorsGfx_Gameboy + $500
- db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
- db $00
-
-TileData_16b3b: ; 0x16b3b
- dw Func_11d2
- db $10, $01
- dw vTilesBG tile $47
- dw StageRedFieldBottomIndicatorsGfx_Gameboy + $530
- db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
- db $00
-
-TileData_16b45: ; 0x16b45
- dw Func_11d2
- db $30, $03
- dw vTilesBG tile $41
- dw StageRedFieldBottomIndicatorsGfx_Gameboy + $540
- db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
- db $00
-
-TileData_16b4f: ; 0x16b4f
- dw Func_11d2
- db $30, $03
- dw vTilesBG tile $44
- dw StageRedFieldBottomIndicatorsGfx_Gameboy + $570
- db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
- db $00
-
-TileData_16b59: ; 0x16b59
- dw Func_11d2
- db $10, $01
- dw vTilesBG tile $47
- dw StageRedFieldBottomIndicatorsGfx_Gameboy + $5A0
- db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
- db $00
-
-TileData_16b63: ; 0x16b63
- dw Func_11d2
- db $30, $03
- dw vTilesBG tile $41
- dw StageRedFieldBottomIndicatorsGfx_Gameboy + $5B0
- db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
- db $00
-
-TileData_16b6d: ; 0x16b6d
- dw Func_11d2
- db $30, $03
- dw vTilesBG tile $44
- dw StageRedFieldBottomIndicatorsGfx_Gameboy + $5E0
- db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
- db $00
-
-TileData_16b77: ; 0x16b77
- dw Func_11d2
- db $10, $01
- dw vTilesBG tile $47
- dw StageRedFieldBottomIndicatorsGfx_Gameboy + $610
- db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
- db $00
-
-TileData_16b81: ; 0x16b81
- dw Func_11d2
- db $30, $03
- dw vTilesBG tile $41
- dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1010
- db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
- db $00
-
-TileData_16b8b: ; 0x16b8b
- dw Func_11d2
- db $30, $03
- dw vTilesBG tile $44
- dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1040
- db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
- db $00
-
-TileData_16b95: ; 0x16b95
- dw Func_11d2
- db $10, $01
- dw vTilesBG tile $47
- dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1070
- db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
- db $00
-
-TileData_16b9f: ; 0x16b9f
- dw Func_11d2
- db $30, $03
- dw vTilesBG tile $20
- dw StageRedFieldBottomBaseGameBoyGfx + $a00
- db Bank(StageRedFieldBottomBaseGameBoyGfx)
- db $00
-
-TileData_16ba9: ; 0x16ba9
- dw Func_11d2
- db $30, $03
- dw vTilesBG tile $20
- dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1080
- db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
- db $00
-
-TileData_16bb3: ; 0x16bb3
- dw Func_11d2
- db $30, $03
- dw vTilesBG tile $23
- dw StageRedFieldBottomBaseGameBoyGfx + $a30
- db Bank(StageRedFieldBottomBaseGameBoyGfx)
- db $00
-
-TileData_16bbd: ; 0x16bbd
- dw Func_11d2
- db $30, $03
- dw vTilesBG tile $23
- dw StageRedFieldBottomIndicatorsGfx_Gameboy + $10B0
- db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
- db $00
-
-TileData_16bc7: ; 0x16bc7
- dw Func_11d2
- db $20, $02
- dw vTilesBG tile $1C
- dw StageRedFieldBottomBaseGameBoyGfx + $9c0
- db Bank(StageRedFieldBottomBaseGameBoyGfx)
- db $00
-
-TileData_16bd1: ; 0x16bd1
- dw Func_11d2
- db $20, $02
- dw vTilesBG tile $1E
- dw StageRedFieldBottomBaseGameBoyGfx + $9e0
- db Bank(StageRedFieldBottomBaseGameBoyGfx)
- db $00
-
-TileData_16bdb: ; 0x16bdb
- dw Func_11d2
- db $20, $02
- dw vTilesBG tile $1C
- dw StageRedFieldBottomIndicatorsGfx_Gameboy + $6E0
- db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
- db $00
-
-TileData_16be5: ; 0x16be5
- dw Func_11d2
- db $20, $02
- dw vTilesBG tile $1E
- dw StageRedFieldBottomIndicatorsGfx_Gameboy + $700
- db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy)
- db $00
-
-TileDataPointers_16bef:
- dw TileDataPointers_16bf9
- dw TileDataPointers_16c03
- dw TileDataPointers_16c0d
- dw TileDataPointers_16c11
- dw TileDataPointers_16c15
-
-TileDataPointers_16bf9: ; 0x16bf9
- dw TileData_16c19
- dw TileData_16c1c
- dw TileData_16c1f
- dw TileData_16c22
- dw TileData_16c25
-
-TileDataPointers_16c03: ; 0x16c03
- dw TileData_16c28
- dw TileData_16c2b
- dw TileData_16c2e
- dw TileData_16c31
- dw TileData_16c34
-
-TileDataPointers_16c0d: ; 0x16c0d
- dw TileData_16c37
- dw TileData_16c3a
-
-TileDataPointers_16c11: ; 0x16c11
- dw TileData_16c3d
- dw TileData_16c40
-
-TileDataPointers_16c15: ; 0x16c15
- dw TileData_16c43
- dw TileData_16c46
-
-TileData_16c19: ; 0x16c19
- db $01
- dw TileData_16c49
-
-TileData_16c1c: ; 0x16c1c
- db $01
- dw TileData_16c63
-
-TileData_16c1f: ; 0x16c1f
- db $01
- dw TileData_16c7d
-
-TileData_16c22: ; 0x16c22
- db $01
- dw TileData_16c97
-
-TileData_16c25: ; 0x16c25
- db $01
- dw TileData_16cb1
-
-TileData_16c28: ; 0x16c28
- db $01
- dw TileData_16ccb
-
-TileData_16c2b: ; 0x16c2b
- db $01
- dw TileData_16ce5
-
-TileData_16c2e: ; 0x16c2e
- db $01
- dw TileData_16cff
-
-TileData_16c31: ; 0x16c31
- db $01
- dw TileData_16d19
-
-TileData_16c34: ; 0x16c34
- db $01
- dw TileData_16d33
-
-TileData_16c37: ; 0x16c37
- db $01
- dw TileData_16d4d
-
-TileData_16c3a: ; 0x16c3a
- db $01
- dw TileData_16d5a
-
-TileData_16c3d: ; 0x16c3d
- db $01
- dw TileData_16d67
-
-TileData_16c40: ; 0x16c40
- db $01
- dw TileData_16d74
-
-TileData_16c43: ; 0x16c43
- db $01
- dw TileData_16d81
-
-TileData_16c46: ; 0x16c46
- db $01
- dw TileData_16d8f
-
-TileData_16c49: ; 0x16c49
- dw LoadTileLists
- db $07
-
- db $01
- dw vBGMap + $23
- db $5E
-
- db $02
- dw vBGMap + $43
- db $5F, $60
-
- db $02
- dw vBGMap + $64
- db $61, $62
-
- db $01
- dw vBGMap + $85
- db $63
-
- db $01
- dw vBGMap + $A5
- db $64
-
- db $00
-
-TileData_16c63: ; 0x16c63
- dw LoadTileLists
- db $07
-
- db $01
- dw vBGMap + $23
- db $65
-
- db $02
- dw vBGMap + $43
- db $66, $67
-
- db $02
- dw vBGMap + $64
- db $61, $62
-
- db $01
- dw vBGMap + $85
- db $63
-
- db $01
- dw vBGMap + $A5
- db $64
-
- db $00
-
-TileData_16c7d: ; 0x16c7d
- dw LoadTileLists
- db $07
-
- db $01
- dw vBGMap + $23
- db $65
-
- db $02
- dw vBGMap + $43
- db $66, $67
-
- db $02
- dw vBGMap + $64
- db $68, $69
-
- db $01
- dw vBGMap + $85
- db $63
-
- db $01
- dw vBGMap + $A5
- db $64
-
- db $00
-
-TileData_16c97: ; 0x16c97
- dw LoadTileLists
- db $07
-
- db $01
- dw vBGMap + $23
- db $65
-
- db $02
- dw vBGMap + $43
- db $66, $67
-
- db $02
- dw vBGMap + $64
- db $68, $69
-
- db $01
- dw vBGMap + $85
- db $6A
-
- db $01
- dw vBGMap + $A5
- db $6B
-
- db $00
-
-TileData_16cb1: ; 0x16cb1
- dw LoadTileLists
- db $07
-
- db $01
- dw vBGMap + $23
- db $5E
-
- db $02
- dw vBGMap + $43
- db $5F, $60
-
- db $02
- dw vBGMap + $64
- db $68, $69
-
- db $01
- dw vBGMap + $85
- db $6A
-
- db $01
- dw vBGMap + $A5
- db $6B
-
- db $00
-
-TileData_16ccb: ; 0x16ccb
- dw LoadTileLists
- db $07
-
- db $01
- dw vBGMap + $30
- db $6C
-
- db $02
- dw vBGMap + $4F
- db $6D, $6E
-
- db $02
- dw vBGMap + $6E
- db $6F, $70
-
- db $01
- dw vBGMap + $8E
- db $71
-
- db $01
- dw vBGMap + $AE
- db $72
-
- db $00
-
-TileData_16ce5: ; 0x16ce5
- dw LoadTileLists
- db $07
-
- db $01
- dw vBGMap + $30
- db $73
-
- db $02
- dw vBGMap + $4F
- db $74, $75
-
- db $02
- dw vBGMap + $6E
- db $6F, $70
-
- db $01
- dw vBGMap + $8E
- db $71
-
- db $01
- dw vBGMap + $AE
- db $72
-
- db $00
-
-TileData_16cff: ; 0x16cff
- dw LoadTileLists
- db $07
-
- db $01
- dw vBGMap + $30
- db $73
-
- db $02
- dw vBGMap + $4F
- db $74, $75
-
- db $02
- dw vBGMap + $6E
- db $76, $77
-
- db $01
- dw vBGMap + $8E
- db $71
-
- db $01
- dw vBGMap + $AE
- db $72
-
- db $00
-
-TileData_16d19: ; 0x16d19
- dw LoadTileLists
- db $07
-
- db $01
- dw vBGMap + $30
- db $73
-
- db $02
- dw vBGMap + $4F
- db $74, $75
-
- db $02
- dw vBGMap + $6E
- db $76, $77
-
- db $01
- dw vBGMap + $8E
- db $78
-
- db $01
- dw vBGMap + $AE
- db $79
-
- db $00
-
-TileData_16d33: ; 0x16d33
- dw LoadTileLists
- db $07
-
- db $01
- dw vBGMap + $30
- db $6C
-
- db $02
- dw vBGMap + $4F
- db $6D, $6E
-
- db $02
- dw vBGMap + $6E
- db $76, $77
-
- db $01
- dw vBGMap + $8E
- db $78
-
- db $01
- dw vBGMap + $AE
- db $79
-
- db $00
-
-TileData_16d4d: ; 0x16d4d
- dw LoadTileLists
- db $03
-
- db $01
- dw vBGMap + $6
- db $48
-
- db $02
- dw vBGMap + $26
- db $49, $4A
-
- db $00
-
-TileData_16d5a: ; 0x16d5a
- dw LoadTileLists
- db $03
-
- db $01
- dw vBGMap + $6
- db $4B
-
- db $02
- dw vBGMap + $26
- db $4C, $4D
-
- db $00
-
-TileData_16d67: ; 0x16d67
- dw LoadTileLists
- db $03
-
- db $01
- dw vBGMap + $D
- db $4E
-
- db $02
- dw vBGMap + $2C
- db $4F, $50
-
- db $00
-
-TileData_16d74: ; 0x16d74
- dw LoadTileLists
- db $03
-
- db $01
- dw vBGMap + $D
- db $51
-
- db $02
- dw vBGMap + $2C
- db $52, $53
-
- db $00
-
-TileData_16d81: ; 0x16d81
- dw LoadTileLists
- db $04
-
- db $02
- dw vBGMap + $49
- db $40, $41
-
- db $02
- dw vBGMap + $69
- db $42, $43
-
- db $00
-
-TileData_16d8f: ; 0x16d8f
- dw LoadTileLists
- db $04
-
- db $02
- dw vBGMap + $49
- db $44, $45
-
- db $02
- dw vBGMap + $69
- db $46, $47
-
- db $00
+INCLUDE "data/queued_tiledata/red_field/arrow_indicators.asm"
ResolveRedStageBonusMultiplierCollision: ; 016d9d
ld a, [wWhichBonusMultiplierRailing]
@@ -4886,12 +2985,14 @@ Data_16fc1:
INCLUDE "data/queued_tiledata/red_field/bonus_multiplier_railings.asm"
-Func_174d0: ; 0x174d0
- call Func_174ea
+UpdatePokeballs_RedField: ; 0x174d0
+; Update the pokeballs underneath the billboard, which blink for awhile after catch'em mode and evolution mode.
+ call UpdateBlinkingPokeballs_RedField
ret nc
; fall through
-Func_174d4: ; 0x174d4
+LoadPokeballsGraphics_RedField: ; 0x174d4
+; Loads the graphics for the list of pokeballs underneath the billboard picture.
sla a
ld c, a
ld b, $0
@@ -4906,7 +3007,7 @@ Func_174d4: ; 0x174d4
call Func_10c5
ret
-Func_174ea: ; 0x174ea
+UpdateBlinkingPokeballs_RedField: ; 0x174ea
ld a, [wPreviousNumPokeballs]
ld hl, wNumPokeballs
cp [hl]
@@ -4914,21 +3015,21 @@ Func_174ea: ; 0x174ea
ld a, [wPokeballBlinkingCounter]
dec a
ld [wPokeballBlinkingCounter], a
- jr nz, .asm_17514
+ jr nz, .stillBlinking
ld a, [wNumPokeballs]
ld [wPreviousNumPokeballs], a
cp $3
- jr c, .asm_1750f
+ jr c, .dontOpenSlot
ld a, $1
ld [wOpenedSlotByGetting3Pokeballs], a
ld a, $3
ld [wFramesUntilSlotCaveOpens], a
-.asm_1750f
+.dontOpenSlot
ld a, [wPreviousNumPokeballs]
scf
ret
-.asm_17514
+.stillBlinking
and $7
ret nz
ld a, [wPokeballBlinkingCounter]
@@ -4943,40 +3044,4 @@ Func_174ea: ; 0x174ea
scf
ret
-TileDataPointers_17528:
- dw TileData_17530
- dw TileData_1753B
- dw TileData_17546
- dw TileData_17551
-
-TileData_17530: ; 0x17530
- db $06 ; total number of tiles
-
- db $06 ; number of tiles
- dw $9907
- db $B0, $B1, $B0, $B1, $B0, $B1
- db $00
-
-TileData_1753B: ; 0x1753B
- db $06 ; total number of tiles
-
- db $06 ; number of tiles
- dw $9907
- db $AE, $AF, $B0, $B1, $B0, $B1
- db $00
-
-TileData_17546: ; 0x17546
- db $06 ; total number of tiles
-
- db $06 ; number of tiles
- dw $9907
- db $AE, $AF, $AE, $AF, $B0, $B1
- db $00
-
-TileData_17551: ; 0x17551
- db $06 ; total number of tiles
-
- db $06 ; number of tiles
- dw $9907
- db $AE, $AF, $AE, $AF, $AE, $AF
- db $00
+INCLUDE "data/queued_tiledata/red_field/pokeballs.asm"
diff --git a/engine/pinball_game/timer.asm b/engine/pinball_game/timer.asm
index 49afcee..cbfe9ad 100644
--- a/engine/pinball_game/timer.asm
+++ b/engine/pinball_game/timer.asm
@@ -15,7 +15,7 @@ StartTimer: ; 0x867d
ld [wTimerActive], a
ld a, $1
ld [wd580], a
- callba Func_1404a
+ callba LoadTimerGraphics
ret
Func_86a4: ; 0x86a4
diff --git a/main.asm b/main.asm
index 516a763..2a045fd 100644
--- a/main.asm
+++ b/main.asm
@@ -909,7 +909,7 @@ IndicatorStates_10fd0: ; 0x10fd0
ConcludeEvolutionMode_RedField: ; 0x10fe3
call ResetIndicatorStates
call Func_107c2
- call Func_107c8
+ call SetLeftAndRightAlleyArrowIndicatorStates_RedField
call Func_107e9
ld a, [wCurrentStage]
bit 0, a
@@ -935,7 +935,7 @@ ConcludeEvolutionMode_RedField: ; 0x10fe3
ld a, BANK(BlankSaverSpaceTileDataRedField)
call Func_10aa
ld a, [wPreviousNumPokeballs]
- callba Func_174d4
+ callba LoadPokeballsGraphics_RedField
ld hl, CaughtPokeballTileDataPointers
ld a, BANK(CaughtPokeballTileDataPointers)
call Func_10aa
@@ -979,7 +979,7 @@ StartEvolutionMode_BlueField: ; 0x11061
jr nz, .asm_11085
xor a
ld [wLeftAlleyCount], a
- callba Func_1f2ed
+ callba CloseSlotCave
ld a, $2
ld [wd7ad], a
ld de, $0002
@@ -1047,7 +1047,7 @@ ConcludeEvolutionMode_BlueField: ; 0x11195
ld [wd643], a
call ResetIndicatorStates
call Func_107c2
- callba Func_1f2ff
+ callba SetLeftAndRightAlleyArrowIndicatorStates_BlueField
ld a, [wCurrentStage]
bit 0, a
jp z, Func_1120e
@@ -1072,7 +1072,7 @@ ConcludeEvolutionMode_BlueField: ; 0x11195
ld a, BANK(BlankSaverSpaceTileDataBlueField)
call Func_10aa
ld a, [wPreviousNumPokeballs]
- callba Func_174d4
+ callba LoadPokeballsGraphics_RedField
ld hl, Data_10a88
ld a, BANK(Data_10a88)
call Func_10aa
@@ -1484,7 +1484,7 @@ StartMapMoveMode: ; 0x301ec
ld a, [wCurrentStage]
bit 0, a
jr z, .asm_3021b
- ld a, [wd55a]
+ ld a, [wMapMoveDirection]
add $12
call LoadBillboardTileData
.asm_3021b
@@ -1542,7 +1542,7 @@ LoadScrollingMapNameText: ; 0x3118f
ret
Func_311b4: ; 0x311b4
- ld a, [wd55a]
+ ld a, [wMapMoveDirection]
and a
jr nz, .asm_311ce
ld a, $80
@@ -1591,7 +1591,7 @@ Func_311b4: ; 0x311b4
Func_31234: ; 0x31234
callba ResetIndicatorStates
callba Func_107c2
- callba Func_107c8
+ callba SetLeftAndRightAlleyArrowIndicatorStates_RedField
callba Func_107e9
ld a, [wCurrentStage]
bit 0, a
@@ -1713,7 +1713,7 @@ DoNothing_31325: ; 0x31325
ret
Func_31326: ; 0x31326
- ld a, [wd55a]
+ ld a, [wMapMoveDirection]
and a
jr nz, .asm_3134c
ld a, $80
@@ -1756,7 +1756,7 @@ Func_31326: ; 0x31326
.asm_3139d
ld a, $1
ld [wd644], a
- callba Func_1f2ed
+ callba CloseSlotCave
ld de, $0003
call PlaySong
ld a, [wCurrentStage]
@@ -1768,7 +1768,7 @@ Func_31326: ; 0x31326
Func_313c3: ; 0x313c3
callba ResetIndicatorStates
callba Func_107c2
- callba Func_1f2ff
+ callba SetLeftAndRightAlleyArrowIndicatorStates_BlueField
ld a, $0
ld [wd644], a
ld a, [wCurrentStage]
@@ -1976,7 +1976,7 @@ Func_3151f: ; 0x3151f
ret
Func_31591: ; 0x31591
- ld a, [wd55a]
+ ld a, [wMapMoveDirection]
and a
jr nz, .asm_315b1
ld a, [wIndicatorStates]
@@ -1995,7 +1995,7 @@ Func_31591: ; 0x31591
ret
Func_315b3: ; 0x315b3
- ld a, [wd55a]
+ ld a, [wMapMoveDirection]
and a
jr z, .asm_315d3
ld a, [wIndicatorStates + 1]
@@ -2130,7 +2130,7 @@ Func_3168c: ; 0x3168c
ret
Func_31708: ; 0x31708
- ld a, [wd55a]
+ ld a, [wMapMoveDirection]
and a
jr nz, .asm_31728
ld a, [wIndicatorStates]
@@ -2149,7 +2149,7 @@ Func_31708: ; 0x31708
ret
Func_3172a: ; 0x3172a
- ld a, [wd55a]
+ ld a, [wMapMoveDirection]
and a
jr z, .asm_3174a
ld a, [wIndicatorStates + 1]
diff --git a/wram.asm b/wram.asm
index 2954445..9e4d75b 100644
--- a/wram.asm
+++ b/wram.asm
@@ -219,7 +219,8 @@ wBallSaverTimerSecondsBackup:: ; 0xd4a7
wNumTimesBallSavedTextWillDisplayBackup:: ; 0xd4a8
ds $1
-wd4a9:: ; 0xd4a9
+wExtraBall:: ; 0xd4a9
+; Set to 1 if the player has an extra ball.
ds $1
wDrawBottomMessageBox:: ; 0xd4aa
@@ -284,7 +285,10 @@ wd4c8:: ; 0xd4c8
wd4c9:: ; 0xd4c9
ds $1
-wd4ca:: ; 0xd4ca
+wShowExtraBallText:: ; 0xd4ca
+; Setting this byte to 1 or 2 will cause the "Extra Ball" message to scroll across the bottom of the screen.
+; 1 = "EXTRA BALL"
+; 2 = "EXTRA BALL SPECIAL BONUS"
ds $1
wWhichVoltorb:: ; 0xd4cb
@@ -325,7 +329,9 @@ wWhichBumper:: ; 0xd4d8
wWhichBumperId:: ; 0xd4d9
ds $1
-wd4da:: ; 0xd4da
+wBumperLightUpDuration:: ; 0xd4da
+; Number of frames left in the Bumper light-up animation when the pinball bounces off of it.
+; This is shared by both bumpers, so only one can be lit up at a time.
ds $1
wd4db:: ; 0xd4db
@@ -494,7 +500,9 @@ wPikachuSaverCharge:: ; 0xd517
; in the right alley. The charge's value ranges from 0 - 15.
ds $1
-wd518:: ; 0xd518
+wWhichPikachuSaverSide:: ; 0xd518
+; 0 = Pikachu is on the left side
+; 1 = Pikachu is on the right side
ds $1
wPikachuSaverAnimation:: ; 0xd519
@@ -601,7 +609,9 @@ wd558:: ; 0xd558
wd559:: ; 0xd559
ds $1
-wd55a:: ; 0xd55a
+wMapMoveDirection:: ; 0xd55a
+; 0 = need to hit the ball left to open map move slot cave
+; 1 = need to hit the ball right to open map move slot cave
ds $1
wRareMonsFlag:: ; 0xd55b
@@ -1026,7 +1036,7 @@ wd645:: ; 0xd645
wd646:: ; 0xd646
ds $1
-wd647:: ; 0xd647
+wBonusMultiplierRailingEndLightDuration:: ; 0xd647
ds $1
wd648:: ; 0xd648