diff options
Diffstat (limited to 'main.asm')
-rwxr-xr-x | main.asm | 25979 |
1 files changed, 7 insertions, 25972 deletions
@@ -1386,8736 +1386,7 @@ SECTION "bank5", ROMX, BANK[$5] INCLUDE "engine/pinball_game/load_stage_data/load_red_field.asm" INCLUDE "engine/pinball_game/object_collision/red_stage_object_collision.asm" - -Func_1460e: ; 0x1460e - call ResolveVoltorbCollision - call ResolveRedStageSpinnerCollision - call ResolveRedStagePinballUpgradeTriggersCollision - call HandleRedStageBallTypeUpgradeCounter - call Func_15270 - call ResolveRedStageBoardTriggerCollision - call ResolveRedStagePikachuCollision - call ResolveStaryuCollision - call ResolveBellsproutCollision - call ResolveDittoSlotCollision - call Func_161e0 - call Func_164e3 - call Func_146a9 - call Func_174ea - call Func_148cf - callba Func_30188 - ld a, $0 - callba Func_10000 - ret - -Func_14652: ; 0x14652 - call Func_14795 - call Func_15f86 - call ResolveDiglettCollision - call Func_14880 - call Func_14e10 - call Func_154a9 - call HandleRedStageBallTypeUpgradeCounter - call Func_151cb - call Func_1652d - call ResolveRedStagePikachuCollision - call Func_167ff - call Func_169a6 - call ResolveRedStageBonusMultiplierCollision - call Func_16279 - call Func_161af - call Func_164e3 - call Func_14733 - call Func_146a2 - call Func_174d0 - callba Func_30188 - ld a, $0 - callba Func_10000 - ret - -Func_146a2: ; 0x146a2 - call Func_146a9 - call nz, Func_14707 - ret - -Func_146a9: ; 0x146a9 - ld a, [wBallSaverTimerFrames] - ld hl, wBallSaverTimerSeconds - or [hl] - ret z - ld a, [wBallXPos + 1] - cp $9a - jr nc, .asm_146e8 - ld a, [wBallSaverTimerFrames] - dec a - ld [wBallSaverTimerFrames], a - bit 7, a - jr z, .asm_146e8 - ld a, 59 - ld [wBallSaverTimerFrames], a - ld a, [hl] - dec a - bit 7, a - jr nz, .asm_146cf - ld [hl], a -.asm_146cf - inc a - ld c, $0 - cp $2 - jr c, .asm_146e4 - ld c, $4 - cp $6 - jr c, .asm_146e4 - ld c, $10 - cp $b - jr c, .asm_146e4 - ld c, $ff -.asm_146e4 - ld a, c - ld [wd4a2], a -.asm_146e8 - ld a, [wd4a2] - ld c, $0 - and a - jr z, .asm_146fe - ld c, $1 - cp $ff - jr z, .asm_146fe - ld hl, hNumFramesDropped - and [hl] - jr z, .asm_146fe - ld c, $0 -.asm_146fe - ld a, [wBallSaverIconOn] - cp c - ld a, c - ld [wBallSaverIconOn], a - ret - -Func_14707: ; 0x14707 - ld a, [wBallSaverIconOn] - and a - jr nz, .asm_1471c - ld a, BANK(BgTileData_1172b) - ld hl, BgTileData_1172b - deCoord 8, 13, vBGMap - ld bc, $0004 - call LoadOrCopyVRAMData - ret - -.asm_1471c - ld a, BANK(BgTileData_1472f) - ld hl, BgTileData_1472f - deCoord 8, 13, vBGMap - ld bc, $0004 - call LoadOrCopyVRAMData - ret - -BgTileData_1172b: - db $AA, $AB, $AC, $AD - -BgTileData_1472f: - db $B4, $B5, $B6, $B7 - -Func_14733: ; 0x14733 - ld c, $0 - ld a, [wd49b] - and a - jr z, .asm_1473d - ld c, $1 -.asm_1473d - ld a, [wd4a9] - cp c - ld a, c - ld [wd4a9], a - ret z - ; fall through - -Func_14746: ; 0x14746 - ld c, $0 - ld a, [wd49b] - and a - jr z, .asm_14750 - ld c, $2 -.asm_14750 - ld b, $0 - ld hl, AgainTextTileDataRedField - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - ld a, BANK(AgainTextTileDataRedField) - call Func_10aa - ret - -AgainTextTileDataRedField: - dw AgainTextOffTileDataRedField - dw AgainTextOnTileDataRedField - -AgainTextOffTileDataRedField: - db 2 - dw AgainTextOffTileDataRedField1 - dw AgainTextOffTileDataRedField2 - -AgainTextOnTileDataRedField: - db 2 - dw AgainTextOnTileDataRedField1 - dw AgainTextOnTileDataRedField2 - -AgainTextOffTileDataRedField1: - dw Func_11d2 - db $20, $02 - dw vTilesSH tile $38 - dw AgainTextOffGfx - db Bank(AgainTextOffGfx) - db $00 - -AgainTextOffTileDataRedField2: - dw Func_11d2 - db $20, $02 - dw vTilesSH tile $3a - dw AgainTextOffGfx + $20 - db Bank(AgainTextOffGfx) - db $00 - -AgainTextOnTileDataRedField1: - dw Func_11d2 - db $20, $02 - dw vTilesSH tile $38 - dw StageRedFieldBottomBaseGameBoyGfx + $380 - db Bank(StageRedFieldBottomBaseGameBoyGfx) - db $00 - -AgainTextOnTileDataRedField2: - dw Func_11d2 - db $20, $02 - dw vTilesSH tile $3a - dw StageRedFieldBottomBaseGameBoyGfx + $3a0 - db Bank(StageRedFieldBottomBaseGameBoyGfx) - db $00 - -Func_14795: ; 0x14795 - ld a, [wWildMonCollision] - and a - ret z - xor a - ld [wWildMonCollision], a - ld a, $1 - ld [wBallHitWildMon], a - lb de, $00, $06 - call PlaySoundEffect - ret - -ResolveDiglettCollision: ; 0x147aa - ld a, [wWhichDiglett] - and a - jp z, .asm_14834 - xor a - ld [wWhichDiglett], a - ld a, [wWhichDiglettId] - sub $1 - sla a - ld c, a - ld b, $0 - ld hl, wLeftMapMoveCounter - add hl, bc - ld a, [hl] - cp $3 - jr z, .asm_14834 - inc a - ld [hld], a - ld [hl], $50 - ld hl, wd4f7 - add hl, bc - ld a, $e0 - ld [hli], a - ld a, $1 - ld [hl], a - ld a, c - and a - jr z, .asm_14807 - ld a, $6a - ld [wc7f0], a - ld a, $6b - ld [wc810], a - ld a, $5 - call Func_149d9 - ld a, [wRightMapMoveCounter] - add $4 - call Func_149f5 - ld a, $8 - callba Func_10000 - ld a, [wRightMapMoveCounter] - cp $3 - call z, Func_14920 - jr .asm_14830 - -.asm_14807 - ld a, $66 - ld [wc7e3], a - ld a, $67 - ld [wc803], a - ld a, $2 - call Func_149d9 - ld a, [wLeftMapMoveCounter] - call Func_149f5 - ld a, $7 - callba Func_10000 - ld a, [wLeftMapMoveCounter] - cp $3 - call z, Func_14947 -.asm_14830 - call Func_1496d - ret - -.asm_14834 - ld a, [wd4ef] - and a - jr z, .asm_14857 - dec a - ld [wd4ef], a - jr nz, .asm_14857 - ld a, [wLeftMapMoveCounter] - sub $3 - jr nz, .asm_1484d - ld [wLeftMapMoveCounter], a - call Func_149f5 -.asm_1484d - ld a, $64 - ld [wc7e3], a - ld a, $65 - ld [wc803], a -.asm_14857 - ld a, [wd4f1] - and a - jr z, .asm_1487c - dec a - ld [wd4f1], a - jr nz, .asm_1487c - ld a, [wRightMapMoveCounter] - sub $3 - jr nz, .asm_14872 - ld [wRightMapMoveCounter], a - add $4 - call Func_149f5 -.asm_14872 - ld a, $68 - ld [wc7f0], a - ld a, $69 - ld [wc810], a -.asm_1487c - call Func_14990 - ret - -Func_14880: ; 0x14880 - ld hl, wd4f7 - dec [hl] - ld a, [hli] - cp $ff - jr nz, .asm_148a6 - dec [hl] - ld a, [hld] - cp $ff - jr nz, .asm_148a6 - ld a, $e0 - ld [hli], a - ld a, $1 - ld [hl], a - ld a, [wLeftMapMoveCounter] - and a - jr z, .asm_148a6 - cp $3 - jr z, .asm_148a6 - dec a - ld [wLeftMapMoveCounter], a - call Func_149f5 -.asm_148a6 - ld hl, wd4f9 - dec [hl] - ld a, [hli] - cp $ff - jr nz, .asm_148ce - dec [hl] - ld a, [hld] - cp $ff - jr nz, .asm_148ce - ld a, $e0 - ld [hli], a - ld a, $1 - ld [hl], a - ld a, [wRightMapMoveCounter] - and a - jr z, .asm_148ce - cp $3 - jr z, .asm_148ce - dec a - ld [wRightMapMoveCounter], a - add $4 - call Func_149f5 -.asm_148ce - ret - -Func_148cf: ; 0x148cf - ld b, $0 - ld hl, wd4f8 - ld a, [hld] - or [hl] - jr z, .asm_148f8 - dec [hl] - ld a, [hli] - cp $ff - jr nz, .asm_148f8 - dec [hl] - ld a, [hld] - cp $ff - jr nz, .asm_148f8 - ld a, $e0 - ld [hli], a - ld a, $1 - ld [hl], a - ld a, [wLeftMapMoveCounter] - and a - jr z, .asm_148f8 - cp $3 - jr z, .asm_148f8 - dec a - ld [wLeftMapMoveCounter], a -.asm_148f8 - ld hl, wd4fa - ld a, [hld] - or [hl] - jr z, .asm_1491f - dec [hl] - ld a, [hli] - cp $ff - jr nz, .asm_1491f - dec [hl] - ld a, [hld] - cp $ff - jr nz, .asm_1491f - ld a, $e0 - ld [hli], a - ld a, $1 - ld [hl], a - ld a, [wRightMapMoveCounter] - and a - jr z, .asm_1491f - cp $3 - jr z, .asm_1491f - dec a - ld [wRightMapMoveCounter], a -.asm_1491f - ret - -Func_14920: ; 0x14920 - ld hl, wd62b - call Func_e4a - jr nc, .asm_14937 - ld c, $a - call Func_e55 - callba z, Func_30164 -.asm_14937 - ld a, $1 - ld [wd55a], a - callba StartMapMoveMode - ret - -Func_14947: ; 0x14947 - ld hl, wd62b - call Func_e4a - jr nc, .asm_1495e - ld c, $a - call Func_e55 - callba z, Func_30164 -.asm_1495e - xor a - ld [wd55a], a - callba StartMapMoveMode - ret - -Func_1496d: ; 0x1496d - ld a, $55 - ld [wd803], a - ld a, $4 - ld [wd804], a - ld a, $2 - ld [wd7eb], a - ld bc, FiveHundredPoints - callba AddBigBCD6FromQueueWithBallMultiplier - lb de, $00, $0f - call PlaySoundEffect - ret - -Func_14990: ; 0x14990 - ld a, [wd4ef] - and a - jr nz, .asm_149b6 - ld a, [wLeftMapMoveDiglettAnimationCounter] - and a - jr z, .asm_149a2 - dec a - ld [wLeftMapMoveDiglettAnimationCounter], a - jr .asm_149b6 - -.asm_149a2 - call Func_1130 - ret nz - ld a, $14 - ld [wLeftMapMoveDiglettAnimationCounter], a - ld a, [wLeftMapMoveDiglettFrame] - xor $1 - ld [wLeftMapMoveDiglettFrame], a - call Func_149d9 -.asm_149b6 - ld a, [wd4f1] - and a - ret nz - ld a, [wRightMapMoveDiglettAnimationCounter] - and a - jr z, .asm_149c6 - dec a - ld [wRightMapMoveDiglettAnimationCounter], a - ret - -.asm_149c6 - call Func_1130 - ret nz - ld a, $14 - ld [wRightMapMoveDiglettAnimationCounter], a - ld a, [wRightMapMoveDiglettFrame] - xor $1 - ld [wRightMapMoveDiglettFrame], a - add $3 - ; fall through -Func_149d9: ; 0x149d9 - sla a - ld c, a - ld b, $0 - ld hl, TileListDataPointers_14a11 - ld a, [hGameBoyColorFlag] - and a - jr z, .asm_149e9 - ld hl, TileListDataPointers_14a83 -.asm_149e9 - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - or h - ret z - ld a, BANK(TileListDataPointers_14a11) - call Func_10aa - ret - -Func_149f5: ; 0x149f5 - sla a - ld c, a - ld b, $0 - ld hl, Data_14af5 - ld a, [hGameBoyColorFlag] - and a - jr z, .asm_14a05 - ld hl, TileListDataPointers_14c8d -.asm_14a05 - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - or h - ret z - ld a, BANK(Data_14af5) - call Func_10aa - ret - -TileListDataPointers_14a11: ; 0x14a11 - dw TileListData_14a1d - dw TileListData_14a20 - dw TileListData_14a23 - dw TileListData_14a26 - dw TileListData_14a29 - dw TileListData_14a2c - -TileListData_14a1d: ; 0x14a1d - db $01 - dw TileListData_14a2f - -TileListData_14a20: ; 0x14a20 - db $01 - dw TileListData_14a3d - -TileListData_14a23: ; 0x14a23 - db $01 - dw TileListData_14a4b - -TileListData_14a26: ; 0x14a26 - db $01 - dw TileListData_14a59 - -TileListData_14a29: ; 0x14a29 - db $01 - dw TileListData_14a67 - -TileListData_14a2c: ; 0x14a2c - db $01 - dw TileListData_14a75 - -TileListData_14a2f: ; 0x14a2f - dw LoadTileLists - db $04 ; total number of tiles - - db $02 ; number of tiles - dw vBGMap + $a3 - db $4C, $4D - - db $02 ; number of tiles - dw vBGMap + $c3 - db $4E, $4F - - db $00 ; terminator - -TileListData_14a3d: ; 0x14a3d - dw LoadTileLists - db $04 ; total number of tiles - - db $02 ; number of tiles - dw vBGMap + $a3 - db $50, $51 - - db $02 ; number of tiles - dw vBGMap + $c3 - db $52, $53 - - db $00 ; terminator - -TileListData_14a4b: ; 0x14a4b - dw LoadTileLists - db $04 ; total number of tiles - - db $02 ; number of tiles - dw vBGMap + $a3 - db $54, $80 - - db $02 ; number of tiles - dw vBGMap + $c3 - db $55, $80 - - db $00 ; terminator - -TileListData_14a59: ; 0x14a59 - dw LoadTileLists - db $04 ; total number of tiles - - db $02 ; number of tiles - dw vBGMap + $af - db $56, $57 - - db $02 ; number of tiles - dw vBGMap + $cf - db $58, $59 - - db $00 ; terminator - -TileListData_14a67: ; 0x14a67 - dw LoadTileLists - db $04 ; total number of tiles - - db $02 ; number of tiles - dw vBGMap + $af - db $5a, $5b - - db $02 ; number of tiles - dw vBGMap + $cf - db $5c, $5d - - db $00 ; terminator - -TileListData_14a75: ; 0x14a75 - dw LoadTileLists - db $04 ; total number of tiles - - db $02 ; number of tiles - dw vBGMap + $af - db $80, $5e - - db $02 ; number of tiles - dw vBGMap + $cf - db $80, $5f - - db $00 ; terminator - -TileListDataPointers_14a83: - dw TileListData_14a8f - dw TileListData_14a92 - dw TileListData_14a95 - dw TileListData_14a98 - dw TileListData_14a9b - dw TileListData_14a9e - -TileListData_14a8f: ; 0x14a8f - db $01 - dw TileListData_14aa1 - -TileListData_14a92: ; 0x14a92 - db $01 - dw TileListData_14aaf - -TileListData_14a95: ; 0x14a95 - db $01 - dw TileListData_14abd - -TileListData_14a98: ; 0x14a98 - db $01 - dw TileListData_14acb - -TileListData_14a9b: ; 0x14a9b - db $01 - dw TileListData_14ad9 - -TileListData_14a9e: ; 0x14a9e - db $01 - dw TileListData_14ae7 - -TileListData_14aa1: ; 0x14aa1 - dw LoadTileLists - db $04 ; total number of tiles - - db $02 ; number of tiles - dw vBGMap + $a3 - db $54, $55 - - db $02 ; number of tiles - dw vBGMap + $c3 - db $56, $57 - - db $00 - -TileListData_14aaf: ; 0x14aaf - dw LoadTileLists - db $04 ; total number of tiles - - db $02 ; number of tiles - dw vBGMap + $a3 - db $58, $59 - - db $02 ; number of tiles - dw vBGMap + $c3 - db $5A, $5B - - db $00 ; terminator - -TileListData_14abd: ; 0x14abd - dw LoadTileLists - db $04 ; total number of tiles - - db $02 ; number of tiles - dw vBGMap + $a3 - db $5C, $80 - - db $02 ; number of tiles - dw vBGMap + $c3 - db $5D, $80 - - db $00 ; terminator - -TileListData_14acb: ; 0x14acb - dw LoadTileLists - db $04 ; total number of tiles - - db $02 ; number of tiles - dw vBGMap + $af - db $55, $54 - - db $02 ; number of tiles - dw vBGMap + $cf - db $57, $56 - - db $00 ; terminator - -TileListData_14ad9: ; 0x14ad9 - dw LoadTileLists - db $04 ; total number of tiles - - db $02 ; number of tiles - dw vBGMap + $af - db $59, $58 - - db $02 ; number of tiles - dw vBGMap + $cf - db $5B, $5A - - db $00 ; terminator - -TileListData_14ae7: ; 0x14ae7 - dw LoadTileLists - db $04 ; total number of tiles - - db $02 ; number of tiles - dw vBGMap + $af - db $80, $5C - - db $02 ; number of tiles - dw vBGMap + $cf - db $80, $5D - - db $00 ; terminator - -Data_14af5: ; 0x14af5 - dw Data_14b05 - dw Data_14b0e - dw Data_14b17 - dw Data_14b20 - dw Data_14b29 - dw Data_14b32 - dw Data_14b3b - dw Data_14b44 - -Data_14b05: ; 0x14b05 - db $04 - dw Data_14b4d - dw Data_14b57 - dw Data_14b61 - dw Data_14b6b - -Data_14b0e: ; 0x14b0e - db $04 - dw Data_14b75 - dw Data_14b7f - dw Data_14b89 - dw Data_14b93 - -Data_14b17: ; 0x14b17 - db $04 - dw Data_14b9d - dw Data_14ba7 - dw Data_14bb1 - dw Data_14bbb - -Data_14b20: ; 0x14b20 - db $04 - dw Data_14bc5 - dw Data_14bcf - dw Data_14bd9 - dw Data_14be3 - -Data_14b29: ; 0x14b29 - db $04 - dw Data_14bed - dw Data_14bf7 - dw Data_14c01 - dw Data_14c0b - -Data_14b32: ; 0x14b32 - db $04 - dw Data_14c15 - dw Data_14c1f - dw Data_14c29 - dw Data_14c33 - -Data_14b3b: ; 0x14b3b - db $04 - dw Data_14c3d - dw Data_14c47 - dw Data_14c51 - dw Data_14c5b - -Data_14b44: ; 0x14b44 - db $04 - dw Data_14c65 - dw Data_14c6f - dw Data_14c79 - dw Data_14c83 - -Data_14b4d: ; 0x14b4d - dw Func_11d2 - db $30, $03 - dw vTilesBG tile $26 - dw StageRedFieldBottomBaseGameBoyGfx + $a60 - db Bank(StageRedFieldBottomBaseGameBoyGfx) - db $00 ; terminator - -Data_14b57: ; 0x14b57 - dw Func_11d2 - db $30, $03 - dw vTilesBG tile $29 - dw StageRedFieldBottomBaseGameBoyGfx + $a90 - db Bank(StageRedFieldBottomBaseGameBoyGfx) - db $00 ; terminator - -Data_14b61: ; 0x14b61 - dw Func_11d2 - db $30, $03 - dw vTilesBG tile $2C - dw StageRedFieldBottomBaseGameBoyGfx + $ac0 - db Bank(StageRedFieldBottomBaseGameBoyGfx) - db $00 ; terminator - -Data_14b6b: ; 0x14b6b - dw Func_11d2 - db $10, $01 - dw vTilesBG tile $2F - dw StageRedFieldBottomBaseGameBoyGfx + $af0 - db Bank(StageRedFieldBottomBaseGameBoyGfx) - db $00 ; terminator - -Data_14b75: ; 0x14b75 - dw Func_11d2 - db $30, $03 - dw vTilesBG tile $26 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $720 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 ; terminator - -Data_14b7f: ; 0x14b7f - dw Func_11d2 - db $30, $03 - dw vTilesBG tile $29 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $750 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 ; terminator - -Data_14b89: ; 0x14b89 - dw Func_11d2 - db $30, $03 - dw vTilesBG tile $2C - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $780 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 ; terminator - -Data_14b93: ; 0x14b93 - dw Func_11d2 - db $10, $01 - dw vTilesBG tile $2F - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $7B0 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 ; terminator - -Data_14b9d: ; 0x14b9d - dw Func_11d2 - db $30, $03 - dw vTilesBG tile $26 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $7C0 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 ; terminator - -Data_14ba7: ; 0x14ba7 - dw Func_11d2 - db $30, $03 - dw vTilesBG tile $29 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $7F0 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 ; terminator - -Data_14bb1: ; 0x14bb1 - dw Func_11d2 - db $30, $03 - dw vTilesBG tile $2C - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $820 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 ; terminator - -Data_14bbb: ; 0x14bbb - dw Func_11d2 - db $10, $01 - dw vTilesBG tile $2F - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $850 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 ; terminator - -Data_14bc5: ; 0x14bc5 - dw Func_11d2 - db $30, $03 - dw vTilesBG tile $26 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $860 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 ; terminator - -Data_14bcf: ; 0x14bcf - dw Func_11d2 - db $30, $03 - dw vTilesBG tile $29 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $890 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 ; terminator - -Data_14bd9: ; 0x14bd9 - dw Func_11d2 - db $30, $03 - dw vTilesBG tile $2C - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $8C0 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 ; terminator - -Data_14be3: ; 0x14be3 - dw Func_11d2 - db $10, $01 - dw vTilesBG tile $2F - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $8F0 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 ; terminator - -Data_14bed: ; 0x14bed - dw Func_11d2 - db $30, $03 - dw vTilesBG tile $30 - dw StageRedFieldBottomBaseGameBoyGfx + $B00 - db Bank(StageRedFieldBottomBaseGameBoyGfx) - db $00 ; terminator - -Data_14bf7: ; 0x14bf7 - dw Func_11d2 - db $30, $03 - dw vTilesBG tile $33 - dw StageRedFieldBottomBaseGameBoyGfx + $B30 - db Bank(StageRedFieldBottomBaseGameBoyGfx) - db $00 ; terminator - -Data_14c01: ; 0x14c01 - dw Func_11d2 - db $30, $03 - dw vTilesBG tile $36 - dw StageRedFieldBottomBaseGameBoyGfx + $B60 - db Bank(StageRedFieldBottomBaseGameBoyGfx) - db $00 ; terminator - -Data_14c0b: ; 0x14c0b - dw Func_11d2 - db $10, $01 - dw vTilesBG tile $39 - dw StageRedFieldBottomBaseGameBoyGfx + $B90 - db Bank(StageRedFieldBottomBaseGameBoyGfx) - db $00 ; terminator - -Data_14c15: ; 0x14c15 - dw Func_11d2 - db $30, $03 - dw vTilesBG tile $30 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $900 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 ; terminator - -Data_14c1f: ; 0x14c1f - dw Func_11d2 - db $30, $03 - dw vTilesBG tile $33 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $930 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 ; terminator - -Data_14c29: ; 0x14c29 - dw Func_11d2 - db $30, $03 - dw vTilesBG tile $36 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $960 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 ; terminator - -Data_14c33: ; 0x14c33 - dw Func_11d2 - db $10, $01 - dw vTilesBG tile $39 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $990 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 ; terminator - -Data_14c3d: ; 0x14c3d - dw Func_11d2 - db $30, $03 - dw vTilesBG tile $30 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $9A0 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 ; terminator - -Data_14c47: ; 0x14c47 - dw Func_11d2 - db $30, $03 - dw vTilesBG tile $33 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $9D0 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 ; terminator - -Data_14c51: ; 0x14c51 - dw Func_11d2 - db $30, $03 - dw vTilesBG tile $36 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $A00 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 ; terminator - -Data_14c5b: ; 0x14c5b - dw Func_11d2 - db $10, $01 - dw vTilesBG tile $39 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $A30 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 ; terminator - -Data_14c65: ; 0x14c65 - dw Func_11d2 - db $30, $03 - dw vTilesBG tile $30 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $A40 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 ; terminator - -Data_14c6f: ; 0x14c6f - dw Func_11d2 - db $30, $03 - dw vTilesBG tile $33 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $A70 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 ; terminator - -Data_14c79: ; 0x14c79 - dw Func_11d2 - db $30, $03 - dw vTilesBG tile $36 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $AA0 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 ; terminator - -Data_14c83: ; 0x14c83 - dw Func_11d2 - db $10, $01 - dw vTilesBG tile $39 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $AD0 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 ; terminator - -TileListDataPointers_14c8d: - dw Data_14c9d - dw Data_14ca0 - dw Data_14ca3 - dw Data_14ca6 - dw Data_14ca9 - dw Data_14cac - dw Data_14caf - dw Data_14cb2 - -Data_14c9d: ; 0x14c9d - db $01 - dw TileListData_14cb5 - -Data_14ca0: ; 0x14ca0 - db $01 - dw TileListData_14ccf - -Data_14ca3: ; 0x14ca3 - db $01 - dw TileListData_14ce9 - -Data_14ca6: ; 0x14ca6 - db $01 - dw TileListData_14d03 - -Data_14ca9: ; 0x14ca9 - db $01 - dw TileListData_14d1d - -Data_14cac: ; 0x14cac - db $01 - dw TileListData_14d37 - -Data_14caf: ; 0x14caf - db $01 - dw TileListData_14d51 - -Data_14cb2: ; 0x14cb2 - db $01 - dw TileListData_14d6b - -TileListData_14cb5: ; 0x14cb5 - dw LoadTileLists - db $0A ; total number of tiles - - db $02 ; number of tiles - dw vBGMap + $80 - db $06, $07 - - db $03 ; number of tiles - dw vBGMap + $a0 - db $08, $09, $0A - - db $03 ; number of tiles - dw vBGMap + $c0 - db $0B, $0C, $0D - - db $02 ; number of tiles - dw vBGMap + $e0 - db $0E, $0F - - db $00 ; terminator - -TileListData_14ccf: ; 0x14ccf - dw LoadTileLists - db $0A ; total number of tiles - - db $02 ; number of tiles - dw vBGMap + $80 - db $06, $07 - - db $03 ; number of tiles - dw vBGMap + $a0 - db $10, $11, $0A - - db $03 ; number of tiles - dw vBGMap + $c0 - db $12, $13, $0D - - db $02 ; number of tiles - dw vBGMap + $e0 - db $14, $15 - - db $00 ; terminator - -TileListData_14ce9: ; 0x14ce9 - dw LoadTileLists - db $0A ; total number of tiles - - db $02 ; number of tiles - dw vBGMap + $80 - db $06, $07 - - db $03 ; number of tiles - dw vBGMap + $a0 - db $10, $16, $17 - - db $03 ; number of tiles - dw vBGMap + $c0 - db $12, $18, $19 - - db $02 ; number of tiles - dw vBGMap + $e0 - db $14, $15 - - db $00 ; terminator - -TileListData_14d03: ; 0x14d03 - dw LoadTileLists - db $0A ; total number of tiles - - db $02 ; number of tiles - dw vBGMap + $80 - db $1A, $1B - - db $03 ; number of tiles - dw vBGMap + $a0 - db $1C, $1D, $17 - - db $03 ; number of tiles - dw vBGMap + $c0 - db $12, $18, $19 - - db $02 ; number of tiles - dw vBGMap + $e0 - db $14, $15 - - db $00 ; terminator - -TileListData_14d1d: ; 014d1d - dw LoadTileLists - db $0A ; total number of tiles - - db $02 ; number of tiles - dw vBGMap + $92 - db $07, $06 - - db $03 ; number of tiles - dw vBGMap + $b1 - db $0A, $1E, $08 - - db $03 ; number of tiles - dw vBGMap + $d1 - db $22, $0C, $24 - - db $02 ; number of tiles - dw vBGMap + $f2 - db $0F, $0E - - db $00 ; terminator - -TileListData_14d37: ; 0x14d37 - dw LoadTileLists - db $0A ; total number of tiles - - db $02 ; number of tiles - dw vBGMap + $92 - db $07, $06 - - db $03 ; number of tiles - dw vBGMap + $b1 - db $0A, $1F, $10 - - db $03 ; number of tiles - dw vBGMap + $d1 - db $22, $13, $25 - - db $02 ; number of tiles - dw vBGMap + $f2 - db $15, $14 - - db $00 ; terminator - -TileListData_14d51: ; 0x14d51 - dw LoadTileLists - db $0A ; total number of tiles - - db $02 ; number of tiles - dw vBGMap + $92 - db $07, $06 - - db $03 ; number of tiles - dw vBGMap + $b1 - db $17, $20, $10 - - db $03 ; number of tiles - dw vBGMap + $d1 - db $23, $18, $25 - - db $02 ; number of tiles - dw vBGMap + $f2 - db $15, $14 - - db $00 ; terminator - -TileListData_14d6b: ; 0x14d6b - dw LoadTileLists - db $0A ; total number of tiles - - db $02 ; number of tiles - dw vBGMap + $92 - db $1B, $1A - - db $03 ; number of tiles - dw vBGMap + $b1 - db $17, $21, $1C - - db $03 ; number of tiles - dw vBGMap + $d1 - db $23, $18, $25 - - db $02 ; number of tiles - dw vBGMap + $f2 - db $15, $14 - - db $00 ; terminator - -ResolveVoltorbCollision: ; 0x14d85 - ld a, [wWhichVoltorb] - and a - jr z, .noVoltorbCollision - xor a - ld [wWhichVoltorb], a - call Func_14dc9 - ld a, $10 - ld [wd4d6], a - ld a, [wWhichVoltorbId] - sub $3 - ld [wd4d7], a - ld a, $4 - callba Func_10000 - ld bc, FiveHundredPoints - callba AddBigBCD6FromQueueWithBallMultiplier - ret - -.noVoltorbCollision - ld a, [wd4d6] - and a - ret z - dec a - ld [wd4d6], a - ret nz - ld a, $ff - ld [wd4d7], a - ret - -Func_14dc9: ; 0x14dc9 - ld a, $ff - ld [wd803], a - ld a, $3 - ld [wd804], a - ld hl, $0200 - ld a, l - ld [wFlipperYForce], a - ld a, h - ld [wFlipperYForce + 1], a - ld a, $80 - ld [wFlipperCollision], a - lb de, $00, $0e - call PlaySoundEffect - ret - -ResolveRedStageSpinnerCollision: ; 0x14dea - ld a, [wSpinnerCollision] - and a - jr z, Func_14e10 - xor a - ld [wSpinnerCollision], a - ld a, [wBallYVelocity] - ld c, a - ld a, [wBallYVelocity + 1] - ld b, a - ld a, c - ld [wd50b], a - ld a, b - ld [wd50c], a - ld a, $c - callba Func_10000 - ; fall through -Func_14e10: ; 0x14e10 - ld hl, wd50b - ld a, [hli] - or [hl] - ret z - ld a, [wd50b] - ld c, a - ld a, [wd50c] - ld b, a - bit 7, b - jr nz, .asm_14e2e - ld a, c - sub $7 - ld c, a - ld a, b - sbc $0 - ld b, a - jr nc, .asm_14e3b - jr .asm_14e38 - -.asm_14e2e - ld a, c - add $7 - ld c, a - ld a, b - adc $0 - ld b, a - jr nc, .asm_14e3b -.asm_14e38 - ld bc, $0000 -.asm_14e3b - ld a, c - ld [wd50b], a - ld a, b - ld [wd50c], a - ld hl, wd50b - ld a, [wd509] - add [hl] - ld [wd509], a - inc hl - ld a, [wd50a] - adc [hl] - bit 7, a - ld c, $0 - jr z, .asm_14e5e - add $18 - ld c, $1 - jr .asm_14e66 - -.asm_14e5e - cp $18 - jr c, .asm_14e66 - sub $18 - ld c, $1 -.asm_14e66 - ld [wd50a], a - ld a, c - and a - ret z - ld bc, TenPoints - callba AddBigBCD6FromQueueWithBallMultiplier - ld hl, wd62d - call Func_e4a - ld a, [wPikachuSaverCharge] - cp MAX_PIKACHU_SAVER_CHARGE - jr nz, .asm_14e8a - call Func_14ea7 - ret - -.asm_14e8a - inc a - ld [wPikachuSaverCharge], a - call Func_14ea7 - ld a, [wPikachuSaverCharge] - cp MAX_PIKACHU_SAVER_CHARGE - jr nz, .asm_14e9d - ld a, $64 - ld [wd51e], a -.asm_14e9d - ld a, [wCurrentStage] - bit 0, a - ret nz - call Func_14ece - ret - -Func_14ea7: ; 0x14ea7 - ld a, [wd51e] - and a - ret nz - ld a, [wPikachuSaverCharge] - ld c, a - ld b, $0 - ld hl, SoundEffects_14ebe - add hl, bc - ld a, [hl] - ld e, a - ld d, $0 - call PlaySoundEffect - ret - -SoundEffects_14ebe: - db $12, $13, $14, $15, $16, $17, $18, $19, $1A, $1B, $1C, $1D, $1E, $1F, $20, $11 - -Func_14ece: ; 0x14ece - ld a, [wPikachuSaverCharge] - ld c, a - sla c - ld b, $0 - ld hl, TileDataPointers_14eeb - ld a, [hGameBoyColorFlag] - and a - jr z, .asm_14ee1 - ld hl, TileDataPointers_1509b -.asm_14ee1 - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - ld a, BANK(TileDataPointers_14eeb) - call Func_10aa - ret - -TileDataPointers_14eeb: - dw TileData_14f0b - dw TileData_14f10 - dw TileData_14f15 - dw TileData_14f1a - dw TileData_14f1f - dw TileData_14f24 - dw TileData_14f29 - dw TileData_14f2e - dw TileData_14f33 - dw TileData_14f38 - dw TileData_14f3d - dw TileData_14f42 - dw TileData_14f47 - dw TileData_14f4c - dw TileData_14f51 - dw TileData_14f56 - -TileData_14f0b: ; 0x14f0b - db $02 - dw TileData_14f5b - dw TileData_14f65 - -TileData_14f10: ; 0x14f10 - db $02 - dw TileData_14f6f - dw TileData_14f79 - -TileData_14f15: ; 0x14f15 - db $02 - dw TileData_14f83 - dw TileData_14f8d - -TileData_14f1a: ; 0x14f1a - db $02 - dw TileData_14f97 - dw TileData_14fa1 - -TileData_14f1f: ; 0x14f1f - db $02 - dw TileData_14fab - dw TileData_14fb5 - -TileData_14f24: ; 0x14f24 - db $02 - dw TileData_14fbf - dw TileData_14fc9 - -TileData_14f29: ; 0x14f29 - db $02 - dw TileData_14fd3 - dw TileData_14fdd - -TileData_14f2e: ; 0x14f2e - db $02 - dw TileData_14fe7 - dw TileData_14ff1 - -TileData_14f33: ; 0x14f33 - db $02 - dw TileData_14ffb - dw TileData_15005 - -TileData_14f38: ; 0x14f38 - db $02 - dw TileData_1500f - dw TileData_15019 - -TileData_14f3d: ; 0x14f3d - db $02 - dw TileData_15023 - dw TileData_1502d - -TileData_14f42: ; 0x14f42 - db $02 - dw TileData_15037 - dw TileData_15041 - -TileData_14f47: ; 0x14f47 - db $02 - dw TileData_1504b - dw TileData_15055 - -TileData_14f4c: ; 0x14f4c - db $02 - dw TileData_1505f - dw TileData_15069 - -TileData_14f51: ; 0x14f51 - db $02 - dw TileData_15073 - dw TileData_1507d - -TileData_14f56: ; 0x14f56 - db $02 - dw TileData_15087 - dw TileData_15091 - -TileData_14f5b: ; 0x14f5b - dw Func_11d2 - db $20, $02 - dw vTilesBG tile $75 - dw StageRedFieldTopBaseGameBoyGfx + $cb0 - db Bank(StageRedFieldTopBaseGameBoyGfx) - db $00 ; terminator - -TileData_14f65: ; 0x14f65 - dw Func_11d2 - db $20, $02 - dw vTilesBG tile $77 - dw StageRedFieldTopBaseGameBoyGfx + $cd0 - db Bank(StageRedFieldTopBaseGameBoyGfx) - db $00 ; terminator - -TileData_14f6f: ; 0x14f6f - dw Func_11d2 - db $20, $02 - dw vTilesBG tile $75 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $AE0 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 ; terminator - -TileData_14f79: ; 0x14f79 - dw Func_11d2 - db $20, $02 - dw vTilesBG tile $77 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $B00 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 ; terminator - -TileData_14f83: ; 0x14f83 - dw Func_11d2 - db $20, $02 - dw vTilesBG tile $75 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $B20 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 ; terminator - -TileData_14f8d: ; 0x14f8d - dw Func_11d2 - db $20, $02 - dw vTilesBG tile $77 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $B40 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 ; terminator - -TileData_14f97: ; 0x14f97 - dw Func_11d2 - db $20, $02 - dw vTilesBG tile $75 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $B60 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 ; terminator - -TileData_14fa1: ; 0x14fa1 - dw Func_11d2 - db $20, $02 - dw vTilesBG tile $77 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $B80 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 ; terminator - -TileData_14fab: ; 0x14fab - dw Func_11d2 - db $20, $02 - dw vTilesBG tile $75 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $BA0 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 ; terminator - -TileData_14fb5: ; 0x14fb5 - dw Func_11d2 - db $20, $02 - dw vTilesBG tile $77 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $BC0 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 ; terminator - -TileData_14fbf: ; 0x14fbf - dw Func_11d2 - db $20, $02 - dw vTilesBG tile $75 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $BE0 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 ; terminator - -TileData_14fc9: ; 0x14fc9 - dw Func_11d2 - db $20, $02 - dw vTilesBG tile $77 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $C00 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 ; terminator - -TileData_14fd3: ; 0x14fd3 - dw Func_11d2 - db $20, $02 - dw vTilesBG tile $75 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $C20 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 ; terminator - -TileData_14fdd: ; 0x14fdd - dw Func_11d2 - db $20, $02 - dw vTilesBG tile $77 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $C40 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 ; terminator - -TileData_14fe7: ; 0x14fe7 - dw Func_11d2 - db $20, $02 - dw vTilesBG tile $75 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $C60 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 ; terminator - -TileData_14ff1: ; 0x14ff1 - dw Func_11d2 - db $20, $02 - dw vTilesBG tile $77 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $C80 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 ; terminator - -TileData_14ffb: ; 0x14ffb - dw Func_11d2 - db $20, $02 - dw vTilesBG tile $75 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $CA0 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 ; terminator - -TileData_15005: ; 0x15005 - dw Func_11d2 - db $20, $02 - dw vTilesBG tile $77 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $CC0 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 ; terminator - -TileData_1500f: ; 0x1500f - dw Func_11d2 - db $20, $02 - dw vTilesBG tile $75 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $CE0 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 ; terminator - -TileData_15019: ; 0x15019 - dw Func_11d2 - db $20, $02 - dw vTilesBG tile $77 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $D00 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 ; terminator - -TileData_15023: ; 0x15023 - dw Func_11d2 - db $20, $02 - dw vTilesBG tile $75 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $D20 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 ; terminator - -TileData_1502d: ; 0x1502d - dw Func_11d2 - db $20, $02 - dw vTilesBG tile $77 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $D40 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 ; terminator - -TileData_15037: ; 0x15037 - dw Func_11d2 - db $20, $02 - dw vTilesBG tile $75 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $D60 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 ; terminator - -TileData_15041: ; 0x15041 - dw Func_11d2 - db $20, $02 - dw vTilesBG tile $77 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $D80 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 ; terminator - -TileData_1504b: ; 0x1504b - dw Func_11d2 - db $20, $02 - dw vTilesBG tile $75 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $DA0 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 ; terminator - -TileData_15055: ; 0x15055 - dw Func_11d2 - db $20, $02 - dw vTilesBG tile $77 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $DC0 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 ; terminator - -TileData_1505f: ; 0x1505f - dw Func_11d2 - db $20, $02 - dw vTilesBG tile $75 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $DE0 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 ; terminator - -TileData_15069: ; 0x15069 - dw Func_11d2 - db $20, $02 - dw vTilesBG tile $77 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $E00 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 ; terminator - -TileData_15073: ; 0x15073 - dw Func_11d2 - db $20, $02 - dw vTilesBG tile $75 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $E20 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 ; terminator - -TileData_1507d: ; 0x1507d - dw Func_11d2 - db $20, $02 - dw vTilesBG tile $77 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $E40 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 ; terminator - -TileData_15087: ; 0x15087 - dw Func_11d2 - db $20, $02 - dw vTilesBG tile $75 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $E60 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 ; terminator - -TileData_15091: ; 0x15091 - dw Func_11d2 - db $20, $02 - dw vTilesBG tile $77 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $E80 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 ; terminator - -TileDataPointers_1509b: - dw TileData_150bb - dw TileData_150be - dw TileData_150c1 - dw TileData_150c4 - dw TileData_150c7 - dw TileData_150ca - dw TileData_150cd - dw TileData_150d0 - dw TileData_150d3 - dw TileData_150d6 - dw TileData_150d9 - dw TileData_150dc - dw TileData_150df - dw TileData_150e2 - dw TileData_150e5 - dw TileData_150e8 - -TileData_150bb: ; 0x150bb - db $01 - dw TileData_150eb - -TileData_150be: ; 0x150be - db $01 - dw TileData_150f9 - -TileData_150c1: ; 0x150c1 - db $01 - dw TileData_15107 - -TileData_150c4: ; 0x150c4 - db $01 - dw TileData_15115 - -TileData_150c7: ; 0x150c7 - db $01 - dw TileData_15123 - -TileData_150ca: ; 0x150ca - db $01 - dw TileData_15131 - -TileData_150cd: ; 0x150cd - db $01 - dw TileData_1513f - -TileData_150d0: ; 0x150d0 - db $01 - dw TileData_1514d - -TileData_150d3: ; 0x150d3 - db $01 - dw TileData_1515b - -TileData_150d6: ; 0x150d6 - db $01 - dw TileData_15169 - -TileData_150d9: ; 0x150d9 - db $01 - dw TileData_15177 - -TileData_150dc: ; 0x150dc - db $01 - dw TileData_15185 - -TileData_150df: ; 0x150df - db $01 - dw TileData_15193 - -TileData_150e2: ; 0x150e2 - db $01 - dw TileData_151a1 - -TileData_150e5: ; 0x150e5 - db $01 - dw TileData_151af - -TileData_150e8: ; 0x150e8 - db $01 - dw TileData_151bd - -TileData_150eb: ; 0x150eb - dw LoadTileLists - db $04 ; total number of tiles - - db $02 ; number of tiles - dw $990E - db $5C, $5D - - db $02 ; number of tiles - dw $992E - db $5E, $5F - - db $00 ; terminator - -TileData_150f9: ; 0x150f9 - dw LoadTileLists - db $04 ; total number of tiles - - db $02 ; number of tiles - dw $990E - db $5C, $5D - - db $02 ; number of tiles - dw $992E - db $60, $61 - - db $00 ; terminator - -TileData_15107: ; 0x15107 - dw LoadTileLists - db $04 ; total number of tiles - - db $02 ; number of tiles - dw $990E - db $5C, $5D - - db $02 ; number of tiles - dw $992E - db $62, $63 - - db $00 ; terminator - -TileData_15115: ; 0x15115 - dw LoadTileLists - db $04 ; total number of tiles - - db $02 ; number of tiles - dw $990E - db $5C, $5D - - db $02 ; number of tiles - dw $992E - db $64, $65 - - db $00 ; terminator - -TileData_15123: ; 0x15123 - dw LoadTileLists - db $04 ; total number of tiles - - db $02 ; number of tiles - dw $990E - db $5C, $5D - - db $02 ; number of tiles - dw $992E - db $66, $67 - - db $00 ; terminator - -TileData_15131: ; 0x15131 - dw LoadTileLists - db $04 ; total number of tiles - - db $02 ; number of tiles - dw $990E - db $5C, $5D - - db $02 ; number of tiles - dw $992E - db $68, $69 - - db $00 ; terminator - -TileData_1513f: ; 0x1513f - dw LoadTileLists - db $04 ; total number of tiles - - db $02 ; number of tiles - dw $990E - db $5C, $5D - - db $02 ; number of tiles - dw $992E - db $6A, $6B - - db $00 ; terminator - -TileData_1514d: ; 0x1514d - dw LoadTileLists - db $04 ; total number of tiles - - db $02 ; number of tiles - dw $990E - db $5C, $5D - - db $02 ; number of tiles - dw $992E - db $6C, $6D - - db $00 ; terminator - -TileData_1515b: ; 0x1515b - dw LoadTileLists - db $04 ; total number of tiles - - db $02 ; number of tiles - dw $990E - db $5C, $5D - - db $02 ; number of tiles - dw $992E - db $6E, $6F - - db $00 ; terminator - -TileData_15169: ; 0x15169 - dw LoadTileLists - db $04 ; total number of tiles - - db $02 ; number of tiles - dw $990E - db $70, $71 - - db $02 ; number of tiles - dw $992E - db $6E, $6F - - db $00 ; terminator - -TileData_15177: ; 0x15177 - dw LoadTileLists - db $04 ; total number of tiles - - db $02 ; number of tiles - dw $990E - db $72, $73 - - db $02 ; number of tiles - dw $992E - db $6E, $6F - - db $00 ; terminator - -TileData_15185: ; 0x15185 - dw LoadTileLists - db $04 ; total number of tiles - - db $02 ; number of tiles - dw $990E - db $74, $75 - - db $02 ; number of tiles - dw $992E - db $6E, $6F - - db $00 ; terminator - -TileData_15193: ; 0x15193 - dw LoadTileLists - db $04 ; total number of tiles - - db $02 ; number of tiles - dw $990E - db $76, $77 - - db $02 ; number of tiles - dw $992E - db $6E, $6F - - db $00 ; terminator - -TileData_151a1: ; 0x151a1 - dw LoadTileLists - db $04 ; total number of tiles - - db $02 ; number of tiles - dw $990E - db $78, $79 - - db $02 ; number of tiles - dw $992E - db $6E, $6F - - db $00 ; terminator - -TileData_151af: ; 0x151af - dw LoadTileLists - db $04 ; total number of tiles - - db $02 ; number of tiles - dw $990E - db $7A, $7B - - db $02 ; number of tiles - dw $992E - db $6E, $6F - - db $00 ; terminator - -TileData_151bd: ; 0x151bd - dw LoadTileLists - db $04 ; total number of tiles - - db $02 ; number of tiles - dw $990E - db $7C, $7D - - db $02 ; number of tiles - dw $992E - db $7E, $7F - - db $00 ; terminator - -Func_151cb: ; 0x151cb - ld a, [wWhichCAVELight] - and a - jr z, .asm_15229 - xor a - ld [wWhichCAVELight], a - ld a, [wd513] - and a - jr nz, .asm_15229 - ld a, [wWhichCAVELightId] - sub $a - ld c, a - ld b, $0 - ld hl, wd50f - add hl, bc - ld a, [hl] - ld [hl], $1 - and a - ret nz - ld bc, OneHundredPoints - callba AddBigBCD6FromQueueWithBallMultiplier - ld hl, wd50f - ld a, [hli] - and [hl] - inc hl - and [hl] - inc hl - and [hl] - jr z, Func_asm_1522d - ld a, $1 - ld [wd513], a - ld a, $80 - ld [wd514], a - ld bc, FourHundredPoints - callba AddBigBCD6FromQueueWithBallMultiplier - lb de, $00, $09 - call PlaySoundEffect - ld hl, wd62c - call Func_e4a - jr Func_asm_1522d - -.asm_15229 - call Func_15270 - ret z - ; fall through - -Func_asm_1522d: ; 0x1522d - ld hl, wd512 - ld b, $4 -.asm_15232 - ld a, [hld] - push hl - call Func_1523c - pop hl - dec b - jr nz, .asm_15232 - ret - -Func_1523c: ; 0x1523c - and a - jr z, .asm_1524e - ld a, [hGameBoyColorFlag] - and a - jr nz, .asm_15249 - ld hl, TileDataPointers_152dd - jr .asm_1525b - -.asm_15249 - ld hl, TileDataPointers_1531d - jr .asm_1525b - -.asm_1524e - ld a, [hGameBoyColorFlag] - and a - jr nz, .asm_15258 - ld hl, TileDataPointers_152e5 - jr .asm_1525b - -.asm_15258 - ld hl, TileDataPointers_15325 -.asm_1525b - push bc - dec b - sla b - ld e, b - ld d, $0 - add hl, de - ld c, [hl] - inc hl - ld b, [hl] - ld a, $5 - ld de, LoadTileLists - call Func_10c5 - pop bc - ret - -Func_15270: ; 0x15270 - ld a, [wd513] - and a - jr z, .asm_152a6 - ld a, [wd514] - dec a - ld [wd514], a - jr nz, .asm_1528d - ld [wd513], a - ld a, $1 - ld [wd608], a - ld a, $3 - ld [wd607], a - xor a -.asm_1528d - and $7 - ret nz - ld a, [wd514] - srl a - srl a - srl a - and $1 - ld hl, wd50f - ld [hli], a - ld [hli], a - ld [hli], a - ld [hl], a - ld a, $1 - and a - ret - -.asm_152a6 - ld hl, wKeyConfigLeftFlipper - call IsKeyPressed - jr z, .asm_152c2 - ld hl, wd50f - ld a, [hli] - ld c, a - ld a, [hli] - ld b, a - ld a, [hli] - ld e, a - ld a, [hl] - ld d, a - ld a, c - ld [hld], a - ld a, d - ld [hld], a - ld a, e - ld [hld], a - ld a, b - ld [hl], a - ret - -.asm_152c2 - ld hl, wKeyConfigRightFlipper - call IsKeyPressed - ret z - ld hl, wd50f - ld a, [hli] - ld c, a - ld a, [hli] - ld b, a - ld a, [hli] - ld e, a - ld a, [hl] - ld d, a - ld a, e - ld [hld], a - ld a, b - ld [hld], a - ld a, c - ld [hld], a - ld a, d - ld [hl], a - ret - -TileDataPointers_152dd: - dw TileData_152ed - dw TileData_152f3 - dw TileData_152f9 - dw TileData_152ff - -TileDataPointers_152e5: - dw TileData_15305 - dw TileData_1530b - dw TileData_15311 - dw TileData_15317 - -TileData_152ed: ; 0x152ed - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $121 - db $7d - - db $00 ; terminator - -TileData_152f3: ; 0x152f3 - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $123 - db $7d - - db $00 ; terminator - -TileData_152f9: ; 0x152f9 - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $130 - db $7f - - db $00 ; terminator - -TileData_152ff: ; 0x152ff - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $132 - db $7f - - db $00 ; terminator - -TileData_15305: ; 0x15305 - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $121 - db $7c - - db $00 ; terminator - -TileData_1530b: ; 0x1530b - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $123 - db $7c - - db $00 ; terminator - -TileData_15311: ; 0x15311 - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $130 - db $7e - - db $00 ; terminator - -TileData_15317: ; 0x15317 - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $132 - db $7e - - db $00 ; terminator - -TileDataPointers_1531d: - dw TileData_1532d - dw TileData_15333 - dw TileData_15339 - dw TileData_1533f - -TileDataPointers_15325: - dw TileData_15345 - dw TileData_1534b - dw TileData_15351 - dw TileData_15357 - -TileData_1532d: ; 0x1532d - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $121 - db $27 - - db $00 ; terminator - -TileData_15333: ; 0x15333 - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $123 - db $29 - - db $00 ; terminator - -TileData_15339: ; 0x15339 - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $130 - db $7E - - db $00 ; terminator - -TileData_1533f: ; 0x1533f - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $132 - db $7F - - db $00 ; terminator - -TileData_15345: ; 0x15345 - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $121 - db $26 - - db $00 ; terminator - -TileData_1534b: ; 0x1534b - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $123 - db $28 - - db $00 ; terminator - -TileData_15351: ; 0x15351 - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $130 - db $7C - - db $00 ; terminator - -TileData_15357: ; 0x15357 - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $132 - db $7D - - db $00 ; terminator - -ResolveRedStagePinballUpgradeTriggersCollision: ; 0x1535d - ld a, [wWhichPinballUpgradeTrigger] - and a - jp z, .asm_1544c - xor a - ld [wWhichPinballUpgradeTrigger], a - ld a, [wStageCollisionState] - bit 0, a - jp z, .asm_1544c - ld a, [wd5fc] - and a - jp nz, .asm_1544c - xor a - ld [wRightAlleyTrigger], a - ld [wLeftAlleyTrigger], a - ld [wSecondaryLeftAlleyTrigger], a - call Func_159c9 - ld a, $b - callba Func_10000 - ld a, [wWhichPinballUpgradeTriggerId] - sub $e - ld c, a - ld b, $0 - ld hl, wd5f9 - add hl, bc - ld a, [hl] - ld [hl], $1 - and a - ret nz - ld bc, OneHundredPoints - callba AddBigBCD6FromQueueWithBallMultiplier - ld hl, wd5f9 - ld a, [hli] - and [hl] - inc hl - and [hl] - jr nz, .asm_153c0 - lb de, $00, $09 - call PlaySoundEffect - jp Func_15450 - -.asm_153c0 - ld a, $1 - ld [wd5fc], a - ld a, $80 - ld [wd5fd], a - ; load approximately 1 minute of frames into wBallTypeCounter - ld a, $10 - ld [wBallTypeCounter], a - ld a, $e - ld [wBallTypeCounter + 1], a - ld bc, FourHundredPoints - callba AddBigBCD6FromQueueWithBallMultiplier - ld a, [wBallType] - cp MASTER_BALL - jr z, .masterBall - lb de, $06, $3a - call PlaySoundEffect - call FillBottomMessageBufferWithBlackTile - call Func_30db - ld de, FieldMultiplierText - ld hl, wd5cc - call LoadTextHeader - ld a, [wBallType] - ld c, a - ld b, $0 - ld hl, BallTypeProgressionRedField - add hl, bc - ld a, [hl] - ld [wBallType], a - add $30 - ld [wBottomMessageText + $12], a - jr .asm_15447 - -.masterBall - lb de, $0f, $4d - call PlaySoundEffect - ld bc, OneMillionPoints - callba AddBigBCD6FromQueue - ld bc, $0100 - ld de, $0000 - push bc - push de - call FillBottomMessageBufferWithBlackTile - call Func_30db - ld hl, wd5d4 - ld de, DigitsText1to8 - call Func_32cc - pop de - pop bc - ld hl, wd5cc - ld de, FieldMultiplierSpecialBonusText - call LoadTextHeader -.asm_15447 - call TransitionPinballUpgrade - jr Func_15450 - -.asm_1544c - call Func_154a9 - ret z - -Func_15450 - ld a, [wStageCollisionState] - bit 0, a - ret z - ld hl, wd5fb - ld b, $3 -.asm_1545b - ld a, [hld] - push hl - call Func_15465 - pop hl - dec b - jr nz, .asm_1545b - ret - -Func_15465: ; 0x15465 - and a - jr z, .asm_15477 - ld a, [hGameBoyColorFlag] - and a - jr nz, .asm_15472 - ld hl, TileDataPointers_15511 - jr .asm_15484 - -.asm_15472 - ld hl, TileDataPointers_15543 - jr .asm_15484 - -.asm_15477 - ld a, [hGameBoyColorFlag] - and a - jr nz, .asm_15481 - ld hl, TileDataPointers_15517 - jr .asm_15484 - -.asm_15481 - ld hl, TileDataPointers_15549 -.asm_15484 - push bc - dec b - sla b - ld e, b - ld d, $0 - add hl, de - ld c, [hl] - inc hl - ld b, [hl] - ld a, $5 - ld de, LoadTileLists - call Func_10c5 - pop bc - ret - -Func_15499: ; 0x15499 - ld a, [hGameBoyColorFlag] - and a - ret nz - ld b, $3 -.asm_1549f - push hl - xor a - call Func_15465 - pop hl - dec b - jr nz, .asm_1549f - ret - -Func_154a9: ; 0x154a9 - ld a, [wd5fc] - and a - jr z, .asm_154d6 - ld a, [wd5fd] - dec a - ld [wd5fd], a - jr nz, .asm_154bb - ld [wd5fc], a -.asm_154bb - and $7 - jr nz, .asm_154d4 - ld a, [wd5fd] - srl a - srl a - srl a - and $1 - ld hl, wd5f9 - ld [hli], a - ld [hli], a - ld [hl], a - ld a, $1 - and a - ret - -.asm_154d4 - xor a - ret - -.asm_154d6 - ld hl, wKeyConfigLeftFlipper - call IsKeyPressed - jr z, .asm_154ee - ld hl, wd5f9 - ld a, [hli] - ld c, a - ld a, [hli] - ld b, a - ld a, [hl] - ld e, a - ld a, c - ld [hld], a - ld a, e - ld [hld], a - ld a, b - ld [hl], a - ret - -.asm_154ee - ld hl, wKeyConfigRightFlipper - call IsKeyPressed - ret z - ld hl, wd5f9 - ld a, [hli] - ld c, a - ld a, [hli] - ld b, a - ld a, [hl] - ld e, a - ld a, b - ld [hld], a - ld a, c - ld [hld], a - ld a, e - ld [hl], a - ret - -BallTypeProgressionRedField: ; 0x15505 -; Determines the next upgrade for the Ball. - db GREAT_BALL ; POKE_BALL -> GREAT_BALL - db GREAT_BALL ; unused - db ULTRA_BALL ; GREAT_BALL -> ULTRA_BALL - db MASTER_BALL ; ULTRA_BALL -> MASTER_BALL - db MASTER_BALL ; unused - db MASTER_BALL ; MASTER_BALL -> MASTER_BALL - -BallTypeDegradationRedField: ; 0x1550b -; Determines the previous upgrade for the Ball. - db POKE_BALL ; POKE_BALL -> POKE_BALL - db POKE_BALL ; unused - db POKE_BALL ; GREAT_BALL -> POKE_BALL - db GREAT_BALL ; ULTRA_BALL -> GREAT_BALL - db ULTRA_BALL ; unused - db ULTRA_BALL ; MASTER_BALL -> GREAT_BALL - -TileDataPointers_15511: - dw TileData_1551d - dw TileData_15523 - dw TileData_1552a - -TileDataPointers_15517: - dw TileData_15530 - dw TileData_15536 - dw TileData_1553d - -TileData_1551d: ; 0x1551d - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $E7 - db $ac - - db $00 ; terminator - -TileData_15523: ; 0x15523 - db $02 ; total number of tiles - - db $02 ; number of tiles - dw vBGMap + $C9 - db $ad, $ae - - db $00 ; terminator - -TileData_1552a: ; 0x1552a - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $CC - db $af - - db $00 ; terminator - -TileData_15530: ; 0x15530 - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $E7 - db $66 - - db $00 ; terminator - -TileData_15536: ; 0x15536 - db $02 ; total number of tiles - - db $02 ; number of tiles - dw vBGMap + $C9 - db $68, $69 - - db $00 ; terminator - -TileData_1553d: ; 0x1553d - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $CC - db $6a - - db $00 ; terminator - -TileDataPointers_15543: - dw TileData_1554f - dw TileData_15555 - dw TileData_1555c - -TileDataPointers_15549: - dw TileData_15562 - dw TileData_15568 - dw TileData_1556F - -TileData_1554f: ; 0x1554f - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $e7 - db $3D - - db $00 ; terminator - -TileData_15555: ; 0x15555 - db $02 ; total number of tiles - - db $02 ; number of tiles - dw vBGMap + $c9 - db $3F, $40 - - db $00 ; terminator - -TileData_1555c: ; 0x1555c - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $cc - db $41 - - db $00 ; terminator - -TileData_15562: ; 0x15562 - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $e7 - db $37 - - db $00 ; terminator - -TileData_15568: ; 0x15568 - db $02 ; total number of tiles - - db $02 ; number of tiles - dw vBGMap + $c9 - db $39, $3a - - db $00 ; terminator - -TileData_1556F: ; 0x1556F - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $cc - db $3B - - db $00 ; terminator - -HandleRedStageBallTypeUpgradeCounter: ; 0x15575 - ld a, [wCapturingMon] - and a - ret nz - ld hl, wBallTypeCounter - ld a, [hli] - ld c, a - ld b, [hl] - or b - ret z - dec bc - ld a, b - ld [hld], a - ld [hl], c - or c - ret nz - ; counter is now 0! Degrade the ball upgrade. - ld a, [wBallType] - ld c, a - ld b, $0 - ld hl, BallTypeDegradationRedField - add hl, bc - ld a, [hl] - ld [wBallType], a - and a - jr z, .pokeball - ; load approximately 1 minute of frames into wBallTypeCounter - ld a, $10 - ld [wBallTypeCounter], a - ld a, $e - ld [wBallTypeCounter + 1], a -.pokeball - call TransitionPinballUpgrade - ret - -TransitionPinballUpgrade: ; 0x155a7 - ld a, [wBallType] - ld c, a - sla c - ld b, $0 - ld hl, PinballUpgradeTransitionPointers - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - ld a, Bank(PinballUpgradeTransitionPointers) - call Func_10aa - ; fall through - -Func_155bb: ; 0x155bb - ld a, [hGameBoyColorFlag] - and a - ret z - ; gameboy color - ld a, [wBallType] - sla a - ld c, a - ld b, $0 - ld hl, Data_157f7 - add hl, bc - ld c, [hl] - inc hl - ld b, [hl] - ld a, BANK(Data_157f7) - ld de, LoadPalettes - call Func_10c5 - ret - -PinballUpgradeTransitionPointers: - dw TransitionToPokeBallPointers ; POKE_BALL - dw TransitionToPokeBallPointers ; POKE_BALL - dw TransitionToGreatBallPointers ; GREAT_BALL - dw TransitionToUltraBallPointers ; ULTRA_BALL - dw TransitionToUltraBallPointers ; ULTRA_BALL - dw TransitionToMasterBallPointers ; MASTER_BALL - -TransitionToPokeBallPointers: - db 11 - dw TransitionToPokeBall_TileData_1 - dw TransitionToPokeBall_TileData_2 - dw TransitionToPokeBall_TileData_3 - dw TransitionToPokeBall_TileData_4 - dw TransitionToPokeBall_TileData_5 - dw TransitionToPokeBall_TileData_6 - dw TransitionToPokeBall_TileData_7 - dw TransitionToPokeBall_TileData_8 - dw TransitionToPokeBall_TileData_9 - dw TransitionToPokeBall_TileData_10 - dw TransitionToPokeBall_TileData_11 - -TransitionToGreatBallPointers: - db 11 - dw TransitionToGreatBall_TileData_1 - dw TransitionToGreatBall_TileData_2 - dw TransitionToGreatBall_TileData_3 - dw TransitionToGreatBall_TileData_4 - dw TransitionToGreatBall_TileData_5 - dw TransitionToGreatBall_TileData_6 - dw TransitionToGreatBall_TileData_7 - dw TransitionToGreatBall_TileData_8 - dw TransitionToGreatBall_TileData_9 - dw TransitionToGreatBall_TileData_10 - dw TransitionToGreatBall_TileData_11 - -TransitionToUltraBallPointers: - db 11 - dw TransitionToUltraBall_TileData_1 - dw TransitionToUltraBall_TileData_2 - dw TransitionToUltraBall_TileData_3 - dw TransitionToUltraBall_TileData_4 - dw TransitionToUltraBall_TileData_5 - dw TransitionToUltraBall_TileData_6 - dw TransitionToUltraBall_TileData_7 - dw TransitionToUltraBall_TileData_8 - dw TransitionToUltraBall_TileData_9 - dw TransitionToUltraBall_TileData_10 - dw TransitionToUltraBall_TileData_11 - -TransitionToMasterBallPointers: - db 11 - dw TransitionToMasterBall_TileData_1 - dw TransitionToMasterBall_TileData_2 - dw TransitionToMasterBall_TileData_3 - dw TransitionToMasterBall_TileData_4 - dw TransitionToMasterBall_TileData_5 - dw TransitionToMasterBall_TileData_6 - dw TransitionToMasterBall_TileData_7 - dw TransitionToMasterBall_TileData_8 - dw TransitionToMasterBall_TileData_9 - dw TransitionToMasterBall_TileData_10 - dw TransitionToMasterBall_TileData_11 - -TransitionToPokeBall_TileData_1: - dw Func_11d2 - db $30, $03 - dw (vTilesOB tile $40) - dw PinballPokeballGfx + $0 - db Bank(PinballPokeballGfx) - db $00 - -TransitionToPokeBall_TileData_2: - dw Func_11d2 - db $30, $03 - dw (vTilesOB tile $43) - dw PinballPokeballGfx + $30 - db Bank(PinballPokeballGfx) - db $00 - -TransitionToPokeBall_TileData_3: - dw Func_11d2 - db $30, $03 - dw (vTilesOB tile $46) - dw PinballPokeballGfx + $60 - db Bank(PinballPokeballGfx) - db $00 - -TransitionToPokeBall_TileData_4: - dw Func_11d2 - db $30, $03 - dw (vTilesOB tile $49) - dw PinballPokeballGfx + $90 - db Bank(PinballPokeballGfx) - db $00 - -TransitionToPokeBall_TileData_5: - dw Func_11d2 - db $30, $03 - dw (vTilesOB tile $4c) - dw PinballPokeballGfx + $c0 - db Bank(PinballPokeballGfx) - db $00 - -TransitionToPokeBall_TileData_6: - dw Func_11d2 - db $30, $03 - dw (vTilesOB tile $4f) - dw PinballPokeballGfx + $f0 - db Bank(PinballPokeballGfx) - db $00 - -TransitionToPokeBall_TileData_7: - dw Func_11d2 - db $30, $03 - dw (vTilesOB tile $52) - dw PinballPokeballGfx + $120 - db Bank(PinballPokeballGfx) - db $00 - -TransitionToPokeBall_TileData_8: - dw Func_11d2 - db $30, $03 - dw (vTilesOB tile $55) - dw PinballPokeballGfx + $150 - db Bank(PinballPokeballGfx) - db $00 - -TransitionToPokeBall_TileData_9: - dw Func_11d2 - db $30, $03 - dw (vTilesOB tile $58) - dw PinballPokeballGfx + $180 - db Bank(PinballPokeballGfx) - db $00 - -TransitionToPokeBall_TileData_10: - dw Func_11d2 - db $30, $03 - dw (vTilesOB tile $5b) - dw PinballPokeballGfx + $1b0 - db Bank(PinballPokeballGfx) - db $00 - -TransitionToPokeBall_TileData_11: - dw Func_11d2 - db $20, $02 - dw (vTilesOB tile $5e) - dw PinballPokeballGfx + $1e0 - db Bank(PinballPokeballGfx) - db $00 - -TransitionToGreatBall_TileData_1: - dw Func_11d2 - db $30, $03 - dw (vTilesOB tile $40) - dw PinballGreatballGfx + $0 - db Bank(PinballGreatballGfx) - db $00 - -TransitionToGreatBall_TileData_2: - dw Func_11d2 - db $30, $03 - dw (vTilesOB tile $43) - dw PinballGreatballGfx + $30 - db Bank(PinballGreatballGfx) - db $00 - -TransitionToGreatBall_TileData_3: - dw Func_11d2 - db $30, $03 - dw (vTilesOB tile $46) - dw PinballGreatballGfx + $60 - db Bank(PinballGreatballGfx) - db $00 - -TransitionToGreatBall_TileData_4: - dw Func_11d2 - db $30, $03 - dw (vTilesOB tile $49) - dw PinballGreatballGfx + $90 - db Bank(PinballGreatballGfx) - db $00 - -TransitionToGreatBall_TileData_5: - dw Func_11d2 - db $30, $03 - dw (vTilesOB tile $4c) - dw PinballGreatballGfx + $c0 - db Bank(PinballGreatballGfx) - db $00 - -TransitionToGreatBall_TileData_6: - dw Func_11d2 - db $30, $03 - dw (vTilesOB tile $4f) - dw PinballGreatballGfx + $f0 - db Bank(PinballGreatballGfx) - db $00 - -TransitionToGreatBall_TileData_7: - dw Func_11d2 - db $30, $03 - dw (vTilesOB tile $52) - dw PinballGreatballGfx + $120 - db Bank(PinballGreatballGfx) - db $00 - -TransitionToGreatBall_TileData_8: - dw Func_11d2 - db $30, $03 - dw (vTilesOB tile $55) - dw PinballGreatballGfx + $150 - db Bank(PinballGreatballGfx) - db $00 - -TransitionToGreatBall_TileData_9: - dw Func_11d2 - db $30, $03 - dw (vTilesOB tile $58) - dw PinballGreatballGfx + $180 - db Bank(PinballGreatballGfx) - db $00 - -TransitionToGreatBall_TileData_10: - dw Func_11d2 - db $30, $03 - dw (vTilesOB tile $5b) - dw PinballGreatballGfx + $1b0 - db Bank(PinballGreatballGfx) - db $00 - -TransitionToGreatBall_TileData_11: - dw Func_11d2 - db $20, $02 - dw (vTilesOB tile $5e) - dw PinballGreatballGfx + $1e0 - db Bank(PinballGreatballGfx) - db $00 - -TransitionToUltraBall_TileData_1: - dw Func_11d2 - db $30, $03 - dw (vTilesOB tile $40) - dw PinballUltraballGfx + $0 - db Bank(PinballUltraballGfx) - db $00 - -TransitionToUltraBall_TileData_2: - dw Func_11d2 - db $30, $03 - dw (vTilesOB tile $43) - dw PinballUltraballGfx + $30 - db Bank(PinballUltraballGfx) - db $00 - -TransitionToUltraBall_TileData_3: - dw Func_11d2 - db $30, $03 - dw (vTilesOB tile $46) - dw PinballUltraballGfx + $60 - db Bank(PinballUltraballGfx) - db $00 - -TransitionToUltraBall_TileData_4: - dw Func_11d2 - db $30, $03 - dw (vTilesOB tile $49) - dw PinballUltraballGfx + $90 - db Bank(PinballUltraballGfx) - db $00 - -TransitionToUltraBall_TileData_5: - dw Func_11d2 - db $30, $03 - dw (vTilesOB tile $4c) - dw PinballUltraballGfx + $c0 - db Bank(PinballUltraballGfx) - db $00 - -TransitionToUltraBall_TileData_6: - dw Func_11d2 - db $30, $03 - dw (vTilesOB tile $4f) - dw PinballUltraballGfx + $f0 - db Bank(PinballUltraballGfx) - db $00 - -TransitionToUltraBall_TileData_7: - dw Func_11d2 - db $30, $03 - dw (vTilesOB tile $52) - dw PinballUltraballGfx + $120 - db Bank(PinballUltraballGfx) - db $00 - -TransitionToUltraBall_TileData_8: - dw Func_11d2 - db $30, $03 - dw (vTilesOB tile $55) - dw PinballUltraballGfx + $150 - db Bank(PinballUltraballGfx) - db $00 - -TransitionToUltraBall_TileData_9: - dw Func_11d2 - db $30, $03 - dw (vTilesOB tile $58) - dw PinballUltraballGfx + $180 - db Bank(PinballUltraballGfx) - db $00 - -TransitionToUltraBall_TileData_10: - dw Func_11d2 - db $30, $03 - dw (vTilesOB tile $5b) - dw PinballUltraballGfx + $1b0 - db Bank(PinballUltraballGfx) - db $00 - -TransitionToUltraBall_TileData_11: - dw Func_11d2 - db $20, $02 - dw (vTilesOB tile $5e) - dw PinballUltraballGfx + $1e0 - db Bank(PinballUltraballGfx) - db $00 - -TransitionToMasterBall_TileData_1: - dw Func_11d2 - db $30, $03 - dw (vTilesOB tile $40) - dw PinballMasterballGfx + $0 - db Bank(PinballMasterballGfx) - db $00 - -TransitionToMasterBall_TileData_2: - dw Func_11d2 - db $30, $03 - dw (vTilesOB tile $43) - dw PinballMasterballGfx + $30 - db Bank(PinballMasterballGfx) - db $00 - -TransitionToMasterBall_TileData_3: - dw Func_11d2 - db $30, $03 - dw (vTilesOB tile $46) - dw PinballMasterballGfx + $60 - db Bank(PinballMasterballGfx) - db $00 - -TransitionToMasterBall_TileData_4: - dw Func_11d2 - db $30, $03 - dw (vTilesOB tile $49) - dw PinballMasterballGfx + $90 - db Bank(PinballMasterballGfx) - db $00 - -TransitionToMasterBall_TileData_5: - dw Func_11d2 - db $30, $03 - dw (vTilesOB tile $4c) - dw PinballMasterballGfx + $c0 - db Bank(PinballMasterballGfx) - db $00 - -TransitionToMasterBall_TileData_6: - dw Func_11d2 - db $30, $03 - dw (vTilesOB tile $4f) - dw PinballMasterballGfx + $f0 - db Bank(PinballMasterballGfx) - db $00 - -TransitionToMasterBall_TileData_7: - dw Func_11d2 - db $30, $03 - dw (vTilesOB tile $52) - dw PinballMasterballGfx + $120 - db Bank(PinballMasterballGfx) - db $00 - -TransitionToMasterBall_TileData_8: - dw Func_11d2 - db $30, $03 - dw (vTilesOB tile $55) - dw PinballMasterballGfx + $150 - db Bank(PinballMasterballGfx) - db $00 - -TransitionToMasterBall_TileData_9: - dw Func_11d2 - db $30, $03 - dw (vTilesOB tile $58) - dw PinballMasterballGfx + $180 - db Bank(PinballMasterballGfx) - db $00 - -TransitionToMasterBall_TileData_10: - dw Func_11d2 - db $30, $03 - dw (vTilesOB tile $5b) - dw PinballMasterballGfx + $1b0 - db Bank(PinballMasterballGfx) - db $00 - -TransitionToMasterBall_TileData_11: - dw Func_11d2 - db $20, $02 - dw (vTilesOB tile $5e) - dw PinballMasterballGfx + $1e0 - db Bank(PinballMasterballGfx) - db $00 - -Data_157f7: - dw Data_15803 - dw Data_15803 - dw Data_1580a - dw Data_15811 - dw Data_15811 - dw Data_15818 - -Data_15803: - db $08, $04, $40, $68, $51, $37, $00 -Data_1580a: - db $08, $04, $40, $70, $51, $37, $00 -Data_15811: - db $08, $04, $40, $78, $51, $37, $00 -Data_15818: - db $08, $04, $40, $80, $51, $37, $00 - -ResolveRedStageBoardTriggerCollision: ; 0x1581f - ld a, [wWhichBoardTrigger] - and a - ret z - xor a - ld [wWhichBoardTrigger], a - ld bc, FivePoints - callba AddBigBCD6FromQueueWithBallMultiplier - ld a, [wWhichBoardTriggerId] - sub $11 - ld c, a - ld b, $0 - ld hl, wd521 - add hl, bc - ld [hl], $1 - ld a, [wd521] - and a - call nz, Func_1587c - ld a, [wd522] - and a - call nz, Func_158c0 - ld a, [wd523] - and a - call nz, Func_15904 - ld a, [wd524] - and a - call nz, HandleLeftAlleyTriggerRedField - ld a, [wd525] - and a - call nz, Func_15931 - ld a, [wd526] - and a - call nz, Func_15944 - ld a, [wd527] - and a - call nz, HandleRightAlleyTriggerRedField - ld a, [wd528] - and a - call nz, Func_15990 - ret - -Func_1587c: ; 0x1587c - xor a - ld [wd521], a - ld a, [wLeftAlleyTrigger] - and a - ret z - xor a - ld [wLeftAlleyTrigger], a - ld a, $1 - callba Func_10000 - ret c - ld a, [wLeftAlleyCount] - cp $3 - ret z - inc a - ld [wLeftAlleyCount], a - set 7, a - ld [wIndicatorStates], a - cp $83 - ret nz - ld a, [wStageCollisionState] - and $1 - or $6 - ld [wStageCollisionState], a - callba LoadStageCollisionAttributes - call Func_159f4 - ret - -Func_158c0: ; 0x158c0 - xor a - ld [wd522], a - ld a, [wLeftAlleyTrigger] - and a - ret z - xor a - ld [wLeftAlleyTrigger], a - ld a, $1 - callba Func_10000 - ret c - ld a, [wLeftAlleyCount] - cp $3 - ret z - inc a - ld [wLeftAlleyCount], a - set 7, a - ld [wIndicatorStates], a - cp $83 - ret nz - ld a, [wStageCollisionState] - and $1 - or $6 - ld [wStageCollisionState], a - callba LoadStageCollisionAttributes - call Func_159f4 - ret - -Func_15904: ; 0x15904 - xor a - ld [wd523], a - ld a, [wSecondaryLeftAlleyTrigger] - and a - ret z - xor a - ld [wSecondaryLeftAlleyTrigger], a - ld a, $3 - callba Func_10000 - ret - -HandleLeftAlleyTriggerRedField: ; 0x1591e -; Ball passed over the left alley trigger point in the Red Field. - xor a - ld [wd524], a - ld [wRightAlleyTrigger], a - ld [wSecondaryLeftAlleyTrigger], a - ld a, $1 - ld [wLeftAlleyTrigger], a - call Func_159c9 - ret - -Func_15931: ; 0x15931 - xor a - ld [wd525], a - ld [wRightAlleyTrigger], a - ld [wLeftAlleyTrigger], a - ld a, $1 - ld [wSecondaryLeftAlleyTrigger], a - call Func_159c9 - ret - -Func_15944: ; 0x15944 - xor a - ld [wd526], a - ld a, [wRightAlleyTrigger] - and a - ret z - xor a - ld [wRightAlleyTrigger], a - ld a, $2 - callba Func_10000 - ret c - ld a, [wRightAlleyCount] - cp $3 - ret z - inc a - ld [wRightAlleyCount], a - cp $3 - jr z, .asm_1596e - set 7, a -.asm_1596e - ld [wIndicatorStates + 1], a - ld a, [wRightAlleyCount] - cp $2 - ret c - ld a, $80 - ld [wIndicatorStates + 3], a - ret - -HandleRightAlleyTriggerRedField: ; 0x1597d -; Ball passed over the right alley trigger point in the Red Field. - xor a - ld [wd527], a - ld [wLeftAlleyTrigger], a - ld [wSecondaryLeftAlleyTrigger], a - ld a, $1 - ld [wRightAlleyTrigger], a - call Func_159c9 - ret - -Func_15990: ; 0x15990 - xor a - ld [wd528], a - ld a, [wRightAlleyTrigger] - and a - ret z - xor a - ld [wRightAlleyTrigger], a - ld a, $2 - callba Func_10000 - ret c - ld a, [wRightAlleyCount] - cp $3 - ret z - inc a - ld [wRightAlleyCount], a - cp $3 - jr z, .asm_159ba - set 7, a -.asm_159ba - ld [wIndicatorStates + 1], a - ld a, [wRightAlleyCount] - cp $2 - ret c - ld a, $80 - ld [wIndicatorStates + 3], a - ret - -Func_159c9: ; 0x159c9 - ld a, [wd7ad] - bit 7, a - ret nz - ld c, a - ld a, [wStageCollisionState] - and $1 - or c - ld [wStageCollisionState], a - ld a, $ff - ld [wd7ad], a - callba LoadStageCollisionAttributes - call Func_159f4 - ld a, $1 - ld [wd580], a - call Func_1404a - ret - -Func_159f4: ; 0x159f4 - ld a, [hLCDC] - bit 7, a - jr z, .asm_15a13 - ld a, [wd7f2] - and $fe - ld c, a - ld a, [wStageCollisionState] - and $fe - cp c - jr z, .asm_15a13 - add c - cp $2 - jr z, .asm_15a13 - lb de, $00, $00 - call PlaySoundEffect -.asm_15a13 - ld a, [wd7f2] - swap a - ld c, a - ld a, [wStageCollisionState] - sla a - or c - ld c, a - ld b, $0 - ld hl, TileDataPointers_15a3f - ld a, [hGameBoyColorFlag] - and a - jr z, .asm_15a2d - ld hl, TileDataPointers_15d05 -.asm_15a2d - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - or h - ret z - ld a, Bank(TileDataPointers_15a3f) - call Func_10aa - ld a, [wStageCollisionState] - 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 - -ResolveBellsproutCollision: ; 0x15e93 - ld a, [wBellsproutCollision] - and a - jr z, .asm_15eda - xor a - ld [wBellsproutCollision], a - ld bc, TenThousandPoints - callba AddBigBCD6FromQueueWithBallMultiplier - lb de, $00, $05 - call PlaySoundEffect - ld hl, BellsproutAnimationData - ld de, wBellsproutAnimationFrameCounter - call CopyHLToDE - xor a - ld [wBallXVelocity], a - ld [wBallXVelocity + 1], a - ld [wBallYVelocity], a - ld [wBallYVelocity + 1], a - ld [wBallXPos], a - ld [wBallYPos], a - ld a, $7c - ld [wBallXPos + 1], a - ld a, $78 - ld [wBallYPos + 1], a - xor a - ld [wd549], a -.asm_15eda - ld hl, BellsproutAnimationData - ld de, wBellsproutAnimationFrameCounter - call UpdateAnimation - push af - ld a, [wBellsproutAnimationFrameCounter] - and a - jr nz, .asm_15ef8 - ld a, $19 - ld [wBellsproutAnimationFrameCounter], a - xor a - ld [wBellsproutAnimationFrame], a - ld a, $6 - ld [wBellsproutAnimationFrameIndex], a -.asm_15ef8 - pop af - ret nc - ld a, [wBellsproutAnimationFrameIndex] - cp $1 - jr nz, .asm_15f35 - xor a - ld [wd548], a - ld a, [wRightAlleyCount] - cp $2 - jr c, .noCatchEmMode - ld a, $8 - jr nz, .startCatchEmMode - xor a -.startCatchEmMode - ld [wRareMonsFlag], a - callba StartCatchEmMode -.noCatchEmMode - ld hl, wd62a - call Func_e4a - ret nc - ld c, $19 - call Func_e55 - callba z, Func_30164 - ret - -.asm_15f35 - ld a, [wBellsproutAnimationFrameIndex] - cp $4 - jr nz, .asm_15f42 - ld a, $1 - ld [wd548], a - ret - -.asm_15f42 - ld a, [wBellsproutAnimationFrameIndex] - cp $5 - ret nz - ld a, $1 - ld [wd549], a - xor a - ld [wBallXVelocity + 1], a - ld a, $2 - ld [wBallYVelocity + 1], a - lb de, $00, $06 - call PlaySoundEffect - ld a, $5 - callba Func_10000 - ret - -BellsproutAnimationData: ; 0x15f69 -; Each entry is [duration][OAM id] - db $08, $01 - db $06, $02 - db $20, $03 - db $06, $02 - db $08, $01 - db $01, $00 - db $29, $00 - db $28, $01 - db $2A, $00 - db $27, $01 - db $29, $00 - db $28, $01 - db $2B, $00 - db $28, $01 - db $00 ; terminator - -Func_15f86: ; 0x15f86 - ld a, [wWhichBumper] - and a - jr z, .asm_15f99 - call Func_5fb8 - call Func_15fa6 - xor a - ld [wWhichBumper], a - call Func_15fda -.asm_15f99 - ld a, [wd4da] - and a - ret z - dec a - ld [wd4da], a - call z, Func_5fb8 - ret - -Func_15fa6: ; 0x15fa6 - ld a, $10 - ld [wd4da], a - ld a, [wWhichBumperId] - sub $6 - ld [wd4db], a - sla a - inc a - jr asm_15fc0 - -Func_5fb8: ; 0x5fb8 - ld a, [wd4db] - cp $ff - ret z - sla a -asm_15fc0 - sla a - ld c, a - ld b, $0 - ld hl, TileDataPointers_16010 - ld a, [hGameBoyColorFlag] - and a - jr z, .asm_15fd0 - ld hl, Data_16080 -.asm_15fd0 - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - ld a, Bank(TileDataPointers_16010) - call Func_10aa - ret - -Func_15fda: ; 0x15fda - ld a, $ff - ld [wd803], a - ld a, $3 - ld [wd804], a - ld hl, $0200 - ld a, l - ld [wFlipperYForce], a - ld a, h - ld [wFlipperYForce + 1], a - ld a, $80 - ld [wFlipperCollision], a - ld a, [wWhichBumperId] - sub $6 - ld c, a - ld b, $0 - ld hl, CollisionAngleDeltas_1600e - add hl, bc - ld a, [wCollisionForceAngle] - add [hl] - ld [wCollisionForceAngle], a - lb de, $00, $0b - call PlaySoundEffect - ret - -CollisionAngleDeltas_1600e: - db -8, 8 - -TileDataPointers_16010: - dw TileData_16018 - dw TileData_1601b - dw TileData_1601e - dw TileData_16021 - -TileData_16018: ; 0x16018 - db $01 - dw TileData_16024 - -TileData_1601b: ; 0x1601b - db $01 - dw TileData_1603B - -TileData_1601e: ; 0x1601e - db $01 - dw TileData_16052 - -TileData_16021: ; 0x16021 - db $01 - dw TileData_16069 - -TileData_16024: ; 0x16024 - dw LoadTileLists - db $07 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $124 - db $60 - - db $02 ; number of tiles - dw vBGMap + $144 - db $61, $62 - - db $02 ; number of tiles - dw vBGMap + $164 - db $63, $64 - - db $02 ; number of tiles - dw vBGMap + $185 - db $65, $66 - - db $00 ; terminator - -TileData_1603B: ; 0x1603B - dw LoadTileLists - db $07 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $124 - db $67 - - db $02 ; number of tiles - dw vBGMap + $144 - db $68, $69 - - db $02 ; number of tiles - dw vBGMap + $164 - db $6A, $6B - - db $02 ; number of tiles - dw vBGMap + $185 - db $6C, $6D - - db $00 ; terminator - -TileData_16052: ; 0x16052 - dw LoadTileLists - db $07 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $12F - db $6E - - db $02 ; number of tiles - dw vBGMap + $14E - db $6F, $70 - - db $02 ; number of tiles - dw vBGMap + $16E - db $71, $72 - - db $02 ; number of tiles - dw vBGMap + $18D - db $73, $74 - - db $00 ; terminator - -TileData_16069: ; 0x16069 - dw LoadTileLists - db $07 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $12F - db $75 - - db $02 ; number of tiles - dw vBGMap + $14E - db $76, $77 - - db $02 ; number of tiles - dw vBGMap + $16E - db $78, $79 - - db $02 ; number of tiles - dw vBGMap + $18D - db $7A, $7B - - db $00 ; terminator - -Data_16080: - dw Data_16088 - dw Data_1608b - dw Data_1608e - dw Data_16091 - -Data_16088: ; 0x16088 - db $01 - dw Data_16094 - -Data_1608b: ; 0x1608b - db $01 - dw Data_160ab - -Data_1608e: ; 0x1608e - db $01 - dw Data_160c2 - -Data_16091: ; 0x16091 - db $01 - dw Data_160d9 - -Data_16094: ; 0x16094 - dw LoadTileLists - db $07 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $124 - db $2A - - db $02 ; number of tiles - dw vBGMap + $144 - db $2B, $2C - - db $02 ; number of tiles - dw vBGMap + $164 - db $2D, $2E - - db $02 ; number of tiles - dw vBGMap + $185 - db $2F, $30 - - db $00 ; terminator - -Data_160ab: ; 0x160ab - dw LoadTileLists - db $07 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $124 - db $31 - - db $02 ; number of tiles - dw vBGMap + $144 - db $32, $33 - - db $02 ; number of tiles - dw vBGMap + $164 - db $34, $35 - - db $02 ; number of tiles - dw vBGMap + $185 - db $36, $37 - - db $00 ; terminator - -Data_160c2: ; 0x160c2 - dw LoadTileLists - db $07 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $12F - db $2A - - db $02 ; number of tiles - dw vBGMap + $14E - db $2C, $2B - - db $02 ; number of tiles - dw vBGMap + $16E - db $2E, $2D - - db $02 ; number of tiles - dw vBGMap + $18D - db $30, $2F - - db $00 ; terminator - -Data_160d9: ; 0x160d9 - dw LoadTileLists - db $07 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $12F - db $31 - - db $02 ; number of tiles - dw vBGMap + $14E - db $33, $32 - - db $02 ; number of tiles - dw vBGMap + $16E - db $35, $34 - - db $02 ; number of tiles - dw vBGMap + $18D - db $37, $36 - - db $00 ; terminator - -ResolveDittoSlotCollision: ; 0x160f0 - ld a, [wDittoSlotCollision] - and a - jr z, .asm_16137 - xor a - ld [wDittoSlotCollision], a - ld bc, TenThousandPoints - callba AddBigBCD6FromQueueWithBallMultiplier - lb de, $00, $21 - call PlaySoundEffect - xor a - ld hl, wBallXVelocity - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - ld [wd549], a - ld [wBallXPos], a - ld [wBallYPos], a - ld a, $11 - ld [wBallXPos + 1], a - ld a, $23 - ld [wBallYPos + 1], a - ld a, $10 - ld [wd600], a - ld a, $5 - ld [wd803], a - ld a, $8 - ld [wd804], a -.asm_16137 - ld a, [wd600] - and a - ret z - dec a - ld [wd600], a - cp $f - jr nz, .asm_1614f - callba LoadMiniBallGfx - ret - -.asm_1614f - cp $c - jr nz, .asm_1615e - callba Func_dd62 - ret - -.asm_1615e - cp $9 - jr nz, .asm_1616d - xor a - ld [wd548], a - ld [wBallSpin], a - ld [wBallRotation], a - ret - -.asm_1616d - cp $6 - jr nz, .asm_1618e - callba Func_10ab3 - ld a, $1 - ld [wd548], a - ld [wd549], a - ld a, $5 - ld [wd803], a - ld a, $8 - ld [wd804], a - ret - -.asm_1618e - cp $3 - jr nz, .asm_1619d - callba LoadMiniBallGfx - ret - -.asm_1619d - and a - ret nz - callba LoadBallGfx - ld a, $2 - ld [wBallYVelocity + 1], a - ret - -Func_161af: ; 0x161af - ld a, [wd604] - and a - ret z - ld a, [wBallYPos + 1] - sub $fe - cp $30 - ret nc - ld c, $0 - ld b, a - ld h, b - ld l, c - srl b - rr c - srl b - rr c - srl h - rr l - add hl, bc - ld a, [wBallXPos + 1] - sub $38 - cp $30 - ret nc - ld c, a - ld b, $0 - sla c - sla c - add hl, bc - jr asm_1620f - -Func_161e0: ; 0x161e0 - ld a, [wd604] - and a - ret z - ld a, [wBallYPos + 1] - sub $86 - cp $30 - ret nc - ld c, $0 - ld b, a - ld h, b - ld l, c - srl b - rr c - srl b - rr c - srl h - rr l - add hl, bc - ld a, [wBallXPos + 1] - sub $38 - cp $30 - ret nc - ld c, a - ld b, $0 - sla c - sla c - add hl, bc -asm_1620f: ; 0x1620f - ld bc, BallPhysicsData_f0000 - add hl, bc - ld de, wBallXVelocity - ld a, BANK(BallPhysicsData_f0000) - call ReadByteFromBank - ld c, a - ld a, [de] - add c - ld [de], a - inc de - inc hl - ld a, BANK(BallPhysicsData_f0000) - call ReadByteFromBank - ld b, a - ld a, [de] - adc b - ld [de], a - inc de - inc hl - push bc - ld a, BANK(BallPhysicsData_f0000) - call ReadByteFromBank - ld c, a - ld a, [de] - add c - ld [de], a - inc de - inc hl - ld a, BANK(BallPhysicsData_f0000) - call ReadByteFromBank - ld b, a - ld a, [de] - adc b - ld [de], a - inc de - inc hl - bit 7, b - jr z, .asm_1624e - ld a, c - cpl - ld c, a - ld a, b - cpl - ld b, a - inc bc -.asm_1624e - pop hl - bit 7, h - jr z, .asm_1625a - ld a, l - cpl - ld l, a - ld a, h - cpl - ld h, a - inc hl -.asm_1625a - add hl, bc - sla l - rl h - ld a, h - cp $2 - ret c - ld a, [wd804] - and a - ret nz - ld a, $5 - ld [wd803], a - ld a, $8 - ld [wd804], a - lb de, $00, $04 - call PlaySoundEffect - ret - -Func_16279: ; 0x16279 - ld a, [wSlotCollision] - and a - jr z, .asm_162ae - xor a - ld [wSlotCollision], a - ld a, [wd604] - and a - ret z - ld a, [wd603] - and a - jr nz, .asm_162ae - xor a - ld hl, wBallXVelocity - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - ld [wd549], a - ld [wBallXPos], a - ld [wBallYPos], a - ld a, $50 - ld [wBallXPos + 1], a - ld a, $16 - ld [wBallYPos + 1], a - ld a, $13 - ld [wd603], a -.asm_162ae - ld a, [wd603] - and a - ret z - dec a - ld [wd603], a - ld a, $18 - ld [wd606], a - ld a, [wd603] - cp $12 - jr nz, .asm_162d4 - lb de, $00, $21 - call PlaySoundEffect - callba LoadMiniBallGfx - ret - -.asm_162d4 - cp $f - jr nz, .asm_162e3 - callba Func_dd62 - ret - -.asm_162e3 - cp $c - jr nz, .asm_162f2 - xor a - ld [wd548], a - ld [wBallSpin], a - ld [wBallRotation], a - ret - -.asm_162f2 - cp $9 - jr nz, .asm_162fa - call Func_16352 - ret - -.asm_162fa - cp $6 - jr nz, .asm_16317 - xor a - ld [wd604], a - ld a, $5 - ld [wd803], a - ld a, $8 - ld [wd804], a - callba LoadMiniBallGfx - ret - -.asm_16317 - cp $3 - jr nz, .asm_16330 - callba LoadBallGfx - ld a, $2 - ld [wBallYVelocity + 1], a - ld a, $80 - ld [wBallXVelocity], a - ret - -.asm_16330 - and a - ret nz - call Func_16425 - ld a, [wCatchEmOrEvolutionSlotRewardActive] - cp CATCHEM_MODE_SLOT_REWARD - ret nz - call GenRandom - and $8 - ld [wRareMonsFlag], a - callba StartCatchEmMode - xor a - ld [wCatchEmOrEvolutionSlotRewardActive], a - ret - -Func_16352: ; 0x16352 - xor a - ld [wIndicatorStates + 4], a - ld a, $d - callba Func_10000 - jr nc, .asm_1636d - ld a, $1 - ld [wd548], a - ld [wd549], a - ret - -.asm_1636d - ld a, [wd624] - cp $3 - jr nz, .asm_163b3 - ld a, [wd607] - and a - jr nz, .asm_163b3 -.asm_1637a - ld a, [wBonusStageSlotRewardActive] - and a - jr nz, .asm_16389 - xor a - ld [wd625], a - ld a, $40 - ld [wd626], a -.asm_16389 - xor a - ld [wBonusStageSlotRewardActive], a - ld a, $1 - ld [wd495], a - ld [wd4ae], a - ld a, [wd498] - ld c, a - ld b, $0 - ld hl, GoToBonusStageTextIds_RedField - add hl, bc - ld a, [hl] - ld [wd497], a - call Func_163f2 - xor a - ld [wd609], a - ld [wCatchEmOrEvolutionSlotRewardActive], a - ld a, $1e - ld [wd607], a - ret - -.asm_163b3 - callba Func_ed8e - xor a - ld [wd608], a - ld a, [wd61d] - cp $d - jr nc, .asm_1637a - ld a, $1 - ld [wd548], a - ld [wd549], a - ld a, [wCatchEmOrEvolutionSlotRewardActive] - cp EVOLUTION_MODE_SLOT_REWARD - ret nz - callba Func_10ab3 - ld a, [wd7ad] - ld c, a - ld a, [wStageCollisionState] - and $1 - or c - ld [wStageCollisionState], a - xor a - ld [wCatchEmOrEvolutionSlotRewardActive], a - ret - -Func_163f2: ; 0x163f2 - call FillBottomMessageBufferWithBlackTile - call Func_30db - ld hl, wd5dc - ld a, [wd497] - ld de, GoToDiglettStageText - cp STAGE_DIGLETT_BONUS - jr z, .asm_1640f - ld de, GoToGengarStageText - cp STAGE_GENGAR_BONUS - jr z, .asm_1640f - ld de, GoToMewtwoStageText -.asm_1640f - call LoadTextHeader - ld de, $0000 - call PlaySong - rst AdvanceFrame - lb de, $3c, $23 - call PlaySoundEffect - ret - -GoToBonusStageTextIds_RedField: - db STAGE_GENGAR_BONUS - db STAGE_MEWTWO_BONUS - db STAGE_MEOWTH_BONUS - db STAGE_DIGLETT_BONUS - db STAGE_SEEL_BONUS - -Func_16425: ; 0x16425 - ld a, [wCurrentStage] - and $1 - sla a - ld c, a - ld a, [wd604] - add c - sla a - ld c, a - ld b, $0 - ld hl, TileDataPointers_1644d - ld a, [hGameBoyColorFlag] - and a - jr z, .asm_16441 - ld hl, TileDataPointers_164a1 -.asm_16441 - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - or h - ret z - ld a, Bank(TileDataPointers_1644d) - call Func_10aa - ret - -TileDataPointers_1644d: - dw TileData_16455 - dw TileData_16458 - dw TileData_1645b - dw TileData_16460 - -TileData_16455: ; 0x16455 - db $01 - dw TileData_16465 - -TileData_16458: ; 0x16458 - db $01 - dw TileData_1646f - -TileData_1645b: ; 0x1645b - db $02 - dw TileData_16479 - dw TileData_16483 - -TileData_16460: ; 0x16460 - db $02 - dw TileData_1648D - dw TileData_16497 - -TileData_16465: ; 0x16465 - dw Func_11d2 - db $20, $02 - dw vTilesSH tile $46 - dw StageRedFieldTopBaseGameBoyGfx + $1c0 - db Bank(StageRedFieldTopBaseGameBoyGfx) - db $00 - -TileData_1646f: ; 0x1646f - dw Func_11d2 - db $20, $02 - dw vTilesSH tile $46 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $340 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileData_16479: ; 0x16479 - dw Func_11d2 - db $20, $02 - dw vTilesBG tile $48 - dw StageRedFieldBottomBaseGameBoyGfx + $c80 - db Bank(StageRedFieldBottomBaseGameBoyGfx) - db $00 - -TileData_16483: ; 0x16483 - dw Func_11d2 - db $20, $02 - dw vTilesBG tile $4A - dw StageRedFieldBottomBaseGameBoyGfx + $CA0 - db Bank(StageRedFieldBottomBaseGameBoyGfx) - db $00 - -TileData_1648D: ; 0x1648D - dw Func_11d2 - db $20, $02 - dw vTilesBG tile $48 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $340 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileData_16497: ; 0x16497 - dw Func_11d2 - db $20, $02 - dw vTilesBG tile $4A - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $360 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileDataPointers_164a1: - dw TileData_164a9 - dw TileData_164ac - dw TileData_164af - dw TileData_164b2 - -TileData_164a9: ; 0x164a9 - db $01 - dw TileData_164b5 - -TileData_164ac: ; 0x164ac - db $01 - dw TileData_164be - -TileData_164af: ; 0x164af - db $01 - dw TileData_164c7 - -TileData_164b2: ; 0x164b2 - db $01 - dw TileData_164d5 - -TileData_164b5: ; 0x164b5 - dw LoadTileLists - db $02 - - db $02 - dw vBGMap + $229 - db $d4, $d5 - - db $00 - -TileData_164be: ; 0x164be - dw LoadTileLists - db $02 - - db $02 - - dw vBGMap + $229 - db $d6, $d7 - - db $00 - -TileData_164c7: ; 0x164c7 - dw LoadTileLists - db $04 - - db $02 - dw vBGMap + $9 - db $38, $39 - - db $02 - dw vBGMap + $29 - db $3a, $3b - - db $00 - -TileData_164d5: ; 0x164d5 - dw LoadTileLists - db $04 - - db $02 - dw vBGMap + $9 - db $3c, $3d - - db $02 - dw vBGMap + $29 - db $3e, $3f - - db $00 - -Func_164e3: ; 0x164e3 - ld a, [wd607] - and a - ret z - dec a - ld [wd607], a - ret nz - ld a, [wInSpecialMode] - and a - ret nz - ld a, [wd609] - and a - jr z, .asm_164ff - ld a, [wd498] - add $15 - jr .asm_16506 - -.asm_164ff - ld a, [wd608] - and a - ret z - ld a, $1a -.asm_16506 - ld hl, wCurrentStage - bit 0, [hl] - callba nz, Func_30256 - ld a, [wd604] - and a - ret nz - ld a, $1 - ld [wd604], a - ld a, $80 - ld [wIndicatorStates + 4], a - ld a, [wCurrentStage] - bit 0, a - call nz, Func_16425 - ret - -Func_1652d: ; 0x1652d - ld a, [wPinballLaunchAlley] - and a - ret z - xor a - ld [wPinballLaunchAlley], a - ld a, [wd4de] - and a - jr z, .asm_16566 - xor a - ld [wRightAlleyTrigger], a - ld [wLeftAlleyTrigger], a - ld [wSecondaryLeftAlleyTrigger], a - ld hl, wBallXVelocity - ld [hli], a - ld [hl], a - ld [wBallSpin], a - ld [wBallRotation], a - ld a, $80 - ld [wBallYVelocity], a - ld a, $fa - ld [wBallYVelocity + 1], a - ld a, $1 - ld [wd549], a - lb de, $00, $0a - call PlaySoundEffect -.asm_16566 - ld a, $ff - ld [wPreviousTriggeredGameObject], a - ld a, [wd4de] - and a - ret nz - ld a, [wd4e0] - and a - jr nz, .asm_16582 - call Func_1658f - ld a, $1 - ld [wd4e0], a - ld [wd4de], a - ret - -.asm_16582 - ld hl, wKeyConfigBallStart - call IsKeyPressed - ret z - ld a, $1 - ld [wd4de], a - ret - -Func_1658f: ; 0x1658f - ld a, [hGameBoyColorFlag] - and a - callba nz, LoadGreyBillboardPaletteData -.showNextMap - ld a, [wInitialMapSelectionIndex] - inc a - cp $7 ; number of maps to choose from at the start of play - jr c, .gotMapId - xor a ; wrap around to 0 -.gotMapId - ld [wInitialMapSelectionIndex], a - ld c, a - ld b, $0 - ld hl, RedStageInitialMaps - add hl, bc - ld a, [hl] - ld [wCurrentMap], a - push af - lb de, $00, $48 - call PlaySoundEffect - pop af - add (PalletTownPic_Pointer - BillboardPicturePointers) / 3 ; map billboard pictures start at the $29th entry in BillboardPicturePointers - callba LoadBillboardPicture - ld b, $20 ; number of frames to delay before the next map is shown -.waitOnCurrentMap - push bc - callba Func_eeee - ld hl, wKeyConfigBallStart - call IsKeyPressed - jr nz, .ballStartKeyPressed - pop bc - dec b - jr nz, .waitOnCurrentMap - jr .showNextMap - -.ballStartKeyPressed - pop bc - callba Func_30253 - ld bc, StartFromMapText - callba Func_3118f - ld a, [wCurrentMap] - ld [wd4e3], a - xor a - ld [wd4e2], a - ret - -RedStageInitialMaps: ; 0x16605 - db PALLET_TOWN - db VIRIDIAN_FOREST - db PEWTER_CITY - db CERULEAN_CITY - db VERMILION_SEASIDE - db ROCK_MOUNTAIN - db LAVENDER_TOWN - -ResolveRedStagePikachuCollision: ; 0x1660c - ld a, [wWhichPikachu] - and a - jr z, .asm_1667b - xor a - ld [wWhichPikachu], a - ld a, [wd51c] - and a - jr nz, .asm_1667b - ld a, [wPikachuSaverSlotRewardActive] - and a - jr nz, .asm_16634 - ld a, [wWhichPikachuId] - sub $1c - ld hl, wd518 - cp [hl] - jr nz, .asm_1667b - ld a, [wPikachuSaverCharge] - cp MAX_PIKACHU_SAVER_CHARGE - jr nz, .asm_16667 -.asm_16634 - ld hl, PikachuSaverAnimationDataBlueStage - ld de, wPikachuSaverAnimationFrameCounter - call CopyHLToDE - ld a, [wPikachuSaverSlotRewardActive] - and a - jr nz, .asm_16647 - xor a - ld [wPikachuSaverCharge], a -.asm_16647 - ld a, $1 - ld [wd51c], a - xor a - ld [wBallXVelocity], a - ld [wBallXVelocity + 1], a - ld [wBallYVelocity], a - ld [wBallYVelocity + 1], a - ld [wBallSpin], a - ld [wBallRotation], a - ld [wd549], a - call FillBottomMessageBufferWithBlackTile - jr .asm_1667b - -.asm_16667 - ld hl, PikachuSaverAnimation2DataBlueStage - ld de, wPikachuSaverAnimationFrameCounter - call CopyHLToDE - ld a, $2 - ld [wd51c], a - lb de, $00, $3b - call PlaySoundEffect -.asm_1667b - ld a, [wd51c] - and a - call z, Func_16766 - call Func_1669e - ld a, [wPikachuSaverCharge] - cp MAX_PIKACHU_SAVER_CHARGE - ret nz - ld a, [wd51e] - and a - ret z - dec a - ld [wd51e], a - cp $5a - ret nz - lb de, $0f, $22 - call PlaySoundEffect - ret - -Func_1669e: ; 0x1669e - ld a, [wd51c] - cp $1 - jr nz, .asm_16719 - ld hl, PikachuSaverAnimationDataBlueStage - ld de, wPikachuSaverAnimationFrameCounter - call UpdateAnimation - ret nc - ld a, [wPikachuSaverAnimationFrameIndex] - cp $1 - jr nz, .asm_166f7 - xor a - ld [wd85d], a - call Func_310a - rst AdvanceFrame - ld a, $1 - callba PlayPikachuSoundClip - ld a, $1 - ld [wd85d], a - ld a, $ff - ld [wd803], a - ld a, $60 - ld [wd804], a - ld hl, wd62e - call Func_e4a - jr nc, .asm_166f0 - ld c, $a - call Func_e55 - callba z, Func_30164 -.asm_166f0 - lb de, $16, $10 - call PlaySoundEffect - ret - -.asm_166f7 - ld a, [wPikachuSaverAnimationFrameIndex] - cp $11 - ret nz - ld a, $fc - ld [wBallYVelocity + 1], a - ld a, $1 - ld [wd549], a - ld bc, FiveThousandPoints - callba AddBigBCD6FromQueueWithBallMultiplier - xor a - ld [wd51c], a - ret - -.asm_16719 - cp $2 - jr nz, .asm_16732 - ld hl, PikachuSaverAnimation2DataBlueStage - ld de, wPikachuSaverAnimationFrameCounter - call UpdateAnimation - ret nc - ld a, [wPikachuSaverAnimationFrameIndex] - cp $1 - ret nz - xor a - ld [wd51c], a - ret - -.asm_16732 - ld a, [hNumFramesDropped] - swap a - and $1 - ld [wPikachuSaverAnimationFrame], a - ret - -PikachuSaverAnimationDataBlueStage: ; 0x1673c -; Each entry is [duration][OAM id] - db $0C, $02 - db $05, $03 - db $05, $02 - db $05, $04 - db $05, $05 - db $05, $02 - db $06, $06 - db $06, $07 - db $06, $08 - db $06, $02 - db $06, $05 - db $06, $08 - db $06, $07 - db $06, $02 - db $06, $08 - db $06, $07 - db $06, $02 - db $01, $00 - db $00 - -PikachuSaverAnimation2DataBlueStage: ; 0x16761 -; Each entry is [duration][OAM id] - db $0C, $02 - db $01, $00 - db $00 - -Func_16766: ; 0x16766 - ld hl, wKeyConfigLeftFlipper - call IsKeyPressed2 - jr z, .asm_16774 - ld hl, wd518 - ld [hl], $0 - ret - -.asm_16774 - ld hl, wKeyConfigRightFlipper - call IsKeyPressed2 - ret z - ld hl, wd518 - ld [hl], $1 - ret - -ResolveStaryuCollision: ; 0x16781 - ld a, [wStaryuCollision] - and a - jr z, .asm_167bd - xor a - ld [wStaryuCollision], a - ld a, [wd503] - and a - jr nz, .asm_167c2 - ld bc, FiveThousandPoints - callba AddBigBCD6FromQueueWithBallMultiplier - ld a, [wd502] - xor $1 - set 1, a - ld [wd502], a - ld a, $14 - ld [wd503], a - call Func_16859 - ld a, $6 - callba Func_10000 - ret - -.asm_167bd - ld a, [wd503] - and a - ret z -.asm_167c2 - dec a - ld [wd503], a - ret nz - ld a, [wd502] - res 1, a - ld [wd502], a - call Func_16859 - ld a, [wd502] - and $1 - ld c, a - ld a, [wStageCollisionState] - and $fe - or c - ld [wStageCollisionState], a - callba LoadStageCollisionAttributes - call Func_159f4 - lb de, $00, $07 - call PlaySoundEffect - ld a, [wStageCollisionState] - bit 0, a - jp nz, Func_15450 - jp Func_15499 - -Func_167ff: ; 0x167ff - ld a, [wStaryuCollision] - and a - jr z, .asm_16839 - xor a - ld [wStaryuCollision], a - ld a, [wd503] - and a - jr nz, .asm_1683e - ld bc, FiveThousandPoints - callba AddBigBCD6FromQueueWithBallMultiplier - ld a, [wd502] - xor $1 - ld [wd502], a - ld a, $14 - ld [wd503], a - call Func_16878 - ld a, $6 - callba Func_10000 - ret - -.asm_16839 - ld a, [wd503] - and a - ret z -.asm_1683e - dec a - ld [wd503], a - ret nz - ld a, [wd502] - and $1 - ld c, a - ld a, [wStageCollisionState] - and $fe - or c - ld [wStageCollisionState], a - lb de, $00, $07 - call PlaySoundEffect - ret - -Func_16859: ; 0x16859 - ld a, [wd502] - sla a - ld c, a - ld b, $0 - ld hl, TileDataPointers_16899 - ld a, [hGameBoyColorFlag] - and a - jr z, .asm_1686c - ld hl, TileDataPointers_16910 -.asm_1686c - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - or h - ret z - ld a, Bank(TileDataPointers_16899) - call Func_10aa - ret - -Func_16878: ; 0x16878 - ld a, [wd502] - and $1 - sla a - ld c, a - ld b, $0 - ld hl, TileDataPointers_1695a - ld a, [hGameBoyColorFlag] - and a - jr z, .asm_1688d - ld hl, TileDataPointers_16980 -.asm_1688d - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - or h - ret z - ld a, Bank(TileDataPointers_1695a) - call Func_10aa - ret - -TileDataPointers_16899: - dw TileData_168a1 - dw TileData_168a8 - dw TileData_168af - dw TileData_168af - -TileData_168a1: ; 0x168a1 - db $03 - dw TileData_168b6 - dw TileData_168c0 - dw TileData_168ca - -TileData_168a8: ; 0x168a8 - db $03 - dw TileData_168d4 - dw TileData_168de - dw TileData_168e8 - -TileData_168af: ; 0x168af - db $03 - dw TileData_168f2 - dw TileData_168fc - dw TileData_16906 - -TileData_168b6: ; 0x168b6 - dw Func_11d2 - db $30, $03 - dw vTilesSH tile $50 - dw StageRedFieldTopBaseGameBoyGfx + $260 - db Bank(StageRedFieldTopBaseGameBoyGfx) - db $00 - -TileData_168c0: ; 0x168c0 - dw Func_11d2 - db $30, $03 - dw vTilesSH tile $53 - dw StageRedFieldTopBaseGameBoyGfx + $290 - db Bank(StageRedFieldTopBaseGameBoyGfx) - db $00 - -TileData_168ca: ; 0x168ca - dw Func_11d2 - db $10, $01 - dw vTilesSH tile $56 - dw StageRedFieldTopBaseGameBoyGfx + $2c0 - db Bank(StageRedFieldTopBaseGameBoyGfx) - db $00 - -TileData_168d4: ; 0x168d4 - dw Func_11d2 - db $30, $03 - dw vTilesSH tile $52 - dw StageRedFieldTopBaseGameBoyGfx + $280 - db Bank(StageRedFieldTopBaseGameBoyGfx) - db $00 - -TileData_168de: ; 0x168de - dw Func_11d2 - db $20, $02 - dw vTilesSH tile $55 - dw StageRedFieldTopBaseGameBoyGfx + $2b0 - db Bank(StageRedFieldTopBaseGameBoyGfx) - db $00 - -TileData_168e8: ; 0x168e8 - dw Func_11d2 - db $20, $02 - dw vTilesSH tile $50 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $EA0 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileData_168f2: ; 0x168f2 - dw Func_11d2 - db $30, $03 - dw vTilesSH tile $51 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $10E0 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileData_168fc: ; 0x168fc - dw Func_11d2 - db $30, $03 - dw vTilesSH tile $54 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1110 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileData_16906: ; 0x16906 - dw Func_11d2 - db $10, $01 - dw vTilesSH tile $50 - dw StageRedFieldTopBaseGameBoyGfx + $260 - db Bank(StageRedFieldTopBaseGameBoyGfx) - db $00 - -TileDataPointers_16910: - dw TileData_16918 - dw TileData_1691b - dw TileData_1691e - dw TileData_1691e - -TileData_16918: ;0x16918 - db $01 - dw TileData_16921 - -TileData_1691b: ;0x1691b - db $01 - dw TileData_16934 - -TileData_1691e: ;0x1691e - db $01 - dw TileData_16947 - -TileData_16921: ; 0x16921 - dw LoadTileLists - db $06 - - db $03 - dw vBGMap + $1C6 - db $C3, $C4, $C5 - - db $02 - dw vBGMap + $1E7 - db $C6, $C7 - - db $01 - dw vBGMap + $207 - db $C8 - - db $00 - -TileData_16934: ; 0x16934 - dw LoadTileLists - db $06 - - db $03 - dw vBGMap + $1C6 - db $CD, $CE, $C5 - - db $02 - dw vBGMap + $1E7 - db $C6, $C7 - - db $01 - dw vBGMap + $207 - db $C8 - - db $00 - -TileData_16947: ; 0x16947 - dw LoadTileLists - db $06 - - db $03 - dw vBGMap + $1C6 - db $C3, $C4, $C9 - - db $02 - dw vBGMap + $1E7 - db $CA, $CB - - db $01 - dw vBGMap + $207 - db $CC - - db $00 - -TileDataPointers_1695a: - dw TileData_1695e - dw TileData_16961 - -TileData_1695e: ; 0x1695e - db $01 - dw TileData_16964 - -TileData_16961: ; 0x16961 - db $01 - dw TileData_16972 - -TileData_16964: ; 0x16964 - dw LoadTileLists - db $04 - - db $02 - dw vBGMap + $40 - db $BE, $BF - - db $02 - dw vBGMap + $60 - db $C0, $C1 - - db $00 - -TileData_16972: ; 0x16972 - dw LoadTileLists - db $04 - - db $02 - dw vBGMap + $40 - db $C2, $C3 - - db $02 - dw vBGMap + $60 - db $C4, $C5 - - db $00 - -TileDataPointers_16980: - dw TileData_16984 - dw TileData_16987 - -TileData_16984: ; 0x16984 - db $01 - dw TileData_1698a - -TileData_16987: ; 0x16987 - db $01 - dw TileData_16998 - -TileData_1698a: ; 0x1698a - dw LoadTileLists - db $04 - - db $02 - dw vBGMap + $40 - db $BC, $BD - - db $02 - dw vBGMap + $60 - db $BE, $BF - - db $00 - -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 - -ResolveRedStageBonusMultiplierCollision: ; 016d9d - ld a, [wWhichBonusMultiplierRailing] - and a - jp z, Func_16e51 - xor a - ld [wWhichBonusMultiplierRailing], a - lb de, $00, $0d - call PlaySoundEffect - ld a, [wWhichBonusMultiplierRailingId] - sub $21 - jr nz, .asm_16ddc - ld a, $9 - callba Func_10000 - ld a, [wd610] - cp $3 - jr nz, .asm_16e35 - ld a, $1 - ld [wd610], a - ld a, $3 - ld [wd611], a - ld a, [wd60c] - set 7, a - ld [wd60c], a - jr .asm_16e35 - -.asm_16ddc - ld a, $a - callba Func_10000 - ld a, [wd611] - cp $3 - jr nz, .asm_16e35 - ld a, $1 - ld [wd610], a - ld a, $1 - ld [wd611], a - ld a, $80 - ld [wd612], a - ld a, [wd60d] - set 7, a - ld [wd60d], a - ld a, [wd482] - inc a - cp 100 - jr c, .asm_16e10 - ld a, 99 -.asm_16e10 - ld [wd482], a - jr nc, .asm_16e24 - ld c, $19 - call Func_e55 - callba z, Func_30164 -.asm_16e24 - ld a, [wd60c] - ld [wd614], a - ld a, [wd60d] - ld [wd615], a - ld a, $1 - ld [wd613], a -.asm_16e35 - ld bc, TenPoints - callba AddBigBCD6FromQueueWithBallMultiplier - ld a, [wd60c] - call Func_16f28 - ld a, [wd60d] - add $14 - call Func_16f28 - ret - -Func_16e51: ; 0x16e51 - call Func_16ef5 - ld a, [wd612] - and a - jr z, .asm_16e8f - dec a - ld [wd612], a - cp $70 - jr nz, .asm_16e6e - ld a, $2 - ld [wd610], a - ld a, $2 - ld [wd611], a - jr .asm_16e8f - -.asm_16e6e - and a - jr nz, .asm_16e8f - ld a, $3 - ld [wd610], a - xor a - ld [wd611], a - ld a, [wd482] - call Func_16f95 - ld a, [wd60c] - call Func_16f28 - ld a, [wd60d] - add $14 - call Func_16f28 - ret - -.asm_16e8f - ld a, [wd610] - cp $2 - jr c, .asm_16ec1 - cp $3 - ld a, [hNumFramesDropped] - jr c, .asm_16ea0 - srl a - srl a -.asm_16ea0 - ld b, a - and $3 - jr nz, .asm_16ec1 - bit 3, b - jr nz, .asm_16eb6 - ld a, [wd60c] - res 7, a - ld [wd60c], a - call Func_16f28 - jr .asm_16ec1 - -.asm_16eb6 - ld a, [wd60c] - set 7, a - ld [wd60c], a - call Func_16f28 -.asm_16ec1 - ld a, [wd611] - cp $2 - ret c - cp $3 - ld a, [hNumFramesDropped] - jr c, .asm_16ed1 - srl a - srl a -.asm_16ed1 - ld b, a - and $3 - ret nz - bit 3, b - jr nz, .asm_16ee7 - ld a, [wd60d] - res 7, a - ld [wd60d], a - add $14 - call Func_16f28 - ret - -.asm_16ee7 - ld a, [wd60d] - set 7, a - ld [wd60d], a - add $14 - call Func_16f28 - ret - -Func_16ef5: ; 0x16ef5 - ld a, [wd5ca] - and a - ret nz - ld a, [wd613] - and a - ret z - xor a - ld [wd613], a - call FillBottomMessageBufferWithBlackTile - call Func_30db - ld hl, wd5cc - ld de, BonusMultiplierText - call LoadTextHeader - ld hl, wBottomMessageText + $12 - ld a, [wd614] - and $7f - jr z, .asm_16f1f - add $30 - ld [hli], a -.asm_16f1f - ld a, [wd615] - res 7, a - add $30 - ld [hl], a - ret - -Func_16f28: ; 0x16f28 - push af - ld a, [hGameBoyColorFlag] - and a - jr nz, .asm_16f33 - pop af - call Func_16f38 - ret - -.asm_16f33 - pop af - call Func_16f7b - ret - -Func_16f38: ; 0x16f38 - push af - res 7, a - ld hl, wd60e - cp $14 - jr c, .asm_16f47 - ld hl, wd60f - sub $a -.asm_16f47 - cp [hl] - jr z, .asm_16f5c - ld [hl], a - ld c, a - ld b, $0 - sla c - ld hl, TileDataPointers_16fc8 - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - ld a, Bank(TileDataPointers_16fc8) - call Func_10aa -.asm_16f5c - pop af - ld bc, $0000 - bit 7, a - jr z, .asm_16f68 - res 7, a - set 1, c -.asm_16f68 - cp $14 - jr c, .asm_16f6e - set 2, c -.asm_16f6e - ld hl, Data_171e4 - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - ld a, Bank(Data_171e4) - call Func_10aa - ret - -Func_16f7b: ; 0x16f7b - bit 7, a - jr z, .asm_16f83 - res 7, a - add $a -.asm_16f83 - ld c, a - ld b, $0 - sla c - ld hl, TileDataPointers_17228 - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - ld a, Bank(TileDataPointers_17228) - call Func_10aa - ret - -Func_16f95: ; 0x16f95 - ld a, [wd482] - inc a - cp 100 - jr c, .asm_16f9f - ld a, 99 -.asm_16f9f - ld b, a - xor a - ld hl, Data_16fc1 - ld c, $7 -.asm_16fa6 - bit 0, b - jr z, .asm_16fac - add [hl] - daa -.asm_16fac - srl b - inc hl - dec c - jr nz, .asm_16fa6 - push af - swap a - and $f - ld [wd60c], a - pop af - and $f - ld [wd60d], a - ret - -Data_16fc1: -; BCD powers of 2 - db $01 - db $02 - db $04 - db $08 - db $16 - db $32 - db $64 - -TileDataPointers_16fc8: - dw TileData_16ff0 - dw TileData_16ff5 - dw TileData_16ffa - dw TileData_16fff - dw TileData_17004 - dw TileData_17009 - dw TileData_1700e - dw TileData_17013 - dw TileData_17018 - dw TileData_1701d - dw TileData_17022 - dw TileData_17027 - dw TileData_1702c - dw TileData_17031 - dw TileData_17036 - dw TileData_1703b - dw TileData_17040 - dw TileData_17045 - dw TileData_1704a - dw TileData_1704f - -TileData_16ff0: ; 0x16ff0 - db $02 - dw TileData_17054 - dw TileData_1705e - -TileData_16ff5: ; 0x16ff5 - db $02 - dw TileData_17068 - dw TileData_17072 - -TileData_16ffa: ; 0x16ffa - db $02 - dw TileData_1707c - dw TileData_17086 - -TileData_16fff: ; 0x16fff - db $02 - dw TileData_17090 - dw TileData_1709a - -TileData_17004: ; 0x17004 - db $02 - dw TileData_170a4 - dw TileData_170ae - -TileData_17009: ; 0x17009 - db $02 - dw TileData_170b8 - dw TileData_170c2 - -TileData_1700e: ; 0x1700e - db $02 - dw TileData_170cc - dw TileData_170d6 - -TileData_17013: ; 0x17013 - db $02 - dw TileData_170e0 - dw TileData_170ea - -TileData_17018: ; 0x17018 - db $02 - dw TileData_170f4 - dw TileData_170fe - -TileData_1701d: ; 0x1701d - db $02 - dw TileData_17108 - dw TileData_17112 - -TileData_17022: ; 0x17022 - db $02 - dw TileData_1711c - dw TileData_17126 - -TileData_17027: ; 0x17027 - db $02 - dw TileData_17130 - dw TileData_1713a - -TileData_1702c: ; 0x1702c - db $02 - dw TileData_17144 - dw TileData_1714e - -TileData_17031: ; 0x17031 - db $02 - dw TileData_17158 - dw TileData_17162 - -TileData_17036: ; 0x17036 - db $02 - dw TileData_1716c - dw TileData_17176 - -TileData_1703b: ; 0x1703b - db $02 - dw TileData_17180 - dw TileData_1718a - -TileData_17040: ; 0x17040 - db $02 - dw TileData_17194 - dw TileData_1719e - -TileData_17045: ; 0x17045 - db $02 - dw TileData_171a8 - dw TileData_171b2 - -TileData_1704a: ; 0x1704a - db $02 - dw TileData_171bc - dw TileData_171c6 - -TileData_1704f: ; 0x1704f - db $02 - dw TileData_171d0 - dw TileData_171da - -TileData_17054: ; 0x17054 - dw Func_11d2 - db $20, $02 - dw vTilesSH tile $46 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1280 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileData_1705e: ; 0x1705e - dw Func_11d2 - db $20, $02 - dw vTilesSH tile $48 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1140 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileData_17068: ; 0x17068 - dw Func_11d2 - db $20, $02 - dw vTilesSH tile $46 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $12A0 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileData_17072: ; 0x17072 - dw Func_11d2 - db $20, $02 - dw vTilesSH tile $48 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1160 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileData_1707c: ; 0x1707c - dw Func_11d2 - db $20, $02 - dw vTilesSH tile $46 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $12C0 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileData_17086: ; 0x17086 - dw Func_11d2 - db $20, $02 - dw vTilesSH tile $48 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1180 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileData_17090: ; 0x17090 - dw Func_11d2 - db $20, $02 - dw vTilesSH tile $46 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $12E0 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileData_1709a: ; 0x1709a - dw Func_11d2 - db $20, $02 - dw vTilesSH tile $48 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $11A0 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileData_170a4: ; 0x170a4 - dw Func_11d2 - db $20, $02 - dw vTilesSH tile $46 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1300 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileData_170ae: ; 0x170ae - dw Func_11d2 - db $20, $02 - dw vTilesSH tile $48 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $11C0 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileData_170b8: ; 0x170b8 - dw Func_11d2 - db $20, $02 - dw vTilesSH tile $46 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1320 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileData_170c2: ; 0x170c2 - dw Func_11d2 - db $20, $02 - dw vTilesSH tile $48 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $11E0 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileData_170cc: ; 0x170cc - dw Func_11d2 - db $20, $02 - dw vTilesSH tile $46 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1340 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileData_170d6: ; 0x170d6 - dw Func_11d2 - db $20, $02 - dw vTilesSH tile $48 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1200 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileData_170e0: ; 0x170e0 - dw Func_11d2 - db $20, $02 - dw vTilesSH tile $46 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1360 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileData_170ea: ; 0x170ea - dw Func_11d2 - db $20, $02 - dw vTilesSH tile $48 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1220 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileData_170f4: ; 0x170f4 - dw Func_11d2 - db $20, $02 - dw vTilesSH tile $46 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1380 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileData_170fe: ; 0x170fe - dw Func_11d2 - db $20, $02 - dw vTilesSH tile $48 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1240 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileData_17108: ; 0x17108 - dw Func_11d2 - db $20, $02 - dw vTilesSH tile $46 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $13A0 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileData_17112: ; 0x17112 - dw Func_11d2 - db $20, $02 - dw vTilesSH tile $48 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1260 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileData_1711c: ; 0x1711c - dw Func_11d2 - db $20, $02 - dw vTilesSH tile $4a - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1500 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileData_17126: ; 0x17126 - dw Func_11d2 - db $20, $02 - dw vTilesSH tile $4c - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $13C0 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileData_17130: ; 0x17130 - dw Func_11d2 - db $20, $02 - dw vTilesSH tile $4a - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1520 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileData_1713a: ; 0x1713a - dw Func_11d2 - db $20, $02 - dw vTilesSH tile $4c - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $13E0 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileData_17144: ; 0x17144 - dw Func_11d2 - db $20, $02 - dw vTilesSH tile $4a - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1540 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileData_1714e: ; 0x1714e - dw Func_11d2 - db $20, $02 - dw vTilesSH tile $4c - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1400 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileData_17158: ; 0x17158 - dw Func_11d2 - db $20, $02 - dw vTilesSH tile $4a - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1560 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileData_17162: ; 0x17162 - dw Func_11d2 - db $20, $02 - dw vTilesSH tile $4c - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1420 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileData_1716c: ; 0x1716c - dw Func_11d2 - db $20, $02 - dw vTilesSH tile $4a - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1580 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileData_17176: ; 0x17176 - dw Func_11d2 - db $20, $02 - dw vTilesSH tile $4c - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1440 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileData_17180: ; 0x17180 - dw Func_11d2 - db $20, $02 - dw vTilesSH tile $4a - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $15A0 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileData_1718a: ; 0x1718a - dw Func_11d2 - db $20, $02 - dw vTilesSH tile $4c - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1460 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileData_17194: ; 0x17194 - dw Func_11d2 - db $20, $02 - dw vTilesSH tile $4a - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $15C0 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileData_1719e: ; 0x1719e - dw Func_11d2 - db $20, $02 - dw vTilesSH tile $4c - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1480 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileData_171a8: ; 0x171a8 - dw Func_11d2 - db $20, $02 - dw vTilesSH tile $4a - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $15E0 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileData_171b2: ; 0x171b2 - dw Func_11d2 - db $20, $02 - dw vTilesSH tile $4c - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $14A0 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileData_171bc: ; 0x171bc - dw Func_11d2 - db $20, $02 - dw vTilesSH tile $4a - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1600 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileData_171c6: ; 0x171c6 - dw Func_11d2 - db $20, $02 - dw vTilesSH tile $4c - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $14C0 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileData_171d0: ; 0x171d0 - dw Func_11d2 - db $20, $02 - dw vTilesSH tile $4a - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1620 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileData_171da: ; 0x171da - dw Func_11d2 - db $20, $02 - dw vTilesSH tile $4c - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $14E0 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -Data_171e4: - dw Data_171ec - dw Data_171ef - dw Data_171f2 - dw Data_171f5 - -Data_171ec: ; 0x171ec - db $01 - dw Data_171f8 - -Data_171ef: ; 0x171ef - db $01 - dw Data_17204 - -Data_171f2: ; 0x171f2 - db $01 - dw Data_17210 - -Data_171f5: ; 0x171f5 - db $01 - dw Data_1721c - -Data_171f8: ; 0x171f8 - dw LoadTileLists - db $02 - - db $01 - dw vBGMap + $4 - db $C6 - - db $01 - dw vBGMap + $24 - db $C7 - - db $00 - -Data_17204: ; 0x17204 - dw LoadTileLists - db $02 - - db $01 - dw vBGMap + $4 - db $C8 - - db $01 - dw vBGMap + $24 - db $C9 - - db $00 - -Data_17210: ; 0x17210 - dw LoadTileLists - db $02 - - db $01 - dw vBGMap + $F - db $CA - - db $01 - dw vBGMap + $2F - db $CB - - db $00 - -Data_1721c: ; 0x1721c - dw LoadTileLists - db $02 - - db $01 - dw vBGMap + $F - db $CC - - db $01 - dw vBGMap + $2F - db $CD - - db $00 - -TileDataPointers_17228: - dw TileData_17278 - dw TileData_1727b - dw TileData_1727e - dw TileData_17281 - dw TileData_17284 - dw TileData_17287 - dw TileData_1728a - dw TileData_1728d - dw TileData_17290 - dw TileData_17293 - dw TileData_17296 - dw TileData_17299 - dw TileData_1729c - dw TileData_1729f - dw TileData_172a2 - dw TileData_172a5 - dw TileData_172a8 - dw TileData_172ab - dw TileData_172ae - dw TileData_172b1 - dw TileData_172b4 - dw TileData_172b7 - dw TileData_172ba - dw TileData_172bd - dw TileData_172c0 - dw TileData_172c3 - dw TileData_172c6 - dw TileData_172c9 - dw TileData_172cc - dw TileData_172cf - dw TileData_172d2 - dw TileData_172d5 - dw TileData_172d8 - dw TileData_172db - dw TileData_172de - dw TileData_172e1 - dw TileData_172e4 - dw TileData_172e7 - dw TileData_172ea - dw TileData_172ed - -TileData_17278: ; 0x17278 - db $01 - dw TileData_172f0 - -TileData_1727b: ; 0x1727b - db $01 - dw TileData_172fc - -TileData_1727e: ; 0x1727e - db $01 - dw TileData_17308 - -TileData_17281: ; 0x17281 - db $01 - dw TileData_17314 - -TileData_17284: ; 0x17284 - db $01 - dw TileData_17320 - -TileData_17287: ; 0x17287 - db $01 - dw TileData_1732c - -TileData_1728a: ; 0x1728a - db $01 - dw TileData_17338 - -TileData_1728d: ; 0x1728d - db $01 - dw TileData_17344 - -TileData_17290: ; 0x17290 - db $01 - dw TileData_17350 - -TileData_17293: ; 0x17293 - db $01 - dw TileData_1735c - -TileData_17296: ; 0x17296 - db $01 - dw TileData_17368 - -TileData_17299: ; 0x17299 - db $01 - dw TileData_17374 - -TileData_1729c: ; 0x1729c - db $01 - dw TileData_17380 - -TileData_1729f: ; 0x1729f - db $01 - dw TileData_1738c - -TileData_172a2: ; 0x172a2 - db $01 - dw TileData_17398 - -TileData_172a5: ; 0x172a5 - db $01 - dw TileData_173a4 - -TileData_172a8: ; 0x172a8 - db $01 - dw TileData_173b0 - -TileData_172ab: ; 0x172ab - db $01 - dw TileData_173bc - -TileData_172ae: ; 0x172ae - db $01 - dw TileData_173c8 - -TileData_172b1: ; 0x172b1 - db $01 - dw TileData_173d4 - -TileData_172b4: ; 0x172b4 - db $01 - dw TileData_173e0 - -TileData_172b7: ; 0x172b7 - db $01 - dw TileData_173ec - -TileData_172ba: ; 0x172ba - db $01 - dw TileData_173f8 - -TileData_172bd: ; 0x172bd - db $01 - dw TileData_17404 - -TileData_172c0: ; 0x172c0 - db $01 - dw TileData_17410 - -TileData_172c3: ; 0x172c3 - db $01 - dw TileData_1741c - -TileData_172c6: ; 0x172c6 - db $01 - dw TileData_17428 - -TileData_172c9: ; 0x172c9 - db $01 - dw TileData_17434 - -TileData_172cc: ; 0x172cc - db $01 - dw TileData_17440 - -TileData_172cf: ; 0x172cf - db $01 - dw TileData_1744c - -TileData_172d2: ; 0x172d2 - db $01 - dw TileData_17458 - -TileData_172d5: ; 0x172d5 - db $01 - dw TileData_17464 - -TileData_172d8: ; 0x172d8 - db $01 - dw TileData_17470 - -TileData_172db: ; 0x172db - db $01 - dw TileData_1747c - -TileData_172de: ; 0x172de - db $01 - dw TileData_17488 - -TileData_172e1: ; 0x172e1 - db $01 - dw TileData_17494 - -TileData_172e4: ; 0x172e4 - db $01 - dw TileData_174a0 - -TileData_172e7: ; 0x172e7 - db $01 - dw TileData_174ac - -TileData_172ea: ; 0x172ea - db $01 - dw TileData_174b8 - -TileData_172ed: ; 0x172ed - db $01 - dw TileData_174c4 - -TileData_172f0: ; 0x172f0 - dw LoadTileLists - db $02 - - db $01 - dw vBGMap + $4 - db $40 - - db $01 - dw vBGMap + $24 - db $41 - - db $00 - -TileData_172fc: ; 0x172fc - dw LoadTileLists - db $02 - - db $01 - dw vBGMap + $4 - db $42 - - db $01 - dw vBGMap + $24 - db $43 - - db $00 - -TileData_17308: ; 0x17308 - dw LoadTileLists - db $02 - - db $01 - dw vBGMap + $4 - db $44 - - db $01 - dw vBGMap + $24 - db $45 - - db $00 - -TileData_17314: ; 0x17314 - dw LoadTileLists - db $02 - - db $01 - dw vBGMap + $4 - db $46 - - db $01 - dw vBGMap + $24 - db $47 - - db $00 - -TileData_17320: ; 0x17320 - dw LoadTileLists - db $02 - - db $01 - dw vBGMap + $4 - db $48 - - db $01 - dw vBGMap + $24 - db $49 - - db $00 - -TileData_1732c: ; 0x1732c - dw LoadTileLists - db $02 - - db $01 - dw vBGMap + $4 - db $4A - - db $01 - dw vBGMap + $24 - db $4B - - db $00 - -TileData_17338: ; 0x17338 - dw LoadTileLists - db $02 - - db $01 - dw vBGMap + $4 - db $4C - - db $01 - dw vBGMap + $24 - db $4D - - db $00 - -TileData_17344: ; 0x17344 - dw LoadTileLists - db $02 - - db $01 - dw vBGMap + $4 - db $4E - - db $01 - dw vBGMap + $24 - db $4F - - db $00 - -TileData_17350: ; 0x17350 - dw LoadTileLists - db $02 - - db $01 - dw vBGMap + $4 - db $50 - - db $01 - dw vBGMap + $24 - db $51 - - db $00 - -TileData_1735c: ; 0x1735c - dw LoadTileLists - db $02 - - db $01 - dw vBGMap + $4 - db $52 - - db $01 - dw vBGMap + $24 - db $53 - - db $00 - -TileData_17368: ; 0x17368 - dw LoadTileLists - db $02 - - db $01 - dw vBGMap + $4 - db $2C - - db $01 - dw vBGMap + $24 - db $2D - - db $00 - -TileData_17374: ; 0x17374 - dw LoadTileLists - db $02 - - db $01 - dw vBGMap + $4 - db $2E - - db $01 - dw vBGMap + $24 - db $2F - - db $00 - -TileData_17380: ; 0x17380 - dw LoadTileLists - db $02 - - db $01 - dw vBGMap + $4 - db $30 - - db $01 - dw vBGMap + $24 - db $31 - - db $00 - -TileData_1738c: ; 0x1738c - dw LoadTileLists - db $02 - - db $01 - dw vBGMap + $4 - db $32 - - db $01 - dw vBGMap + $24 - db $33 - - db $00 - -TileData_17398: ; 0x17398 - dw LoadTileLists - db $02 - - db $01 - dw vBGMap + $4 - db $34 - - db $01 - dw vBGMap + $24 - db $35 - - db $00 - -TileData_173a4: ; 0x173a4 - dw LoadTileLists - db $02 - - db $01 - dw vBGMap + $4 - db $36 - - db $01 - dw vBGMap + $24 - db $37 - - db $00 - -TileData_173b0: ; 0x173b0 - dw LoadTileLists - db $02 - - db $01 - dw vBGMap + $4 - db $38 - - db $01 - dw vBGMap + $24 - db $39 - - db $00 - -TileData_173bc: ; 0x173bc - dw LoadTileLists - db $02 - - db $01 - dw vBGMap + $4 - db $3A - - db $01 - dw vBGMap + $24 - db $3B - - db $00 - -TileData_173c8: ; 0x173c8 - dw LoadTileLists - db $02 - - db $01 - dw vBGMap + $4 - db $3C - - db $01 - dw vBGMap + $24 - db $3D - - db $00 - -TileData_173d4: ; 0x173d4 - dw LoadTileLists - db $02 - - db $01 - dw vBGMap + $4 - db $3E - - db $01 - dw vBGMap + $24 - db $3F - - db $00 - -TileData_173e0: ; 0x173e0 - dw LoadTileLists - db $02 - - db $01 - dw vBGMap + $F - db $68 - - db $01 - dw vBGMap + $2F - db $69 - - db $00 - -TileData_173ec: ; 0x173ec - dw LoadTileLists - db $02 - - db $01 - dw vBGMap + $F - db $6A - - db $01 - dw vBGMap + $2F - db $6B - - db $00 - -TileData_173f8: ; 0x173f8 - dw LoadTileLists - db $02 - - db $01 - dw vBGMap + $F - db $6C - - db $01 - dw vBGMap + $2F - db $6D - - db $00 - -TileData_17404: ; 0x17404 - dw LoadTileLists - db $02 - - db $01 - dw vBGMap + $F - db $6E - - db $01 - dw vBGMap + $2F - db $6F - - db $00 - -TileData_17410: ; 0x17410 - dw LoadTileLists - db $02 - - db $01 - dw vBGMap + $F - db $70 - - db $01 - dw vBGMap + $2F - db $71 - - db $00 - -TileData_1741c: ; 0x1741c - dw LoadTileLists - db $02 - - db $01 - dw vBGMap + $F - db $72 - - db $01 - dw vBGMap + $2F - db $73 - - db $00 - -TileData_17428: ; 0x17428 - dw LoadTileLists - db $02 - - db $01 - dw vBGMap + $F - db $74 - - db $01 - dw vBGMap + $2F - db $75 - - db $00 - -TileData_17434: ; 0x17434 - dw LoadTileLists - db $02 - - db $01 - dw vBGMap + $F - db $76 - - db $01 - dw vBGMap + $2F - db $77 - - db $00 - -TileData_17440: ; 0x17440 - dw LoadTileLists - db $02 - - db $01 - dw vBGMap + $F - db $78 - - db $01 - dw vBGMap + $2F - db $79 - - db $00 - -TileData_1744c: ; 0x1744c - dw LoadTileLists - db $02 - - db $01 - dw vBGMap + $F - db $7A - - db $01 - dw vBGMap + $2F - db $7B - - db $00 - -TileData_17458: ; 0x17458 - dw LoadTileLists - db $02 - - db $01 - dw vBGMap + $F - db $54 - - db $01 - dw vBGMap + $2F - db $55 - - db $00 - -TileData_17464: ; 0x17464 - dw LoadTileLists - db $02 - - db $01 - dw vBGMap + $F - db $56 - - db $01 - dw vBGMap + $2F - db $57 - - db $00 - -TileData_17470: ; 0x17470 - dw LoadTileLists - db $02 - - db $01 - dw vBGMap + $F - db $58 - - db $01 - dw vBGMap + $2F - db $59 - - db $00 - -TileData_1747c: ; 0x1747c - dw LoadTileLists - db $02 - - db $01 - dw vBGMap + $F - db $5A - - db $01 - dw vBGMap + $2F - db $5B - - db $00 - -TileData_17488: ; 0x17488 - dw LoadTileLists - db $02 - - db $01 - dw vBGMap + $F - db $5C - - db $01 - dw vBGMap + $2F - db $5D - - db $00 - -TileData_17494: ; 0x17494 - dw LoadTileLists - db $02 - - db $01 - dw vBGMap + $F - db $5E - - db $01 - dw vBGMap + $2F - db $5F - - db $00 - -TileData_174a0: ; 0x174a0 - dw LoadTileLists - db $02 - - db $01 - dw vBGMap + $F - db $60 - - db $01 - dw vBGMap + $2F - db $61 - - db $00 - -TileData_174ac: ; 0x174ac - dw LoadTileLists - db $02 - - db $01 - dw vBGMap + $F - db $62 - - db $01 - dw vBGMap + $2F - db $63 - - db $00 - -TileData_174b8: ; 0x174b8 - dw LoadTileLists - db $02 - - db $01 - dw vBGMap + $F - db $64 - - db $01 - dw vBGMap + $2F - db $65 - - db $00 - -TileData_174c4: ; 0x174c4 - dw LoadTileLists - db $02 - - db $01 - dw vBGMap + $F - db $66 - - db $01 - dw vBGMap + $2F - db $67 - - db $00 - -Func_174d0: ; 0x174d0 - call Func_174ea - ret nc - ; fall through - -Func_174d4: ; 0x174d4 - sla a - ld c, a - ld b, $0 - ld hl, TileDataPointers_17528 - add hl, bc - ld a, [hli] - ld c, a - ld a, [hli] - ld b, a - ld a, $5 - ld de, LoadTileLists - call Func_10c5 - ret - -Func_174ea: ; 0x174ea - ld a, [wd624] - ld hl, wd625 - cp [hl] - ret z - ld a, [wd626] - dec a - ld [wd626], a - jr nz, .asm_17514 - ld a, [wd625] - ld [wd624], a - cp $3 - jr c, .asm_1750f - ld a, $1 - ld [wd609], a - ld a, $3 - ld [wd607], a -.asm_1750f - ld a, [wd624] - scf - ret - -.asm_17514 - and $7 - ret nz - ld a, [wd626] - bit 3, a - jr nz, .asm_17523 - ld a, [wd624] - scf - ret - -.asm_17523 - ld a, [wd625] - 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 "engine/pinball_game/object_collision/red_stage_resolve_collision.asm" INCLUDE "engine/pinball_game/draw_sprites/draw_red_field_sprites.asm" SECTION "bank6", ROMX, BANK[$6] @@ -10143,1452 +1414,7 @@ INCLUDE "engine/pinball_game/stage_init/init_gengar_bonus.asm" INCLUDE "engine/pinball_game/ball_init/ball_init_gengar_bonus.asm" INCLUDE "engine/pinball_game/load_stage_data/load_gengar_bonus.asm" INCLUDE "engine/pinball_game/object_collision/gengar_bonus_object_collision.asm" - -Func_18377: ; 0x18377 - call Func_18464 - call Func_1860b - call Func_187b1 - call Func_18d34 - call Func_183b7 - callba Func_107f8 - ld a, [wd57e] - and a - ret z - xor a - ld [wd57e], a - ld a, $1 - ld [wd7be], a - call Func_2862 - callba StopTimer - ld a, [wd6a2] - cp $5 - ret nc - ld a, $1 - ld [wd6a8], a - ret - -Func_183b7: ; 0x183b7 - ld a, [wd653] - and a - ret nz - ld a, [wd4b4] - cp $8a - ret nc - ld a, $1 - ld [wStageCollisionState], a - ld [wd653], a - callba LoadStageCollisionAttributes - call Func_183db - call Func_18d91 - ret - -Func_183db: ; 0x183db - ld a, [wStageCollisionState] - sla a - ld c, a - ld b, $0 - ld hl, TileDataPointers_183f8 - ld a, [hGameBoyColorFlag] - and a - jr z, .asm_183ee - ld hl, TileDataPointers_1842e -.asm_183ee - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - ld a, BANK(TileDataPointers_183f8) - call Func_10aa - ret - -TileDataPointers_183f8: - dw TileData_183fc - dw TileData_183ff - -TileData_183fc: ; 0x183fc - db $01 - dw TileData_18402 - -TileData_183ff: ; 0x183ff - db $01 - dw TileData_18418 - -TileData_18402: ; 0x18402 - dw LoadTileLists - db $06 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $113 - db $D4 - - db $02 ; number of tiles - dw vBGMap + $132 - db $D5, $D6 - - db $02 ; number of tiles - dw vBGMap + $152 - db $D9, $D7 - - db $01 ; number of tiles - dw vBGMap + $172 - db $D8 - - db $00 ; terminator - -TileData_18418: ; 0x18418 - dw LoadTileLists - db $06 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $113 - db $12 - - db $02 ; number of tiles - dw vBGMap + $132 - db $0C, $0D - - db $02 ; number of tiles - dw vBGMap + $152 - db $07, $08 - - db $01 ; number of tiles - dw vBGMap + $172 - db $03 - - db $00 ; terminator - -TileDataPointers_1842e: - dw TileData_18432 - dw TileData_18435 - -TileData_18432: ; 0x18432 - db $01 - dw TileData_18438 - -TileData_18435: ; 0x18435 - db $01 - dw TileData_1844e - -TileData_18438: ; 0x18438 - dw LoadTileLists - db $06 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $113 - db $D4 - - db $02 ; number of tiles - dw vBGMap + $132 - db $D5, $D6 - - db $02 ; number of tiles - dw vBGMap + $152 - db $D9, $D7 - - db $01 ; number of tiles - dw vBGMap + $172 - db $D8 - - db $00 ; terminator - -TileData_1844e: ; 0x1844e - dw LoadTileLists - db $06 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $113 - db $21 - - db $02 ; number of tiles - dw vBGMap + $132 - db $15, $16 - - db $02 ; number of tiles - dw vBGMap + $152 - db $0A, $0B - - db $01 ; number of tiles - dw vBGMap + $172 - db $03 - - db $00 ; terminator - -Func_18464: ; 0x18464 - ld a, [wd659] - and a - ret z - ld a, [wd657] - and a - jr z, .asm_184d5 - xor a - ld [wd657], a - ld a, [wd7be] - and a - jr nz, .asm_184d5 - ld a, [wd658] - sub $5 - ld c, a - sla a - sla a - sla a - add c - ld c, a - ld b, $0 - ld hl, wd65d - add hl, bc - ld d, h - ld e, l - ld a, [de] - and a - jr nz, .asm_184d5 - push de - dec de - dec de - dec de - ld hl, AnimationData_185e6 - call CopyHLToDE - pop de - ld a, $1 - ld [de], a - ld a, [wd67b] - inc a - ld [wd67b], a - ld bc, OneHundredThousandPoints - callba AddBigBCD6FromQueue - ld a, $33 - ld [wd803], a - ld a, $8 - ld [wd804], a - ld hl, $0100 - ld a, l - ld [wFlipperYForce], a - ld a, h - ld [wFlipperYForce + 1], a - ld a, $80 - ld [wFlipperCollision], a - lb de, $00, $2c - call PlaySoundEffect -.asm_184d5 - ld bc, $0830 - ld de, wd65d - ld hl, wd675 - call Func_1850c - ld bc, $5078 - ld de, wd666 - ld hl, wd677 - call Func_1850c - ld bc, $3050 - ld de, wd66f - ld hl, wd679 - call Func_1850c - ld de, wd65d - call Func_18562 - ld de, wd666 - call Func_18562 - ld de, wd66f - call Func_18562 - ret - -Func_1850c: ; 0x1850c - ld a, [de] - and a - ret nz - inc de - push hl - ld a, [hli] - push af - push bc - ld a, [hl] - inc a - and $1f - ld [hl], a - ld c, a - ld b, $0 - ld hl, GastlyData_18542 - add hl, bc - pop bc - pop af - and a - jr nz, .asm_18534 - ld a, [de] - add [hl] - ld [de], a - inc de - ld a, [de] - adc $0 - ld [de], a - pop hl - cp c - ret c - ld a, $1 - ld [hl], a - ret - -.asm_18534 - ld a, [de] - sub [hl] - ld [de], a - inc de - ld a, [de] - sbc $0 - ld [de], a - pop hl - cp b - ret nc - xor a - ld [hl], a - ret - -GastlyData_18542: ; 0x18542 -; Might be floating y offsets, not sure at the moment. - db $31, $32, $33, $34, $35, $36, $37, $36 - db $35, $34, $33, $32, $33, $34, $35, $36 - db $37, $38, $39, $3A, $3B, $3A, $39, $38 - db $37, $36, $35, $34, $33, $32, $31, $30 - -Func_18562: ; 0x18562 - ld a, [de] - sla a - ld c, a - ld b, $0 - ld hl, AnimationDataPointers_185d9 - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - push de - dec de - dec de - dec de - call UpdateAnimation - pop de - ret nc - ld a, [de] - dec de - and a - jr nz, .asm_1858a - ld a, [de] - cp $4 - ret nz - ld hl, AnimationData_185dd - dec de - dec de - call CopyHLToDE - ret - -.asm_1858a - cp $1 - ret nz - ld a, [de] - cp $12 - ret nz - ld a, [wd67b] - cp $a - jr nz, .asm_185b1 - ld a, $1 - ld [wd67e], a - ld [wd687], a - xor a - ld [wd659], a - ld [wd662], a - ld [wd66b], a - ld de, $0006 - call PlaySong - ret - -.asm_185b1 - ld c, a - ld a, [wd65d] - and a - jr nz, .asm_185b9 - inc c -.asm_185b9 - ld a, [wd666] - and a - jr nz, .asm_185c0 - inc c -.asm_185c0 - ld a, [wd66f] - and a - jr nz, .asm_185c7 - inc c -.asm_185c7 - ld a, c - cp $a - ret nc - ld hl, AnimationData_185dd - push de - dec de - dec de - call CopyHLToDE - pop de - inc de - xor a - ld [de], a - ret - -AnimationDataPointers_185d9: - dw AnimationData_185dd - dw AnimationData_185e6 - -AnimationData_185dd: ; 0x185dd -; Each entry is [duration][OAM id] - db $0D, $01 - db $0D, $00 - db $0D, $02 - db $0D, $00 - db $00 ; terminator - -AnimationData_185e6: ; 0x185e6 -; Each entry is [duration][OAM id] - db $05, $03 - db $04, $03 - db $04, $04 - db $04, $03 - db $04, $04 - db $03, $03 - db $03, $04 - db $03, $03 - db $03, $04 - db $02, $03 - db $02, $04 - db $02, $03 - db $02, $04 - db $01, $03 - db $01, $04 - db $01, $03 - db $01, $04 - db $80, $04 - db $00 ; terminator - -Func_1860b: ; 0x1860b - ld a, [wd67e] - and a - ret z - ld a, [wd67c] - and a - jr z, .asm_1867c - xor a - ld [wd67c], a - ld a, [wd7be] - and a - jr nz, .asm_1867c - ld a, [wd67d] - sub $8 - ld c, a - sla a - sla a - sla a - add c - ld c, a - ld b, $0 - ld hl, wd682 - add hl, bc - ld d, h - ld e, l - ld a, [de] - and a - jr nz, .asm_1867c - push de - dec de - dec de - dec de - ld hl, AnimationData_1878a - call CopyHLToDE - pop de - ld a, $1 - ld [de], a - ld a, [wd695] - inc a - ld [wd695], a - ld bc, FiveHundredThousandPoints - callba AddBigBCD6FromQueue - ld a, $33 - ld [wd803], a - ld a, $8 - ld [wd804], a - ld hl, $0100 - ld a, l - ld [wFlipperYForce], a - ld a, h - ld [wFlipperYForce + 1], a - ld a, $80 - ld [wFlipperCollision], a - lb de, $00, $2d - call PlaySoundEffect -.asm_1867c - ld bc, $5078 - ld de, wd682 - ld hl, wd691 - call Func_186a1 - ld bc, $1038 - ld de, wd68b - ld hl, wd693 - call Func_186a1 - ld de, wd682 - call Func_186f7 - ld de, wd68b - call Func_186f7 - ret - -Func_186a1: ; 0x186a1 - ld a, [de] - and a - ret nz - inc de - push hl - ld a, [hli] - push af - push bc - ld a, [hl] - inc a - and $1f - ld [hl], a - ld c, a - ld b, $0 - ld hl, HaunterData_186d7 - add hl, bc - pop bc - pop af - and a - jr nz, .asm_186c9 - ld a, [de] - add [hl] - ld [de], a - inc de - ld a, [de] - adc $0 - ld [de], a - pop hl - cp c - ret c - ld a, $1 - ld [hl], a - ret - -.asm_186c9 - ld a, [de] - sub [hl] - ld [de], a - inc de - ld a, [de] - sbc $0 - ld [de], a - pop hl - cp b - ret nc - xor a - ld [hl], a - ret - -HaunterData_186d7: -; Might be floating y offsets, not sure at the moment. - db $31, $32, $33, $34, $35, $36, $37, $36 - db $35, $34, $33, $32, $33, $34, $35, $36 - db $37, $38, $39, $3A, $3B, $3A, $39, $38 - db $37, $36, $35, $34, $33, $32, $31, $30 - -Func_186f7: ; 0x186f7 - ld a, [de] - sla a - ld c, a - ld b, $0 - ld hl, AnimationDataPointers_1877d - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - push de - dec de - dec de - dec de - call UpdateAnimation - pop de - ret nc - ld a, [de] - dec de - and a - jr nz, .asm_1871f - ld a, [de] - cp $4 - ret nz - ld hl, AnimationData_18781 - dec de - dec de - call CopyHLToDE - ret - -.asm_1871f - cp $1 - ret nz - ld a, [de] - cp $12 - jr nz, .asm_18761 - ld a, [wd695] - cp $a - jr nz, .asm_18740 - ld a, $1 - ld [wd656], a - call Func_18d72 - call Func_18d91 - ld de, $0000 - call PlaySong - ret - -.asm_18740 - ld c, a - ld a, [wd682] - and a - jr nz, .asm_18748 - inc c -.asm_18748 - ld a, [wd68b] - and a - jr nz, .asm_1874f - inc c -.asm_1874f - ld a, c - cp $a - ret nc - ld hl, AnimationData_18781 - push de - dec de - dec de - call CopyHLToDE - pop de - inc de - xor a - ld [de], a - ret - -.asm_18761 - cp $13 - ret nz - ld a, [wd695] - cp $a - ret nz - ld a, $1 - ld [wd698], a - xor a - ld [wd67e], a - ld [wd687], a - ld de, GENGAR - call PlayCry - ret - -AnimationDataPointers_1877d: - dw AnimationData_18781 - dw AnimationData_1878a - -AnimationData_18781: -; Each entry is [duration][OAM id] - db $0D, $00 - db $0D, $01 - db $0D, $02 - db $0D, $03 - db $00 ; terminator - -AnimationData_1878a: -; Each entry is [duration][OAM id] - db $05, $04 - db $04, $04 - db $04, $05 - db $04, $04 - db $04, $05 - db $03, $04 - db $03, $05 - db $03, $04 - db $03, $05 - db $02, $04 - db $02, $05 - db $02, $04 - db $02, $05 - db $01, $04 - db $01, $05 - db $01, $04 - db $01, $05 - db $80, $05 - db $10, $05 - db $00 ; terminator - -Func_187b1: ; 0x187b1 - ld a, [wd698] - and a - ret z - ld a, [wd696] - and a - jp z, .asm_1885d - xor a - ld [wd696], a - ld a, [wd7be] - and a - jp nz, .asm_1885d - ld a, [wd697] - sub $a - ld c, a - sla a - sla a - sla a - add c - ld c, a - ld b, $0 - ld hl, wd69c - add hl, bc - ld d, h - ld e, l - ld a, [de] - and a - jp nz, .asm_1885d - push de - dec de - dec de - dec de - ld a, [wd6a2] - inc a - ld [wd6a2], a - cp $5 - jr nc, .asm_18804 - ld hl, AnimationData_18b2b - call CopyHLToDE - pop de - ld a, $2 - ld [de], a - lb de, $00, $37 - call PlaySoundEffect - jr .asm_18826 - -.asm_18804 - ld hl, AnimationData_18b32 - call CopyHLToDE - pop de - ld a, $3 - ld [de], a - ld a, $1 - ld [wd7be], a - call Func_2862 - callba StopTimer - ld de, $0000 - call PlaySong -.asm_18826 - ld bc, FiveMillionPoints - callba AddBigBCD6FromQueue - ld a, $33 - ld [wd803], a - ld a, $8 - ld [wd804], a - ld hl, $0200 - ld a, l - ld [wFlipperYForce], a - ld a, h - ld [wFlipperYForce + 1], a - ld a, $80 - ld [wFlipperCollision], a - ld a, [wGengarYPos] - add $0 - ld [wGengarYPos], a - ld a, [wGengarYPos + 1] - adc $ff - ld [wGengarYPos + 1], a -.asm_1885d - ld a, [wd69c] - cp $2 - jr nc, .asm_18869 - call Func_18876 - jr .asm_1886c - -.asm_18869 - call Func_188e1 -.asm_1886c - ld de, wd69c - call Func_189af - call Func_1894c - ret - -Func_18876: ; 0x18876 - ld a, [wd6a3] - cp $1 - jr z, .asm_1889b - cp $2 - jr z, .asm_1889b - ld a, [wGengarAnimationState] - cp $1 - jr z, .asm_1888c - cp $2 - jr nz, .asm_1889b -.asm_1888c - ld a, $1 - ld [wd6a4], a - ld a, $11 - ld [wd803], a - ld a, $8 - ld [wd804], a -.asm_1889b - ld a, [wGengarAnimationState] - ld hl, wd6a3 - cp [hl] - ret z - ld a, [wd69c] - and a - jr nz, .asm_188da - ld a, [wGengarYPos + 1] - add $80 - cp $a0 - jr nc, .asm_188da - ld a, [wGengarAnimationState] - and a - jr z, .asm_188ca - ld a, [wGengarYPos] - add $0 - ld [wGengarYPos], a - ld a, [wGengarYPos + 1] - adc $3 - ld [wGengarYPos + 1], a - jr .asm_188da - -.asm_188ca - ld a, [wGengarYPos] - add $0 - ld [wGengarYPos], a - ld a, [wGengarYPos + 1] - adc $1 - ld [wGengarYPos + 1], a -.asm_188da - ld a, [wGengarAnimationState] - ld [wd6a3], a - ret - -Func_188e1: ; 0x188e1 - ld a, [wd6a3] - cp $1 - jr z, .asm_18901 - cp $2 - jr z, .asm_18901 - ld a, [wGengarAnimationState] - cp $1 - jr z, .asm_188f7 - cp $2 - jr nz, .asm_18901 -.asm_188f7 - ld a, $1 - ld [wd803], a - ld a, $8 - ld [wd804], a -.asm_18901 - ld a, [wGengarAnimationState] - cp $6 - ret z - ld a, [wGengarAnimationState] - ld hl, wd6a3 - cp [hl] - ret z - ld a, [wd69c] - cp $3 - jr nz, .asm_1891d - ld a, [wd69b] - cp $9 - jr c, .asm_18945 -.asm_1891d - ld a, [wGengarAnimationState] - and a - jr z, .asm_18935 - ld a, [wGengarYPos] - add $0 - ld [wGengarYPos], a - ld a, [wGengarYPos + 1] - adc $fd - ld [wGengarYPos + 1], a - jr .asm_18945 - -.asm_18935 - ld a, [wGengarYPos] - add $0 - ld [wGengarYPos], a - ld a, [wGengarYPos + 1] - adc $ff - ld [wGengarYPos + 1], a -.asm_18945 - ld a, [wGengarAnimationState] - ld [wd6a3], a - ret - -Func_1894c: ; 0x1894c - ld a, [wd6a6] - and a - jr nz, .asm_1898f - ld a, [wd6a4] - and a - jr z, .asm_1898f - ld a, [wd6a5] - cp $3 - jr z, .asm_18980 - inc a - ld [wd6a5], a - ld a, [wd548] - ld hl, wd549 - and [hl] - jr z, .asm_18973 - ld a, [wd4b6] - inc a - ld [wd4b6], a -.asm_18973 - ld a, [wd7a0] - dec a - ld [wd7a0], a - ld a, $1 - ld [wUpperTiltPushing], a - ret - -.asm_18980 - lb de, $00, $2b - call PlaySoundEffect - ld a, $1 - ld [wd6a6], a - xor a - ld [wd6a4], a -.asm_1898f - xor a - ld [wUpperTiltPushing], a - ld a, [wd6a5] - and a - jr z, .asm_189a5 - dec a - ld [wd6a5], a - ld a, [wd7a0] - inc a - ld [wd7a0], a - ret - -.asm_189a5 - ld a, [wd6a4] - and a - ret nz - xor a - ld [wd6a6], a - ret - -Func_189af: ; 0x189af - ld a, [de] - sla a - ld c, a - ld b, $0 - ld hl, AnimationDataPointers_18a57 - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - push de - dec de - dec de - dec de - call UpdateAnimation - pop de - ret nc - ld a, [de] - dec de - and a - jr nz, .asm_189d7 - ld a, [de] - cp $4 - ret nz - ld hl, AnimationData_18a61 - dec de - dec de - call CopyHLToDE - ret - -.asm_189d7 - cp $1 - jr nz, .asm_189ed - ld a, [de] - cp $60 - ret nz - ld hl, AnimationData_18a61 - push de - dec de - dec de - call CopyHLToDE - pop de - inc de - xor a - ld [de], a - ret - -.asm_189ed - cp $2 - jr nz, .asm_18a04 - ld a, [de] - cp $3 - ret nz - ld hl, AnimationData_18a6a - push de - dec de - dec de - call CopyHLToDE - pop de - inc de - ld a, $1 - ld [de], a - ret - -.asm_18a04 - cp $3 - jr nz, .asm_18a3c - ld a, [de] - cp $1 - jr nz, .asm_18a14 - lb de, $00, $2e - call PlaySoundEffect - ret - -.asm_18a14 - cp $fe - ret nz - ld a, $1 - ld [wd6a8], a - ld a, $1 - ld [wd498], a - ld a, $1 - ld [wd49a], a - call FillBottomMessageBufferWithBlackTile - call Func_30db - ld hl, wd5dc - ld de, GengarStageClearedText - call LoadTextHeader - lb de, $4b, $2a - call PlaySoundEffect - ret - -.asm_18a3c - cp $4 - ret nz - ld a, [de] - cp $2 - ret nz - ld hl, AnimationData_18a61 - push de - dec de - dec de - call CopyHLToDE - pop de - inc de - xor a - ld [de], a - ld de, $0007 - call PlaySong - ret - -AnimationDataPointers_18a57: - dw AnimationData_18a61 - dw AnimationData_18a6a - dw AnimationData_18b2b - dw AnimationData_18b32 - dw AnimationData_18d2f - -AnimationData_18a61: -; Each entry is [duration][OAM id] - db $40, $01 - db $10, $00 - db $40, $02 - db $10, $00 - db $00 ; terminator - -AnimationData_18a6a: -; Each entry is [duration][OAM id] - db $02, $00 - db $01, $06 - db $02, $00 - db $01, $06 - db $02, $00 - db $01, $06 - db $02, $00 - db $01, $06 - db $02, $00 - db $01, $06 - db $01, $00 - db $01, $03 - db $01, $06 - db $02, $03 - db $01, $06 - db $02, $03 - db $01, $06 - db $02, $04 - db $01, $06 - db $02, $04 - db $01, $06 - db $02, $04 - db $01, $06 - db $02, $04 - db $01, $06 - db $02, $03 - db $01, $06 - db $02, $03 - db $01, $06 - db $02, $03 - db $01, $06 - db $01, $03 - db $01, $00 - db $01, $06 - db $02, $00 - db $01, $06 - db $02, $00 - db $01, $06 - db $02, $00 - db $01, $06 - db $02, $00 - db $01, $06 - db $02, $00 - db $01, $06 - db $02, $03 - db $01, $06 - db $02, $03 - db $01, $06 - db $01, $03 - db $01, $04 - db $01, $06 - db $02, $04 - db $01, $06 - db $02, $04 - db $01, $06 - db $02, $04 - db $01, $06 - db $01, $04 - db $01, $03 - db $01, $06 - db $02, $03 - db $01, $06 - db $02, $03 - db $01, $06 - db $02, $03 - db $01, $06 - db $02, $00 - db $01, $06 - db $02, $00 - db $01, $06 - db $02, $00 - db $01, $06 - db $02, $00 - db $01, $06 - db $02, $00 - db $01, $06 - db $02, $03 - db $01, $06 - db $02, $03 - db $01, $06 - db $02, $03 - db $01, $06 - db $02, $04 - db $01, $06 - db $02, $04 - db $01, $06 - db $02, $04 - db $01, $06 - db $02, $04 - db $01, $06 - db $02, $03 - db $01, $06 - db $02, $03 - db $01, $06 - db $02, $03 - db $01, $06 - db $00 ; terminator - -AnimationData_18b2b: -; Each entry is [duration][OAM id] - db $10, $05 - db $20, $01 - db $08, $00 - db $00 ; terminator - -AnimationData_18b32: -; Each entry is [duration][OAM id] - db $10, $05 - db $10, $00 - db $08, $03 - db $0C, $04 - db $0A, $03 - db $10, $00 - db $08, $03 - db $0C, $04 - db $0A, $03 - db $04, $01 - db $04, $06 - db $04, $01 - db $04, $06 - db $04, $01 - db $04, $06 - db $04, $01 - db $04, $06 - db $04, $01 - db $04, $06 - db $04, $01 - db $04, $06 - db $04, $01 - db $04, $06 - db $04, $01 - db $04, $06 - db $04, $00 - db $04, $06 - db $04, $00 - db $04, $06 - db $04, $02 - db $04, $06 - db $04, $02 - db $04, $06 - db $04, $02 - db $04, $06 - db $04, $02 - db $04, $06 - db $04, $02 - db $04, $06 - db $04, $02 - db $04, $06 - db $04, $02 - db $04, $06 - db $04, $02 - db $04, $06 - db $04, $00 - db $04, $06 - db $04, $00 - db $04, $06 - db $04, $01 - db $04, $06 - db $04, $01 - db $04, $06 - db $04, $01 - db $04, $06 - db $04, $01 - db $04, $06 - db $04, $01 - db $04, $06 - db $04, $01 - db $04, $06 - db $04, $01 - db $04, $06 - db $04, $01 - db $04, $06 - db $04, $00 - db $04, $06 - db $04, $00 - db $04, $06 - db $04, $02 - db $04, $06 - db $04, $02 - db $04, $06 - db $03, $02 - db $03, $06 - db $03, $02 - db $03, $06 - db $03, $02 - db $03, $06 - db $03, $02 - db $03, $06 - db $03, $02 - db $03, $06 - db $03, $02 - db $03, $06 - db $03, $02 - db $03, $06 - db $03, $02 - db $03, $06 - db $03, $00 - db $03, $06 - db $03, $00 - db $03, $06 - db $03, $00 - db $03, $06 - db $03, $01 - db $03, $06 - db $03, $01 - db $03, $06 - db $03, $01 - db $03, $06 - db $03, $01 - db $03, $06 - db $03, $01 - db $03, $06 - db $03, $01 - db $03, $06 - db $03, $01 - db $03, $06 - db $03, $01 - db $03, $06 - db $03, $01 - db $03, $06 - db $03, $01 - db $03, $06 - db $02, $01 - db $01, $00 - db $03, $06 - db $03, $00 - db $03, $06 - db $03, $00 - db $03, $06 - db $03, $02 - db $03, $06 - db $03, $02 - db $03, $06 - db $03, $02 - db $03, $06 - db $03, $02 - db $03, $06 - db $03, $02 - db $03, $06 - db $03, $02 - db $03, $06 - db $03, $02 - db $03, $06 - db $03, $02 - db $03, $06 - db $02, $02 - db $02, $06 - db $02, $02 - db $02, $06 - db $02, $02 - db $02, $06 - db $02, $02 - db $02, $06 - db $02, $00 - db $02, $06 - db $02, $00 - db $02, $06 - db $02, $00 - db $02, $06 - db $02, $00 - db $02, $06 - db $02, $01 - db $02, $06 - db $02, $01 - db $02, $06 - db $02, $01 - db $02, $06 - db $02, $01 - db $02, $06 - db $02, $01 - db $02, $06 - db $02, $01 - db $02, $06 - db $02, $01 - db $02, $06 - db $02, $01 - db $02, $06 - db $02, $01 - db $02, $06 - db $02, $01 - db $02, $06 - db $02, $01 - db $02, $06 - db $02, $01 - db $02, $06 - db $02, $01 - db $02, $06 - db $02, $01 - db $02, $06 - db $02, $01 - db $02, $06 - db $02, $01 - db $02, $06 - db $02, $00 - db $02, $06 - db $02, $00 - db $02, $06 - db $02, $00 - db $02, $06 - db $02, $00 - db $02, $06 - db $02, $02 - db $02, $06 - db $02, $02 - db $02, $06 - db $02, $02 - db $02, $06 - db $02, $02 - db $02, $06 - db $01, $02 - db $01, $06 - db $01, $02 - db $01, $06 - db $01, $02 - db $01, $06 - db $01, $02 - db $01, $06 - db $01, $02 - db $01, $06 - db $01, $02 - db $01, $06 - db $01, $02 - db $01, $06 - db $01, $02 - db $01, $06 - db $01, $02 - db $01, $06 - db $01, $02 - db $01, $06 - db $01, $02 - db $01, $06 - db $01, $02 - db $01, $06 - db $01, $02 - db $01, $06 - db $01, $02 - db $01, $06 - db $01, $02 - db $01, $06 - db $01, $02 - db $01, $06 - db $01, $02 - db $01, $06 - db $01, $02 - db $01, $06 - db $01, $02 - db $01, $06 - db $01, $02 - db $01, $06 - db $01, $02 - db $01, $06 - db $01, $02 - db $01, $06 - db $01, $02 - db $01, $06 - db $01, $02 - db $01, $06 - db $01, $00 - db $01, $06 - db $01, $00 - db $01, $06 - db $00 ; terminator - -AnimationData_18d2f: -; Each entry is [duration][OAM id] - db $40, $00 - db $40, $00 - db $00 ; terminator - -Func_18d34: ; 0x18d34 - ld a, [wWhichGravestone] - and a - jr z, .asm_18d71 - xor a - ld [wWhichGravestone], a - ld a, [wd7be] - and a - jr nz, .asm_18d71 - ld bc, OneHundredPoints - callba AddBigBCD6FromQueue - ld a, $ff - ld [wd803], a - ld a, $3 - ld [wd804], a - ld hl, $0100 - ld a, l - ld [wFlipperYForce], a - ld a, h - ld [wFlipperYForce + 1], a - ld a, $80 - ld [wFlipperCollision], a - ld de, $002f - call Func_4d8 -.asm_18d71 - ret +INCLUDE "engine/pinball_game/object_collision/gengar_bonus_resolve_collision.asm" Func_18d72: ; 0x18d72 ld a, [wd656] @@ -12033,1548 +1859,13 @@ INCLUDE "engine/pinball_game/stage_init/init_mewtwo_bonus.asm" INCLUDE "engine/pinball_game/ball_init/ball_init_mewtwo_bonus.asm" INCLUDE "engine/pinball_game/load_stage_data/load_mewtwo_bonus.asm" INCLUDE "engine/pinball_game/object_collision/mewtwo_bonus_object_collision.asm" - -Func_19451: ; 0x19451 - call Func_19531 - call Func_19701 - call Func_1948b - callba Func_107f8 - ld a, [wd57e] - and a - ret z - xor a - ld [wd57e], a - ld a, $1 - ld [wd7be], a - call Func_2862 - callba StopTimer - ld a, [wd6b1] - cp $8 - ret nc - ld a, $1 - ld [wd6b3], a - ret - -Func_1948b: ; 0x1948b - ld a, [wd6a9] - and a - ret nz - ld a, [wd4b4] - cp $8a - ret nc - ld a, $1 - ld [wStageCollisionState], a - ld [wd6a9], a - callba LoadStageCollisionAttributes - call Func_194ac - ret - -Func_194ac: ; 0x194ac - ld a, [wStageCollisionState] - sla a - ld c, a - ld b, $0 - ld hl, Data_194c9 - ld a, [hGameBoyColorFlag] - and a - jr z, .asm_194bf - ld hl, Data_194fd -.asm_194bf - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - ld a, Bank(Data_194c9) - call Func_10aa - ret - -Data_194c9: - dw Data_194cd - dw Data_194d0 - -Data_194cd: ; 0x194cd - db 1 - dw Data_194d3 - -Data_194d0: ; 0x194d0 - db 1 - dw Data_194e8 - -Data_194d3: ; 0x194d3 - dw LoadTileLists - db $05 ; total number of tiles to load - - db $01 ; number of tiles - dw vBGMap + $113 - db $45 - - db $01 ; number of tiles - dw vBGMap + $133 - db $80 - - db $02 ; number of tiles - dw vBGMap + $152 - db $80, $09 - - db $01 ; number of tiles - dw vBGMap + $172 - db $12 - - db $00 ; terminator - -Data_194e8: ; 0x194e8 - dw LoadTileLists - db $05 ; total number of tiles to load - - db $01 ; number of tiles - dw vBGMap + $113 - db $46 - - db $01 ; number of tiles - dw vBGMap + $133 - db $47 - - db $02 ; number of tiles - dw vBGMap + $152 - db $48, $49 - - db $01 ; number of tiles - dw vBGMap + $172 - db $4A - - db $00 ; terminator - -Data_194fd: - dw Data_19501 - dw Data_19504 - -Data_19501: ; 0x19501 - db 1 - dw Data_19507 - -Data_19504: ; 0x19504 - db 1 - dw Data_1951c - -Data_19507: ; 0x19507 - dw LoadTileLists - db $05 ; total number of tiles to load - - db $01 ; number of tiles - dw vBGMap + $113 - db $45 - - db $01 ; number of tiles - dw vBGMap + $133 - db $80 - - db $02 ; number of tiles - dw vBGMap + $152 - db $80, $09 - - db $01 ; number of tiles - dw vBGMap + $172 - db $12 - - db $00 ; terminator - -Data_1951c: ; 0x1951c - dw LoadTileLists - db $05 ; total number of tiles to load - - db $01 ; number of tiles - dw vBGMap + $113 - db $46 - - db $01 ; number of tiles - dw vBGMap + $133 - db $47 - - db $02 ; number of tiles - dw vBGMap + $152 - db $48, $49 - - db $01 ; number of tiles - dw vBGMap + $172 - db $4A - - db $00 ; terminator - -Func_19531: ; 0x19531 - ld a, [wd6aa] - and a - jr z, .asm_195a2 - xor a - ld [wd6aa], a - ld a, [wd7be] - and a - jr nz, .asm_195a2 - ld a, [wd6af] - cp $2 - jr nc, .asm_195a2 - ld bc, FiveMillionPoints - callba AddBigBCD6FromQueue - ld a, [wd6b0] - inc a - cp $3 - jr nz, .asm_19565 - ld a, [wd6b1] - inc a - ld [wd6b1], a - xor a -.asm_19565 - ld [wd6b0], a - call ResetOrbitingBalls - ld a, [wd6b1] - cp $8 - jr z, .asm_19582 - ld a, $2 - ld de, wd6ae - call Func_19679 - lb de, $00, $39 - call PlaySoundEffect - jr .asm_195a2 - -.asm_19582 - ld a, $3 - ld de, wd6ae - call Func_19679 - ld a, $1 - ld [wd7be], a - call Func_2862 - callba StopTimer - ld de, $0000 - call PlaySong -.asm_195a2 - call Func_195ac - ld de, wd6af - call Func_195f5 - ret - -Func_195ac: ; 0x195ac - ld a, [wd6af] - and a - ret nz - ld hl, wd6bd - ld de, $0008 - ld b, $6 -.asm_195b9 - ld a, [hl] - cp $2b - jr nz, .asm_195ce - dec hl - dec hl - dec hl - ld a, [hl] - cp $2 - ret nz - ld a, $1 - ld de, wd6ae - call Func_19679 - ret - -.asm_195ce - add hl, de - dec b - jr nz, .asm_195b9 - ret - -Func_195d3: ; 0x195d3 - ld hl, wd6bd - ld de, $0008 - ld b, $6 -.asm_195db - ld a, [hl] - cp $18 - jr nz, .asm_195f0 - dec hl - dec hl - dec hl - ld a, [hl] - cp $2 - ret nz - ld d, h - ld e, l - dec de - ld a, $1 - call Func_19876 - ret - -.asm_195f0 - add hl, de - dec b - jr nz, .asm_195db - ret - -Func_195f5: ; 0x195f5 - ld a, [de] - sla a - ld c, a - ld b, $0 - ld hl, Data_19691 - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - push de - dec de - dec de - dec de - call UpdateAnimation - pop de - ret nc - ld a, [de] - rst JumpTable ; calls JumpToFuncInTable -CallTable_1960d: ; 0x1960d - dw Func_19615 - dw Func_1961e - dw Func_1962f - dw Func_19638 - -Func_19615: ; 0x19615 - dec de - ld a, [de] - cp $4 - ret nz - xor a - jp Func_19679 - -Func_1961e: ; 0x1961e - dec de - ld a, [de] - cp $c - jr nz, .asm_19628 - call Func_195d3 - ret - -.asm_19628 - cp $d - ret nz - xor a - jp Func_19679 - -Func_1962f: ; 0x1962f - dec de - ld a, [de] - cp $1 - ret nz - xor a - jp Func_19679 - -Func_19638: ; 0x19638 - dec de - ld a, [de] - cp $1 - jr nz, .asm_19645 - lb de, $00, $40 - call PlaySoundEffect - ret - -.asm_19645 - cp $20 - ret nz - ld a, $1 - ld [wd6b3], a - ld a, [wd499] - ld [wd498], a - ld a, [wNumMewtwoBonusCompletions] - cp $2 ; only counts up to 2. Gets reset to 0 when Mew is encountered in Catch 'Em Mode. - jr z, .asm_1965e - inc a - ld [wNumMewtwoBonusCompletions], a -.asm_1965e - ld a, $1 - ld [wd49a], a - call FillBottomMessageBufferWithBlackTile - call Func_30db - ld hl, wd5dc -.asm_1966b - ld de, MewtwoStageClearedText - call LoadTextHeader - lb de, $4b, $2a - call PlaySoundEffect - ret - -Func_19679: ; 0x19679 - push af - sla a - ld c, a - ld b, $0 - ld hl, Data_19691 - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - push de - dec de - dec de - call CopyHLToDE - pop de - inc de - pop af - ld [de], a - ret - -Data_19691: - dw Data_19699 - dw Data_196a2 - dw Data_196bd - dw Data_196c0 - -Data_19699: ; 0x19699 - db $30, $00, $04, $05, $34, $04, $03, $05 - db $00 ; terminator - -Data_196a2: ; 0x196a2 - db $0A, $00, $06, $01, $05, $02, $05, $01, $04, $02, $04, $01, $04, $02, $03, $01 - db $03, $02, $03, $01, $03, $02, $04, $00, $40, $03 - db $00 ; terminator - -Data_196bd: ; 0x196bd - db $10, $06 - db $00 ; terminator - -Data_196c0: ; 0x196c0 - db $04, $06, $04, $07, $04, $06, $04, $07, $04, $06, $04, $07, $04, $06, $04, $07 - db $03, $06, $03, $07, $03, $06, $03, $07, $03, $06, $03, $07, $03, $06, $03, $07 - db $02, $06, $02, $07, $02, $06, $02, $07, $02, $06, $02, $07, $02, $06, $02, $07 - db $01, $06, $01, $07, $01, $06, $01, $07, $01, $06, $01, $07, $01, $06, $01, $07 - db $00 ; terminator - -Func_19701: ; 0x19701 - ld a, [wd6b4] - and a - jr z, .asm_19742 - xor a - ld [wd6b4], a - ld a, [wd7be] - and a - jr nz, .asm_19742 - ld a, [wd6b5] - sub $1 - sla a - sla a - sla a - ld c, a - ld b, $0 - ld hl, wd6ba - add hl, bc - ld d, h - ld e, l - ld a, [de] - and a - jr nz, .asm_19742 - dec de - ld a, $2 - call Func_19876 - ld bc, OneHundredThousandPoints - callba AddBigBCD6FromQueue - lb de, $00, $38 - call PlaySoundEffect -.asm_19742 - ld de, wd6bd - call SetOrbitingBallCoordinates - ld de, wd6c5 - call SetOrbitingBallCoordinates - ld de, wd6cd - call SetOrbitingBallCoordinates - ld de, wd6d5 - call SetOrbitingBallCoordinates - ld de, wd6dd - call SetOrbitingBallCoordinates - ld de, wd6e5 - call SetOrbitingBallCoordinates - ld de, wd6b6 - call UpdateOrbitingBallAnimation - ld de, wd6be - call UpdateOrbitingBallAnimation - ld de, wd6c6 - call UpdateOrbitingBallAnimation - ld de, wd6ce - call UpdateOrbitingBallAnimation - ld de, wd6d6 - call UpdateOrbitingBallAnimation - ld de, wd6de - call UpdateOrbitingBallAnimation - ret - -SetOrbitingBallCoordinates: ; 0x1978b -; Sets the x, y coordinates for one of the balls orbiting around Mewtwo - ld a, [de] - ld c, a - ld b, $0 - sla c - inc a - cp $48 ; num entries in MewtwoOrbitingBallsCoords - jr c, .looadCoords - xor a -.looadCoords - ld [de], a - ld hl, MewtwoOrbitingBallsCoords + 1 - add hl, bc - dec de - ld a, [hld] - ld [de], a - dec de - ld a, [hl] - ld [de], a - ret - -MewtwoOrbitingBallsCoords: -; x, y coordinates for balls that orbit around Mewtwo. - db $62, $08 - db $62, $0A - db $62, $0D - db $61, $0F - db $60, $11 - db $60, $13 - db $5F, $15 - db $5D, $17 - db $5C, $19 - db $5A, $1A - db $59, $1C - db $57, $1D - db $55, $1F - db $53, $20 - db $51, $20 - db $4F, $21 - db $4D, $22 - db $4A, $22 - db $48, $22 - db $46, $22 - db $43, $22 - db $41, $21 - db $3F, $20 - db $3D, $20 - db $3B, $1F - db $39, $1D - db $37, $1C - db $36, $1A - db $34, $19 - db $33, $17 - db $31, $15 - db $30, $13 - db $30, $11 - db $2F, $0F - db $2E, $0D - db $2E, $0A - db $2E, $08 - db $2E, $06 - db $2E, $03 - db $2F, $01 - db $30, $FF - db $30, $FD - db $31, $FB - db $33, $F9 - db $34, $F7 - db $36, $F6 - db $37, $F4 - db $39, $F3 - db $3B, $F1 - db $3D, $F0 - db $3F, $F0 - db $41, $EF - db $43, $EE - db $46, $EE - db $48, $EE - db $4A, $EE - db $4D, $EE - db $4F, $EF - db $51, $F0 - db $53, $F0 - db $55, $F1 - db $57, $F3 - db $59, $F4 - db $5A, $F6 - db $5C, $F7 - db $5D, $F9 - db $5F, $FB - db $60, $FD - db $60, $FF - db $61, $01 - db $62, $03 - db $62, $06 - -UpdateOrbitingBallAnimation: ; 0x19833 -; Updates the animation for one of the balls orbiting around Mewtwo. - ld a, [de] - and a - ret z - inc de - inc de - inc de - inc de - ld a, [de] - sla a - ld c, a - ld b, $0 - ld hl, OrbitingBallAnimations - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - push de - dec de - dec de - dec de - call UpdateAnimation - pop de - ret nc - ld a, [de] - rst JumpTable ; calls JumpToFuncInTable -CallTable_19852: ; 0x19852 - dw Func_1985a - dw Func_19863 - dw Func_1986c - dw Func_1986d - -Func_1985a: ; 0x1985a - dec de - ld a, [de] - cp $6 - ret nz - xor a - jp Func_19876 - -Func_19863: ; 0x19863 - dec de - ld a, [de] - cp $7 - ret nz - xor a - jp Func_19876 - -Func_1986c: ; 0x1986c - ret - -Func_1986d: ; 0x1986d - dec de - ld a, [de] - cp $1 - ret nz - xor a - jp Func_19876 - -Func_19876: ; 0x19876 - push af - sla a - ld c, a - ld b, $0 - ld hl, OrbitingBallAnimations - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - push de - dec de - dec de - call CopyHLToDE - pop de - inc de - pop af - ld [de], a - ret - -ResetOrbitingBalls: ; 0x1988e - ld a, [wd6b1] - sla a - sla a - sla a - ld c, a - ld b, $0 - ld hl, OrbitingBallsStartCoordsIndices - add hl, bc - ld de, wd6bd - ld b, $6 -.asm_198a3 - ld a, [hli] - push bc - push de - push hl - bit 7, a - jr nz, .asm_198b7 - ld [de], a - dec de - dec de - dec de - dec de - ld a, $3 - call Func_19876 - jr .asm_198c0 - -.asm_198b7 - dec de - dec de - dec de - dec de - dec de - dec de - dec de - xor a - ld [de], a -.asm_198c0 - pop hl - pop de - pop bc - ld a, e - add $8 - ld e, a - jr nc, .asm_198ca - inc d -.asm_198ca - dec b - jr nz, .asm_198a3 - ret - -OrbitingBallsStartCoordsIndices: -; When Mewtwo is hit, the orbs briefly disappear. When they reappear, -; this table determines which entry in the MewtwoOrbitingBallsCoords table -; each orb will start at. -; Last two bytes in each row are unused - db $00, $0C, $18, $24, $30, $3C, $FF, $FF ; All 6 orbs are up - db $00, $0E, $1D, $2B, $3A, $FF, $FF, $FF ; 5 orbs are up - db $00, $12, $24, $36, $FF, $FF, $FF, $FF ; 4 orbs - db $00, $12, $24, $36, $FF, $FF, $FF, $FF ; 3 orbs - db $00, $18, $30, $FF, $FF, $FF, $FF, $FF ; 2 orbs - db $00, $24, $FF, $FF, $FF, $FF, $FF, $FF ; 1 orb - db $00, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; 0 orbs - db $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; unused - db $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; unused - -OrbitingBallAnimations: - dw OrbitingBallAnimation1 - dw OrbitingBallAnimation2 - dw OrbitingBallAnimation3 - dw OrbitingBallAnimation4 - -OrbitingBallAnimation1: ; 0x1991e -; Each entry is [duration][OAM id] - db $0A, $00 - db $08, $01 - db $08, $02 - db $0A, $03 - db $08, $02 - db $08, $01 - db $00 ; terminator - -OrbitingBallAnimation2: ; 0x1992b -; Each entry is [duration][OAM id] - db $05, $04 - db $06, $05 - db $06, $06 - db $07, $07 - db $07, $08 - db $08, $09 - db $08, $0A - db $00 ; terminator - -OrbitingBallAnimation3: ; 0x1993a -; Each entry is [duration][OAM id] - db $05, $0A - db $05, $09 - db $04, $08 - db $04, $07 - db $03, $06 - db $03, $05 - db $02, $04 - db $80, $0B - db $00 ; terminator - -OrbitingBallAnimation4: ; 0x1994b -; Each entry is [duration][OAM id] - db $0C, $0B - db $00 ; terminator - +INCLUDE "engine/pinball_game/object_collision/mewtwo_bonus_resolve_collision.asm" INCLUDE "engine/pinball_game/draw_sprites/draw_mewtwo_bonus_sprites.asm" INCLUDE "engine/pinball_game/stage_init/init_diglett_bonus.asm" INCLUDE "engine/pinball_game/ball_init/ball_init_diglett_bonus.asm" INCLUDE "engine/pinball_game/load_stage_data/load_diglett_bonus.asm" INCLUDE "engine/pinball_game/object_collision/diglett_bonus_object_collision.asm" - -Func_19b88: ; 0x19b88 - call Func_19c52 - call Func_1aad4 - call Func_19b92 - ret - -Func_19b92: ; 0x19b92 - ld a, [wd73a] - and a - ret nz - ld a, [wd4b4] - cp $8a - ret nc - ld a, $1 - ld [wStageCollisionState], a - ld [wd73a], a - xor a - ld [wc853], a - ld [wc873], a - ld [wc893], a - ld a, $5 - ld [wc872], a - ld a, $7 - ld [wc892], a - call Func_19bbd - ret - -Func_19bbd: ; 0x19bbd - ld a, [wStageCollisionState] - sla a - ld c, a - ld b, $0 - ld hl, Data_19bda - ld a, [hGameBoyColorFlag] - and a - jr z, .asm_19bd0 - ld hl, Data_19c16 -.asm_19bd0 - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - ld a, Bank(Data_19bda) - call Func_10aa - ret - -Data_19bda: - dw Data_19bde - dw Data_19be1 - -Data_19bde: ; 0x19bde - dbw $1, TileListData_19be4 - -Data_19be1: ; 0x19be1 - dbw $1, TileListData_19bfd - -TileListData_19be4: ; 0x19be4 - dw LoadTileLists - db $09 - db $02 - dw vBGMap + $113 - db $4E, $4F - db $02 - dw vBGMap + $133 - db $80, $4D - db $03 - dw vBGMap + $152 - db $80, $4B, $4C - db $02 - dw vBGMap + $172 - db $49, $4A - db $00 ; terminator - -TileListData_19bfd: ; 0x19bfd - dw LoadTileLists - db $09 - db $02 - dw vBGMap + $113 - db $1D, $FB - db $02 - dw vBGMap + $133 - db $1B, $FA - db $03 - dw vBGMap + $152 - db $18, $19, $FB - db $02 - dw vBGMap + $172 - db $14, $15 - db $00 ; terminator - -Data_19c16: - dw Data_19c1a - dw Data_19c1d - -Data_19c1a: ; 0x19c1a - dbw $1, Data_19c20 - -Data_19c1d: ; 0x19c1d - dbw $1, Data_19c39 - -Data_19c20: ; 0x19c20 - dw LoadTileLists - db $09 - db $02 - dw vBGMap + $113 - db $4E, $4F - db $02 - dw vBGMap + $133 - db $80, $4D - db $03 - dw vBGMap + $152 - db $80, $4B, $4C - db $02 - dw vBGMap + $172 - db $49, $4A - db $00 ; terminator - -Data_19c39: ; 0x19c39 - dw LoadTileLists - db $09 - db $02 - dw vBGMap + $113 - db $1D, $FB - db $02 - dw vBGMap + $133 - db $1B, $FA - db $03 - dw vBGMap + $152 - db $18, $19, $FB - db $02 - dw vBGMap + $172 - db $14, $15 - db $00 ; terminator - -Func_19c52: ; 0x19c52 - ld a, [wd73b] - and a - jr z, .asm_19cc8 - xor a - ld [wd73b], a - ld bc, OneHundredThousandPoints - callba AddBigBCD6FromQueue - lb de, $00, $35 - call PlaySoundEffect - ld hl, $0100 - ld a, l - ld [wFlipperYForce], a - ld a, h - ld [wFlipperYForce + 1], a - ld a, $80 - ld [wFlipperCollision], a - ld a, [wd73c] - sub $1 - ld c, a - ld b, $0 - ld hl, wDiglettStates - add hl, bc - ld a, [hl] - cp $6 - jr nc, .asm_19cc8 - ld a, $8 - ld [hl], a - call Func_19da8 - call Func_19df0 - ld hl, wDiglettStates - ld bc, NUM_DIGLETTS << 8 - xor a -.asm_19ca0 - ld a, [hli] - and a - jr z, .asm_19ca8 - cp $6 - jr c, .asm_19ca9 -.asm_19ca8 - inc c -.asm_19ca9 - dec b - jr nz, .asm_19ca0 - ld a, c - cp NUM_DIGLETTS - jr nz, .asm_19cc8 - ld hl, AnimationData_1ac75 - ld de, wDugtrioAnimationFrameCounter - call CopyHLToDE - ld a, $1 - ld [wDugrioState], a - call Func_1ac2c - ld de, $0002 - call PlaySong -.asm_19cc8 - call Func_19cdd - ld a, [wd765] - and a - ret nz - ld a, $1 - ld [wd765], a - ld a, [wDugrioState] - and a - call nz, Func_1ac2c - ret - -Func_19cdd: ; 0x19cdd - ld a, [wDiglettsInitializedFlag] - and a - jr nz, .alreadyInitializedDigletts - ld a, [wDiglettInitDelayCounter] - add DIGLETT_INITIALIZE_DELAY - ld [wDiglettInitDelayCounter], a - ret nc - ld hl, DiglettInitializeOrder - ld a, [wCurrentDiglett] - ld c, a - ld b, $0 - add hl, bc - ld b, $1 -.asm_19cf8 - push bc - ld a, [hli] - bit 7, a - jr z, .asm_19d02 - ld a, [hli] - ld h, [hl] - ld l, a - ld a, [hli] -.asm_19d02 - push hl - ld c, a - ld b, $0 - ld hl, wDiglettStates - add hl, bc - ld a, [hl] - and a - jr z, .asm_19d29 - dec a - jr nz, .asm_19d21 - ; pick a random starting state for the diglett that isn't the "hiding" state - call GenRandom - and $3 - add $2 - ld [hl], a - call Func_19da8 - call Func_19dcd - jr .asm_19d29 - -.asm_19d21 - and $3 - add $2 - ld [hl], a - call Func_19da8 -.asm_19d29 - pop hl - pop bc - dec b - jr nz, .asm_19cf8 - ld hl, wDiglettsInitializedFlag - ld a, [wCurrentDiglett] - add $1 - cp NUM_DIGLETTS - jr c, .notDoneInitializingDigletts - set 0, [hl] - sub NUM_DIGLETTS -.notDoneInitializingDigletts - ld [wCurrentDiglett], a - ret - -.alreadyInitializedDigletts - ld hl, DiglettUpdateOrder - ld a, [wCurrentDiglett] - ld c, a - ld b, $0 - add hl, bc - ld b, $4 ; update 4 digletts -.updateDiglettLoop - push bc - ld a, [hli] - bit 7, a - jr z, .asm_19d58 - ld a, [hli] - ld h, [hl] - ld l, a - ld a, [hli] -.asm_19d58 - push hl - ld c, a - ld b, $0 - ld hl, wDiglettStates - add hl, bc - ld a, [hl] - and a - jr z, .asm_19d8f - dec a - jr nz, .asm_19d77 - call GenRandom - and $3 - add $2 - ld [hl], a - call Func_19da8 - call Func_19dcd - jr .asm_19d8f - -.asm_19d77 - cp $5 - jr c, .incrementDiglettState - ld [hl], a - jr nz, .asm_19d8f - xor a - ld [hl], a - ld a, $1 - call Func_19da8 - jr .asm_19d8f - -.incrementDiglettState - and $3 - add $2 - ld [hl], a - call Func_19da8 -.asm_19d8f - pop hl - pop bc - dec b - jr nz, .updateDiglettLoop - ld hl, wDiglettsInitializedFlag - ld a, [wCurrentDiglett] - add $4 - cp NUM_DIGLETTS - jr c, .asm_19da4 - set 0, [hl] - sub NUM_DIGLETTS -.asm_19da4 - ld [wCurrentDiglett], a - ret - -Func_19da8: ; 0x19da8 -; input: a = diglett state -; c = diglett index - cp $6 - jr c, .asm_19dae - ld a, $6 ; "getting hit" state -.asm_19dae - push bc - ld b, a - sla c - ld a, c - sla c - add c - add b ; a = (index * 6) + state - dec a - ld c, a - ld b, $0 ; bc = (index * 6) + state - 1 - sla c - rl b ; bc = 2 * ((index * 6) + state - 1) - ld hl, DiglettTileDataPointers - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - ld a, Bank(DiglettTileDataPointers) - call Func_10aa - pop bc - ret - -Func_19dcd: ; 0x19dcd - sla c - ld a, c - sla c - add c - ld c, a - ld b, $0 - ld hl, Data_19e13 - add hl, bc - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - ld a, [hli] - ld [de], a - inc de - ld a, [hli] - ld [de], a - ld a, e - add $1f - ld e, a - jr nc, .asm_19dea - inc d -.asm_19dea - ld a, [hli] - ld [de], a - inc de - ld a, [hli] - ld [de], a - ret - -Func_19df0: ; 0x19df0 - sla c - ld a, c - sla c - add c - ld c, a - ld b, $0 - ld hl, Data_19e13 - add hl, bc - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - ld a, $2 - ld [de], a - inc de - ld [de], a - ld a, e - add $1f - ld e, a - jr nc, .asm_19e0d - inc d -.asm_19e0d - ld a, $2 - ld [de], a - inc de - ld [de], a - ret - -Data_19e13: - dw wc7a1 - db $19, $19, $1A, $1B - - dw wc7e1 - db $1C, $1C, $1D, $1E - - dw wc821 - db $1F, $1F, $20, $21 - - dw wc7c3 - db $22, $22, $23, $24 - - dw wc803 - db $25, $25, $26, $27 - - dw wc843 - db $28, $28, $29, $2A - - dw wc7a5 - db $2B, $2B, $2C, $2D - - dw wc7e5 - db $2E, $2E, $2F, $30 - - dw wc825 - db $31, $31, $32, $33 - - dw wc865 - db $34, $34, $35, $36 - - dw wc7c7 - db $37, $37, $38, $39 - - dw wc807 - db $3A, $3A, $3B, $3C - - dw wc847 - db $3D, $3D, $3E, $3F - - dw wc887 - db $40, $40, $41, $42 - - dw wc7e9 - db $43, $43, $44, $45 - - dw wc829 - db $46, $46, $47, $48 - - dw wc869 - db $49, $49, $4A, $4B - - dw wc7cb - db $19, $19, $1A, $1B - - dw wc80b - db $1C, $1C, $1D, $1E - - dw wc84b - db $1F, $1F, $20, $21 - - dw wc88b - db $22, $22, $23, $24 - - dw wc7ad - db $25, $25, $26, $27 - - dw wc7ed - db $28, $28, $29, $2A - - dw wc82d - db $2B, $2B, $2C, $2D - - dw wc86d - db $2E, $2E, $2F, $30 - - dw wc7cf - db $31, $31, $32, $33 - - dw wc80f - db $34, $34, $35, $36 - - dw wc84f - db $37, $37, $38, $39 - - dw wc7b1 - db $3A, $3A, $3B, $3C - - dw wc7f1 - db $3D, $3D, $3E, $3F - - dw wc831 - db $40, $40, $41, $42 - - ; unused pointers? - dw DiglettInitializeOrder - dw DiglettUpdateOrder - -INCLUDE "data/diglett_stage/diglett_stage_animation_data.asm" - -Func_1aad4: ; 0x1aad4 - ld a, [wd75f] - and a - jr z, .asm_1ab2c - xor a - ld [wd75f], a - ld a, [wDugrioState] - bit 0, a - jr z, .asm_1ab2c - cp $7 - jr z, .asm_1ab2c - inc a - ld [wDugrioState], a - sla a - ld c, a - ld b, $0 - ld hl, AnimationDataPointers_1ac62 - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - ld de, wDugtrioAnimationFrameCounter - call CopyHLToDE - ld bc, FiveMillionPoints - callba AddBigBCD6FromQueue - lb de, $00, $36 - call PlaySoundEffect - ld a, $33 - ld [wd803], a - ld a, $8 - ld [wd804], a - ld hl, $0200 - ld a, l - ld [wFlipperYForce], a - ld a, h - ld [wFlipperYForce + 1], a - ld a, $80 - ld [wFlipperCollision], a -.asm_1ab2c - call Func_1ab30 - ret - -Func_1ab30: ; 0x1ab30 - ld a, [wDugrioState] - sla a - ld c, a - ld b, $0 - ld hl, AnimationDataPointers_1ac62 - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - ld de, wDugtrioAnimationFrameCounter - call UpdateAnimation - ret nc - ld a, [wDugrioState] - and a - ret z - cp $1 - jr nz, .asm_1ab64 - ld a, [wDugtrioAnimationFrameIndex] - cp $3 - ret nz - ld hl, AnimationData_1ac75 - ld de, wDugtrioAnimationFrameCounter - call CopyHLToDE - ld a, $1 - ld [wDugrioState], a - ret - -.asm_1ab64 - cp $2 - jr nz, .asm_1ab7d - ld a, [wDugtrioAnimationFrameIndex] - cp $1 - ret nz - ld hl, AnimationData_1ac7f - ld de, wDugtrioAnimationFrameCounter - call CopyHLToDE - ld a, $3 - ld [wDugrioState], a - ret - -.asm_1ab7d - cp $3 - jr nz, .asm_1ab96 - ld a, [wDugtrioAnimationFrameIndex] - cp $3 - ret nz - ld hl, AnimationData_1ac7f - ld de, wDugtrioAnimationFrameCounter - call CopyHLToDE - ld a, $3 - ld [wDugrioState], a - ret - -.asm_1ab96 - cp $4 - jr nz, .asm_1abaf - ld a, [wDugtrioAnimationFrameIndex] - cp $1 - ret nz - ld hl, AnimationData_1ac89 - ld de, wDugtrioAnimationFrameCounter - call CopyHLToDE - ld a, $5 - ld [wDugrioState], a - ret - -.asm_1abaf - cp $5 - jr nz, .asm_1abc8 - ld a, [wDugtrioAnimationFrameIndex] - cp $3 - ret nz - ld hl, AnimationData_1ac89 - ld de, wDugtrioAnimationFrameCounter - call CopyHLToDE - ld a, $5 - ld [wDugrioState], a - ret - -.asm_1abc8 - cp $6 - jr nz, .asm_1abe1 - ld a, [wDugtrioAnimationFrameIndex] - cp $1 - ret nz - ld hl, AnimationData_1ac93 - ld de, wDugtrioAnimationFrameCounter - call CopyHLToDE - ld a, $7 - ld [wDugrioState], a - ret - -.asm_1abe1 - cp $7 - ret nz - ld a, [wDugtrioAnimationFrameIndex] - cp $1 - jr nz, .asm_1abf2 - ld de, $0000 - call PlaySong - ret - -.asm_1abf2 - cp $2 - ret nz - ld hl, AnimationData_1ac72 - ld de, wDugtrioAnimationFrameCounter - call CopyHLToDE - xor a - ld [wDugrioState], a - ld [wd498], a - ld a, $1 - ld [wd49a], a - call FillBottomMessageBufferWithBlackTile - call Func_30db - ld hl, wd5dc - ld de, DiglettStageClearedText - call LoadTextHeader - lb de, $4b, $2a - call PlaySoundEffect - ld a, $1 - ld [wd7be], a - call Func_2862 - ld hl, Data_1ac56 - jr asm_1ac2f - -Func_1ac2c: ; 0x1ac2c - ld hl, Data_1ac4a -asm_1ac2f: - ld de, wc768 - ld b, $3 -.asm_1ac34 - ld a, [hli] - ld [de], a - inc de - ld a, [hli] - ld [de], a - inc de - ld a, [hli] - ld [de], a - inc de - ld a, [hli] - ld [de], a - ld a, e - add $1d - ld e, a - jr nc, .asm_1ac46 - inc d -.asm_1ac46 - dec b - jr nz, .asm_1ac34 - ret - -Data_1ac4a: - db $00, $00, $00, $00 - db $14, $14, $14, $14 - db $15, $16, $17, $18 - -Data_1ac56: - db $50, $02, $02, $51 - db $02, $02, $02, $02 - db $02, $02, $02, $02 - -AnimationDataPointers_1ac62: ; 0x1ac62 - dw AnimationData_1ac72 - dw AnimationData_1ac75 - dw AnimationData_1ac7c - dw AnimationData_1ac7f - dw AnimationData_1ac86 - dw AnimationData_1ac89 - dw AnimationData_1ac90 - dw AnimationData_1ac93 - -AnimationData_1ac72: ; 0x1ac72 -; Each entry is [duration][OAM id] - db $01, $0C - db $00 ; terminator - -AnimationData_1ac75: ; 0x1ac75 -; Each entry is [duration][OAM id] - db $0E, $00 - db $0E, $01 - db $0E, $02 - db $00 ; terminator - -AnimationData_1ac7c: ; 0x1ac7c -; Each entry is [duration][OAM id] - db $0D, $03 - db $00 ; terminator - -AnimationData_1ac7f: ; 0x1ac7f -; Each entry is [duration][OAM id] - db $0E, $04 - db $0E, $05 - db $0E, $06 - db $00 - -AnimationData_1ac86: ; 0x1ac86 -; Each entry is [duration][OAM id] - db $0D, $07 - db $00 ; terminator - -AnimationData_1ac89: ; 0x1ac89 -; Each entry is [duration][OAM id] - db $0E, $08 - db $0E, $09 - db $0E, $0A - db $00 - -AnimationData_1ac90: ; 0x1ac90 -; Each entry is [duration][OAM id] - db $0D, $0B - db $00 ; terminator - -AnimationData_1ac93: ; 0x1ac93 -; Each entry is [duration][OAM id] - db $01, $0D - db $40, $0D - db $00 ; terminator - +INCLUDE "engine/pinball_game/object_collision/diglett_bonus_resolve_collision.asm" INCLUDE "engine/pinball_game/draw_sprites/draw_diglett_bonus_sprites.asm" SECTION "bank7", ROMX, BANK[$7] @@ -13583,8075 +1874,7 @@ INCLUDE "engine/pinball_game/stage_init/init_blue_field.asm" INCLUDE "engine/pinball_game/ball_init/ball_init_blue_field.asm" INCLUDE "engine/pinball_game/load_stage_data/load_blue_field.asm" INCLUDE "engine/pinball_game/object_collision/blue_stage_object_collision.asm" - -Func_1c715: ; 0x1c715 - call ResolveShellderCollision - call ResolveBlueStageSpinnerCollision - call ResolveBlueStagePinballUpgradeTriggersCollision - call HandleBlueStageBallTypeUpgradeCounter - call Func_1e66a - call ResolveBlueStageBoardTriggerCollision - call ResolveBlueStagePikachuCollision - call ResolveSlowpokeCollision - call ResolveCloysterCollision - call Func_1ea3b - call ResolvePsyduckPoliwagCollision - call ResolveBlueStageForceFieldCollision - call Func_1e9c0 - call Func_1c8b6 - call Func_1f18a - callba Func_146a9 - call Func_1f27b - call Func_1df15 - callba Func_30188 - ld a, $0 - callba Func_10000 - ret - -Func_1c769: ; 0x1c769 - call Func_1ca4a - call Func_1ce40 - call ResolvePsyduckPoliwagCollision - call Func_1ca85 - call Func_1e4b8 - call HandleBlueStageBallTypeUpgradeCounter - call Func_1e5c5 - call Func_1c7d7 - call ResolveBlueStagePikachuCollision - call Func_1ead4 - call ResolveBlueStageBonusMultiplierCollision - call Func_1e757 - call Func_1e9c0 - call Func_1ea0a - call Func_1c8b6 - callba Func_14733 - callba Func_146a2 - call Func_1f261 - call Func_1de93 - callba Func_30188 - ld a, $0 - callba Func_10000 - ret - -Func_1c7c7: ; 0x1c7c7 - ld a, $0 - ld [wStageCollisionState], a - callba LoadStageCollisionAttributes - ret - -Func_1c7d7: ; 0x1c7d7 - ld a, [wPinballLaunchAlley] - and a - ret z - xor a - ld [wPinballLaunchAlley], a - ld a, [wd4de] - and a - jr z, .asm_1c810 - xor a - ld [wRightAlleyTrigger], a - ld [wLeftAlleyTrigger], a - ld [wSecondaryLeftAlleyTrigger], a - ld hl, wBallXVelocity - ld [hli], a - ld [hl], a - ld [wBallSpin], a - ld [wBallRotation], a - ld a, $71 - ld [wBallYVelocity], a - ld a, $fa - ld [wBallYVelocity + 1], a - ld a, $1 - ld [wd549], a - lb de, $00, $0a - call PlaySoundEffect -.asm_1c810 - ld a, $ff - ld [wPreviousTriggeredGameObject], a - ld a, [wd4de] - and a - ret nz - ld a, [wd4e0] - and a - jr nz, .asm_1c82c - call Func_1c839 - ld a, $1 - ld [wd4e0], a - ld [wd4de], a - ret - -.asm_1c82c - ld hl, wKeyConfigBallStart - call IsKeyPressed - ret z - ld a, $1 - ld [wd4de], a - ret - -Func_1c839: ; 0x1c839 - ld a, [hGameBoyColorFlag] - and a - callba nz, LoadGreyBillboardPaletteData -.showNextMap - ld a, [wInitialMapSelectionIndex] - inc a - cp $7 ; number of maps to choose from at the start of play - jr c, .gotMapId - xor a ; wrap around to 0 -.gotMapId - ld [wInitialMapSelectionIndex], a - ld c, a - ld b, $0 - ld hl, BlueStageInitialMaps - add hl, bc - ld a, [hl] - ld [wCurrentMap], a - push af - lb de, $00, $48 - call PlaySoundEffect - pop af - add (PalletTownPic_Pointer - BillboardPicturePointers) / 3 ; map billboard pictures start at the $29th entry in BillboardPicturePointers - callba LoadBillboardPicture - ld b, $20 ; number of frames to delay before the next map is shown -.waitOnCurrentMap - push bc - callba Func_eeee - ld hl, wKeyConfigBallStart - call IsKeyPressed - jr nz, .ballStartKeyPressed - pop bc - dec b - jr nz, .waitOnCurrentMap - jr .showNextMap - -.ballStartKeyPressed - pop bc - callba Func_30253 - ld bc, StartFromMapText - callba Func_3118f - ld a, [wCurrentMap] - ld [wd4e3], a - xor a - ld [wd4e2], a - ret - -BlueStageInitialMaps: ; 0x1c8af - db VIRIDIAN_CITY - db VIRIDIAN_FOREST - db MT_MOON - db CERULEAN_CITY - db VERMILION_STREETS - db ROCK_MOUNTAIN - db CELADON_CITY - -Func_1c8b6: ; 0x1c8b6 - ld a, [wd64c] - inc a - cp $3c - jr z, .asm_1c8c2 - ld [wd64c], a - ret - -.asm_1c8c2 - xor a - ld [wd64c], a - ld hl, wd64d - inc [hl] - ld a, [hl] - cp $5 - ret nz - ld a, [wd644] - and a - jr nz, .asm_1c8e1 - ld a, [wd643] - and a - jr nz, .asm_1c8e5 - ld a, [wRightAlleyCount] - cp $2 - jr nc, .asm_1c8e5 -.asm_1c8e1 - xor a - ld [wd64b], a -.asm_1c8e5 - ld a, [wd644] - and a - jr nz, .asm_1c8f8 - ld a, [wd643] - and a - jr nz, .asm_1c8fc - ld a, [wLeftAlleyCount] - cp $3 - jr z, .asm_1c8fc -.asm_1c8f8 - xor a - ld [wd64b], a -.asm_1c8fc - xor a - ld [wd64d], a - xor a - ld [wd64a], a - ld [wd649], a - ld [wd648], a - ld a, [wBlueStageForceFieldDirection] - cp $1 ; right direction - jr z, .asm_1c97f - cp $3 ; left direction - jr z, .asm_1c97f -.asm_1c915 - ld a, [wd644] - cp $0 - jr z, .asm_1c925 - ld a, [wd55a] - cp $0 - jr nz, .asm_1c933 - jr .asm_1c947 - -.asm_1c925 - ld a, [wd643] - cp $0 - jr nz, .asm_1c933 - ld a, [wRightAlleyCount] - cp $2 - jr c, .asm_1c947 -.asm_1c933 - ld a, [wd64b] - cp $1 - jr z, .asm_1c947 - ld a, $1 ; right direction - ld [wBlueStageForceFieldDirection], a - ld [wd64b], a - ld [wd640], a - jr .asm_1c99e - -.asm_1c947 - ld a, [wd644] - cp $0 - jr z, .asm_1c955 - ld a, [wd55a] - cp $0 - jr z, .asm_1c969 -.asm_1c955 - ld a, [wd643] - cp $0 - jr nz, .asm_1c969 - ld a, [wLeftAlleyCount] - cp $3 - jr nz, .asm_1c97f - ld a, [wInSpecialMode] - and a - jr nz, .asm_1c97f -.asm_1c969 - ld a, [wd64b] - cp $3 - jr z, .asm_1c915 - ld a, $3 ; left direction - ld [wBlueStageForceFieldDirection], a - ld [wd64b], a - ld a, $1 - ld [wd640], a - jr .asm_1c99e - -.asm_1c97f - ld a, [wd641] - and a - jr nz, .asm_1c993 - xor a - ld [wBlueStageForceFieldDirection], a - ld a, $1 - ld [wd640], a - ld [wd64a], a - jr .asm_1c99e - -.asm_1c993 - ld a, $2 ; down direction - ld [wBlueStageForceFieldDirection], a - ld a, $1 - ld [wd640], a - ret - -.asm_1c99e - ld a, [wBlueStageForceFieldDirection] - cp $0 ; up direction - jr nz, .asm_1c9ac - ld a, $1 - ld [wd64a], a - jr .asm_1c9c0 - -.asm_1c9ac - cp $1 - jr nz, .asm_1c9b7 - ld a, $1 - ld [wd649], a - jr .asm_1c9c0 - -.asm_1c9b7 - cp $3 - jr nz, .asm_1c9c0 - ld a, $1 - ld [wd648], a -.asm_1c9c0 - ret - -ResolveShellderCollision: ; 0x1c9c1 - ld a, [wWhichShellder] - and a - jr z, .noCollision - xor a - ld [wWhichShellder], a - call Func_1ca29 - ld a, [wd641] - and a - jr nz, .asm_1c9f2 - ld a, $1 - ld [wd641], a - ld a, [wBlueStageForceFieldDirection] - cp $0 ; up direction - jr nz, .asm_1c9f2 - ld a, $2 ; down direction - ld [wBlueStageForceFieldDirection], a - ld a, $1 - ld [wd640], a - ld a, $3 - ld [wd64c], a - ld [wd64d], a -.asm_1c9f2 - ld a, $10 - ld [wd4d6], a - ld a, [wWhichShellderId] - sub $3 - ld [wd4d7], a - ld a, $4 - callba Func_10000 - ld bc, FiveHundredPoints - callba AddBigBCD6FromQueueWithBallMultiplier - ret - -.noCollision - ld a, [wd4d6] - and a - ret z - dec a - ld [wd4d6], a - ret nz - ld a, $ff - ld [wd4d7], a - ret - -Func_1ca29: ; 0x1ca29 - ld a, $ff - ld [wd803], a - ld a, $3 - ld [wd804], a - ld hl, $0200 - ld a, l - ld [wFlipperYForce], a - ld a, h - ld [wFlipperYForce + 1], a - ld a, $80 - ld [wFlipperCollision], a - lb de, $00, $0e - call PlaySoundEffect - ret - -Func_1ca4a: ; 1ca4a - ld a, [wWildMonCollision] - and a - ret z - xor a - ld [wWildMonCollision], a - ld a, $1 - ld [wBallHitWildMon], a - lb de, $00, $06 - call PlaySoundEffect - ret - -ResolveBlueStageSpinnerCollision: ; 0x1ca5f - ld a, [wSpinnerCollision] - and a - jr z, Func_1ca85 - xor a - ld [wSpinnerCollision], a - ld a, [wBallYVelocity] - ld c, a - ld a, [wBallYVelocity + 1] - ld b, a - ld a, c - ld [wd50b], a - ld a, b - ld [wd50c], a - ld a, $c - callba Func_10000 - ; fall through - -Func_1ca85: ; 0x1ca85 - ld hl, wd50b - ld a, [hli] - or [hl] - ret z - ld a, [wd50b] - ld c, a - ld a, [wd50c] - ld b, a - bit 7, b - jr nz, .asm_1caa3 - ld a, c - sub $7 - ld c, a - ld a, b - sbc $0 - ld b, a - jr nc, .asm_1cab0 - jr .asm_1caad - -.asm_1caa3 - ld a, c - add $7 - ld c, a - ld a, b - adc $0 - ld b, a - jr nc, .asm_1cab0 -.asm_1caad - ld bc, $0000 -.asm_1cab0 - ld a, c - ld [wd50b], a - ld a, b - ld [wd50c], a - ld hl, wd50b - ld a, [wd509] - add [hl] - ld [wd509], a - inc hl - ld a, [wd50a] - adc [hl] - bit 7, a - ld c, $0 - jr z, .asm_1cad3 - add $18 - ld c, $1 - jr .asm_1cadb - -.asm_1cad3 - cp $18 - jr c, .asm_1cadb - sub $18 - ld c, $1 -.asm_1cadb - ld [wd50a], a - ld a, c - and a - ret z - ld bc, TenPoints - callba AddBigBCD6FromQueueWithBallMultiplier - ld hl, wd62d - call Func_e4a - ld a, [wPikachuSaverCharge] - cp MAX_PIKACHU_SAVER_CHARGE - jr nz, .asm_1caff - call Func_1cb1c - ret - -.asm_1caff - inc a - ld [wPikachuSaverCharge], a - call Func_1cb1c - ld a, [wPikachuSaverCharge] - cp MAX_PIKACHU_SAVER_CHARGE - jr nz, .asm_1cb12 - ld a, $64 - ld [wd51e], a -.asm_1cb12 - ld a, [wCurrentStage] - bit 0, a - ret nz - call Func_1cb43 - ret - -Func_1cb1c: ; 0x1cb1c - ld a, [wd51e] - and a - ret nz - ld a, [wPikachuSaverCharge] - ld c, a - ld b, $0 - ld hl, SoundEffectIds_1cb33 - add hl, bc - ld a, [hl] - ld e, a - ld d, $0 - call PlaySoundEffect - ret - -SoundEffectIds_1cb33: - db $12, $13, $14, $15, $16, $17, $18, $19, $1A, $1B, $1C, $1D, $1E, $1F, $20, $11 - -Func_1cb43: ; 0x1cb43 - ld a, [wPikachuSaverCharge] - ld c, a - sla c - ld b, $0 - ld hl, TileDataPointers_1cb60 - ld a, [hGameBoyColorFlag] - and a - jr z, .asm_1cb56 - ld hl, TileDataPointers_1cd10 -.asm_1cb56 - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - ld a, Bank(TileDataPointers_1cb60) - call Func_10aa - ret - -TileDataPointers_1cb60: - dw TileData_1cb80 - dw TileData_1cb85 - dw TileData_1cb8a - dw TileData_1cb8f - dw TileData_1cb94 - dw TileData_1cb99 - dw TileData_1cb9e - dw TileData_1cba3 - dw TileData_1cba8 - dw TileData_1cbad - dw TileData_1cbb2 - dw TileData_1cbb7 - dw TileData_1cbbc - dw TileData_1cbc1 - dw TileData_1cbc6 - dw TileData_1cbcb - -TileData_1cb80: ; 0x1cb80 - db $02 - dw TileData_1cbd0 - dw TileData_1cbda - -TileData_1cb85: ; 0x1cb85 - db $02 - dw TileData_1cbe4 - dw TileData_1cbee - -TileData_1cb8a: ; 0x1cb8a - db $02 - dw TileData_1cbf8 - dw TileData_1cc02 - -TileData_1cb8f: ; 0x1cb8f - db $02 - dw TileData_1cc0c - dw TileData_1cc16 - -TileData_1cb94: ; 0x1cb94 - db $02 - dw TileData_1cc20 - dw TileData_1cc2a - -TileData_1cb99: ; 0x1cb99 - db $02 - dw TileData_1cc34 - dw TileData_1cc3e - -TileData_1cb9e: ; 0x1cb9e - db $02 - dw TileData_1cc48 - dw TileData_1cc52 - -TileData_1cba3: ; 0x1cba3 - db $02 - dw TileData_1cc5c - dw TileData_1cc66 - -TileData_1cba8: ; 0x1cba8 - db $02 - dw TileData_1cc70 - dw TileData_1cc7a - -TileData_1cbad: ; 0x1cbad - db $02 - dw TileData_1cc84 - dw TileData_1cc8e - -TileData_1cbb2: ; 0x1cbb2 - db $02 - dw TileData_1cc98 - dw TileData_1cca2 - -TileData_1cbb7: ; 0x1cbb7 - db $02 - dw TileData_1ccac - dw TileData_1ccb6 - -TileData_1cbbc: ; 0x1cbbc - db $02 - dw TileData_1ccc0 - dw TileData_1ccca - -TileData_1cbc1: ; 0x1cbc1 - db $02 - dw TileData_1ccd4 - dw TileData_1ccde - -TileData_1cbc6: ; 0x1cbc6 - db $02 - dw TileData_1cce8 - dw TileData_1ccf2 - -TileData_1cbcb: ; 0x1cbcb - db $02 - dw TileData_1ccfc - dw TileData_1cd06 - -TileData_1cbd0: ; 0xcbd0 - dw Func_11d2 - db $20, $02 - dw vTilesBG tile $6C - dw StageBlueFieldTopBaseGameBoyGfx + $c20 - db Bank(StageBlueFieldTopBaseGameBoyGfx) - db $00 ; terminator - -TileData_1cbda: ; 0xcbda - dw Func_11d2 - db $20, $02 - dw vTilesBG tile $6E - dw StageBlueFieldTopBaseGameBoyGfx + $c40 - db Bank(StageBlueFieldTopBaseGameBoyGfx) - db $00 ; terminator - -TileData_1cbe4: ; 0xcbe4 - dw Func_11d2 - db $20, $02 - dw vTilesBG tile $6C - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1800 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 ; terminator - -TileData_1cbee: ; 0xcbee - dw Func_11d2 - db $20, $02 - dw vTilesBG tile $6E - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1820 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 ; terminator - -TileData_1cbf8: ; 0xcbf8 - dw Func_11d2 - db $20, $02 - dw vTilesBG tile $6C - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1840 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 ; terminator - -TileData_1cc02: ; 0xcc02 - dw Func_11d2 - db $20, $02 - dw vTilesBG tile $6E - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1860 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 ; terminator - -TileData_1cc0c: ; 0xcc0c - dw Func_11d2 - db $20, $02 - dw vTilesBG tile $6C - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1880 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 ; terminator - -TileData_1cc16: ; 0xcc16 - dw Func_11d2 - db $20, $02 - dw vTilesBG tile $6E - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $18A0 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 ; terminator - -TileData_1cc20: ; 0xcc20 - dw Func_11d2 - db $20, $02 - dw vTilesBG tile $6C - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $18C0 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 ; terminator - -TileData_1cc2a: ; 0xcc2a - dw Func_11d2 - db $20, $02 - dw vTilesBG tile $6E - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $18E0 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 ; terminator - -TileData_1cc34: ; 0xcc34 - dw Func_11d2 - db $20, $02 - dw vTilesBG tile $6C - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1900 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 ; terminator - -TileData_1cc3e: ; 0xcc3e - dw Func_11d2 - db $20, $02 - dw vTilesBG tile $6E - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1920 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 ; terminator - -TileData_1cc48: ; 0xcc48 - dw Func_11d2 - db $20, $02 - dw vTilesBG tile $6C - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1940 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 ; terminator - -TileData_1cc52: ; 0xcc52 - dw Func_11d2 - db $20, $02 - dw vTilesBG tile $6E - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1960 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 ; terminator - -TileData_1cc5c: ; 0xcc5c - dw Func_11d2 - db $20, $02 - dw vTilesBG tile $6C - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1980 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 ; terminator - -TileData_1cc66: ; 0xcc66 - dw Func_11d2 - db $20, $02 - dw vTilesBG tile $6E - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $19A0 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 ; terminator - -TileData_1cc70: ; 0xcc70 - dw Func_11d2 - db $20, $02 - dw vTilesBG tile $6C - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $19C0 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 ; terminator - -TileData_1cc7a: ; 0xcc7a - dw Func_11d2 - db $20, $02 - dw vTilesBG tile $6E - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $19E0 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 ; terminator - -TileData_1cc84: ; 0xcc84 - dw Func_11d2 - db $20, $02 - dw vTilesBG tile $6C - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1A00 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 ; terminator - -TileData_1cc8e: ; 0xcc8e - dw Func_11d2 - db $20, $02 - dw vTilesBG tile $6E - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1A20 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 ; terminator - -TileData_1cc98: ; 0xcc98 - dw Func_11d2 - db $20, $02 - dw vTilesBG tile $6C - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1A40 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 ; terminator - -TileData_1cca2: ; 0xcca2 - dw Func_11d2 - db $20, $02 - dw vTilesBG tile $6E - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1A60 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 ; terminator - -TileData_1ccac: ; 0xccac - dw Func_11d2 - db $20, $02 - dw vTilesBG tile $6C - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1A80 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 ; terminator - -TileData_1ccb6: ; 0xccb6 - dw Func_11d2 - db $20, $02 - dw vTilesBG tile $6E - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1AA0 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 ; terminator - -TileData_1ccc0: ; 0xccc0 - dw Func_11d2 - db $20, $02 - dw vTilesBG tile $6C - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1AC0 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 ; terminator - -TileData_1ccca: ; 0xccca - dw Func_11d2 - db $20, $02 - dw vTilesBG tile $6E - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1AE0 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 ; terminator - -TileData_1ccd4: ; 0xccd4 - dw Func_11d2 - db $20, $02 - dw vTilesBG tile $6C - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1B00 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 ; terminator - -TileData_1ccde: ; 0xccde - dw Func_11d2 - db $20, $02 - dw vTilesBG tile $6E - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1B20 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 ; terminator - -TileData_1cce8: ; 0xcce8 - dw Func_11d2 - db $20, $02 - dw vTilesBG tile $6C - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1B40 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 ; terminator - -TileData_1ccf2: ; 0xccf2 - dw Func_11d2 - db $20, $02 - dw vTilesBG tile $6E - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1B60 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 ; terminator - -TileData_1ccfc: ; 0xccfc - dw Func_11d2 - db $20, $02 - dw vTilesBG tile $6C - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1B80 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 ; terminator - -TileData_1cd06: ; 0xcd06 - dw Func_11d2 - db $20, $02 - dw vTilesBG tile $6E - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1BA0 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 ; terminator - -TileDataPointers_1cd10: - dw TileData_1cd30 - dw TileData_1cd33 - dw TileData_1cd36 - dw TileData_1cd39 - dw TileData_1cd3c - dw TileData_1cd3f - dw TileData_1cd42 - dw TileData_1cd45 - dw TileData_1cd48 - dw TileData_1cd4b - dw TileData_1cd4e - dw TileData_1cd51 - dw TileData_1cd54 - dw TileData_1cd57 - dw TileData_1cd5a - dw TileData_1cd5d - -TileData_1cd30: ; 0x1cd30 - db $01 - dw TileData_1cd60 - -TileData_1cd33: ; 0x1cd33 - db $01 - dw TileData_1cd6e - -TileData_1cd36: ; 0x1cd36 - db $01 - dw TileData_1cd7c - -TileData_1cd39: ; 0x1cd39 - db $01 - dw TileData_1cd8a - -TileData_1cd3c: ; 0x1cd3c - db $01 - dw TileData_1cd98 - -TileData_1cd3f: ; 0x1cd3f - db $01 - dw TileData_1cda6 - -TileData_1cd42: ; 0x1cd42 - db $01 - dw TileData_1cdb4 - -TileData_1cd45: ; 0x1cd45 - db $01 - dw TileData_1cdc2 - -TileData_1cd48: ; 0x1cd48 - db $01 - dw TileData_1cdd0 - -TileData_1cd4b: ; 0x1cd4b - db $01 - dw TileData_1cdde - -TileData_1cd4e: ; 0x1cd4e - db $01 - dw TileData_1cdec - -TileData_1cd51: ; 0x1cd51 - db $01 - dw TileData_1cdfa - -TileData_1cd54: ; 0x1cd54 - db $01 - dw TileData_1ce08 - -TileData_1cd57: ; 0x1cd57 - db $01 - dw TileData_1ce16 - -TileData_1cd5a: ; 0x1cd5a - db $01 - dw TileData_1ce24 - -TileData_1cd5d: ; 0x1cd5d - db $01 - dw TileData_1ce32 - -TileData_1cd60: ; 0x1cd60 - dw LoadTileLists - db $04 ; total number of tiles - - db $02 ; number of tiles - dw vBGMap + $143 - db $48, $49 - - db $02 ; number of tiles - dw vBGMap + $163 - db $4A, $4B - - db $00 ; terminator - -TileData_1cd6e: ; 0x1cd6e - dw LoadTileLists - db $04 ; total number of tiles - - db $02 ; number of tiles - dw vBGMap + $143 - db $48, $49 - - db $02 ; number of tiles - dw vBGMap + $163 - db $4C, $4D - - db $00 ; terminator - -TileData_1cd7c: ; 0x1cd7c - dw LoadTileLists - db $04 ; total number of tiles - - db $02 ; number of tiles - dw vBGMap + $143 - db $48, $49 - - db $02 ; number of tiles - dw vBGMap + $163 - db $4E, $4F - - db $00 ; terminator - -TileData_1cd8a: ; 0x1cd8a - dw LoadTileLists - db $04 ; total number of tiles - - db $02 ; number of tiles - dw vBGMap + $143 - db $48, $49 - - db $02 ; number of tiles - dw vBGMap + $163 - db $50, $51 - - db $00 ; terminator - -TileData_1cd98: ; 0x1cd98 - dw LoadTileLists - db $04 ; total number of tiles - - db $02 ; number of tiles - dw vBGMap + $143 - db $48, $49 - - db $02 ; number of tiles - dw vBGMap + $163 - db $52, $53 - - db $00 ; terminator - -TileData_1cda6: ; 0x1cda6 - dw LoadTileLists - db $04 ; total number of tiles - - db $02 ; number of tiles - dw vBGMap + $143 - db $48, $49 - - db $02 ; number of tiles - dw vBGMap + $163 - db $54, $55 - - db $00 ; terminator - -TileData_1cdb4: ; 0x1cdb4 - dw LoadTileLists - db $04 ; total number of tiles - - db $02 ; number of tiles - dw vBGMap + $143 - db $48, $49 - - db $02 ; number of tiles - dw vBGMap + $163 - db $56, $57 - - db $00 ; terminator - -TileData_1cdc2: ; 0x1cdc2 - dw LoadTileLists - db $04 ; total number of tiles - - db $02 ; number of tiles - dw vBGMap + $143 - db $48, $49 - - db $02 ; number of tiles - dw vBGMap + $163 - db $58, $59 - - db $00 ; terminator - -TileData_1cdd0: ; 0x1cdd0 - dw LoadTileLists - db $04 ; total number of tiles - - db $02 ; number of tiles - dw vBGMap + $143 - db $48, $49 - - db $02 ; number of tiles - dw vBGMap + $163 - db $58, $59 - - db $00 ; terminator - -TileData_1cdde: ; 0x1cdde - dw LoadTileLists - db $04 ; total number of tiles - - db $02 ; number of tiles - dw vBGMap + $143 - db $5C, $5D - - db $02 ; number of tiles - dw vBGMap + $163 - db $58, $59 - - db $00 ; terminator - -TileData_1cdec: ; 0x1cdec - dw LoadTileLists - db $04 ; total number of tiles - - db $02 ; number of tiles - dw vBGMap + $143 - db $5E, $5F - - db $02 ; number of tiles - dw vBGMap + $163 - db $58, $59 - - db $00 ; terminator - -TileData_1cdfa: ; 0x1cdfa - dw LoadTileLists - db $04 ; total number of tiles - - db $02 ; number of tiles - dw vBGMap + $143 - db $60, $61 - - db $02 ; number of tiles - dw vBGMap + $163 - db $58, $59 - - db $00 ; terminator - -TileData_1ce08: ; 0x1ce08 - dw LoadTileLists - db $04 ; total number of tiles - - db $02 ; number of tiles - dw vBGMap + $143 - db $62, $63 - - db $02 ; number of tiles - dw vBGMap + $163 - db $58, $59 - - db $00 ; terminator - -TileData_1ce16: ; 0x1ce16 - dw LoadTileLists - db $04 ; total number of tiles - - db $02 ; number of tiles - dw vBGMap + $143 - db $64, $65 - - db $02 ; number of tiles - dw vBGMap + $163 - db $58, $59 - - db $00 ; terminator - -TileData_1ce24: ; 0x1ce24 - dw LoadTileLists - db $04 ; total number of tiles - - db $02 ; number of tiles - dw vBGMap + $143 - db $66, $67 - - db $02 ; number of tiles - dw vBGMap + $163 - db $58, $59 - - db $00 ; terminator - -TileData_1ce32: ; 0x1ce32 - dw LoadTileLists - db $04 ; total number of tiles - - db $02 ; number of tiles - dw vBGMap + $143 - db $68, $69 - - db $02 ; number of tiles - dw vBGMap + $163 - db $6A, $6B - - db $00 ; terminator - -Func_1ce40: ; 1ce40 - ld a, [wWhichBumper] - and a - jr z, .asm_1ce53 - call Func_1ce72 - call Func_1ce60 - xor a - ld [wWhichBumper], a - call Func_1ce94 -.asm_1ce53 - ld a, [wd4da] - and a - ret z - dec a - ld [wd4da], a - call z, Func_1ce72 - ret - -Func_1ce60: ; 0x1ce60 - ld a, $10 - ld [wd4da], a - ld a, [wWhichBumperId] - sub $1 - ld [wd4db], a - sla a - inc a - jr asm_1ce7a - -Func_1ce72: ; 1ce72 - ld a, [wd4db] - cp $ff - ret z - sla a -asm_1ce7a: ; 0x1ce7a - sla a - ld c, a - ld b, $0 - ld hl, TileDataPointers_1ceca - ld a, [hGameBoyColorFlag] - and a - jr z, .asm_1ce8a - ld hl, TileDataPointers_1cf3a -.asm_1ce8a - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - ld a, Bank(TileDataPointers_1ceca) - call Func_10aa - ret - -Func_1ce94: ; 0x1ce94 - ld a, $ff - ld [wd803], a - ld a, $3 - ld [wd804], a - ld hl, $0200 - ld a, l - ld [wFlipperYForce], a - ld a, h - ld [wFlipperYForce + 1], a - ld a, $80 - ld [wFlipperCollision], a - ld a, [wWhichBumperId] - sub $1 - ld c, a - ld b, $0 - ld hl, Data_1cec8 - add hl, bc - ld a, [wCollisionForceAngle] - add [hl] - ld [wCollisionForceAngle], a - lb de, $00, $0b - call PlaySoundEffect - ret - -Data_1cec8: - db -8, 8 - -TileDataPointers_1ceca: - dw TileData_1ced2 - dw TileData_1ced5 - dw TileData_1ced8 - dw TileData_1cedb - -TileData_1ced2: ; 0x1ced2 - db $01 - dw TileData_1cede - -TileData_1ced5: ; 0x1ced5 - db $01 - dw TileData_1cef5 - -TileData_1ced8: ; 0x1ced8 - db $01 - dw TileData_1cf0c - -TileData_1cedb: ; 0x1cedb - db $01 - dw TileData_1cf23 - -TileData_1cede: ; 0x1cede - dw LoadTileLists - db $07 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $124 - db $61 - - db $02 ; number of tiles - dw vBGMap + $144 - db $62, $63 - - db $02 ; number of tiles - dw vBGMap + $164 - db $64, $65 - - db $02 ; number of tiles - dw vBGMap + $185 - db $66, $67 - - db $00 ; number of tiles - -TileData_1cef5: ; 0x1cef5 - dw LoadTileLists - db $07 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $124 - db $68 - - db $02 ; number of tiles - dw vBGMap + $144 - db $69, $6A - - db $02 ; number of tiles - dw vBGMap + $164 - db $6B, $6C - - db $02 ; number of tiles - dw vBGMap + $185 - db $6D, $6E - - db $00 ; number of tiles - -TileData_1cf0c: ; 0x1cf0c - dw LoadTileLists - db $07 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $12F - db $6F - - db $02 ; number of tiles - dw vBGMap + $14E - db $70, $71 - - db $02 ; number of tiles - dw vBGMap + $16E - db $72, $73 - - db $02 ; number of tiles - dw vBGMap + $18D - db $74, $75 - - db $00 ; number of tiles - -TileData_1cf23: ; 0x1cf23 - dw LoadTileLists - db $07 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $12F - db $76 - - db $02 ; number of tiles - dw vBGMap + $14E - db $77, $78 - - db $02 ; number of tiles - dw vBGMap + $16E - db $79, $7A - - db $02 ; number of tiles - dw vBGMap + $18D - db $7B, $7C - - db $00 ; number of tiles - -TileDataPointers_1cf3a: - dw TileData_1cf42 - dw TileData_1cf45 - dw TileData_1cf48 - dw TileData_1cf4b - -TileData_1cf42: ; 0x1cf42 - db $01 - dw TileData_1cf4e - -TileData_1cf45: ; 0x1cf45 - db $01 - dw TileData_1cf65 - -TileData_1cf48: ; 0x1cf48 - db $01 - dw TileData_1cf7c - -TileData_1cf4b: ; 0x1cf4b - db $01 - dw TileData_1cf93 - -TileData_1cf4e: ; 0x1cf4e - dw LoadTileLists - db $07 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $124 - db $39 - - db $02 ; number of tiles - dw vBGMap + $144 - db $3A, $3B - - db $02 ; number of tiles - dw vBGMap + $164 - db $3C, $3D - - db $02 ; number of tiles - dw vBGMap + $185 - db $3E, $3F - - db $00 ; terminator - -TileData_1cf65: ; 0x1cf65 - dw LoadTileLists - db $07 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $124 - db $40 - - db $02 ; number of tiles - dw vBGMap + $144 - db $41, $42 - - db $02 ; number of tiles - dw vBGMap + $164 - db $43, $44 - - db $02 ; number of tiles - dw vBGMap + $185 - db $45, $46 - - db $00 ; terminator - -TileData_1cf7c: ; 0x1cf7c - dw LoadTileLists - db $07 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $12F - db $39 - - db $02 ; number of tiles - dw vBGMap + $14E - db $3B, $3A - - db $02 ; number of tiles - dw vBGMap + $16E - db $3D, $3C - - db $02 ; number of tiles - dw vBGMap + $18D - db $3F, $3E - - db $00 ; terminator - -TileData_1cf93: ; 0x1cf93 - dw LoadTileLists - db $07 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $12F - db $40 - - db $02 ; number of tiles - dw vBGMap + $14E - db $42, $41 - - db $02 ; number of tiles - dw vBGMap + $16E - db $44, $43 - - db $02 ; number of tiles - dw vBGMap + $18D - db $46, $45 - - db $00 ; terminator - -ResolveBlueStageBoardTriggerCollision: ; 0x1cfaa - ld a, [wWhichBoardTrigger] - and a - ret z - xor a - ld [wWhichBoardTrigger], a - ld bc, FivePoints - callba AddBigBCD6FromQueueWithBallMultiplier - ld a, [wStageCollisionState] - cp $0 - jr nz, .asm_1cfe5 - ld a, $1 - ld [wStageCollisionState], a - callba LoadStageCollisionAttributes - ld a, $1 - ld [wd580], a - callba Func_1404a -.asm_1cfe5 - ld a, [wWhichBoardTriggerId] - sub $7 - ld c, a - ld b, $0 - ld hl, wd521 - add hl, bc - ld [hl], $1 - ld a, [wd521] - and a - call nz, Func_1d010 - ld a, [wd522] - and a - call nz, Func_1d047 - ld a, [wd523] - and a - call nz, HandleLeftAlleyTriggerBlueField - ld a, [wd524] - and a - call nz, HandleRightAlleyTriggerBlueField - ret - -Func_1d010: ; 0x1d010 - xor a - ld [wd521], a - ld a, [wLeftAlleyTrigger] - and a - ret z - xor a - ld [wLeftAlleyTrigger], a - ld a, $1 - callba Func_10000 - ret c - ld a, [wLeftAlleyCount] - cp $3 - ret z - inc a - ld [wLeftAlleyCount], a - cp $3 - jr z, .asm_1d03e - set 7, a - ld [wIndicatorStates], a - ret - -.asm_1d03e - ld [wIndicatorStates], a - ld a, $80 - ld [wIndicatorStates + 2], a - ret - -Func_1d047: ; 0x1d047 - xor a - ld [wd522], a - ld a, [wRightAlleyTrigger] - and a - ret z - xor a - ld [wRightAlleyTrigger], a - ld a, $2 - callba Func_10000 - ret c - ld a, [wRightAlleyCount] - cp $3 - ret z - inc a - ld [wRightAlleyCount], a - cp $3 - jr z, .asm_1d071 - set 7, a -.asm_1d071 - ld [wIndicatorStates + 1], a - ld a, [wRightAlleyCount] - cp $2 - ret c - ld a, $80 - ld [wIndicatorStates + 3], a - ret - -HandleLeftAlleyTriggerBlueField: ; 0x1d080 -; Ball passed over the left alley trigger point in the Blue Field. - xor a - ld [wd523], a - ld [wRightAlleyTrigger], a - ld [wSecondaryLeftAlleyTrigger], a - ld a, $1 - ld [wLeftAlleyTrigger], a - ret c - ret - -HandleRightAlleyTriggerBlueField: ; 0x1d091 -; Ball passed over the right alley trigger point in the Blue Field. - xor a - ld [wd524], a - ld [wLeftAlleyTrigger], a - ld [wSecondaryLeftAlleyTrigger], a - ld a, $1 - ld [wRightAlleyTrigger], a - ret - -ResolveBlueStagePikachuCollision: ; 0x1d0a1 - ld a, [wWhichPikachu] - and a - jr z, .asm_1d110 - xor a - ld [wWhichPikachu], a - ld a, [wd51c] - and a - jr nz, .asm_1d110 - ld a, [wPikachuSaverSlotRewardActive] - and a - jr nz, .asm_1d0c9 - ld a, [wWhichPikachuId] - sub $d - ld hl, wd518 - cp [hl] - jr nz, .asm_1d110 - ld a, [wPikachuSaverCharge] - cp MAX_PIKACHU_SAVER_CHARGE - jr nz, .asm_1d0fc -.asm_1d0c9 - ld hl, PikachuSaverAnimationDataRedStage - ld de, wPikachuSaverAnimationFrameCounter - call CopyHLToDE - ld a, [wPikachuSaverSlotRewardActive] - and a - jr nz, .asm_1d0dc - xor a - ld [wPikachuSaverCharge], a -.asm_1d0dc - ld a, $1 - ld [wd51c], a - xor a - ld [wBallXVelocity], a - ld [wBallXVelocity + 1], a - ld [wBallYVelocity], a - ld [wBallYVelocity + 1], a - ld [wBallSpin], a - ld [wBallRotation], a - ld [wd549], a - call FillBottomMessageBufferWithBlackTile - jr .asm_1d110 - -.asm_1d0fc - ld hl, PikachuSaverAnimation2DataRedStage - ld de, wPikachuSaverAnimationFrameCounter - call CopyHLToDE - ld a, $2 - ld [wd51c], a - lb de, $00, $3b - call PlaySoundEffect -.asm_1d110 - ld a, [wd51c] - and a - call z, Func_1d1fb - call Func_1d133 - ld a, [wPikachuSaverCharge] - cp MAX_PIKACHU_SAVER_CHARGE - ret nz - ld a, [wd51e] - and a - ret z - dec a - ld [wd51e], a - cp $5a - ret nz - lb de, $0f, $22 - call PlaySoundEffect - ret - -Func_1d133: ; 0x1d133 - ld a, [wd51c] - cp $1 - jr nz, .asm_1d1ae - ld hl, PikachuSaverAnimationDataRedStage - ld de, wPikachuSaverAnimationFrameCounter - call UpdateAnimation - ret nc - ld a, [wPikachuSaverAnimationFrameIndex] - cp $1 - jr nz, .asm_1d18c - xor a - ld [wd85d], a - call Func_310a - rst AdvanceFrame - ld a, $1 - callba PlayPikachuSoundClip - ld a, $1 - ld [wd85d], a - ld a, $ff - ld [wd803], a - ld a, $60 - ld [wd804], a - ld hl, wd62e - call Func_e4a - jr nc, .asm_1d185 - ld c, $a - call Func_e55 - callba z, Func_30164 -.asm_1d185 - lb de, $16, $10 - call PlaySoundEffect - ret - -.asm_1d18c - ld a, [wPikachuSaverAnimationFrameIndex] - cp $11 - ret nz - ld a, $fc - ld [wBallYVelocity + 1], a - ld a, $1 - ld [wd549], a - ld bc, FiveThousandPoints - callba AddBigBCD6FromQueueWithBallMultiplier - xor a - ld [wd51c], a - ret - -.asm_1d1ae - cp $2 - jr nz, .asm_1d1c7 - ld hl, PikachuSaverAnimation2DataRedStage - ld de, wPikachuSaverAnimationFrameCounter - call UpdateAnimation - ret nc - ld a, [wPikachuSaverAnimationFrameIndex] - cp $1 - ret nz - xor a - ld [wd51c], a - ret - -.asm_1d1c7 - ld a, [hNumFramesDropped] - swap a - and $1 - ld [wPikachuSaverAnimationFrame], a - ret - -PikachuSaverAnimationDataRedStage: ; 0x1d1d1 -; Each entry is [duration][OAM id] - db $0C, $02 - db $05, $03 - db $05, $02 - db $05, $04 - db $05, $05 - db $05, $02 - db $06, $06 - db $06, $07 - db $06, $08 - db $06, $02 - db $06, $05 - db $06, $08 - db $06, $07 - db $06, $02 - db $06, $08 - db $06, $07 - db $06, $02 - db $01, $00 - db $00 - -PikachuSaverAnimation2DataRedStage: ; 0x1d1f6 -; Each entry is [duration][OAM id] - db $0C, $02 - db $01, $00 - db $00 - -Func_1d1fb: ; 0x1d1fb - ld hl, wKeyConfigLeftFlipper - call IsKeyPressed2 - jr z, .asm_1d209 - ld hl, wd518 - ld [hl], $0 - ret - -.asm_1d209 - ld hl, wKeyConfigRightFlipper - call IsKeyPressed2 - ret z - ld hl, wd518 - ld [hl], $1 - ret - -ResolveSlowpokeCollision: ; 0x1d216 - ld a, [wSlowpokeCollision] - and a - jr z, .asm_1d253 - xor a - ld [wSlowpokeCollision], a - ld bc, TenThousandPoints - callba AddBigBCD6FromQueueWithBallMultiplier - lb de, $00, $05 - call PlaySoundEffect - ld hl, SlowpokeCollisionAnimationData ; 0x1d312 - ld de, wd632 - call CopyHLToDE - xor a - ld [wBallXVelocity], a - ld [wBallXVelocity + 1], a - ld [wBallYVelocity], a - ld [wBallYVelocity + 1], a - ld [wBallXPos], a - ld [wBallYPos], a - xor a - ld [wd549], a -.asm_1d253 - ld hl, SlowpokeCollisionAnimationData ; 0x1d312 - ld de, wd632 - call UpdateAnimation - push af - ld a, [wd632] - and a - jr nz, .asm_1d271 - ld a, $19 - ld [wd632], a - xor a - ld [wd633], a - ld a, $6 - ld [wd634], a -.asm_1d271 - pop af - ret nc - ld a, [wd634] - cp $1 - jr nz, .asm_1d2b6 - xor a - ld [wd548], a - ld a, [wLeftAlleyCount] - cp $3 - jr nz, .asm_1d299 - callba Func_10ab3 - ld a, [wd643] - and a - ret z - ld a, $1 - ld [wd642], a -.asm_1d299 - ld hl, wd63a - call Func_e4a - ld hl, wd62a - call Func_e4a - ret nc - ld c, $19 - call Func_e55 - callba z, Func_30164 - ret - -.asm_1d2b6 - ld a, [wd634] - cp $4 - jr nz, .asm_1d2c3 - ld a, $1 - ld [wd548], a - ret - -.asm_1d2c3 - ld a, [wd634] - cp $5 - ret nz - ld a, $1 - ld [wd549], a - ld a, $b0 - ld [wBallXVelocity], a - ld a, $0 - ld [wBallXVelocity + 1], a - xor a - ld [wBallYVelocity], a - ld [wBallYVelocity + 1], a - lb de, $00, $06 - call PlaySoundEffect - ld a, [wd642] - cp $0 - jr nz, .asm_1d2f8 - ld a, $f - callba Func_10000 -.asm_1d2f8 - xor a - ld [wd642], a - ld [wd64c], a - ld [wd64d], a - ld a, $1 - ld [wd641], a - ld a, $2 ; down direction - ld [wBlueStageForceFieldDirection], a - ld a, $1 - ld [wd640], a - ret - -SlowpokeCollisionAnimationData: ; 0x1d312 -; Each entry is [OAM id][duration] - db $08, $01 - db $06, $02 - db $06, $02 - db $08, $01 - db $01, $00 - db $29, $00 - db $28, $01 - db $2A, $00 - db $27, $01 - db $29, $00 - db $28, $01 - db $2B, $00 - db $28, $01 - db $00 - -ResolveCloysterCollision: ; 0x1d32d - ld a, [wCloysterCollision] - and a - jr z, .asm_1d36a - xor a - ld [wCloysterCollision], a - ld bc, TenThousandPoints - callba AddBigBCD6FromQueueWithBallMultiplier - lb de, $00, $05 - call PlaySoundEffect - ld hl, CloysterCollisionAnimationData - ld de, wd637 - call CopyHLToDE - xor a - ld [wBallXVelocity], a - ld [wBallXVelocity + 1], a - ld [wBallYVelocity], a - ld [wBallYVelocity + 1], a - ld [wBallXPos], a - ld [wBallYPos], a - xor a - ld [wd549], a -.asm_1d36a - ld hl, CloysterCollisionAnimationData - ld de, wd637 - call UpdateAnimation - push af - ld a, [wd637] - and a - jr nz, .asm_1d388 - ld a, $19 - ld [wd637], a - xor a - ld [wd638], a - ld a, $6 - ld [wd639], a -.asm_1d388 - pop af - ret nc - ld a, [wd639] - cp $1 - jr nz, .asm_1d3cb - xor a - ld [wd548], a - ld a, [wRightAlleyCount] - cp $2 - jr c, .noCatchEmMode - ld a, $8 - jr nz, .asm_1d3a1 - xor a -.asm_1d3a1 - ld [wRareMonsFlag], a - callba StartCatchEmMode -.noCatchEmMode - ld hl, wd63b - call Func_e4a - ld hl, wd62a - call Func_e4a - ret nc - ld c, $19 - call Func_e55 - callba z, Func_30164 - ret - -.asm_1d3cb - ld a, [wd639] - cp $4 - jr nz, .asm_1d3d8 - ld a, $1 - ld [wd548], a - ret - -.asm_1d3d8 - ld a, [wd639] - cp $5 - ret nz - ld a, $1 - ld [wd549], a - ld a, $4f - ld [wBallXVelocity], a - ld a, $ff - ld [wBallXVelocity + 1], a - xor a - ld [wBallYVelocity], a - ld [wBallYVelocity + 1], a - lb de, $00, $06 - call PlaySoundEffect - ld a, $e - callba Func_10000 - xor a - ld [wd64c], a - ld [wd64d], a - ld a, $1 - ld [wd641], a - ld a, $2 ; down direction - ld [wBlueStageForceFieldDirection], a - ld a, $1 - ld [wd640], a - ret - -CloysterCollisionAnimationData: ; 0x1d41d -; Each entry is [OAM id][duration] - db $08, $01 - db $06, $02 - db $06, $02 - db $08, $01 - db $01, $00 - db $29, $00 - db $28, $01 - db $2A, $00 - db $27, $01 - db $29, $00 - db $28, $01 - db $2B, $00 - db $28, $01 - db 00 ; terminator - -ResolveBlueStageBonusMultiplierCollision: ; 0x1d438 - call Func_1d692 - ld a, [wWhichBonusMultiplierRailing] - and a - jp z, Func_1d51b - xor a - ld [wWhichBonusMultiplierRailing], a - lb de, $00, $0d - call PlaySoundEffect - ld a, [wWhichBonusMultiplierRailingId] - sub $f - jr nz, .asm_1d48e - ld a, [hGameBoyColorFlag] - and a - jr nz, .asm_1d45c - ld a, $1f - jr .asm_1d45e - -.asm_1d45c - ld a, $29 -.asm_1d45e - call Func_1d5f2 - ld a, $3c - ld [wd647], a - ld a, $9 - callba Func_10000 - ld a, [wd610] - cp $3 - jp nz, asm_1d4fa - ld a, $1 - ld [wd610], a - ld a, $3 - ld [wd611], a - ld a, [wd60c] - set 7, a - ld [wd60c], a - jr asm_1d4fa - -.asm_1d48e - ld a, [hGameBoyColorFlag] - and a - jr nz, .asm_1d497 - ld a, $21 - jr .asm_1d499 - -.asm_1d497 - ld a, $2b -.asm_1d499 - call Func_1d5f2 - ld a, $1e - ld [wd647], a - ld a, $a - callba Func_10000 - ld a, [wd611] - cp $3 - jr nz, asm_1d4fa - ld a, $1 - ld [wd610], a - ld a, $1 - ld [wd611], a - ld a, $80 - ld [wd612], a - ld a, [wd60d] - set 7, a - ld [wd60d], a - ld a, [wd482] - inc a - cp 100 - jr c, .asm_1d4d5 - ld a, 99 -.asm_1d4d5 - ld [wd482], a - jr nc, .asm_1d4e9 - ld c, $19 - call Func_e55 - callba z, Func_30164 -.asm_1d4e9 - ld a, [wd60c] - ld [wd614], a - ld a, [wd60d] - ld [wd615], a - ld a, $1 - ld [wd613], a -asm_1d4fa: ; 0x1d4fa - ld bc, TenPoints - callba AddBigBCD6FromQueueWithBallMultiplier - ld a, [wd60c] - call Func_1d5f2 - ld a, [wd60d] - add $14 - call Func_1d5f2 - ld a, $3c - ld [wd647], a - ret - -Func_1d51b: ; 0x1d51b - call Func_1d5bf - ld a, [wd612] - and a - jr z, .asm_1d559 - dec a - ld [wd612], a - cp $70 - jr nz, .asm_1d538 - ld a, $2 - ld [wd610], a - ld a, $2 - ld [wd611], a - jr .asm_1d559 - -.asm_1d538 - and a - jr nz, .asm_1d559 - ld a, $3 - ld [wd610], a - xor a - ld [wd611], a - ld a, [wd482] - call Func_1d65f - ld a, [wd60c] - call Func_1d5f2 - ld a, [wd60d] - add $14 - call Func_1d5f2 - ret - -.asm_1d559 - ld a, [wd610] - cp $2 - jr c, .asm_1d58b - cp $3 - ld a, [hNumFramesDropped] - jr c, .asm_1d56a - srl a - srl a -.asm_1d56a - ld b, a - and $3 - jr nz, .asm_1d58b - bit 3, b - jr nz, .asm_1d580 - ld a, [wd60c] - res 7, a - ld [wd60c], a - call Func_1d5f2 - jr .asm_1d58b - -.asm_1d580 - ld a, [wd60c] - set 7, a - ld [wd60c], a - call Func_1d5f2 -.asm_1d58b - ld a, [wd611] - cp $2 - ret c - cp $3 - ld a, [hNumFramesDropped] - jr c, .asm_1d59b - srl a - srl a -.asm_1d59b - ld b, a - and $3 - ret nz - bit 3, b - jr nz, .asm_1d5b1 - ld a, [wd60d] - res 7, a - ld [wd60d], a - add $14 - call Func_1d5f2 - ret - -.asm_1d5b1 - ld a, [wd60d] - set 7, a - ld [wd60d], a - add $14 - call Func_1d5f2 - ret - -Func_1d5bf: ; 0x1d5bf - ld a, [wd5ca] - and a - ret nz - ld a, [wd613] - and a - ret z - xor a - ld [wd613], a - call FillBottomMessageBufferWithBlackTile - call Func_30db - ld hl, wd5cc - ld de, BonusMultiplierText - call LoadTextHeader - ld hl, wBottomMessageText + $12 - ld a, [wd614] - and $7f - jr z, .asm_1d5e9 - add $30 - ld [hli], a -.asm_1d5e9 - ld a, [wd615] - res 7, a - add $30 - ld [hl], a - ret - -Func_1d5f2: ; 0x1d5f2 - push af - ld a, [hGameBoyColorFlag] - and a - jr nz, .asm_1d5fd - pop af - call Func_1d602 - ret - -.asm_1d5fd - pop af - call Func_1d645 - ret - -Func_1d602: ; 0x1d602 - push af - res 7, a - ld hl, wd60e - cp $14 - jr c, .asm_1d611 - ld hl, wd60f - sub $a -.asm_1d611 - cp [hl] - jr z, .asm_1d626 - ld [hl], a - ld c, a - ld b, $0 - sla c - ld hl, TileDataPointers_1d6be - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - ld a, Bank(TileDataPointers_1d6be) - call Func_10aa -.asm_1d626 - pop af - ld bc, $0000 - bit 7, a - jr z, .asm_1d632 - res 7, a - set 1, c -.asm_1d632 - cp $14 - jr c, .asm_1d638 - set 2, c -.asm_1d638 - ld hl, TileDataPointers_1d946 - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - ld a, Bank(TileDataPointers_1d946) - call Func_10aa - ret - -Func_1d645: ; 0x1d645 - bit 7, a - jr z, .asm_1d64d - res 7, a - add $a -.asm_1d64d - ld c, a - ld b, $0 - sla c - ld hl, TileDataPointers_1d97a - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - ld a, Bank(TileDataPointers_1d97a) - call Func_10aa - ret - -Func_1d65f: ; 0x1d65f - ld a, [wd482] - inc a - cp $64 - jr c, .asm_1d669 - ld a, $63 -.asm_1d669 - ld b, a - xor a - ld hl, Data_1d68b - ld c, $7 -.asm_1d670 - bit 0, b - jr z, .asm_1d676 - add [hl] - daa -.asm_1d676 - srl b - inc hl - dec c - jr nz, .asm_1d670 - push af - swap a - and $f - ld [wd60c], a - pop af - and $f - ld [wd60d], a - ret - -Data_1d68b: -; BCD powers of 2 - db $01, $02, $04, $08, $16, $32, $64 - -Func_1d692: ; 0x1d692 - ld a, [wd647] - cp $1 - jr z, .asm_1d69e - dec a - ld [wd647], a - ret - -.asm_1d69e - ld a, $0 - ld [wd647], a - ld a, [hGameBoyColorFlag] - and a - jr nz, .asm_1d6b3 - ld a, $1e - call Func_1d5f2 - ld a, $20 - call Func_1d5f2 - ret - -.asm_1d6b3 - ld a, $2a - call Func_1d5f2 - ld a, $28 - call Func_1d5f2 - ret - -TileDataPointers_1d6be: - dw TileData_1d6ee - dw TileData_1d6f3 - dw TileData_1d6f8 - dw TileData_1d6fd - dw TileData_1d702 - dw TileData_1d707 - dw TileData_1d70c - dw TileData_1d711 - dw TileData_1d716 - dw TileData_1d71b - dw TileData_1d720 - dw TileData_1d725 - dw TileData_1d72a - dw TileData_1d72f - dw TileData_1d734 - dw TileData_1d739 - dw TileData_1d73e - dw TileData_1d743 - dw TileData_1d748 - dw TileData_1d74d - dw TileData_1d752 - dw TileData_1d757 - dw TileData_1d75c - dw TileData_1d761 - -TileData_1d6ee: ; 0x1d6ee - db $02 - dw TileData_1d766 - dw TileData_1d770 - -TileData_1d6f3: ; 0x1d6f3 - db $02 - dw TileData_1d77a - dw TileData_1d784 - -TileData_1d6f8: ; 0x1d6f8 - db $02 - dw TileData_1d78e - dw TileData_1d798 - -TileData_1d6fd: ; 0x1d6fd - db $02 - dw TileData_1d7a2 - dw TileData_1d7AC - -TileData_1d702: ; 0x1d702 - db $02 - dw TileData_1d7b6 - dw TileData_1d7C0 - -TileData_1d707: ; 0x1d707 - db $02 - dw TileData_1d7ca - dw TileData_1d7D4 - -TileData_1d70c: ; 0x1d70c - db $02 - dw TileData_1d7de - dw TileData_1d7E8 - -TileData_1d711: ; 0x1d711 - db $02 - dw TileData_1d7f2 - dw TileData_1d7FC - -TileData_1d716: ; 0x1d716 - db $02 - dw TileData_1d806 - dw TileData_1d810 - -TileData_1d71b: ; 0x1d71b - db $02 - dw TileData_1d81a - dw TileData_1d824 - -TileData_1d720: ; 0x1d720 - db $02 - dw TileData_1d82e - dw TileData_1d838 - -TileData_1d725: ; 0x1d725 - db $02 - dw TileData_1d842 - dw TileData_1d84C - -TileData_1d72a: ; 0x1d72a - db $02 - dw TileData_1d856 - dw TileData_1d860 - -TileData_1d72f: ; 0x1d72f - db $02 - dw TileData_1d86a - dw TileData_1d874 - -TileData_1d734: ; 0x1d734 - db $02 - dw TileData_1d87e - dw TileData_1d888 - -TileData_1d739: ; 0x1d739 - db $02 - dw TileData_1d892 - dw TileData_1d89C - -TileData_1d73e: ; 0x1d73e - db $02 - dw TileData_1d8a6 - dw TileData_1d8B0 - -TileData_1d743: ; 0x1d743 - db $02 - dw TileData_1d8ba - dw TileData_1d8C4 - -TileData_1d748: ; 0x1d748 - db $02 - dw TileData_1d8ce - dw TileData_1d8D8 - -TileData_1d74d: ; 0x1d74d - db $02 - dw TileData_1d8e2 - dw TileData_1d8EC - -TileData_1d752: ; 0x1d752 - db $02 - dw TileData_1d8f6 - dw TileData_1d900 - -TileData_1d757: ; 0x1d757 - db $02 - dw TileData_1d90a - dw TileData_1d914 - -TileData_1d75c: ; 0x1d75c - db $02 - dw TileData_1d91e - dw TileData_1d928 - -TileData_1d761: ; 0x1d761 - db $02 - dw TileData_1d932 - dw TileData_1d93C - -TileData_1d766: ; 0x1d766 - dw Func_11d2 - db $10, $01 - dw vTilesBG tile $27 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1d60 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileData_1d770: ; 0x1d770 - dw Func_11d2 - db $10, $01 - dw vTilesBG tile $7D - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1cc0 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileData_1d77a: ; 0x1d77a - dw Func_11d2 - db $10, $01 - dw vTilesBG tile $27 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1d70 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileData_1d784: ; 0x1d784 - dw Func_11d2 - db $10, $01 - dw vTilesBG tile $7D - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1cd0 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileData_1d78e: ; 0x1d78e - dw Func_11d2 - db $10, $01 - dw vTilesBG tile $27 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1d80 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileData_1d798: ; 0x1d798 - dw Func_11d2 - db $10, $01 - dw vTilesBG tile $7D - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1ce0 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileData_1d7a2: ; 0x1d7a2 - dw Func_11d2 - db $10, $01 - dw vTilesBG tile $27 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1d90 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileData_1d7AC: ; 0x1d7AC - dw Func_11d2 - db $10, $01 - dw vTilesBG tile $7D - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1cf0 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileData_1d7b6: ; 0x1d7b6 - dw Func_11d2 - db $10, $01 - dw vTilesBG tile $27 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1da0 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileData_1d7C0: ; 0x1d7C0 - dw Func_11d2 - db $10, $01 - dw vTilesBG tile $7D - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1d00 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileData_1d7ca: ; 0x1d7ca - dw Func_11d2 - db $10, $01 - dw vTilesBG tile $27 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1db0 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileData_1d7D4: ; 0x1d7D4 - dw Func_11d2 - db $10, $01 - dw vTilesBG tile $7D - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1d10 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileData_1d7de: ; 0x1d7de - dw Func_11d2 - db $10, $01 - dw vTilesBG tile $27 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1dc0 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileData_1d7E8: ; 0x1d7E8 - dw Func_11d2 - db $10, $01 - dw vTilesBG tile $7D - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1d20 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileData_1d7f2: ; 0x1d7f2 - dw Func_11d2 - db $10, $01 - dw vTilesBG tile $27 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1dd0 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileData_1d7FC: ; 0x1d7FC - dw Func_11d2 - db $10, $01 - dw vTilesBG tile $7D - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1d30 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileData_1d806: ; 0x1d806 - dw Func_11d2 - db $10, $01 - dw vTilesBG tile $27 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1de0 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileData_1d810: ; 0x1d810 - dw Func_11d2 - db $10, $01 - dw vTilesBG tile $7D - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1d40 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileData_1d81a: ; 0x1d81a - dw Func_11d2 - db $10, $01 - dw vTilesBG tile $27 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1df0 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileData_1d824: ; 0x1d824 - dw Func_11d2 - db $10, $01 - dw vTilesBG tile $7D - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1d50 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileData_1d82e: ; 0x1d82e - dw Func_11d2 - db $10, $01 - dw vTilesBG tile $28 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1ea0 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileData_1d838: ; 0x1d838 - dw Func_11d2 - db $10, $01 - dw vTilesBG tile $7E - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1e00 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileData_1d842: ; 0x1d842 - dw Func_11d2 - db $10, $01 - dw vTilesBG tile $28 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1eb0 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileData_1d84C: ; 0x1d84C - dw Func_11d2 - db $10, $01 - dw vTilesBG tile $7E - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1e10 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileData_1d856: ; 0x1d856 - dw Func_11d2 - db $10, $01 - dw vTilesBG tile $28 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1ec0 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileData_1d860: ; 0x1d860 - dw Func_11d2 - db $10, $01 - dw vTilesBG tile $7E - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1e20 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileData_1d86a: ; 0x1d86a - dw Func_11d2 - db $10, $01 - dw vTilesBG tile $28 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1ed0 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileData_1d874: ; 0x1d874 - dw Func_11d2 - db $10, $01 - dw vTilesBG tile $7E - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1e30 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileData_1d87e: ; 0x1d87e - dw Func_11d2 - db $10, $01 - dw vTilesBG tile $28 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1ee0 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileData_1d888: ; 0x1d888 - dw Func_11d2 - db $10, $01 - dw vTilesBG tile $7E - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1e40 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileData_1d892: ; 0x1d892 - dw Func_11d2 - db $10, $01 - dw vTilesBG tile $28 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1ef0 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileData_1d89C: ; 0x1d89C - dw Func_11d2 - db $10, $01 - dw vTilesBG tile $7E - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1e50 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileData_1d8a6: ; 0x1d8a6 - dw Func_11d2 - db $10, $01 - dw vTilesBG tile $28 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1f00 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileData_1d8B0: ; 0x1d8B0 - dw Func_11d2 - db $10, $01 - dw vTilesBG tile $7E - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1e60 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileData_1d8ba: ; 0x1d8ba - dw Func_11d2 - db $10, $01 - dw vTilesBG tile $28 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1f10 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileData_1d8C4: ; 0x1d8C4 - dw Func_11d2 - db $10, $01 - dw vTilesBG tile $7E - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1e70 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileData_1d8ce: ; 0x1d8ce - dw Func_11d2 - db $10, $01 - dw vTilesBG tile $28 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1f20 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileData_1d8D8: ; 0x1d8D8 - dw Func_11d2 - db $10, $01 - dw vTilesBG tile $7E - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1e80 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileData_1d8e2: ; 0x1d8e2 - dw Func_11d2 - db $10, $01 - dw vTilesBG tile $28 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1f30 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileData_1d8EC: ; 0x1d8EC - dw Func_11d2 - db $10, $01 - dw vTilesBG tile $7E - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1e90 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileData_1d8f6: ; 0x1d8f6 - dw Func_11d2 - db $30, $03 - dw vTilesBG tile $29 - dw StageBlueFieldBottomBaseGameBoyGfx + $A90 - db Bank(StageBlueFieldBottomBaseGameBoyGfx) - db $00 - -TileData_1d900: ; 0x1d900 - dw Func_11d2 - db $20, $02 - dw vTilesBG tile $2C - dw StageBlueFieldBottomBaseGameBoyGfx + $AC0 - db Bank(StageBlueFieldBottomBaseGameBoyGfx) - db $00 - -TileData_1d90a: ; 0x1d90a - dw Func_11d2 - db $30, $03 - dw vTilesBG tile $29 - dw StageBlueFieldBottomBaseGameBoyGfx + $AE0 - db Bank(StageBlueFieldBottomBaseGameBoyGfx) - db $00 - -TileData_1d914: ; 0x1d914 - dw Func_11d2 - db $20, $02 - dw vTilesBG tile $2C - dw StageBlueFieldBottomBaseGameBoyGfx + $B10 - db Bank(StageBlueFieldBottomBaseGameBoyGfx) - db $00 - -TileData_1d91e: ; 0x1d91e - dw Func_11d2 - db $30, $03 - dw vTilesBG tile $33 - dw StageBlueFieldBottomBaseGameBoyGfx + $B30 - db Bank(StageBlueFieldBottomBaseGameBoyGfx) - db $00 - -TileData_1d928: ; 0x1d928 - dw Func_11d2 - db $20, $02 - dw vTilesBG tile $36 - dw StageBlueFieldBottomBaseGameBoyGfx + $B60 - db Bank(StageBlueFieldBottomBaseGameBoyGfx) - db $00 - -TileData_1d932: ; 0x1d932 - dw Func_11d2 - db $30, $03 - dw vTilesBG tile $33 - dw StageBlueFieldBottomBaseGameBoyGfx + $B80 - db Bank(StageBlueFieldBottomBaseGameBoyGfx) - db $00 - -TileData_1d93C: ; 0x1d93C - dw Func_11d2 - db $20, $02 - dw vTilesBG tile $36 - dw StageBlueFieldBottomBaseGameBoyGfx + $BB0 - db Bank(StageBlueFieldBottomBaseGameBoyGfx) - db $00 - -TileDataPointers_1d946: - dw TileData_1d94e - dw TileData_1d951 - dw TileData_1d954 - dw TileData_1d957 - -TileData_1d94e: ; 0x1d94e - db $01 - dw TileData_1d95a - -TileData_1d951: ; 0x1d951 - db $01 - dw TileData_1d962 - -TileData_1d954: ; 0x1d954 - db $01 - dw TileData_1d96a - -TileData_1d957: ; 0x1d957 - db $01 - dw TileData_1d972 - -TileData_1d95a: ; 0x1d95a - dw LoadTileLists - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $4 - db $27 - - db $00 ; terminator - -TileData_1d962: ; 0x1d962 - dw LoadTileLists - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $4 - db $7D - - db $00 ; terminator - -TileData_1d96a: ; 0x1d96a - dw LoadTileLists - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $F - db $28 - - db $00 ; terminator - -TileData_1d972: ; 0x1d972 - dw LoadTileLists - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $F - db $7E - - db $00 ; terminator - -TileDataPointers_1d97a: - dw TileData_1d9d2 - dw TileData_1d9d5 - dw TileData_1d9d8 - dw TileData_1d9db - dw TileData_1d9de - dw TileData_1d9e1 - dw TileData_1d9e4 - dw TileData_1d9e7 - dw TileData_1d9ea - dw TileData_1d9ed - dw TileData_1d9f0 - dw TileData_1d9f3 - dw TileData_1d9f6 - dw TileData_1d9f9 - dw TileData_1d9fc - dw TileData_1d9ff - dw TileData_1da02 - dw TileData_1da05 - dw TileData_1da08 - dw TileData_1da0b - dw TileData_1da0e - dw TileData_1da11 - dw TileData_1da14 - dw TileData_1da17 - dw TileData_1da1a - dw TileData_1da1d - dw TileData_1da20 - dw TileData_1da23 - dw TileData_1da26 - dw TileData_1da29 - dw TileData_1da2c - dw TileData_1da2f - dw TileData_1da32 - dw TileData_1da35 - dw TileData_1da38 - dw TileData_1da3b - dw TileData_1da3e - dw TileData_1da41 - dw TileData_1da44 - dw TileData_1da47 - dw TileData_1da4a - dw TileData_1da4d - dw TileData_1da50 - dw TileData_1da53 - -TileData_1d9d2: ; 0x1d9d2 - db $01 - dw TileData_1da56 - -TileData_1d9d5: ; 0x1d9d5 - db $01 - dw TileData_1da5e - -TileData_1d9d8: ; 0x1d9d8 - db $01 - dw TileData_1da66 - -TileData_1d9db: ; 0x1d9db - db $01 - dw TileData_1da6e - -TileData_1d9de: ; 0x1d9de - db $01 - dw TileData_1da76 - -TileData_1d9e1: ; 0x1d9e1 - db $01 - dw TileData_1da7e - -TileData_1d9e4: ; 0x1d9e4 - db $01 - dw TileData_1da86 - -TileData_1d9e7: ; 0x1d9e7 - db $01 - dw TileData_1da8e - -TileData_1d9ea: ; 0x1d9ea - db $01 - dw TileData_1da96 - -TileData_1d9ed: ; 0x1d9ed - db $01 - dw TileData_1da9e - -TileData_1d9f0: ; 0x1d9f0 - db $01 - dw TileData_1daa6 - -TileData_1d9f3: ; 0x1d9f3 - db $01 - dw TileData_1daae - -TileData_1d9f6: ; 0x1d9f6 - db $01 - dw TileData_1dab6 - -TileData_1d9f9: ; 0x1d9f9 - db $01 - dw TileData_1dabe - -TileData_1d9fc: ; 0x1d9fc - db $01 - dw TileData_1dac6 - -TileData_1d9ff: ; 0x1d9ff - db $01 - dw TileData_1dace - -TileData_1da02: ; 0x1da02 - db $01 - dw TileData_1dad6 - -TileData_1da05: ; 0x1da05 - db $01 - dw TileData_1dade - -TileData_1da08: ; 0x1da08 - db $01 - dw TileData_1dae6 - -TileData_1da0b: ; 0x1da0b - db $01 - dw TileData_1daee - -TileData_1da0e: ; 0x1da0e - db $01 - dw TileData_1daf6 - -TileData_1da11: ; 0x1da11 - db $01 - dw TileData_1dafe - -TileData_1da14: ; 0x1da14 - db $01 - dw TileData_1db06 - -TileData_1da17: ; 0x1da17 - db $01 - dw TileData_1db0e - -TileData_1da1a: ; 0x1da1a - db $01 - dw TileData_1db16 - -TileData_1da1d: ; 0x1da1d - db $01 - dw TileData_1db1e - -TileData_1da20: ; 0x1da20 - db $01 - dw TileData_1db26 - -TileData_1da23: ; 0x1da23 - db $01 - dw TileData_1db2e - -TileData_1da26: ; 0x1da26 - db $01 - dw TileData_1db36 - -TileData_1da29: ; 0x1da29 - db $01 - dw TileData_1db3e - -TileData_1da2c: ; 0x1da2c - db $01 - dw TileData_1db46 - -TileData_1da2f: ; 0x1da2f - db $01 - dw TileData_1db4e - -TileData_1da32: ; 0x1da32 - db $01 - dw TileData_1db56 - -TileData_1da35: ; 0x1da35 - db $01 - dw TileData_1db5e - -TileData_1da38: ; 0x1da38 - db $01 - dw TileData_1db66 - -TileData_1da3b: ; 0x1da3b - db $01 - dw TileData_1db6e - -TileData_1da3e: ; 0x1da3e - db $01 - dw TileData_1db76 - -TileData_1da41: ; 0x1da41 - db $01 - dw TileData_1db7e - -TileData_1da44: ; 0x1da44 - db $01 - dw TileData_1db86 - -TileData_1da47: ; 0x1da47 - db $01 - dw TileData_1db8e - -TileData_1da4a: ; 0x1da4a - db $01 - dw TileData_1db96 - -TileData_1da4d: ; 0x1da4d - db $01 - dw TileData_1dba5 - -TileData_1da50: ; 0x1da50 - db $01 - dw TileData_1dbb4 - -TileData_1da53: ; 0x1da53 - db $01 - dw TileData_1dbc3 - -TileData_1da56: ; 0x1da56 - dw LoadTileLists - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $4 - db $62 - - db $00 ; terminator - -TileData_1da5e: ; 0x1da5e - dw LoadTileLists - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $4 - db $63 - - db $00 ; terminator - -TileData_1da66: ; 0x1da66 - dw LoadTileLists - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $4 - db $64 - - db $00 ; terminator - -TileData_1da6e: ; 0x1da6e - dw LoadTileLists - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $4 - db $65 - - db $00 ; terminator - -TileData_1da76: ; 0x1da76 - dw LoadTileLists - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $4 - db $66 - - db $00 ; terminator - -TileData_1da7e: ; 0x1da7e - dw LoadTileLists - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $4 - db $67 - - db $00 ; terminator - -TileData_1da86: ; 0x1da86 - dw LoadTileLists - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $4 - db $68 - - db $00 ; terminator - -TileData_1da8e: ; 0x1da8e - dw LoadTileLists - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $4 - db $69 - - db $00 ; terminator - -TileData_1da96: ; 0x1da96 - dw LoadTileLists - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $4 - db $6A - - db $00 ; terminator - -TileData_1da9e: ; 0x1da9e - dw LoadTileLists - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $4 - db $6B - - db $00 ; terminator - -TileData_1daa6: ; 0x1daa6 - dw LoadTileLists - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $4 - db $58 - - db $00 ; terminator - -TileData_1daae: ; 0x1daae - dw LoadTileLists - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $4 - db $59 - - db $00 ; terminator - -TileData_1dab6: ; 0x1dab6 - dw LoadTileLists - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $4 - db $5A - - db $00 ; terminator - -TileData_1dabe: ; 0x1dabe - dw LoadTileLists - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $4 - db $5B - - db $00 ; terminator - -TileData_1dac6: ; 0x1dac6 - dw LoadTileLists - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $4 - db $5C - - db $00 ; terminator - -TileData_1dace: ; 0x1dace - dw LoadTileLists - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $4 - db $5D - - db $00 ; terminator - -TileData_1dad6: ; 0x1dad6 - dw LoadTileLists - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $4 - db $5E - - db $00 ; terminator - -TileData_1dade: ; 0x1dade - dw LoadTileLists - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $4 - db $5F - - db $00 ; terminator - -TileData_1dae6: ; 0x1dae6 - dw LoadTileLists - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $4 - db $60 - - db $00 ; terminator - -TileData_1daee: ; 0x1daee - dw LoadTileLists - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $4 - db $61 - - db $00 ; terminator - -TileData_1daf6: ; 0x1daf6 - dw LoadTileLists - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $F - db $76 - - db $00 ; terminator - -TileData_1dafe: ; 0x1dafe - dw LoadTileLists - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $F - db $77 - - db $00 ; terminator - -TileData_1db06: ; 0x1db06 - dw LoadTileLists - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $F - db $78 - - db $00 ; terminator - -TileData_1db0e: ; 0x1db0e - dw LoadTileLists - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $F - db $79 - - db $00 ; terminator - -TileData_1db16: ; 0x1db16 - dw LoadTileLists - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $F - db $7A - - db $00 ; terminator - -TileData_1db1e: ; 0x1db1e - dw LoadTileLists - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $F - db $7B - - db $00 ; terminator - -TileData_1db26: ; 0x1db26 - dw LoadTileLists - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $F - db $7C - - db $00 ; terminator - -TileData_1db2e: ; 0x1db2e - dw LoadTileLists - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $F - db $7D - - db $00 ; terminator - -TileData_1db36: ; 0x1db36 - dw LoadTileLists - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $F - db $7E - - db $00 ; terminator - -TileData_1db3e: ; 0x1db3e - dw LoadTileLists - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $F - db $7F - - db $00 ; terminator - -TileData_1db46: ; 0x1db46 - dw LoadTileLists - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $F - db $6C - - db $00 ; terminator - -TileData_1db4e: ; 0x1db4e - dw LoadTileLists - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $F - db $6D - - db $00 ; terminator - -TileData_1db56: ; 0x1db56 - dw LoadTileLists - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $F - db $6E - - db $00 ; terminator - -TileData_1db5e: ; 0x1db5e - dw LoadTileLists - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $F - db $6F - - db $00 ; terminator - -TileData_1db66: ; 0x1db66 - dw LoadTileLists - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $F - db $70 - - db $00 ; terminator - -TileData_1db6e: ; 0x1db6e - dw LoadTileLists - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $F - db $71 - - db $00 ; terminator - -TileData_1db76: ; 0x1db76 - dw LoadTileLists - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $F - db $72 - - db $00 ; terminator - -TileData_1db7e: ; 0x1db7e - dw LoadTileLists - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $F - db $73 - - db $00 ; terminator - -TileData_1db86: ; 0x1db86 - dw LoadTileLists - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $F - db $74 - - db $00 ; terminator - -TileData_1db8e: ; 0x1db8e - dw LoadTileLists - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $F - db $75 - - db $00 ; terminator - -TileData_1db96: ; 0x1db96 - dw LoadTileLists - db $05 ; total number of tiles - - db $03 ; number of tiles - dw vBGMap + $24 - db $25, $26, $27 - - db $02 ; number of tiles - dw vBGMap + $44 - db $28, $29 - - db $00 ; terminator - -TileData_1dba5: ; 0x1dba5 - dw LoadTileLists - db $05 ; total number of tiles - - db $03 ; number of tiles - dw vBGMap + $24 - db $2A, $2B, $2C - - db $02 ; number of tiles - dw vBGMap + $44 - db $2D, $2E - - db $00 ; terminator - -TileData_1dbb4: ; 0x1dbb4 - dw LoadTileLists - db $05 ; total number of tiles - - db $03 ; number of tiles - dw vBGMap + $2D - db $27, $26, $2F - - db $02 ; number of tiles - dw vBGMap + $4E - db $29, $28 - - db $00 ; terminator - -TileData_1dbc3: ; 0x1dbc3 - dw LoadTileLists - db $05 ; total number of tiles - - db $03 ; number of tiles - dw vBGMap + $2D - db $2C, $2B, $30 - - db $02 ; number of tiles - dw vBGMap + $4E - db $2E, $2D - - db $00 ; terminator - -ResolvePsyduckPoliwagCollision: ; 0x1dbd2 - ld a, [wWhichPsyduckPoliwag] - and a - jp z, Func_1dc8e - cp $2 - jr z, .asm_1dc33 - xor a - ld [wWhichPsyduckPoliwag], a - ld hl, wLeftMapMoveCounter - ld a, [hl] - cp $3 - jp z, Func_1dc8e - inc a - ld [hl], a - ld hl, wd4f7 - ld a, $e0 - ld [hli], a - ld a, $1 - ld [hl], a - ld a, [wCurrentStage] - bit 0, a - jr z, .asm_1dc06 - ld a, $54 - ld [wc7e3], a - ld a, $55 - ld [wc803], a -.asm_1dc06 - ld a, $1 - call Func_1de4b - ld a, [wLeftMapMoveCounter] - call Func_1de6f - ld a, [wLeftMapMoveCounter] - cp $3 - ld a, $7 - callba Func_10000 - ld a, $2 - ld [wd646], a - ld a, $78 - ld [wLeftMapMoveDiglettAnimationCounter], a - ld a, $14 - ld [wLeftMapMoveDiglettFrame], a - jr .asm_1dc8a - -.asm_1dc33 - xor a - ld [wWhichPsyduckPoliwag], a - ld hl, wRightMapMoveCounter - ld a, [hl] - cp $3 - jp z, Func_1dc8e - inc a - ld [hl], a - ld hl, wd4f9 - ld a, $e0 - ld [hli], a - ld a, $1 - ld [hl], a - ld a, [wCurrentStage] - bit 0, a - jr z, .asm_1dc5c - ld a, $52 - ld [wc7f0], a - ld a, $53 - ld [wc810], a -.asm_1dc5c - ld a, $3 - call Func_1de4b - ld a, [wRightMapMoveCounter] - cp $3 - ld a, $8 - callba Func_10000 - ld a, [wRightMapMoveCounter] - cp $3 - ccf - call z, Func_1ddf4 - ld a, $2 - ld [wd645], a - ld a, $28 - ld [wRightMapMoveDiglettAnimationCounter], a - ld a, $78 - ld [wRightMapMoveDiglettFrame], a -.asm_1dc8a - call Func_1de22 - ret - -Func_1dc8e: ; 0x1dc8e - call Func_1dc95 - call Func_1dd2e - ret - -Func_1dc95: ; 0x1dc95 - ld a, [wd646] - cp $0 - ret z - ld a, [wLeftMapMoveDiglettAnimationCounter] - and a - jr z, .asm_1dceb - dec a - ld [wLeftMapMoveDiglettAnimationCounter], a - ld a, [wd644] - and a - ret nz - ld a, [wLeftMapMoveDiglettFrame] - cp $1 - jr z, .asm_1dcb9 - cp $0 - ret z - dec a - ld [wLeftMapMoveDiglettFrame], a - ret - -.asm_1dcb9 - ld a, [wd646] - cp $2 - ret nz - call Func_1130 - ret nz - ld a, [hGameBoyColorFlag] - and a - jr z, .asm_1dcd7 - ld a, [wLeftMapMoveCounter] - cp $0 - jr z, .asm_1dcd4 - ld b, $7 - add b - jr .asm_1dcd9 - -.asm_1dcd4 - xor a - jr .asm_1dcd9 - -.asm_1dcd7 - ld a, $8 -.asm_1dcd9 - call Func_1de6f - ld a, [wLeftMapMoveCounter] - cp $3 - ccf - call z, Func_1ddc7 - ld a, $1 - ld [wd646], a - ret - -.asm_1dceb - ld a, [wd646] - cp $1 - ret nz - ld a, [wLeftMapMoveDiglettAnimationCounter] - and a - ret nz - ld a, $0 - call Func_1de4b - ld a, [wCurrentStage] - bit 0, a - jr z, .asm_1dd0c - ld a, $5e - ld [wc7e3], a - ld a, $5f - ld [wc803], a -.asm_1dd0c - ld a, $0 - ld [wd646], a - ld a, [wLeftMapMoveCounter] - sub $3 - ret nz - ld a, [wLeftMapMoveCounter] - sub $3 - ld [wLeftMapMoveCounter], a - call Func_1de6f - ld a, $0 - call Func_1de4b - ld a, $0 - ld [wd646], a - ret - -; XXX - ret - -Func_1dd2e: ; 0x1dd2e - ld a, [wd645] - cp $0 - ret z - cp $1 - jr z, .asm_1dd53 - cp $3 - jr z, .asm_1dd69 - ld a, [wRightMapMoveDiglettAnimationCounter] - cp $0 - jr z, .asm_1dd48 - dec a - ld [wRightMapMoveDiglettAnimationCounter], a - ret - -.asm_1dd48 - ld a, $2 - call Func_1de4b - ld a, $1 - ld [wd645], a - ret - -.asm_1dd53 - ld a, [wRightMapMoveCounter] - add $4 - call Func_1de6f - ld a, [wRightMapMoveCounter] - add $3 - call Func_1de4b - ld a, $3 - ld [wd645], a - ret - -.asm_1dd69 - ld a, [wRightMapMoveDiglettFrame] - and a - jr z, .asm_1dd74 - dec a - ld [wRightMapMoveDiglettFrame], a - ret - -.asm_1dd74 - ld a, [hGameBoyColorFlag] - and a - jr z, .asm_1dd89 - ld a, [wRightMapMoveCounter] - cp $0 - jr z, .asm_1dd85 - ld b, $a - add b - jr .asm_1dd8b - -.asm_1dd85 - ld a, $4 - jr .asm_1dd8b - -.asm_1dd89 - ld a, $9 -.asm_1dd8b - call Func_1de6f - ld a, $2 - call Func_1de4b - ld a, [wCurrentStage] - bit 0, a - jr z, .asm_1dda9 - ld a, $24 - ld [wc7f0], a - ld a, $25 - ld [wc810], a - ld a, $0 - ld [wd645], a -.asm_1dda9 - ld a, [wRightMapMoveCounter] - sub $3 - ret nz - ld a, [wRightMapMoveCounter] - sub $3 - ld [wRightMapMoveCounter], a - ld a, $4 - call Func_1de6f - ld a, $2 - call Func_1de4b - ld a, $0 - ld [wd645], a - ret - -Func_1ddc7: ; 0x1ddc7 - ld hl, wd63d - call Func_e4a - ld hl, wd62b - call Func_e4a - jr nc, .asm_1dde4 - ld c, $a - call Func_e55 - callba z, Func_30164 -.asm_1dde4 - xor a - ld [wd55a], a - callba StartMapMoveMode - scf - ret - -Func_1ddf4: ; 0x1ddf4 - ld hl, wd63c - call Func_e4a - ld hl, wd62b - call Func_e4a - jr nc, .asm_1de11 - ld c, $a - call Func_e55 - callba z, Func_30164 -.asm_1de11 - ld a, $1 - ld [wd55a], a - callba StartMapMoveMode - scf - ret - -Func_1de22: ; 0x1de22 - ld a, [wCurrentStage] - bit 0, a - ret z - ld a, $55 - ld [wd803], a - ld a, $4 - ld [wd804], a - ld a, $2 - ld [wd7eb], a - ld bc, FiveHundredPoints - callba AddBigBCD6FromQueueWithBallMultiplier - lb de, $00, $0f - call PlaySoundEffect - ret - -Func_1de4b: ; 0x1de4b - ld b, a - ld a, [wCurrentStage] - bit 0, a - ret z - ld a, b - sla a - ld c, a - ld b, $0 - ld hl, TileDataPointers_1df66 - ld a, [hGameBoyColorFlag] - and a - jr z, .asm_1de63 - ld hl, TileDataPointers_1e00f -.asm_1de63 - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - or h - ret z - ld a, Bank(TileDataPointers_1df66) - call Func_10aa - ret - -Func_1de6f: ; 0x1de6f - ld b, a - ld a, [wCurrentStage] - bit 0, a - ret z - ld a, b - sla a - ld c, a - ld b, $0 - ld hl, TileDataPointers_1e0a4 - ld a, [hGameBoyColorFlag] - and a - jr z, .asm_1de87 - ld hl, TileDataPointers_1e1d6 -.asm_1de87 - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - or h - ret z - ld a, Bank(TileDataPointers_1e0a4) - call Func_10aa - ret - -Func_1de93: ; 0x1de93 - ld hl, wd4f7 - dec [hl] - ld a, [hli] - cp $ff - jr nz, .asm_1ded2 - dec [hl] - ld a, [hld] - cp $ff - jr nz, .asm_1ded2 - ld a, $e0 - ld [hli], a - ld a, $1 - ld [hl], a - ld a, [wLeftMapMoveCounter] - and a - jr z, .asm_1ded2 - cp $3 - jr z, .asm_1ded2 - dec a - ld [wLeftMapMoveCounter], a - call Func_1de6f - ld a, [hGameBoyColorFlag] - and a - jr z, .asm_1decd - ld a, [wLeftMapMoveCounter] - cp $0 - jr z, .asm_1deca - ld b, $7 - add b - jr .asm_1decf - -.asm_1deca - xor a - jr .asm_1decf - -.asm_1decd - ld a, $8 -.asm_1decf - call Func_1de6f -.asm_1ded2 - ld hl, wd4f9 - dec [hl] - ld a, [hli] - cp $ff - jr nz, .asm_1df14 - dec [hl] - ld a, [hld] - cp $ff - jr nz, .asm_1df14 - ld a, $e0 - ld [hli], a - ld a, $1 - ld [hl], a - ld a, [wRightMapMoveCounter] - and a - jr z, .asm_1df14 - cp $3 - jr z, .asm_1df14 - dec a - ld [wRightMapMoveCounter], a - add $4 - call Func_1de6f - ld a, [hGameBoyColorFlag] - and a - jr z, .asm_1df0f - ld a, [wRightMapMoveCounter] - cp $0 - jr z, .asm_1df0b - ld b, $a - add b - jr .asm_1df11 - -.asm_1df0b - ld a, $4 - jr .asm_1df11 - -.asm_1df0f - ld a, $9 -.asm_1df11 - call Func_1de6f -.asm_1df14 - ret - -Func_1df15: ; 0x1df15 - ld b, $0 - ld hl, wd4f8 - ld a, [hld] - or [hl] - jr z, .asm_1df3e - dec [hl] - ld a, [hli] - cp $ff - jr nz, .asm_1df3e - dec [hl] - ld a, [hld] - cp $ff - jr nz, .asm_1df3e - ld a, $e0 - ld [hli], a - ld a, $1 - ld [hl], a - ld a, [wLeftMapMoveCounter] - and a - jr z, .asm_1df3e - cp $3 - jr z, .asm_1df3e - dec a - ld [wLeftMapMoveCounter], a -.asm_1df3e - ld hl, wd4fa - ld a, [hld] - or [hl] - jr z, .asm_1df65 - dec [hl] - ld a, [hli] - cp $ff - jr nz, .asm_1df65 - dec [hl] - ld a, [hld] - cp $ff - jr nz, .asm_1df65 - ld a, $e0 - ld [hli], a - ld a, $1 - ld [hl], a - ld a, [wRightMapMoveCounter] - and a - jr z, .asm_1df65 - cp $3 - jr z, .asm_1df65 - dec a - ld [wRightMapMoveCounter], a -.asm_1df65 - ret - -TileDataPointers_1df66: - dw TileData_1df74 - dw TileData_1df77 - dw TileData_1df7a - dw TileData_1df7f - dw TileData_1df84 - dw TileData_1df89 - dw TileData_1df8e - -TileData_1df74: ; 0x1df74 - db $01 - dw TileData_1df93 - -TileData_1df77: ; 0x1df77 - db $01 - dw TileData_1df9f - -TileData_1df7a: ; 0x1df7a - db $02 - dw TileData_1dfab - dw TileData_1dfb5 - -TileData_1df7f: ; 0x1df7f - db $02 - dw TileData_1dfbf - dw TileData_1dfc9 - -TileData_1df84: ; 0x1df84 - db $02 - dw TileData_1dfd3 - dw TileData_1dfdd - -TileData_1df89: ; 0x1df89 - db $02 - dw TileData_1dfe7 - dw TileData_1dff1 - -TileData_1df8e: ; 0x1df8e - db $02 - dw TileData_1dffb - dw TileData_1e005 - -TileData_1df93: ; 0x1df93 - dw LoadTileLists - db $02 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $A3 - db $4A - - db $01 ; number of tiles - dw vBGMap + $C3 - db $4B - - db $00 ; terminator - -TileData_1df9f: ; 0x1df9f - dw LoadTileLists - db $02 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $A3 - db $4C - - db $01 ; number of tiles - dw vBGMap + $C3 - db $4D - - db $00 ; terminator - -TileData_1dfab: ; 0x1dfab - dw Func_11d2 - db $30, $03 - dw vTilesBG tile $4E - dw StageBlueFieldBottomBaseGameBoyGfx + $CE0 - db Bank(StageBlueFieldBottomBaseGameBoyGfx) - db $00 - -TileData_1dfb5: ; 0x1dfb5 - dw Func_11d2 - db $20, $02 - dw vTilesBG tile $51 - dw StageBlueFieldBottomBaseGameBoyGfx + $D10 - db Bank(StageBlueFieldBottomBaseGameBoyGfx) - db $00 - -TileData_1dfbf: ; 0x1dfbf - dw Func_11d2 - db $30, $03 - dw vTilesBG tile $4E - dw StageBlueFieldBottomBaseGameBoyGfx + $D30 - db Bank(StageBlueFieldBottomBaseGameBoyGfx) - db $00 - -TileData_1dfc9: ; 0x1dfc9 - dw Func_11d2 - db $20, $02 - dw vTilesBG tile $51 - dw StageBlueFieldBottomBaseGameBoyGfx + $D60 - db Bank(StageBlueFieldBottomBaseGameBoyGfx) - db $00 - -TileData_1dfd3: ; 0x1dfd3 - dw Func_11d2 - db $30, $03 - dw vTilesBG tile $4E - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $20B0 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileData_1dfdd: ; 0x1dfdd - dw Func_11d2 - db $20, $02 - dw vTilesBG tile $51 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $20E0 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileData_1dfe7: ; 0x1dfe7 - dw Func_11d2 - db $30, $03 - dw vTilesBG tile $4E - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $2100 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileData_1dff1: ; 0x1dff1 - dw Func_11d2 - db $20, $02 - dw vTilesBG tile $51 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $2130 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileData_1dffb: ; 0x1dffb - dw Func_11d2 - db $30, $03 - dw vTilesBG tile $4E - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $2150 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileData_1e005: ; 0x1e005 - dw Func_11d2 - db $20, $02 - dw vTilesBG tile $51 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $2180 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileDataPointers_1e00f: - dw TileData_1e01d - dw TileData_1e020 - dw TileData_1e023 - dw TileData_1e026 - dw TileData_1e029 - dw TileData_1e02c - dw TileData_1e02f - -TileData_1e01d: ; 0x1e01d - db $01 - dw TileData_1e032 - -TileData_1e020: ; 0x1e020 - db $01 - dw TileData_1e03e - -TileData_1e023: ; 0x1e023 - db $01 - dw TileData_1e04a - -TileData_1e026: ; 0x1e026 - db $01 - dw TileData_1e05c - -TileData_1e029: ; 0x1e029 - db $01 - dw TileData_1e06e - -TileData_1e02c: ; 0x1e02c - db $01 - dw TileData_1e080 - -TileData_1e02f: ; 0x1e02f - db $01 - dw TileData_1e092 - -TileData_1e032: ; 0x1e032 - dw LoadTileLists - db $02 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $A3 - db $35 - - db $01 ; number of tiles - dw vBGMap + $C3 - db $36 - - db $00 ; terminator - -TileData_1e03e: ; 0x1e03e - dw LoadTileLists - db $02 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $A3 - db $37 - - db $01 ; number of tiles - dw vBGMap + $C3 - db $38 - - db $00 ; terminator - -TileData_1e04a: ; 0x1e04a - dw LoadTileLists - db $05 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $90 - db $4F - - db $02 ; number of tiles - dw vBGMap + $AF - db $50, $51 - - db $02 ; number of tiles - dw vBGMap + $CF - db $52, $53 - - db $00 ; terminator - -TileData_1e05c: ; 0x1e05c - dw LoadTileLists - db $05 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $90 - db $54 - - db $02 ; number of tiles - dw vBGMap + $AF - db $55, $56 - - db $02 ; number of tiles - dw vBGMap + $CF - db $57, $58 - - db $00 ; terminator - -TileData_1e06e: ; 0x1e06e - dw LoadTileLists - db $05 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $90 - db $59 - - db $02 ; number of tiles - dw vBGMap + $AF - db $5A, $5B - - db $02 ; number of tiles - dw vBGMap + $CF - db $5C, $5D - - db $00 ; terminator - -TileData_1e080: ; 0x1e080 - dw LoadTileLists - db $05 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $90 - db $59 - - db $02 ; number of tiles - dw vBGMap + $AF - db $5A, $5E - - db $02 ; number of tiles - dw vBGMap + $CF - db $5C, $5F - - db $00 ; terminator - -TileData_1e092: ; 0x1e092 - dw LoadTileLists - db $05 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $90 - db $60 - - db $02 ; number of tiles - dw vBGMap + $AF - db $61, $62 - - db $02 ; number of tiles - dw vBGMap + $CF - db $63, $64 - - db $00 ; terminator - -TileDataPointers_1e0a4: - dw TileData_1e0b8 - dw TileData_1e0bf - dw TileData_1e0c6 - dw TileData_1e0cd - dw TileData_1e0d4 - dw TileData_1e0d9 - dw TileData_1e0de - dw TileData_1e0e3 - dw TileData_1e0e8 - dw TileData_1e0ed - -TileData_1e0b8: ; 0x1e0b8 - db $03 - dw TileData_1e0f0 - dw TileData_1e0fa - dw TileData_1e104 - -TileData_1e0bf: ; 0x1e0bf - db $03 - dw TileData_1e10e - dw TileData_1e118 - dw TileData_1e122 - -TileData_1e0c6: ; 0x1e0c6 - db $03 - dw TileData_1e12c - dw TileData_1e136 - dw TileData_1e140 - -TileData_1e0cd: ; 0x1e0cd - db $03 - dw TileData_1e14a - dw TileData_1e154 - dw TileData_1e15e - -TileData_1e0d4: ; 0x1e0d4 - db $02 - dw TileData_1e168 - dw TileData_1e172 - -TileData_1e0d9: ; 0x1e0d9 - db $02 - dw TileData_1e17c - dw TileData_1e186 - -TileData_1e0de: ; 0x1e0de - db $02 - dw TileData_1e190 - dw TileData_1e19a - -TileData_1e0e3: ; 0x1e0e3 - db $02 - dw TileData_1e1a4 - dw TileData_1e1ae - -TileData_1e0e8: ; 0x1e0e8 - db $02 - dw TileData_1e1b8 - dw TileData_1e1c2 - -TileData_1e0ed: ; 0x1e0ed - db $01 - dw TileData_1e1cc - -TileData_1e0f0: ; 0x1e0f0 - dw Func_11d2 - db $30, $03 - dw vTilesBG tile $41 - dw StageBlueFieldBottomBaseGameBoyGfx + $C10 - db Bank(StageBlueFieldBottomBaseGameBoyGfx) - db $00 - -TileData_1e0fa: ; 0x1e0fa - dw Func_11d2 - db $30, $03 - dw vTilesBG tile $44 - dw StageBlueFieldBottomBaseGameBoyGfx + $C40 - db Bank(StageBlueFieldBottomBaseGameBoyGfx) - db $00 - -TileData_1e104: ; 0x1e104 - dw Func_11d2 - db $30, $03 - dw vTilesBG tile $47 - dw StageBlueFieldBottomBaseGameBoyGfx + $C70 - db Bank(StageBlueFieldBottomBaseGameBoyGfx) - db $00 - -TileData_1e10e: ; 0x1e10e - dw Func_11d2 - db $30, $03 - dw vTilesBG tile $41 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1FC0 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileData_1e118: ; 0x1e118 - dw Func_11d2 - db $30, $03 - dw vTilesBG tile $44 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $2050 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileData_1e122: ; 0x1e122 - dw Func_11d2 - db $30, $03 - dw vTilesBG tile $47 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $2080 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileData_1e12c: ; 0x1e12c - dw Func_11d2 - db $30, $03 - dw vTilesBG tile $41 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1FF0 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileData_1e136: ; 0x1e136 - dw Func_11d2 - db $30, $03 - dw vTilesBG tile $44 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $2050 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileData_1e140: ; 0x1e140 - dw Func_11d2 - db $30, $03 - dw vTilesBG tile $47 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $2080 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileData_1e14a: ; 0x1e14a - dw Func_11d2 - db $30, $03 - dw vTilesBG tile $41 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $2020 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileData_1e154: ; 0x1e154 - dw Func_11d2 - db $30, $03 - dw vTilesBG tile $44 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $2050 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileData_1e15e: ; 0x1e15e - dw Func_11d2 - db $30, $03 - dw vTilesBG tile $47 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $2080 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileData_1e168: ; 0x1e168 - dw Func_11d2 - db $20, $02 - dw vTilesBG tile $58 - dw StageBlueFieldBottomBaseGameBoyGfx + $D80 - db Bank(StageBlueFieldBottomBaseGameBoyGfx) - db $00 - -TileData_1e172: ; 0x1e172 - dw Func_11d2 - db $30, $03 - dw vTilesBG tile $5A - dw StageBlueFieldBottomBaseGameBoyGfx + $DA0 - db Bank(StageBlueFieldBottomBaseGameBoyGfx) - db $00 - -TileData_1e17c: ; 0x1e17c - dw Func_11d2 - db $20, $02 - dw vTilesBG tile $58 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $21A0 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileData_1e186: ; 0x1e186 - dw Func_11d2 - db $30, $03 - dw vTilesBG tile $5A - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $21E0 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileData_1e190: ; 0x1e190 - dw Func_11d2 - db $20, $02 - dw vTilesBG tile $58 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $21A0 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileData_1e19a: ; 0x1e19a - dw Func_11d2 - db $30, $03 - dw vTilesBG tile $5A - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $2210 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileData_1e1a4: ; 0x1e1a4 - dw Func_11d2 - db $20, $02 - dw vTilesBG tile $58 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $21C0 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileData_1e1ae: ; 0x1e1ae - dw Func_11d2 - db $30, $03 - dw vTilesBG tile $5A - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $2240 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileData_1e1b8: ; 0x1e1b8 - dw Func_11d2 - db $30, $03 - dw vTilesBG tile $44 - dw StageBlueFieldBottomBaseGameBoyGfx + $C40 - db Bank(StageBlueFieldBottomBaseGameBoyGfx) - db $00 - -TileData_1e1c2: ; 0x1e1c2 - dw Func_11d2 - db $30, $03 - dw vTilesBG tile $47 - dw StageBlueFieldBottomBaseGameBoyGfx + $C70 - db Bank(StageBlueFieldBottomBaseGameBoyGfx) - db $00 - -TileData_1e1cc: ; 0x1e1cc - dw Func_11d2 - db $20, $02 - dw vTilesBG tile $58 - dw StageBlueFieldBottomBaseGameBoyGfx + $D80 - db Bank(StageBlueFieldBottomBaseGameBoyGfx) - db $00 - -TileDataPointers_1e1d6: - dw TileData_1e1f2 - dw TileData_1e1f5 - dw TileData_1e1f8 - dw TileData_1e1fb - dw TileData_1e1fe - dw TileData_1e201 - dw TileData_1e204 - dw TileData_1e207 - dw TileData_1e20a - dw TileData_1e20d - dw TileData_1e210 - dw TileData_1e213 - dw TileData_1e216 - dw TileData_1e219 - -TileData_1e1f2: ; 0x1e1f2 - db $01 - dw TileData_1e21c - -TileData_1e1f5: ; 0x1e1f5 - db $01 - dw TileData_1e238 - -TileData_1e1f8: ; 0x1e1f8 - db $01 - dw TileData_1e254 - -TileData_1e1fb: ; 0x1e1fb - db $01 - dw TileData_1e270 - -TileData_1e1fe: ; 0x1e1fe - db $01 - dw TileData_1e28c - -TileData_1e201: ; 0x1e201 - db $01 - dw TileData_1e2a2 - -TileData_1e204: ; 0x1e204 - db $01 - dw TileData_1e2b8 - -TileData_1e207: ; 0x1e207 - db $01 - dw TileData_1e2ce - -TileData_1e20a: ; 0x1e20a - db $01 - dw TileData_1e2e4 - -TileData_1e20d: ; 0x1e20d - db $01 - dw TileData_1e2fa - -TileData_1e210: ; 0x1e210 - db $01 - dw TileData_1e310 - -TileData_1e213: ; 0x1e213 - db $01 - dw TileData_1e326 - -TileData_1e216: ; 0x1e216 - db $01 - dw TileData_1e336 - -TileData_1e219: ; 0x1e219 - db $01 - dw TileData_1e346 - -TileData_1e21c: ; 0x1e21c - dw LoadTileLists - db $0C ; total number of tiles - - db $03 ; number of tiles - dw vBGMap + $60 - db $36, $37, $38 - - db $03 ; number of tiles - dw vBGMap + $80 - db $39, $3A, $3B - - db $03 ; number of tiles - dw vBGMap + $A0 - db $4C, $4D, $4E - - db $03 ; number of tiles - dw vBGMap + $C0 - db $4F, $50, $51 - - db $00 ; terminator - -TileData_1e238: ; 0x1e238 - dw LoadTileLists - db $0C ; total number of tiles - - db $03 ; number of tiles - dw vBGMap + $60 - db $3C, $37, $38 - - db $03 ; number of tiles - dw vBGMap + $80 - db $3D, $3E, $3B - - db $03 ; number of tiles - dw vBGMap + $A0 - db $52, $53, $54 - - db $03 ; number of tiles - dw vBGMap + $C0 - db $55, $56, $57 - - db $00 ; terminator - -TileData_1e254: ; 0x1e254 - dw LoadTileLists - db $0C ; total number of tiles - - db $03 ; number of tiles - dw vBGMap + $60 - db $40, $41, $38 - - db $03 ; number of tiles - dw vBGMap + $80 - db $42, $43, $3B - - db $03 ; number of tiles - dw vBGMap + $A0 - db $52, $53, $54 - - db $03 ; number of tiles - dw vBGMap + $C0 - db $55, $56, $57 - - db $00 ; terminator - -TileData_1e270: ; 0x1e270 - dw LoadTileLists - db $0C ; total number of tiles - - db $03 ; number of tiles - dw vBGMap + $60 - db $36, $46, $47 - - db $03 ; number of tiles - dw vBGMap + $80 - db $48, $49, $4A - - db $03 ; number of tiles - dw vBGMap + $A0 - db $52, $53, $54 - - db $03 ; number of tiles - dw vBGMap + $C0 - db $55, $56, $57 - - db $00 ; terminator - -TileData_1e28c: ; 0x1e28c - dw LoadTileLists - db $09 ; total number of tiles - - db $03 ; number of tiles - dw vBGMap + $91 - db $4D, $65, $4E - - db $03 ; number of tiles - dw vBGMap + $B1 - db $66, $67, $68 - - db $03 ; number of tiles - dw vBGMap + $D1 - db $69, $6A, $6B - - db $00 ; terminator - -TileData_1e2a2: ; 0x1e2a2 - dw LoadTileLists - db $09 ; total number of tiles - - db $03 ; number of tiles - dw vBGMap + $91 - db $4D, $6C, $4E - - db $03 ; number of tiles - dw vBGMap + $B1 - db $6D, $6E, $68 - - db $03 ; number of tiles - dw vBGMap + $D1 - db $6F, $70, $6B - - db $00 ; terminator - -TileData_1e2b8: ; 0x1e2b8 - dw LoadTileLists - db $09 ; total number of tiles - - db $03 ; number of tiles - dw vBGMap + $91 - db $4D, $6C, $4E - - db $03 ; number of tiles - dw vBGMap + $B1 - db $66, $72, $68 - - db $03 ; number of tiles - dw vBGMap + $D1 - db $69, $73, $6B - - db $00 ; terminator - -TileData_1e2ce: ; 0x1e2ce - dw LoadTileLists - db $09 ; total number of tiles - - db $03 ; number of tiles - dw vBGMap + $91 - db $4D, $75, $4E - - db $03 ; number of tiles - dw vBGMap + $B1 - db $66, $76, $77 - - db $03 ; number of tiles - dw vBGMap + $D1 - db $69, $78, $79 - - db $00 ; terminator - -TileData_1e2e4: ; 0x1e2e4 - dw LoadTileLists - db $09 ; total number of tiles - - db $03 ; number of tiles - dw vBGMap + $80 - db $3F, $3A, $3B - - db $03 ; number of tiles - dw vBGMap + $A0 - db $4C, $4D, $4E - - db $03 ; number of tiles - dw vBGMap + $C0 - db $4F, $50, $51 - - db $00 ; terminator - -TileData_1e2fa: ; 0x1e2fa - dw LoadTileLists - db $09 ; total number of tiles - - db $03 ; number of tiles - dw vBGMap + $80 - db $44, $45, $3B - - db $03 ; number of tiles - dw vBGMap + $A0 - db $4C, $4D, $4E - - db $03 ; number of tiles - dw vBGMap + $C0 - db $4F, $50, $51 - - db $00 ; terminator - -TileData_1e310: ; 0x1e310 - dw LoadTileLists - db $09 ; total number of tiles - - db $03 ; number of tiles - dw vBGMap + $80 - db $39, $4B, $4A - - db $03 ; number of tiles - dw vBGMap + $A0 - db $4C, $4D, $4E - - db $03 ; number of tiles - dw vBGMap + $C0 - db $4F, $50, $51 - - db $00 ; terminator - -TileData_1e326: ; 0x1e326 - dw LoadTileLists - db $06 ; total number of tiles - - db $03 ; number of tiles - dw vBGMap + $91 - db $4D, $65, $4E - - db $03 ; number of tiles - dw vBGMap + $B1 - db $6D, $71, $68 - - db $00 ; terminator - -TileData_1e336: ; 0x1e336 - dw LoadTileLists - db $06 ; total number of tiles - - db $03 ; number of tiles - dw vBGMap + $91 - db $4D, $65, $4E - - db $03 ; number of tiles - dw vBGMap + $B1 - db $66, $74, $68 - - db $00 ; terminator - -TileData_1e346: ; 0x1e346 - dw LoadTileLists - db $06 ; total number of tiles - - db $03 ; number of tiles - dw vBGMap + $91 - db $4D, $65, $4E - - db $03 ; number of tiles - dw vBGMap + $B1 - db $66, $67, $77 - - db $00 ; terminator - -ResolveBlueStagePinballUpgradeTriggersCollision: ; 0x1e356 - ld a, [wWhichPinballUpgradeTrigger] - and a - jp z, Func_1e471 - xor a - ld [wWhichPinballUpgradeTrigger], a - ld a, [wStageCollisionState] - cp $0 - jr nz, .asm_1e386 - ld a, $1 - ld [wStageCollisionState], a - callba LoadStageCollisionAttributes - ld a, $1 - ld [wd580], a - callba Func_1404a -.asm_1e386 - ld a, [wStageCollisionState] - bit 0, a - jp z, Func_1e471 - ld a, [wd5fc] - and a - jp nz, Func_1e471 - xor a - ld [wRightAlleyTrigger], a - ld [wLeftAlleyTrigger], a - ld [wSecondaryLeftAlleyTrigger], a - ld a, $b - callba Func_10000 - ld a, [wWhichPinballUpgradeTriggerId] - sub $13 - ld c, a - ld b, $0 - ld hl, wd5f9 - add hl, bc - ld a, [hl] - ld [hl], $1 - and a - jr z, .asm_1e3bf - ld [hl], $0 -.asm_1e3bf - ld bc, OneHundredPoints - callba AddBigBCD6FromQueueWithBallMultiplier - ld hl, wd5f9 - ld a, [hli] - and [hl] - inc hl - and [hl] - jr nz, .asm_1e3de - lb de, $00, $09 - call PlaySoundEffect - jp asm_1e475 - -.asm_1e3de - ld a, $1 - ld [wd5fc], a - ld a, $80 - ld [wd5fd], a - ; load approximately 1 minute of frames into wBallTypeCounter - ld a, $10 - ld [wBallTypeCounter], a - ld a, $e - ld [wBallTypeCounter + 1], a - ld bc, FourHundredPoints - callba AddBigBCD6FromQueueWithBallMultiplier - ld a, [wBallType] - cp MASTER_BALL - jr z, .masterBall - lb de, $06, $3a - call PlaySoundEffect - call FillBottomMessageBufferWithBlackTile - call Func_30db - ld hl, wd5cc - ld de, FieldMultiplierText - call LoadTextHeader - ld a, [wBallType] - ld c, a - ld b, $0 - ld hl, BallTypeProgression2BlueField - add hl, bc - ld a, [hl] - ld [wBallType], a - add $30 - ld [wBottomMessageText + $12], a - jr .asm_1e465 - -.masterBall - lb de, $0f, $4d - call PlaySoundEffect - ld bc, OneMillionPoints - callba AddBigBCD6FromQueue - ld bc, $0100 - ld de, $0000 - push bc - push de - call FillBottomMessageBufferWithBlackTile - call Func_30db - ld hl, wd5d4 - ld de, DigitsText1to8 - call Func_32cc - pop de - pop bc - ld hl, wd5cc - ld de, FieldMultiplierSpecialBonusText - call LoadTextHeader -.asm_1e465 - callba TransitionPinballUpgrade - jr asm_1e475 - -Func_1e471: ; 0x1e471 - call Func_1e4b8 - ret z -asm_1e475: ; 0x1e475 - ld hl, wd5fb - ld b, $3 -.asm_1e47a - ld a, [hld] - push hl - call Func_1e484 - pop hl - dec b - jr nz, .asm_1e47a - ret - -Func_1e484: ; 0x1e484 - and a - jr z, .asm_1e496 - ld a, [hGameBoyColorFlag] - and a - jr nz, .asm_1e491 - ld hl, TileDataPointers_1e520 - jr .asm_1e4a3 - -.asm_1e491 - ld hl, TileDataPointers_1e556 - jr .asm_1e4a3 - -.asm_1e496 - ld a, [hGameBoyColorFlag] - and a - jr nz, .asm_1e4a0 - ld hl, TileDataPointers_1e526 - jr .asm_1e4a3 - -.asm_1e4a0 - ld hl, TileDataPointers_1e55c -.asm_1e4a3 - push bc - dec b - sla b - ld e, b - ld d, $0 - add hl, de - ld c, [hl] - inc hl - ld b, [hl] - ld a, $7 - ld de, LoadTileLists - call Func_10c5 - pop bc - ret - -Func_1e4b8: ; 0x1e4b8 - ld a, [wd5fc] - and a - jr z, .asm_1e4e5 - ld a, [wd5fd] - dec a - ld [wd5fd], a - jr nz, .asm_1e4ca - ld [wd5fc], a -.asm_1e4ca - and $7 - jr nz, .asm_1e4e3 - ld a, [wd5fd] - srl a - srl a - srl a - and $1 - ld hl, wd5f9 - ld [hli], a - ld [hli], a - ld [hl], a - ld a, $1 - and a - ret - -.asm_1e4e3 - xor a - ret - -.asm_1e4e5 - ld hl, wKeyConfigLeftFlipper - call IsKeyPressed - jr z, .leftFlipperKeyIsPressed - ; left flipper key is pressed - ld hl, wd5f9 - ld a, [hli] - ld c, a - ld a, [hli] - ld b, a - ld a, [hl] - ld e, a - ld a, c - ld [hld], a - ld a, e - ld [hld], a - ld a, b - ld [hl], a - ret - -.leftFlipperKeyIsPressed - ld hl, wKeyConfigRightFlipper - call IsKeyPressed - ret z - ; right flipper key is pressed - ld hl, wd5f9 - ld a, [hli] - ld c, a - ld a, [hli] - ld b, a - ld a, [hl] - ld e, a - ld a, b - ld [hld], a - ld a, c - ld [hld], a - ld a, e - ld [hl], a - ret - -BallTypeProgression2BlueField: ; 0x1e514 -; Determines the next upgrade for the Ball. - db GREAT_BALL ; POKE_BALL -> GREAT_BALL - db GREAT_BALL ; unused - db ULTRA_BALL ; GREAT_BALL -> ULTRA_BALL - db MASTER_BALL ; ULTRA_BALL -> MASTER_BALL - db MASTER_BALL ; unused - db MASTER_BALL ; MASTER_BALL -> MASTER_BALL - -BallTypeDegradation2BlueField: ; 0x1e51a -; Determines the previous upgrade for the Ball. - db POKE_BALL ; POKE_BALL -> POKE_BALL - db POKE_BALL ; unused - db POKE_BALL ; GREAT_BALL -> POKE_BALL - db GREAT_BALL ; ULTRA_BALL -> GREAT_BALL - db ULTRA_BALL ; unused - db ULTRA_BALL ; MASTER_BALL -> GREAT_BALL - -TileDataPointers_1e520: - dw TileData_1e52c - dw TileData_1e533 - dw TileData_1e53a - -TileDataPointers_1e526: - dw TileData_1e541 - dw TileData_1e548 - dw TileData_1e54f - -TileData_1e52c: ; 0x1e52c - db $02, $02 - dw vBGMap + $86 - db $66, $67 - db $00 - -TileData_1e533: ; 0x1e533 - db $02, $02 - dw vBGMap + $69 - db $66, $67 - db $00 - -TileData_1e53a: ; 0x1e53a - db $02, $02 - dw vBGMap + $8C - db $66, $67 - db $00 - -TileData_1e541: ; 0x1e541 - db $02, $02 - dw vBGMap + $86 - db $64, $65 - db $00 - -TileData_1e548: ; 0x1e548 - db $02, $02 - dw vBGMap + $69 - db $64, $65 - db $00 - -TileData_1e54f: ; 0x1e54f - db $02, $02 - dw vBGMap + $8C - db $64, $65 - db $00 - -TileDataPointers_1e556: - dw TileData_1e562 - dw TileData_1e569 - dw TileData_1e570 - -TileDataPointers_1e55c: - dw TileData_1e577 - dw TileData_1e57e - dw TileData_1e585 - -TileData_1e562: ; 0x1e562 - db $02, $02 - dw vBGMap + $86 - db $43, $43 - db $00 - -TileData_1e569: ; 0x1e569 - db $02, $02 - dw vBGMap + $69 - db $43, $43 - db $00 - -TileData_1e570: ; 0x1e570 - db $02, $02 - dw vBGMap + $8C - db $43, $43 - db $00 - -TileData_1e577: ; 0x1e577 - db $02, $02 - dw vBGMap + $86 - db $42, $42 - db $00 - -TileData_1e57e: ; 0x1e57e - db $02, $02 - dw vBGMap + $69 - db $42, $42 - db $00 - -TileData_1e585: ; 0x1e585 - db $02, $02 - dw vBGMap + $8C - db $42, $42 - db $00 - -HandleBlueStageBallTypeUpgradeCounter: ; 0x1e58c - ld a, [wCapturingMon] - and a - ret nz - ; check if counter is at 0 - ld hl, wBallTypeCounter - ld a, [hli] - ld c, a - ld b, [hl] - or b - ret z - dec bc - ld a, b - ld [hld], a - ld [hl], c - or c - ret nz - ; counter is now 0! Degrade the ball upgrade. - ld a, [wBallType] - ld c, a - ld b, $0 - ld hl, BallTypeDegradation2BlueField - add hl, bc - ld a, [hl] - ld [wBallType], a - and a - jr z, .pokeball - ; load approximately 1 minute of frames into wBallTypeCounter - ld a, $10 - ld [wBallTypeCounter], a - ld a, $e - ld [wBallTypeCounter + 1], a -.pokeball - callba TransitionPinballUpgrade - ret - -Func_1e5c5: ; 0x1e5c5 - ld a, [wWhichCAVELight] - and a - jr z, .asm_1e623 - xor a - ld [wWhichCAVELight], a - ld a, [wd513] - and a - jr nz, .asm_1e623 - ld a, [wWhichCAVELightId] - sub $16 - ld c, a - ld b, $0 - ld hl, wd50f - add hl, bc - ld a, [hl] - ld [hl], $1 - and a - ret nz - ld bc, OneHundredPoints - callba AddBigBCD6FromQueueWithBallMultiplier - ld hl, wd50f - ld a, [hli] - and [hl] - inc hl - and [hl] - inc hl - and [hl] - jr z, Func_1e627 - ld a, $1 - ld [wd513], a - ld a, $80 - ld [wd514], a - ld bc, FourHundredPoints - callba AddBigBCD6FromQueueWithBallMultiplier - lb de, $00, $09 - call PlaySoundEffect - ld hl, wd62c - call Func_e4a - jr Func_1e627 - -.asm_1e623 - call Func_1e66a - ret z - ; fall through - -Func_1e627: ; 0x1e627 - ld hl, wd512 - ld b, $4 -.asm_1e62c - ld a, [hld] - push hl - call Func_1e636 - pop hl - dec b - jr nz, .asm_1e62c - ret - -Func_1e636: ; 0x1e636 - and a - jr z, .asm_1e648 - ld a, [hGameBoyColorFlag] - and a - jr nz, .asm_1e643 - ld hl, TileDataPointers_1e6d7 - jr .asm_1e655 - -.asm_1e643 - ld hl, TileDataPointers_1e717 - jr .asm_1e655 - -.asm_1e648 - ld a, [hGameBoyColorFlag] - and a - jr nz, .asm_1e652 - ld hl, TileDataPointers_1e6df - jr .asm_1e655 - -.asm_1e652 - ld hl, TileDataPointers_1e71f -.asm_1e655 - push bc - dec b - sla b - ld e, b - ld d, $0 - add hl, de - ld c, [hl] - inc hl - ld b, [hl] - ld a, $7 - ld de, LoadTileLists - call Func_10c5 - pop bc - ret - -Func_1e66a: ; 0x1e66a - ld a, [wd513] - and a - jr z, .asm_1e6a0 - ld a, [wd514] - dec a - ld [wd514], a - jr nz, .asm_1e687 - ld [wd513], a - ld a, $1 - ld [wd608], a - ld a, $3 - ld [wd607], a - xor a -.asm_1e687 - and $7 - ret nz - ld a, [wd514] - srl a - srl a - srl a - and $1 - ld hl, wd50f - ld [hli], a - ld [hli], a - ld [hli], a - ld [hl], a - ld a, $1 - and a - ret - -.asm_1e6a0 - ld hl, wKeyConfigLeftFlipper - call IsKeyPressed - jr z, .asm_1e6bc - ld hl, wd50f - ld a, [hli] - ld c, a - ld a, [hli] - ld b, a - ld a, [hli] - ld e, a - ld a, [hl] - ld d, a - ld a, c - ld [hld], a - ld a, d - ld [hld], a - ld a, e - ld [hld], a - ld a, b - ld [hl], a - ret - -.asm_1e6bc - ld hl, wKeyConfigRightFlipper - call IsKeyPressed - ret z - ld hl, wd50f - ld a, [hli] - ld c, a - ld a, [hli] - ld b, a - ld a, [hli] - ld e, a - ld a, [hl] - ld d, a - ld a, e - ld [hld], a - ld a, b - ld [hld], a - ld a, c - ld [hld], a - ld a, d - ld [hl], a - ret - -TileDataPointers_1e6d7: - dw TileData_1e6e7 - dw TileData_1e6ed - dw TileData_1e6f3 - dw TileData_1e6f9 - -TileDataPointers_1e6df: - dw TileData_1e6ff - dw TileData_1e705 - dw TileData_1e70b - dw TileData_1e711 - -TileData_1e6e7: ; 0x1e6e7 - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $121 - db $5E - - db $00 ; terminator - -TileData_1e6ed: ; 0x1e6ed - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $123 - db $5E - - db $00 ; terminator - -TileData_1e6f3: ; 0x1e6f3 - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $130 - db $60 - - db $00 ; terminator - -TileData_1e6f9: ; 0x1e6f9 - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $132 - db $60 - - db $00 ; terminator - -TileData_1e6ff: ; 0x1e6ff - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $121 - db $5D - - db $00 ; terminator - -TileData_1e705: ; 0x1e705 - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $123 - db $5D - - db $00 ; terminator - -TileData_1e70b: ; 0x1e70b - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $130 - db $5F - - db $00 ; terminator - -TileData_1e711: ; 0x1e711 - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $132 - db $5F - - db $00 ; terminator - -TileDataPointers_1e717: - dw TileData_1e727 - dw TileData_1e72d - dw TileData_1e733 - dw TileData_1e739 - -TileDataPointers_1e71f: - dw TileData_1e73f - dw TileData_1e745 - dw TileData_1e74b - dw TileData_1e751 - -TileData_1e727: ; 0x1e727 - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $121 - db $49 - - db $00 ; terminator - -TileData_1e72d: ; 0x1e72d - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $123 - db $4A - - db $00 ; terminator - -TileData_1e733: ; 0x1e733 - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $130 - db $4B - - db $00 ; terminator - -TileData_1e739: ; 0x1e739 - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $132 - db $4C - - db $00 ; terminator - -TileData_1e73f: ; 0x1e73f - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $121 - db $47 - - db $00 ; terminator - -TileData_1e745: ; 0x1e745 - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $123 - db $48 - - db $00 ; terminator - -TileData_1e74b: ; 0x1e74b - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $130 - db $7A - - db $00 ; terminator - -TileData_1e751: ; 0x1e751 - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $132 - db $7B - - db $00 ; terminator - -Func_1e757: ; 0x1e757 - ld a, [wSlotCollision] - and a - jr z, .asm_1e78c - xor a - ld [wSlotCollision], a - ld a, [wd604] - and a - ret z - ld a, [wd603] - and a - jr nz, .asm_1e78c - xor a - ld hl, wBallXVelocity - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - ld [wd549], a - ld [wBallXPos], a - ld [wBallYPos], a - ld a, $50 - ld [wBallXPos + 1], a - ld a, $16 - ld [wBallYPos + 1], a - ld a, $13 - ld [wd603], a -.asm_1e78c - ld a, [wd603] - and a - ret z - dec a - ld [wd603], a - ld a, $18 - ld [wd606], a - ld a, [wd603] - cp $12 - jr nz, .asm_1e7b2 - lb de, $00, $21 - call PlaySoundEffect - callba LoadMiniBallGfx - ret - -.asm_1e7b2 - cp $f - jr nz, .asm_1e7c1 - callba Func_dd62 - ret - -.asm_1e7c1 - cp $c - jr nz, .asm_1e7d0 - xor a - ld [wd548], a - ld [wBallSpin], a - ld [wBallRotation], a - ret - -.asm_1e7d0 - cp $9 - jr nz, .asm_1e7d8 - call Func_1e830 - ret - -.asm_1e7d8 - cp $6 - jr nz, .asm_1e7f5 - xor a - ld [wd604], a - ld a, $5 - ld [wd803], a - ld a, $8 - ld [wd804], a - callba LoadMiniBallGfx - ret - -.asm_1e7f5 - cp $3 - jr nz, .asm_1e80e - callba LoadBallGfx - ld a, $2 - ld [wBallYVelocity + 1], a - ld a, $80 - ld [wBallXVelocity], a - ret - -.asm_1e80e - and a - ret nz - call Func_1e8f6 - ld a, [wCatchEmOrEvolutionSlotRewardActive] - cp CATCHEM_MODE_SLOT_REWARD - ret nz - call GenRandom - and $8 - ld [wRareMonsFlag], a - callba StartCatchEmMode - xor a - ld [wCatchEmOrEvolutionSlotRewardActive], a - ret - -Func_1e830: ; 0x1e830 - xor a - ld [wIndicatorStates + 4], a - ld a, $d - callba Func_10000 - jr nc, .asm_1e84b - ld a, $1 - ld [wd548], a - ld [wd549], a - ret - -.asm_1e84b - ld a, [wd624] - cp $3 - jr nz, .asm_1e891 - ld a, [wd607] - and a - jr nz, .asm_1e891 -.asm_1e858 - ld a, [wBonusStageSlotRewardActive] - and a - jr nz, .asm_1e867 - xor a - ld [wd625], a - ld a, $40 - ld [wd626], a -.asm_1e867 - xor a - ld [wBonusStageSlotRewardActive], a - ld a, $1 - ld [wd495], a - ld [wd4ae], a - ld a, [wd498] - ld c, a - ld b, $0 - ld hl, GoToBonusStageTextIds_BlueField - add hl, bc - ld a, [hl] - ld [wd497], a - call Func_1e8c3 - xor a - ld [wd609], a - ld [wCatchEmOrEvolutionSlotRewardActive], a - ld a, $1e - ld [wd607], a - ret - -.asm_1e891 - callba Func_ed8e - xor a - ld [wd608], a - ld a, [wd61d] - cp $d - jr nc, .asm_1e858 - ld a, $1 - ld [wd548], a - ld [wd549], a - ld a, [wCatchEmOrEvolutionSlotRewardActive] - cp EVOLUTION_MODE_SLOT_REWARD - ret nz - callba Func_10ab3 - xor a - ld [wCatchEmOrEvolutionSlotRewardActive], a - ret - -Func_1e8c3: ; 0x1e8c3 - call FillBottomMessageBufferWithBlackTile - call Func_30db - ld hl, wd5dc - ld a, [wd497] - ld de, GoToMeowthStageText - cp STAGE_MEOWTH_BONUS - jr z, .loadText - ld de, GoToSeelStageText - cp STAGE_SEEL_BONUS - jr z, .loadText - ld de, GoToMewtwoStageText -.loadText - call LoadTextHeader - ld de, $0000 - call PlaySong - rst AdvanceFrame - lb de, $3c, $23 - call PlaySoundEffect - ret - -GoToBonusStageTextIds_BlueField: - db STAGE_GENGAR_BONUS - db STAGE_MEWTWO_BONUS - db STAGE_MEOWTH_BONUS - db STAGE_DIGLETT_BONUS - db STAGE_SEEL_BONUS - -Func_1e8f6: ; 0x1e8f6 - ld a, [wCurrentStage] - and $1 - sla a - ld c, a - ld a, [wd604] - add c - sla a - ld c, a - ld b, $0 - ld hl, TileDataPointers_1e91e - ld a, [hGameBoyColorFlag] - and a - jr z, .asm_1e912 - ld hl, TileDataPointers_1e970 -.asm_1e912 - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - or h - ret z - ld a, Bank(TileDataPointers_1e91e) - call Func_10aa - ret - -TileDataPointers_1e91e: - dw TileData_1e926 - dw TileData_1e929 - dw TileData_1e92c - dw TileData_1e931 - -TileData_1e926: ; 0x1e926 - db $01 - dw TileData_1e936 - -TileData_1e929: ; 0x1e929 - db $01 - dw TileData_1e93f - -TileData_1e92c: ; 0x1e92c - db $02 - dw TileData_1e948 - dw TileData_1e952 - -TileData_1e931: ; 0x1e931 - db $02 - dw TileData_1e95c - dw TileData_1e966 - -TileData_1e936: ; 0x1e936 - dw LoadTileLists - db $02 ; total number of tiles - - db $02 ; number of tiles - dw vBGMap + $229 - db $EE, $EF - - db $00 ; terminator - -TileData_1e93f: ; 0x1e93f - dw LoadTileLists - db $02 ; total number of tiles - - db $02 ; number of tiles - dw vBGMap + $229 - db $F0, $F1 - - db $00 ; terminator - -TileData_1e948: ; 0x1e948 - dw Func_11d2 - db $20, $02 - dw vTilesBG tile $1F - dw StageBlueFieldBottomBaseGameBoyGfx + $9F0 - db Bank(StageBlueFieldBottomBaseGameBoyGfx) - db $00 - -TileData_1e952: ; 0x1e952 - dw Func_11d2 - db $20, $02 - dw vTilesBG tile $21 - dw StageBlueFieldBottomBaseGameBoyGfx + $A10 - db Bank(StageBlueFieldBottomBaseGameBoyGfx) - db $00 - -TileData_1e95c: ; 0x1e95c - dw Func_11d2 - db $20, $02 - dw vTilesBG tile $1F - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1BC0 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileData_1e966: ; 0x1e966 - dw Func_11d2 - db $20, $02 - dw vTilesBG tile $21 - dw StageRedFieldBottomIndicatorsGfx_Gameboy + $1BE0 - db Bank(StageRedFieldBottomIndicatorsGfx_Gameboy) - db $00 - -TileDataPointers_1e970: - dw TileData_1e978 - dw TileData_1e97d - dw TileData_1e980 - dw TileData_1e983 - -TileData_1e978: ; 0x1e978 - db $02 - dw TileData_1e986 - dw TileData_1e98F - -TileData_1e97d: ; 0x1e97d - db $01 - dw TileData_1e99b - -TileData_1e980: ; 0x1e980 - db $01 - dw TileData_1e9a4 - -TileData_1e983: ; 0x1e983 - db $01 - dw TileData_1e9b2 - -TileData_1e986: ; 0x1e986 - dw LoadTileLists - db $02 ; total number of tiles - - db $02 ; number of tiles - dw vBGMap + $229 - db $F0, $F1 - - db $00 ; terminator - -TileData_1e98F: ; 0x1e98F - dw LoadTileLists - db $02 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $224 - db $D8 - - db $01 ; number of tiles - dw vBGMap + $22f - db $EC - - db $00 ; terminator - -TileData_1e99b: ; 0x1e99b - dw LoadTileLists - db $02 ; total number of tiles - - db $02 ; number of tiles - dw vBGMap + $229 - db $F2, $F3 - - db $00 ; terminator - -TileData_1e9a4: ; 0x1e9a4 - dw LoadTileLists - db $04 ; total number of tiles - - db $02 ; number of tiles - dw $9809 - db $15, $16 - - db $02 ; terminator - dw vBGMap + $29 - db $17, $18 - - db $00 ; terminator - -TileData_1e9b2: ; 0x1e9b2 - dw LoadTileLists - db $04 ; total number of tiles - - db $02 ; number of tiles - dw vBGMap + $9 - db $19, $1A - - db $02 ; terminator - dw vBGMap + $29 - db $1B, $1C - - db $00 ; terminator - -Func_1e9c0: ; 0x1e9c0 - ld a, [wd607] - and a - ret z - dec a - ld [wd607], a - ret nz - ld a, [wInSpecialMode] - and a - ret nz - ld a, [wd609] - and a - jr z, .asm_1e9dc - ld a, [wd498] - add $15 - jr .asm_1e9e3 - -.asm_1e9dc - ld a, [wd608] - and a - ret z - ld a, $1a -.asm_1e9e3 - ld hl, wCurrentStage - bit 0, [hl] - callba nz, Func_30256 - ld a, [wd604] - and a - ret nz - ld a, $1 - ld [wd604], a - ld a, $80 - ld [wIndicatorStates + 4], a - ld a, [wCurrentStage] - bit 0, a - call nz, Func_1e8f6 - ret - -Func_1ea0a: ; 0x1ea0a - ld a, [wd604] - and a - ret z - ld a, [wBallYPos + 1] - sub $fe - cp $30 - ret nc - ld c, $0 - ld b, a - ld h, b - ld l, c - srl b - rr c - srl b - rr c - srl h - rr l - add hl, bc - ld a, [wBallXPos + 1] - sub $38 - cp $30 - ret nc - ld c, a - ld b, $0 - sla c - sla c - add hl, bc - jr asm_1ea6a - -Func_1ea3b: ; 0x1ea3b - ld a, [wd604] - and a - ret z - ld a, [wBallYPos + 1] - sub $86 - cp $30 - ret nc - ld c, $0 - ld b, a - ld h, b - ld l, c - srl b - rr c - srl b - rr c - srl h - rr l - add hl, bc - ld a, [wBallXPos + 1] - sub $38 - cp $30 - ret nc - ld c, a - ld b, $0 - sla c - sla c - add hl, bc - ; fall through - -asm_1ea6a: ; 0x1ea6a - ld bc, BallPhysicsData_f0000 - add hl, bc - ld de, wBallXVelocity - ld a, BANK(BallPhysicsData_f0000) - call ReadByteFromBank - ld c, a - ld a, [de] - add c - ld [de], a - inc de - inc hl - ld a, BANK(BallPhysicsData_f0000) - call ReadByteFromBank - ld b, a - ld a, [de] - adc b - ld [de], a - inc de - inc hl - push bc - ld a, BANK(BallPhysicsData_f0000) - call ReadByteFromBank - ld c, a - ld a, [de] - add c - ld [de], a - inc de - inc hl - ld a, BANK(BallPhysicsData_f0000) - call ReadByteFromBank - ld b, a - ld a, [de] - adc b - ld [de], a - inc de - inc hl - bit 7, b - jr z, .asm_1eaa9 - ld a, c - cpl - ld c, a - ld a, b - cpl - ld b, a - inc bc -.asm_1eaa9 - pop hl - bit 7, h - jr z, .asm_1eab5 - ld a, l - cpl - ld l, a - ld a, h - cpl - ld h, a - inc hl -.asm_1eab5 - add hl, bc - sla l - rl h - ld a, h - cp $2 - ret c - ld a, [wd804] - and a - ret nz - ld a, $5 - ld [wd803], a - ld a, $8 - ld [wd804], a - lb de, $00, $04 - call PlaySoundEffect - ret - -Func_1ead4: ; 0x1ead4 - ld a, [hNumFramesDropped] - and $f - ret nz - ld bc, $0000 -.asm_1eadc - push bc - ld hl, wIndicatorStates - add hl, bc - ld a, [hl] - cp $1 - jr z, .asm_1eaf8 - bit 7, [hl] - jr z, .asm_1eaf8 - ld a, [hl] - res 7, a - ld hl, hNumFramesDropped - bit 4, [hl] - jr z, .asm_1eaf5 - inc a -.asm_1eaf5 - call Func_1eb41 -.asm_1eaf8 - pop bc - inc c - ld a, c - cp $2 - jr nz, .asm_1eadc - ld a, [hNumFramesDropped] - and $f - ret nz - ld a, [wCurrentStage] - bit 0, a - ret z - ld bc, $0002 -.asm_1eb0d - push bc - ld hl, wIndicatorStates - add hl, bc - ld a, [hl] - cp $1 - jr z, .asm_1eb29 - bit 7, [hl] - jr z, .asm_1eb29 - ld a, [hl] - res 7, a - ld hl, hNumFramesDropped - bit 4, [hl] - jr z, .asm_1eb2b - inc a - inc a - jr .asm_1eb2b - -.asm_1eb29 - ld a, $0 -.asm_1eb2b - push af - ld hl, wd648 - add hl, bc - dec hl - dec hl - ld a, [hl] - ld d, a - pop af - add d - call Func_1eb41 - pop bc - inc c - ld a, c - cp $5 - jr nz, .asm_1eb0d - ret - -Func_1eb41: ; 0x1eb41 - push af - sla c - ld hl, TileDataPointers_1eb61 - ld a, [hGameBoyColorFlag] - and a - jr z, .asm_1eb4f - ld hl, TileDataPointers_1ed51 -.asm_1eb4f - 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_1eb61) - 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 - -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 - ld a, [wBlueStageForceFieldDirection] - cp $0 ; up direction - jp z, Func_1ef20 - cp $1 ; right direction - jp z, Func_1ef4d - cp $2 ; down direction - jp z, Func_1ef7e - cp $3 ; left direction - jp z, Func_1efae - ; fall through - ; default to upward forcefield - -Func_1ef20: ; 0x1ef20 - ld a, [wBallYPos + 1] - sub $60 - cp $30 - ret nc - ld c, $0 - ld b, a - ld h, b - ld l, c - srl b - rr c - srl b - rr c - srl h - rr l - add hl, bc - ld a, [wBallXPos + 1] - sub $38 - cp $30 - ret nc - ld c, a - ld b, $0 - sla c - sla c - add hl, bc - jp Func_1efdc - -Func_1ef4d: ; 0x1ef4d - ld a, [wBallXPos + 1] - sub $38 - cp $30 - ret nc - ld c, a - ld a, $30 - sub c - ld c, $0 - ld b, a - ld h, b - ld l, c - srl b - rr c - srl b - rr c - srl h - rr l - add hl, bc - ld a, [wBallYPos + 1] - sub $60 - cp $30 - ret nc - ld c, a - ld b, $0 - sla c - sla c - add hl, bc - jp Func_1efdc - -Func_1ef7e: ; 0x1ef7e - ld a, [wBallYPos + 1] - sub $60 - cp $30 - ret nc - ld c, a - ld a, $30 - sub c - ld c, $0 - ld b, a - ld h, b - ld l, c - srl b - rr c - srl b - rr c - srl h - rr l - add hl, bc - ld a, [wBallXPos + 1] - sub $38 - cp $30 - ret nc - ld c, a - ld b, $0 - sla c - sla c - add hl, bc - jr Func_1efdc - -Func_1efae: ; 0x1efae - ld a, [wBallXPos + 1] - sub $38 - cp $30 - ret nc - ld c, $0 - ld b, a - ld h, b - ld l, c - srl b - rr c - srl b - rr c - srl h - rr l - add hl, bc - ld a, [wBallYPos + 1] - sub $60 - cp $30 - ret nc - ld c, a - ld a, $30 - sub c - ld c, a - ld b, $0 - sla c - sla c - add hl, bc - ; fall through -Func_1efdc: ; 0x1efdc - ld a, [wBlueStageForceFieldDirection] - cp $0 ; up direction - jp z, Func_1eff3 - cp $1 ; right direction - jp z, Func_1f0be - cp $2 ; down direction - jp z, Func_1f057 - cp $3 ; left direction - jp z, Func_1f124 - ; fall through - ; default to upward forcefield - -Func_1eff3: ; 0x1eff3 - ld bc, BallPhysicsData_ec000 - add hl, bc - ld de, wBallXVelocity - ld a, BANK(BallPhysicsData_ec000) - call ReadByteFromBank - ld c, a - ld a, [de] - add c - ld [de], a - inc de - inc hl - ld a, BANK(BallPhysicsData_ec000) - call ReadByteFromBank - ld b, a - ld a, [de] - adc b - ld [de], a - inc de - inc hl - push bc - ld a, BANK(BallPhysicsData_ec000) - call ReadByteFromBank - ld c, a - ld a, [de] - add c - ld [de], a - inc de - inc hl - ld a, BANK(BallPhysicsData_ec000) - call ReadByteFromBank - ld b, a - ld a, [de] - adc b - ld [de], a - inc de - inc hl - bit 7, b - jr z, .asm_1f032 - ld a, c - cpl - ld c, a - ld a, b - cpl - ld b, a - inc bc -.asm_1f032 - pop hl - bit 7, h - jr z, .asm_1f03e - ld a, l - cpl - ld l, a - ld a, h - cpl - ld h, a - inc hl -.asm_1f03e - add hl, bc - sla l - rl h - ld a, h - cp $2 - ret c - ld a, [wd804] - and a - ret nz - ld a, $5 - ld [wd803], a - ld a, $8 - ld [wd804], a - ret - -Func_1f057: ; 0x1f057 - ld bc, BallPhysicsData_ec000 - add hl, bc - ld de, wBallXVelocity - bit 2, l - ret nz - ld a, BANK(BallPhysicsData_ec000) - call ReadByteFromBank - ld c, a - ld a, [de] - add c - ld [de], a - inc de - inc hl - ld a, BANK(BallPhysicsData_ec000) - call ReadByteFromBank - ld b, a - ld a, [de] - adc b - ld [de], a - inc de - inc hl - push bc - ld a, BANK(BallPhysicsData_ec000) - call ReadByteFromBank - ld c, a - ld a, [de] - sub c - ld [de], a - inc de - inc hl - ld a, BANK(BallPhysicsData_ec000) - call ReadByteFromBank - ld b, a - ld a, [de] - sbc b - ld [de], a - inc de - inc hl - bit 7, b - jr z, .asm_1f099 - ld a, c - cpl - ld c, a - ld a, b - cpl - ld b, a - inc bc -.asm_1f099 - pop hl - bit 7, h - jr z, .asm_1f0a5 - ld a, l - cpl - ld l, a - ld a, h - cpl - ld h, a - inc hl -.asm_1f0a5 - add hl, bc - sla l - rl h - ld a, h - cp $2 - ret c - ld a, [wd804] - and a - ret nz - ld a, $5 - ld [wd803], a - ld a, $8 - ld [wd804], a - ret - -Func_1f0be: ; 0x1f0be - ld bc, BallPhysicsData_ec000 - add hl, bc - ld de, wBallYVelocity - ld a, BANK(BallPhysicsData_ec000) - call ReadByteFromBank - ld c, a - ld a, [de] - add c - ld [de], a - inc de - inc hl - ld a, BANK(BallPhysicsData_ec000) - call ReadByteFromBank - ld b, a - ld a, [de] - adc b - ld [de], a - inc hl - push bc - dec de - dec de - dec de - ld a, BANK(BallPhysicsData_ec000) - call ReadByteFromBank - ld c, a - ld a, [de] - sub c - ld [de], a - inc de - inc hl - ld a, BANK(BallPhysicsData_ec000) - call ReadByteFromBank - ld b, a - ld a, [de] - sbc b - ld [de], a - inc de - inc hl - bit 7, b - jr z, .asm_1f0ff - ld a, c - cpl - ld c, a - ld a, b - cpl - ld b, a - inc bc -.asm_1f0ff - pop hl - bit 7, h - jr z, .asm_1f10b - ld a, l - cpl - ld l, a - ld a, h - cpl - ld h, a - inc hl -.asm_1f10b - add hl, bc - sla l - rl h - ld a, h - cp $2 - ret c - ld a, [wd804] - and a - ret nz - ld a, $5 - ld [wd803], a - ld a, $8 - ld [wd804], a - ret - -Func_1f124: ; 0x1f124 - ld bc, BallPhysicsData_ec000 - add hl, bc - ld de, wBallYVelocity - ld a, BANK(BallPhysicsData_ec000) - call ReadByteFromBank - ld c, a - ld a, [de] - sub c - ld [de], a - inc de - inc hl - ld a, BANK(BallPhysicsData_ec000) - call ReadByteFromBank - ld b, a - ld a, [de] - sbc b - ld [de], a - inc hl - push bc - dec de - dec de - dec de - ld a, BANK(BallPhysicsData_ec000) - call ReadByteFromBank - ld c, a - ld a, [de] - add c - ld [de], a - inc de - inc hl - ld a, BANK(BallPhysicsData_ec000) - call ReadByteFromBank - ld b, a - ld a, [de] - adc b - ld [de], a - inc de - inc hl - bit 7, b - jr z, .asm_1f165 - ld a, c - cpl - ld c, a - ld a, b - cpl - ld b, a - inc bc -.asm_1f165 - pop hl - bit 7, h - jr z, .asm_1f171 - ld a, l - cpl - ld l, a - ld a, h - cpl - ld h, a - inc hl -.asm_1f171 - add hl, bc - sla l - rl h - ld a, h - cp $2 - ret c - ld a, [wd804] - and a - ret nz - ld a, $5 - ld [wd803], a - ld a, $8 - ld [wd804], a - ret - -Func_1f18a: ; 0x1f18a - ld a, [wd640] - cp $0 - jr z, .asm_1f1b4 - ld a, [wBlueStageForceFieldDirection] - sla a - ld c, a - ld b, $0 - ld hl, TileDataPointers_1f1b5 - ld a, [hGameBoyColorFlag] - and a - jr z, .asm_1f1a4 - ld hl, TileDataPointers_1f201 -.asm_1f1a4 - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - or h - ret z - ld a, Bank(TileDataPointers_1f1b5) - call Func_10aa - ld a, $0 - ld [wd640], a -.asm_1f1b4 - ret - -TileDataPointers_1f1b5: - dw TileData_1f1bd - dw TileData_1f1c0 - dw TileData_1f1c3 - dw TileData_1f1c6 - -TileData_1f1bd: ; 0x1f1bd - db $01 - dw TileData_1f1c9 - -TileData_1f1c0: ; 0x1f1c0 - db $01 - dw TileData_1f1d7 - -TileData_1f1c3: ; 0x1f1c3 - db $01 - dw TileData_1f1e5 - -TileData_1f1c6: ; 0x1f1c6 - db $01 - dw TileData_1f1f3 - -TileData_1f1c9: ; 0x1f1c9 - dw LoadTileLists - db $04 ; total number of tiles - - db $02 ; number of tiles - dw vBGMap + $189 - db $70, $71 - - db $02 ; number of tiles - dw vBGMap + $1a9 - db $72, $73 - - db $00 ; terminator - -TileData_1f1d7: ; 0x1f1d7 - dw LoadTileLists - db $04 ; total number of tiles - - db $02 ; number of tiles - dw vBGMap + $189 - db $74, $75 - - db $02 ; number of tiles - dw vBGMap + $1a9 - db $76, $77 - - db $00 ; terminator - -TileData_1f1e5: ; 0x1f1e5 - dw LoadTileLists - db $04 ; total number of tiles - - db $02 ; number of tiles - dw vBGMap + $189 - db $78, $79 - - db $02 ; number of tiles - dw vBGMap + $1a9 - db $7A, $7B - - db $00 ; terminator - -TileData_1f1f3: ; 0x1f1f3 - dw LoadTileLists - db $04 ; total number of tiles - - db $02 ; number of tiles - dw vBGMap + $189 - db $7C, $7D - - db $02 ; number of tiles - dw vBGMap + $1a9 - db $7E, $7F - - db $00 ; terminator - -TileDataPointers_1f201: - dw TileData_1f209 - dw TileData_1f20c - dw TileData_1f20f - dw TileData_1f212 - -TileData_1f209: ; 0x1f209 - db $01 - dw TileData_1f215 - -TileData_1f20c: ; 0x1f20c - db $01 - dw TileData_1f228 - -TileData_1f20f: ; 0x1f20f - db $01 - dw TileData_1f23b - -TileData_1f212: ; 0x1f212 - db $01 - dw TileData_1f24e - -TileData_1f215: ; 0x1f215 - dw LoadTileLists - db $06 ; total number of tiles - - db $02 ; number of otiles - dw vBGMap + $189 - db $6C, $6D - - db $02 ; number of tiles - dw vBGMap + $1a9 - db $6E, $6F - - db $02 - dw vBGMap + $1c9 - db $70, $71 - - db $00 ; terminator - -TileData_1f228: ; 0x1f228 - dw LoadTileLists - db $06 ; total number of tiles - - db $02 ; number of otiles - dw vBGMap + $189 - db $72, $80 - - db $02 ; number of tiles - dw vBGMap + $1a9 - db $73, $74 - - db $02 - dw vBGMap + $1c9 - db $75, $80 - - db $00 ; terminator - -TileData_1f23b: ; 0x1f23b - dw LoadTileLists - db $06 ; total number of tiles - - db $02 ; number of otiles - dw vBGMap + $189 - db $76, $77 - - db $02 ; number of tiles - dw vBGMap + $1a9 - db $78, $79 - - db $02 - dw vBGMap + $1c9 - db $7A, $7B - - db $00 ; terminator - -TileData_1f24e: ; 0x1f24e - dw LoadTileLists - db $06 ; total number of tiles - - db $02 ; number of otiles - dw vBGMap + $189 - db $80, $7C - - db $02 ; number of tiles - dw vBGMap + $1a9 - db $7D, $7E - - db $02 - dw vBGMap + $1c9 - db $80, $7F - - db $00 ; terminator - -Func_1f261: ; 0x1f261 - call Func_1f27b - ret nc - ; fall through - -Func_1f265: ; 0x1f265 - sla a - ld c, a - ld b, $0 - ld hl, TileDataPointers_1f2b9 - add hl, bc - ld a, [hli] - ld c, a - ld a, [hli] - ld b, a - ld a, $7 - ld de, LoadTileLists - call Func_10c5 - ret - -Func_1f27b: ; 0x1f27b - ld a, [wd624] - ld hl, wd625 - cp [hl] - ret z - ld a, [wd626] - dec a - ld [wd626], a - jr nz, .asm_1f2a5 - ld a, [wd625] - ld [wd624], a - cp $3 - jr c, .asm_1f2a0 - ld a, $1 - ld [wd609], a - ld a, $3 - ld [wd607], a -.asm_1f2a0 - ld a, [wd624] - scf - ret - -.asm_1f2a5 - and $7 - ret nz - ld a, [wd626] - bit 3, a - jr nz, .asm_1f2b4 - ld a, [wd624] - scf - ret - -.asm_1f2b4 - ld a, [wd625] - 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 "engine/pinball_game/object_collision/blue_stage_resolve_collision.asm" Func_1f2ed: ; 0x1f2ed xor a @@ -23925,6201 +4148,13 @@ Func_24405: ; 0x24405 and a ret -Func_2442a: ; 0x2442a - ld a, [wd710] - jr nz, .asm_2443f - ld a, [wMeowthStageBonusCounter] - dec a - dec a - cp $fe - jr z, .asm_24447 - cp $ff - jr z, .asm_24447 - ld [wd79a], a -.asm_2443f - ld de, wd79a - call Func_24f00 - jr .asm_2444b - -.asm_24447 - xor a - ld [wd79a], a -.asm_2444b - call Func_244f5 - call Func_245ab - call Func_248ac - call Func_24d07 - ld a, [wMeowthStageScore] - cp $14 - jr c, .asm_24498 - ld a, [wd712] - cp $2 - jr nc, .asm_24498 - ld a, [wd498] - cp $4 - ret z - ld a, $4 - ld [wd712], a - ld [wd498], a - ld a, $96 - ld [wd739], a - ld de, $0000 - call PlaySong - ld a, $1 - ld [wd49a], a - call FillBottomMessageBufferWithBlackTile - call Func_30db - ld hl, wd5dc - ld de, MeowthStageClearedText - call LoadTextHeader - lb de, $4b, $2a - call PlaySoundEffect -.asm_24498 - ld a, [wd712] - cp $4 - jr nz, .asm_244b0 - ld a, [wSFXTimer] - and a - jr nz, .asm_244b0 - ld de, $0004 - call PlaySong - ld a, $5 - ld [wd712], a -.asm_244b0 - ld a, [wd712] - cp $4 - jr z, .asm_244c1 - callba Func_107f8 -.asm_244c1 - ld a, [wd57e] - and a - ret z - xor a - ld [wd57e], a - ld a, $1 - ld [wd7be], a - call Func_2862 - callba StopTimer - ld a, $1 - ld [wd713], a - ld a, $1 - ld [wd712], a - ld hl, MeowthAnimationData5 - ld de, wMeowthAnimationFrameCounter - call CopyHLToDE - ld a, $4 - ld [wd6ec], a - ret - -Func_244f5: ; 0x244f5 - ld a, [wd6e6] - and a - ret nz - ld a, [wd4b4] - cp $8a - ret nc - ld a, $1 - ld [wStageCollisionState], a - ld [wd6e6], a - callba LoadStageCollisionAttributes - call Func_24516 - ret - -Func_24516: ; 0x24516 - ld a, [wStageCollisionState] - sla a - ld c, a - ld b, $0 - ld hl, TileDataPointers_24533 - ld a, [hGameBoyColorFlag] - and a - jr z, .asm_24529 - ld hl, TileDataPointers_2456f -.asm_24529 - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - ld a, Bank(TileDataPointers_24533) - call Func_10aa - ret - -TileDataPointers_24533: ; 0x24533 - dw TileData_24537 - dw TileData_2453a - -TileData_24537: ; 0x24537 - db $01 - dw TileData_2453D - -TileData_2453a: ; 0x2453a - db $01 - dw TileData_24556 - -TileData_2453D: ; 0x2453D - dw LoadTileLists - db $09 ; total number of tiles - - db $02 ; number of tiles - dw vBGMap + $113 - db $01, $02 - - db $02 ; number of tiles - dw vBGMap + $133 - db $FF, $00 - - db $03 ; number of tiles - dw vBGMap + $152 - db $80, $FD, $FE - - db $02 ; number of tiles - dw vBGMap + $172 - db $F6, $FA - - db $00 ; terminator - -TileData_24556: ; 0x24556 - dw LoadTileLists - db $09 ; total number of tiles - - db $02 ; number of tiles - dw vBGMap + $113 - db $E9, $E5 - - db $02 ; number of tiles - dw vBGMap + $133 - db $E7, $E3 - - db $03 ; number of tiles - dw vBGMap + $152 - db $12, $13, $E4 - - db $02 ; number of tiles - dw vBGMap + $172 - db $10, $11 - - db $00 ; terminator - -TileDataPointers_2456f: ; 0x2456f - dw TileData_24573 - dw TileData_24576 - -TileData_24573: ; 0x - db $01 - dw TileData_24579 - -TileData_24576: ; 0x - db $01 - dw TileData_24592 - -TileData_24579: ; 0x24579 - dw LoadTileLists - db $09 ; total number of tiles - - db $02 ; number of tiles - dw vBGMap + $113 - db $F6, $F5 - - db $02 ; number of tiles - dw vBGMap + $133 - db $F4, $F3 - - db $03 ; number of tiles - dw vBGMap + $152 - db $80, $F1, $F2 - - db $02 ; number of tiles - dw vBGMap + $172 - db $EA, $EE - - db $00 ; terminator - -TileData_24592: ; 0x24592 - dw LoadTileLists - db $09 ; total number of tiles - - db $02 ; number of tiles - dw vBGMap + $113 - db $E5, $E3 - - db $02 ; number of tiles - dw vBGMap + $133 - db $E4, $E2 - - db $03 ; number of tiles - dw vBGMap + $152 - db $F0, $EF, $E3 - - db $02 ; number of tiles - dw vBGMap + $172 - db $ED, $EC - - db $00 ; terminator - -Func_245ab: ; 0x245ab - ld a, [wd6e7] - and a - jr z, .asm_24621 - cp $2 - jr z, .asm_24621 - ld a, $1 - ld [wd6f3], a - ld a, [wMeowthYPosition] - cp $20 - jr z, .asm_245c7 - cp $10 - jr z, .asm_245cc - jr .asm_245cf - -.asm_245c7 - call Func_247d9 - jr .asm_245cf - -.asm_245cc - call Func_24c28 -.asm_245cf - xor a - ld [wd6e7], a - ld [wd6f3], a - ld a, $ff - ld [wd803], a - ld a, $3 - ld [wd804], a - lb de, $00, $33 - call PlaySoundEffect - ld bc, OneThousandPoints - callba AddBigBCD6FromQueueWithBallMultiplier - xor a - ld [wMeowthStageBonusCounter], a - ld a, [wd6ec] - cp $2 - jr nc, .asm_24621 - and a - jr nz, .asm_24611 - ld hl, MeowthAnimationData3 - ld de, wMeowthAnimationFrameCounter - call CopyHLToDE - ld a, $2 - ld [wd6ec], a - jr .asm_24651 - -.asm_24611 - ld hl, MeowthAnimationData4 - ld de, wMeowthAnimationFrameCounter - call CopyHLToDE - ld a, $3 - ld [wd6ec], a - jr .asm_24651 - -.asm_24621 - ld a, [wd713] - and a - jr z, .asm_2462e - ld a, $4 - ld [wd6ec], a - jr .asm_24651 - -.asm_2462e - ld a, [wd6ec] - cp $2 - jr nc, .asm_24651 - ld a, [wd70b] - cp $3 - jr nz, .asm_24651 - ld a, [wd70c] - cp $3 - jr nz, .asm_24651 - ld hl, MeowthAnimationData5 - ld de, wMeowthAnimationFrameCounter - call CopyHLToDE - ld a, $4 - ld [wd6ec], a -.asm_24651 - ld a, [wd6ec] - cp $2 - call c, Func_24709 - call Func_2465d - ret - -Func_2465d: ; 0x2465d - ld a, [wd6ec] - sla a - ld c, a - ld b, $0 - ld hl, MewothAnimationDataTable ; 0x246e2 - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - ld de, wMeowthAnimationFrameCounter - call UpdateAnimation - ret nc - ld a, [wd6ec] - and a - jr nz, .asm_24689 - ld a, [wMeowthAnimationFrameIndex] - cp $4 - ret nz - ld hl, MeowthAnimationData1 - ld de, wMeowthAnimationFrameCounter - call CopyHLToDE - ret - -.asm_24689 - cp $1 - jr nz, .asm_2469d - ld a, [wMeowthAnimationFrameIndex] - cp $4 - ret nz - ld hl, MeowthAnimationData2 - ld de, wMeowthAnimationFrameCounter - call CopyHLToDE - ret - -.asm_2469d - cp $2 - jr nz, .asm_246b5 - ld a, [wMeowthAnimationFrameIndex] - cp $1 - ret nz - ld hl, MeowthAnimationData1 - ld de, wMeowthAnimationFrameCounter - call CopyHLToDE - xor a - ld [wd6ec], a - ret - -.asm_246b5 - cp $3 - jr nz, .asm_246ce - ld a, [wMeowthAnimationFrameIndex] - cp $1 - ret nz - ld hl, MeowthAnimationData2 - ld de, wMeowthAnimationFrameCounter - call CopyHLToDE - ld a, $1 - ld [wd6ec], a - ret - -.asm_246ce - cp $4 - jr nz, .asm_24689 - ld a, [wMeowthAnimationFrameIndex] - cp $2 - ret nz - ld hl, MeowthAnimationData5 - ld de, wMeowthAnimationFrameCounter - call CopyHLToDE - ret - -MewothAnimationDataTable: ; 0x246e2 - dw MeowthAnimationData1 - dw MeowthAnimationData2 - dw MeowthAnimationData3 - dw MeowthAnimationData4 - dw MeowthAnimationData5 - -MeowthAnimationData1: ; 0x246ec -; Each entry is [OAM id][duration] - db $10, $00 - db $0B, $01 - db $10, $02 - db $0C, $01 - db $00 ; terminator - -MeowthAnimationData2: ; 0x246f5 -; Each entry is [OAM id][duration] - db $10, $04 - db $0B, $05 - db $10, $06 - db $0C, $05 - db $00 ; terminator - -MeowthAnimationData3: ; 0x246fe -; Each entry is [OAM id][duration] - db $16, $03 - db $00 ; terminator - -MeowthAnimationData4: ; 0x24701 -; Each entry is [OAM id][duration] - db $16, $07 - db $00 ; terminator - -MeowthAnimationData5: ; 0x24704 - db $17, $08 - db $17, $09 - db $00 ; terminator - -Func_24709: ; 0x24709 - ld a, [wMeowthXPosition] - ld hl, wMeowthXMovement - add [hl] - ld [wMeowthXPosition], a - ld hl, wMeowthYMovement - ld a, [hl] - and a - jr z, .asm_24730 - bit 7, [hl] - ld a, [wMeowthYPosition] - jr nz, .asm_24724 - inc a - jr .asm_24725 - -.asm_24724 - dec a -.asm_24725 - cp $21 - jr z, .asm_24730 - cp $f - jr z, .asm_24730 - ld [wMeowthYPosition], a -.asm_24730 - call Func_24737 - call Func_2476d - ret - -Func_24737: ; 0x24737 - ld a, [wMeowthXPosition] - cp $8 - jr nc, .asm_24742 - ld a, $1 - jr .asm_2475a - -.asm_24742 - cp $78 - jr c, .asm_2474a - ld a, $ff - jr .asm_2475a - -.asm_2474a - ld a, [hNumFramesDropped] - and $3f - ret nz - call GenRandom - bit 7, a - ld a, $1 - jr z, .asm_2475a - ld a, $ff -.asm_2475a - ld [wMeowthXMovement], a - bit 7, a - ld a, $1 - jr z, .asm_24764 - xor a -.asm_24764 - ld [wd6ec], a - ld a, $2 - ld [wMeowthAnimationFrameCounter], a - ret - -Func_2476d: ; 0x2476d - ld a, [wMeowthYMovement] - and a - jr z, .asm_247ab - cp $1 - jr z, .asm_24791 - ld a, [wMeowthYPosition] - cp $10 - jr nz, .asm_2478d - ld a, [wd6e7] - cp $2 - jr nz, .asm_2478a - ld a, $1 - ld [wd6e7], a -.asm_2478a - xor a - jr .asm_247c9 - -.asm_2478d - ld a, $ff - jr .asm_247c9 - -.asm_24791 - ld a, [wMeowthYPosition] - cp $20 - jr nz, .asm_247a7 - ld a, [wd6e7] - cp $2 - jr nz, .asm_247a4 - ld a, $1 - ld [wd6e7], a -.asm_247a4 - xor a - jr .asm_247c9 - -.asm_247a7 - ld a, $1 - jr .asm_247c9 - -.asm_247ab - ld a, [wd70b] - cp $3 - jr z, .asm_247cd - ld a, [wd70c] - cp $3 - jr z, .asm_247d3 - ld a, [hNumFramesDropped] - and $3f - ret nz - call GenRandom - bit 0, a - ld a, $1 - jr z, .asm_247c9 - ld a, $ff -.asm_247c9 - ld [wMeowthYMovement], a - ret - -.asm_247cd - ld a, $ff - ld [wMeowthYMovement], a - ret - -.asm_247d3 - ld a, $1 - ld [wMeowthYMovement], a - ret - -Func_247d9: ; 0x247d9 - ld a, [wd6f3] - and a - ret z - ld a, [wd71a] - cp $c8 - jr nz, .asm_24823 - ld a, [wMeowthXPosition] - add $8 - ld [wd71a], a - ld a, [wMeowthYPosition] - add $fb - ld [wd727], a - ld a, $1 - ld [wd717], a - xor a - ld [wd6f3], a - ld [wd714], a - ld [wd6f5], a - ld [wd6f8], a - ld [wd6fb], a - ld a, [wMeowthXPosition] - add $14 - ld b, a - ld a, [wd4b4] - cp b - jr nc, .asm_2481d - ld a, $0 - ld [wd72a], a - jr .asm_24822 - -.asm_2481d - ld a, $1 - ld [wd72a], a -.asm_24822 - ret - -.asm_24823 - ld a, [wd71b] - cp $c8 - jr nz, .asm_24868 - ld a, [wMeowthXPosition] - add $8 - ld [wd71b], a - ld a, [wMeowthYPosition] - add $fb - ld [wd728], a - ld a, $1 - ld [wd718], a - xor a - ld [wd6f3], a - ld [wd715], a - ld [wd6f6], a - ld [wd6f9], a - ld [wd6fc], a - ld a, [wMeowthXPosition] - add $14 - ld b, a - ld a, [wd4b4] - cp b - jr nc, .asm_24862 - ld a, $0 - ld [wd72b], a - jr .asm_24867 - -.asm_24862 - ld a, $1 - ld [wd72b], a -.asm_24867 - ret - -.asm_24868 - ld a, [wd71c] - cp $c8 - ret nz - ld a, [wMeowthXPosition] - add $8 - ld [wd71c], a - ld a, [wMeowthYPosition] - add $fb - ld [wd729], a - ld a, $1 - ld [wd719], a - xor a - ld [wd6f3], a - ld [wd716], a - ld [wd6f7], a - ld [wd6fa], a - ld [wd6fd], a - ld a, [wMeowthXPosition] - add $14 - ld b, a - ld a, [wd4b4] - cp b - jr nc, .asm_248a6 - ld a, $0 - ld [wd72c], a - jr .asm_248ab - -.asm_248a6 - ld a, $1 - ld [wd72c], a -.asm_248ab - ret - -Func_248ac: ; 0x248ac - ld a, [wd717] - cp $1 - jr nz, .asm_248d3 - ld a, [wd714] - cp $a - jr z, .asm_248c4 - ld a, $0 - ld [wd6f4], a - call Func_24a30 - jr .asm_248d3 - -.asm_248c4 - ld hl, wd70b - inc [hl] - ld a, $2 - ld [wd717], a - lb de, $00, $34 - call PlaySoundEffect -.asm_248d3 - ld a, [wd718] - cp $1 - jr nz, .asm_248fa - ld a, [wd715] - cp $a - jr z, .asm_248eb - ld a, $1 - ld [wd6f4], a - call Func_24a30 - jr .asm_248fa - -.asm_248eb - ld hl, wd70b - inc [hl] - ld a, $2 - ld [wd718], a - lb de, $00, $34 - call PlaySoundEffect -.asm_248fa - ld a, [wd719] - cp $1 - jr nz, .asm_24921 - ld a, [wd716] - cp $a - jr z, .asm_24912 - ld a, $2 - ld [wd6f4], a - call Func_24a30 - jr .asm_24921 - -.asm_24912 - ld hl, wd70b - inc [hl] - ld a, $2 - ld [wd719], a - lb de, $00, $34 - call PlaySoundEffect -.asm_24921 - ld a, [wd717] - cp $2 - jr nz, .asm_2492c - ld hl, wd714 - inc [hl] -.asm_2492c - ld a, [wd718] - cp $2 - jr nz, .asm_24937 - ld hl, wd715 - inc [hl] -.asm_24937 - ld a, [wd719] - cp $2 - jr nz, .asm_24942 - ld hl, wd716 - inc [hl] -.asm_24942 - ld a, [wd717] - cp $3 - jr nz, .asm_24968 - ld a, [wd71a] - ld b, a - ld a, [wd727] - ld c, a - ld hl, wd714 - inc [hl] - ld a, [hl] - cp $2 - jr nz, .asm_2495f - call Func_24e7f - jr .asm_24968 - -.asm_2495f - cp $a - jr nz, .asm_24968 - ld a, $4 - ld [wd717], a -.asm_24968 - ld a, [wd718] - cp $3 - jr nz, .asm_2498e - ld a, [wd71b] - ld b, a - ld a, [wd728] - ld c, a - ld hl, wd715 - inc [hl] - ld a, [hl] - cp $2 - jr nz, .asm_24985 - call Func_24e7f - jr .asm_2498e - -.asm_24985 - cp $a - jr nz, .asm_2498e - ld a, $4 - ld [wd718], a -.asm_2498e - ld a, [wd719] - cp $3 - jr nz, .asm_249b4 - ld a, [wd71c] - ld b, a - ld a, [wd729] - ld c, a - ld hl, wd716 - inc [hl] - ld a, [hl] - cp $2 - jr nz, .asm_249ab - call Func_24e7f - jr .asm_249b4 - -.asm_249ab - cp $a - jr nz, .asm_249b4 - ld a, $4 - ld [wd719], a -.asm_249b4 - ld a, [wd717] - cp $4 - jr nz, .asm_249d0 - ld a, $c8 - ld [wd71a], a - ld [wd727], a - xor a - ld [wd717], a - ld hl, wd70b - dec [hl] - ld a, [hl] - cp $2 - jr z, .asm_24a06 -.asm_249d0 - ld a, [wd718] - cp $4 - jr nz, .asm_249ec - ld a, $c8 - ld [wd71b], a - ld [wd728], a - xor a - ld [wd718], a - ld hl, wd70b - dec [hl] - ld a, [hl] - cp $2 - jr z, .asm_24a06 -.asm_249ec - ld a, [wd719] - cp $4 - ret nz - ld a, $c8 - ld [wd71c], a - ld [wd729], a - xor a - ld [wd719], a - ld hl, wd70b - dec [hl] - ld a, [hl] - cp $2 - ret nz -.asm_24a06 - ld a, [wd713] - and a - ret nz - ld a, [wMeowthXMovement] - cp $ff - jr z, .asm_24a21 - ld hl, MeowthAnimationData2 - ld de, wMeowthAnimationFrameCounter - call CopyHLToDE - ld a, $1 - ld [wd6ec], a - ret - -.asm_24a21 - ld hl, MeowthAnimationData1 - ld de, wMeowthAnimationFrameCounter - call CopyHLToDE - ld a, $0 - ld [wd6ec], a - ret - -Func_24a30: ; 0x24a30 - ld a, [wd6f4] - ld c, a - ld b, $0 - ld hl, wd6f8 - add hl, bc - ld a, [hl] - and a - jr z, .asm_24a42 - call Func_24b41 - ret - -.asm_24a42 - ld a, [wd6f4] - ld c, a - ld b, $0 - ld hl, wd6f5 - add hl, bc - ld a, [hl] - bit 2, a - jr z, .asm_24a5e - bit 1, a - jr nz, .asm_24a5e - bit 0, a - jr nz, .asm_24a5e - ld hl, wd714 - add hl, bc - inc [hl] -.asm_24a5e - ld hl, wd6f5 - add hl, bc - ld a, [hl] - ld hl, Data_24af1 - ld e, a - ld d, $0 - add hl, de - ld hl, wd72a - add hl, bc - ld a, [hl] - and a - jr nz, .asm_24a97 -.asm_24a72 - ld hl, wd72a - add hl, bc - ld [hl], $0 - ld hl, wd71a - add hl, bc - ld a, [hl] - push af - ld hl, wd6f5 - add hl, bc - ld a, [hl] - ld e, a - ld d, $0 - ld hl, Data_24af1 - add hl, de - pop af - add [hl] - cp $8e - jr nc, .asm_24a97 - ld hl, wd71a - add hl, bc - ld [hl], a - jr .asm_24abf - -.asm_24a97 - ld hl, wd72a - add hl, bc - ld [hl], $1 - ld hl, wd6f5 - add hl, bc - ld a, [hl] - ld e, a - ld d, $0 - ld hl, Data_24af1 - add hl, de - ld a, [hl] - ld d, a - ld a, $ff - sub d - inc a - ld d, a - ld hl, wd71a - add hl, bc - ld a, [hl] - add d - cp $5 - jr c, .asm_24a72 - ld hl, wd71a - add hl, bc - ld [hl], a -.asm_24abf - ld hl, wd6f5 - add hl, bc - ld a, [hl] - ld e, a - ld d, $0 - ld hl, Data_24af1 - add hl, de - inc hl - ld a, [hl] - ld d, a - ld hl, wd727 - add hl, bc - ld a, [hl] - add d - ld hl, wd727 - add hl, bc - ld [hl], a - ld hl, wd6f5 - add hl, bc - inc [hl] - inc [hl] - ld a, [hl] - cp $46 - jr nz, .asm_24af0 - ld a, c - cp $9 - jr c, .asm_24aed - call Func_2438f - ret - -.asm_24aed - call Func_24319 -.asm_24af0 - ret - -Data_24af1: -; These are offsets for something in the Meowth stage - db 2, -4 - db 2, -4 - db 2, -4 - db 2, 0 - db 2, -2 - db 2, 0 - db 2, -2 - db 2, 0 - db 2, -2 - db 2, 0 - db 2, -2 - db 2, 0 - db 2, 0 - db 2, 0 - db 2, 0 - db 2, 2 - db 2, 2 - db 2, 2 - db 2, 2 - db 2, 2 - db 2, 3 - db 2, 4 - db 2, 4 - db 2, 4 - db 2, 4 - db 2, 4 - db 1, 4 - db 1, 4 - db 1, 4 - db 1, 4 - db 1, 4 - db 1, 4 - db 1, 4 - db 1, 4 - db 1, 4 - db 1, 4 - db 0, 0 - db 0, 0 - db 0, 0 - db 0, 0 - -Func_24b41: ; 0x24b41 - ld a, [wd6f4] - ld b, $0 - ld c, a - ld hl, wd6f5 - add hl, bc - ld a, [hl] - cp $14 - jp nc, Func_24bf6 - ld hl, wd6f5 - add hl, bc - ld a, [hl] - ld hl, Data_24c0a - ld e, a - ld d, $0 - add hl, de - ld hl, wd72a - add hl, bc - ld a, [hl] - and a - jr nz, .asm_24b8a -.asm_24b65 - ld hl, wd72a - add hl, bc - ld [hl], $0 - ld hl, wd71a - add hl, bc - ld a, [hl] - push af - ld hl, wd6f5 - add hl, bc - ld a, [hl] - ld e, a - ld d, $0 - ld hl, Data_24c0a - add hl, de - pop af - add [hl] - cp $90 - jr nc, .asm_24b8a - ld hl, wd71a - add hl, bc - ld [hl], a - jr .asm_24bb2 - -.asm_24b8a - ld hl, wd72a - add hl, bc - ld [hl], $1 - ld hl, wd6f5 - add hl, bc - ld a, [hl] - ld e, a - ld d, $0 - ld hl, Data_24c0a - add hl, de - ld a, [hl] - ld d, a - ld a, $ff - sub d - inc a - ld d, a - ld hl, wd71a - add hl, bc - ld a, [hl] - add d - cp $6 - jr c, .asm_24b65 - ld hl, wd71a - add hl, bc - ld [hl], a -.asm_24bb2 - ld hl, wd6f5 - add hl, bc - ld a, [hl] - ld e, a - ld d, $0 - ld hl, Data_24c0a - add hl, de - inc hl - ld a, [hl] - ld d, a - ld hl, wd727 - add hl, bc - ld a, [hl] - add d - ld hl, wd727 - add hl, bc - ld [hl], a - ld hl, wd6f5 - add hl, bc - inc [hl] - inc [hl] - ld a, [hl] - cp $12 - jr nz, .asm_24bf4 - ld a, c - cp $9 - jr c, .asm_24be1 - call Func_2438f - jr .asm_24be4 - -.asm_24be1 - call Func_24319 -.asm_24be4 - ld a, [wd6f4] - ld b, $0 - ld c, a - ld hl, wd6f8 - add hl, bc - ld a, [hl] - and a - jr nz, .asm_24bf4 - ld [hl], $1 -.asm_24bf4 - scf - ret - -Func_24bf6: ; 0x24bf6 - ld a, [wd6f4] - ld b, $0 - ld c, a - ld hl, wd6f8 - add hl, bc - ld [hl], $0 - ld hl, wd714 - add hl, bc - ld [hl], $a - ccf - ret - -Data_24c0a: -; These are offsets for something in the Meowth stage - db 2, -2 - db 2, -1 - db 2, -1 - db 2, 0 - db 2, 0 - db 2, 0 - db 2, 1 - db 2, 1 - db 2, 2 - db 2, 4 - db 1, 4 - db 0, 0 - db 0, 0 - db 0, 0 - db 0, 0 - -Func_24c28: ; 0x24c28 - ld a, [wd6f3] - and a - ret z - ld a, [wd724] - cp $c8 - jr nz, .asm_24c76 - ld a, [wMeowthXPosition] - add $8 - ld [wd724], a - ld a, [wMeowthYPosition] - add $fb - ld [wd731], a - ld a, $1 - ld [wd721], a - ld hl, wd70c - inc [hl] - xor a - ld [wd6f3], a - ld [wd71e], a - ld [wd6ff], a - ld [wd702], a - ld [wd705], a - ld a, [wMeowthXPosition] - add $14 - ld b, a - ld a, [wd4b4] - cp b - jr nc, .asm_24c70 - ld a, $0 - ld [wd734], a - jr .asm_24c75 - -.asm_24c70 - ld a, $1 - ld [wd734], a -.asm_24c75 - ret - -.asm_24c76 - ld a, [wd725] - cp $c8 - jr nz, .asm_24cbf - ld a, [wMeowthXPosition] - add $8 - ld [wd725], a - ld a, [wMeowthYPosition] - add $fb - ld [wd732], a - ld a, $1 - ld [wd722], a - ld hl, wd70c - inc [hl] - xor a - ld [wd6f3], a - ld [wd71f], a - ld [wd700], a - ld [wd703], a - ld [wd706], a - ld a, [wd6f7] - add $14 - ld b, a - ld a, [wd4b4] - cp b - jr nc, .asm_24cb9 - ld a, $0 - ld [wd735], a - jr .asm_24cbe - -.asm_24cb9 - ld a, $1 - ld [wd735], a -.asm_24cbe - ret - -.asm_24cbf - ld a, [wd726] - cp $c8 - ret nz - ld a, [wMeowthXPosition] - add $8 - ld [wd726], a - ld a, [wMeowthYPosition] - add $fb - ld [wd733], a - ld a, $1 - ld [wd723], a - ld hl, wd70c - inc [hl] - xor a - ld [wd6f3], a - ld [wd720], a - ld [wd701], a - ld [wd704], a - ld [wd707], a - ld a, [wMeowthXPosition] - add $14 - ld b, a - ld a, [wd4b4] - cp b - jr nc, .asm_24d01 - ld a, $0 - ld [wd736], a - jr .asm_24d06 - -.asm_24d01 - ld a, $1 - ld [wd736], a -.asm_24d06 - ret - -Func_24d07: ; 0x24d07 - ld a, [wd721] - cp $1 - jr nz, .asm_24d2a - ld a, [wd71e] - cp $a - jr z, .asm_24d1f - ld a, $a - ld [wd6f4], a - call Func_24a30 - jr .asm_24d2a - -.asm_24d1f - ld a, $2 - ld [wd721], a - lb de, $00, $34 - call PlaySoundEffect -.asm_24d2a - ld a, [wd722] - cp $1 - jr nz, .asm_24d4d - ld a, [wd71f] - cp $a - jr z, .asm_24d42 - ld a, $b - ld [wd6f4], a - call Func_24a30 - jr .asm_24d4d - -.asm_24d42 - ld a, $2 - ld [wd722], a - lb de, $00, $34 - call PlaySoundEffect -.asm_24d4d - ld a, [wd723] - cp $1 - jr nz, .asm_24d70 - ld a, [wd720] - cp $a - jr z, .asm_24d65 - ld a, $c - ld [wd6f4], a - call Func_24a30 - jr .asm_24d70 - -.asm_24d65 - ld a, $2 - ld [wd723], a - lb de, $00, $34 - call PlaySoundEffect -.asm_24d70 - ld a, [wd721] - cp $2 - jr nz, .asm_24d7b - ld hl, wd71e - inc [hl] -.asm_24d7b - ld a, [wd722] - cp $2 - jr nz, .asm_24d86 - ld hl, wd71f - inc [hl] -.asm_24d86 - ld a, [wd723] - cp $2 - jr nz, .asm_24d91 - ld hl, wd720 - inc [hl] -.asm_24d91 - ld a, [wd721] - cp $3 - jr nz, .asm_24db7 - ld a, [wd724] - ld b, a - ld a, [wd731] - ld c, a - ld hl, wd71e - inc [hl] - ld a, [hl] - cp $2 - jr nz, .asm_24dae - call Func_24e7f - jr .asm_24db7 - -.asm_24dae - cp $a - jr nz, .asm_24db7 - ld a, $4 - ld [wd721], a -.asm_24db7 - ld a, [wd722] - cp $3 - jr nz, .asm_24ddd - ld a, [wd725] - ld b, a - ld a, [wd732] - ld c, a - ld hl, wd71f - inc [hl] - ld a, [hl] - cp $2 - jr nz, .asm_24dd4 - call Func_24e7f - jr .asm_24ddd - -.asm_24dd4 - cp $a - jr nz, .asm_24ddd - ld a, $4 - ld [wd722], a -.asm_24ddd - ld a, [wd723] - cp $3 - jr nz, .asm_24e03 - ld a, [wd726] - ld b, a - ld a, [wd733] - ld c, a - ld hl, wd720 - inc [hl] - ld a, [hl] - cp $2 - jr nz, .asm_24dfa - call Func_24e7f - jr .asm_24e03 - -.asm_24dfa - cp $a - jr nz, .asm_24e03 - ld a, $4 - ld [wd723], a -.asm_24e03 - ld a, [wd721] - cp $4 - jr nz, .asm_24e1f - ld a, $c8 - ld [wd724], a - ld [wd731], a - xor a - ld [wd721], a - ld hl, wd70c - dec [hl] - ld a, [hl] - cp $2 - jr z, .asm_24e55 -.asm_24e1f - ld a, [wd722] - cp $4 - jr nz, .asm_24e3b - ld a, $c8 - ld [wd725], a - ld [wd732], a - xor a - ld [wd722], a - ld hl, wd70c - dec [hl] - ld a, [hl] - cp $2 - jr z, .asm_24e55 -.asm_24e3b - ld a, [wd723] - cp $4 - ret nz - ld a, $c8 - ld [wd726], a - ld [wd733], a - xor a - ld [wd723], a - ld hl, wd70c - dec [hl] - ld a, [hl] - cp $2 - ret nz -.asm_24e55 - ld a, [wd713] - and a - ret nz - ld a, [wMeowthXMovement] - cp $ff - jr z, .asm_24e70 - ld hl, MeowthAnimationData2 - ld de, wMeowthAnimationFrameCounter - call CopyHLToDE - ld a, $1 - ld [wd6ec], a - ret - -.asm_24e70 - ld hl, MeowthAnimationData1 - ld de, wMeowthAnimationFrameCounter - call CopyHLToDE - ld a, $0 - ld [wd6ec], a - ret - -Func_24e7f: ; 0x24e7f - ld a, b - ld [wd79c], a - ld a, c - ld [wd79e], a - ld hl, wMeowthStageBonusCounter - inc [hl] - ld a, [hl] - cp $7 ; maximum bonus - jr nz, .asm_24e92 - xor a - ld [hl], a -.asm_24e92 - ld a, $ff - ld [wd803], a - ld a, $3 - ld [wd804], a - lb de, $00, $32 - call PlaySoundEffect - ld a, [wMeowthStageBonusCounter] - dec a -.asm_24ea6 - push af - ld bc, OneHundredThousandPoints - callba AddBigBCD6FromQueueWithBallMultiplier - ld hl, wMeowthStageScore - inc [hl] - pop af - and a - jr z, .asm_24ebf - dec a - jr .asm_24ea6 - -.asm_24ebf - ld a, [wMeowthStageBonusCounter] - dec a - dec a - cp $fe - jr z, .asm_24ed7 - cp $ff - jr z, .asm_24ed7 - ld [wd79a], a - ld de, wd79a - call Func_24ee7 - jr .asm_24ede - -.asm_24ed7 - xor a - ld [wd79a], a - ld [wd795], a -.asm_24ede - ld a, $1 - ld [wd64e], a - call Func_24fa3 - ret - -Func_24ee7: ; 0x24ee7 - ld a, $ff - ld [wd795], a - ld a, [de] - sla a - ld c, a - ld b, $0 - ld hl, MeowthStageAnimationDataTable - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - dec de - dec de - dec de - call CopyHLToDE - ret - -Func_24f00: ; 0x24f00 - ld a, [de] - sla a - ld c, a - ld b, $0 - ld hl, MeowthStageAnimationDataTable - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - push de - dec de - dec de - dec de - call UpdateAnimation - pop de - ld a, $1 - ld [wd710], a - ret nc - dec de - ld a, [de] - cp $a - ret nz - xor a - ld [de], a - ld [wd79c], a - ld [wd79e], a - ld [wd795], a - xor a - ld [wd710], a - ret - -MeowthStageAnimationDataTable: ; 0x24f30 - dw MeowthStageAnimationData1 - dw MeowthStageAnimationData2 - dw MeowthStageAnimationData3 - dw MeowthStageAnimationData4 - dw MeowthStageAnimationData5 - -MeowthStageAnimationData1: ; 0x24f3a -; Each entry is [OAM id][duration] - db $02, $00 - db $02, $01 - db $02, $02 - db $10, $00 - db $04, $0F - db $04, $00 - db $04, $0F - db $04, $00 - db $04, $0F - db $04, $00 - db $00 ; terminator - -MeowthStageAnimationData2: ; 0x24f4f -; Each entry is [OAM id][duration] - db $02, $03 - db $02, $04 - db $02, $05 - db $10, $03 - db $04, $0F - db $04, $03 - db $04, $0F - db $04, $03 - db $04, $0F - db $04, $03 - db $00 ; terminator - -MeowthStageAnimationData3: ; 0x24f64 -; Each entry is [OAM id][duration] - db $02, $06 - db $02, $07 - db $02, $08 - db $10, $06 - db $04, $0F - db $04, $06 - db $04, $0F - db $04, $06 - db $04, $0F - db $04, $06 - db $00 ; terminator - -MeowthStageAnimationData4: ; 0x24f79 -; Each entry is [OAM id][duration] - db $02, $09 - db $02, $0A - db $02, $0B - db $10, $09 - db $04, $0F - db $04, $09 - db $04, $0F - db $04, $09 - db $04, $0F - db $04, $09 - db $00 ; terminator - -MeowthStageAnimationData5: ; 0x24f8e -; Each entry is [OAM id][duration] - db $02, $0C - db $02, $0D - db $02, $0E - db $10, $0C - db $04, $0F - db $04, $0C - db $04, $0F - db $04, $0C - db $04, $0F - db $04, $0C - db $00 ; terminator - -Func_24fa3: ; 0x24fa3 - ld a, [wMeowthStageScore] - ld c, a - ld b, $0 -.asm_24fa9 - ld a, c - and a - jr z, .asm_24fb5 - ld a, b - add $8 - ld b, a - dec c - ld a, c - jr .asm_24fa9 - -.asm_24fb5 - ld a, b - and a - jr z, .asm_24fbb - sub $8 -.asm_24fbb - ld [wd652], a - ld a, [wMeowthStageBonusCounter] - and a - jr z, .asm_24fca - ld b, a - ld a, [wMeowthStageScore] - inc a - sub b -.asm_24fca - ld [wd651], a - ld a, $0 - ld [wd64e], a - ld a, [wMeowthStageScore] - and a - ret z - cp $15 - jr c, .asm_24fe2 - ld a, $14 - ld [wMeowthStageScore], a - jr .asm_24fed - -.asm_24fe2 - push af - xor a - ld [wd650], a - ld a, $1 - ld [wd64e], a - pop af -.asm_24fed - sla a - ld c, a - ld b, $0 - ld hl, TileDataPointers_25007 - ld a, [hGameBoyColorFlag] - and a - jr z, .asm_24ffd - ld hl, TileDataPointers_25421 -.asm_24ffd - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - ld a, Bank(TileDataPointers_25007) - call Func_10aa - ret - -TileDataPointers_25007: - dw TileData_25031 - dw TileData_25034 - dw TileData_25037 - dw TileData_2503a - dw TileData_2503d - dw TileData_25040 - dw TileData_25043 - dw TileData_25046 - dw TileData_25049 - dw TileData_2504c - dw TileData_2504f - dw TileData_25052 - dw TileData_25055 - dw TileData_25058 - dw TileData_2505b - dw TileData_2505e - dw TileData_25061 - dw TileData_25064 - dw TileData_25067 - dw TileData_2506a - dw TileData_2506d - -TileData_25031: ; 0x25031 - db $01 - dw TileData_25070 - -TileData_25034: ; 0x25034 - db $01 - dw TileData_2509d - -TileData_25037: ; 0x25037 - db $01 - dw TileData_250ca - -TileData_2503a: ; 0x2503a - db $01 - dw TileData_250f7 - -TileData_2503d: ; 0x2503d - db $01 - dw TileData_25124 - -TileData_25040: ; 0x25040 - db $01 - dw TileData_25151 - -TileData_25043: ; 0x25043 - db $01 - dw TileData_2517e - -TileData_25046: ; 0x25046 - db $01 - dw TileData_251ab - -TileData_25049: ; 0x25049 - db $01 - dw TileData_251d8 - -TileData_2504c: ; 0x2504c - db $01 - dw TileData_25205 - -TileData_2504f: ; 0x2504f - db $01 - dw TileData_25232 - -TileData_25052: ; 0x25052 - db $01 - dw TileData_2525f - -TileData_25055: ; 0x25055 - db $01 - dw TileData_2528c - -TileData_25058: ; 0x25058 - db $01 - dw TileData_252b9 - -TileData_2505b: ; 0x2505b - db $01 - dw TileData_252e6 - -TileData_2505e: ; 0x2505e - db $01 - dw TileData_25313 - -TileData_25061: ; 0x25061 - db $01 - dw TileData_25340 - -TileData_25064: ; 0x25064 - db $01 - dw TileData_2536d - -TileData_25067: ; 0x25067 - db $01 - dw TileData_2539a - -TileData_2506a: ; 0x2506a - db $01 - dw TileData_253c7 - -TileData_2506d: ; 0x2506d - db $01 - dw TileData_253f4 - -TileData_25070: ; 0x25070 - dw LoadTileLists - db $14 ; total number of tiles - - db $03 ; number of tiles - dw vBGMap - db $E4, $0C, $0D - - db $03 ; number of tiles - dw vBGMap + $3 - db $0E, $0D, $0E - - db $03 ; number of tiles - dw vBGMap + $6 - db $0D, $0E, $0D - - db $03 ; number of tiles - dw vBGMap + $9 - db $0E, $0D, $0E - - db $03 ; number of tiles - dw vBGMap + $C - db $0D, $0E, $0D - - db $03 ; number of tiles - dw vBGMap + $F - db $0E, $0D, $0E - - db $02 - dw vBGMap + $12 - db $0F, $E4 - - db $00 ; terminator - -TileData_2509d: ; 0x2509d - dw LoadTileLists - db $14 ; total number of tiles - - db $03 ; number of tiles - dw vBGMap - db $14, $0C, $0D - - db $03 ; number of tiles - dw vBGMap + $3 - db $0E, $0D, $0E - - db $03 ; number of tiles - dw vBGMap + $6 - db $0D, $0E, $0D - - db $03 ; number of tiles - dw vBGMap + $9 - db $0E, $0D, $0E - - db $03 ; number of tiles - dw vBGMap + $C - db $0D, $0E, $0D - - db $03 ; number of tiles - dw vBGMap + $F - db $0E, $0D, $0E - - db $02 - dw vBGMap + $12 - db $0F, $E4 - - db $00 ; terminator - -TileData_250ca: ; 0x250ca - dw LoadTileLists - db $14 ; total number of tiles - - db $03 ; number of tiles - dw vBGMap - db $14, $15, $0D - - db $03 ; number of tiles - dw vBGMap + $3 - db $0E, $0D, $0E - - db $03 ; number of tiles - dw vBGMap + $6 - db $0D, $0E, $0D - - db $03 ; number of tiles - dw vBGMap + $9 - db $0E, $0D, $0E - - db $03 ; number of tiles - dw vBGMap + $C - db $0D, $0E, $0D - - db $03 ; number of tiles - dw vBGMap + $F - db $0E, $0D, $0E - - db $02 - dw vBGMap + $12 - db $0F, $E4 - - db $00 ; terminator - -TileData_250f7: ; 0x250f7 - dw LoadTileLists - db $14 ; total number of tiles - - db $03 ; number of tiles - dw vBGMap - db $14, $15, $16 - - db $03 ; number of tiles - dw vBGMap + $3 - db $0E, $0D, $0E - - db $03 ; number of tiles - dw vBGMap + $6 - db $0D, $0E, $0D - - db $03 ; number of tiles - dw vBGMap + $9 - db $0E, $0D, $0E - - db $03 ; number of tiles - dw vBGMap + $C - db $0D, $0E, $0D - - db $03 ; number of tiles - dw vBGMap + $F - db $0E, $0D, $0E - - db $02 - dw vBGMap + $12 - db $0F, $E4 - - db $00 ; terminator - -TileData_25124: ; 0x25124 - dw LoadTileLists - db $14 ; total number of tiles - - db $03 ; number of tiles - dw vBGMap - db $14, $15, $16 - - db $03 ; number of tiles - dw vBGMap + $3 - db $16, $0D, $0E - - db $03 ; number of tiles - dw vBGMap + $6 - db $0D, $0E, $0D - - db $03 ; number of tiles - dw vBGMap + $9 - db $0E, $0D, $0E - - db $03 ; number of tiles - dw vBGMap + $C - db $0D, $0E, $0D - - db $03 ; number of tiles - dw vBGMap + $F - db $0E, $0D, $0E - - db $02 - dw vBGMap + $12 - db $0F, $E4 - - db $00 ; terminator - -TileData_25151: ; 0x25151 - dw LoadTileLists - db $14 ; total number of tiles - - db $03 ; number of tiles - dw vBGMap - db $14, $15, $16 - - db $03 ; number of tiles - dw vBGMap + $3 - db $16, $16, $0E - - db $03 ; number of tiles - dw vBGMap + $6 - db $0D, $0E, $0D - - db $03 ; number of tiles - dw vBGMap + $9 - db $0E, $0D, $0E - - db $03 ; number of tiles - dw vBGMap + $C - db $0D, $0E, $0D - - db $03 ; number of tiles - dw vBGMap + $F - db $0E, $0D, $0E - - db $02 - dw vBGMap + $12 - db $0F, $E4 - - db $00 ; terminator - -TileData_2517e: ; 0x2517e - dw LoadTileLists - db $14 ; total number of tiles - - db $03 ; number of tiles - dw vBGMap - db $14, $15, $16 - - db $03 ; number of tiles - dw vBGMap + $3 - db $16, $16, $16 - - db $03 ; number of tiles - dw vBGMap + $6 - db $0D, $0E, $0D - - db $03 ; number of tiles - dw vBGMap + $9 - db $0E, $0D, $0E - - db $03 ; number of tiles - dw vBGMap + $C - db $0D, $0E, $0D - - db $03 ; number of tiles - dw vBGMap + $F - db $0E, $0D, $0E - - db $02 - dw vBGMap + $12 - db $0F, $E4 - - db $00 ; terminator - -TileData_251ab: ; 0x251ab - dw LoadTileLists - db $14 ; total number of tiles - - db $03 ; number of tiles - dw vBGMap - db $14, $15, $16 - - db $03 ; number of tiles - dw vBGMap + $3 - db $16, $16, $16 - - db $03 ; number of tiles - dw vBGMap + $6 - db $16, $0E, $0D - - db $03 ; number of tiles - dw vBGMap + $9 - db $0E, $0D, $0E - - db $03 ; number of tiles - dw vBGMap + $C - db $0D, $0E, $0D - - db $03 ; number of tiles - dw vBGMap + $F - db $0E, $0D, $0E - - db $02 - dw vBGMap + $12 - db $0F, $E4 - - db $00 ; terminator - -TileData_251d8: ; 0x251d8 - dw LoadTileLists - db $14 ; total number of tiles - - db $03 ; number of tiles - dw vBGMap - db $14, $15, $16 - - db $03 ; number of tiles - dw vBGMap + $3 - db $16, $16, $16 - - db $03 ; number of tiles - dw vBGMap + $6 - db $16, $16, $0D - - db $03 ; number of tiles - dw vBGMap + $9 - db $0E, $0D, $0E - - db $03 ; number of tiles - dw vBGMap + $C - db $0D, $0E, $0D - - db $03 ; number of tiles - dw vBGMap + $F - db $0E, $0D, $0E - - db $02 - dw vBGMap + $12 - db $0F, $E4 - - db $00 ; terminator - -TileData_25205: ; 0x25205 - dw LoadTileLists - db $14 ; total number of tiles - - db $03 ; number of tiles - dw vBGMap - db $14, $15, $16 - - db $03 ; number of tiles - dw vBGMap + $3 - db $16, $16, $16 - - db $03 ; number of tiles - dw vBGMap + $6 - db $16, $16, $16 - - db $03 ; number of tiles - dw vBGMap + $9 - db $0E, $0D, $0E - - db $03 ; number of tiles - dw vBGMap + $C - db $0D, $0E, $0D - - db $03 ; number of tiles - dw vBGMap + $F - db $0E, $0D, $0E - - db $02 - dw vBGMap + $12 - db $0F, $E4 - - db $00 ; terminator - -TileData_25232: ; 0x25232 - dw LoadTileLists - db $14 ; total number of tiles - - db $03 ; number of tiles - dw vBGMap - db $14, $15, $16 - - db $03 ; number of tiles - dw vBGMap + $3 - db $16, $16, $16 - - db $03 ; number of tiles - dw vBGMap + $6 - db $16, $16, $16 - - db $03 ; number of tiles - dw vBGMap + $9 - db $16, $0D, $0E - - db $03 ; number of tiles - dw vBGMap + $C - db $0D, $0E, $0D - - db $03 ; number of tiles - dw vBGMap + $F - db $0E, $0D, $0E - - db $02 - dw vBGMap + $12 - db $0F, $E4 - - db $00 ; terminator - -TileData_2525f: ; 0x2525f - dw LoadTileLists - db $14 ; total number of tiles - - db $03 ; number of tiles - dw vBGMap - db $14, $15, $16 - - db $03 ; number of tiles - dw vBGMap + $3 - db $16, $16, $16 - - db $03 ; number of tiles - dw vBGMap + $6 - db $16, $16, $16 - - db $03 ; number of tiles - dw vBGMap + $9 - db $16, $16, $0E - - db $03 ; number of tiles - dw vBGMap + $C - db $0D, $0E, $0D - - db $03 ; number of tiles - dw vBGMap + $F - db $0E, $0D, $0E - - db $02 - dw vBGMap + $12 - db $0F, $E4 - - db $00 ; terminator - -TileData_2528c: ; 0x2528c - dw LoadTileLists - db $14 ; total number of tiles - - db $03 ; number of tiles - dw vBGMap - db $14, $15, $16 - - db $03 ; number of tiles - dw vBGMap + $3 - db $16, $16, $16 - - db $03 ; number of tiles - dw vBGMap + $6 - db $16, $16, $16 - - db $03 ; number of tiles - dw vBGMap + $9 - db $16, $16, $16 - - db $03 ; number of tiles - dw vBGMap + $C - db $0D, $0E, $0D - - db $03 ; number of tiles - dw vBGMap + $F - db $0E, $0D, $0E - - db $02 - dw vBGMap + $12 - db $0F, $E4 - - db $00 ; terminator - -TileData_252b9: ; 0x252b9 - dw LoadTileLists - db $14 ; total number of tiles - - db $03 ; number of tiles - dw vBGMap - db $14, $15, $16 - - db $03 ; number of tiles - dw vBGMap + $3 - db $16, $16, $16 - - db $03 ; number of tiles - dw vBGMap + $6 - db $16, $16, $16 - - db $03 ; number of tiles - dw vBGMap + $9 - db $16, $16, $16 - - db $03 ; number of tiles - dw vBGMap + $C - db $16, $0E, $0D - - db $03 ; number of tiles - dw vBGMap + $F - db $0E, $0D, $0E - - db $02 - dw vBGMap + $12 - db $0F, $E4 - - db $00 ; terminator - -TileData_252e6: ; 0x252e6 - dw LoadTileLists - db $14 ; total number of tiles - - db $03 ; number of tiles - dw vBGMap - db $14, $15, $16 - - db $03 ; number of tiles - dw vBGMap + $3 - db $16, $16, $16 - - db $03 ; number of tiles - dw vBGMap + $6 - db $16, $16, $16 - - db $03 ; number of tiles - dw vBGMap + $9 - db $16, $16, $16 - - db $03 ; number of tiles - dw vBGMap + $C - db $16, $16, $0D - - db $03 ; number of tiles - dw vBGMap + $F - db $0E, $0D, $0E - - db $02 - dw vBGMap + $12 - db $0F, $E4 - - db $00 ; terminator - -TileData_25313: ; 0x25313 - dw LoadTileLists - db $14 ; total number of tiles - - db $03 ; number of tiles - dw vBGMap - db $14, $15, $16 - - db $03 ; number of tiles - dw vBGMap + $3 - db $16, $16, $16 - - db $03 ; number of tiles - dw vBGMap + $6 - db $16, $16, $16 - - db $03 ; number of tiles - dw vBGMap + $9 - db $16, $16, $16 - - db $03 ; number of tiles - dw vBGMap + $C - db $16, $16, $16 - - db $03 ; number of tiles - dw vBGMap + $F - db $0E, $0D, $0E - - db $02 - dw vBGMap + $12 - db $0F, $E4 - - db $00 ; terminator - -TileData_25340: ; 0x25340 - dw LoadTileLists - db $14 ; total number of tiles - - db $03 ; number of tiles - dw vBGMap - db $14, $15, $16 - - db $03 ; number of tiles - dw vBGMap + $3 - db $16, $16, $16 - - db $03 ; number of tiles - dw vBGMap + $6 - db $16, $16, $16 - - db $03 ; number of tiles - dw vBGMap + $9 - db $16, $16, $16 - - db $03 ; number of tiles - dw vBGMap + $C - db $16, $16, $16 - - db $03 ; number of tiles - dw vBGMap + $F - db $16, $0D, $0E - - db $02 - dw vBGMap + $12 - db $0F, $E4 - - db $00 ; terminator - -TileData_2536d: ; 0x2536d - dw LoadTileLists - db $14 ; total number of tiles - - db $03 ; number of tiles - dw vBGMap - db $14, $15, $16 - - db $03 ; number of tiles - dw vBGMap + $3 - db $16, $16, $16 - - db $03 ; number of tiles - dw vBGMap + $6 - db $16, $16, $16 - - db $03 ; number of tiles - dw vBGMap + $9 - db $16, $16, $16 - - db $03 ; number of tiles - dw vBGMap + $C - db $16, $16, $16 - - db $03 ; number of tiles - dw vBGMap + $F - db $16, $16, $0E - - db $02 - dw vBGMap + $12 - db $0F, $E4 - - db $00 ; terminator - -TileData_2539a: ; 0x2539a - dw LoadTileLists - db $14 ; total number of tiles - - db $03 ; number of tiles - dw vBGMap - db $14, $15, $16 - - db $03 ; number of tiles - dw vBGMap + $3 - db $16, $16, $16 - - db $03 ; number of tiles - dw vBGMap + $6 - db $16, $16, $16 - - db $03 ; number of tiles - dw vBGMap + $9 - db $16, $16, $16 - - db $03 ; number of tiles - dw vBGMap + $C - db $16, $16, $16 - - db $03 ; number of tiles - dw vBGMap + $F - db $16, $16, $16 - - db $02 - dw vBGMap + $12 - db $0F, $E4 - - db $00 ; terminator - -TileData_253c7: ; 0x253c7 - dw LoadTileLists - db $14 ; total number of tiles - - db $03 ; number of tiles - dw vBGMap - db $14, $15, $16 - - db $03 ; number of tiles - dw vBGMap + $3 - db $16, $16, $16 - - db $03 ; number of tiles - dw vBGMap + $6 - db $16, $16, $16 - - db $03 ; number of tiles - dw vBGMap + $9 - db $16, $16, $16 - - db $03 ; number of tiles - dw vBGMap + $C - db $16, $16, $16 - - db $03 ; number of tiles - dw vBGMap + $F - db $16, $16, $16 - - db $02 - dw vBGMap + $12 - db $17, $E4 - - db $00 ; terminator - -TileData_253f4: ; 0x253f4 - dw LoadTileLists - db $14 ; total number of tiles - - db $03 ; number of tiles - dw vBGMap - db $14, $15, $16 - - db $03 ; number of tiles - dw vBGMap + $3 - db $16, $16, $16 - - db $03 ; number of tiles - dw vBGMap + $6 - db $16, $16, $16 - - db $03 ; number of tiles - dw vBGMap + $9 - db $16, $16, $16 - - db $03 ; number of tiles - dw vBGMap + $C - db $16, $16, $16 - - db $03 ; number of tiles - dw vBGMap + $F - db $16, $16, $16 - - db $02 - dw vBGMap + $12 - db $17, $18 - - db $00 ; terminator - -TileDataPointers_25421: ; 0x25421 - dw TileData_2544b - dw TileData_2544e - dw TileData_25451 - dw TileData_25454 - dw TileData_25457 - dw TileData_2545a - dw TileData_2545d - dw TileData_25460 - dw TileData_25463 - dw TileData_25466 - dw TileData_25469 - dw TileData_2546c - dw TileData_2546f - dw TileData_25472 - dw TileData_25475 - dw TileData_25478 - dw TileData_2547b - dw TileData_2547e - dw TileData_25481 - dw TileData_25484 - dw TileData_25487 - -TileData_2544b: ; 0x2544b - db $01 - dw TileData_2548a - -TileData_2544e: ; 0x2544e - db $01 - dw TileData_254b7 - -TileData_25451: ; 0x25451 - db $01 - dw TileData_254e4 - -TileData_25454: ; 0x25454 - db $01 - dw TileData_25511 - -TileData_25457: ; 0x25457 - db $01 - dw TileData_2553e - -TileData_2545a: ; 0x2545a - db $01 - dw TileData_2556b - -TileData_2545d: ; 0x2545d - db $01 - dw TileData_25598 - -TileData_25460: ; 0x25460 - db $01 - dw TileData_255c5 - -TileData_25463: ; 0x25463 - db $01 - dw TileData_255f2 - -TileData_25466: ; 0x25466 - db $01 - dw TileData_2561f - -TileData_25469: ; 0x25469 - db $01 - dw TileData_2564c - -TileData_2546c: ; 0x2546c - db $01 - dw TileData_25679 - -TileData_2546f: ; 0x2546f - db $01 - dw TileData_256a6 - -TileData_25472: ; 0x25472 - db $01 - dw TileData_256d3 - -TileData_25475: ; 0x25475 - db $01 - dw TileData_25700 - -TileData_25478: ; 0x25478 - db $01 - dw TileData_2572d - -TileData_2547b: ; 0x2547b - db $01 - dw TileData_2575a - -TileData_2547e: ; 0x2547e - db $01 - dw TileData_25787 - -TileData_25481: ; 0x25481 - db $01 - dw TileData_257b4 - -TileData_25484: ; 0x25484 - db $01 - dw TileData_257e1 - -TileData_25487: ; 0x25487 - db $01 - dw TileData_2580e - -TileData_2548a: ; 0x2548a - dw LoadTileLists - db $14 ; total number of tiles - - db $03 ; number of tiles - dw vBGMap - db $E3, $FD, $FE - - db $03 ; number of tiles - dw vBGMap + $3 - db $FE, $FE, $FE - - db $03 ; number of tiles - dw vBGMap + $6 - db $FE, $FE, $FE - - db $03 ; number of tiles - dw vBGMap + $9 - db $FE, $FE, $FE - - db $03 ; number of tiles - dw vBGMap + $C - db $FE, $FE, $FE - - db $03 ; number of tiles - dw vBGMap + $F - db $FE, $FE, $FE - - db $02 ; number of tiles - dw vBGMap + $12 - db $FD, $E3 - - db $00 ; terminator - -TileData_254b7: ; 0x254b7 - dw LoadTileLists - db $14 ; total number of tiles - - db $03 ; number of tiles - dw vBGMap - db $FF, $FD, $FE - - db $03 ; number of tiles - dw vBGMap + $3 - db $FE, $FE, $FE - - db $03 ; number of tiles - dw vBGMap + $6 - db $FE, $FE, $FE - - db $03 ; number of tiles - dw vBGMap + $9 - db $FE, $FE, $FE - - db $03 ; number of tiles - dw vBGMap + $C - db $FE, $FE, $FE - - db $03 ; number of tiles - dw vBGMap + $F - db $FE, $FE, $FE - - db $02 ; number of tiles - dw vBGMap + $12 - db $FD, $E3 - - db $00 ; terminator - -TileData_254e4: ; 0x254e4 - dw LoadTileLists - db $14 ; total number of tiles - - db $03 ; number of tiles - dw vBGMap - db $FF, $00, $FE - - db $03 ; number of tiles - dw vBGMap + $3 - db $FE, $FE, $FE - - db $03 ; number of tiles - dw vBGMap + $6 - db $FE, $FE, $FE - - db $03 ; number of tiles - dw vBGMap + $9 - db $FE, $FE, $FE - - db $03 ; number of tiles - dw vBGMap + $C - db $FE, $FE, $FE - - db $03 ; number of tiles - dw vBGMap + $F - db $FE, $FE, $FE - - db $02 ; number of tiles - dw vBGMap + $12 - db $FD, $E3 - - db $00 ; terminator - -TileData_25511: ; 0x25511 - dw LoadTileLists - db $14 ; total number of tiles - - db $03 ; number of tiles - dw vBGMap - db $FF, $00, $00 - - db $03 ; number of tiles - dw vBGMap + $3 - db $FE, $FE, $FE - - db $03 ; number of tiles - dw vBGMap + $6 - db $FE, $FE, $FE - - db $03 ; number of tiles - dw vBGMap + $9 - db $FE, $FE, $FE - - db $03 ; number of tiles - dw vBGMap + $C - db $FE, $FE, $FE - - db $03 ; number of tiles - dw vBGMap + $F - db $FE, $FE, $FE - - db $02 ; number of tiles - dw vBGMap + $12 - db $FD, $E3 - - db $00 ; terminator - -TileData_2553e: ; 0x2553e - dw LoadTileLists - db $14 ; total number of tiles - - db $03 ; number of tiles - dw vBGMap - db $FF, $00, $00 - - db $03 ; number of tiles - dw vBGMap + $3 - db $00, $FE, $FE - - db $03 ; number of tiles - dw vBGMap + $6 - db $FE, $FE, $FE - - db $03 ; number of tiles - dw vBGMap + $9 - db $FE, $FE, $FE - - db $03 ; number of tiles - dw vBGMap + $C - db $FE, $FE, $FE - - db $03 ; number of tiles - dw vBGMap + $F - db $FE, $FE, $FE - - db $02 ; number of tiles - dw vBGMap + $12 - db $FD, $E3 - - db $00 ; terminator - -TileData_2556b: ; 0x2556b - dw LoadTileLists - db $14 ; total number of tiles - - db $03 ; number of tiles - dw vBGMap - db $FF, $00, $00 - - db $03 ; number of tiles - dw vBGMap + $3 - db $00, $00, $FE - - db $03 ; number of tiles - dw vBGMap + $6 - db $FE, $FE, $FE - - db $03 ; number of tiles - dw vBGMap + $9 - db $FE, $FE, $FE - - db $03 ; number of tiles - dw vBGMap + $C - db $FE, $FE, $FE - - db $03 ; number of tiles - dw vBGMap + $F - db $FE, $FE, $FE - - db $02 ; number of tiles - dw vBGMap + $12 - db $FD, $E3 - - db $00 ; terminator - -TileData_25598: ; 0x25598 - dw LoadTileLists - db $14 ; total number of tiles - - db $03 ; number of tiles - dw vBGMap - db $FF, $00, $00 - - db $03 ; number of tiles - dw vBGMap + $3 - db $00, $00, $00 - - db $03 ; number of tiles - dw vBGMap + $6 - db $FE, $FE, $FE - - db $03 ; number of tiles - dw vBGMap + $9 - db $FE, $FE, $FE - - db $03 ; number of tiles - dw vBGMap + $C - db $FE, $FE, $FE - - db $03 ; number of tiles - dw vBGMap + $F - db $FE, $FE, $FE - - db $02 ; number of tiles - dw vBGMap + $12 - db $FD, $E3 - - db $00 ; terminator - -TileData_255c5: ; 0x255c5 - dw LoadTileLists - db $14 ; total number of tiles - - db $03 ; number of tiles - dw vBGMap - db $FF, $00, $00 - - db $03 ; number of tiles - dw vBGMap + $3 - db $00, $00, $00 - - db $03 ; number of tiles - dw vBGMap + $6 - db $00, $FE, $FE - - db $03 ; number of tiles - dw vBGMap + $9 - db $FE, $FE, $FE - - db $03 ; number of tiles - dw vBGMap + $C - db $FE, $FE, $FE - - db $03 ; number of tiles - dw vBGMap + $F - db $FE, $FE, $FE - - db $02 ; number of tiles - dw vBGMap + $12 - db $FD, $E3 - - db $00 ; terminator - -TileData_255f2: ; 0x255f2 - dw LoadTileLists - db $14 ; total number of tiles - - db $03 ; number of tiles - dw vBGMap - db $FF, $00, $00 - - db $03 ; number of tiles - dw vBGMap + $3 - db $00, $00, $00 - - db $03 ; number of tiles - dw vBGMap + $6 - db $00, $00, $FE - - db $03 ; number of tiles - dw vBGMap + $9 - db $FE, $FE, $FE - - db $03 ; number of tiles - dw vBGMap + $C - db $FE, $FE, $FE - - db $03 ; number of tiles - dw vBGMap + $F - db $FE, $FE, $FE - - db $02 ; number of tiles - dw vBGMap + $12 - db $FD, $E3 - - db $00 ; terminator - -TileData_2561f: ; 0x2561f - dw LoadTileLists - db $14 ; total number of tiles - - db $03 ; number of tiles - dw vBGMap - db $FF, $00, $00 - - db $03 ; number of tiles - dw vBGMap + $3 - db $00, $00, $00 - - db $03 ; number of tiles - dw vBGMap + $6 - db $00, $00, $00 - - db $03 ; number of tiles - dw vBGMap + $9 - db $FE, $FE, $FE - - db $03 ; number of tiles - dw vBGMap + $C - db $FE, $FE, $FE - - db $03 ; number of tiles - dw vBGMap + $F - db $FE, $FE, $FE - - db $02 ; number of tiles - dw vBGMap + $12 - db $FD, $E3 - - db $00 ; terminator - -TileData_2564c: ; 0x2564c - dw LoadTileLists - db $14 ; total number of tiles - - db $03 ; number of tiles - dw vBGMap - db $FF, $00, $00 - - db $03 ; number of tiles - dw vBGMap + $3 - db $00, $00, $00 - - db $03 ; number of tiles - dw vBGMap + $6 - db $00, $00, $00 - - db $03 ; number of tiles - dw vBGMap + $9 - db $00, $FE, $FE - - db $03 ; number of tiles - dw vBGMap + $C - db $FE, $FE, $FE - - db $03 ; number of tiles - dw vBGMap + $F - db $FE, $FE, $FE - - db $02 ; number of tiles - dw vBGMap + $12 - db $FD, $E3 - - db $00 ; terminator - -TileData_25679: ; 0x25679 - dw LoadTileLists - db $14 ; total number of tiles - - db $03 ; number of tiles - dw vBGMap - db $FF, $00, $00 - - db $03 ; number of tiles - dw vBGMap + $3 - db $00, $00, $00 - - db $03 ; number of tiles - dw vBGMap + $6 - db $00, $00, $00 - - db $03 ; number of tiles - dw vBGMap + $9 - db $00, $00, $FE - - db $03 ; number of tiles - dw vBGMap + $C - db $FE, $FE, $FE - - db $03 ; number of tiles - dw vBGMap + $F - db $FE, $FE, $FE - - db $02 ; number of tiles - dw vBGMap + $12 - db $FD, $E3 - - db $00 ; terminator - -TileData_256a6: ; 0x256a6 - dw LoadTileLists - db $14 ; total number of tiles - - db $03 ; number of tiles - dw vBGMap - db $FF, $00, $00 - - db $03 ; number of tiles - dw vBGMap + $3 - db $00, $00, $00 - - db $03 ; number of tiles - dw vBGMap + $6 - db $00, $00, $00 - - db $03 ; number of tiles - dw vBGMap + $9 - db $00, $00, $00 - - db $03 ; number of tiles - dw vBGMap + $C - db $FE, $FE, $FE - - db $03 ; number of tiles - dw vBGMap + $F - db $FE, $FE, $FE - - db $02 ; number of tiles - dw vBGMap + $12 - db $FD, $E3 - - db $00 ; terminator - -TileData_256d3: ; 0x256d3 - dw LoadTileLists - db $14 ; total number of tiles - - db $03 ; number of tiles - dw vBGMap - db $FF, $00, $00 - - db $03 ; number of tiles - dw vBGMap + $3 - db $00, $00, $00 - - db $03 ; number of tiles - dw vBGMap + $6 - db $00, $00, $00 - - db $03 ; number of tiles - dw vBGMap + $9 - db $00, $00, $00 - - db $03 ; number of tiles - dw vBGMap + $C - db $00, $FE, $FE - - db $03 ; number of tiles - dw vBGMap + $F - db $FE, $FE, $FE - - db $02 ; number of tiles - dw vBGMap + $12 - db $FD, $E3 - - db $00 ; terminator - -TileData_25700: ; 0x25700 - dw LoadTileLists - db $14 ; total number of tiles - - db $03 ; number of tiles - dw vBGMap - db $FF, $00, $00 - - db $03 ; number of tiles - dw vBGMap + $3 - db $00, $00, $00 - - db $03 ; number of tiles - dw vBGMap + $6 - db $00, $00, $00 - - db $03 ; number of tiles - dw vBGMap + $9 - db $00, $00, $00 - - db $03 ; number of tiles - dw vBGMap + $C - db $00, $00, $FE - - db $03 ; number of tiles - dw vBGMap + $F - db $FE, $FE, $FE - - db $02 ; number of tiles - dw vBGMap + $12 - db $FD, $E3 - - db $00 ; terminator - -TileData_2572d: ; 0x2572d - dw LoadTileLists - db $14 ; total number of tiles - - db $03 ; number of tiles - dw vBGMap - db $FF, $00, $00 - - db $03 ; number of tiles - dw vBGMap + $3 - db $00, $00, $00 - - db $03 ; number of tiles - dw vBGMap + $6 - db $00, $00, $00 - - db $03 ; number of tiles - dw vBGMap + $9 - db $00, $00, $00 - - db $03 ; number of tiles - dw vBGMap + $C - db $00, $00, $00 - - db $03 ; number of tiles - dw vBGMap + $F - db $FE, $FE, $FE - - db $02 ; number of tiles - dw vBGMap + $12 - db $FD, $E3 - - db $00 ; terminator - -TileData_2575a: ; 0x2575a - dw LoadTileLists - db $14 ; total number of tiles - - db $03 ; number of tiles - dw vBGMap - db $FF, $00, $00 - - db $03 ; number of tiles - dw vBGMap + $3 - db $00, $00, $00 - - db $03 ; number of tiles - dw vBGMap + $6 - db $00, $00, $00 - - db $03 ; number of tiles - dw vBGMap + $9 - db $00, $00, $00 - - db $03 ; number of tiles - dw vBGMap + $C - db $00, $00, $00 - - db $03 ; number of tiles - dw vBGMap + $F - db $00, $FE, $FE - - db $02 ; number of tiles - dw vBGMap + $12 - db $FD, $E3 - - db $00 ; terminator - -TileData_25787: ; 0x25787 - dw LoadTileLists - db $14 ; total number of tiles - - db $03 ; number of tiles - dw vBGMap - db $FF, $00, $00 - - db $03 ; number of tiles - dw vBGMap + $3 - db $00, $00, $00 - - db $03 ; number of tiles - dw vBGMap + $6 - db $00, $00, $00 - - db $03 ; number of tiles - dw vBGMap + $9 - db $00, $00, $00 - - db $03 ; number of tiles - dw vBGMap + $C - db $00, $00, $00 - - db $03 ; number of tiles - dw vBGMap + $F - db $00, $00, $FE - - db $02 ; number of tiles - dw vBGMap + $12 - db $FD, $E3 - - db $00 ; terminator - -TileData_257b4: ; 0x257b4 - dw LoadTileLists - db $14 ; total number of tiles - - db $03 ; number of tiles - dw vBGMap - db $FF, $00, $00 - - db $03 ; number of tiles - dw vBGMap + $3 - db $00, $00, $00 - - db $03 ; number of tiles - dw vBGMap + $6 - db $00, $00, $00 - - db $03 ; number of tiles - dw vBGMap + $9 - db $00, $00, $00 - - db $03 ; number of tiles - dw vBGMap + $C - db $00, $00, $00 - - db $03 ; number of tiles - dw vBGMap + $F - db $00, $00, $00 - - db $02 ; number of tiles - dw vBGMap + $12 - db $FD, $E3 - - db $00 ; terminator - -TileData_257e1: ; 0x257e1 - dw LoadTileLists - db $14 ; total number of tiles - - db $03 ; number of tiles - dw vBGMap - db $FF, $00, $00 - - db $03 ; number of tiles - dw vBGMap + $3 - db $00, $00, $00 - - db $03 ; number of tiles - dw vBGMap + $6 - db $00, $00, $00 - - db $03 ; number of tiles - dw vBGMap + $9 - db $00, $00, $00 - - db $03 ; number of tiles - dw vBGMap + $C - db $00, $00, $00 - - db $03 ; number of tiles - dw vBGMap + $F - db $00, $00, $00 - - db $02 ; number of tiles - dw vBGMap + $12 - db $02, $E3 - - db $00 ; terminator - -TileData_2580e: ; 0x2580e - dw LoadTileLists - db $14 ; total number of tiles - - db $03 ; number of tiles - dw vBGMap - db $FF, $00, $00 - - db $03 ; number of tiles - dw vBGMap + $3 - db $00, $00, $00 - - db $03 ; number of tiles - dw vBGMap + $6 - db $00, $00, $00 - - db $03 ; number of tiles - dw vBGMap + $9 - db $00, $00, $00 - - db $03 ; number of tiles - dw vBGMap + $C - db $00, $00, $00 - - db $03 ; number of tiles - dw vBGMap + $F - db $00, $00, $00 - - db $02 ; number of tiles - dw vBGMap + $12 - db $02, $03 - - db $00 ; terminator - +INCLUDE "engine/pinball_game/object_collision/meowth_bonus_resolve_collision.asm" INCLUDE "engine/pinball_game/draw_sprites/draw_meowth_bonus_sprites.asm" INCLUDE "engine/pinball_game/stage_init/init_seel_bonus.asm" INCLUDE "engine/pinball_game/ball_init/ball_init_seel_bonus.asm" INCLUDE "engine/pinball_game/load_stage_data/load_seel_bonus.asm" INCLUDE "engine/pinball_game/object_collision/seel_bonus_object_collision.asm" - -Func_25c5a: ; 0x25c5a - call Func_25da3 - call Func_25ced - ld a, [wd793] - cp $14 - jr c, .asm_25c98 - ld a, [wd794] - cp $2 - jr nc, .asm_25c98 - ld a, $1 - ld [wd498], a - ld de, $0000 - call PlaySong - ld a, $1 - ld [wd49a], a - call FillBottomMessageBufferWithBlackTile - call Func_30db - ld hl, wd5dc - ld de, SeelStageClearedText - call LoadTextHeader - ld a, $2 - ld [wd794], a - lb de, $4b, $2a - call PlaySoundEffect -.asm_25c98 - ld a, [wd794] - cp $2 - jr nz, .asm_25cb0 - ld a, [wSFXTimer] - and a - jr nz, .asm_25cb0 - ld de, $0003 - call PlaySong - ld a, $5 - ld [wd794], a -.asm_25cb0 - ld a, [wd794] - cp $2 - jr z, .asm_25cc1 - callba Func_107f8 -.asm_25cc1 - ld a, [wd57e] - and a - ret z - xor a - ld [wd57e], a - ld a, $1 - ld [wd7be], a - call Func_2862 - callba StopTimer - ld a, $3 - ld [wd791], a - ld a, [wd794] - cp $5 - ret z - ld a, $1 - ld [wd794], a - ret - -Func_25ced: ; 0x25ced - ld a, [wd766] - and a - ret nz - ld a, [wd4b4] - cp $8a - ret nc - ld a, $1 - ld [wStageCollisionState], a - ld [wd766], a - callba LoadStageCollisionAttributes - call Func_25d0e - ret - -Func_25d0e: ; 0x25d0e - ld a, [wStageCollisionState] - sla a - ld c, a - ld b, $0 - ld hl, TileDataPointers_25d2b - ld a, [hGameBoyColorFlag] - and a - jr z, .asm_25d21 - ld hl, TileDataPointers_25d67 -.asm_25d21 - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - ld a, Bank(TileDataPointers_25d2b) - call Func_10aa - ret - -TileDataPointers_25d2b: - dw TileData_25d2f - dw TileData_25d32 - -TileData_25d2f: ; 0x25d2f - db $01 - dw TileData_25d35 - -TileData_25d32: ; 0x25d32 - db $01 - dw TileData_25d4e - -TileData_25d35: ; 0x25d35 - dw LoadTileLists - db $09 ; total number of tiles - - db $02 ; number of tiles - dw vBGMap + $113 - db $1F, $20 - - db $02 ; number of tiles - dw vBGMap + $133 - db $1D, $1E - - db $03 ; number of tiles - dw vBGMap + $152 - db $80, $1B, $1C - - db $02 ; number of tiles - dw vBGMap + $172 - db $17, $18 - - db $00 ; terminator - -TileData_25d4e: ; 0x25d4e - dw LoadTileLists - db $09 ; total number of tiles - - db $02 ; number of tiles - dw vBGMap + $113 - db $24, $F9 - - db $02 ; number of tiles - dw vBGMap + $133 - db $22, $04 - - db $03 ; number of tiles - dw vBGMap + $152 - db $36, $37, $FE - - db $02 ; number of tiles - dw vBGMap + $172 - db $35, $F9 - - db $00 ; terminator - -TileDataPointers_25d67: - dw TileData_25d6b - dw TileData_25d6e - -TileData_25d6b: ; 0x25d6b - db $01 - dw TileData_25d71 - -TileData_25d6e: ; 0x25d6e - db $01 - dw TileData_25d8a - -TileData_25d71: ; 0x25d71 - dw LoadTileLists - db $09 ; total number of tiles - - db $02 ; number of tiles - dw vBGMap + $113 - db $11, $10 - - db $02 ; number of tiles - dw vBGMap + $133 - db $0E, $0D - - db $03 ; number of tiles - dw vBGMap + $152 - db $80, $0B, $0A - - db $02 - dw vBGMap + $172 - db $07, $06 - - db $00 ; terminator - -TileData_25d8a: ; 0x25d8a - dw LoadTileLists - db $09 ; total number of tiles - - db $02 ; number of tiles - dw vBGMap + $113 - db $0F, $F4 - - db $02 ; number of tiles - dw vBGMap + $133 - db $0C, $FB - - db $03 ; number of tiles - dw vBGMap + $152 - db $09, $08, $F8 - - db $02 - dw vBGMap + $172 - db $04, $F4 - - db $00 ; terminator - -Func_25da3: ; 0x25da3 - ld a, [wd767] - and a - jp z, .asm_25e38 - xor a - ld [wd767], a - ld a, [wd768] - sla a - ld c, a - sla a - sla a - add c - ld c, a - ld b, $0 - ld hl, wd76c - add hl, bc - ld d, h - ld e, l - ld a, $9 - ld [de], a - dec de - dec de - dec de - push bc - ld hl, SeelAnimationData10 - call CopyHLToDE - pop bc - ld hl, wd76e - add hl, bc - ld a, [hl] - ld [wd79c], a - ld hl, wd770 - add hl, bc - ld a, [hl] - add $8 - ld [wd79e], a - ld a, [wd792] - cp $9 - jr nz, .asm_25df1 - ld a, $0 - ld [wd792], a - ld [wd79a], a -.asm_25df1 - ld a, [wd792] - dec a - cp $ff - jr z, .asm_25e04 - ld [wd79a], a - ld de, wd79a - call Func_261f9 - jr .asm_25e07 - -.asm_25e04 - ld [wd79a], a -.asm_25e07 - ld a, $33 - ld [wd803], a - ld a, $8 - ld [wd804], a - lb de, $00, $30 - call PlaySoundEffect - call Func_25e85 - ld hl, wd792 - inc [hl] - ld a, [wd793] - cp $14 - ret nc - ld hl, wd793 - inc [hl] - ld a, [wd792] - dec a - ld b, a - ld a, [hl] - add b - ld [hl], a - ld a, $1 - ld [wd64e], a - call Func_262f4 -.asm_25e38 - ld de, wd76c ; I think these three calls are one for each Seel swimming around - call Func_25f47 - ld de, wd776 - call Func_25f47 - ld de, wd780 - call Func_25f47 - ld a, [wd792] - dec a - cp $ff - jr z, .asm_25e5d - ld [wd79a], a - ld de, wd79a - call Func_26212 - jr .asm_25e60 - -.asm_25e5d - ld [wd79a], a -.asm_25e60 - ld bc, $087a ; again, probably one call for each Seel swimming around - ld de, wd76d - ld hl, wd772 - call Func_25ec5 - ld bc, $087a - ld de, wd777 - ld hl, wd77c - call Func_25ec5 - ld bc, $087a - ld de, wd781 - ld hl, wd786 - call Func_25ec5 - ret - -Func_25e85: ; 0x25e85 - ld a, [wd792] - inc a - ld d, $1 - ld e, a - ld a, $1 -.asm_25e8e - cp e - jr z, .asm_25e96 - sla d - inc a - jr .asm_25e8e - -.asm_25e96 - push de - ld a, d - cp $32 - jr nc, .asm_25ead - ld bc, OneHundredThousandPoints - callba AddBigBCD6FromQueueWithBallMultiplier - pop de - dec d - jr .asm_25ebf - -.asm_25ead - ld bc, FiveMillionPoints - callba AddBigBCD6FromQueueWithBallMultiplier - pop de - ld a, d - sub $32 - ld d, a -.asm_25ebf - ld a, d - cp $0 - jr nz, .asm_25e96 - ret - -Func_25ec5: ; 0x25ec5 - dec de - ld a, [de] - cp $1 - jr z, .asm_25ece - cp $4 - ret nz -.asm_25ece - inc de - push hl - ld a, [hld] - push af - push bc - ld a, [hl] - and $f - ld c, a - ld b, $0 - ld hl, SeelSwimmingYOffsets - add hl, bc - pop bc - pop af - and a - jr nz, .asm_25f05 - ld a, [de] - add [hl] - ld [de], a - inc de - ld a, [de] - adc $0 - ld [de], a - pop hl - cp c - ret c - ld a, $1 - ld [hl], a - dec hl - dec hl - dec hl - dec hl - dec hl - dec hl - ld a, $7 - ld [hl], a - dec hl - dec hl - dec hl - ld d, h - ld e, l - ld hl, SeelAnimationData8 - call CopyHLToDE - ret - -.asm_25f05 - ld a, [de] - sub [hl] - ld [de], a - inc de - ld a, [de] - sbc $0 - ld [de], a - pop hl - cp b - ret nc - xor a - ld [hl], a - dec hl - dec hl - dec hl - dec hl - dec hl - dec hl - ld a, $8 - ld [hl], a - dec hl - dec hl - dec hl - ld d, h - ld e, l - ld hl, SeelAnimationData9 - call CopyHLToDE - ret - -SeelSwimmingYOffsets: - db $31, $32, $33, $34, $35, $36, $37, $36, $35, $34, $33, $32, $33, $34, $35, $36 - db $37, $38, $39, $3A, $3B, $3A, $39, $38, $37, $36, $35, $34, $33, $32, $31, $30 - -Func_25f47: ; 0x25f47 - ld a, [de] - sla a - ld c, a - ld b, $0 - ld hl, SeelAnimationsTable - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - push de - dec de - dec de - dec de - call UpdateAnimation - pop de - ret nc - ld a, [de] - rst JumpTable ; calls JumpToFuncInTable -CallTable_25f5f: ; 0x25f5f - dw Func_25f77 - dw Func_25fbe - dw Func_25ff3 - dw Func_2602a - dw Func_2604c - dw Func_2607f - dw Func_260b6 - dw Func_260d8 - dw Func_260e2 - dw Func_260ec - dw Func_26109 - dw Func_26120 - -Func_25f77: ; 0x25f77 - dec de - ld a, [de] - cp $2 - ret nz - push de - inc de - inc de - inc de - inc de - inc de - inc de - ld a, [de] - dec a - ld [de], a - ld a, $3 - jr z, .asm_25f8f - pop de - xor a - jp Func_26137 - -.asm_25f8f - ld hl, wd792 - ld [hl], $0 - call GenRandom - bit 7, a - jr z, .asm_25fa2 - inc de - ld a, $1 - ld [de], a - dec de - jr .asm_25fa7 - -.asm_25fa2 - inc de - ld a, $0 - ld [de], a - dec de -.asm_25fa7 - inc de - ld a, [de] - and a - jr z, .asm_25fb0 - ld a, $6 - jr .asm_25fb2 - -.asm_25fb0 - ld a, $3 -.asm_25fb2 - push af - lb de, $00, $31 - call PlaySoundEffect - pop af - pop de - jp Func_26137 - -Func_25fbe: ; 0x25fbe - dec de - ld a, [de] - cp $4 - ret nz - push de - inc de - inc de - inc de - inc de - inc de - inc de - ld a, [de] - dec a - ld [de], a - jr z, .asm_25fd5 - pop de - ld a, $1 - jp Func_26137 - -.asm_25fd5 - ld a, [wd791] - cp $0 - jr z, .asm_25fe9 - ld a, $2 - ld [de], a - pop de - ld a, $4 - ld [de], a - ld a, $1 - jp Func_26137 - ret ; unused instruction - -.asm_25fe9 - ld hl, wd791 - inc [hl] - pop de - ld a, $2 - jp Func_26137 - -Func_25ff3: ; 0x25ff3 - dec de - ld a, [de] - cp $7 - ret nz - xor a - call Func_26137 - inc de - inc de - inc de - inc de - inc de - ld a, [wd792] - cp $6 - jr nc, .asm_26020 - cp $2 - jr nc, .asm_26016 - ld a, $3 - ld [de], a - lb de, $00, $31 - call PlaySoundEffect - ret - -.asm_26016 - ld a, $2 - ld [de], a - lb de, $00, $31 - call PlaySoundEffect - ret - -.asm_26020 - ld a, $1 - ld [de], a - lb de, $00, $31 - call PlaySoundEffect - ret - -Func_2602a: ; 0x2602a - dec de - ld a, [de] - cp $9 - ret nz - ld a, $1 - call Func_26137 - inc de - inc de - inc de - inc de - inc de - call GenRandom - bit 7, a - jr z, .asm_26044 - ld a, $3 - jr .asm_26046 - -.asm_26044 - ld a, $5 -.asm_26046 - ld [de], a - ld hl, wd791 - dec [hl] - ret - -Func_2604c: ; 0x2604c - dec de - ld a, [de] - cp $4 - ret nz - push de - inc de - inc de - inc de - inc de - inc de - inc de - ld a, [de] - dec a - ld [de], a - jr z, .asm_26063 - pop de - ld a, $4 - jp Func_26137 - -.asm_26063 - ld a, [wd791] - cp $0 - jr z, .asm_26075 - ld a, $2 - ld [de], a - pop de - ld a, $4 - ld [de], a - jp Func_26137 - ret ; unused instruction - -.asm_26075 - ld hl, wd791 - inc [hl] - pop de - ld a, $5 - jp Func_26137 - -Func_2607f: ; 0x2607f - dec de - ld a, [de] - cp $7 - ret nz - xor a - call Func_26137 - inc de - inc de - inc de - inc de - inc de - ld a, [wd792] - cp $6 - jr nc, .asm_260ac - cp $2 - jr nc, .asm_260a2 - ld a, $3 - ld [de], a - lb de, $00, $31 - call PlaySoundEffect - ret - -.asm_260a2 - ld a, $2 - ld [de], a - lb de, $00, $31 - call PlaySoundEffect - ret - -.asm_260ac - ld a, $1 - ld [de], a - lb de, $00, $31 - call PlaySoundEffect - ret - -Func_260b6: ; 0x260b6 - dec de - ld a, [de] - cp $9 - ret nz - ld a, $4 - call Func_26137 - inc de - inc de - inc de - inc de - inc de - call GenRandom - bit 7, a - jr z, .asm_260d0 - ld a, $3 - jr .asm_260d2 - -.asm_260d0 - ld a, $5 -.asm_260d2 - ld [de], a - ld hl, wd791 - dec [hl] - ret - -Func_260d8: ; 0x260d8 - dec de - ld a, [de] - cp $5 - ret nz - ld a, $4 - jp Func_26137 - -Func_260e2: ; 0x260e2 - dec de - ld a, [de] - cp $5 - ret nz - ld a, $1 - jp Func_26137 - -Func_260ec: ; 0x260ec - dec de - ld a, [de] - cp $1 - ret nz - push de - inc de - inc de - inc de - inc de - inc de - inc de - inc de - ld a, [de] - and a - jr z, .asm_26103 - pop de - ld a, $b - jp Func_26137 - -.asm_26103 - pop de - ld a, $a - jp Func_26137 - -Func_26109: ; 0x26109 - dec de - ld a, [de] - cp $7 - ret nz - ld a, $1 - call Func_26137 - inc de - inc de - inc de - inc de - inc de - ld a, $5 - ld [de], a - ld hl, wd791 - dec [hl] - ret - -Func_26120: ; 0x26120 - dec de - ld a, [de] - cp $7 - ret nz - ld a, $4 - call Func_26137 - inc de - inc de - inc de - inc de - inc de - ld a, $5 - ld [de], a - ld hl, wd791 - dec [hl] - ret - -Func_26137: ; 0x26137 - push af - sla a - ld c, a - ld b, $0 - ld hl, SeelAnimationsTable - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - push de - dec de - dec de - call CopyHLToDE - pop de - inc de - pop af - ld [de], a - ret - -SeelAnimationsTable: ; 0x2614f - dw SeelAnimationData1 - dw SeelAnimationData2 - dw SeelAnimationData3 - dw SeelAnimationData4 - dw SeelAnimationData5 - dw SeelAnimationData6 - dw SeelAnimationData7 - dw SeelAnimationData8 - dw SeelAnimationData9 - dw SeelAnimationData10 - dw SeelAnimationData11 - dw SeelAnimationData12 - -SeelAnimationData1: - db $1C, $00 - db $1C, $01 - db $00 ; terminator - -SeelAnimationData2: - db $0C, $03 - db $08, $04 - db $0C, $05 - db $08, $04 - db $00 ; terminator - -SeelAnimationData3: - db $04, $06 - db $04, $07 - db $05, $08 - db $05, $09 - db $06, $0A - db $04, $0B - db $08, $0C - db $00 ; terminator - -SeelAnimationData4: - db $08, $0C - db $04, $0B - db $06, $0D - db $10, $17 - db $06, $0A - db $05, $09 - db $05, $08 - db $04, $0E - db $04, $0F - db $00 ; terminator - -SeelAnimationData5: - db $0C, $10 - db $08, $11 - db $0C, $12 - db $08, $11 - db $00 ; terminator - -SeelAnimationData6: - db $04, $13 - db $04, $14 - db $05, $08 - db $05, $09 - db $06, $0A - db $04, $0B - db $08, $0C - db $00 ; terminator - -SeelAnimationData7: - db $08, $0C - db $04, $0B - db $06, $0D - db $10, $17 - db $06, $0A - db $05, $09 - db $05, $08 - db $04, $15 - db $04, $16 - db $00 ; terminator - -SeelAnimationData8: - db $04, $06 - db $04, $07 - db $06, $0A - db $04, $15 - db $04, $16 - db $00 ; terminator - -SeelAnimationData9: - db $04, $13 - db $04, $14 - db $06, $0A - db $04, $0E - db $04, $0F - db $00 ; terminator - -SeelAnimationData10: - db $10, $02 - db $00 ; terminator - -SeelAnimationData11: - db $06, $0D - db $10, $17 - db $06, $0A - db $05, $09 - db $05, $08 - db $04, $0E - db $04, $0F - db $00 ; terminator - -SeelAnimationData12: - db $06, $0D - db $10, $17 - db $06, $0A - db $05, $09 - db $05, $08 - db $04, $15 - db $04, $16 - db $00 ; terminator - -Func_261f9: ; 0x261f9 - ld a, $ff - ld [wd795], a - ld a, [de] - sla a - ld c, a - ld b, $0 - ld hl, SeelStageAnimations - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - dec de - dec de - dec de - call CopyHLToDE - ret - -Func_26212: ; 0x26212 - ld a, [de] - sla a - ld c, a - ld b, $0 - ld hl, SeelStageAnimations - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - push de - dec de - dec de - dec de - call UpdateAnimation - pop de - ret nc - dec de - ld a, [de] - cp $a - ret nz - xor a - ld [de], a - ld [wd79c], a - ld [wd79e], a - ld a, a - ld [wd795], a - ret - -SeelStageAnimations: - dw SeelStageAnimationData1 - dw SeelStageAnimationData1 - dw SeelStageAnimationData2 - dw SeelStageAnimationData3 - dw SeelStageAnimationData4 - dw SeelStageAnimationData5 - dw SeelStageAnimationData6 - dw SeelStageAnimationData7 - dw SeelStageAnimationData8 - -SeelStageAnimationData1: - db $02, $00 - db $02, $01 - db $02, $02 - db $10, $00 - db $04, $18 - db $04, $00 - db $04, $18 - db $04, $00 - db $04, $18 - db $04, $00 - db $00 ; terminator - -SeelStageAnimationData2: - db $02, $03 - db $02, $04 - db $02, $05 - db $10, $03 - db $04, $18 - db $04, $03 - db $04, $18 - db $04, $03 - db $04, $18 - db $04, $03 - db $00 ; terminator - -SeelStageAnimationData3: - db $02, $06 - db $02, $07 - db $02, $08 - db $10, $06 - db $04, $18 - db $04, $06 - db $04, $18 - db $04, $06 - db $04, $18 - db $04, $06 - db $00 ; terminator - -SeelStageAnimationData4: - db $02, $09 - db $02, $0A - db $02, $0B - db $10, $09 - db $04, $18 - db $04, $09 - db $04, $18 - db $04, $09 - db $04, $18 - db $04, $09 - db $00 ; terminator - -SeelStageAnimationData5: - db $02, $0C - db $02, $0D - db $02, $0E - db $10, $0C - db $04, $18 - db $04, $0C - db $04, $18 - db $04, $0C - db $04, $18 - db $04, $0C - db $00 ; terminator - -SeelStageAnimationData6: - db $02, $0F - db $02, $10 - db $02, $11 - db $10, $0F - db $04, $18 - db $04, $0F - db $04, $18 - db $04, $0F - db $04, $18 - db $04, $0F - db $00 ; terminator - -SeelStageAnimationData7: - db $02, $12 - db $02, $13 - db $02, $14 - db $10, $12 - db $04, $18 - db $04, $12 - db $04, $18 - db $04, $12 - db $04, $18 - db $04, $12 - db $00 ; terminator - -SeelStageAnimationData8: - db $02, $15 - db $02, $16 - db $02, $17 - db $10, $15 - db $04, $18 - db $04, $15 - db $04, $18 - db $04, $15 - db $04, $18 - db $04, $15 - db $00 ; terminator - -Func_262f4: ; 0x262f4 - ld a, [wd793] - ld c, a - ld b, $0 -.asm_262fa - ld a, c - and a - jr z, .asm_26306 - ld a, b - add $8 - ld b, a - dec c - ld a, c - jr .asm_262fa - -.asm_26306 - ld a, b - and a - jr z, .asm_2630c - sub $8 -.asm_2630c - ld [wd652], a - ld a, [wd792] - and a - jr z, .asm_2631b - ld b, a - ld a, [wd793] - inc a - sub b -.asm_2631b - ld [wd651], a - ld a, [wd793] - cp $15 - jr c, .asm_2632a - ld a, $14 - ld [wd793], a -.asm_2632a - push af - xor a - ld [wd650], a - pop af - sla a - ld c, a - ld b, $0 - ld hl, TileDataPointers_2634a - ld a, [hGameBoyColorFlag] - and a - jr z, .asm_26340 - ld hl, TileDataPointers_26764 -.asm_26340 - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - ld a, Bank(TileDataPointers_2634a) - call Func_10aa - ret - -TileDataPointers_2634a: - dw TileData_26374 - dw TileData_26377 - dw TileData_2637a - dw TileData_2637d - dw TileData_26380 - dw TileData_26383 - dw TileData_26386 - dw TileData_26389 - dw TileData_2638c - dw TileData_2638f - dw TileData_26392 - dw TileData_26395 - dw TileData_26398 - dw TileData_2639b - dw TileData_2639e - dw TileData_263a1 - dw TileData_263a4 - dw TileData_263a7 - dw TileData_263aa - dw TileData_263ad - dw TileData_263b0 - -TileData_26374: ; 0x26374 - db $01 - dw TileData_263b3 - -TileData_26377: ; 0x26377 - db $01 - dw TileData_263e0 - -TileData_2637a: ; 0x2637a - db $01 - dw TileData_2640d - -TileData_2637d: ; 0x2637d - db $01 - dw TileData_2643a - -TileData_26380: ; 0x26380 - db $01 - dw TileData_26467 - -TileData_26383: ; 0x26383 - db $01 - dw TileData_26494 - -TileData_26386: ; 0x26386 - db $01 - dw TileData_264c1 - -TileData_26389: ; 0x26389 - db $01 - dw TileData_264ee - -TileData_2638c: ; 0x2638c - db $01 - dw TileData_2651b - -TileData_2638f: ; 0x2638f - db $01 - dw TileData_26548 - -TileData_26392: ; 0x26392 - db $01 - dw TileData_26575 - -TileData_26395: ; 0x26395 - db $01 - dw TileData_265a2 - -TileData_26398: ; 0x26398 - db $01 - dw TileData_265cf - -TileData_2639b: ; 0x2639b - db $01 - dw TileData_265fc - -TileData_2639e: ; 0x2639e - db $01 - dw TileData_26629 - -TileData_263a1: ; 0x263a1 - db $01 - dw TileData_26656 - -TileData_263a4: ; 0x263a4 - db $01 - dw TileData_26683 - -TileData_263a7: ; 0x263a7 - db $01 - dw TileData_266b0 - -TileData_263aa: ; 0x263aa - db $01 - dw TileData_266dd - -TileData_263ad: ; 0x263ad - db $01 - dw TileData_2670a - -TileData_263b0: ; 0x263b0 - db $01 - dw TileData_26737 - -TileData_263b3: ; 0x263b3 - dw LoadTileLists - db $14 ; total number of tiles - - db $03 ; number of tiles - dw vBGMap - db $01, $30, $31 - - db $03 ; number of tiles - dw vBGMap + $3 - db $32, $32, $32 - - db $03 ; number of tiles - dw vBGMap + $6 - db $32, $32, $32 - - db $03 ; number of tiles - dw vBGMap + $9 - db $32, $32, $32 - - db $03 ; number of tiles - dw vBGMap + $C - db $32, $32, $32 - - db $03 ; number of tiles - dw vBGMap + $F - db $32, $32, $33 - - db $02 ; number of tiles - dw vBGMap + $12 - db $34, $04 - - db $00 ; terminator - -TileData_263e0: ; 0x263e0 - dw LoadTileLists - db $14 ; total number of tiles - - db $03 ; number of tiles - dw vBGMap - db $38, $30, $31 - - db $03 ; number of tiles - dw vBGMap + $3 - db $32, $32, $32 - - db $03 ; number of tiles - dw vBGMap + $6 - db $32, $32, $32 - - db $03 ; number of tiles - dw vBGMap + $9 - db $32, $32, $32 - - db $03 ; number of tiles - dw vBGMap + $C - db $32, $32, $32 - - db $03 ; number of tiles - dw vBGMap + $F - db $32, $32, $33 - - db $02 ; number of tiles - dw vBGMap + $12 - db $34, $04 - - db $00 ; terminator - -TileData_2640d: ; 0x2640d - dw LoadTileLists - db $14 ; total number of tiles - - db $03 ; number of tiles - dw vBGMap - db $38, $39, $31 - - db $03 ; number of tiles - dw vBGMap + $3 - db $32, $32, $32 - - db $03 ; number of tiles - dw vBGMap + $6 - db $32, $32, $32 - - db $03 ; number of tiles - dw vBGMap + $9 - db $32, $32, $32 - - db $03 ; number of tiles - dw vBGMap + $C - db $32, $32, $32 - - db $03 ; number of tiles - dw vBGMap + $F - db $32, $32, $33 - - db $02 ; number of tiles - dw vBGMap + $12 - db $34, $04 - - db $00 ; terminator - -TileData_2643a: ; 0x2643a - dw LoadTileLists - db $14 ; total number of tiles - - db $03 ; number of tiles - dw vBGMap - db $38, $39, $3A - - db $03 ; number of tiles - dw vBGMap + $3 - db $32, $32, $32 - - db $03 ; number of tiles - dw vBGMap + $6 - db $32, $32, $32 - - db $03 ; number of tiles - dw vBGMap + $9 - db $32, $32, $32 - - db $03 ; number of tiles - dw vBGMap + $C - db $32, $32, $32 - - db $03 ; number of tiles - dw vBGMap + $F - db $32, $32, $33 - - db $02 ; number of tiles - dw vBGMap + $12 - db $34, $04 - - db $00 ; terminator - -TileData_26467: ; 0x26467 - dw LoadTileLists - db $14 ; total number of tiles - - db $03 ; number of tiles - dw vBGMap - db $38, $39, $3A - - db $03 ; number of tiles - dw vBGMap + $3 - db $3A, $32, $32 - - db $03 ; number of tiles - dw vBGMap + $6 - db $32, $32, $32 - - db $03 ; number of tiles - dw vBGMap + $9 - db $32, $32, $32 - - db $03 ; number of tiles - dw vBGMap + $C - db $32, $32, $32 - - db $03 ; number of tiles - dw vBGMap + $F - db $32, $32, $33 - - db $02 ; number of tiles - dw vBGMap + $12 - db $34, $04 - - db $00 ; terminator - -TileData_26494: ; 0x26494 - dw LoadTileLists - db $14 ; total number of tiles - - db $03 ; number of tiles - dw vBGMap - db $38, $39, $3A - - db $03 ; number of tiles - dw vBGMap + $3 - db $3A, $3A, $32 - - db $03 ; number of tiles - dw vBGMap + $6 - db $32, $32, $32 - - db $03 ; number of tiles - dw vBGMap + $9 - db $32, $32, $32 - - db $03 ; number of tiles - dw vBGMap + $C - db $32, $32, $32 - - db $03 ; number of tiles - dw vBGMap + $F - db $32, $32, $33 - - db $02 ; number of tiles - dw vBGMap + $12 - db $34, $04 - - db $00 ; terminator - -TileData_264c1: ; 0x264c1 - dw LoadTileLists - db $14 ; total number of tiles - - db $03 ; number of tiles - dw vBGMap - db $38, $39, $3A - - db $03 ; number of tiles - dw vBGMap + $3 - db $3A, $3A, $3A - - db $03 ; number of tiles - dw vBGMap + $6 - db $32, $32, $32 - - db $03 ; number of tiles - dw vBGMap + $9 - db $32, $32, $32 - - db $03 ; number of tiles - dw vBGMap + $C - db $32, $32, $32 - - db $03 ; number of tiles - dw vBGMap + $F - db $32, $32, $33 - - db $02 ; number of tiles - dw vBGMap + $12 - db $34, $04 - - db $00 ; terminator - -TileData_264ee: ; 0x264ee - dw LoadTileLists - db $14 ; total number of tiles - - db $03 ; number of tiles - dw vBGMap - db $38, $39, $3A - - db $03 ; number of tiles - dw vBGMap + $3 - db $3A, $3A, $3A - - db $03 ; number of tiles - dw vBGMap + $6 - db $3A, $32, $32 - - db $03 ; number of tiles - dw vBGMap + $9 - db $32, $32, $32 - - db $03 ; number of tiles - dw vBGMap + $C - db $32, $32, $32 - - db $03 ; number of tiles - dw vBGMap + $F - db $32, $32, $33 - - db $02 ; number of tiles - dw vBGMap + $12 - db $34, $04 - - db $00 ; terminator - -TileData_2651b: ; 0x2651b - dw LoadTileLists - db $14 ; total number of tiles - - db $03 ; number of tiles - dw vBGMap - db $38, $39, $3A - - db $03 ; number of tiles - dw vBGMap + $3 - db $3A, $3A, $3A - - db $03 ; number of tiles - dw vBGMap + $6 - db $3A, $3A, $32 - - db $03 ; number of tiles - dw vBGMap + $9 - db $32, $32, $32 - - db $03 ; number of tiles - dw vBGMap + $C - db $32, $32, $32 - - db $03 ; number of tiles - dw vBGMap + $F - db $32, $32, $33 - - db $02 ; number of tiles - dw vBGMap + $12 - db $34, $04 - - db $00 ; terminator - -TileData_26548: ; 0x26548 - dw LoadTileLists - db $14 ; total number of tiles - - db $03 ; number of tiles - dw vBGMap - db $38, $39, $3A - - db $03 ; number of tiles - dw vBGMap + $3 - db $3A, $3A, $3A - - db $03 ; number of tiles - dw vBGMap + $6 - db $3A, $3A, $3A - - db $03 ; number of tiles - dw vBGMap + $9 - db $32, $32, $32 - - db $03 ; number of tiles - dw vBGMap + $C - db $32, $32, $32 - - db $03 ; number of tiles - dw vBGMap + $F - db $32, $32, $33 - - db $02 ; number of tiles - dw vBGMap + $12 - db $34, $04 - - db $00 ; terminator - -TileData_26575: ; 0x26575 - dw LoadTileLists - db $14 ; total number of tiles - - db $03 ; number of tiles - dw vBGMap - db $38, $39, $3A - - db $03 ; number of tiles - dw vBGMap + $3 - db $3A, $3A, $3A - - db $03 ; number of tiles - dw vBGMap + $6 - db $3A, $3A, $3A - - db $03 ; number of tiles - dw vBGMap + $9 - db $3A, $32, $32 - - db $03 ; number of tiles - dw vBGMap + $C - db $32, $32, $32 - - db $03 ; number of tiles - dw vBGMap + $F - db $32, $32, $33 - - db $02 ; number of tiles - dw vBGMap + $12 - db $34, $04 - - db $00 ; terminator - -TileData_265a2: ; 0x265a2 - dw LoadTileLists - db $14 ; total number of tiles - - db $03 ; number of tiles - dw vBGMap - db $38, $39, $3A - - db $03 ; number of tiles - dw vBGMap + $3 - db $3A, $3A, $3A - - db $03 ; number of tiles - dw vBGMap + $6 - db $3A, $3A, $3A - - db $03 ; number of tiles - dw vBGMap + $9 - db $3A, $3A, $32 - - db $03 ; number of tiles - dw vBGMap + $C - db $32, $32, $32 - - db $03 ; number of tiles - dw vBGMap + $F - db $32, $32, $33 - - db $02 ; number of tiles - dw vBGMap + $12 - db $34, $04 - - db $00 ; terminator - -TileData_265cf: ; 0x265cf - dw LoadTileLists - db $14 ; total number of tiles - - db $03 ; number of tiles - dw vBGMap - db $38, $39, $3A - - db $03 ; number of tiles - dw vBGMap + $3 - db $3A, $3A, $3A - - db $03 ; number of tiles - dw vBGMap + $6 - db $3A, $3A, $3A - - db $03 ; number of tiles - dw vBGMap + $9 - db $3A, $3A, $3A - - db $03 ; number of tiles - dw vBGMap + $C - db $32, $32, $32 - - db $03 ; number of tiles - dw vBGMap + $F - db $32, $32, $33 - - db $02 ; number of tiles - dw vBGMap + $12 - db $34, $04 - - db $00 ; terminator - -TileData_265fc: ; 0x265fc - dw LoadTileLists - db $14 ; total number of tiles - - db $03 ; number of tiles - dw vBGMap - db $38, $39, $3A - - db $03 ; number of tiles - dw vBGMap + $3 - db $3A, $3A, $3A - - db $03 ; number of tiles - dw vBGMap + $6 - db $3A, $3A, $3A - - db $03 ; number of tiles - dw vBGMap + $9 - db $3A, $3A, $3A - - db $03 ; number of tiles - dw vBGMap + $C - db $3A, $32, $32 - - db $03 ; number of tiles - dw vBGMap + $F - db $32, $32, $33 - - db $02 ; number of tiles - dw vBGMap + $12 - db $34, $04 - - db $00 ; terminator - -TileData_26629: ; 0x26629 - dw LoadTileLists - db $14 ; total number of tiles - - db $03 ; number of tiles - dw vBGMap - db $38, $39, $3A - - db $03 ; number of tiles - dw vBGMap + $3 - db $3A, $3A, $3A - - db $03 ; number of tiles - dw vBGMap + $6 - db $3A, $3A, $3A - - db $03 ; number of tiles - dw vBGMap + $9 - db $3A, $3A, $3A - - db $03 ; number of tiles - dw vBGMap + $C - db $3A, $3A, $32 - - db $03 ; number of tiles - dw vBGMap + $F - db $32, $32, $33 - - db $02 ; number of tiles - dw vBGMap + $12 - db $34, $04 - - db $00 ; terminator - -TileData_26656: ; 0x26656 - dw LoadTileLists - db $14 ; total number of tiles - - db $03 ; number of tiles - dw vBGMap - db $38, $39, $3A - - db $03 ; number of tiles - dw vBGMap + $3 - db $3A, $3A, $3A - - db $03 ; number of tiles - dw vBGMap + $6 - db $3A, $3A, $3A - - db $03 ; number of tiles - dw vBGMap + $9 - db $3A, $3A, $3A - - db $03 ; number of tiles - dw vBGMap + $C - db $3A, $3A, $3A - - db $03 ; number of tiles - dw vBGMap + $F - db $32, $32, $33 - - db $02 ; number of tiles - dw vBGMap + $12 - db $34, $04 - - db $00 ; terminator - -TileData_26683: ; 0x26683 - dw LoadTileLists - db $14 ; total number of tiles - - db $03 ; number of tiles - dw vBGMap - db $38, $39, $3A - - db $03 ; number of tiles - dw vBGMap + $3 - db $3A, $3A, $3A - - db $03 ; number of tiles - dw vBGMap + $6 - db $3A, $3A, $3A - - db $03 ; number of tiles - dw vBGMap + $9 - db $3A, $3A, $3A - - db $03 ; number of tiles - dw vBGMap + $C - db $3A, $3A, $3A - - db $03 ; number of tiles - dw vBGMap + $F - db $3A, $32, $33 - - db $02 ; number of tiles - dw vBGMap + $12 - db $34, $04 - - db $00 ; terminator - -TileData_266b0: ; 0x266b0 - dw LoadTileLists - db $14 ; total number of tiles - - db $03 ; number of tiles - dw vBGMap - db $38, $39, $3A - - db $03 ; number of tiles - dw vBGMap + $3 - db $3A, $3A, $3A - - db $03 ; number of tiles - dw vBGMap + $6 - db $3A, $3A, $3A - - db $03 ; number of tiles - dw vBGMap + $9 - db $3A, $3A, $3A - - db $03 ; number of tiles - dw vBGMap + $C - db $3A, $3A, $3A - - db $03 ; number of tiles - dw vBGMap + $F - db $3A, $3A, $33 - - db $02 ; number of tiles - dw vBGMap + $12 - db $34, $04 - - db $00 ; terminator - -TileData_266dd: ; 0x266dd - dw LoadTileLists - db $14 ; total number of tiles - - db $03 ; number of tiles - dw vBGMap - db $38, $39, $3A - - db $03 ; number of tiles - dw vBGMap + $3 - db $3A, $3A, $3A - - db $03 ; number of tiles - dw vBGMap + $6 - db $3A, $3A, $3A - - db $03 ; number of tiles - dw vBGMap + $9 - db $3A, $3A, $3A - - db $03 ; number of tiles - dw vBGMap + $C - db $3A, $3A, $3A - - db $03 ; number of tiles - dw vBGMap + $F - db $3A, $3A, $3A - - db $02 ; number of tiles - dw vBGMap + $12 - db $34, $04 - - db $00 ; terminator - -TileData_2670a: ; 0x2670a - dw LoadTileLists - db $14 ; total number of tiles - - db $03 ; number of tiles - dw vBGMap - db $38, $39, $3A - - db $03 ; number of tiles - dw vBGMap + $3 - db $3A, $3A, $3A - - db $03 ; number of tiles - dw vBGMap + $6 - db $3A, $3A, $3A - - db $03 ; number of tiles - dw vBGMap + $9 - db $3A, $3A, $3A - - db $03 ; number of tiles - dw vBGMap + $C - db $3A, $3A, $3A - - db $03 ; number of tiles - dw vBGMap + $F - db $3A, $3A, $3A - - db $02 ; number of tiles - dw vBGMap + $12 - db $3B, $04 - - db $00 ; terminator - -TileData_26737: ; 0x26737 - dw LoadTileLists - db $14 ; total number of tiles - - db $03 ; number of tiles - dw vBGMap - db $38, $39, $3A - - db $03 ; number of tiles - dw vBGMap + $3 - db $3A, $3A, $3A - - db $03 ; number of tiles - dw vBGMap + $6 - db $3A, $3A, $3A - - db $03 ; number of tiles - dw vBGMap + $9 - db $3A, $3A, $3A - - db $03 ; number of tiles - dw vBGMap + $C - db $3A, $3A, $3A - - db $03 ; number of tiles - dw vBGMap + $F - db $3A, $3A, $3A - - db $02 ; number of tiles - dw vBGMap + $12 - db $3B, $38 - - db $00 ; terminator - -TileDataPointers_26764: - dw TileData_2678e - dw TileData_26791 - dw TileData_26794 - dw TileData_26797 - dw TileData_2679a - dw TileData_2679d - dw TileData_267a0 - dw TileData_267a3 - dw TileData_267a6 - dw TileData_267a9 - dw TileData_267ac - dw TileData_267af - dw TileData_267b2 - dw TileData_267b5 - dw TileData_267b8 - dw TileData_267bb - dw TileData_267be - dw TileData_267c1 - dw TileData_267c4 - dw TileData_267c7 - dw TileData_267ca - -TileData_2678e: ; 0x2678e - db $01 - dw TileData_267cd - -TileData_26791: ; 0x26791 - db $01 - dw TileData_267fa - -TileData_26794: ; 0x26794 - db $01 - dw TileData_26827 - -TileData_26797: ; 0x26797 - db $01 - dw TileData_26854 - -TileData_2679a: ; 0x2679a - db $01 - dw TileData_26881 - -TileData_2679d: ; 0x2679d - db $01 - dw TileData_268ae - -TileData_267a0: ; 0x267a0 - db $01 - dw TileData_268db - -TileData_267a3: ; 0x267a3 - db $01 - dw TileData_26908 - -TileData_267a6: ; 0x267a6 - db $01 - dw TileData_26935 - -TileData_267a9: ; 0x267a9 - db $01 - dw TileData_26962 - -TileData_267ac: ; 0x267ac - db $01 - dw TileData_2698f - -TileData_267af: ; 0x267af - db $01 - dw TileData_269bc - -TileData_267b2: ; 0x267b2 - db $01 - dw TileData_269e9 - -TileData_267b5: ; 0x267b5 - db $01 - dw TileData_26a16 - -TileData_267b8: ; 0x267b8 - db $01 - dw TileData_26a43 - -TileData_267bb: ; 0x267bb - db $01 - dw TileData_26a70 - -TileData_267be: ; 0x267be - db $01 - dw TileData_26a9d - -TileData_267c1: ; 0x267c1 - db $01 - dw TileData_26aca - -TileData_267c4: ; 0x267c4 - db $01 - dw TileData_26af7 - -TileData_267c7: ; 0x267c7 - db $01 - dw TileData_26b24 - -TileData_267ca: ; 0x267ca - db $01 - dw TileData_26b51 - -TileData_267cd: ; 0x267cd - dw LoadTileLists - db $14 ; total number of tiles - - db $03 ; number of tiles - dw vBGMap - db $FB, $18, $19 - - db $03 ; number of tiles - dw vBGMap + $3 - db $1A, $1A, $1A - - db $03 ; number of tiles - dw vBGMap + $6 - db $1A, $1A, $1A - - db $03 ; number of tiles - dw vBGMap + $9 - db $1A, $1A, $1A - - db $03 ; number of tiles - dw vBGMap + $C - db $1A, $1A, $1A - - db $03 ; number of tiles - dw vBGMap + $F - db $1A, $1A, $19 - - db $02 ; number of tiles - dw vBGMap + $12 - db $18, $FB - - db $00 ; terminator - -TileData_267fa: ; 0x267fa - dw LoadTileLists - db $14 ; total number of tiles - - db $03 ; number of tiles - dw vBGMap - db $1B, $18, $19 - - db $03 ; number of tiles - dw vBGMap + $3 - db $1A, $1A, $1A - - db $03 ; number of tiles - dw vBGMap + $6 - db $1A, $1A, $1A - - db $03 ; number of tiles - dw vBGMap + $9 - db $1A, $1A, $1A - - db $03 ; number of tiles - dw vBGMap + $C - db $1A, $1A, $1A - - db $03 ; number of tiles - dw vBGMap + $F - db $1A, $1A, $19 - - db $02 ; number of tiles - dw vBGMap + $12 - db $18, $FB - - db $00 ; terminator - -TileData_26827: ; 0x26827 - dw LoadTileLists - db $14 ; total number of tiles - - db $03 ; number of tiles - dw vBGMap - db $1B, $1C, $19 - - db $03 ; number of tiles - dw vBGMap + $3 - db $1A, $1A, $1A - - db $03 ; number of tiles - dw vBGMap + $6 - db $1A, $1A, $1A - - db $03 ; number of tiles - dw vBGMap + $9 - db $1A, $1A, $1A - - db $03 ; number of tiles - dw vBGMap + $C - db $1A, $1A, $1A - - db $03 ; number of tiles - dw vBGMap + $F - db $1A, $1A, $19 - - db $02 ; number of tiles - dw vBGMap + $12 - db $18, $FB - - db $00 ; terminator - -TileData_26854: ; 0x26854 - dw LoadTileLists - db $14 ; total number of tiles - - db $03 ; number of tiles - dw vBGMap - db $1B, $1C, $1D - - db $03 ; number of tiles - dw vBGMap + $3 - db $1A, $1A, $1A - - db $03 ; number of tiles - dw vBGMap + $6 - db $1A, $1A, $1A - - db $03 ; number of tiles - dw vBGMap + $9 - db $1A, $1A, $1A - - db $03 ; number of tiles - dw vBGMap + $C - db $1A, $1A, $1A - - db $03 ; number of tiles - dw vBGMap + $F - db $1A, $1A, $19 - - db $02 ; number of tiles - dw vBGMap + $12 - db $18, $FB - - db $00 ; terminator - -TileData_26881: ; 0x26881 - dw LoadTileLists - db $14 ; total number of tiles - - db $03 ; number of tiles - dw vBGMap - db $1B, $1C, $1D - - db $03 ; number of tiles - dw vBGMap + $3 - db $1D, $1A, $1A - - db $03 ; number of tiles - dw vBGMap + $6 - db $1A, $1A, $1A - - db $03 ; number of tiles - dw vBGMap + $9 - db $1A, $1A, $1A - - db $03 ; number of tiles - dw vBGMap + $C - db $1A, $1A, $1A - - db $03 ; number of tiles - dw vBGMap + $F - db $1A, $1A, $19 - - db $02 ; number of tiles - dw vBGMap + $12 - db $18, $FB - - db $00 ; terminator - -TileData_268ae: ; 0x268ae - dw LoadTileLists - db $14 ; total number of tiles - - db $03 ; number of tiles - dw vBGMap - db $1B, $1C, $1D - - db $03 ; number of tiles - dw vBGMap + $3 - db $1D, $1D, $1A - - db $03 ; number of tiles - dw vBGMap + $6 - db $1A, $1A, $1A - - db $03 ; number of tiles - dw vBGMap + $9 - db $1A, $1A, $1A - - db $03 ; number of tiles - dw vBGMap + $C - db $1A, $1A, $1A - - db $03 ; number of tiles - dw vBGMap + $F - db $1A, $1A, $19 - - db $02 ; number of tiles - dw vBGMap + $12 - db $18, $FB - - db $00 ; terminator - -TileData_268db: ; 0x268db - dw LoadTileLists - db $14 ; total number of tiles - - db $03 ; number of tiles - dw vBGMap - db $1B, $1C, $1D - - db $03 ; number of tiles - dw vBGMap + $3 - db $1D, $1D, $1D - - db $03 ; number of tiles - dw vBGMap + $6 - db $1A, $1A, $1A - - db $03 ; number of tiles - dw vBGMap + $9 - db $1A, $1A, $1A - - db $03 ; number of tiles - dw vBGMap + $C - db $1A, $1A, $1A - - db $03 ; number of tiles - dw vBGMap + $F - db $1A, $1A, $19 - - db $02 ; number of tiles - dw vBGMap + $12 - db $18, $FB - - db $00 ; terminator - -TileData_26908: ; 0x26908 - dw LoadTileLists - db $14 ; total number of tiles - - db $03 ; number of tiles - dw vBGMap - db $1B, $1C, $1D - - db $03 ; number of tiles - dw vBGMap + $3 - db $1D, $1D, $1D - - db $03 ; number of tiles - dw vBGMap + $6 - db $1D, $1A, $1A - - db $03 ; number of tiles - dw vBGMap + $9 - db $1A, $1A, $1A - - db $03 ; number of tiles - dw vBGMap + $C - db $1A, $1A, $1A - - db $03 ; number of tiles - dw vBGMap + $F - db $1A, $1A, $19 - - db $02 ; number of tiles - dw vBGMap + $12 - db $18, $FB - - db $00 ; terminator - -TileData_26935: ; 0x26935 - dw LoadTileLists - db $14 ; total number of tiles - - db $03 ; number of tiles - dw vBGMap - db $1B, $1C, $1D - - db $03 ; number of tiles - dw vBGMap + $3 - db $1D, $1D, $1D - - db $03 ; number of tiles - dw vBGMap + $6 - db $1D, $1D, $1A - - db $03 ; number of tiles - dw vBGMap + $9 - db $1A, $1A, $1A - - db $03 ; number of tiles - dw vBGMap + $C - db $1A, $1A, $1A - - db $03 ; number of tiles - dw vBGMap + $F - db $1A, $1A, $19 - - db $02 ; number of tiles - dw vBGMap + $12 - db $18, $FB - - db $00 ; terminator - -TileData_26962: ; 0x26962 - dw LoadTileLists - db $14 ; total number of tiles - - db $03 ; number of tiles - dw vBGMap - db $1B, $1C, $1D - - db $03 ; number of tiles - dw vBGMap + $3 - db $1D, $1D, $1D - - db $03 ; number of tiles - dw vBGMap + $6 - db $1D, $1D, $1D - - db $03 ; number of tiles - dw vBGMap + $9 - db $1A, $1A, $1A - - db $03 ; number of tiles - dw vBGMap + $C - db $1A, $1A, $1A - - db $03 ; number of tiles - dw vBGMap + $F - db $1A, $1A, $19 - - db $02 ; number of tiles - dw vBGMap + $12 - db $18, $FB - - db $00 ; terminator - -TileData_2698f: ; 0x2698f - dw LoadTileLists - db $14 ; total number of tiles - - db $03 ; number of tiles - dw vBGMap - db $1B, $1C, $1D - - db $03 ; number of tiles - dw vBGMap + $3 - db $1D, $1D, $1D - - db $03 ; number of tiles - dw vBGMap + $6 - db $1D, $1D, $1D - - db $03 ; number of tiles - dw vBGMap + $9 - db $1D, $1A, $1A - - db $03 ; number of tiles - dw vBGMap + $C - db $1A, $1A, $1A - - db $03 ; number of tiles - dw vBGMap + $F - db $1A, $1A, $19 - - db $02 ; number of tiles - dw vBGMap + $12 - db $18, $FB - - db $00 ; terminator - -TileData_269bc: ; 0x269bc - dw LoadTileLists - db $14 ; total number of tiles - - db $03 ; number of tiles - dw vBGMap - db $1B, $1C, $1D - - db $03 ; number of tiles - dw vBGMap + $3 - db $1D, $1D, $1D - - db $03 ; number of tiles - dw vBGMap + $6 - db $1D, $1D, $1D - - db $03 ; number of tiles - dw vBGMap + $9 - db $1D, $1D, $1A - - db $03 ; number of tiles - dw vBGMap + $C - db $1A, $1A, $1A - - db $03 ; number of tiles - dw vBGMap + $F - db $1A, $1A, $19 - - db $02 ; number of tiles - dw vBGMap + $12 - db $18, $FB - - db $00 ; terminator - -TileData_269e9: ; 0x269e9 - dw LoadTileLists - db $14 ; total number of tiles - - db $03 ; number of tiles - dw vBGMap - db $1B, $1C, $1D - - db $03 ; number of tiles - dw vBGMap + $3 - db $1D, $1D, $1D - - db $03 ; number of tiles - dw vBGMap + $6 - db $1D, $1D, $1D - - db $03 ; number of tiles - dw vBGMap + $9 - db $1D, $1D, $1D - - db $03 ; number of tiles - dw vBGMap + $C - db $1A, $1A, $1A - - db $03 ; number of tiles - dw vBGMap + $F - db $1A, $1A, $19 - - db $02 ; number of tiles - dw vBGMap + $12 - db $18, $FB - - db $00 ; terminator - -TileData_26a16: ; 0x26a16 - dw LoadTileLists - db $14 ; total number of tiles - - db $03 ; number of tiles - dw vBGMap - db $1B, $1C, $1D - - db $03 ; number of tiles - dw vBGMap + $3 - db $1D, $1D, $1D - - db $03 ; number of tiles - dw vBGMap + $6 - db $1D, $1D, $1D - - db $03 ; number of tiles - dw vBGMap + $9 - db $1D, $1D, $1D - - db $03 ; number of tiles - dw vBGMap + $C - db $1D, $1A, $1A - - db $03 ; number of tiles - dw vBGMap + $F - db $1A, $1A, $19 - - db $02 ; number of tiles - dw vBGMap + $12 - db $18, $FB - - db $00 ; terminator - -TileData_26a43: ; 0x26a43 - dw LoadTileLists - db $14 ; total number of tiles - - db $03 ; number of tiles - dw vBGMap - db $1B, $1C, $1D - - db $03 ; number of tiles - dw vBGMap + $3 - db $1D, $1D, $1D - - db $03 ; number of tiles - dw vBGMap + $6 - db $1D, $1D, $1D - - db $03 ; number of tiles - dw vBGMap + $9 - db $1D, $1D, $1D - - db $03 ; number of tiles - dw vBGMap + $C - db $1D, $1D, $1A - - db $03 ; number of tiles - dw vBGMap + $F - db $1A, $1A, $19 - - db $02 ; number of tiles - dw vBGMap + $12 - db $18, $FB - - db $00 ; terminator - -TileData_26a70: ; 0x26a70 - dw LoadTileLists - db $14 ; total number of tiles - - db $03 ; number of tiles - dw vBGMap - db $1B, $1C, $1D - - db $03 ; number of tiles - dw vBGMap + $3 - db $1D, $1D, $1D - - db $03 ; number of tiles - dw vBGMap + $6 - db $1D, $1D, $1D - - db $03 ; number of tiles - dw vBGMap + $9 - db $1D, $1D, $1D - - db $03 ; number of tiles - dw vBGMap + $C - db $1D, $1D, $1D - - db $03 ; number of tiles - dw vBGMap + $F - db $1A, $1A, $19 - - db $02 ; number of tiles - dw vBGMap + $12 - db $18, $FB - - db $00 ; terminator - -TileData_26a9d: ; 0x26a9d - dw LoadTileLists - db $14 ; total number of tiles - - db $03 ; number of tiles - dw vBGMap - db $1B, $1C, $1D - - db $03 ; number of tiles - dw vBGMap + $3 - db $1D, $1D, $1D - - db $03 ; number of tiles - dw vBGMap + $6 - db $1D, $1D, $1D - - db $03 ; number of tiles - dw vBGMap + $9 - db $1D, $1D, $1D - - db $03 ; number of tiles - dw vBGMap + $C - db $1D, $1D, $1D - - db $03 ; number of tiles - dw vBGMap + $F - db $1D, $1A, $19 - - db $02 ; number of tiles - dw vBGMap + $12 - db $18, $FB - - db $00 ; terminator - -TileData_26aca: ; 0x26aca - dw LoadTileLists - db $14 ; total number of tiles - - db $03 ; number of tiles - dw vBGMap - db $1B, $1C, $1D - - db $03 ; number of tiles - dw vBGMap + $3 - db $1D, $1D, $1D - - db $03 ; number of tiles - dw vBGMap + $6 - db $1D, $1D, $1D - - db $03 ; number of tiles - dw vBGMap + $9 - db $1D, $1D, $1D - - db $03 ; number of tiles - dw vBGMap + $C - db $1D, $1D, $1D - - db $03 ; number of tiles - dw vBGMap + $F - db $1D, $1D, $19 - - db $02 ; number of tiles - dw vBGMap + $12 - db $18, $FB - - db $00 ; terminator - -TileData_26af7: ; 0x26af7 - dw LoadTileLists - db $14 ; total number of tiles - - db $03 ; number of tiles - dw vBGMap - db $1B, $1C, $1D - - db $03 ; number of tiles - dw vBGMap + $3 - db $1D, $1D, $1D - - db $03 ; number of tiles - dw vBGMap + $6 - db $1D, $1D, $1D - - db $03 ; number of tiles - dw vBGMap + $9 - db $1D, $1D, $1D - - db $03 ; number of tiles - dw vBGMap + $C - db $1D, $1D, $1D - - db $03 ; number of tiles - dw vBGMap + $F - db $1D, $1D, $1D - - db $02 ; number of tiles - dw vBGMap + $12 - db $18, $FB - - db $00 ; terminator - -TileData_26b24: ; 0x26b24 - dw LoadTileLists - db $14 ; total number of tiles - - db $03 ; number of tiles - dw vBGMap - db $1B, $1C, $1D - - db $03 ; number of tiles - dw vBGMap + $3 - db $1D, $1D, $1D - - db $03 ; number of tiles - dw vBGMap + $6 - db $1D, $1D, $1D - - db $03 ; number of tiles - dw vBGMap + $9 - db $1D, $1D, $1D - - db $03 ; number of tiles - dw vBGMap + $C - db $1D, $1D, $1D - - db $03 ; number of tiles - dw vBGMap + $F - db $1D, $1D, $1D - - db $02 ; number of tiles - dw vBGMap + $12 - db $1E, $FB - - db $00 ; terminator - -TileData_26b51: ; 0x26b51 - dw LoadTileLists - db $14 ; total number of tiles - - db $03 ; number of tiles - dw vBGMap - db $1B, $1C, $1D - - db $03 ; number of tiles - dw vBGMap + $3 - db $1D, $1D, $1D - - db $03 ; number of tiles - dw vBGMap + $6 - db $1D, $1D, $1D - - db $03 ; number of tiles - dw vBGMap + $9 - db $1D, $1D, $1D - - db $03 ; number of tiles - dw vBGMap + $C - db $1D, $1D, $1D - - db $03 ; number of tiles - dw vBGMap + $F - db $1D, $1D, $1D - - db $02 ; number of tiles - dw vBGMap + $12 - db $1E, $1B - - db $00 ; terminator - +INCLUDE "engine/pinball_game/object_collision/seel_bonus_resolve_collision.asm" INCLUDE "engine/pinball_game/draw_sprites/draw_seel_bonus_sprites.asm" SECTION "banka", ROMX, BANK[$a] |