summaryrefslogtreecommitdiff
path: root/main.asm
diff options
context:
space:
mode:
Diffstat (limited to 'main.asm')
-rwxr-xr-xmain.asm2132
1 files changed, 15 insertions, 2117 deletions
diff --git a/main.asm b/main.asm
index 5479b4e..eb9f1c3 100755
--- a/main.asm
+++ b/main.asm
@@ -15,43 +15,10 @@ INCLUDE "engine/copyright_screen.asm"
INCLUDE "engine/main/stage_init/init_stages.asm"
INCLUDE "engine/main/ball_init/ball_init.asm"
INCLUDE "engine/main/load_stage_data/load_stage_data.asm"
-
-Func_84b7: ; 0x84b7
- ld a, [wCurrentStage]
- call CallInFollowingTable
-PointerTable_84bd: ; 0x84bd
- ; STAGE_RED_FIELD_TOP
- padded_dab Func_1755c
- ; STAGE_RED_FIELD_BOTTOM
- padded_dab Func_1757e
- padded_dab Func_18079
- padded_dab Func_18084
- ; STAGE_BLUE_FIELD_TOP
- padded_dab Func_1f330
- ; STAGE_BLUE_FIELD_BOTTOM
- padded_dab Func_1f35a
- ; STAGE_GENGAR_BONUS
- padded_dab Func_18faf
- ; STAGE_GENGAR_BONUS
- padded_dab Func_18faf
- ; STAGE_MEWTWO_BONUS
- padded_dab Func_1994e
- ; STAGE_MEWTWO_BONUS
- padded_dab Func_1994e
- ; STAGE_MEOWTH_BONUS
- padded_dab Func_2583b
- ; STAGE_MEOWTH_BONUS
- padded_dab Func_2583b
- ; STAGE_DIGLETT_BONUS
- padded_dab Func_1ac98
- ; STAGE_DIGLETT_BONUS
- padded_dab Func_1ac98
- ; STAGE_SEEL_BONUS
- padded_dab Func_26b7e
- ; STAGE_SEEL_BONUS
- padded_dab Func_26b7e
+INCLUDE "engine/main/draw_sprites/draw_sprites.asm"
Func_84fd:
+; unused?
ld a, [hGameBoyColorFlag]
and a
jr z, .not_cgb
@@ -1760,7 +1727,7 @@ GameScreenFunction_StartBall: ; 0xd87f
callba LoadStageData
callba Func_ed5e
call ClearOAMBuffer
- callba Func_84b7
+ callba DrawSpritesForStage
ld a, [wd849]
and a
call nz, Func_e5d
@@ -1853,7 +1820,7 @@ GameScreenFunction_HandleBallPhysics: ; 0xd909
.skip_collision
call MoveBallPosition
callba CheckStageTransition
- callba Func_84b7
+ callba DrawSpritesForStage
call Func_33e3
ld a, [wd5cb]
and a
@@ -1914,7 +1881,7 @@ GameScreenFunction_HandleBallLoss: ; 0xda36
ld a, [wCurrentStage]
bit 0, a
callba nz, HandleFlippers
- callba Func_84b7
+ callba DrawSpritesForStage
call Func_33e3
callba Func_85c7
ld a, [wd5ca]
@@ -3696,7 +3663,7 @@ FieldVerticalTransition: ; 0xe674
xor a
ld [wd548], a
ld [wd803], a
- callba Func_84b7
+ callba DrawSpritesForStage
call CleanOAMBuffer
pop af
ld [wd548], a
@@ -4195,7 +4162,7 @@ Func_ed8e: ; 0xed8e
ld a, $3
ld hl, HandleFlippers
call nz, BankSwitch
- callba Func_84b7
+ callba DrawSpritesForStage
call Func_33e3
call CleanOAMBuffer
rst AdvanceFrame
@@ -17044,765 +17011,7 @@ TileData_17551: ; 0x17551
db $AE, $AF, $AE, $AF, $AE, $AF
db $00
-Func_1755c: ; 0x1755c
- ld bc, $7f00
- call DrawTimer
- call Func_17cc4
- call Func_17d34
- call Func_17d59
- call Func_17d7a
- call Func_17d92
- call Func_17de1
- call DrawPinball
- call Func_17efb
- call Func_17f64
- ret
-
-Func_1757e: ; 0x1757e
- ld bc, $7f00
- call DrawTimer
- call DrawMonCaptureAnimation
- call DrawAnimatedMon_RedStage
- call DrawPikachuSavers_RedStage
- callba DrawFlippers
- call DrawPinball
- call Func_17f0f
- call Func_17f75
- call Func_17fca
- ret
-
-DrawTimer: ; 0x175a4
- ld a, [wd57d]
- and a
- ret z
- ld a, [hGameBoyColorFlag]
- and a
- jr nz, DrawTimer_GameBoyColor
- ld a, [wd580]
- and a
- ret z
- ld a, [wd581]
- and a
- jr z, .DrawTimer_GameBoy
- dec a
- ld [wd581], a
- ret
-
-.DrawTimer_GameBoy
- call Func_1762f
- 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 d, $0
- ld hl, TimerOAMIds
- add hl, de
- ld a, [hli]
- call DrawTimerDigit
- ld a, [hli]
- call DrawTimerDigit
- ld a, [hli]
- call DrawTimerDigit
- ld a, [hli]
- call DrawTimerDigit
- ret
-
-DrawTimer_GameBoyColor: ; 0x175f5
-; Loads the OAM data for the timer in the top-right corner of the screen.
- ld a, [wTimerMinutes]
- and $f
- call DrawTimerDigit_GameBoyColor
- ld a, $a ; colon
- call DrawTimerDigit_GameBoyColor
- ld a, [wTimerSeconds]
- swap a
- and $f
- call DrawTimerDigit_GameBoyColor ; tens digit of the minutes
- ld a, [wTimerSeconds]
- and $f
- call DrawTimerDigit_GameBoyColor ; ones digit of the minutes
- ret
-
-TimerOAMIds:
- db $d7, $da, $d8, $d9
- db $dc, $df, $dd, $de
- db $dc, $db, $dd, $de
- db $f5, $f8, $f6, $f7
-
-DrawTimerDigit_GameBoyColor: ; 0x17625
- add $b1 ; the timer digits' OAM ids start at $b1
-DrawTimerDigit: ; 0x17627
- call LoadOAMData
- ld a, b
- add $8
- ld b, a
- ret
-
-Func_1762f: ; 0x1762f
- lb de, $60, $0c
- ld a, [wCurrentStage]
- cp $6
- ret nc
- lb de, $00, $00
- bit 0, a
- ret z
- lb de, $30, $04
- ld a, [wInSpecialMode]
- and a
- ret z
- ld a, [wSpecialMode]
- and a
- ret nz
- lb de, $30, $08
- ret
-
-LoadTimerDigitTiles: ; 0x1764f
- push bc
- push de
- cp [hl]
- jr z, .skip
- push af
- push hl
- add d
- call Func_17665
- pop hl
- pop af
- ld [hl], a
-.skip
- inc hl
- pop de
- ld a, d
- add $10
- ld d, a
- pop bc
- ret
-
-Func_17665: ; 0x17665
- ld c, a
- ld b, $0
- sla c
- rl b
- ld hl, TimerDigitsTileData
- add hl, bc
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld a, Bank(TimerDigitsTileData)
- call Func_10aa
- ret
-
-INCLUDE "data/timer_digits_tiledata.asm"
-
-DrawMonCaptureAnimation: ; 0x17c67
- ld a, [wCapturingMon]
- and a
- ret z
- ld a, $50
- ld hl, hSCX
- sub [hl]
- ld b, a
- ld a, $38
- ld hl, hSCY
- sub [hl]
- ld c, a
- ld a, [wBallCaptureAnimationFrame]
- ld e, a
- ld d, $0
- ld hl, BallCaptureAnimationOAMIds
- add hl, de
- ld a, [hl]
- call LoadOAMData
- ret
-
-BallCaptureAnimationOAMIds:
- db $19, $1A, $1B, $1C, $1D, $1E, $1F, $20, $21, $22, $23, $24, $25
-
-DrawAnimatedMon_RedStage: ; 0x17c96
- ld a, [wWildMonIsHittable]
- and a
- ret z
- ld a, $50
- ld hl, hSCX
- sub [hl]
- ld b, a
- ld a, $3e
- ld hl, hSCY
- sub [hl]
- ld c, a
- ld a, [wd5bd]
- ld e, a
- ld d, $0
- ld hl, AnimatedMonOAMIds_RedStage
- add hl, de
- ld a, [hl]
- call LoadOAMData
- ret
-
-AnimatedMonOAMIds_RedStage:
- db $26, $27, $28, $29, $2A, $2B, $2C, $2D, $2E, $2F, $30, $31
-
-Func_17cc4: ; 0x17cc4
- ld de, wd4cd
- ld hl, OAMData_17d15
- call Func_17cdc
- ld de, wd4d0
- ld hl, OAMData_17d1b
- call Func_17cdc
- ld de, wd4d3
- ld hl, OAMData_17d21
- ; fall through
-
-Func_17cdc: ; 0x17cdc
- push hl
- ld hl, AnimationData_17d27
- call UpdateAnimation
- ld h, d
- ld l, e
- ld a, [hl]
- and a
- jr nz, .asm_17cf6
- call GenRandom
- and $7
- add $1e
- ld [hli], a
- ld a, $1
- ld [hli], a
- xor a
- ld [hl], a
-.asm_17cf6
- pop hl
- inc de
- ld a, [hSCX]
- ld b, a
- ld a, [hli]
- sub b
- ld b, a
- ld a, [hSCY]
- ld c, a
- ld a, [hli]
- sub c
- ld c, a
- ld a, [wd4d7]
- sub [hl]
- inc hl
- jr z, .asm_17d0c
- ld a, [de]
-.asm_17d0c
- ld e, a
- ld d, $0
- add hl, de
- ld a, [hl]
- call LoadOAMData
- ret
-
-OAMData_17d15:
- db $3A, $4E ; x, y offsets
- db $00 ; ???
- db $BD, $BC, $CE ; oam ids
-
-OAMData_17d1b:
- db $53, $44 ; x, y offsets
- db $01 ; ???
- db $BD, $BC, $CD ; oam ids
-
-OAMData_17d21:
- db $4D, $60 ; x, y offsets
- db $02 ; ???
- db $BD, $BC, $CF ; oam ids
-
-AnimationData_17d27:
-; Each entry is [duration][OAM id]
- db $1E, $01
- db $02, $02
- db $03, $01
- db $02, $02
- db $03, $01
- db $02, $02
- db $00 ; terminator
-
-Func_17d34: ; 0x17d34
- ld a, $0
- ld hl, hSCX
- sub [hl]
- ld b, a
- ld a, $10
- ld hl, hSCY
- sub [hl]
- ld c, a
- ld a, [wStageCollisionState]
- ld e, a
- ld d, $0
- ld hl, OAMIds_17d51
- add hl, de
- ld a, [hl]
- call LoadOAMData
- ret
-
-OAMIds_17d51:
- db $C9
- db $C9
- db $C9
- db $C9
- db $C8
- db $C8
- db $CA
- db $CA
-
-Func_17d59: ; 0x17d59
- ld a, $74
- ld hl, hSCX
- sub [hl]
- ld b, a
- ld a, $52
- ld hl, hSCY
- sub [hl]
- ld c, a
- ld a, [wBellsproutAnimationFrame]
- ld e, a
- ld d, $0
- ld hl, BellsproutAnimationOAMIds
- add hl, de
- ld a, [hl]
- call LoadOAMData
- ret
-
-BellsproutAnimationOAMIds: ; 0x17d76
- db $BE
- db $BF
- db $C0
- db $C1
-
-Func_17d7a: ; 0x17d7a
- ld a, [hGameBoyColorFlag]
- and a
- ret z
- ld a, $67
- ld hl, hSCX
- sub [hl]
- ld b, a
- ld a, $54
- ld hl, hSCY
- sub [hl]
- ld c, a
- ld a, $cc
- call LoadOAMData
- ret
-
-Func_17d92: ; 0x17d92
- ld a, [hGameBoyColorFlag]
- and a
- ret z
- ld hl, AnimationData_17dd0
- ld de, wd504
- call UpdateAnimation
- ld a, [wd504]
- and a
- jr nz, .asm_17db1
- ld a, $13
- ld [wd504], a
- xor a
- ld [wd505], a
- ld [wd506], a
-.asm_17db1
- ld a, $2b
- ld hl, hSCX
- sub [hl]
- ld b, a
- ld a, $69
- ld hl, hSCY
- sub [hl]
- ld c, a
- ld a, [wd505]
- ld e, a
- ld d, $0
- ld hl, OAMIds_17dce
- add hl, de
- ld a, [hl]
- call LoadOAMData
- ret
-
-OAMIds_17dce: ; 0x17dce
- db $CB
- db $D0
-
-AnimationData_17dd0:
-; Each entry is [duration][OAM id]
- db $14, $00
- db $13, $01
- db $15, $00
- db $12, $01
- db $14, $00
- db $13, $01
- db $16, $00
- db $13, $01
- db $0 ; terminator
-
-Func_17de1: ; 0x17de1
- ld a, $88
- ld hl, hSCX
- sub [hl]
- ld b, a
- ld a, $5a
- ld hl, hSCY
- sub [hl]
- ld c, a
- ld a, [wd50a]
- srl a
- srl a
- ld e, a
- ld d, $0
- ld hl, OAMIds_17e02
- add hl, de
- ld a, [hl]
- call LoadOAMData
- ret
-
-OAMIds_17e02: ; 0x17e02
- db $C2
- db $C3
- db $C4
- db $C5
- db $C6
- db $C7
-
-DrawPikachuSavers_RedStage: ; 0x17e08
- ld a, [hSCX]
- ld d, a
- ld a, [hSCY]
- ld e, a
- ld a, [wd51d]
- and a
- ld a, [wd518]
- jr z, .asm_17e33
- ld a, [wd51c]
- and a
- jr nz, .asm_17e29
- ld a, [hNumFramesDropped]
- srl a
- srl a
- srl a
- and $1
- jr .asm_17e33
-
-.asm_17e29
- ld a, [wd4b4]
- cp $50
- ld a, $1
- jr nc, .asm_17e33
- xor a
-.asm_17e33
- sla a
- ld c, a
- ld b, $0
- ld hl, PikachuSaverOAMOffsets_RedStage
- add hl, bc
- ld a, [hli]
- sub d
- ld b, a
- ld a, [hli]
- sub e
- ld c, a
- ld a, [wPikachuSaverAnimationFrame]
- add $e
- call LoadOAMData
- ret
-
-PikachuSaverOAMOffsets_RedStage:
- dw $7E0F
- dw $7E92
-
-Func_17e4f: ; 0x17e4f
-; unused
- ld hl, UnusedData_7e55
- jp Func_17e5e
-
-UnusedData_7e55: ; 0x17e55
- db $00, $2B, $69, $CB, $00, $67, $54, $CC
- db $FF
-
-Func_17e5e: ; 0x17e5e
-; unused
- ld a, [hGameBoyColorFlag]
- ld e, a
- ld a, [hSCX]
- ld d, a
-.asm_17e64
- ld a, [hli]
- cp $ff
- ret z
- or e
- jr nz, .asm_17e70
- inc hl
- inc hl
- inc hl
- jr .asm_17e64
-.asm_17e70
- ld a, [hli]
- sub d
- ld b, a
- ld a, [hSCY]
- ld c, a
- ld a, [hli]
- sub c
- ld c, a
- ld a, [hli]
- bit 0, e
- call nz, LoadOAMData
- jr .asm_17e64
-
-DrawPinball: ; 0x17e81
- ld a, [wd548]
- and a
- ret z
- ld hl, wBallSpin
- ld a, [wBallRotation]
- add [hl]
- ld [wBallRotation], a
- ld a, [wBallXPos + 1]
- inc a
- ld hl, hSCX
- sub [hl]
- ld b, a
- ld a, [wBallYPos + 1]
- inc a
- sub $10
- ld hl, hSCY
- sub [hl]
- ld c, a
- ld a, [wBallRotation]
- srl a
- srl a
- srl a ; divide wBallRotation by 8 because
- srl a ; there are 8 frames of the ball spinning
- and $7
- add $0
- call LoadOAMData
- ld a, [hGameBoyColorFlag]
- and a
- ret nz
- ld a, [hGameBoyColorFlag]
- and a
- ret nz
- ld a, [hSGBFlag]
- and a
- ret nz
- ld a, [wd4c5]
- inc a
- ld hl, hSCX
- sub [hl]
- ld b, a
- ld a, [wd4c6]
- inc a
- sub $10
- ld hl, hSCY
- sub [hl]
- ld c, a
- ld a, [wd4c7]
- srl a
- srl a
- srl a
- srl a
- and $7
- add $0
- call LoadOAMData
- ld a, [wBallXPos + 1]
- ld [wd4c5], a
- ld a, [wBallYPos + 1]
- ld [wd4c6], a
- ld a, [wBallRotation]
- ld [wd4c7], a
- ret
-
-Func_17efb: ; 0x17efb
- ld a, [wd551]
- and a
- ret nz
- ld a, [hNumFramesDropped]
- bit 4, a
- ret z
- ld de, wIndicatorStates + 5
- ld hl, OAMData_17f3a
- ld b, $6
- jr asm_17f21
-
-Func_17f0f: ; 0x17f0f
- ld a, [wd551]
- and a
- ret nz
- ld a, [hNumFramesDropped]
- bit 4, a
- ret z
- ld de, wIndicatorStates + 11
- ld hl, OAMData_17f4c
- ld b, $8
-asm_17f21: ; 0x17f21
- push bc
- ld a, [hSCX]
- ld b, a
- ld a, [hli]
- sub b
- ld b, a
- ld a, [hSCY]
- ld c, a
- ld a, [hli]
- sub c
- ld c, a
- ld a, [de]
- and a
- ld a, [hli]
- call nz, LoadOAMData
- pop bc
- inc de
- dec b
- jr nz, asm_17f21
- ret
-
-OAMData_17f3a:
- db $0D, $37 ; x, y offsets
- db $D1 ; oam id
-
- db $46, $22 ; x, y offsets
- db $D6 ; oam id
-
- db $8A, $4A ; x, y offsets
- db $D2 ; oam id
-
- db $41, $81 ; x, y offsets
- db $D3 ; oam id
-
- db $3D, $65 ; x, y offsets
- db $D5 ; oam id
-
- db $73, $74 ; x, y offsets
- db $D4 ; oam id
-
-OAMData_17f4c:
- db $2D, $13 ; x, y offsets
- db $32 ; oam id
-
- db $6A, $13 ; x, y offsets
- db $33 ; oam id
-
- db $25, $2D ; x, y offsets
- db $34 ; oam id
-
- db $73, $2D ; x, y offsets
- db $35 ; oam id
-
- db $0F, $40 ; x, y offsets
- db $36 ; oam id
-
- db $1F, $40 ; x, y offsets
- db $36 ; oam id
-
- db $79, $40 ; x, y offsets
- db $37 ; oam id
-
- db $89, $40 ; x, y offsets
- db $37 ; oam id
-
-Func_17f64: ; 0x17f64
- ld a, [wd551]
- and a
- ret z
- ld de, wd566
- ld hl, OAMOffsets_17fa6
- ld b, $c
- ld c, $39
- jr asm_17f84
-
-Func_17f75: ; 0x17f75
- ld a, [wd551]
- and a
- ret z
- ld de, wd572
- ld hl, OAMOffsets_17fbe
- ld b, $6
- ld c, $40
-asm_17f84: ; 0x17f84
- push bc
- ld a, [de]
- add c
- cp c
- push af
- ld a, [hSCX]
- ld b, a
- ld a, [hli]
- sub b
- ld b, a
- ld a, [hSCY]
- ld c, a
- ld a, [hli]
- sub c
- ld c, a
- ld a, [hNumFramesDropped]
- and $e
- jr nz, .asm_17f9c
- dec c
-.asm_17f9c
- pop af
- call nz, LoadOAMData
- pop bc
- inc de
- dec b
- jr nz, asm_17f84
- ret
-
-OAMOffsets_17fa6:
-; x, y offsets
- db $4C, $0C
- db $32, $12
- db $66, $12
- db $19, $25
- db $7F, $25
- db $1E, $36
- db $7F, $36
- db $0E, $65
- db $8B, $65
- db $49, $7A
- db $59, $7A
- db $71, $7A
-
-OAMOffsets_17fbe:
-; x, y offsets
- db $3D, $13
- db $5B, $13
- db $31, $17
- db $67, $17
- db $2E, $2C
- db $6A, $2C
-
-Func_17fca: ; 0x17fca
- ld a, [wd604]
- and a
- ret z
- ld a, [wd606]
- inc a
- ld [wd606], a
- ld a, $40
- ld hl, hSCX
- sub [hl]
- ld b, a
- ld a, $1
- ld hl, hSCY
- sub [hl]
- ld c, a
- ld a, [wd606]
- srl a
- srl a
- srl a
- and $3
- add $4f
- cp $52
- call nz, LoadOAMData
- ret
+INCLUDE "engine/main/draw_sprites/draw_red_field_sprites.asm"
SECTION "bank6", ROMX, BANK[$6]
@@ -17824,15 +17033,7 @@ Func_1806e: ; 0x1806e
callba Func_1652d
ret
-Func_18079: ; 0x18079
- callba DrawPinball
- ret
-
-Func_18084: ; 0x18084
- callba DrawFlippers
- callba DrawPinball
- ret
-
+INCLUDE "engine/main/draw_sprites/draw_unused_stage_sprites.asm"
INCLUDE "engine/main/stage_init/init_gengar_bonus.asm"
INCLUDE "engine/main/ball_init/ball_init_gengar_bonus.asm"
INCLUDE "engine/main/load_stage_data/load_gengar_bonus.asm"
@@ -19972,369 +19173,7 @@ TileData_18f93: ; 0x18f93
db $00 ; terminator
-Func_18faf: ; 0x18faf
- ld bc, $7f00
- callba DrawTimer
- call Func_19020
- call Func_190b9
- call Func_19185
- callba DrawFlippers
- callba DrawPinball
- ret
-
-Func_18fda:
- ld a, [hNewlyPressedButtons]
- bit 6, a
- ret z
- ld a, [wd659]
- and a
- jr z, .asm_18ff8
- ld a, $1
- ld [wd67e], a
- ld [wd687], a
- xor a
- ld [wd659], a
- ld [wd662], a
- ld [wd66b], a
- ret
-
-.asm_18ff8
- ld a, [wd67e]
- and a
- jr z, .asm_1900b
- ld a, $1
- ld [wd698], a
- xor a
- ld [wd67e], a
- ld [wd687], a
- ret
-
-.asm_1900b
- ld a, [wd698]
- and a
- ret z
- ld a, $1
- ld [wd659], a
- ld [wd662], a
- ld [wd66b], a
- xor a
- ld [wd698], a
- ret
-
-Func_19020: ; 0x19020
- ld de, wd659
- call Func_19033
- ld de, wd662
- call Func_19033
- ld de, wd66b
- call Func_19033
- ret
-
-Func_19033: ; 0x19033
- ld a, [de]
- and a
- ret z
-.asm_19036
- call Func_19070
- jr nc, .asm_19042
- ld a, [rLCDC]
- bit 7, a
- jr z, .asm_19036
- ret
-
-.asm_19042
- inc de
- inc de
- inc de
- inc de
- inc de
- inc de
- ld a, [de]
- ld hl, hSCX
- sub [hl]
- ld b, a
- inc de
- inc de
- ld a, [de]
- ld hl, hSCY
- sub [hl]
- ld c, a
- dec de
- dec de
- dec de
- dec de
- dec de
- dec de
- ld a, [de]
- ld e, a
- ld d, $0
- ld hl, OAMIds_1906b
- add hl, de
- ld a, [hl]
- cp $ff
- call nz, LoadOAMData2
- ret
-
-OAMIds_1906b:
- db $00, $01, $02, $03
- db $FF
-
-Func_19070: ; 0x19070
- ld a, [wd674]
- and a
- ret z
- push de
- dec a
- ld [wd674], a
- sla a
- sla a
- ld c, a
- ld b, $0
- ld hl, GastlyVideoData_190a9
- add hl, bc
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld a, Bank(GengarBonusGastlyGfx)
- ld bc, $0060
- call LoadOrCopyVRAMData
- ld a, $8
- ld [wd690], a
- ld [wd6a1], a
- xor a
- ld [wd67e], a
- ld [wd687], a
- ld [wd698], a
- pop de
- scf
- ret
-
-GastlyVideoData_190a9:
- dw vTilesSH tile $10, GengarBonusGastlyGfx
- dw vTilesSH tile $16, GengarBonusGastlyGfx + $60
- dw vTilesSH tile $1c, GengarBonusGastlyGfx + $c0
- dw vTilesSH tile $22, GengarBonusGastlyGfx + $120
-
-Func_190b9: ; 0x190b9
- ld de, wd67e
- call Func_190c6
- ld de, wd687
- call Func_190c6
- ret
-
-Func_190c6: ; 0x190c6
- ld a, [de]
- and a
- ret z
-.asm_190c9
- call Func_19104
- jr nc, .asm_190d5
- ld a, [rLCDC]
- bit 7, a
- jr z, .asm_190c9
- ret
-
-.asm_190d5
- inc de
- inc de
- inc de
- inc de
- inc de
- inc de
- ld a, [de]
- ld hl, hSCX
- sub [hl]
- ld b, a
- inc de
- inc de
- ld a, [de]
- ld hl, hSCY
- sub [hl]
- ld c, a
- dec de
- dec de
- dec de
- dec de
- dec de
- dec de
- ld a, [de]
- ld e, a
- ld d, $0
- ld hl, OAMIds_190fe
- add hl, de
- ld a, [hl]
- cp $ff
- call nz, LoadOAMData2
- ret
-
-OAMIds_190fe:
- db $04, $05, $06, $07, $08
- db $FF
-
-Func_19104: ; 0x19104
- ld a, [wd690]
- and a
- ret z
- push de
- dec a
- ld [wd690], a
- sla a
- sla a
- sla a
- ld c, a
- ld b, $0
- ld hl, GengarBonusStageHaunterGfxTable
- add hl, bc
- ld a, [hli]
- ld c, a
- ld a, [hli]
- ld b, a
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld a, Bank(GengarBonusHaunterGfx)
- call LoadOrCopyVRAMData
- ld a, $4
- ld [wd674], a
- ld a, $8
- ld [wd6a1], a
- xor a
- ld [wd659], a
- ld [wd662], a
- ld [wd66b], a
- ld [wd698], a
- pop de
- scf
- ret
-
-GengarBonusStageHaunterGfxTable: ; 0x19145
-; Graphics data for Haunter.
-; First word: length in bytes
-; Second word: destination VRAM address
-; Third word: graphics data
-; Fourth word: unused
- dw $60, vTilesSH tile $10, GengarBonusHaunterGfx, $0000
- dw $60, vTilesSH tile $16, GengarBonusHaunterGfx + $60, $0000
- dw $60, vTilesSH tile $1c, GengarBonusHaunterGfx + $c0, $0000
- dw $60, vTilesSH tile $22, GengarBonusHaunterGfx + $120, $0000
- dw $20, vTilesSH tile $28, GengarBonusHaunterGfx + $180, $0000
- dw $40, vTilesOB tile $1a, GengarBonusHaunterGfx + $1a0, $0000
- dw $60, vTilesOB tile $1e, GengarBonusHaunterGfx + $1e0, $0000
- dw $60, vTilesOB tile $24, GengarBonusHaunterGfx + $240, $0000
-
-Func_19185: ; 0x19185
- ld de, wd698
- call Func_1918c
- ret
-
-Func_1918c: ; 0x1918c
- ld a, [de]
- and a
- ret z
-.asm_1918f
- call Func_191cb
- jr nc, .asm_1919b
- ld a, [rLCDC]
- bit 7, a
- jr z, .asm_1918f
- ret
-
-.asm_1919b
- inc de
- inc de
- inc de
- inc de
- inc de
- inc de
- ld a, [de]
- ld hl, hSCX
- sub [hl]
- ld b, a
- inc de
- inc de
- ld a, [de]
- ld hl, hSCY
- sub [hl]
- ld c, a
- dec de
- dec de
- dec de
- dec de
- dec de
- dec de
- ld a, [de]
- ld e, a
- ld d, $0
- ld hl, OAMIds_191c4
- add hl, de
- ld a, [hl]
- cp $ff
- call nz, LoadOAMData2
- ret
-
-OAMIds_191c4:
- db $09, $0A, $0B, $0C, $0D, $0E
- db $FF
-
-Func_191cb: ; 0x191cb
- ld a, [wd6a1]
- and a
- ret z
- push de
- dec a
- ld [wd6a1], a
- sla a
- sla a
- sla a
- ld c, a
- ld b, $0
- ld hl, GengarBonusStageGengarGfxTable
- add hl, bc
- ld a, [hli]
- ld c, a
- ld a, [hli]
- ld b, a
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld a, $26
- call LoadOrCopyVRAMData
- ld a, $4
- ld [wd674], a
- ld a, $8
- ld [wd690], a
- xor a
- ld [wd659], a
- ld [wd662], a
- ld [wd66b], a
- ld [wd67e], a
- ld [wd687], a
- pop de
- scf
- ret
-
-GengarBonusStageGengarGfxTable:
- dw $60, vTilesSH tile $10, GengarBonusGengarGfx, $0000
- dw $60, vTilesSH tile $16, GengarBonusGengarGfx + $60, $0000
- dw $60, vTilesSH tile $1c, GengarBonusGengarGfx + $c0, $0000
- dw $60, vTilesSH tile $22, GengarBonusGengarGfx + $120, $0000
- dw $20, vTilesSH tile $28, GengarBonusGengarGfx + $180, $0000
- dw $40, vTilesOB tile $1a, GengarBonusGengarGfx + $1a0, $0000
- dw $60, vTilesOB tile $1e, GengarBonusGengarGfx + $1e0, $0000
- dw $60, vTilesOB tile $24, GengarBonusGengarGfx + $240, $0000
-
+INCLUDE "engine/main/draw_sprites/draw_gengar_bonus_sprites.asm"
INCLUDE "engine/main/stage_init/init_mewtwo_bonus.asm"
INCLUDE "engine/main/ball_init/ball_init_mewtwo_bonus.asm"
INCLUDE "engine/main/load_stage_data/load_mewtwo_bonus.asm"
@@ -21280,88 +20119,7 @@ OrbitingBallAnimation4: ; 0x1994b
db $0C, $0B
db $00 ; terminator
-Func_1994e: ; 0x1994e
- ld bc, $7f65
- callba DrawTimer
- call Func_1999d
- callba DrawFlippers
- callba DrawPinball
- call Func_19976
- ret
-
-Func_19976: ; 0x19976
- ld a, $40
- ld hl, hSCX
- sub [hl]
- ld b, a
- ld a, $0
- ld hl, hSCY
- sub [hl]
- ld c, a
- ld a, [wd6ad]
- ld e, a
- ld d, $0
- ld hl, OAMIds_19995
- add hl, de
- ld a, [hl]
- cp $ff
- call nz, LoadOAMData2
- ret
-
-OAMIds_19995:
- db $0F, $10, $11, $12, $17, $18, $19
- db $FF
-
-Func_1999d: ; 0x1999d
- ld de, wd6b6
- call Func_199be
- ld de, wd6be
- call Func_199be
- ld de, wd6c6
- call Func_199be
- ld de, wd6ce
- call Func_199be
- ld de, wd6d6
- call Func_199be
- ld de, wd6de
- ; fall through
-
-Func_199be: ; 0x199be
- ld a, [de]
- and a
- ret z
- inc de
- inc de
- inc de
- inc de
- inc de
- ld a, [de]
- ld hl, hSCX
- sub [hl]
- ld b, a
- inc de
- ld a, [de]
- ld hl, hSCY
- sub [hl]
- ld c, a
- dec de
- dec de
- dec de
- dec de
- ld a, [de]
- ld e, a
- ld d, $0
- ld hl, OAMIds_199e6
- add hl, de
- ld a, [hl]
- cp $ff
- call nz, LoadOAMData2
- ret
-
-OAMIds_199e6:
- db $13, $14, $15, $16, $1A, $1B, $1C, $1D, $1E, $1F, $20
- db $FF
-
+INCLUDE "engine/main/draw_sprites/draw_mewtwo_bonus_sprites.asm"
INCLUDE "engine/main/stage_init/init_diglett_bonus.asm"
INCLUDE "engine/main/ball_init/ball_init_diglett_bonus.asm"
INCLUDE "engine/main/load_stage_data/load_diglett_bonus.asm"
@@ -22267,34 +21025,7 @@ AnimationData_1ac93: ; 0x1ac93
db $40, $0D
db $00 ; terminator
-Func_1ac98: ; 0x1ac98
- callba DrawFlippers
- callba DrawPinball
- call Func_1acb0
- ret
-
-Func_1acb0: ; 0x1acb0
- ld a, $40
- ld hl, hSCX
- sub [hl]
- ld b, a
- ld a, $0
- ld hl, hSCY
- sub [hl]
- ld c, a
- ld a, [wDugtrioAnimationFrame]
- ld e, a
- ld d, $0
- ld hl, OAMIds_1accf
- add hl, de
- ld a, [hl]
- bit 7, a
- call z, LoadOAMData2
- ret
-
-OAMIds_1accf:
- db $46, $47, $48, $49, $4A, $4B, $4C, $4D, $4E, $4F, $50, $51, $52, $53
- db $FF
+INCLUDE "engine/main/draw_sprites/draw_diglett_bonus_sprites.asm"
SECTION "bank7", ROMX, BANK[$7]
@@ -30409,407 +29140,7 @@ Func_1f2ff: ; 0x1f2ff
ld [wIndicatorStates + 1], a
ret
-Func_1f330: ; 0x1f330
- ld bc, $7f00
- callba DrawTimer
- call Func_1f395
- call Func_1f3e1
- call Func_1f408
- call Func_1f428
- callba DrawPinball
- call Func_1f48f
- call Func_1f4f8
- ret
-
-Func_1f35a: ; 0x1f35a
- ld bc, $7f00
- callba DrawTimer
- callba DrawMonCaptureAnimation
- call DrawAnimatedMon_BlueStage
- call DrawPikachuSavers_BlueStage
- callba DrawFlippers
- callba DrawPinball
- call Func_1f4a3
- call Func_1f509
- call Func_1f55e
- ret
-
-Func_1f395: ; 0x1f395
- ld de, wd4cd
- ld hl, Data_1f3cf
- call Func_1f3ad
- ld de, wd4d0
- ld hl, Data_1f3d5
- call Func_1f3ad
- ld de, wd4d3
- ld hl, Data_1f3db
- ; fall through
-
-Func_1f3ad: ; 0x1f3ad
- ld a, [hSCX]
- ld b, a
- ld a, [hli]
- sub b
- ld b, a
- ld a, [hSCY]
- ld c, a
- ld a, [hli]
- sub c
- ld c, a
- ld a, [wd4d7]
- sub [hl]
- inc hl
- jr z, .asm_1f3c4
- ld a, $0
- jr .asm_1f3c6
-
-.asm_1f3c4
- ld a, $1
-.asm_1f3c6
- ld e, a
- ld d, $0
- add hl, de
- ld a, [hl]
- call LoadOAMData
- ret
-
-Data_1f3cf:
- db $48, $2D ; background scroll offsets (x, y)
- db $01
- db $E0, $E1, $E0 ; OAM ids
-
-Data_1f3d5:
- db $33, $3E ; background scroll offsets (x, y)
- db $00
- db $E0, $E1, $E0 ; OAM ids
-
-Data_1f3db:
- db $5D, $3E ; background scroll offsets (x, y)
- db $02
- db $E0, $E1, $E0 ; OAM ids
-
-Func_1f3e1: ; 0x1f3e1
- ld a, $8a
- ld hl, hSCX
- sub [hl]
- ld b, a
- ld a, $53
- ld hl, hSCY
- sub [hl]
- ld c, a
- ld a, [wd50a]
- srl a
- srl a
- ld e, a
- ld d, $0
- ld hl, OAMIds_1f402
- add hl, de
- ld a, [hl]
- call LoadOAMData
- ret
-
-OAMIds_1f402:
- db $E8, $E9, $EA, $EB, $EC, $ED
-
-Func_1f408: ; 0x1f408
- ld a, $18
- ld hl, hSCX
- sub [hl]
- ld b, a
- ld a, $5f
- ld hl, hSCY
- sub [hl]
- ld c, a
- ld a, [wd633]
- ld e, a
- ld d, $0
- ld hl, OAMIds_1f425
- add hl, de
- ld a, [hl]
- call LoadOAMData
- ret
-
-OAMIds_1f425:
- db $E2, $E3, $E4
-
-Func_1f428: ; 0x1f428
- ld a, $70
- ld hl, hSCX
- sub [hl]
- ld b, a
- ld a, $59
- ld hl, hSCY
- sub [hl]
- ld c, a
- ld a, [wd638]
- ld e, a
- ld d, $0
- ld hl, OAMIds_1f445
- add hl, de
- ld a, [hl]
- call LoadOAMData
- ret
-
-OAMIds_1f445:
- db $E5, $E6, $E7
-
-DrawPikachuSavers_BlueStage: ; 0x1f448
- ld a, [hSCX]
- ld d, a
- ld a, [hSCY]
- ld e, a
- ld a, [wd51d]
- and a
- ld a, [wd518]
- jr z, .asm_1f473
- ld a, [wd51c]
- and a
- jr nz, .asm_1f469
- ld a, [hNumFramesDropped]
- srl a
- srl a
- srl a
- and $1
- jr .asm_1f473
-
-.asm_1f469
- ld a, [wd4b4]
- cp $50
- ld a, $1
- jr nc, .asm_1f473
- xor a
-.asm_1f473
- sla a
- ld c, a
- ld b, $0
- ld hl, PikachuSaverOAMOffsets_BlueStage
- add hl, bc
- ld a, [hli]
- sub d
- ld b, a
- ld a, [hli]
- sub e
- ld c, a
- ld a, [wPikachuSaverAnimationFrame]
- add $e
- call LoadOAMData
- ret
-
-PikachuSaverOAMOffsets_BlueStage:
- dw $7E0F
- dw $7E92
-
-Func_1f48f: ; 0x1f48f
- ld a, [wd551]
- and a
- ret nz
- ld a, [hNumFramesDropped]
- bit 4, a
- ret z
- ld de, wIndicatorStates + 5
- ld hl, OAMDataTable_1f4ce
- ld b, $6
- jr asm_1f4b5
-
-Func_1f4a3: ; 0x1f4a3
- ld a, [wd551]
- and a
- ret nz
- ld a, [hNumFramesDropped]
- bit 4, a
- ret z
- ld de, wIndicatorStates + 11
- ld hl, OAMDataTable_1f4e0
- ld b, $8
-asm_1f4b5:
- push bc
- ld a, [hSCX]
- ld b, a
- ld a, [hli]
- sub b
- ld b, a
- ld a, [hSCY]
- ld c, a
- ld a, [hli]
- sub c
- ld c, a
- ld a, [de]
- and a
- ld a, [hli]
- call nz, LoadOAMData
- pop bc
- inc de
- dec b
- jr nz, asm_1f4b5
- ret
-
-OAMDataTable_1f4ce: ; 0x1f4ce
- ; Each entry is:
- ; [OAM x/y Offsets],[OAM Id]
- db $0D, $37
- db $EE
-
- db $35, $0D
- db $F1
-
- db $8E, $4E
- db $F4
-
- db $36, $64
- db $EF
-
- db $4C, $49
- db $EE
-
- db $61, $64
- db $F0
-
-OAMDataTable_1f4e0: ; 0x1f4e0
- ; Each entry is 3 bytes:
- ; [OAM x/y Offsets],[OAM Id]
- db $2D, $13
- db $32
-
- db $6A, $13
- db $33
-
- db $25, $2D
- db $34
-
- db $73, $2D
- db $35
-
- db $38, $14
- db $36
-
- db $66, $14
- db $36
-
- db $79, $40
- db $37
-
- db $89, $40
- db $37
-
-Func_1f4f8: ; 0x1f4f8
- ld a, [wd551]
- and a
- ret z
- ld de, wd566
- ld hl, OAMOffsetsTable_1f53a
- ld b, $c
- ld c, $47
- jr asm_1f518
-
-Func_1f509: ; 0x1f509
- ld a, [wd551]
- and a
- ret z
- ld de, wd572
- ld hl, OAMOffsetsTable_1f552
- ld b, $6
- ld c, $40
-asm_1f518: ; 0x1f518
- push bc
- ld a, [de]
- add c
- cp c
- push af
- ld a, [hSCX]
- ld b, a
- ld a, [hli]
- sub b
- ld b, a
- ld a, [hSCY]
- ld c, a
- ld a, [hli]
- sub c
- ld c, a
- ld a, [hNumFramesDropped]
- and $e
- jr nz, .asm_1f530
- dec c
-.asm_1f530
- pop af
- call nz, LoadOAMData
- pop bc
- inc de
- dec b
- jr nz, asm_1f518
- ret
-
-OAMOffsetsTable_1f53a: ; 0x1f53a
-; OAM data x, y offsets
- db $4C, $08
- db $2B, $12
- db $6D, $12
- db $15, $25
- db $82, $25
- db $0D, $3F
- db $4C, $7F
- db $8B, $3F
- db $0A, $65
- db $36, $7F
- db $61, $7F
- db $8D, $65
-
-OAMOffsetsTable_1f552: ; 0x1f552
-; OAM data x, y offsets
- db $3B, $12
- db $5D, $12
- db $31, $16
- db $67, $16
- db $25, $2C
- db $73, $2C
-
-Func_1f55e: ; 0x1f55e
- ld a, [wd604]
- and a
- ret z
- ld a, [wd606]
- inc a
- ld [wd606], a
- ld a, $40
- ld hl, hSCX
- sub [hl]
- ld b, a
- ld a, $1
- ld hl, hSCY
- sub [hl]
- ld c, a
- ld a, [wd606]
- srl a
- srl a
- srl a
- and $3
- add $4f
- cp $52
- call nz, LoadOAMData
- ret
-
-DrawAnimatedMon_BlueStage: ; 0x1f58b
- ld a, [wWildMonIsHittable]
- and a
- ret z
- ld a, $50
- ld hl, hSCX
- sub [hl]
- ld b, a
- ld a, $3e
- ld hl, hSCY
- sub [hl]
- ld c, a
- ld a, [wd5bd]
- ld e, a
- ld d, $0
- ld hl, AnimatedMonOAMIds_BlueStage
- add hl, de
- ld a, [hl]
- call LoadOAMData
- ret
-
-AnimatedMonOAMIds_BlueStage:
- db $26, $27, $28, $29, $2A, $2B, $2C, $2D, $2E, $2F, $30, $31
+INCLUDE "engine/main/draw_sprites/draw_blue_field_sprites.asm"
SECTION "bank8", ROMX, BANK[$8]
@@ -36693,312 +35024,7 @@ TileData_2580e: ; 0x2580e
db $00 ; terminator
-Func_2583b: ; 0x2583b
- ld bc, $7f65
- callba DrawTimer
- callba DrawFlippers
- call Func_259fe
- call Func_25895
- call Func_2595e
- call Func_2586c
- callba DrawPinball
- call Func_25a39
- ret
-
-Func_2586c: ; 0x2586c
- ld a, [wMeowthXPosition]
- ld hl, hSCX
- sub [hl]
- ld b, a
- ld a, [wMeowthYPosition]
- ld hl, hSCY
- sub [hl]
- ld c, a
- ld a, [wMeowthAnimationFrame]
- ld e, a
- ld d, $0
- ld hl, OAMIds_2588b
- add hl, de
- ld a, [hl]
- call LoadOAMData2
- ret
-
-OAMIds_2588b:
- db $21, $22, $23, $24, $25, $26, $27, $28, $33, $34
-
-Func_25895: ; 0x25895
- ld a, [wd714]
- cp $b
- jr nz, .asm_258a0
- xor a
- ld [wd714], a
-.asm_258a0
- ld a, [wd715]
- cp $b
- jr nz, .asm_258ab
- xor a
- ld [wd715], a
-.asm_258ab
- ld a, [wd716]
- cp $b
- jr nz, .asm_258b6
- xor a
- ld [wd716], a
-.asm_258b6
- ld a, [wd71a]
- ld hl, hSCX
- sub [hl]
- ld b, a
- ld a, [wd727]
- ld hl, hSCY
- sub [hl]
- ld c, a
- ld a, [wd717]
- sla a
- ld e, a
- ld d, $0
- ld hl, OAMPointers_25935
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld a, [wd714]
- ld e, a
- ld d, $0
- add hl, de
- ld a, [hl]
- call LoadOAMData2
- ld a, [wd71b]
- ld hl, hSCX
- sub [hl]
- ld b, a
- ld a, [wd728]
- ld hl, hSCY
- sub [hl]
- ld c, a
- ld a, [wd718]
- sla a
- ld e, a
- ld d, $0
- ld hl, OAMPointers_25935
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld a, [wd715]
- ld e, a
- ld d, $0
- add hl, de
- ld a, [hl]
- call LoadOAMData2
- ld a, [wd71c]
- ld hl, hSCX
- sub [hl]
- ld b, a
- ld a, [wd729]
- ld hl, hSCY
- sub [hl]
- ld c, a
- ld a, [wd719]
- sla a
- ld e, a
- ld d, $0
- ld hl, OAMPointers_25935
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld a, [wd716]
- ld e, a
- ld d, $0
- add hl, de
- ld a, [hl]
- call LoadOAMData2
- ret
-
-OAMPointers_25935:
- dw OAMIds_2593d
- dw OAMIds_2593d
- dw OAMIds_25948
- dw OAMIds_25953
-
-OAMIds_2593d:
- db $29, $29, $29, $29, $2A, $2A, $2A, $2A, $2A, $2A, $2A
-
-OAMIds_25948:
- db $2B, $2B, $2B, $2B, $2B, $2B, $2B, $2C, $2C, $2C, $2C
-
-OAMIds_25953:
- db $2D, $32, $31, $30, $2F, $2E, $2F, $30, $31, $32, $32
-
-Func_2595e: ; 0x2595e
- ld a, [wd71e]
- cp $b
- jr nz, .asm_25969
- xor a
- ld [wd71e], a
-.asm_25969
- ld a, [wd71f]
- cp $b
- jr nz, .asm_25974
- xor a
- ld [wd71f], a
-.asm_25974
- ld a, [wd720]
- cp $b
- jr nz, .asm_2597f
- xor a
- ld [wd720], a
-.asm_2597f
- ld a, [wd724]
- ld hl, hSCX
- sub [hl]
- ld b, a
- ld a, [wd731]
- ld hl, hSCY
- sub [hl]
- ld c, a
- ld a, [wd721]
- sla a
- ld e, a
- ld d, $0
- ld hl, OAMPointers_25935
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld a, [wd71e]
- ld e, a
- ld d, $0
- add hl, de
- ld a, [hl]
- call LoadOAMData2
- ld a, [wd725]
- ld hl, hSCX
- sub [hl]
- ld b, a
- ld a, [wd732]
- ld hl, hSCY
- sub [hl]
- ld c, a
- ld a, [wd722]
- sla a
- ld e, a
- ld d, $0
- ld hl, OAMPointers_25935
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld a, [wd71f]
- ld e, a
- ld d, $0
- add hl, de
- ld a, [hl]
- call LoadOAMData2
- ld a, [wd726]
- ld hl, hSCX
- sub [hl]
- ld b, a
- ld a, [wd733]
- ld hl, hSCY
- sub [hl]
- ld c, a
- ld a, [wd723]
- sla a
- ld e, a
- ld d, $0
- ld hl, OAMPointers_25935
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld a, [wd720]
- ld e, a
- ld d, $0
- add hl, de
- ld a, [hl]
- call LoadOAMData2
- ret
-
-Func_259fe: ; 0x259fe
- ld a, [wd795]
- and a
- ret z
- ld de, wd79c
- ld a, [de]
- ld hl, hSCX
- sub [hl]
- ld b, a
- inc de
- inc de
- ld a, [de]
- ld hl, hSCY
- sub [hl]
- ld c, a
- dec de
- dec de
- dec de
- dec de
- dec de
- dec de
- ld a, [de]
- ld e, a
- ld d, $0
- ld hl, OAMIds_25a29
- add hl, de
- ld a, [hl]
- cp $ff
- call nz, LoadOAMData2
- ret
-
-OAMIds_25a29:
- db $35, $36, $37, $38, $39, $3A, $3B, $3C, $3D, $3E, $3F, $40, $41, $42, $43
- db $FF
-
-Func_25a39: ; 0x25a39
- ld a, [wd64e]
- and a
- ret z
- ld a, [wd652]
- ld hl, hSCX
- sub [hl]
- ld b, a
- xor a
- ld hl, hSCY
- sub [hl]
- ld c, a
- ld a, [wd64f]
- cp $a
- jr c, .asm_25a58
- ld de, $0000
- jr .asm_25a5b
-
-.asm_25a58
- ld de, $0001
-.asm_25a5b
- ld hl, OAMIds_25a7a
- add hl, de
- ld a, [hl]
- call LoadOAMData2
- ld hl, wd64f
- inc [hl]
- ld a, [hl]
- cp $14
- ret c
- ld [hl], $0
- ld hl, wd650
- inc [hl]
- ld a, [hl]
- cp $a
- ret nz
- xor a
- ld [wd64e], a
- ret
-
-OAMIds_25a7a: ; 0x25a7a
- db $44, $45
-
+INCLUDE "engine/main/draw_sprites/draw_meowth_bonus_sprites.asm"
INCLUDE "engine/main/stage_init/init_seel_bonus.asm"
INCLUDE "engine/main/ball_init/ball_init_seel_bonus.asm"
INCLUDE "engine/main/load_stage_data/load_seel_bonus.asm"
@@ -39903,135 +37929,7 @@ TileData_26b51: ; 0x26b51
db $00 ; terminator
-Func_26b7e: ; 0x26b7e
- ld bc, $7f65
- callba DrawTimer
- call Func_26bf7
- callba DrawFlippers
- callba DrawPinball
- call Func_26ba9
- call Func_26c3c
- ret
-
-Func_26ba9: ; 0x26ba9
- ld de, wd76e
- call Func_26bbc
- ld de, wd778
- call Func_26bbc
- ld de, wd782
- call Func_26bbc
- ret
-
-Func_26bbc: ; 0x26bbc
- ld a, [de]
- ld hl, hSCX
- sub [hl]
- ld b, a
- inc de
- inc de
- ld a, [de]
- ld hl, hSCY
- sub [hl]
- ld c, a
- dec de
- dec de
- dec de
- dec de
- dec de
- dec de
- ld a, [de]
- ld e, a
- ld d, $0
- ld hl, OAMIds_26bdf
- add hl, de
- ld a, [hl]
- cp $ff
- call nz, LoadOAMData2
- ret
-
-OAMIds_26bdf:
- db $54, $55, $56, $57, $58, $59, $5A, $5B, $5C, $5D, $5E, $5F, $60, $61, $62, $63
- db $64, $65, $66, $67, $68, $69, $6A
- db $FF
-
-Func_26bf7: ; 0x26bf7: ; 0x26bf7
- ld a, [wd795]
- cp $0
- ret z
- ld de, wd79c
- ld a, [de]
- ld hl, hSCX
- sub [hl]
- ld b, a
- inc de
- inc de
- ld a, [de]
- ld hl, hSCY
- sub [hl]
- ld c, a
- dec de
- dec de
- dec de
- dec de
- dec de
- dec de
- ld a, [de]
- ld e, a
- ld d, $0
- ld hl, OAMIds_26c23
- add hl, de
- ld a, [hl]
- cp $ff
- call nz, LoadOAMData2
- ret
-
-OAMIds_26c23:
- db $6B, $6C, $6D, $6E, $6F, $70, $71, $72, $73, $74, $75, $76, $77, $78, $79, $7A
- db $7B, $7C, $7D, $7E, $7F, $80, $81, $82
- db $FF
-
-Func_26c3c: ; 0x26c3c
- ld a, [wd64e]
- and a
- ret z
- ld a, [wd652]
- ld hl, hSCX
- sub [hl]
- ld b, a
- xor a
- ld hl, hSCY
- sub [hl]
- ld c, a
- ld a, [wd64f]
- cp $a
- jr c, .asm_26c5b
- ld de, $0000
- jr .asm_26c5e
-
-.asm_26c5b
- ld de, $0001
-.asm_26c5e
- ld hl, OAMIds_26c7d
- add hl, de
- ld a, [hl]
- call LoadOAMData2
- ld hl, wd64f
- inc [hl]
- ld a, [hl]
- cp $14
- ret c
- ld [hl], $0
- ld hl, wd650
- inc [hl]
- ld a, [hl]
- cp $a
- ret nz
- xor a
- ld [wd64e], a
- ret
-
-OAMIds_26c7d:
- db $83, $84
+INCLUDE "engine/main/draw_sprites/draw_seel_bonus_sprites.asm"
SECTION "banka", ROMX, BANK[$a]