From f5173da100e8a80fec98b175e2a2b51901b649f5 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Sun, 2 Jul 2017 13:32:06 -0500 Subject: Move Slot routines and rewards into own file --- constants/pinball_game_constants.asm | 3 + engine/pinball_game/billboard.asm | 73 ++++ engine/pinball_game/slot.asm | 602 +++++++++++++++++++++++++++++ main.asm | 712 +---------------------------------- wram.asm | 7 +- 5 files changed, 702 insertions(+), 695 deletions(-) create mode 100755 engine/pinball_game/billboard.asm create mode 100755 engine/pinball_game/slot.asm 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 diff --git a/main.asm b/main.asm index 2b0889c..95ffcca 100755 --- a/main.asm +++ b/main.asm @@ -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 diff --git a/wram.asm b/wram.asm index ec8e644..a277ebc 100755 --- a/wram.asm +++ b/wram.asm @@ -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 -- cgit v1.2.3