From 50240b834c959de010d50d296ccdd4f07fd83a32 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Sun, 9 Jul 2017 16:03:44 -0700 Subject: Finish labeling all funcs in blue and red resolve_collision files --- .../blue_field/arrow_indicators.asm | 949 +++++++++ data/queued_tiledata/blue_field/pokeballs.asm | 41 + .../queued_tiledata/red_field/arrow_indicators.asm | 863 ++++++++ data/queued_tiledata/red_field/pokeballs.asm | 37 + data/queued_tiledata/red_field/staryu_bumper.asm | 247 +++ data/queued_tiledata/red_field/structures.asm | 804 +++++++ .../ball_loss/ball_loss_blue_field.asm | 6 +- engine/pinball_game/bonus_multiplier.asm | 4 +- engine/pinball_game/catchem_mode.asm | 14 +- .../draw_sprites/draw_blue_field_sprites.asm | 2 +- .../draw_sprites/draw_red_field_sprites.asm | 2 +- engine/pinball_game/extra_ball.asm | 8 +- .../load_stage_data/load_blue_field.asm | 18 +- .../load_stage_data/load_gengar_bonus.asm | 2 +- .../load_stage_data/load_meowth_bonus.asm | 2 +- .../load_stage_data/load_mewtwo_bonus.asm | 2 +- .../load_stage_data/load_red_field.asm | 22 +- .../load_stage_data/load_seel_bonus.asm | 2 +- .../blue_stage_resolve_collision.asm | 1206 +---------- .../red_stage_resolve_collision.asm | 2249 ++------------------ engine/pinball_game/timer.asm | 2 +- main.asm | 30 +- wram.asm | 22 +- 23 files changed, 3287 insertions(+), 3247 deletions(-) create mode 100755 data/queued_tiledata/blue_field/arrow_indicators.asm create mode 100755 data/queued_tiledata/blue_field/pokeballs.asm create mode 100755 data/queued_tiledata/red_field/arrow_indicators.asm create mode 100755 data/queued_tiledata/red_field/pokeballs.asm create mode 100755 data/queued_tiledata/red_field/staryu_bumper.asm create mode 100755 data/queued_tiledata/red_field/structures.asm 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,1168 +2627,61 @@ 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 +INCLUDE "data/queued_tiledata/red_field/staryu_bumper.asm" -TileData_168ca: ; 0x168ca - dw Func_11d2 - db $10, $01 - dw vTilesSH tile $56 - dw StageRedFieldTopBaseGameBoyGfx + $2c0 - db Bank(StageRedFieldTopBaseGameBoyGfx) - db $00 +UpdateArrowIndicators_RedField: ; 0x169a6 +; Updates the 5 blinking arrow indicators in the red field bottom. + ld a, [hNumFramesDropped] + and $1f + ret nz + ld bc, $0000 +.loop + push bc + ld hl, wIndicatorStates + add hl, bc + bit 7, [hl] + jr z, .asm_169c5 + ld a, [hl] + res 7, a + ld hl, hNumFramesDropped + bit 5, [hl] + jr z, .asm_169c2 + inc a +.asm_169c2 + call LoadArrowIndicatorGraphics_RedField +.asm_169c5 + pop bc + inc c + ld a, c + cp $5 + jr nz, .loop + ret -TileData_168d4: ; 0x168d4 - dw Func_11d2 - db $30, $03 - dw vTilesSH tile $52 - dw StageRedFieldTopBaseGameBoyGfx + $280 - db Bank(StageRedFieldTopBaseGameBoyGfx) - db $00 +LoadArrowIndicatorGraphics_RedField: ; 0x169cd + push af + sla c + ld hl, TileDataPointers_169ed + ld a, [hGameBoyColorFlag] + and a + jr z, .asm_169db + ld hl, TileDataPointers_16bef +.asm_169db + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + pop af + sla a + ld c, a + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + ld a, Bank(TileDataPointers_169ed) + call Func_10aa + ret -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 - -Func_169a6: ; 0x169a6 - ld a, [hNumFramesDropped] - and $1f - ret nz - ld bc, $0000 -.asm_169ae - push bc - ld hl, wIndicatorStates - add hl, bc - bit 7, [hl] - jr z, .asm_169c5 - ld a, [hl] - res 7, a - ld hl, hNumFramesDropped - bit 5, [hl] - jr z, .asm_169c2 - inc a -.asm_169c2 - call Func_169cd -.asm_169c5 - pop bc - inc c - ld a, c - cp $5 - jr nz, .asm_169ae - ret - -Func_169cd: ; 0x169cd - push af - sla c - ld hl, TileDataPointers_169ed - ld a, [hGameBoyColorFlag] - and a - jr z, .asm_169db - ld hl, TileDataPointers_16bef -.asm_169db - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - pop af - sla a - ld c, a - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - ld a, Bank(TileDataPointers_169ed) - 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 -- cgit v1.2.3