summaryrefslogtreecommitdiff
path: root/main.asm
diff options
context:
space:
mode:
Diffstat (limited to 'main.asm')
-rwxr-xr-xmain.asm25979
1 files changed, 7 insertions, 25972 deletions
diff --git a/main.asm b/main.asm
index f69a8ef..a3f0fd5 100755
--- a/main.asm
+++ b/main.asm
@@ -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]