summaryrefslogtreecommitdiff
path: root/main.asm
diff options
context:
space:
mode:
Diffstat (limited to 'main.asm')
-rwxr-xr-xmain.asm1089
1 files changed, 14 insertions, 1075 deletions
diff --git a/main.asm b/main.asm
index 5d3a57f..5479b4e 100755
--- a/main.asm
+++ b/main.asm
@@ -14,41 +14,7 @@ INCLUDE "engine/erase_all_data_menu.asm"
INCLUDE "engine/copyright_screen.asm"
INCLUDE "engine/main/stage_init/init_stages.asm"
INCLUDE "engine/main/ball_init/ball_init.asm"
-
-Func_8471: ; 0x8471
- ld a, [wCurrentStage]
- call CallInFollowingTable
-CallTable_8477: ; 0x8477
- ; STAGE_RED_FIELD_TOP
- padded_dab Func_14000
- ; STAGE_RED_FIELD_BOTTOM
- padded_dab Func_1401c
- padded_dab DoNothing_1805f
- padded_dab DoNothing_18060
- ; STAGE_BLUE_FIELD_TOP
- padded_dab Func_1c165
- ; STAGE_BLUE_FIELD_BOTTOM
- padded_dab Func_1c191
- ; STAGE_GENGAR_BONUS
- padded_dab Func_1818b
- ; STAGE_GENGAR_BONUS
- padded_dab Func_1818b
- ; STAGE_MEWTWO_BONUS
- padded_dab Func_19310
- ; STAGE_MEWTWO_BONUS
- padded_dab Func_19310
- ; STAGE_MEOWTH_BONUS
- padded_dab Func_24128
- ; STAGE_MEOWTH_BONUS
- padded_dab Func_24128
- ; STAGE_DIGLETT_BONUS
- padded_dab Func_19a76
- ; STAGE_DIGLETT_BONUS
- padded_dab Func_19a76
- ; STAGE_SEEL_BONUS
- padded_dab Func_25b97
- ; STAGE_SEEL_BONUS
- padded_dab Func_25b97
+INCLUDE "engine/main/load_stage_data/load_stage_data.asm"
Func_84b7: ; 0x84b7
ld a, [wCurrentStage]
@@ -1791,7 +1757,7 @@ GameScreenFunction_StartBall: ; 0xd87f
ld [hHBlankRoutine], a
callba InitBallForStage
callba LoadStageCollisionAttributes
- callba Func_e6c2
+ callba LoadStageData
callba Func_ed5e
call ClearOAMBuffer
callba Func_84b7
@@ -3746,7 +3712,7 @@ FieldVerticalTransition: ; 0xe674
call ClearOAMBuffer
call Func_1129
call LoadStageCollisionAttributes
- call Func_e6c2
+ call LoadStageData
call Func_e5d
call Func_588
ld a, $e4
@@ -3757,7 +3723,8 @@ FieldVerticalTransition: ; 0xe674
ld [hOBP1], a
ret
-Func_e6c2: ; 0xe6c2
+LoadStageData: ; 0xe6c2
+; Loads all stage data, such as graphics, collision attributes, etc.
ld a, [wCurrentStage]
bit 0, a
ld a, $86
@@ -3779,7 +3746,7 @@ Func_e6c2: ; 0xe6c2
call LoadVideoData
xor a
ld [wd7f2], a
- callba Func_8471
+ callba _LoadStageData
ret
StageGfxPointers_GameBoy: ; 0xe6f7
@@ -8345,487 +8312,7 @@ Data_13685: ; 0x13685
SECTION "bank5", ROMX, BANK[$5]
-Func_14000: ; 0x14000
- call Func_14091
- call Func_159f4
- call Func_15450
- call Func_16859
- call Func_14ece
- call Func_14234
- call Func_16425
- call Func_142fc
- call Func_1404a
- ret
-
-Func_1401c: ; 0x1401c
- call Func_14091
- call Func_14377
- call Func_14135
- call Func_asm_1522d
- call Func_14282
- call Func_1414b
- call Func_14234
- call Func_14746
- call Func_14707
- call Func_140f9
- call Func_16878
- call Func_140e2
- call Func_16425
- call Func_142fc
- call Func_1404a
- ret
-
-Func_1404a: ; 0x1404a
- ld a, [wd57d]
- and a
- ret z
- ld a, [hGameBoyColorFlag]
- and a
- ret nz
- ld a, [wd580]
- and a
- ret z
- ld a, $f
- ld [wd581], a
- call Func_1762f
- ld hl, wTimerDigits
- ld a, $ff
- ld [hli], a
- ld [hli], a
- ld [hli], a
- ld [hl], a
- ld hl, wTimerDigits
- ld a, [wTimerMinutes]
- and $f
- call LoadTimerDigitTiles
- ld a, [wTimerSeconds]
- swap a
- and $f
- call LoadTimerDigitTiles
- ld a, [wTimerSeconds]
- and $f
- call LoadTimerDigitTiles
- ld a, e
- srl a
- srl a
- ld d, $90 ; colon
- call LoadTimerDigitTiles
- ret
-
-Func_14091: ; 0x14091
- ld a, $ff
- ld [wd4d7], a
- ld [wd4db], a
- ld a, [wd4b4]
- ld [wd4c5], a
- ld a, [wd4b6]
- ld [wd4c6], a
- ld a, [wBallRotation]
- ld [wd4c7], a
- ld a, [wd503]
- and a
- ret z
- xor a
- ld [wd503], a
- ld a, [wd502]
- res 1, a
- ld [wd502], a
- and $1
- ld c, a
- ld a, [wStageCollisionState]
- and $fe
- or c
- ld [wStageCollisionState], a
- lb de, $00, $07
- call PlaySoundEffect
- ld a, [wCurrentStage]
- bit 0, a
- ret nz
- callba LoadStageCollisionAttributes
- call Func_159f4
- ret
-
-Func_140e2: ; 0x140e2
- ld a, $ff
- ld [wd60e], a
- ld [wd60f], a
- ld a, [wd60c]
- call Func_16f28
- ld a, [wd60d]
- add $14
- call Func_16f28
- ret
-
-Func_140f9: ; 0x140f9
- ld a, [wd4ef]
- and a
- jr z, .asm_1410c
- xor a
- ld a, $66
- ld [wc7e3], a
- ld a, $67
- ld [wc803], a
- ld a, $2
-.asm_1410c
- call Func_149d9
- ld a, [wLeftMapMoveCounter]
- call Func_149f5
- ld a, [wd4f1]
- and a
- jr z, .asm_14127
- ld a, $6a
- ld [wc7f0], a
- ld a, $6b
- ld [wc810], a
- ld a, $2
-.asm_14127
- add $3
- call Func_149d9
- ld a, [wRightMapMoveCounter]
- add $4
- call Func_149f5
- ret
-
-Func_14135: ; 0x14135
- ld bc, $0000
-.asm_14138
- push bc
- ld hl, wIndicatorStates
- add hl, bc
- ld a, [hl]
- res 7, a
- call Func_169cd
- pop bc
- inc c
- ld a, c
- cp $5
- jr nz, .asm_14138
- ret
-
-Func_1414b: ; 0x1414b
- ld a, [wInSpecialMode]
- and a
- ret z
- ld a, [wSpecialMode]
- cp $2
- ret z
- ld a, [wd5c6]
- and a
- jr nz, .asm_14165
- ld a, [wCapturingMon]
- and a
- jr nz, .asm_14165
- jp Func_14210
-
-.asm_14165
- callba Func_141f2
- callba Func_10362
- ld a, [hGameBoyColorFlag]
- and a
- callba nz, Func_10301
- ld a, [wCapturingMon]
- and a
- ret z
- ld a, BANK(PikachuSaverGfx)
- ld hl, PikachuSaverGfx + $c0
- ld de, vTilesOB tile $7e
- ld bc, $0020
- call FarCopyData
- ld a, BANK(BallCaptureSmokeGfx)
- ld hl, BallCaptureSmokeGfx
- ld de, vTilesSH tile $10
- ld bc, $0180
- call FarCopyData
- ld a, [wBallType]
- cp GREAT_BALL
- jr nc, .notPokeball
- ld a, Bank(PinballPokeballShakeGfx)
- ld hl, PinballPokeballShakeGfx
- ld de, vTilesOB tile $38
- ld bc, $0040
- call FarCopyData
- ret
-
-.notPokeball
- cp ULTRA_BALL
- jr nc, .notGreatball
- ld a, Bank(PinballGreatballShakeGfx)
- ld hl, PinballGreatballShakeGfx
- ld de, vTilesOB tile $38
- ld bc, $0040
- call FarCopyData
- ret
-
-.notGreatball
- cp MASTER_BALL
- jr nc, .notUltraball
- ld a, Bank(PinballUltraballShakeGfx)
- ld hl, PinballUltraballShakeGfx
- ld de, vTilesOB tile $38
- ld bc, $0040
- call FarCopyData
- ret
-
-.notUltraball
- ld a, Bank(PinballMasterballShakeGfx)
- ld hl, PinballMasterballShakeGfx
- ld de, vTilesOB tile $38
- ld bc, $0040
- call FarCopyData
- ret
-
-Func_141f2: ; 0x141f2
- ld a, $80
- hlCoord 7, 4, vBGMap
- call Func_14209
- hlCoord 7, 5, vBGMap
- call Func_14209
- hlCoord 7, 6, vBGMap
- call Func_14209
- hlCoord 7, 7, vBGMap
- ; fall through
-
-Func_14209: ; 0x14209
- ld [hli], a
- ld [hli], a
- ld [hli], a
- ld [hli], a
- ld [hli], a
- ld [hli], a
- ret
-
-Func_14210: ; 0x14210
- ld hl, wd586
- ld b, $18
-.asm_14215
- ld a, [hli]
- xor $1
- ld [hli], a
- dec b
- jr nz, .asm_14215
- callba Func_10184
- ld a, [hGameBoyColorFlag]
- and a
- callba nz, Func_102bc
- ret
-
-Func_14234: ; 0x14234
- ld a, [wInSpecialMode]
- and a
- ret z
- ld a, [wSpecialMode]
- cp $1
- ret nz
- ld a, [wd554]
- cp $3
- ret z
- ld a, [wCurrentStage]
- bit 0, a
- jr nz, .asm_1425c
- ld a, BANK(EvolutionTrinketsGfx)
- ld hl, EvolutionTrinketsGfx
- ld de, vTilesSH tile $10
- ld bc, $00e0
- call FarCopyData
- jr .asm_1426a
-
-.asm_1425c
- ld a, BANK(EvolutionTrinketsGfx)
- ld hl, EvolutionTrinketsGfx
- ld de, vTilesOB tile $20
- ld bc, $00e0
- call FarCopyData
-.asm_1426a
- ld a, [wd551]
- and a
- ret z
- ld a, [hGameBoyColorFlag]
- and a
- ret z
- ld a, BANK(PaletteData_dd188)
- ld hl, PaletteData_dd188
- ld de, $0070
- ld bc, $0010
- call Func_6fd
- ret
-
-Func_14282: ; 0x14282
- ld a, [wInSpecialMode]
- and a
- jr z, .asm_1429e
- ld a, [wSpecialMode]
- and a
- jr nz, .asm_14296
- ld a, [wNumMonHits]
- and a
- call nz, Func_142b3
- ret
-
-.asm_14296
- cp $1
- jr nz, .asm_1429e
- call Func_142c3
- ret
-
-.asm_1429e
- ld a, [wd624]
- call Func_174d4
- ld a, BANK(CaughtPokeballGfx)
- ld hl, CaughtPokeballGfx
- ld de, vTilesSH tile $2e
- ld bc, $0020
- call FarCopyData
- ret
-
-Func_142b3: ; 0x142b3
- push af
- callba Func_10611
- pop af
- dec a
- jr nz, Func_142b3
- ret
-
-Func_142c3: ; 0x142c3
- ld de, $0000
- ld a, [wd554]
- and a
- ret z
- ld b, a
-.asm_142cc
- ld a, [wCurrentEvolutionType]
- call Func_142d7
- inc de
- dec b
- jr nz, .asm_142cc
- ret
-
-Func_142d7: ; 0x142d7
- push bc
- push de
- dec a
- ld c, a
- ld b, $0
- swap c
- sla c
- ld hl, EvolutionProgressIconsGfx
- add hl, bc
- swap e
- sla e
- push hl
- ld hl, vTilesSH tile $2e
- add hl, de
- ld d, h
- ld e, l
- pop hl
- ld bc, $0020
- ld a, BANK(EvolutionProgressIconsGfx)
- call FarCopyData
- pop de
- pop bc
- ret
-
-Func_142fc: ; 0x142fc
- ld a, [wd4c8]
- and a
- jr nz, .asm_1430e
- callba LoadBallGfx
- jr .asm_14328
-
-.asm_1430e
- cp $1
- jr nz, .asm_1431e
- callba LoadMiniBallGfx
- jr .asm_14328
-
-.asm_1431e
- callba Func_dd62
-.asm_14328
- ld a, [hGameBoyColorFlag]
- and a
- ret z
- ld a, [wBallType]
- cp GREAT_BALL
- jr nc, .notPokeball
- ld a, BANK(PokeBallObjPalette)
- ld hl, PokeBallObjPalette
- ld de, $0040
- ld bc, $0008
- call Func_6fd
- ret
-
-.notPokeball
- cp ULTRA_BALL
- jr nc, .notGreatball
- ld a, BANK(GreatBallObjPalette)
- ld hl, GreatBallObjPalette
- ld de, $0040
- ld bc, $0008
- call Func_6fd
- ret
-
-.notGreatball
- cp MASTER_BALL
- jr nc, .notUltraball
- ld a, BANK(UltraBallObjPalette)
- ld hl, UltraBallObjPalette
- ld de, $0040
- ld bc, $0008
- call Func_6fd
- ret
-
-.notUltraball
- ld a, BANK(MasterBallObjPalette)
- ld hl, MasterBallObjPalette
- ld de, $0040
- ld bc, $0008
- call Func_6fd
- ret
-
-Func_14377: ; 0x14377
- ld a, [wInSpecialMode]
- and a
- jr nz, .asm_143b1
- ld a, [wd609]
- and a
- jr z, .asm_14393
- ld a, [wd498]
- add $15
- callba Func_30256
- ret
-
-.asm_14393
- ld a, [wd608]
- and a
- jr z, .asm_143a6
- ld a, $1a
- callba Func_30256
- ret
-
-.asm_143a6
- callba Func_30253
- ret
-
-.asm_143b1
- ld a, [wSpecialMode]
- cp $2
- ret nz
- ld a, [wd54d]
- cp $3
- jr nz, .asm_143c9
- callba Func_30253
- ret
-
-.asm_143c9
- ld a, [wd604]
- and a
- ld a, $14
- jr nz, .asm_143d6
- ld a, [wd55a]
- add $12
-.asm_143d6
- callba Func_30256
- ret
-
+INCLUDE "engine/main/load_stage_data/load_red_field.asm"
INCLUDE "engine/collision/red_stage_game_object_collision.asm"
Func_1460e: ; 0x1460e
@@ -18321,12 +17808,7 @@ SECTION "bank6", ROMX, BANK[$6]
INCLUDE "engine/main/stage_init/init_unused_stage.asm"
INCLUDE "engine/main/ball_init/ball_init_unused_stage.asm"
-
-DoNothing_1805f: ; 0x1805f
- ret
-
-DoNothing_18060: ; 0x18060
- ret
+INCLUDE "engine/main/load_stage_data/load_unused_stage.asm"
DoNothing_18061: ; 0x18061
ret
@@ -18353,18 +17835,7 @@ Func_18084: ; 0x18084
INCLUDE "engine/main/stage_init/init_gengar_bonus.asm"
INCLUDE "engine/main/ball_init/ball_init_gengar_bonus.asm"
-
-Func_1818b: ; 0x1818b
- callba Func_142fc
- call Func_2862
- call Func_18d72
- ld a, [wd7c1]
- callba Func_1404a
- and a
- ret z
- call Func_183db
- call Func_18d91
- ret
+INCLUDE "engine/main/load_stage_data/load_gengar_bonus.asm"
CheckGengarBonusStageGameObjectCollisions: ; 0x181b1
call CheckGengarBonusStageGastlyCollision
@@ -20866,16 +20337,7 @@ GengarBonusStageGengarGfxTable:
INCLUDE "engine/main/stage_init/init_mewtwo_bonus.asm"
INCLUDE "engine/main/ball_init/ball_init_mewtwo_bonus.asm"
-
-Func_19310: ; 0x19310
- callba Func_142fc
- call Func_2862
- callba Func_1404a
- ld a, [wd7c1]
- and a
- ret z
- call Func_194ac
- ret
+INCLUDE "engine/main/load_stage_data/load_mewtwo_bonus.asm"
CheckMewtwoBonusStageGameObjectCollisions: ; 0x19330
call Func_19414
@@ -21902,41 +21364,7 @@ OAMIds_199e6:
INCLUDE "engine/main/stage_init/init_diglett_bonus.asm"
INCLUDE "engine/main/ball_init/ball_init_diglett_bonus.asm"
-
-Func_19a76: ; 0x19a76
- callba Func_142fc
- call Func_2862
- ld a, [wd7c1]
- and a
- ret z
- call Func_19bbd
- call Func_19a96
- ld a, [wDugrioState]
- and a
- call nz, Func_1ac2c
- ret
-
-Func_19a96: ; 0x19a96
- ld hl, wDiglettStates
- ld bc, NUM_DIGLETTS << 8
-.asm_19a9c
- ld a, [hli]
- and a
- jr z, .asm_19aae
- push bc
- push hl
- push af
- call Func_19da8
- pop af
- cp $6
- call c, Func_19dcd
- pop hl
- pop bc
-.asm_19aae
- inc c
- dec b
- jr nz, .asm_19a9c
- ret
+INCLUDE "engine/main/load_stage_data/load_diglett_bonus.asm"
CheckDiglettBonusStageGameObjectCollisions: ; 0x19ab3
call CheckDiglettBonusStageDiglettHeadsCollision
@@ -22872,482 +22300,7 @@ SECTION "bank7", ROMX, BANK[$7]
INCLUDE "engine/main/stage_init/init_blue_field.asm"
INCLUDE "engine/main/ball_init/ball_init_blue_field.asm"
-
-Func_1c165: ; 0x1c165
- call asm_1e475
- call Func_1cb43
- call Func_1c3ee
- call Func_1e8f6
- callba Func_142fc
- ld a, $1
- ld [wd640], a
- call Func_1f18a
- callba Func_1404a
- call Func_1c203
- ret
-
-Func_1c191: ; 0x1c191
- call Func_1c1db
- call Func_1c4b6
- call Func_1c2cb
- call Func_1e627
- call Func_1c43c
- call Func_1c305
- call Func_1c3ee
- callba Func_14746
- callba Func_14707
- call Func_1c235
- call Func_1c21e
- call Func_1e8f6
- callba Func_142fc
- callba Func_1404a
- call Func_1c203
- ret
-
-Func_1c1db: ; 0x1c1db
- ld a, [wd641]
- cp $0
- ret z
- ld a, $1
- ld [wd640], a
- ld a, $0
- ld [wd641], a
- ld a, [wBlueStageForceFieldDirection]
- cp $2 ; down direction
- ret nz
- ld a, $0
- ld [wBlueStageForceFieldDirection], a
- ld a, $1 ; right direction
- ld [wd64a], a
- xor a
- ld [wd649], a
- ld [wd648], a
- ret
-
-Func_1c203: ; 0x1c203
- ld a, $ff
- ld [wd4d7], a
- ld [wd4db], a
- ld a, [wd4b4]
- ld [wd4c5], a
- ld a, [wd4b6]
- ld [wd4c6], a
- ld a, [wBallRotation]
- ld [wd4c7], a
- ret
-
-Func_1c21e: ; 0x1c21e
- ld a, $ff
- ld [wd60e], a
- ld [wd60f], a
- ld a, [wd60c]
- call Func_1d5f2
- ld a, [wd60d]
- add $14
- call Func_1d5f2
- ret
-
-Func_1c235: ; 0x1c235
- ld a, [wLeftMapMoveDiglettAnimationCounter]
- and a
- jr z, .asm_1c249
- ld a, $54
- ld [wc7e3], a
- ld a, $55
- ld [wc803], a
- ld a, $1
- jr .asm_1c24a
-
-.asm_1c249
- xor a
-.asm_1c24a
- call Func_1de4b
- ld a, [wLeftMapMoveCounter]
- call Func_1de6f
- ld a, [hGameBoyColorFlag]
- and a
- jr z, .asm_1c267
- ld a, [wLeftMapMoveCounter]
- cp $0
- jr z, .asm_1c264
- ld b, $7
- add b
- jr .asm_1c269
-
-.asm_1c264
- xor a
- jr .asm_1c269
-
-.asm_1c267
- ld a, $8
-.asm_1c269
- call Func_1de6f
- ld a, [wRightMapMoveDiglettFrame]
- and a
- jr z, .asm_1c295
- ld a, $52
- ld [wc7f0], a
- ld a, $53
- ld [wc810], a
- ld a, [wd644]
- and a
- jr z, .asm_1c28a
- ld a, [wd55a]
- and a
- jr nz, .asm_1c2bd
- jr .asm_1c291
-
-.asm_1c28a
- ld a, [wRightMapMoveCounter]
- add $3
- jr .asm_1c297
-
-.asm_1c291
- ld a, $3
- jr .asm_1c297
-
-.asm_1c295
- ld a, $2
-.asm_1c297
- call Func_1de4b
- ld a, [wRightMapMoveCounter]
- add $4
- call Func_1de6f
- ld a, [hGameBoyColorFlag]
- and a
- jr z, .asm_1c2b7
- ld a, [wRightMapMoveCounter]
- cp $0
- jr z, .asm_1c2b3
- ld b, $a
- add b
- jr .asm_1c2b9
-
-.asm_1c2b3
- ld a, $4
- jr .asm_1c2b9
-
-.asm_1c2b7
- ld a, $9
-.asm_1c2b9
- call Func_1de6f
- ret
-
-.asm_1c2bd
- ld a, $6
- call Func_1de4b
- ld a, [wRightMapMoveCounter]
- add $4
- call Func_1de6f
- ret
-
-Func_1c2cb: ; 0x1c2cb
- ld a, [wCurrentStage]
- bit 0, a
- ret z
- ld bc, $0000
-.asm_1c2d4
- push bc
- ld hl, wIndicatorStates
- add hl, bc
- ld a, [hl]
- res 7, a
- call Func_1eb41
- pop bc
- inc c
- ld a, c
- cp $2
- jr nz, .asm_1c2d4
- ld bc, $0002
-.asm_1c2e9
- push bc
- ld hl, wIndicatorStates
- add hl, bc
- ld a, [hl]
- 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_1c2e9
- ret
-
-Func_1c305: ; 0x1c305
- ld a, [wInSpecialMode]
- and a
- ret z
- ld a, [wSpecialMode]
- cp $2
- ret z
- ld a, [wd5c6]
- and a
- jr nz, .asm_1c31f
- ld a, [wCapturingMon]
- and a
- jr nz, .asm_1c31f
- jp Func_1c3ca
-
-.asm_1c31f
- callba Func_1c3ac
- callba Func_10362
- ld a, [hGameBoyColorFlag]
- and a
- callba nz, Func_10301
- ld a, [wCapturingMon]
- and a
- ret z
- ld a, BANK(PikachuSaverGfx)
- ld hl, PikachuSaverGfx + $c0
- ld de, vTilesOB tile $7e
- ld bc, $0020
- call FarCopyData
- ld a, BANK(StageSharedPikaBoltGfx)
- ld hl, BallCaptureSmokeGfx
- ld de, vTilesSH tile $10
- ld bc, $0180
- call FarCopyData
- ld a, [wBallType]
- cp GREAT_BALL
- jr nc, .notPokeball
- ld a, Bank(PinballPokeballShakeGfx)
- ld hl, PinballPokeballShakeGfx
- ld de, vTilesOB tile $38
- ld bc, $0040
- call FarCopyData
- ret
-
-.notPokeball
- cp ULTRA_BALL
- jr nc, .notGreatball
- ld a, Bank(PinballGreatballShakeGfx)
- ld hl, PinballGreatballShakeGfx
- ld de, vTilesOB tile $38
- ld bc, $0040
- call FarCopyData
- ret
-
-.notGreatball
- cp MASTER_BALL
- jr nc, .notUltraBall
- ld a, Bank(PinballUltraballShakeGfx)
- ld hl, PinballUltraballShakeGfx
- ld de, vTilesOB tile $38
- ld bc, $0040
- call FarCopyData
- ret
-
-.notUltraBall
- ld a, Bank(PinballMasterballShakeGfx)
- ld hl, PinballMasterballShakeGfx
- ld de, vTilesOB tile $38
- ld bc, $0040
- call FarCopyData
- ret
-
-Func_1c3ac: ; 0x1c3ac
- ld a, $80
- hlCoord 7, 4, vBGMap
- call Func_1c3c3
- hlCoord 7, 5, vBGMap
- call Func_1c3c3
- hlCoord 7, 6, vBGMap
- call Func_1c3c3
- hlCoord 7, 7, vBGMap
- ; fall through
-
-Func_1c3c3: ; 0x1c3c3
- ld [hli], a
- ld [hli], a
- ld [hli], a
- ld [hli], a
- ld [hli], a
- ld [hli], a
- ret
-
-Func_1c3ca: ; 0x1c3ca
- ld hl, wd586
- ld b, $18
-.asm_1c3cf
- ld a, [hli]
- xor $1
- ld [hli], a
- dec b
- jr nz, .asm_1c3cf
- callba Func_10184
- ld a, [hGameBoyColorFlag]
- and a
- callba nz, Func_102bc
- ret
-
-Func_1c3ee: ; 0x1c3ee
- ld a, [wInSpecialMode]
- and a
- ret z
- ld a, [wSpecialMode]
- cp $1
- ret nz
- ld a, [wd554]
- cp $3
- ret z
- ld a, [wCurrentStage]
- bit 0, a
- jr nz, .asm_1c416
- ld a, BANK(EvolutionTrinketsGfx)
- ld hl, EvolutionTrinketsGfx
- ld de, vTilesOB tile $60
- ld bc, $00e0
- call FarCopyData
- jr .asm_1c424
-
-.asm_1c416
- ld a, BANK(EvolutionTrinketsGfx)
- ld hl, EvolutionTrinketsGfx
- ld de, vTilesOB tile $20
- ld bc, $00e0
- call FarCopyData
-.asm_1c424
- ld a, [wd551]
- and a
- ret z
- ld a, [hGameBoyColorFlag]
- and a
- ret z
- ld a, BANK(PaletteData_dd188)
- ld hl, PaletteData_dd188
- ld de, $0070
- ld bc, $0010
- call Func_6fd
- ret
-
-Func_1c43c: ; 0x1c43c
- ld a, [wInSpecialMode]
- and a
- jr z, .asm_1c458
- ld a, [wSpecialMode]
- and a
- jr nz, .asm_1c450
- ld a, [wNumMonHits]
- and a
- call nz, Func_1c46d
- ret
-
-.asm_1c450
- cp $1
- jr nz, .asm_1c458
- call Func_1c47d
- ret
-
-.asm_1c458
- ld a, [wd624]
- call Func_1f265
- ld a, BANK(CaughtPokeballGfx)
- ld hl, CaughtPokeballGfx
- ld de, vTilesSH tile $2e
- ld bc, $0020
- call FarCopyData
- ret
-
-Func_1c46d: ; 0x1c46d
- push af
- callba Func_10611
- pop af
- dec a
- jr nz, Func_1c46d
- ret
-
-Func_1c47d: ; 0x1c47d
- ld de, $0000
- ld a, [wd554]
- and a
- ret z
- ld b, a
-.asm_1c486
- ld a, [wCurrentEvolutionType]
- call Func_1c491
- inc de
- dec b
- jr nz, .asm_1c486
- ret
-
-Func_1c491: ; 0x1c491
- push bc
- push de
- dec a
- ld c, a
- ld b, $0
- swap c
- sla c
- ld hl, EvolutionProgressIconsGfx
- add hl, bc
- swap e
- sla e
- push hl
- ld hl, vTilesSH tile $2e
- add hl, de
- ld d, h
- ld e, l
- pop hl
- ld bc, $0020
- ld a, BANK(EvolutionProgressIconsGfx)
- call FarCopyData
- pop de
- pop bc
- ret
-
-Func_1c4b6: ; 0x1c4b6
- ld a, [wInSpecialMode]
- and a
- jr nz, .asm_1c4f0
- ld a, [wd609]
- and a
- jr z, .asm_1c4d2
- ld a, [wd498]
- add $15
- callba Func_30256
- ret
-
-.asm_1c4d2
- ld a, [wd608]
- and a
- jr z, .asm_1c4e5
- ld a, $1a
- callba Func_30256
- ret
-
-.asm_1c4e5
- callba Func_30253
- ret
-
-.asm_1c4f0
- ld a, [wSpecialMode]
- cp $2
- ret nz
- ld a, [wd54d]
- cp $3
- jr nz, .asm_1c508
- callba Func_30253
- ret
-
-.asm_1c508
- ld a, [wd604]
- and a
- ld a, $14
- jr nz, .asm_1c515
- ld a, [wd55a]
- add $12
-.asm_1c515
- callba Func_30256
- ret
-
+INCLUDE "engine/main/load_stage_data/load_blue_field.asm"
INCLUDE "engine/collision/blue_stage_game_object_collision.asm"
Func_1c715: ; 0x1c715
@@ -33928,14 +32881,7 @@ SECTION "bank9", ROMX, BANK[$9]
INCLUDE "engine/main/stage_init/init_meowth_bonus.asm"
INCLUDE "engine/main/ball_init/ball_init_meowth_bonus.asm"
-
-Func_24128: ; 0x24128
- callba Func_142fc
- call Func_2862
- callba Func_24fa3
- call Func_24516
- callba Func_1404a
- ret
+INCLUDE "engine/main/load_stage_data/load_meowth_bonus.asm"
CheckMeowthBonusStageGameObjectCollisions: ; 0x2414d
call CheckMeowthBonusStageMeowthCollision
@@ -38055,14 +37001,7 @@ OAMIds_25a7a: ; 0x25a7a
INCLUDE "engine/main/stage_init/init_seel_bonus.asm"
INCLUDE "engine/main/ball_init/ball_init_seel_bonus.asm"
-
-Func_25b97: ; 0x25b97
- callba Func_142fc
- call Func_2862
- callba Func_262f4
- call Func_25d0e
- callba Func_1404a
- ret
+INCLUDE "engine/main/load_stage_data/load_seel_bonus.asm"
CheckSeelBonusStageGameObjectCollisions: ; 0x25bbc
call CheckSeelBonusStageSeelHeadCollisions