diff options
-rwxr-xr-x | constants/pinball_game_constants.asm | 3 | ||||
-rwxr-xr-x | engine/pinball_game/billboard.asm | 73 | ||||
-rwxr-xr-x | engine/pinball_game/slot.asm | 602 | ||||
-rwxr-xr-x | main.asm | 712 | ||||
-rwxr-xr-x | wram.asm | 7 |
5 files changed, 702 insertions, 695 deletions
diff --git a/constants/pinball_game_constants.asm b/constants/pinball_game_constants.asm index e52a41f..e16b2c3 100755 --- a/constants/pinball_game_constants.asm +++ b/constants/pinball_game_constants.asm @@ -1 +1,4 @@ MAX_PIKACHU_SAVER_CHARGE EQU 15
+
+CATCHEM_MODE_SLOT_REWARD EQU 1
+EVOLUTION_MODE_SLOT_REWARD EQU 2
diff --git a/engine/pinball_game/billboard.asm b/engine/pinball_game/billboard.asm new file mode 100755 index 0000000..33975b7 --- /dev/null +++ b/engine/pinball_game/billboard.asm @@ -0,0 +1,73 @@ +LoadBillboardPicture: ; 0xf178
+; Loads a billboard picture's tiles into VRAM
+; input: a = billboard picture id
+ push hl
+ ld c, a
+ ld b, $0
+ sla c
+ add c ; a has been multplied by 3 becuase entires in BillboardPicturePointers are 3 bytes long
+ ld c, a
+ ld hl, BillboardPicturePointers
+ 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, vTilesSH tile $10 ; destination address to copy the tiles
+ ld bc, $180 ; billboard pictures are $180 bytes
+ call LoadVRAMData ; loads the tiles into VRAM
+ pop hl
+ ret
+
+LoadBillboardOffPicture: ; 0xf196
+; Loads the dimly-lit "off" version of a billboard picture into VRAM
+; Input: a = billboard picture id
+ push hl
+ ld c, a
+ ld b, $0
+ sla c
+ add c
+ ld c, a
+ ld hl, BillboardPicturePointers
+ 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 bc, $0180 ; get the address of the "off" version of the picture
+ add hl, bc
+ ld de, vTilesSH tile $10
+ ld bc, $0180
+ call LoadVRAMData
+ pop hl
+ ret
+
+INCLUDE "data/billboard/billboard_pic_pointers.asm"
+
+LoadGreyBillboardPaletteData: ; 0xf269
+ ld a, [hGameBoyColorFlag]
+ and a
+ jr z, .loadPaletteMap
+ ld a, BANK(StageRedFieldBottomBGPalette5) ; also used in blue stage
+ ld hl, StageRedFieldBottomBGPalette5
+ ld de, $0030
+ ld bc, $0008
+ call Func_7dc
+.loadPaletteMap
+ ld a, BANK(GreyBillboardPaletteMap)
+ ld de, GreyBillboardPaletteMap
+ hlCoord 7, 4, vBGMap
+ call LoadBillboardPaletteMap
+ ret
+
+GreyBillboardPaletteMap:
+ db $06, $06, $06, $06, $06, $06
+ db $06, $06, $06, $06, $06, $06
+ db $06, $06, $06, $06, $06, $06
+ db $06, $06, $06, $06, $06, $06
diff --git a/engine/pinball_game/slot.asm b/engine/pinball_game/slot.asm new file mode 100755 index 0000000..f9628f2 --- /dev/null +++ b/engine/pinball_game/slot.asm @@ -0,0 +1,602 @@ +Func_ed8e: ; 0xed8e
+ xor a
+ ld [wd803], a
+ ld [wd804], a
+ ld [wCatchEmOrEvolutionSlotRewardActive], a
+ ld a, [wNumPartyMons]
+ ld [wd620], a
+ ld a, [wBallType]
+ ld c, a
+ ld b, $0
+ ld hl, BallTypeMultipliers
+ add hl, bc
+ ld a, [hl]
+ ld [wd621], a
+.asm_edac
+ xor a
+ ld [hJoypadState], a
+ ld [hNewlyPressedButtons], a
+ ld [hPressedButtons], a
+ call HandleTilts
+ ld a, [wCurrentStage]
+ bit 0, a
+ ld [hFarCallTempA], a
+ ld a, $3
+ ld hl, HandleFlippers
+ call nz, BankSwitch
+ callba DrawSpritesForStage
+ call Func_33e3
+ call CleanOAMBuffer
+ rst AdvanceFrame
+ ld a, [wd7af]
+ and a
+ jr nz, .asm_edac
+ ld a, [wd7b3]
+ and a
+ jr nz, .asm_edac
+ ld a, [hGameBoyColorFlag]
+ and a
+ call nz, LoadGreyBillboardPaletteData
+ call GenRandom
+ and $f0
+ ld [wd61a], a
+ xor a
+ ld [wd61b], a
+ ld [wd61e], a
+.asm_6df7
+ ld a, [wd61a]
+ ld c, a
+ ld b, $0
+ ld hl, Data_f339
+ add hl, bc
+ ld a, [wd619]
+ add [hl]
+ ld c, a
+ ld hl, Data_f439
+ add hl, bc
+ ld a, [hli]
+ bit 7, a
+ jr nz, .asm_ee56
+ call Func_eef9
+ ld [wd61d], a
+ push af
+ lb de, $00, $09
+ call PlaySoundEffect
+ pop af
+ call LoadBillboardOffPicture
+ ld a, [wd61b]
+ cp $a
+ jr nc, .asm_ee29
+ ld a, $a
+.asm_ee29
+ ld b, a
+.asm_ee2a
+ push bc
+ call Func_eeee
+ ld a, [wd61e]
+ and a
+ jr nz, .asm_ee47
+ call Func_ef1e
+ jr z, .asm_ee47
+ ld [wd61e], a
+ ld a, $32
+ ld [wd61b], a
+ lb de, $07, $28
+ call PlaySoundEffect
+.asm_ee47
+ pop bc
+ dec b
+ jr nz, .asm_ee2a
+ ld a, [wd61b]
+ inc a
+ ld [wd61b], a
+ cp $3c
+ jr z, .asm_ee69
+.asm_ee56
+ ld a, [wd61a]
+ and $f0
+ ld b, a
+ ld a, [wd61a]
+ inc a
+ and $f
+ or b
+ ld [wd61a], a
+ jp .asm_6df7
+
+.asm_ee69
+ ld a, [wd61d]
+ cp $5
+ jr nz, .asm_ee78
+ lb de, $0c, $42
+ call PlaySoundEffect
+ jr .asm_ee7e
+
+.asm_ee78
+ lb de, $0c, $43
+ call PlaySoundEffect
+.asm_ee7e
+ ld b, $28
+.asm_ee80
+ push bc
+ rst AdvanceFrame
+ pop bc
+ call Func_ef1e
+ jr nz, .asm_ee8b
+ dec b
+ jr nz, .asm_ee80
+.asm_ee8b
+ ld a, [hGameBoyColorFlag]
+ and a
+ ld a, [wd61d]
+ call nz, Func_f2a0
+ ld b, $80
+.asm_ee96
+ push bc
+ ld a, b
+ and $f
+ jr nz, .asm_eeae
+ bit 4, b
+ jr z, .asm_eea8
+ ld a, [wd61d]
+ call LoadBillboardPicture
+ jr .asm_eeae
+
+.asm_eea8
+ ld a, [wd61d]
+ call LoadBillboardOffPicture
+.asm_eeae
+ rst AdvanceFrame
+ pop bc
+ call Func_ef1e
+ jr nz, .asm_eeb8
+ dec b
+ jr nz, .asm_ee96
+.asm_eeb8
+ ld a, [wd619]
+ add $a
+ cp $fa
+ jr nz, .asm_eec3
+ ld a, $64
+.asm_eec3
+ ld [wd619], a
+ ld a, [wd61d]
+ rst JumpTable ; calls JumpToFuncInTable
+SlotRewards_CallTable: ; 0xeeca
+ dw Start30SecondSaverTimer
+ dw Start60SecondSaverTimer
+ dw Start90SecondSaverTimer
+ dw SlotRewardPikachuSaver
+ dw SlotRewardBonusMultiplier
+ dw SlotRewardSmallPoints
+ dw SlotRewardBigPoints
+ dw SlotRewardCatchEmMode
+ dw SlotRewardEvolutionMode
+ dw SlotRewardUpgradeBall
+ dw SlotRewardUpgradeBall
+ dw SlotRewardUpgradeBall
+ dw SlotBonusMultiplier
+ dw SlotRewardGoToBonusStage
+ dw SlotRewardGoToBonusStage
+ dw SlotRewardGoToBonusStage
+ dw SlotRewardGoToBonusStage
+ dw SlotRewardGoToBonusStage
+
+Func_eeee: ; 0xeeee
+ push bc
+ ld bc, $0200
+.asm_eef2
+ dec bc
+ ld a, b
+ or c
+ jr nz, .asm_eef2
+ pop bc
+ ret
+
+Func_eef9: ; 0xeef9
+ cp $8
+ jr nz, .asm_ef09
+ ld a, [wd620]
+ and a
+ jr nz, .asm_ef06
+ ld a, $7
+ ret
+
+.asm_ef06
+ ld a, $8
+ ret
+
+.asm_ef09
+ cp $9
+ jr nz, .asm_ef14
+ push hl
+ ld hl, wd621
+ add [hl]
+ pop hl
+ ret
+
+.asm_ef14
+ cp $d
+ ret nz
+ push hl
+ ld hl, wd498
+ add [hl]
+ pop hl
+ ret
+
+Func_ef1e: ; 0xef1e
+ push bc
+ ld hl, wKeyConfigRightFlipper
+ call IsKeyPressed
+ jr nz, .asm_ef2d
+ ld hl, wKeyConfigLeftFlipper
+ call IsKeyPressed
+.asm_ef2d
+ pop bc
+ ret
+
+BallTypeMultipliers: ; 0xef2f
+; Score multiplier for each ball type.
+ db $00 ; POKE_BALL
+ db $00
+ db $01 ; GREAT_BALL
+ db $02 ; ULTRA_BALL
+ db $02
+ db $02 ; MASTER_BALL
+
+INCLUDE "engine/pinball_game/ball_saver/ball_saver_30.asm"
+INCLUDE "engine/pinball_game/ball_saver/ball_saver_60.asm"
+INCLUDE "engine/pinball_game/ball_saver/ball_saver_90.asm"
+
+SlotRewardPikachuSaver: ; 0xef83
+ ld a, $1
+ ld [wPikachuSaverSlotRewardActive], a
+ ld a, MAX_PIKACHU_SAVER_CHARGE
+ ld [wPikachuSaverCharge], a
+ xor a
+ ld [wd85d], a
+ call Func_310a
+ rst AdvanceFrame
+ ld a, $0
+ callba PlayPikachuSoundClip
+ ld a, $1
+ ld [wd85d], a
+ ret
+
+SlotRewardBonusMultiplier: ; 0xefa7
+ callba Func_30164
+ ret
+
+SlotRewardSmallPoints: ; 0xefb2
+ ld a, $8
+ call Func_a21
+ ld [wCurSlotBonus], a
+ ld b, $80
+.asm_efbc
+ push bc
+ ld a, b
+ and $f
+ jr nz, .asm_efd8
+ bit 4, b
+ jr z, .asm_efd0
+ ld a, [wCurSlotBonus]
+ add (SmallReward100PointsOnPic_Pointer - BillboardPicturePointers) / 3
+ call LoadBillboardPicture
+ jr .asm_efd8
+
+.asm_efd0
+ ld a, [wCurSlotBonus]
+ add (SmallReward100PointsOnPic_Pointer - BillboardPicturePointers) / 3
+ call LoadBillboardOffPicture
+.asm_efd8
+ rst AdvanceFrame
+ pop bc
+ ld a, [hNewlyPressedButtons]
+ and FLIPPERS
+ jr nz, .asm_efe3
+ dec b
+ jr nz, .asm_efbc
+.asm_efe3
+ ld a, [wCurSlotBonus]
+ inc a
+ swap a
+ ld e, a
+ ld d, $0
+ ld bc, $0000
+ call AddBCDEToCurBufferValue
+ ret
+
+SlotRewardBigPoints: ; 0xeff3
+ ld a, $8
+ call Func_a21
+ ld [wCurSlotBonus], a
+ ld b, $80
+.asm_effd
+ push bc
+ ld a, b
+ and $f
+ jr nz, .asm_f019
+ bit 4, b
+ jr z, .asm_f011
+ ld a, [wCurSlotBonus]
+ add (BigReward1000000PointsOnPic_Pointer - BillboardPicturePointers) / 3
+ call LoadBillboardPicture
+ jr .asm_f019
+
+.asm_f011
+ ld a, [wCurSlotBonus]
+ add (BigReward1000000PointsOnPic_Pointer - BillboardPicturePointers) / 3
+ call LoadBillboardOffPicture
+.asm_f019
+ rst AdvanceFrame
+ pop bc
+ ld a, [hNewlyPressedButtons]
+ and FLIPPERS
+ jr nz, .asm_f024
+ dec b
+ jr nz, .asm_effd
+.asm_f024
+ ld a, [wCurSlotBonus]
+ inc a
+ swap a
+ ld c, a
+ ld b, $0
+ ld de, $0000
+ call AddBCDEToCurBufferValue
+ ret
+
+SlotRewardCatchEmMode: ; 0xf034
+ ld a, CATCHEM_MODE_SLOT_REWARD
+ ld [wCatchEmOrEvolutionSlotRewardActive], a
+ ret
+
+SlotRewardEvolutionMode: ; 0xf03a
+ ld a, EVOLUTION_MODE_SLOT_REWARD
+ ld [wCatchEmOrEvolutionSlotRewardActive], a
+ ret
+
+SlotRewardUpgradeBall: ; 0xf040
+ ; load approximately 1 minute of frames into wBallTypeCounter
+ ld a, $10
+ ld [wBallTypeCounter], a
+ ld a, $e
+ ld [wBallTypeCounter + 1], a
+ ld a, [wBallType]
+ cp MASTER_BALL
+ jr z, .masterBall
+ lb de, $06, $3a
+ call PlaySoundEffect
+ call FillBottomMessageBufferWithBlackTile
+ call Func_30db
+ ld de, FieldMultiplierText
+ ld hl, wd5cc
+ call LoadTextHeader
+ ; upgrade ball type
+ ld a, [wBallType]
+ ld c, a
+ ld b, $0
+ ld hl, BallTypeProgressionBlueField
+ add hl, bc
+ ld a, [hl]
+ ld [wBallType], a
+ add $30
+ ld [wBottomMessageText + $12], a
+ jr .asm_f0b0
+
+.masterBall
+ lb de, $0f, $4d
+ call PlaySoundEffect
+ ld bc, OneMillionPoints
+ callba AddBigBCD6FromQueue
+ ld bc, $100
+ ld de, $0000
+ push bc
+ push de
+ call FillBottomMessageBufferWithBlackTile
+ call Func_30db
+ ld hl, wd5d4
+ ld de, DigitsText1to8
+ call Func_32cc
+ pop de
+ pop bc
+ ld hl, wd5cc
+ ld de, FieldMultiplierSpecialBonusText
+ call LoadTextHeader
+.asm_f0b0
+ callba Func_155bb
+ ret
+
+BallTypeProgressionBlueField: ; 0xf0bb
+; Determines the next upgrade for the Ball.
+ db GREAT_BALL ; POKE_BALL -> GREAT_BALL
+ db GREAT_BALL ; unused
+ db ULTRA_BALL ; GREAT_BALL -> ULTRA_BALL
+ db MASTER_BALL ; ULTRA_BALL -> MASTER_BALL
+ db MASTER_BALL ; unused
+ db MASTER_BALL ; MASTER_BALL -> MASTER_BALL
+
+SlotBonusMultiplier: ; 0xf0c1
+ ld a, $4
+ call Func_a21
+ ld [wCurSlotBonus], a
+ ld b, $80
+.asm_f0cb
+ push bc
+ ld a, b
+ and $f
+ jr nz, .asm_f0e7
+ bit 4, b
+ jr z, .asm_f0df
+ ld a, [wCurSlotBonus]
+ add (BonusMultiplierX1OnPic_Pointer - BillboardPicturePointers) / 3
+ call LoadBillboardPicture
+ jr .asm_f0e7
+
+.asm_f0df
+ ld a, [wCurSlotBonus]
+ add (BonusMultiplierX1OnPic_Pointer - BillboardPicturePointers) / 3
+ call LoadBillboardOffPicture
+.asm_f0e7
+ rst AdvanceFrame
+ pop bc
+ ld a, [hNewlyPressedButtons]
+ and FLIPPERS
+ jr nz, .asm_f0f2
+ dec b
+ jr nz, .asm_f0cb
+.asm_f0f2
+ ld a, $3
+ ld [wd610], a
+ xor a
+ ld [wd611], a
+ ld [wd612], a
+ ld a, [wd482]
+ call .DivideBy25
+ ld b, c
+ ld a, [wCurSlotBonus]
+ inc a
+ ld hl, wd482
+ add [hl]
+ cp 100
+ jr c, .asm_f113
+ ld a, 99
+.asm_f113
+ ld [hl], a
+ call .DivideBy25
+ ld a, c
+ cp b
+ callba nz, Func_30164
+ callba Func_16f95
+ ld a, [wd60c]
+ callba Func_f154 ; no need for BankSwitch here...
+ ld a, [wd60d]
+ add $14
+ callba Func_f154 ; no need for BankSwitch here...
+ ret
+
+.DivideBy25: ; 0xf14a
+ ld c, $0
+.div_25
+ cp 25
+ ret c
+ sub 25
+ inc c
+ jr .div_25
+
+Func_f154: ; 0xf154
+ ld a, [wCurrentStage]
+ call CallInFollowingTable
+CallTable_f15a: ; 0xf15a
+ padded_dab Func_16f28
+ padded_dab Func_16f28
+ padded_dab Func_16f28
+ padded_dab Func_16f28
+ padded_dab Func_1d5f2
+ padded_dab Func_1d5f2
+
+SlotRewardGoToBonusStage: ; 0xf172
+ ld a, $1
+ ld [wBonusStageSlotRewardActive], a
+ ret
+
+INCLUDE "engine/pinball_game/billboard.asm"
+
+Func_f2a0: ; 0xf2a0
+ push hl
+ ld c, a
+ ld b, $0
+ sla c
+ add c
+ ld c, a
+ ld hl, PaletteDataPointerTable_f2be
+ 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, $0030
+ ld bc, $0010
+ call Func_7dc
+ pop hl
+ ret
+
+PaletteDataPointerTable_f2be: ; 0xf2be
+ dwb PaletteData_dcc00, Bank(PaletteData_dcc00)
+ dwb PaletteData_dcc00, Bank(PaletteData_dcc00)
+ dwb PaletteData_dcc00, Bank(PaletteData_dcc00)
+ dwb PaletteData_dcc08, Bank(PaletteData_dcc08)
+ dwb PaletteData_dcc08, Bank(PaletteData_dcc08)
+ dwb PaletteData_dcc10, Bank(PaletteData_dcc10)
+ dwb PaletteData_dcc18, Bank(PaletteData_dcc18)
+ dwb PaletteData_dcc20, Bank(PaletteData_dcc20)
+ dwb PaletteData_dcc08, Bank(PaletteData_dcc08)
+ dwb PaletteData_dcc28, Bank(PaletteData_dcc28)
+ dwb PaletteData_dcc08, Bank(PaletteData_dcc08)
+ dwb PaletteData_dcc30, Bank(PaletteData_dcc30)
+ dwb PaletteData_dcc38, Bank(PaletteData_dcc38)
+ dwb PaletteData_dcc40, Bank(PaletteData_dcc40)
+ dwb PaletteData_dcc48, Bank(PaletteData_dcc48)
+ dwb PaletteData_dcc50, Bank(PaletteData_dcc50)
+ dwb PaletteData_dcc58, Bank(PaletteData_dcc58)
+ dwb PaletteData_dcc60, Bank(PaletteData_dcc60)
+ dwb PaletteData_dcc00, Bank(PaletteData_dcc00)
+ dwb PaletteData_dcc00, Bank(PaletteData_dcc00)
+ dwb PaletteData_dcc00, Bank(PaletteData_dcc00)
+ dwb PaletteData_dcc00, Bank(PaletteData_dcc00)
+ dwb PaletteData_dcc00, Bank(PaletteData_dcc00)
+ dwb PaletteData_dcc00, Bank(PaletteData_dcc00)
+ dwb PaletteData_dcc00, Bank(PaletteData_dcc00)
+ dwb PaletteData_dcc00, Bank(PaletteData_dcc00)
+ dwb PaletteData_dcc00, Bank(PaletteData_dcc00)
+ dwb PaletteData_dcc00, Bank(PaletteData_dcc00)
+ dwb PaletteData_dcc00, Bank(PaletteData_dcc00)
+ dwb PaletteData_dcc00, Bank(PaletteData_dcc00)
+ dwb PaletteData_dcc00, Bank(PaletteData_dcc00)
+ dwb PaletteData_dcc00, Bank(PaletteData_dcc00)
+ dwb PaletteData_dcc00, Bank(PaletteData_dcc00)
+ dwb PaletteData_dcc00, Bank(PaletteData_dcc00)
+ dwb PaletteData_dcc00, Bank(PaletteData_dcc00)
+ dwb PaletteData_dcc00, Bank(PaletteData_dcc00)
+ dwb PaletteData_dcc00, Bank(PaletteData_dcc00)
+ dwb PaletteData_dcc00, Bank(PaletteData_dcc00)
+ dwb PaletteData_dcc00, Bank(PaletteData_dcc00)
+ dwb PaletteData_dcc00, Bank(PaletteData_dcc00)
+ dwb PaletteData_dcc00, Bank(PaletteData_dcc00)
+
+Data_f339: ; 0xf339
+ db $02, $06, $00, $08, $04, $02, $06, $08, $04, $00, $06, $02, $04, $08, $00, $02
+ db $06, $02, $04, $08, $00, $06, $04, $08, $02, $00, $06, $08, $02, $00, $06, $08
+ db $02, $04, $00, $08, $06, $04, $00, $02, $06, $04, $00, $08, $06, $04, $02, $08
+ db $00, $08, $02, $04, $00, $08, $06, $02, $04, $00, $06, $08, $04, $00, $06, $02
+ db $00, $08, $02, $04, $00, $08, $06, $04, $02, $08, $00, $06, $02, $08, $00, $06
+ db $02, $00, $06, $04, $02, $00, $06, $08, $02, $04, $00, $06, $08, $04, $02, $06
+ db $00, $02, $08, $04, $00, $02, $06, $04, $08, $02, $06, $00, $04, $08, $06, $02
+ db $04, $08, $06, $02, $00, $08, $04, $06, $00, $02, $04, $06, $00, $02, $04, $08
+ db $02, $00, $04, $06, $02, $00, $08, $04, $02, $00, $06, $04, $08, $00, $06, $04
+ db $04, $00, $02, $08, $04, $06, $00, $08, $02, $04, $06, $08, $00, $04, $06, $02
+ db $06, $08, $04, $02, $06, $00, $08, $02, $04, $00, $06, $02, $08, $04, $06, $02
+ db $04, $06, $02, $00, $08, $04, $06, $00, $08, $02, $06, $00, $08, $02, $04, $00
+ db $02, $00, $06, $04, $02, $08, $06, $00, $04, $08, $02, $00, $04, $06, $08, $00
+ db $08, $06, $04, $00, $08, $06, $02, $00, $08, $06, $04, $00, $08, $06, $04, $02
+ db $02, $00, $06, $04, $08, $02, $00, $04, $08, $02, $00, $04, $06, $02, $08, $00
+ db $04, $06, $08, $02, $00, $06, $04, $08, $02, $06, $00, $08, $04, $06, $02, $08
+
+Data_f439: ; 0xf439
+ db $05, $19, $0C, $4C, $00, $4C, $03, $4C, $FF, $00, $05, $19, $0C, $4C, $00, $4C
+ db $07, $4C, $FF, $00, $05, $19, $0C, $44, $00, $44, $03, $44, $06, $16, $05, $19
+ db $0C, $4C, $00, $4C, $08, $4C, $FF, $00, $01, $4C, $06, $66, $0D, $4C, $FF, $00
+ db $FF, $00, $05, $19, $0C, $4C, $00, $4C, $03, $4C, $FF, $00, $05, $19, $0C, $4C
+ db $00, $4C, $07, $4C, $FF, $00, $05, $19, $0C, $44, $00, $44, $03, $44, $06, $16
+ db $05, $19, $0C, $4C, $00, $4C, $08, $4C, $FF, $00, $01, $3F, $06, $3F, $0D, $3F
+ db $09, $3F, $FF, $00, $05, $11, $0C, $4F, $00, $4F, $03, $4F, $FF, $00, $05, $11
+ db $0C, $4F, $01, $4F, $07, $4F, $FF, $00, $05, $11, $0C, $44, $00, $44, $03, $44
+ db $06, $1E, $05, $11, $0C, $4F, $01, $4F, $08, $4F, $FF, $00, $02, $66, $06, $4C
+ db $0D, $4C, $FF, $00, $FF, $00, $05, $0A, $0C, $51, $00, $51, $03, $51, $FF, $00
+ db $05, $0A, $0C, $51, $01, $51, $07, $51, $FF, $00, $05, $0A, $0C, $44, $00, $44
+ db $03, $44, $06, $26, $05, $0A, $0C, $51, $01, $51, $08, $51, $FF, $00, $01, $3F
+ db $06, $3F, $0D, $3F, $09, $3F, $FF, $00, $05, $0A, $0C, $51, $00, $51, $03, $51
+ db $FF, $00, $05, $0A, $0C, $51, $01, $51, $07, $51, $FF, $00, $05, $0A, $0C, $44
+ db $00, $44, $03, $44, $06, $26, $05, $0A, $0C, $51, $01, $51, $08, $51, $FF, $00
+ db $01, $26, $06, $26, $0D, $26, $04, $8C, $FF, $00
@@ -179,681 +179,7 @@ INCLUDE "engine/pinball_game/ball_loss/ball_loss_seel_bonus.asm" INCLUDE "engine/pinball_game/flippers.asm" INCLUDE "engine/pinball_game/stage_collision_attributes.asm" INCLUDE "engine/pinball_game/vertical_screen_transition.asm" - -Func_ed8e: ; 0xed8e - xor a - ld [wd803], a - ld [wd804], a - ld [wd622], a - ld a, [wNumPartyMons] - ld [wd620], a - ld a, [wBallType] - ld c, a - ld b, $0 - ld hl, BallTypeMultipliers - add hl, bc - ld a, [hl] - ld [wd621], a -.asm_edac - xor a - ld [hJoypadState], a - ld [hNewlyPressedButtons], a - ld [hPressedButtons], a - call HandleTilts - ld a, [wCurrentStage] - bit 0, a - ld [hFarCallTempA], a - ld a, $3 - ld hl, HandleFlippers - call nz, BankSwitch - callba DrawSpritesForStage - call Func_33e3 - call CleanOAMBuffer - rst AdvanceFrame - ld a, [wd7af] - and a - jr nz, .asm_edac - ld a, [wd7b3] - and a - jr nz, .asm_edac - ld a, [hGameBoyColorFlag] - and a - call nz, LoadGreyBillboardPaletteData - call GenRandom - and $f0 - ld [wd61a], a - xor a - ld [wd61b], a - ld [wd61e], a -.asm_6df7 - ld a, [wd61a] - ld c, a - ld b, $0 - ld hl, Data_f339 - add hl, bc - ld a, [wd619] - add [hl] - ld c, a - ld hl, Data_f439 - add hl, bc - ld a, [hli] - bit 7, a - jr nz, .asm_ee56 - call Func_eef9 - ld [wd61d], a - push af - lb de, $00, $09 - call PlaySoundEffect - pop af - call LoadBillboardOffPicture - ld a, [wd61b] - cp $a - jr nc, .asm_ee29 - ld a, $a -.asm_ee29 - ld b, a -.asm_ee2a - push bc - call Func_eeee - ld a, [wd61e] - and a - jr nz, .asm_ee47 - call Func_ef1e - jr z, .asm_ee47 - ld [wd61e], a - ld a, $32 - ld [wd61b], a - lb de, $07, $28 - call PlaySoundEffect -.asm_ee47 - pop bc - dec b - jr nz, .asm_ee2a - ld a, [wd61b] - inc a - ld [wd61b], a - cp $3c - jr z, .asm_ee69 -.asm_ee56 - ld a, [wd61a] - and $f0 - ld b, a - ld a, [wd61a] - inc a - and $f - or b - ld [wd61a], a - jp .asm_6df7 - -.asm_ee69 - ld a, [wd61d] - cp $5 - jr nz, .asm_ee78 - lb de, $0c, $42 - call PlaySoundEffect - jr .asm_ee7e - -.asm_ee78 - lb de, $0c, $43 - call PlaySoundEffect -.asm_ee7e - ld b, $28 -.asm_ee80 - push bc - rst AdvanceFrame - pop bc - call Func_ef1e - jr nz, .asm_ee8b - dec b - jr nz, .asm_ee80 -.asm_ee8b - ld a, [hGameBoyColorFlag] - and a - ld a, [wd61d] - call nz, Func_f2a0 - ld b, $80 -.asm_ee96 - push bc - ld a, b - and $f - jr nz, .asm_eeae - bit 4, b - jr z, .asm_eea8 - ld a, [wd61d] - call LoadBillboardPicture - jr .asm_eeae - -.asm_eea8 - ld a, [wd61d] - call LoadBillboardOffPicture -.asm_eeae - rst AdvanceFrame - pop bc - call Func_ef1e - jr nz, .asm_eeb8 - dec b - jr nz, .asm_ee96 -.asm_eeb8 - ld a, [wd619] - add $a - cp $fa - jr nz, .asm_eec3 - ld a, $64 -.asm_eec3 - ld [wd619], a - ld a, [wd61d] - rst JumpTable ; calls JumpToFuncInTable -SlotRewards_CallTable: ; 0xeeca - dw Start30SecondSaverTimer - dw Start60SecondSaverTimer - dw Start90SecondSaverTimer - dw SlotRewardPikachuSaver - dw Func_efa7 - dw Func_efb2 - dw Func_eff3 - dw Func_f034 - dw Func_f03a - dw UpgradeBallBlueField - dw UpgradeBallBlueField - dw UpgradeBallBlueField - dw SlotBonusMultiplier - dw Func_f172 - dw Func_f172 - dw Func_f172 - dw Func_f172 - dw Func_f172 - -Func_eeee: ; 0xeeee - push bc - ld bc, $0200 -.asm_eef2 - dec bc - ld a, b - or c - jr nz, .asm_eef2 - pop bc - ret - -Func_eef9: ; 0xeef9 - cp $8 - jr nz, .asm_ef09 - ld a, [wd620] - and a - jr nz, .asm_ef06 - ld a, $7 - ret - -.asm_ef06 - ld a, $8 - ret - -.asm_ef09 - cp $9 - jr nz, .asm_ef14 - push hl - ld hl, wd621 - add [hl] - pop hl - ret - -.asm_ef14 - cp $d - ret nz - push hl - ld hl, wd498 - add [hl] - pop hl - ret - -Func_ef1e: ; 0xef1e - push bc - ld hl, wKeyConfigRightFlipper - call IsKeyPressed - jr nz, .asm_ef2d - ld hl, wKeyConfigLeftFlipper - call IsKeyPressed -.asm_ef2d - pop bc - ret - -BallTypeMultipliers: ; 0xef2f -; Score multiplier for each ball type. - db $00 ; POKE_BALL - db $00 - db $01 ; GREAT_BALL - db $02 ; ULTRA_BALL - db $02 - db $02 ; MASTER_BALL - -INCLUDE "engine/pinball_game/ball_saver/ball_saver_30.asm" -INCLUDE "engine/pinball_game/ball_saver/ball_saver_60.asm" -INCLUDE "engine/pinball_game/ball_saver/ball_saver_90.asm" - -SlotRewardPikachuSaver: ; 0xef83 - ld a, $1 - ld [wPikachuSaverSlotRewardActive], a - ld a, MAX_PIKACHU_SAVER_CHARGE - ld [wPikachuSaverCharge], a - xor a - ld [wd85d], a - call Func_310a - rst AdvanceFrame - ld a, $0 - callba PlayPikachuSoundClip - ld a, $1 - ld [wd85d], a - ret - -Func_efa7: ; 0xefa7 - callba Func_30164 - ret - -Func_efb2: ; 0xefb2 - ld a, $8 - call Func_a21 - ld [wCurSlotBonus], a - ld b, $80 -.asm_efbc - push bc - ld a, b - and $f - jr nz, .asm_efd8 - bit 4, b - jr z, .asm_efd0 - ld a, [wCurSlotBonus] - add (SmallReward100PointsOnPic_Pointer - BillboardPicturePointers) / 3 - call LoadBillboardPicture - jr .asm_efd8 - -.asm_efd0 - ld a, [wCurSlotBonus] - add (SmallReward100PointsOnPic_Pointer - BillboardPicturePointers) / 3 - call LoadBillboardOffPicture -.asm_efd8 - rst AdvanceFrame - pop bc - ld a, [hNewlyPressedButtons] - and FLIPPERS - jr nz, .asm_efe3 - dec b - jr nz, .asm_efbc -.asm_efe3 - ld a, [wCurSlotBonus] - inc a - swap a - ld e, a - ld d, $0 - ld bc, $0000 - call AddBCDEToCurBufferValue - ret - -Func_eff3: ; 0xeff3 - ld a, $8 - call Func_a21 - ld [wCurSlotBonus], a - ld b, $80 -.asm_effd - push bc - ld a, b - and $f - jr nz, .asm_f019 - bit 4, b - jr z, .asm_f011 - ld a, [wCurSlotBonus] - add (BigReward1000000PointsOnPic_Pointer - BillboardPicturePointers) / 3 - call LoadBillboardPicture - jr .asm_f019 - -.asm_f011 - ld a, [wCurSlotBonus] - add (BigReward1000000PointsOnPic_Pointer - BillboardPicturePointers) / 3 - call LoadBillboardOffPicture -.asm_f019 - rst AdvanceFrame - pop bc - ld a, [hNewlyPressedButtons] - and FLIPPERS - jr nz, .asm_f024 - dec b - jr nz, .asm_effd -.asm_f024 - ld a, [wCurSlotBonus] - inc a - swap a - ld c, a - ld b, $0 - ld de, $0000 - call AddBCDEToCurBufferValue - ret - -Func_f034: ; 0xf034 - ld a, $1 - ld [wd622], a - ret - -Func_f03a: ; 0xf03a - ld a, $2 - ld [wd622], a - ret - -UpgradeBallBlueField: ; 0xf040 - ; load approximately 1 minute of frames into wBallTypeCounter - ld a, $10 - ld [wBallTypeCounter], a - ld a, $e - ld [wBallTypeCounter + 1], a - ld a, [wBallType] - cp MASTER_BALL - jr z, .masterBall - lb de, $06, $3a - call PlaySoundEffect - call FillBottomMessageBufferWithBlackTile - call Func_30db - ld de, FieldMultiplierText - ld hl, wd5cc - call LoadTextHeader - ; upgrade ball type - ld a, [wBallType] - ld c, a - ld b, $0 - ld hl, BallTypeProgressionBlueField - add hl, bc - ld a, [hl] - ld [wBallType], a - add $30 - ld [wBottomMessageText + $12], a - jr .asm_f0b0 - -.masterBall - lb de, $0f, $4d - call PlaySoundEffect - ld bc, OneMillionPoints - callba AddBigBCD6FromQueue - ld bc, $100 - ld de, $0000 - push bc - push de - call FillBottomMessageBufferWithBlackTile - call Func_30db - ld hl, wd5d4 - ld de, DigitsText1to8 - call Func_32cc - pop de - pop bc - ld hl, wd5cc - ld de, FieldMultiplierSpecialBonusText - call LoadTextHeader -.asm_f0b0 - callba Func_155bb - ret - -BallTypeProgressionBlueField: ; 0xf0bb -; Determines the next upgrade for the Ball. - db GREAT_BALL ; POKE_BALL -> GREAT_BALL - db GREAT_BALL ; unused - db ULTRA_BALL ; GREAT_BALL -> ULTRA_BALL - db MASTER_BALL ; ULTRA_BALL -> MASTER_BALL - db MASTER_BALL ; unused - db MASTER_BALL ; MASTER_BALL -> MASTER_BALL - -SlotBonusMultiplier: ; 0xf0c1 - ld a, $4 - call Func_a21 - ld [wCurSlotBonus], a - ld b, $80 -.asm_f0cb - push bc - ld a, b - and $f - jr nz, .asm_f0e7 - bit 4, b - jr z, .asm_f0df - ld a, [wCurSlotBonus] - add (BonusMultiplierX1OnPic_Pointer - BillboardPicturePointers) / 3 - call LoadBillboardPicture - jr .asm_f0e7 - -.asm_f0df - ld a, [wCurSlotBonus] - add (BonusMultiplierX1OnPic_Pointer - BillboardPicturePointers) / 3 - call LoadBillboardOffPicture -.asm_f0e7 - rst AdvanceFrame - pop bc - ld a, [hNewlyPressedButtons] - and FLIPPERS - jr nz, .asm_f0f2 - dec b - jr nz, .asm_f0cb -.asm_f0f2 - ld a, $3 - ld [wd610], a - xor a - ld [wd611], a - ld [wd612], a - ld a, [wd482] - call .DivideBy25 - ld b, c - ld a, [wCurSlotBonus] - inc a - ld hl, wd482 - add [hl] - cp 100 - jr c, .asm_f113 - ld a, 99 -.asm_f113 - ld [hl], a - call .DivideBy25 - ld a, c - cp b - callba nz, Func_30164 - callba Func_16f95 - ld a, [wd60c] - callba Func_f154 ; no need for BankSwitch here... - ld a, [wd60d] - add $14 - callba Func_f154 ; no need for BankSwitch here... - ret - -.DivideBy25: ; 0xf14a - ld c, $0 -.div_25 - cp 25 - ret c - sub 25 - inc c - jr .div_25 - -Func_f154: ; 0xf154 - ld a, [wCurrentStage] - call CallInFollowingTable -CallTable_f15a: ; 0xf15a - padded_dab Func_16f28 - padded_dab Func_16f28 - padded_dab Func_16f28 - padded_dab Func_16f28 - padded_dab Func_1d5f2 - padded_dab Func_1d5f2 - -Func_f172: ; 0xf172 - ld a, $1 - ld [wd623], a - ret - -LoadBillboardPicture: ; 0xf178 -; Loads a billboard picture's tiles into VRAM -; input: a = billboard picture id - push hl - ld c, a - ld b, $0 - sla c - add c ; a has been multplied by 3 becuase entires in BillboardPicturePointers are 3 bytes long - ld c, a - ld hl, BillboardPicturePointers - 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, vTilesSH tile $10 ; destination address to copy the tiles - ld bc, $180 ; billboard pictures are $180 bytes - call LoadVRAMData ; loads the tiles into VRAM - pop hl - ret - -LoadBillboardOffPicture: ; 0xf196 -; Loads the dimly-lit "off" version of a billboard picture into VRAM -; Input: a = billboard picture id - push hl - ld c, a - ld b, $0 - sla c - add c - ld c, a - ld hl, BillboardPicturePointers - 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 bc, $0180 ; get the address of the "off" version of the picture - add hl, bc - ld de, vTilesSH tile $10 - ld bc, $0180 - call LoadVRAMData - pop hl - ret - -INCLUDE "data/billboard/billboard_pic_pointers.asm" - -LoadGreyBillboardPaletteData: ; 0xf269 - ld a, [hGameBoyColorFlag] - and a - jr z, .loadPaletteMap - ld a, BANK(StageRedFieldBottomBGPalette5) ; also used in blue stage - ld hl, StageRedFieldBottomBGPalette5 - ld de, $0030 - ld bc, $0008 - call Func_7dc -.loadPaletteMap - ld a, BANK(GreyBillboardPaletteMap) - ld de, GreyBillboardPaletteMap - hlCoord 7, 4, vBGMap - call LoadBillboardPaletteMap - ret - -GreyBillboardPaletteMap: - db $06, $06, $06, $06, $06, $06 - db $06, $06, $06, $06, $06, $06 - db $06, $06, $06, $06, $06, $06 - db $06, $06, $06, $06, $06, $06 - -Func_f2a0: ; 0xf2a0 - push hl - ld c, a - ld b, $0 - sla c - add c - ld c, a - ld hl, PaletteDataPointerTable_f2be - 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, $0030 - ld bc, $0010 - call Func_7dc - pop hl - ret - -PaletteDataPointerTable_f2be: ; 0xf2be - dwb PaletteData_dcc00, Bank(PaletteData_dcc00) - dwb PaletteData_dcc00, Bank(PaletteData_dcc00) - dwb PaletteData_dcc00, Bank(PaletteData_dcc00) - dwb PaletteData_dcc08, Bank(PaletteData_dcc08) - dwb PaletteData_dcc08, Bank(PaletteData_dcc08) - dwb PaletteData_dcc10, Bank(PaletteData_dcc10) - dwb PaletteData_dcc18, Bank(PaletteData_dcc18) - dwb PaletteData_dcc20, Bank(PaletteData_dcc20) - dwb PaletteData_dcc08, Bank(PaletteData_dcc08) - dwb PaletteData_dcc28, Bank(PaletteData_dcc28) - dwb PaletteData_dcc08, Bank(PaletteData_dcc08) - dwb PaletteData_dcc30, Bank(PaletteData_dcc30) - dwb PaletteData_dcc38, Bank(PaletteData_dcc38) - dwb PaletteData_dcc40, Bank(PaletteData_dcc40) - dwb PaletteData_dcc48, Bank(PaletteData_dcc48) - dwb PaletteData_dcc50, Bank(PaletteData_dcc50) - dwb PaletteData_dcc58, Bank(PaletteData_dcc58) - dwb PaletteData_dcc60, Bank(PaletteData_dcc60) - dwb PaletteData_dcc00, Bank(PaletteData_dcc00) - dwb PaletteData_dcc00, Bank(PaletteData_dcc00) - dwb PaletteData_dcc00, Bank(PaletteData_dcc00) - dwb PaletteData_dcc00, Bank(PaletteData_dcc00) - dwb PaletteData_dcc00, Bank(PaletteData_dcc00) - dwb PaletteData_dcc00, Bank(PaletteData_dcc00) - dwb PaletteData_dcc00, Bank(PaletteData_dcc00) - dwb PaletteData_dcc00, Bank(PaletteData_dcc00) - dwb PaletteData_dcc00, Bank(PaletteData_dcc00) - dwb PaletteData_dcc00, Bank(PaletteData_dcc00) - dwb PaletteData_dcc00, Bank(PaletteData_dcc00) - dwb PaletteData_dcc00, Bank(PaletteData_dcc00) - dwb PaletteData_dcc00, Bank(PaletteData_dcc00) - dwb PaletteData_dcc00, Bank(PaletteData_dcc00) - dwb PaletteData_dcc00, Bank(PaletteData_dcc00) - dwb PaletteData_dcc00, Bank(PaletteData_dcc00) - dwb PaletteData_dcc00, Bank(PaletteData_dcc00) - dwb PaletteData_dcc00, Bank(PaletteData_dcc00) - dwb PaletteData_dcc00, Bank(PaletteData_dcc00) - dwb PaletteData_dcc00, Bank(PaletteData_dcc00) - dwb PaletteData_dcc00, Bank(PaletteData_dcc00) - dwb PaletteData_dcc00, Bank(PaletteData_dcc00) - dwb PaletteData_dcc00, Bank(PaletteData_dcc00) - -Data_f339: ; 0xf339 - db $02, $06, $00, $08, $04, $02, $06, $08, $04, $00, $06, $02, $04, $08, $00, $02 - db $06, $02, $04, $08, $00, $06, $04, $08, $02, $00, $06, $08, $02, $00, $06, $08 - db $02, $04, $00, $08, $06, $04, $00, $02, $06, $04, $00, $08, $06, $04, $02, $08 - db $00, $08, $02, $04, $00, $08, $06, $02, $04, $00, $06, $08, $04, $00, $06, $02 - db $00, $08, $02, $04, $00, $08, $06, $04, $02, $08, $00, $06, $02, $08, $00, $06 - db $02, $00, $06, $04, $02, $00, $06, $08, $02, $04, $00, $06, $08, $04, $02, $06 - db $00, $02, $08, $04, $00, $02, $06, $04, $08, $02, $06, $00, $04, $08, $06, $02 - db $04, $08, $06, $02, $00, $08, $04, $06, $00, $02, $04, $06, $00, $02, $04, $08 - db $02, $00, $04, $06, $02, $00, $08, $04, $02, $00, $06, $04, $08, $00, $06, $04 - db $04, $00, $02, $08, $04, $06, $00, $08, $02, $04, $06, $08, $00, $04, $06, $02 - db $06, $08, $04, $02, $06, $00, $08, $02, $04, $00, $06, $02, $08, $04, $06, $02 - db $04, $06, $02, $00, $08, $04, $06, $00, $08, $02, $06, $00, $08, $02, $04, $00 - db $02, $00, $06, $04, $02, $08, $06, $00, $04, $08, $02, $00, $04, $06, $08, $00 - db $08, $06, $04, $00, $08, $06, $02, $00, $08, $06, $04, $00, $08, $06, $04, $02 - db $02, $00, $06, $04, $08, $02, $00, $04, $08, $02, $00, $04, $06, $02, $08, $00 - db $04, $06, $08, $02, $00, $06, $04, $08, $02, $06, $00, $08, $04, $06, $02, $08 - -Data_f439: ; 0xf439 - db $05, $19, $0C, $4C, $00, $4C, $03, $4C, $FF, $00, $05, $19, $0C, $4C, $00, $4C - db $07, $4C, $FF, $00, $05, $19, $0C, $44, $00, $44, $03, $44, $06, $16, $05, $19 - db $0C, $4C, $00, $4C, $08, $4C, $FF, $00, $01, $4C, $06, $66, $0D, $4C, $FF, $00 - db $FF, $00, $05, $19, $0C, $4C, $00, $4C, $03, $4C, $FF, $00, $05, $19, $0C, $4C - db $00, $4C, $07, $4C, $FF, $00, $05, $19, $0C, $44, $00, $44, $03, $44, $06, $16 - db $05, $19, $0C, $4C, $00, $4C, $08, $4C, $FF, $00, $01, $3F, $06, $3F, $0D, $3F - db $09, $3F, $FF, $00, $05, $11, $0C, $4F, $00, $4F, $03, $4F, $FF, $00, $05, $11 - db $0C, $4F, $01, $4F, $07, $4F, $FF, $00, $05, $11, $0C, $44, $00, $44, $03, $44 - db $06, $1E, $05, $11, $0C, $4F, $01, $4F, $08, $4F, $FF, $00, $02, $66, $06, $4C - db $0D, $4C, $FF, $00, $FF, $00, $05, $0A, $0C, $51, $00, $51, $03, $51, $FF, $00 - db $05, $0A, $0C, $51, $01, $51, $07, $51, $FF, $00, $05, $0A, $0C, $44, $00, $44 - db $03, $44, $06, $26, $05, $0A, $0C, $51, $01, $51, $08, $51, $FF, $00, $01, $3F - db $06, $3F, $0D, $3F, $09, $3F, $FF, $00, $05, $0A, $0C, $51, $00, $51, $03, $51 - db $FF, $00, $05, $0A, $0C, $51, $01, $51, $07, $51, $FF, $00, $05, $0A, $0C, $44 - db $00, $44, $03, $44, $06, $26, $05, $0A, $0C, $51, $01, $51, $08, $51, $FF, $00 - db $01, $26, $06, $26, $0D, $26, $04, $8C, $FF, $00 +INCLUDE "engine/pinball_game/slot.asm" Func_f533: ; 0xf533 call FillBottomMessageBufferWithBlackTile @@ -9445,15 +8771,15 @@ Func_16279: ; 0x16279 and a ret nz call Func_16425 - ld a, [wd622] - cp $1 + ld a, [wCatchEmOrEvolutionSlotRewardActive] + cp CATCHEM_MODE_SLOT_REWARD ret nz call GenRandom and $8 ld [wRareMonsFlag], a callba StartCatchEmMode xor a - ld [wd622], a + ld [wCatchEmOrEvolutionSlotRewardActive], a ret Func_16352: ; 0x16352 @@ -9475,7 +8801,7 @@ Func_16352: ; 0x16352 and a jr nz, .asm_163b3 .asm_1637a - ld a, [wd623] + ld a, [wBonusStageSlotRewardActive] and a jr nz, .asm_16389 xor a @@ -9484,7 +8810,7 @@ Func_16352: ; 0x16352 ld [wd626], a .asm_16389 xor a - ld [wd623], a + ld [wBonusStageSlotRewardActive], a ld a, $1 ld [wd495], a ld [wd4ae], a @@ -9498,7 +8824,7 @@ Func_16352: ; 0x16352 call Func_163f2 xor a ld [wd609], a - ld [wd622], a + ld [wCatchEmOrEvolutionSlotRewardActive], a ld a, $1e ld [wd607], a ret @@ -9513,8 +8839,8 @@ Func_16352: ; 0x16352 ld a, $1 ld [wd548], a ld [wd549], a - ld a, [wd622] - cp $2 + ld a, [wCatchEmOrEvolutionSlotRewardActive] + cp EVOLUTION_MODE_SLOT_REWARD ret nz callba Func_10ab3 ld a, [wd7ad] @@ -9524,7 +8850,7 @@ Func_16352: ; 0x16352 or c ld [wStageCollisionState], a xor a - ld [wd622], a + ld [wCatchEmOrEvolutionSlotRewardActive], a ret Func_163f2: ; 0x163f2 @@ -22863,15 +22189,15 @@ Func_1e757: ; 0x1e757 and a ret nz call Func_1e8f6 - ld a, [wd622] - cp $1 + ld a, [wCatchEmOrEvolutionSlotRewardActive] + cp CATCHEM_MODE_SLOT_REWARD ret nz call GenRandom and $8 ld [wRareMonsFlag], a callba StartCatchEmMode xor a - ld [wd622], a + ld [wCatchEmOrEvolutionSlotRewardActive], a ret Func_1e830: ; 0x1e830 @@ -22893,7 +22219,7 @@ Func_1e830: ; 0x1e830 and a jr nz, .asm_1e891 .asm_1e858 - ld a, [wd623] + ld a, [wBonusStageSlotRewardActive] and a jr nz, .asm_1e867 xor a @@ -22902,7 +22228,7 @@ Func_1e830: ; 0x1e830 ld [wd626], a .asm_1e867 xor a - ld [wd623], a + ld [wBonusStageSlotRewardActive], a ld a, $1 ld [wd495], a ld [wd4ae], a @@ -22916,7 +22242,7 @@ Func_1e830: ; 0x1e830 call Func_1e8c3 xor a ld [wd609], a - ld [wd622], a + ld [wCatchEmOrEvolutionSlotRewardActive], a ld a, $1e ld [wd607], a ret @@ -22931,12 +22257,12 @@ Func_1e830: ; 0x1e830 ld a, $1 ld [wd548], a ld [wd549], a - ld a, [wd622] - cp $2 + ld a, [wCatchEmOrEvolutionSlotRewardActive] + cp EVOLUTION_MODE_SLOT_REWARD ret nz callba Func_10ab3 xor a - ld [wd622], a + ld [wCatchEmOrEvolutionSlotRewardActive], a ret Func_1e8c3: ; 0x1e8c3 @@ -1020,10 +1020,13 @@ wd620:: ; 0xd620 wd621:: ; 0xd621 ds $1 -wd622:: ; 0xd622 +wCatchEmOrEvolutionSlotRewardActive:: ; 0xd622 +; Set to 1 if the "Start Catch 'Em Mode" Slot Reward is received. +; Set to 2 if the "Start Evolution Mode" Slot Reward is received. ds $1 -wd623:: ; 0xd623 +wBonusStageSlotRewardActive:: ; 0xd623 +; Set to 1 when the "Go To Bonus" Slot Reward is received. ds $1 wd624:: ; 0xd624 |