diff options
author | Marcus Huderle <huderlem@gmail.com> | 2017-07-02 15:19:00 -0500 |
---|---|---|
committer | Marcus Huderle <huderlem@gmail.com> | 2017-07-02 15:24:06 -0500 |
commit | 30c5ce5c2093eea360842b4701b36f1bf46c83be (patch) | |
tree | e35cb723f302b6b019ea4ebdb167481d4f51463c | |
parent | b7db9b3ceec4a1ba87b01db7f7b05a0c11993234 (diff) |
Move Catch'Em mode logic to separate file
-rwxr-xr-x | engine/pinball_game/catchem_mode.asm | 1455 | ||||
-rwxr-xr-x | main.asm | 1456 |
2 files changed, 1456 insertions, 1455 deletions
diff --git a/engine/pinball_game/catchem_mode.asm b/engine/pinball_game/catchem_mode.asm new file mode 100755 index 0000000..9be8ab0 --- /dev/null +++ b/engine/pinball_game/catchem_mode.asm @@ -0,0 +1,1455 @@ +StartCatchEmMode: ; 0x1003f
+ ld a, [wInSpecialMode] ; current game mode?
+ and a
+ ret nz ; don't start catch 'em mode if we're already doing something like Map Move mode
+ ld a, $1
+ ld [wInSpecialMode], a ; set special mode flag
+ xor a
+ ld [wSpecialMode], a
+ ld [wd54d], a
+ ld a, [wCurrentStage]
+ sla a
+ ld c, a
+ ld b, $0
+ push bc
+ ld hl, WildMonOffsetsPointers
+ add hl, bc
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld a, [wCurrentMap]
+ sla a
+ ld c, a
+ add hl, bc
+ ld a, [hli]
+ ld c, a
+ ld a, [hl]
+ ld b, a
+ pop de
+ ld hl, WildMonPointers
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ add hl, bc
+ call GenRandom
+ and $f
+ call CheckForMew
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld a, [wRareMonsFlag] ; this gets set to $08 when the rare mons should be used.
+ sla a
+ ld c, a
+ add hl, bc
+ ld a, [hl] ; a contains mon id
+ dec a
+ ld [wCurrentCatchEmMon], a
+ ld a, [wCurrentCatchEmMon]
+ ld c, a
+ ld b, $0
+ ld hl, EvolutionLineIds
+ add hl, bc
+ ld c, [hl]
+ ld h, b
+ ld l, c
+ add hl, bc
+ add hl, bc ; multiply the evolution line id by 3
+ ld bc, Data_13685
+ add hl, bc
+ ld a, [hli]
+ ld [wd5c1], a
+ ld [wd5be], a
+ ld a, [hli]
+ ld [wd5c2], a
+ ld a, [hli]
+ ld [wd5c3], a
+ ld hl, wd586
+ ld a, [wd5b6]
+ ld c, a
+ and a
+ ld b, $18
+ jr z, .asm_100c7
+.asm_100ba
+ ld a, $1
+ ld [hli], a
+ xor a
+ ld [hli], a
+ dec b
+ dec c
+ jr nz, .asm_100ba
+ ld a, b
+ and a
+ jr z, .asm_100ce
+.asm_100c7
+ xor a
+ ld [hli], a
+ inc a
+ ld [hli], a
+ dec b
+ jr nz, .asm_100c7
+.asm_100ce
+ ld a, [wCurrentCatchEmMon]
+ ld c, a
+ ld b, $0
+ sla c
+ rl b
+ ld hl, CatchEmTimerData
+ add hl, bc
+ ld a, [hli]
+ ld c, a
+ ld a, [hl]
+ ld b, a
+ callba StartTimer
+ callba InitBallSaverForCatchEmMode
+ call Func_10696
+ call Func_3579
+ ld a, [wCurrentStage]
+ bit 0, a
+ jr z, .asm_1011d
+ ld a, BANK(StageRedFieldBottomBaseGameBoyColorGfx)
+ ld hl, StageRedFieldBottomBaseGameBoyColorGfx + $300
+ ld de, vTilesSH tile $2e
+ ld bc, $0020
+ call LoadOrCopyVRAMData
+ ld a, $0
+ ld hl, CatchBarTiles
+ deCoord 6, 8, vBGMap
+ ld bc, (CatchBarTilesEnd - CatchBarTiles)
+ call LoadOrCopyVRAMData
+.asm_1011d
+ call SetPokemonSeenFlag
+ ld a, [wCurrentStage]
+ rst JumpTable ; calls JumpToFuncInTable
+CallTable_10124: ; 0x10124
+ ; STAGE_RED_FIELD_TOP
+ dw Func_10871
+ ; STAGE_RED_FIELD_BOTTOM
+ dw Func_10871
+ dw DoNothing_1098a
+ dw DoNothing_1098a
+ ; STAGE_BLUE_FIELD_TOP
+ dw Func_1098c
+ ; STAGE_BLUE_FIELD_BOTTOM
+ dw Func_1098c
+
+CheckForMew:
+; Sets the encountered mon to Mew if the following conditions are met:
+; 1. Random number in register a equals $f
+; 2. The current map is Indigo Plateau (it does a roundabout way of checking this)
+; 3. The right alley has been hit three times
+; 4. The Mewtwo Bonus Stage completion counter equals 2.
+ push af
+ cp $f ; random number equals $f
+ jr nz, .asm_10155
+ ld a, c
+ cp (BlueStageIndigoPlateauWildMons - BlueStageWildMons) & $ff ; check if low-byte of map mons offset is Indigo Plateau
+ jr nz, .asm_10155
+ ld a, b
+ cp (BlueStageIndigoPlateauWildMons - BlueStageWildMons) >> 8 ; check if high-byte of map mons offset is Indigo Plateau
+ jr nz, .asm_10155
+ ld a, [wRareMonsFlag]
+ cp $8
+ jr nz, .asm_10155
+ ld a, [wNumMewtwoBonusCompletions]
+ cp NUM_MEWTWO_COMPLETIONS_FOR_MEW
+ jr nz, .asm_10155
+ pop af
+ xor a
+ ld [wNumMewtwoBonusCompletions], a
+ ld a, $10
+ ret
+
+.asm_10155
+ pop af
+ ret
+
+ConcludeCatchEmMode: ; 0x10157
+ xor a
+ ld [wInSpecialMode], a
+ ld [wWildMonIsHittable], a
+ ld [wd5c6], a
+ ld [wd5b6], a
+ ld [wNumMonHits], a
+ call ClearWildMonCollisionMask
+ callba StopTimer
+ ld a, [wCurrentStage]
+ rst JumpTable ; calls JumpToFuncInTable
+CallTable_10178: ; 0x10178
+ ; STAGE_RED_FIELD_TOP
+ dw Func_108f5
+ ; STAGE_RED_FIELD_BOTTOM
+ dw Func_108f5
+ dw DoNothing_1098b
+ dw DoNothing_1098b
+ ; STAGE_BLUE_FIELD_TOP
+ dw Func_109fc
+ ; STAGE_BLUE_FIELD_BOTTOM
+ dw Func_109fc
+
+Func_10184: ; 0x10184
+ ld a, [wCurrentStage]
+ bit 0, a
+ ret z
+ ld a, [wCurrentCatchEmMon]
+ ld c, a
+ ld b, $0
+ sla c
+ rl b
+ add c
+ ld c, a
+ jr nc, .asm_10199
+ inc b
+.asm_10199
+ ld hl, MonBillboardPicPointers
+ add hl, bc
+ ld a, [hli]
+ ld [$ff8c], a
+ ld a, [hli]
+ ld [$ff8d], a
+ ld a, [hl]
+ ld [$ff8e], a
+ ld hl, MonBillboardPaletteMapPointers
+ add hl, bc
+ ld a, [hli]
+ ld [$ff8f], a
+ ld a, [hli]
+ ld [$ff90], a
+ ld a, [hli]
+ ld [$ff91], a
+ ld de, wc000
+ ld hl, wd586
+ ld c, $0
+.asm_101bb
+ ld a, [hli]
+ cp [hl]
+ ld [hli], a
+ jr z, .asm_101d2
+ ld b, a
+ call nz, Func_101d9
+ ld a, [hGameBoyColorFlag]
+ and a
+ jr z, .asm_101d2
+ ld a, [wCurrentStage]
+ bit 0, a
+ ld a, b
+ call nz, Func_10230
+.asm_101d2
+ inc c
+ ld a, c
+ cp $18
+ jr nz, .asm_101bb
+ ret
+
+Func_101d9: ; 0x101d9
+ push bc
+ push hl
+ push de
+ push af
+ ld a, $10
+ ld [de], a
+ inc de
+ ld a, $1
+ ld [de], a
+ inc de
+ ld b, $0
+ ld hl, Data_102a4
+ add hl, bc
+ ld c, [hl]
+ sla c
+ rl b
+ sla c
+ rl b
+ sla c
+ rl b
+ sla c
+ rl b
+ ld hl, vTilesSH tile $10
+ add hl, bc
+ ld a, l
+ ld [de], a
+ inc de
+ ld a, h
+ ld [de], a
+ inc de
+ ld a, [$ff8c]
+ ld l, a
+ ld a, [$ff8d]
+ ld h, a
+ add hl, bc
+ pop af
+ and a
+ jr nz, .asm_10215
+ ld bc, $0180
+ add hl, bc
+.asm_10215
+ ld a, l
+ ld [de], a
+ inc de
+ ld a, h
+ ld [de], a
+ inc de
+ ld a, [$ff8e]
+ ld [de], a
+ inc de
+ ld a, $0
+ ld [de], a
+ inc de
+ pop bc
+ push de
+ xor a
+ ld de, Func_11d2
+ call Func_10c5
+ pop de
+ pop hl
+ pop bc
+ ret
+
+Func_10230: ; 0x10230
+ push bc
+ push hl
+ push de
+ push af
+ ld a, $1
+ ld [de], a
+ inc de
+ ld [de], a
+ inc de
+ ld b, $0
+ ld hl, Data_102a4
+ add hl, bc
+ ld c, [hl]
+ sla c
+ ld hl, PointerTable_10274
+ add hl, bc
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hl]
+ ld [de], a
+ inc de
+ srl c
+ ld a, [$ff8f]
+ ld l, a
+ ld a, [$ff90]
+ ld h, a
+ add hl, bc
+ pop af
+ and a
+ ld a, [$ff91]
+ call ReadByteFromBank
+ jr nz, .asm_10261
+ ld a, $5
+.asm_10261
+ ld [de], a
+ inc de
+ ld a, $0
+ ld [de], a
+ inc de
+ pop bc
+ push de
+ xor a
+ ld de, LoadTileListsBank1
+ call Func_10c5
+ pop de
+ pop hl
+ pop bc
+ ret
+
+PointerTable_10274: ; 0x10274
+ dw $9887
+ dw $9888
+ dw $9889
+ dw $988A
+ dw $988B
+ dw $988C
+ dw $98A7
+ dw $98A8
+ dw $98A9
+ dw $98AA
+ dw $98AB
+ dw $98AC
+ dw $98C7
+ dw $98C8
+ dw $98C9
+ dw $98CA
+ dw $98CB
+ dw $98CC
+ dw $98E7
+ dw $98E8
+ dw $98E9
+ dw $98EA
+ dw $98EB
+ dw $98EC
+
+Data_102a4: ; 0x102a4
+ db $00, $07, $06, $01, $0E, $15, $14, $0F, $04, $0B, $0A, $05, $0C, $13, $12, $0D, $02, $09, $08, $03, $10, $17, $16, $11
+
+Func_102bc: ; 0x102bc
+ ld a, [wCurrentCatchEmMon]
+ ld c, a
+ ld b, $0
+ sla c
+ rl b
+ add c
+ ld c, a
+ jr nc, .asm_102cb
+ inc b
+.asm_102cb
+ ld hl, MonBillboardPalettePointers
+ add hl, bc
+ ld a, [hli]
+ ld [$ff8c], a
+ ld a, [hli]
+ ld [$ff8d], a
+ ld a, [hl]
+ ld [$ff8e], a
+ ld de, wc1b8
+ ld a, $10
+ ld [de], a
+ inc de
+ ld a, $8
+ ld [de], a
+ inc de
+ ld a, $30
+ ld [de], a
+ inc de
+ ld a, [$ff8c]
+ ld [de], a
+ inc de
+ ld a, [$ff8d]
+ ld [de], a
+ inc de
+ ld a, [$ff8e]
+ ld [de], a
+ inc de
+ ld a, $0
+ ld [de], a
+ xor a
+ ld bc, wc1b8
+ ld de, LoadPalettes
+ call Func_10c5
+ ret
+
+Func_10301: ; 0x10301
+ ld a, [wCurrentCatchEmMon]
+ ld c, a
+ ld b, $0
+ sla c
+ rl b
+ add c
+ ld c, a
+ jr nc, .asm_10310
+ inc b
+.asm_10310
+ ld hl, MonAnimatedPalettePointers
+ add hl, bc
+ ld a, [hli]
+ ld [$ff8c], a
+ ld a, [hli]
+ ld [$ff8d], a
+ ld a, [hl]
+ ld [$ff8e], a
+ ld de, wc1b8
+ ld a, $10
+ ld [de], a
+ inc de
+ ld a, $4
+ ld [de], a
+ inc de
+ ld a, $58
+ ld [de], a
+ inc de
+ ld a, [$ff8c]
+ ld [de], a
+ inc de
+ ld a, [$ff8d]
+ ld [de], a
+ inc de
+ ld a, [$ff8e]
+ ld [de], a
+ inc de
+ ld a, $4
+ ld [de], a
+ inc de
+ ld a, $68
+ ld [de], a
+ inc de
+ ld a, [$ff8c]
+ ld l, a
+ ld a, [$ff8d]
+ ld h, a
+ ld bc, $0008
+ add hl, bc
+ ld a, l
+ ld [de], a
+ inc de
+ ld a, h
+ ld [de], a
+ inc de
+ ld a, [$ff8e]
+ ld [de], a
+ inc de
+ ld a, $0
+ ld [de], a
+ xor a
+ ld bc, wc1b8
+ ld de, LoadPalettes
+ call Func_10c5
+ ret
+
+Func_10362: ; 0x10362
+ ld a, [wCurrentCatchEmMon]
+ ld c, a
+ ld b, $0
+ sla c
+ rl b
+ add c
+ ld c, a
+ jr nc, .asm_10371
+ inc b
+.asm_10371
+ ld hl, MonAnimatedPicPointers
+ add hl, bc
+ ld a, [hli]
+ ld [$ff8c], a
+ ld a, [hli]
+ ld [$ff8d], a
+ ld a, [hl]
+ ld [$ff8e], a
+ ld de, wc150
+ ld bc, $0000
+.asm_10384
+ call Func_1038e
+ inc c
+ ld a, c
+ cp $d
+ jr nz, .asm_10384
+ ret
+
+Func_1038e: ; 0x1038e
+ push bc
+ push de
+ ld a, c
+ sla a
+ add c
+ ld c, a
+ sla c
+ ld hl, Data_103c6
+ add hl, bc
+ 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
+ inc de
+ ld a, [$ff8c]
+ add [hl]
+ ld [de], a
+ inc hl
+ inc de
+ ld a, [$ff8d]
+ adc [hl]
+ ld [de], a
+ inc de
+ ld a, [$ff8e]
+ ld [de], a
+ inc de
+ ld a, $0
+ ld [de], a
+ inc de
+ pop bc
+ push de
+ xor a
+ ld de, Func_11d2
+ call Func_10c5
+ pop de
+ pop bc
+ ret
+
+Data_103c6: ; 0x103c6
+; TODO: this might have pointers in it
+ db $40, $04, $00, $89, $00, $00
+ db $40, $04, $40, $89, $40, $00
+ db $40, $04, $80, $89, $80, $00
+ db $40, $04, $C0, $89, $C0, $00
+ db $40, $04, $00, $8A, $00, $01
+ db $40, $04, $40, $8A, $40, $01
+ db $20, $02, $80, $8A, $80, $01
+ db $20, $02, $A0, $81, $A0, $01
+ db $40, $04, $C0, $81, $C0, $01
+ db $40, $04, $00, $82, $00, $02
+ db $40, $04, $40, $82, $40, $02
+ db $40, $04, $80, $82, $80, $02
+ db $40, $04, $C0, $82, $C0, $02
+
+Func_10414: ; 0x10414
+ ld a, BANK(Data_10420)
+ ld bc, Data_10420
+ ld de, Func_11b5
+ call Func_10c5
+ ret
+
+Data_10420:
+ db $18
+ db $06
+ dw $9887
+ db $80
+ db $06
+ dw $98a7
+ db $80
+ db $06
+ dw $98c7
+ db $80
+ db $06
+ dw $98e7
+ db $80
+ db $00
+
+Func_10432: ; 0x10432
+ ld a, BANK(Data_1043e)
+ ld bc, Data_1043e
+ ld de, LoadTileLists
+ call Func_10c5
+ ret
+
+Data_1043e:
+ db $18
+ db $06
+ dw $9887
+ db $90, $91, $92, $93, $94, $95
+ db $06
+ dw $98a7
+ db $96, $97, $98, $99, $9a, $9b
+ db $06
+ dw $98c7
+ db $9c, $9d, $9e, $9f, $a0, $a1
+ db $06
+ dw $98e7
+ db $a2, $a3, $a4, $a5, $a6, $a7
+ db $00
+
+LoadWildMonCollisionMask: ; 0x10464
+ ld a, [wCurrentCatchEmMon]
+ ld c, a
+ ld b, $0
+ sla c
+ rl b
+ add c
+ ld c, a
+ jr nc, .noCarry
+ inc b
+.noCarry
+ ld hl, MonAnimatedCollisionMaskPointers
+ add hl, bc
+ ld a, [hli]
+ ld c, a
+ ld a, [hli]
+ ld b, a
+ ld a, [hl]
+ ld h, b
+ ld l, c
+ ld de, wMonAnimatedCollisionMask
+ ld bc, $0080
+ call FarCopyData
+ ret
+
+ClearWildMonCollisionMask: ; 0x10488
+ xor a
+ ld hl, wMonAnimatedCollisionMask
+ ld b, $20
+.asm_1048e
+ ld [hli], a
+ ld [hli], a
+ ld [hli], a
+ ld [hli], a
+ dec b
+ jr nz, .asm_1048e
+ ret
+
+BallCaptureInit: ; 0x10496
+ xor a
+ ld [wd5c6], a
+ ld a, BANK(PikachuSaverGfx)
+ ld hl, PikachuSaverGfx + $c0
+ ld de, vTilesOB tile $7e
+ ld bc, $0020
+ call LoadVRAMData
+ ld a, BANK(BallCaptureSmokeGfx)
+ ld hl, BallCaptureSmokeGfx
+ ld de, vTilesSH tile $10
+ ld bc, $0180
+ call LoadVRAMData
+ call LoadShakeBallGfx
+ ld hl, BallCaptureAnimationData
+ ld de, wBallCaptureAnimationFrameCounter
+ call CopyHLToDE
+ ld a, $1
+ ld [wCapturingMon], a
+ xor a
+ ld [wBallXVelocity], a
+ ld [wBallXVelocity + 1], a
+ ld [wBallYVelocity], a
+ ld [wBallYVelocity + 1], a
+ xor a
+ ld [wd548], a
+ ld [wd549], a
+ lb de, $00, $0b
+ call PlaySoundEffect
+ ret
+
+LoadShakeBallGfx: ; 0x104e2
+; Loads the graphics for the ball shaking after a pokemon is caught.
+ 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 LoadVRAMData
+ ret
+
+.notPokeball
+ cp ULTRA_BALL
+ jr nc, .notGreatball
+ ld a, Bank(PinballGreatballShakeGfx)
+ ld hl, PinballGreatballShakeGfx
+ ld de, vTilesOB tile $38
+ ld bc, $0040
+ call LoadVRAMData
+ ret
+
+.notGreatball
+ cp MASTER_BALL
+ jr nc, .notUltraBall
+ ld a, Bank(PinballUltraballShakeGfx)
+ ld hl, PinballUltraballShakeGfx
+ ld de, vTilesOB tile $38
+ ld bc, $0040
+ call LoadVRAMData
+ ret
+
+.notUltraBall
+ ld a, Bank(PinballMasterballShakeGfx)
+ ld hl, PinballMasterballShakeGfx
+ ld de, vTilesOB tile $38
+ ld bc, $0040
+ call LoadVRAMData
+ ret
+
+CapturePokemon: ; 0x1052d
+ ld a, [wBallCaptureAnimationFrame]
+ cp $c
+ jr nz, .asm_10541
+ ld a, [wBallCaptureAnimationFrameCounter]
+ cp $1
+ jr nz, .asm_10541
+ lb de, $00, $41
+ call PlaySoundEffect
+.asm_10541
+ ld hl, BallCaptureAnimationData
+ ld de, wBallCaptureAnimationFrameCounter
+ call UpdateAnimation
+ ld a, [wBallCaptureAnimationFrameIndex]
+ cp $1
+ jr nz, .asm_1055d
+ ld a, [wBallCaptureAnimationFrameCounter]
+ cp $1
+ jr nz, .asm_1055d
+ xor a
+ ld [wWildMonIsHittable], a
+ ret
+
+.asm_1055d
+ ld a, [wBallCaptureAnimationFrameIndex]
+ cp $15
+ ret nz
+ ld a, [wBallCaptureAnimationFrameCounter]
+ cp $1
+ ret nz
+ call Func_3475
+ ld de, $0000
+ call PlaySong
+ rst AdvanceFrame
+ lb de, $23, $29
+ call PlaySoundEffect
+ call Func_10825
+ call Func_3475
+ ld a, [wNumPartyMons]
+ and a
+ call z, Func_10848
+ ld a, $50
+ ld [wd4b4], a
+ ld a, $40
+ ld [wd4b6], a
+ ld a, $80
+ ld [wBallXVelocity], a
+ xor a
+ ld [wBallXPos], a
+ ld [wBallYPos], a
+ ld [wCapturingMon], a
+ ld a, $1
+ ld [wd548], a
+ ld [wd549], a
+ callba RestoreBallSaverAfterCatchEmMode
+ call ConcludeCatchEmMode
+ ld de, $0001
+ call PlaySong
+ ld hl, wd628
+ call Func_e4a
+ jr nc, .asm_105d1
+ ld c, $a
+ call Func_e55
+ callba z, Func_30164
+.asm_105d1
+ call SetPokemonOwnedFlag
+ ld a, [wd624]
+ cp $3
+ ret z
+ inc a
+ ld [wd625], a
+ ld a, $80
+ ld [wd626], a
+ ret
+
+BallCaptureAnimationData: ; 0x105e4
+; Each entry is [OAM id][duration]
+ db $05, $00
+ db $05, $01
+ db $05, $02
+ db $04, $03
+ db $06, $04
+ db $08, $05
+ db $07, $06
+ db $05, $07
+ db $04, $08
+ db $04, $09
+ db $04, $0A
+ db $04, $0B
+ db $24, $0A
+ db $09, $0C
+ db $09, $0A
+ db $09, $0C
+ db $27, $0A
+ db $09, $0C
+ db $09, $0A
+ db $09, $0C
+ db $24, $0A
+ db $01, $0A
+ db $00 ; terminator
+
+Func_10611: ; 0x10611
+ and a
+ ret z
+ dec a
+ sla a
+ ld c, a
+ ld b, $0
+ ld hl, Data_1062a
+ add hl, bc
+ ld a, [hli]
+ ld c, a
+ ld a, [hl]
+ ld b, a
+ ld a, BANK(Data_1062a)
+ ld de, Func_11d2
+ call Func_10c5
+ ret
+
+Data_1062a:
+ dw Data_10630
+ dw Data_10638
+ dw Data_10640
+
+Data_10630:
+ db $20
+ db $02
+ dw $8ae0
+ dw CatchTextGfx + $00
+ db BANK(CatchTextGfx)
+ db $00
+
+Data_10638:
+ db $20
+ db $02
+ dw $8b00
+ dw CatchTextGfx + $20
+ db BANK(CatchTextGfx)
+ db $00
+
+Data_10640:
+ db $20
+ db $02
+ dw $8b20
+ dw CatchTextGfx + $40
+ db BANK(CatchTextGfx)
+ db $00
+
+Func_10648: ; 0x10648
+ call Func_10184
+ ld a, [wd54e]
+ dec a
+ ld [wd54e], a
+ jr nz, .asm_10677
+ ld a, $14
+ ld [wd54e], a
+ ld hl, wd586
+ ld b, $18
+.asm_1065e
+ ld a, [wd54f]
+ and $1
+ ld [hli], a
+ xor $1
+ ld [hli], a
+ dec b
+ jr nz, .asm_1065e
+ ld a, [wd54f]
+ dec a
+ ld [wd54f], a
+ jr nz, .asm_10677
+ ld hl, wd54d
+ inc [hl]
+.asm_10677
+ ret
+
+ShowAnimatedWildMon: ; 0x10678
+ ld a, [wCurrentCatchEmMon]
+ ld c, a
+ ld b, $0
+ ld hl, MonAnimatedSpriteTypes
+ add hl, bc
+ ld a, [hl]
+ ld [wd5bc], a
+ ld [wd5bd], a
+ ld a, $1
+ ld [wWildMonIsHittable], a
+ xor a
+ ld [wBallHitWildMon], a
+ ld [wNumMonHits], a
+ ret
+
+Func_10696: ; 0x10696
+ call FillBottomMessageBufferWithBlackTile
+ call Func_30db
+ ld hl, wd5cc
+ ld de, LetsGetPokemonText
+ call LoadTextHeader
+ ret
+
+Func_106a6: ; 0x106a6
+ call FillBottomMessageBufferWithBlackTile
+ call Func_30db
+ ld hl, wd5cc
+ ld de, PokemonRanAwayText
+ call LoadTextHeader
+ ret
+
+Func_106b6: ; 0x106b6
+ ld a, [wCurrentCatchEmMon]
+ ld c, a
+ ld b, $0
+ sla c
+ rl b
+ sla c
+ rl b
+ sla c
+ rl b
+ sla c
+ rl b ; bc was just multiplied by 16
+ ld hl, PokemonNames + 1
+ add hl, bc
+ ld de, YouGotAnText ; "You got an"
+ ld bc, Data_2a91
+ ld a, [hl]
+ ; check if mon's name starts with a vowel, so it can print "an", instead of "a"
+ cp "A"
+ jr z, .asm_106f1
+ cp "I"
+ jr z, .asm_106f1
+ cp "U"
+ jr z, .asm_106f1
+ cp "E"
+ jr z, .asm_106f1
+ cp "O"
+ jr z, .asm_106f1
+ ld de, YouGotAText ; "You got a"
+ ld bc, Data_2a79
+.asm_106f1
+ push hl
+ push bc
+ push de
+ call FillBottomMessageBufferWithBlackTile
+ call Func_30db
+ ld hl, wd5cc
+ pop de
+ call LoadTextHeader
+ ld hl, wd5d4
+ pop de
+ call LoadTextHeader
+ pop hl
+ ld de, wBottomMessageText + $20
+ ld b, $0 ; count the number of letters in mon's name in register b
+.readLetter
+ ld a, [hli]
+ and a
+ jr z, .endOfName
+ ld [de], a
+ inc de
+ inc b
+ jr .readLetter
+
+.endOfName
+ ld a, $20
+ ld [de], a
+ inc de
+ xor a
+ ld [de], a
+ ld a, [wd5db]
+ add b
+ ld [wd5db], a
+ ld a, $14
+ sub b
+ srl a
+ ld b, a
+ ld a, [wd5d8]
+ add b
+ ld [wd5d8], a
+ ret
+
+Func_10732: ; 0x10732
+ ld a, [wCurrentCatchEmMon]
+ inc a
+ ld e, a
+ ld d, $0
+ call PlayCry
+ ret
+
+AddCaughtPokemonToParty: ; 0x1073d
+ ld a, [wNumPartyMons]
+ ld c, a
+ ld b, $0
+ ld hl, wPartyMons
+ add hl, bc
+ ld a, [wCurrentCatchEmMon]
+ ld [hl], a
+ ld a, [wNumPartyMons]
+ inc a
+ ld [wNumPartyMons], a
+ ret
+
+SetPokemonSeenFlag: ; 0x10753
+ ld a, [wSpecialMode]
+ and a
+ ld a, [wCurrentCatchEmMon]
+ jr z, .asm_10766
+ ld a, [wCurrentEvolutionMon]
+ cp $ff
+ jr nz, .asm_10766
+ ld a, [wCurrentCatchEmMon]
+.asm_10766
+ ld c, a
+ ld b, $0
+ ld hl, wPokedexFlags
+ add hl, bc
+ set 0, [hl]
+ ld hl, wPokedexFlags
+ ld de, sPokedexFlags
+ ld bc, $0098
+ call SaveData
+ ret
+
+SetPokemonOwnedFlag: ; 0x1077c
+ ld a, [wSpecialMode]
+ and a
+ ld a, [wCurrentCatchEmMon]
+ jr z, .asm_1078f
+ ld a, [wCurrentEvolutionMon]
+ cp $ff
+ jr nz, .asm_1078f
+ ld a, [wCurrentCatchEmMon]
+.asm_1078f
+ ld c, a
+ ld b, $0
+ ld hl, wPokedexFlags
+ add hl, bc
+ set 1, [hl]
+ ld hl, wPokedexFlags
+ ld de, sPokedexFlags
+ ld bc, $0098
+ call SaveData
+ ret
+
+Func_107a5: ; 0x107a5
+ xor a
+ ld hl, wIndicatorStates
+ ld b, $13
+.asm_107ab
+ ld [hli], a
+ dec b
+ jr nz, .asm_107ab
+ ret
+
+Func_107b0: ; 0x107b0
+ xor a
+ ld [wd604], a
+ ld [wIndicatorStates + 4], a
+ callba Func_16425
+ ret
+
+Func_107c2: ; 0x107c2
+ ld a, $1e
+ ld [wd607], a
+ ret
+
+Func_107c8: ; 0x107c8
+ ld a, [wRightAlleyCount]
+ cp $3
+ jr z, .asm_107d1
+ set 7, a
+.asm_107d1
+ ld [wIndicatorStates + 1], a
+ ld a, [wRightAlleyCount]
+ cp $2
+ jr c, .asm_107e0
+ ld a, $80
+ ld [wIndicatorStates + 3], a
+.asm_107e0
+ ld a, [wLeftAlleyCount]
+ set 7, a
+ ld [wIndicatorStates], a
+ ret
+
+Func_107e9: ; 0x107e9
+ ld a, [wLeftAlleyCount]
+ cp $3
+ ld a, $4
+ jr nz, .asm_107f4
+ ld a, $6
+.asm_107f4
+ ld [wd7ad], a
+ ret
+
+Func_107f8: ; 0x107f8
+ ld a, [wTimerFrames]
+ and a
+ ret nz
+ ld a, [wTimerMinutes]
+ and a
+ ret nz
+ ld a, [wTimerSeconds]
+ cp $20
+ jr nz, .asm_10810
+ lb de, $07, $49
+ call PlaySoundEffect
+ ret
+
+.asm_10810
+ cp $10
+ jr nz, .asm_1081b
+ lb de, $0a, $4a
+ call PlaySoundEffect
+ ret
+
+.asm_1081b
+ cp $5
+ ret nz
+ lb de, $0d, $4b
+ call PlaySoundEffect
+ ret
+
+Func_10825: ; 0x10825
+ call Retrieve8DigitBCDValueAtwd47a
+ push bc
+ push de
+ call AddBCDEToCurBufferValue
+ call FillBottomMessageBufferWithBlackTile
+ call Func_30db
+ ld hl, wd5e9
+ ld de, Data_2a50
+ call Func_3372
+ pop de
+ pop bc
+ ld hl, wd5e4
+ ld de, JackpotText
+ call Func_3357
+ ret
+
+Func_10848: ; 0x10848
+ ld bc, OneHundredMillionPoints
+ callba AddBigBCD6FromQueue
+ call FillBottomMessageBufferWithBlackTile
+ call Func_30db
+ ld hl, wd5d4
+ ld de, OneBillionText
+ call LoadTextHeader
+ ld hl, wd5cc
+ ld de, PokemonCaughtSpecialBonusText
+ call LoadTextHeader
+ call Func_3475
+ ret
+
+Func_10871: ; 0x10871
+ ld a, [wCurrentCatchEmMon]
+ ld c, a
+ ld b, $0
+ ld hl, EvolutionLineIds
+ add hl, bc
+ ld a, [hl] ; a contains evolution line id
+ ld c, a
+ ld b, $0
+ ld l, c
+ ld h, b
+ sla l
+ rl h
+ sla l
+ rl h
+ sla l
+ rl h
+ sla l
+ rl h
+ add hl, bc
+ add hl, bc
+ add hl, bc
+ ld c, l
+ ld b, h
+ ld hl, CatchEmModeInitialIndicatorStates
+ add hl, bc
+ ld de, wIndicatorStates
+ ld b, $13 ; number of indicators
+.loop
+ ld a, [hli]
+ ld [de], a
+ inc de
+ dec b
+ jr nz, .loop
+ xor a
+ ld [wRightAlleyCount], a
+ call Func_107b0
+ ld a, $4
+ ld [wd7ad], a
+ ld de, $0002
+ call PlaySong
+ ld a, [wCurrentStage]
+ bit 0, a
+ jr nz, .asm_108d3
+ callba LoadStageCollisionAttributes
+ callba Func_159f4
+ ret
+
+.asm_108d3
+ callba Func_14135
+ callba Func_10184
+ ld a, [hGameBoyColorFlag]
+ and a
+ callba nz, Func_102bc
+ ret
+
+Func_108f5: ; 0x108f5
+ call Func_107a5
+ call Func_107c2
+ call Func_107c8
+ call Func_107e9
+ ld a, [wCurrentStage]
+ bit 0, a
+ ret z
+ callba Func_14135
+ call Func_10432
+ callba Func_30253
+ ld a, Bank(StageSharedBonusSlotGlowGfx)
+ ld hl, StageSharedBonusSlotGlowGfx
+ ld de, vTilesOB tile $1a
+ ld bc, $0160
+ call LoadVRAMData
+ ld a, BANK(StageSharedBonusSlotGlow2Gfx)
+ ld hl, StageSharedBonusSlotGlow2Gfx
+ ld de, vTilesOB tile $38
+ ld bc, $0020
+ call LoadVRAMData
+ ld hl, BlankSaverSpaceTileDataRedField
+ ld a, BANK(BlankSaverSpaceTileDataRedField)
+ call Func_10aa
+ ld a, [wd624]
+ callba Func_174d4
+ ld hl, CaughtPokeballTileDataPointers
+ ld a, BANK(CaughtPokeballTileDataPointers)
+ call Func_10aa
+ ret
+
+BlankSaverSpaceTileDataRedField:
+ db 3
+ dw BlankSaverSpaceTileDataRedField1
+ dw BlankSaverSpaceTileDataRedField2
+ dw BlankSaverSpaceTileDataRedField3
+
+BlankSaverSpaceTileDataRedField1:
+ dw Func_11d2
+ db $20, $02
+ dw vTilesSH tile $2e
+ dw StageRedFieldBottomBaseGameBoyColorGfx + $2e0
+ db Bank(StageRedFieldBottomBaseGameBoyColorGfx)
+ db $00
+
+BlankSaverSpaceTileDataRedField2:
+ dw Func_11d2
+ db $20, $02
+ dw vTilesSH tile $30
+ dw StageRedFieldBottomBaseGameBoyColorGfx + $300
+ db Bank(StageRedFieldBottomBaseGameBoyColorGfx)
+ db $00
+
+BlankSaverSpaceTileDataRedField3:
+ dw Func_11d2
+ db $20, $02
+ dw vTilesSH tile $32
+ dw StageRedFieldBottomBaseGameBoyColorGfx + $320
+ db Bank(StageRedFieldBottomBaseGameBoyColorGfx)
+ db $00
+
+CaughtPokeballTileDataPointers:
+ db 1
+ dw CaughtPokeballTileData
+
+CaughtPokeballTileData:
+ dw Func_11d2
+ db $20, $02
+ dw vTilesSH tile $2e
+ dw CaughtPokeballGfx
+ db Bank(CaughtPokeballGfx)
+ db $00
+
+DoNothing_1098a: ; 0x1098a
+ ret
+
+DoNothing_1098b: ; 0x1098b
+ ret
+
+Func_1098c: ; 0x1098c
+ ld a, [wCurrentCatchEmMon]
+ ld c, a
+ ld b, $0
+ ld hl, EvolutionLineIds
+ add hl, bc
+ ld a, [hl]
+ ld c, a
+ ld b, $0
+ ld l, c
+ ld h, b
+ sla l
+ rl h
+ sla l
+ rl h
+ sla l
+ rl h
+ sla l
+ rl h
+ add hl, bc
+ add hl, bc
+ add hl, bc
+ ld c, l
+ ld b, h
+ ld hl, CatchEmModeInitialIndicatorStates
+ add hl, bc
+ ld de, wIndicatorStates
+ ld b, $13 ; number of indicators
+.loop
+ ld a, [hli]
+ ld [de], a
+ inc de
+ dec b
+ jr nz, .loop
+ xor a
+ ld [wRightAlleyCount], a
+ callba Func_1f2ed
+ ld de, $0002
+ call PlaySong
+ ld a, [wCurrentStage]
+ bit 0, a
+ ret z
+ callba Func_1c2cb
+ ld [hFarCallTempA], a
+ ld a, $4
+ ld hl, Func_10184
+ call BankSwitch
+ ld a, [hGameBoyColorFlag]
+ and a
+ callba nz, Func_102bc
+ ret
+
+Func_109fc: ; 0x109fc
+ call Func_107a5
+ call Func_107c2
+ callba Func_1f2ff
+ ld a, [wCurrentStage]
+ bit 0, a
+ ret z
+ callba Func_1c2cb
+ call Func_10432
+ callba Func_30253
+ ld a, BANK(StageSharedBonusSlotGlowGfx)
+ ld hl, StageSharedBonusSlotGlowGfx
+ ld de, vTilesOB tile $1a
+ ld bc, $0160
+ call LoadVRAMData
+ ld a, BANK(StageSharedBonusSlotGlow2Gfx)
+ ld hl, StageSharedBonusSlotGlow2Gfx
+ ld de, vTilesOB tile $38
+ ld bc, $0020
+ call LoadVRAMData
+ ld hl, BlankSaverSpaceTileDataBlueField
+ ld a, BANK(BlankSaverSpaceTileDataBlueField)
+ call Func_10aa
+ ld a, [wd624]
+ callba Func_174d4
+ ld hl, Data_10a88
+ ld a, BANK(Data_10a88)
+ call Func_10aa
+ ret
+
+BlankSaverSpaceTileDataBlueField:
+ db 3
+ dw BlankSaverSpaceTileDataBlueField1
+ dw BlankSaverSpaceTileDataBlueField2
+ dw BlankSaverSpaceTileDataBlueField3
+
+BlankSaverSpaceTileDataBlueField1:
+ dw Func_11d2
+ db $20, $02
+ dw vTilesSH tile $2e
+ dw StageBlueFieldBottomBaseGameBoyColorGfx + $2e0
+ db Bank(StageBlueFieldBottomBaseGameBoyColorGfx)
+ db $00
+
+BlankSaverSpaceTileDataBlueField2:
+ dw Func_11d2
+ db $20, $02
+ dw vTilesSH tile $30
+ dw StageBlueFieldBottomBaseGameBoyColorGfx + $300
+ db Bank(StageBlueFieldBottomBaseGameBoyColorGfx)
+ db $00
+
+BlankSaverSpaceTileDataBlueField3:
+ dw Func_11d2
+ db $20, $02
+ dw vTilesSH tile $32
+ dw StageBlueFieldBottomBaseGameBoyColorGfx + $320
+ db Bank(StageBlueFieldBottomBaseGameBoyColorGfx)
+ db $00
+
+Data_10a88:
+ db 1
+ dw Data_10a8b
+
+Data_10a8b:
+ dw Func_11d2
+ db $20, $02
+ dw vTilesSH tile $2e
+ dw CaughtPokeballGfx
+ db Bank(CaughtPokeballGfx)
+ db $00
@@ -214,1461 +214,7 @@ CallTable_10027: ; 0x10027 ; STAGE_BLUE_FIELD_BOTTOM padded_dab Func_202bc -StartCatchEmMode: ; 0x1003f - ld a, [wInSpecialMode] ; current game mode? - and a - ret nz ; don't start catch 'em mode if we're already doing something like Map Move mode - ld a, $1 - ld [wInSpecialMode], a ; set special mode flag - xor a - ld [wSpecialMode], a - ld [wd54d], a - ld a, [wCurrentStage] - sla a - ld c, a - ld b, $0 - push bc - ld hl, WildMonOffsetsPointers - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - ld a, [wCurrentMap] - sla a - ld c, a - add hl, bc - ld a, [hli] - ld c, a - ld a, [hl] - ld b, a - pop de - ld hl, WildMonPointers - add hl, de - ld a, [hli] - ld h, [hl] - ld l, a - add hl, bc - call GenRandom - and $f - call CheckForMew - ld c, a - ld b, $0 - add hl, bc - ld a, [wRareMonsFlag] ; this gets set to $08 when the rare mons should be used. - sla a - ld c, a - add hl, bc - ld a, [hl] ; a contains mon id - dec a - ld [wCurrentCatchEmMon], a - ld a, [wCurrentCatchEmMon] - ld c, a - ld b, $0 - ld hl, EvolutionLineIds - add hl, bc - ld c, [hl] - ld h, b - ld l, c - add hl, bc - add hl, bc ; multiply the evolution line id by 3 - ld bc, Data_13685 - add hl, bc - ld a, [hli] - ld [wd5c1], a - ld [wd5be], a - ld a, [hli] - ld [wd5c2], a - ld a, [hli] - ld [wd5c3], a - ld hl, wd586 - ld a, [wd5b6] - ld c, a - and a - ld b, $18 - jr z, .asm_100c7 -.asm_100ba - ld a, $1 - ld [hli], a - xor a - ld [hli], a - dec b - dec c - jr nz, .asm_100ba - ld a, b - and a - jr z, .asm_100ce -.asm_100c7 - xor a - ld [hli], a - inc a - ld [hli], a - dec b - jr nz, .asm_100c7 -.asm_100ce - ld a, [wCurrentCatchEmMon] - ld c, a - ld b, $0 - sla c - rl b - ld hl, CatchEmTimerData - add hl, bc - ld a, [hli] - ld c, a - ld a, [hl] - ld b, a - callba StartTimer - callba InitBallSaverForCatchEmMode - call Func_10696 - call Func_3579 - ld a, [wCurrentStage] - bit 0, a - jr z, .asm_1011d - ld a, BANK(StageRedFieldBottomBaseGameBoyColorGfx) - ld hl, StageRedFieldBottomBaseGameBoyColorGfx + $300 - ld de, vTilesSH tile $2e - ld bc, $0020 - call LoadOrCopyVRAMData - ld a, $0 - ld hl, CatchBarTiles - deCoord 6, 8, vBGMap - ld bc, (CatchBarTilesEnd - CatchBarTiles) - call LoadOrCopyVRAMData -.asm_1011d - call SetPokemonSeenFlag - ld a, [wCurrentStage] - rst JumpTable ; calls JumpToFuncInTable -CallTable_10124: ; 0x10124 - ; STAGE_RED_FIELD_TOP - dw Func_10871 - ; STAGE_RED_FIELD_BOTTOM - dw Func_10871 - dw DoNothing_1098a - dw DoNothing_1098a - ; STAGE_BLUE_FIELD_TOP - dw Func_1098c - ; STAGE_BLUE_FIELD_BOTTOM - dw Func_1098c - -CheckForMew: -; Sets the encountered mon to Mew if the following conditions are met: -; 1. Random number in register a equals $f -; 2. The current map is Indigo Plateau (it does a roundabout way of checking this) -; 3. The right alley has been hit three times -; 4. The Mewtwo Bonus Stage completion counter equals 2. - push af - cp $f ; random number equals $f - jr nz, .asm_10155 - ld a, c - cp (BlueStageIndigoPlateauWildMons - BlueStageWildMons) & $ff ; check if low-byte of map mons offset is Indigo Plateau - jr nz, .asm_10155 - ld a, b - cp (BlueStageIndigoPlateauWildMons - BlueStageWildMons) >> 8 ; check if high-byte of map mons offset is Indigo Plateau - jr nz, .asm_10155 - ld a, [wRareMonsFlag] - cp $8 - jr nz, .asm_10155 - ld a, [wNumMewtwoBonusCompletions] - cp NUM_MEWTWO_COMPLETIONS_FOR_MEW - jr nz, .asm_10155 - pop af - xor a - ld [wNumMewtwoBonusCompletions], a - ld a, $10 - ret - -.asm_10155 - pop af - ret - -ConcludeCatchEmMode: ; 0x10157 - xor a - ld [wInSpecialMode], a - ld [wWildMonIsHittable], a - ld [wd5c6], a - ld [wd5b6], a - ld [wNumMonHits], a - call ClearWildMonCollisionMask - callba StopTimer - ld a, [wCurrentStage] - rst JumpTable ; calls JumpToFuncInTable -CallTable_10178: ; 0x10178 - ; STAGE_RED_FIELD_TOP - dw Func_108f5 - ; STAGE_RED_FIELD_BOTTOM - dw Func_108f5 - dw DoNothing_1098b - dw DoNothing_1098b - ; STAGE_BLUE_FIELD_TOP - dw Func_109fc - ; STAGE_BLUE_FIELD_BOTTOM - dw Func_109fc - -Func_10184: ; 0x10184 - ld a, [wCurrentStage] - bit 0, a - ret z - ld a, [wCurrentCatchEmMon] - ld c, a - ld b, $0 - sla c - rl b - add c - ld c, a - jr nc, .asm_10199 - inc b -.asm_10199 - ld hl, MonBillboardPicPointers - add hl, bc - ld a, [hli] - ld [$ff8c], a - ld a, [hli] - ld [$ff8d], a - ld a, [hl] - ld [$ff8e], a - ld hl, MonBillboardPaletteMapPointers - add hl, bc - ld a, [hli] - ld [$ff8f], a - ld a, [hli] - ld [$ff90], a - ld a, [hli] - ld [$ff91], a - ld de, wc000 - ld hl, wd586 - ld c, $0 -.asm_101bb - ld a, [hli] - cp [hl] - ld [hli], a - jr z, .asm_101d2 - ld b, a - call nz, Func_101d9 - ld a, [hGameBoyColorFlag] - and a - jr z, .asm_101d2 - ld a, [wCurrentStage] - bit 0, a - ld a, b - call nz, Func_10230 -.asm_101d2 - inc c - ld a, c - cp $18 - jr nz, .asm_101bb - ret - -Func_101d9: ; 0x101d9 - push bc - push hl - push de - push af - ld a, $10 - ld [de], a - inc de - ld a, $1 - ld [de], a - inc de - ld b, $0 - ld hl, Data_102a4 - add hl, bc - ld c, [hl] - sla c - rl b - sla c - rl b - sla c - rl b - sla c - rl b - ld hl, vTilesSH tile $10 - add hl, bc - ld a, l - ld [de], a - inc de - ld a, h - ld [de], a - inc de - ld a, [$ff8c] - ld l, a - ld a, [$ff8d] - ld h, a - add hl, bc - pop af - and a - jr nz, .asm_10215 - ld bc, $0180 - add hl, bc -.asm_10215 - ld a, l - ld [de], a - inc de - ld a, h - ld [de], a - inc de - ld a, [$ff8e] - ld [de], a - inc de - ld a, $0 - ld [de], a - inc de - pop bc - push de - xor a - ld de, Func_11d2 - call Func_10c5 - pop de - pop hl - pop bc - ret - -Func_10230: ; 0x10230 - push bc - push hl - push de - push af - ld a, $1 - ld [de], a - inc de - ld [de], a - inc de - ld b, $0 - ld hl, Data_102a4 - add hl, bc - ld c, [hl] - sla c - ld hl, PointerTable_10274 - add hl, bc - ld a, [hli] - ld [de], a - inc de - ld a, [hl] - ld [de], a - inc de - srl c - ld a, [$ff8f] - ld l, a - ld a, [$ff90] - ld h, a - add hl, bc - pop af - and a - ld a, [$ff91] - call ReadByteFromBank - jr nz, .asm_10261 - ld a, $5 -.asm_10261 - ld [de], a - inc de - ld a, $0 - ld [de], a - inc de - pop bc - push de - xor a - ld de, LoadTileListsBank1 - call Func_10c5 - pop de - pop hl - pop bc - ret - -PointerTable_10274: ; 0x10274 - dw $9887 - dw $9888 - dw $9889 - dw $988A - dw $988B - dw $988C - dw $98A7 - dw $98A8 - dw $98A9 - dw $98AA - dw $98AB - dw $98AC - dw $98C7 - dw $98C8 - dw $98C9 - dw $98CA - dw $98CB - dw $98CC - dw $98E7 - dw $98E8 - dw $98E9 - dw $98EA - dw $98EB - dw $98EC - -Data_102a4: ; 0x102a4 - db $00, $07, $06, $01, $0E, $15, $14, $0F, $04, $0B, $0A, $05, $0C, $13, $12, $0D, $02, $09, $08, $03, $10, $17, $16, $11 - -Func_102bc: ; 0x102bc - ld a, [wCurrentCatchEmMon] - ld c, a - ld b, $0 - sla c - rl b - add c - ld c, a - jr nc, .asm_102cb - inc b -.asm_102cb - ld hl, MonBillboardPalettePointers - add hl, bc - ld a, [hli] - ld [$ff8c], a - ld a, [hli] - ld [$ff8d], a - ld a, [hl] - ld [$ff8e], a - ld de, wc1b8 - ld a, $10 - ld [de], a - inc de - ld a, $8 - ld [de], a - inc de - ld a, $30 - ld [de], a - inc de - ld a, [$ff8c] - ld [de], a - inc de - ld a, [$ff8d] - ld [de], a - inc de - ld a, [$ff8e] - ld [de], a - inc de - ld a, $0 - ld [de], a - xor a - ld bc, wc1b8 - ld de, LoadPalettes - call Func_10c5 - ret - -Func_10301: ; 0x10301 - ld a, [wCurrentCatchEmMon] - ld c, a - ld b, $0 - sla c - rl b - add c - ld c, a - jr nc, .asm_10310 - inc b -.asm_10310 - ld hl, MonAnimatedPalettePointers - add hl, bc - ld a, [hli] - ld [$ff8c], a - ld a, [hli] - ld [$ff8d], a - ld a, [hl] - ld [$ff8e], a - ld de, wc1b8 - ld a, $10 - ld [de], a - inc de - ld a, $4 - ld [de], a - inc de - ld a, $58 - ld [de], a - inc de - ld a, [$ff8c] - ld [de], a - inc de - ld a, [$ff8d] - ld [de], a - inc de - ld a, [$ff8e] - ld [de], a - inc de - ld a, $4 - ld [de], a - inc de - ld a, $68 - ld [de], a - inc de - ld a, [$ff8c] - ld l, a - ld a, [$ff8d] - ld h, a - ld bc, $0008 - add hl, bc - ld a, l - ld [de], a - inc de - ld a, h - ld [de], a - inc de - ld a, [$ff8e] - ld [de], a - inc de - ld a, $0 - ld [de], a - xor a - ld bc, wc1b8 - ld de, LoadPalettes - call Func_10c5 - ret - -Func_10362: ; 0x10362 - ld a, [wCurrentCatchEmMon] - ld c, a - ld b, $0 - sla c - rl b - add c - ld c, a - jr nc, .asm_10371 - inc b -.asm_10371 - ld hl, MonAnimatedPicPointers - add hl, bc - ld a, [hli] - ld [$ff8c], a - ld a, [hli] - ld [$ff8d], a - ld a, [hl] - ld [$ff8e], a - ld de, wc150 - ld bc, $0000 -.asm_10384 - call Func_1038e - inc c - ld a, c - cp $d - jr nz, .asm_10384 - ret - -Func_1038e: ; 0x1038e - push bc - push de - ld a, c - sla a - add c - ld c, a - sla c - ld hl, Data_103c6 - add hl, bc - 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 - inc de - ld a, [$ff8c] - add [hl] - ld [de], a - inc hl - inc de - ld a, [$ff8d] - adc [hl] - ld [de], a - inc de - ld a, [$ff8e] - ld [de], a - inc de - ld a, $0 - ld [de], a - inc de - pop bc - push de - xor a - ld de, Func_11d2 - call Func_10c5 - pop de - pop bc - ret - -Data_103c6: ; 0x103c6 -; TODO: this might have pointers in it - db $40, $04, $00, $89, $00, $00 - db $40, $04, $40, $89, $40, $00 - db $40, $04, $80, $89, $80, $00 - db $40, $04, $C0, $89, $C0, $00 - db $40, $04, $00, $8A, $00, $01 - db $40, $04, $40, $8A, $40, $01 - db $20, $02, $80, $8A, $80, $01 - db $20, $02, $A0, $81, $A0, $01 - db $40, $04, $C0, $81, $C0, $01 - db $40, $04, $00, $82, $00, $02 - db $40, $04, $40, $82, $40, $02 - db $40, $04, $80, $82, $80, $02 - db $40, $04, $C0, $82, $C0, $02 - -Func_10414: ; 0x10414 - ld a, BANK(Data_10420) - ld bc, Data_10420 - ld de, Func_11b5 - call Func_10c5 - ret - -Data_10420: - db $18 - db $06 - dw $9887 - db $80 - db $06 - dw $98a7 - db $80 - db $06 - dw $98c7 - db $80 - db $06 - dw $98e7 - db $80 - db $00 - -Func_10432: ; 0x10432 - ld a, BANK(Data_1043e) - ld bc, Data_1043e - ld de, LoadTileLists - call Func_10c5 - ret - -Data_1043e: - db $18 - db $06 - dw $9887 - db $90, $91, $92, $93, $94, $95 - db $06 - dw $98a7 - db $96, $97, $98, $99, $9a, $9b - db $06 - dw $98c7 - db $9c, $9d, $9e, $9f, $a0, $a1 - db $06 - dw $98e7 - db $a2, $a3, $a4, $a5, $a6, $a7 - db $00 - -LoadWildMonCollisionMask: ; 0x10464 - ld a, [wCurrentCatchEmMon] - ld c, a - ld b, $0 - sla c - rl b - add c - ld c, a - jr nc, .noCarry - inc b -.noCarry - ld hl, MonAnimatedCollisionMaskPointers - add hl, bc - ld a, [hli] - ld c, a - ld a, [hli] - ld b, a - ld a, [hl] - ld h, b - ld l, c - ld de, wMonAnimatedCollisionMask - ld bc, $0080 - call FarCopyData - ret - -ClearWildMonCollisionMask: ; 0x10488 - xor a - ld hl, wMonAnimatedCollisionMask - ld b, $20 -.asm_1048e - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - dec b - jr nz, .asm_1048e - ret - -BallCaptureInit: ; 0x10496 - xor a - ld [wd5c6], a - ld a, BANK(PikachuSaverGfx) - ld hl, PikachuSaverGfx + $c0 - ld de, vTilesOB tile $7e - ld bc, $0020 - call LoadVRAMData - ld a, BANK(BallCaptureSmokeGfx) - ld hl, BallCaptureSmokeGfx - ld de, vTilesSH tile $10 - ld bc, $0180 - call LoadVRAMData - call LoadShakeBallGfx - ld hl, BallCaptureAnimationData - ld de, wBallCaptureAnimationFrameCounter - call CopyHLToDE - ld a, $1 - ld [wCapturingMon], a - xor a - ld [wBallXVelocity], a - ld [wBallXVelocity + 1], a - ld [wBallYVelocity], a - ld [wBallYVelocity + 1], a - xor a - ld [wd548], a - ld [wd549], a - lb de, $00, $0b - call PlaySoundEffect - ret - -LoadShakeBallGfx: ; 0x104e2 -; Loads the graphics for the ball shaking after a pokemon is caught. - 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 LoadVRAMData - ret - -.notPokeball - cp ULTRA_BALL - jr nc, .notGreatball - ld a, Bank(PinballGreatballShakeGfx) - ld hl, PinballGreatballShakeGfx - ld de, vTilesOB tile $38 - ld bc, $0040 - call LoadVRAMData - ret - -.notGreatball - cp MASTER_BALL - jr nc, .notUltraBall - ld a, Bank(PinballUltraballShakeGfx) - ld hl, PinballUltraballShakeGfx - ld de, vTilesOB tile $38 - ld bc, $0040 - call LoadVRAMData - ret - -.notUltraBall - ld a, Bank(PinballMasterballShakeGfx) - ld hl, PinballMasterballShakeGfx - ld de, vTilesOB tile $38 - ld bc, $0040 - call LoadVRAMData - ret - -CapturePokemon: ; 0x1052d - ld a, [wBallCaptureAnimationFrame] - cp $c - jr nz, .asm_10541 - ld a, [wBallCaptureAnimationFrameCounter] - cp $1 - jr nz, .asm_10541 - lb de, $00, $41 - call PlaySoundEffect -.asm_10541 - ld hl, BallCaptureAnimationData - ld de, wBallCaptureAnimationFrameCounter - call UpdateAnimation - ld a, [wBallCaptureAnimationFrameIndex] - cp $1 - jr nz, .asm_1055d - ld a, [wBallCaptureAnimationFrameCounter] - cp $1 - jr nz, .asm_1055d - xor a - ld [wWildMonIsHittable], a - ret - -.asm_1055d - ld a, [wBallCaptureAnimationFrameIndex] - cp $15 - ret nz - ld a, [wBallCaptureAnimationFrameCounter] - cp $1 - ret nz - call Func_3475 - ld de, $0000 - call PlaySong - rst AdvanceFrame - lb de, $23, $29 - call PlaySoundEffect - call Func_10825 - call Func_3475 - ld a, [wNumPartyMons] - and a - call z, Func_10848 - ld a, $50 - ld [wd4b4], a - ld a, $40 - ld [wd4b6], a - ld a, $80 - ld [wBallXVelocity], a - xor a - ld [wBallXPos], a - ld [wBallYPos], a - ld [wCapturingMon], a - ld a, $1 - ld [wd548], a - ld [wd549], a - callba RestoreBallSaverAfterCatchEmMode - call ConcludeCatchEmMode - ld de, $0001 - call PlaySong - ld hl, wd628 - call Func_e4a - jr nc, .asm_105d1 - ld c, $a - call Func_e55 - callba z, Func_30164 -.asm_105d1 - call SetPokemonOwnedFlag - ld a, [wd624] - cp $3 - ret z - inc a - ld [wd625], a - ld a, $80 - ld [wd626], a - ret - -BallCaptureAnimationData: ; 0x105e4 -; Each entry is [OAM id][duration] - db $05, $00 - db $05, $01 - db $05, $02 - db $04, $03 - db $06, $04 - db $08, $05 - db $07, $06 - db $05, $07 - db $04, $08 - db $04, $09 - db $04, $0A - db $04, $0B - db $24, $0A - db $09, $0C - db $09, $0A - db $09, $0C - db $27, $0A - db $09, $0C - db $09, $0A - db $09, $0C - db $24, $0A - db $01, $0A - db $00 ; terminator - -Func_10611: ; 0x10611 - and a - ret z - dec a - sla a - ld c, a - ld b, $0 - ld hl, Data_1062a - add hl, bc - ld a, [hli] - ld c, a - ld a, [hl] - ld b, a - ld a, BANK(Data_1062a) - ld de, Func_11d2 - call Func_10c5 - ret - -Data_1062a: - dw Data_10630 - dw Data_10638 - dw Data_10640 - -Data_10630: - db $20 - db $02 - dw $8ae0 - dw CatchTextGfx + $00 - db BANK(CatchTextGfx) - db $00 - -Data_10638: - db $20 - db $02 - dw $8b00 - dw CatchTextGfx + $20 - db BANK(CatchTextGfx) - db $00 - -Data_10640: - db $20 - db $02 - dw $8b20 - dw CatchTextGfx + $40 - db BANK(CatchTextGfx) - db $00 - -Func_10648: ; 0x10648 - call Func_10184 - ld a, [wd54e] - dec a - ld [wd54e], a - jr nz, .asm_10677 - ld a, $14 - ld [wd54e], a - ld hl, wd586 - ld b, $18 -.asm_1065e - ld a, [wd54f] - and $1 - ld [hli], a - xor $1 - ld [hli], a - dec b - jr nz, .asm_1065e - ld a, [wd54f] - dec a - ld [wd54f], a - jr nz, .asm_10677 - ld hl, wd54d - inc [hl] -.asm_10677 - ret - -ShowAnimatedWildMon: ; 0x10678 - ld a, [wCurrentCatchEmMon] - ld c, a - ld b, $0 - ld hl, MonAnimatedSpriteTypes - add hl, bc - ld a, [hl] - ld [wd5bc], a - ld [wd5bd], a - ld a, $1 - ld [wWildMonIsHittable], a - xor a - ld [wBallHitWildMon], a - ld [wNumMonHits], a - ret - -Func_10696: ; 0x10696 - call FillBottomMessageBufferWithBlackTile - call Func_30db - ld hl, wd5cc - ld de, LetsGetPokemonText - call LoadTextHeader - ret - -Func_106a6: ; 0x106a6 - call FillBottomMessageBufferWithBlackTile - call Func_30db - ld hl, wd5cc - ld de, PokemonRanAwayText - call LoadTextHeader - ret - -Func_106b6: ; 0x106b6 - ld a, [wCurrentCatchEmMon] - ld c, a - ld b, $0 - sla c - rl b - sla c - rl b - sla c - rl b - sla c - rl b ; bc was just multiplied by 16 - ld hl, PokemonNames + 1 - add hl, bc - ld de, YouGotAnText ; "You got an" - ld bc, Data_2a91 - ld a, [hl] - ; check if mon's name starts with a vowel, so it can print "an", instead of "a" - cp "A" - jr z, .asm_106f1 - cp "I" - jr z, .asm_106f1 - cp "U" - jr z, .asm_106f1 - cp "E" - jr z, .asm_106f1 - cp "O" - jr z, .asm_106f1 - ld de, YouGotAText ; "You got a" - ld bc, Data_2a79 -.asm_106f1 - push hl - push bc - push de - call FillBottomMessageBufferWithBlackTile - call Func_30db - ld hl, wd5cc - pop de - call LoadTextHeader - ld hl, wd5d4 - pop de - call LoadTextHeader - pop hl - ld de, wBottomMessageText + $20 - ld b, $0 ; count the number of letters in mon's name in register b -.readLetter - ld a, [hli] - and a - jr z, .endOfName - ld [de], a - inc de - inc b - jr .readLetter - -.endOfName - ld a, $20 - ld [de], a - inc de - xor a - ld [de], a - ld a, [wd5db] - add b - ld [wd5db], a - ld a, $14 - sub b - srl a - ld b, a - ld a, [wd5d8] - add b - ld [wd5d8], a - ret - -Func_10732: ; 0x10732 - ld a, [wCurrentCatchEmMon] - inc a - ld e, a - ld d, $0 - call PlayCry - ret - -AddCaughtPokemonToParty: ; 0x1073d - ld a, [wNumPartyMons] - ld c, a - ld b, $0 - ld hl, wPartyMons - add hl, bc - ld a, [wCurrentCatchEmMon] - ld [hl], a - ld a, [wNumPartyMons] - inc a - ld [wNumPartyMons], a - ret - -SetPokemonSeenFlag: ; 0x10753 - ld a, [wSpecialMode] - and a - ld a, [wCurrentCatchEmMon] - jr z, .asm_10766 - ld a, [wCurrentEvolutionMon] - cp $ff - jr nz, .asm_10766 - ld a, [wCurrentCatchEmMon] -.asm_10766 - ld c, a - ld b, $0 - ld hl, wPokedexFlags - add hl, bc - set 0, [hl] - ld hl, wPokedexFlags - ld de, sPokedexFlags - ld bc, $0098 - call SaveData - ret - -SetPokemonOwnedFlag: ; 0x1077c - ld a, [wSpecialMode] - and a - ld a, [wCurrentCatchEmMon] - jr z, .asm_1078f - ld a, [wCurrentEvolutionMon] - cp $ff - jr nz, .asm_1078f - ld a, [wCurrentCatchEmMon] -.asm_1078f - ld c, a - ld b, $0 - ld hl, wPokedexFlags - add hl, bc - set 1, [hl] - ld hl, wPokedexFlags - ld de, sPokedexFlags - ld bc, $0098 - call SaveData - ret - -Func_107a5: ; 0x107a5 - xor a - ld hl, wIndicatorStates - ld b, $13 -.asm_107ab - ld [hli], a - dec b - jr nz, .asm_107ab - ret - -Func_107b0: ; 0x107b0 - xor a - ld [wd604], a - ld [wIndicatorStates + 4], a - callba Func_16425 - ret - -Func_107c2: ; 0x107c2 - ld a, $1e - ld [wd607], a - ret - -Func_107c8: ; 0x107c8 - ld a, [wRightAlleyCount] - cp $3 - jr z, .asm_107d1 - set 7, a -.asm_107d1 - ld [wIndicatorStates + 1], a - ld a, [wRightAlleyCount] - cp $2 - jr c, .asm_107e0 - ld a, $80 - ld [wIndicatorStates + 3], a -.asm_107e0 - ld a, [wLeftAlleyCount] - set 7, a - ld [wIndicatorStates], a - ret - -Func_107e9: ; 0x107e9 - ld a, [wLeftAlleyCount] - cp $3 - ld a, $4 - jr nz, .asm_107f4 - ld a, $6 -.asm_107f4 - ld [wd7ad], a - ret - -Func_107f8: ; 0x107f8 - ld a, [wTimerFrames] - and a - ret nz - ld a, [wTimerMinutes] - and a - ret nz - ld a, [wTimerSeconds] - cp $20 - jr nz, .asm_10810 - lb de, $07, $49 - call PlaySoundEffect - ret - -.asm_10810 - cp $10 - jr nz, .asm_1081b - lb de, $0a, $4a - call PlaySoundEffect - ret - -.asm_1081b - cp $5 - ret nz - lb de, $0d, $4b - call PlaySoundEffect - ret - -Func_10825: ; 0x10825 - call Retrieve8DigitBCDValueAtwd47a - push bc - push de - call AddBCDEToCurBufferValue - call FillBottomMessageBufferWithBlackTile - call Func_30db - ld hl, wd5e9 - ld de, Data_2a50 - call Func_3372 - pop de - pop bc - ld hl, wd5e4 - ld de, JackpotText - call Func_3357 - ret - -Func_10848: ; 0x10848 - ld bc, OneHundredMillionPoints - callba AddBigBCD6FromQueue - call FillBottomMessageBufferWithBlackTile - call Func_30db - ld hl, wd5d4 - ld de, OneBillionText - call LoadTextHeader - ld hl, wd5cc - ld de, PokemonCaughtSpecialBonusText - call LoadTextHeader - call Func_3475 - ret - -Func_10871: ; 0x10871 - ld a, [wCurrentCatchEmMon] - ld c, a - ld b, $0 - ld hl, EvolutionLineIds - add hl, bc - ld a, [hl] ; a contains evolution line id - ld c, a - ld b, $0 - ld l, c - ld h, b - sla l - rl h - sla l - rl h - sla l - rl h - sla l - rl h - add hl, bc - add hl, bc - add hl, bc - ld c, l - ld b, h - ld hl, CatchEmModeInitialIndicatorStates - add hl, bc - ld de, wIndicatorStates - ld b, $13 ; number of indicators -.loop - ld a, [hli] - ld [de], a - inc de - dec b - jr nz, .loop - xor a - ld [wRightAlleyCount], a - call Func_107b0 - ld a, $4 - ld [wd7ad], a - ld de, $0002 - call PlaySong - ld a, [wCurrentStage] - bit 0, a - jr nz, .asm_108d3 - callba LoadStageCollisionAttributes - callba Func_159f4 - ret - -.asm_108d3 - callba Func_14135 - callba Func_10184 - ld a, [hGameBoyColorFlag] - and a - callba nz, Func_102bc - ret - -Func_108f5: ; 0x108f5 - call Func_107a5 - call Func_107c2 - call Func_107c8 - call Func_107e9 - ld a, [wCurrentStage] - bit 0, a - ret z - callba Func_14135 - call Func_10432 - callba Func_30253 - ld a, Bank(StageSharedBonusSlotGlowGfx) - ld hl, StageSharedBonusSlotGlowGfx - ld de, vTilesOB tile $1a - ld bc, $0160 - call LoadVRAMData - ld a, BANK(StageSharedBonusSlotGlow2Gfx) - ld hl, StageSharedBonusSlotGlow2Gfx - ld de, vTilesOB tile $38 - ld bc, $0020 - call LoadVRAMData - ld hl, BlankSaverSpaceTileDataRedField - ld a, BANK(BlankSaverSpaceTileDataRedField) - call Func_10aa - ld a, [wd624] - callba Func_174d4 - ld hl, CaughtPokeballTileDataPointers - ld a, BANK(CaughtPokeballTileDataPointers) - call Func_10aa - ret - -BlankSaverSpaceTileDataRedField: - db 3 - dw BlankSaverSpaceTileDataRedField1 - dw BlankSaverSpaceTileDataRedField2 - dw BlankSaverSpaceTileDataRedField3 - -BlankSaverSpaceTileDataRedField1: - dw Func_11d2 - db $20, $02 - dw vTilesSH tile $2e - dw StageRedFieldBottomBaseGameBoyColorGfx + $2e0 - db Bank(StageRedFieldBottomBaseGameBoyColorGfx) - db $00 - -BlankSaverSpaceTileDataRedField2: - dw Func_11d2 - db $20, $02 - dw vTilesSH tile $30 - dw StageRedFieldBottomBaseGameBoyColorGfx + $300 - db Bank(StageRedFieldBottomBaseGameBoyColorGfx) - db $00 - -BlankSaverSpaceTileDataRedField3: - dw Func_11d2 - db $20, $02 - dw vTilesSH tile $32 - dw StageRedFieldBottomBaseGameBoyColorGfx + $320 - db Bank(StageRedFieldBottomBaseGameBoyColorGfx) - db $00 - -CaughtPokeballTileDataPointers: - db 1 - dw CaughtPokeballTileData - -CaughtPokeballTileData: - dw Func_11d2 - db $20, $02 - dw vTilesSH tile $2e - dw CaughtPokeballGfx - db Bank(CaughtPokeballGfx) - db $00 - -DoNothing_1098a: ; 0x1098a - ret - -DoNothing_1098b: ; 0x1098b - ret - -Func_1098c: ; 0x1098c - ld a, [wCurrentCatchEmMon] - ld c, a - ld b, $0 - ld hl, EvolutionLineIds - add hl, bc - ld a, [hl] - ld c, a - ld b, $0 - ld l, c - ld h, b - sla l - rl h - sla l - rl h - sla l - rl h - sla l - rl h - add hl, bc - add hl, bc - add hl, bc - ld c, l - ld b, h - ld hl, CatchEmModeInitialIndicatorStates - add hl, bc - ld de, wIndicatorStates - ld b, $13 ; number of indicators -.loop - ld a, [hli] - ld [de], a - inc de - dec b - jr nz, .loop - xor a - ld [wRightAlleyCount], a - callba Func_1f2ed - ld de, $0002 - call PlaySong - ld a, [wCurrentStage] - bit 0, a - ret z - callba Func_1c2cb - ld [hFarCallTempA], a - ld a, $4 - ld hl, Func_10184 - call BankSwitch - ld a, [hGameBoyColorFlag] - and a - callba nz, Func_102bc - ret - -Func_109fc: ; 0x109fc - call Func_107a5 - call Func_107c2 - callba Func_1f2ff - ld a, [wCurrentStage] - bit 0, a - ret z - callba Func_1c2cb - call Func_10432 - callba Func_30253 - ld a, BANK(StageSharedBonusSlotGlowGfx) - ld hl, StageSharedBonusSlotGlowGfx - ld de, vTilesOB tile $1a - ld bc, $0160 - call LoadVRAMData - ld a, BANK(StageSharedBonusSlotGlow2Gfx) - ld hl, StageSharedBonusSlotGlow2Gfx - ld de, vTilesOB tile $38 - ld bc, $0020 - call LoadVRAMData - ld hl, BlankSaverSpaceTileDataBlueField - ld a, BANK(BlankSaverSpaceTileDataBlueField) - call Func_10aa - ld a, [wd624] - callba Func_174d4 - ld hl, Data_10a88 - ld a, BANK(Data_10a88) - call Func_10aa - ret - -BlankSaverSpaceTileDataBlueField: - db 3 - dw BlankSaverSpaceTileDataBlueField1 - dw BlankSaverSpaceTileDataBlueField2 - dw BlankSaverSpaceTileDataBlueField3 - -BlankSaverSpaceTileDataBlueField1: - dw Func_11d2 - db $20, $02 - dw vTilesSH tile $2e - dw StageBlueFieldBottomBaseGameBoyColorGfx + $2e0 - db Bank(StageBlueFieldBottomBaseGameBoyColorGfx) - db $00 - -BlankSaverSpaceTileDataBlueField2: - dw Func_11d2 - db $20, $02 - dw vTilesSH tile $30 - dw StageBlueFieldBottomBaseGameBoyColorGfx + $300 - db Bank(StageBlueFieldBottomBaseGameBoyColorGfx) - db $00 - -BlankSaverSpaceTileDataBlueField3: - dw Func_11d2 - db $20, $02 - dw vTilesSH tile $32 - dw StageBlueFieldBottomBaseGameBoyColorGfx + $320 - db Bank(StageBlueFieldBottomBaseGameBoyColorGfx) - db $00 - -Data_10a88: - db 1 - dw Data_10a8b - -Data_10a8b: - dw Func_11d2 - db $20, $02 - dw vTilesSH tile $2e - dw CaughtPokeballGfx - db Bank(CaughtPokeballGfx) - db $00 +INCLUDE "engine/pinball_game/catchem_mode.asm" Func_10a95: ; 0x19a95 ld a, [wCurrentStage] |