mirror of
https://github.com/pret/pokepinball.git
synced 2026-03-21 17:55:03 -05:00
Label evolution, joypad, message box things
This commit is contained in:
parent
3196c5f78e
commit
b4d7dffd1c
|
|
@ -645,7 +645,7 @@ Func_cf58: ; 0xcf58
|
|||
ret
|
||||
|
||||
Func_cf7d: ; 0xcf7d
|
||||
ld a, [wd809]
|
||||
ld a, [wNewlyPressedButtonsPersistent]
|
||||
ld b, a
|
||||
ld a, [wda85]
|
||||
bit 6, b
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ GameScreenFunction_LoadGFX: ; 0xd861
|
|||
call FillBottomMessageBufferWithBlackTile
|
||||
ld a, $1
|
||||
ld [wd85d], a
|
||||
ld [wd4aa], a
|
||||
ld [wDrawBottomMessageBox], a
|
||||
ld hl, wScreenState
|
||||
inc [hl]
|
||||
ret
|
||||
|
|
@ -56,7 +56,7 @@ GameScreenFunction_StartBall: ; 0xd87f
|
|||
and a
|
||||
call nz, Func_e5d
|
||||
ld a, $1
|
||||
ld [wd4aa], a
|
||||
ld [wDrawBottomMessageBox], a
|
||||
xor a
|
||||
ld [wd7c1], a
|
||||
call Func_b66
|
||||
|
|
@ -179,7 +179,7 @@ GameScreenFunction_HandleBallLoss: ; 0xda36
|
|||
ld [wd7eb], a
|
||||
xor a
|
||||
ld [wd7e9], a
|
||||
ld [wd548], a
|
||||
ld [wPinballIsVisible], a
|
||||
ld [wEnableBallGravityAndTilt], a
|
||||
call HandleTilts
|
||||
ld a, [wCurrentStage]
|
||||
|
|
@ -203,7 +203,7 @@ GameScreenFunction_HandleBallLoss: ; 0xda36
|
|||
jr z, .asm_daa9
|
||||
ld a, $2
|
||||
ld [wd49c], a
|
||||
ld [wd4aa], a
|
||||
ld [wDrawBottomMessageBox], a
|
||||
call FillBottomMessageBufferWithBlackTile
|
||||
call Func_30db
|
||||
ld hl, wd5dc
|
||||
|
|
@ -306,7 +306,7 @@ TransitionToHighScoresScreen: ; 0xdb5d
|
|||
ld hl, rIE
|
||||
res 1, [hl]
|
||||
xor a
|
||||
ld [wd4aa], a
|
||||
ld [wDrawBottomMessageBox], a
|
||||
ld a, [wCurrentStage]
|
||||
ld c, a
|
||||
ld b, $0
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ InitBallForStage: ; 0x83ba
|
|||
ld [wBallSpin], a
|
||||
ld [wBallRotation], a
|
||||
inc a
|
||||
ld [wd548], a
|
||||
ld [wPinballIsVisible], a
|
||||
ld [wEnableBallGravityAndTilt], a
|
||||
ld a, $20
|
||||
ld [wSCX], a
|
||||
|
|
|
|||
|
|
@ -81,7 +81,7 @@ Func_ded6: ; 0xded6
|
|||
ld [wd604], a
|
||||
ld a, $1e
|
||||
ld [wd607], a
|
||||
callba Func_10ac8
|
||||
callba ConcludeEvolutionMode
|
||||
ret
|
||||
|
||||
.asm_df05
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ HandleBallLossGengarBonus: ; 0xdf1a
|
|||
ld a, [wd6a7]
|
||||
and a
|
||||
ret nz
|
||||
ld [wd548], a
|
||||
ld [wPinballIsVisible], a
|
||||
ld [wEnableBallGravityAndTilt], a
|
||||
ld [wBallSpin], a
|
||||
ld [wBallRotation], a
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ HandleBallLossMewtwoBonus: ; 0xdf7e
|
|||
ld a, [wd6b2]
|
||||
and a
|
||||
ret nz
|
||||
ld [wd548], a
|
||||
ld [wPinballIsVisible], a
|
||||
ld [wEnableBallGravityAndTilt], a
|
||||
ld [wBallSpin], a
|
||||
ld [wBallRotation], a
|
||||
|
|
|
|||
|
|
@ -81,7 +81,7 @@ Func_ddfd: ; 0xddfd
|
|||
ld [wd604], a
|
||||
ld a, $1e
|
||||
ld [wd607], a
|
||||
callba Func_10ac8
|
||||
callba ConcludeEvolutionMode
|
||||
jr .asm_de40
|
||||
|
||||
.asm_de2d
|
||||
|
|
|
|||
|
|
@ -690,7 +690,7 @@ BallCaptureInit: ; 0x10496
|
|||
ld [wBallYVelocity], a
|
||||
ld [wBallYVelocity + 1], a
|
||||
xor a
|
||||
ld [wd548], a
|
||||
ld [wPinballIsVisible], a
|
||||
ld [wEnableBallGravityAndTilt], a
|
||||
lb de, $00, $0b
|
||||
call PlaySoundEffect
|
||||
|
|
@ -788,7 +788,7 @@ CapturePokemon: ; 0x1052d
|
|||
ld [wBallYPos], a
|
||||
ld [wCapturingMon], a
|
||||
ld a, $1
|
||||
ld [wd548], a
|
||||
ld [wPinballIsVisible], a
|
||||
ld [wEnableBallGravityAndTilt], a
|
||||
callba RestoreBallSaverAfterCatchEmMode
|
||||
call ConcludeCatchEmMode
|
||||
|
|
@ -1078,14 +1078,14 @@ SetPokemonOwnedFlag: ; 0x1077c
|
|||
call SaveData
|
||||
ret
|
||||
|
||||
Func_107a5: ; 0x107a5
|
||||
ResetIndicatorStates: ; 0x107a5
|
||||
xor a
|
||||
ld hl, wIndicatorStates
|
||||
ld b, $13
|
||||
.asm_107ab
|
||||
.loop
|
||||
ld [hli], a
|
||||
dec b
|
||||
jr nz, .asm_107ab
|
||||
jr nz, .loop
|
||||
ret
|
||||
|
||||
Func_107b0: ; 0x107b0
|
||||
|
|
@ -1244,7 +1244,7 @@ Func_10871: ; 0x10871
|
|||
ret
|
||||
|
||||
Func_108f5: ; 0x108f5
|
||||
call Func_107a5
|
||||
call ResetIndicatorStates
|
||||
call Func_107c2
|
||||
call Func_107c8
|
||||
call Func_107e9
|
||||
|
|
@ -1375,7 +1375,7 @@ Func_1098c: ; 0x1098c
|
|||
ret
|
||||
|
||||
Func_109fc: ; 0x109fc
|
||||
call Func_107a5
|
||||
call ResetIndicatorStates
|
||||
call Func_107c2
|
||||
callba Func_1f2ff
|
||||
ld a, [wCurrentStage]
|
||||
|
|
|
|||
|
|
@ -512,7 +512,7 @@ Func_17e5e: ; 0x17e5e
|
|||
jr .asm_17e64
|
||||
|
||||
DrawPinball: ; 0x17e81
|
||||
ld a, [wd548]
|
||||
ld a, [wPinballIsVisible]
|
||||
and a
|
||||
ret z
|
||||
ld hl, wBallSpin
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@ LoadEAcuteCharacterGfx: ; 0xf55c
|
|||
|
||||
Func_f57f: ; 0xf57f
|
||||
xor a
|
||||
ld [wd4aa], a
|
||||
ld [wDrawBottomMessageBox], a
|
||||
ld hl, wBottomMessageText
|
||||
ld a, $81
|
||||
ld b, $40
|
||||
|
|
|
|||
|
|
@ -175,7 +175,7 @@ Func_20c76: ; 0x20c76
|
|||
Func_20d30: ; 0x20d30
|
||||
callba RestoreBallSaverAfterCatchEmMode
|
||||
callba PlaceEvolutionInParty
|
||||
callba Func_10ac8
|
||||
callba ConcludeEvolutionMode
|
||||
ld de, $0001
|
||||
call PlaySong
|
||||
ld hl, wNumPokemonEvolvedInBallBonus
|
||||
|
|
@ -201,7 +201,7 @@ Func_20d7c: ; 0x20d7c
|
|||
ret nz
|
||||
call FillBottomMessageBufferWithBlackTile
|
||||
callba RestoreBallSaverAfterCatchEmMode
|
||||
callba Func_10ac8
|
||||
callba ConcludeEvolutionMode
|
||||
ld de, $0001
|
||||
call PlaySong
|
||||
scf
|
||||
|
|
|
|||
|
|
@ -178,7 +178,7 @@ Func_20651: ; 0x20651
|
|||
Func_2070b: ; 0x2070b
|
||||
callba RestoreBallSaverAfterCatchEmMode
|
||||
callba PlaceEvolutionInParty
|
||||
callba Func_10ac8
|
||||
callba ConcludeEvolutionMode
|
||||
ld de, $0001
|
||||
call PlaySong
|
||||
ld hl, wNumPokemonEvolvedInBallBonus
|
||||
|
|
@ -204,7 +204,7 @@ Func_20757: ; 0x20757
|
|||
ret nz
|
||||
call FillBottomMessageBufferWithBlackTile
|
||||
callba RestoreBallSaverAfterCatchEmMode
|
||||
callba Func_10ac8
|
||||
callba ConcludeEvolutionMode
|
||||
ld de, $0001
|
||||
call PlaySong
|
||||
scf
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ HandleInGameMenu: ; 0x86d7
|
|||
ld [wd917], a
|
||||
call FillBottomMessageBufferWithBlackTile
|
||||
xor a
|
||||
ld [wd4aa], a
|
||||
ld [wDrawBottomMessageBox], a
|
||||
ld hl, wBottomMessageText
|
||||
ld a, $81
|
||||
ld b, $30
|
||||
|
|
@ -83,7 +83,7 @@ HandleInGameMenu: ; 0x86d7
|
|||
pop af
|
||||
ld [wd917], a
|
||||
ld a, $1
|
||||
ld [wd4aa], a
|
||||
ld [wDrawBottomMessageBox], a
|
||||
ld a, [wInGameMenuIndex]
|
||||
and a
|
||||
ret
|
||||
|
|
|
|||
|
|
@ -1827,11 +1827,11 @@ ResolveSlowpokeCollision: ; 0x1d216
|
|||
cp $1
|
||||
jr nz, .asm_1d2b6
|
||||
xor a
|
||||
ld [wd548], a
|
||||
ld [wPinballIsVisible], a
|
||||
ld a, [wLeftAlleyCount]
|
||||
cp $3
|
||||
jr nz, .asm_1d299
|
||||
callba Func_10ab3
|
||||
callba StartEvolutionMode
|
||||
ld a, [wd643]
|
||||
and a
|
||||
ret z
|
||||
|
|
@ -1853,7 +1853,7 @@ ResolveSlowpokeCollision: ; 0x1d216
|
|||
cp $4
|
||||
jr nz, .asm_1d2c3
|
||||
ld a, $1
|
||||
ld [wd548], a
|
||||
ld [wPinballIsVisible], a
|
||||
ret
|
||||
|
||||
.asm_1d2c3
|
||||
|
|
@ -1949,7 +1949,7 @@ ResolveCloysterCollision: ; 0x1d32d
|
|||
cp $1
|
||||
jr nz, .asm_1d3cb
|
||||
xor a
|
||||
ld [wd548], a
|
||||
ld [wPinballIsVisible], a
|
||||
ld a, [wRightAlleyCount]
|
||||
cp $2
|
||||
jr c, .noCatchEmMode
|
||||
|
|
@ -1975,7 +1975,7 @@ ResolveCloysterCollision: ; 0x1d32d
|
|||
cp $4
|
||||
jr nz, .asm_1d3d8
|
||||
ld a, $1
|
||||
ld [wd548], a
|
||||
ld [wPinballIsVisible], a
|
||||
ret
|
||||
|
||||
.asm_1d3d8
|
||||
|
|
@ -5788,7 +5788,7 @@ Func_1e757: ; 0x1e757
|
|||
cp $c
|
||||
jr nz, .asm_1e7d0
|
||||
xor a
|
||||
ld [wd548], a
|
||||
ld [wPinballIsVisible], a
|
||||
ld [wBallSpin], a
|
||||
ld [wBallRotation], a
|
||||
ret
|
||||
|
|
@ -5843,7 +5843,7 @@ Func_1e830: ; 0x1e830
|
|||
callba Func_10000
|
||||
jr nc, .asm_1e84b
|
||||
ld a, $1
|
||||
ld [wd548], a
|
||||
ld [wPinballIsVisible], a
|
||||
ld [wEnableBallGravityAndTilt], a
|
||||
ret
|
||||
|
||||
|
|
@ -5891,12 +5891,12 @@ Func_1e830: ; 0x1e830
|
|||
cp $d
|
||||
jr nc, .asm_1e858
|
||||
ld a, $1
|
||||
ld [wd548], a
|
||||
ld [wPinballIsVisible], a
|
||||
ld [wEnableBallGravityAndTilt], a
|
||||
ld a, [wCatchEmOrEvolutionSlotRewardActive]
|
||||
cp EVOLUTION_MODE_SLOT_REWARD
|
||||
ret nz
|
||||
callba Func_10ab3
|
||||
callba StartEvolutionMode
|
||||
xor a
|
||||
ld [wCatchEmOrEvolutionSlotRewardActive], a
|
||||
ret
|
||||
|
|
|
|||
|
|
@ -877,7 +877,7 @@ Func_1894c: ; 0x1894c
|
|||
jr z, .asm_18980
|
||||
inc a
|
||||
ld [wd6a5], a
|
||||
ld a, [wd548]
|
||||
ld a, [wPinballIsVisible]
|
||||
ld hl, wEnableBallGravityAndTilt
|
||||
and [hl]
|
||||
jr z, .asm_18973
|
||||
|
|
|
|||
|
|
@ -4499,7 +4499,7 @@ ResolveBellsproutCollision: ; 0x15e93
|
|||
cp $1
|
||||
jr nz, .asm_15f35
|
||||
xor a
|
||||
ld [wd548], a
|
||||
ld [wPinballIsVisible], a
|
||||
ld a, [wRightAlleyCount]
|
||||
cp $2
|
||||
jr c, .noCatchEmMode
|
||||
|
|
@ -4523,7 +4523,7 @@ ResolveBellsproutCollision: ; 0x15e93
|
|||
cp $4
|
||||
jr nz, .asm_15f42
|
||||
ld a, $1
|
||||
ld [wd548], a
|
||||
ld [wPinballIsVisible], a
|
||||
ret
|
||||
|
||||
.asm_15f42
|
||||
|
|
@ -4909,7 +4909,7 @@ ResolveDittoSlotCollision: ; 0x160f0
|
|||
cp $9
|
||||
jr nz, .asm_1616d
|
||||
xor a
|
||||
ld [wd548], a
|
||||
ld [wPinballIsVisible], a
|
||||
ld [wBallSpin], a
|
||||
ld [wBallRotation], a
|
||||
ret
|
||||
|
|
@ -4917,9 +4917,9 @@ ResolveDittoSlotCollision: ; 0x160f0
|
|||
.asm_1616d
|
||||
cp $6
|
||||
jr nz, .asm_1618e
|
||||
callba Func_10ab3
|
||||
callba StartEvolutionMode
|
||||
ld a, $1
|
||||
ld [wd548], a
|
||||
ld [wPinballIsVisible], a
|
||||
ld [wEnableBallGravityAndTilt], a
|
||||
ld a, $5
|
||||
ld [wd803], a
|
||||
|
|
@ -5127,7 +5127,7 @@ Func_16279: ; 0x16279
|
|||
cp $c
|
||||
jr nz, .asm_162f2
|
||||
xor a
|
||||
ld [wd548], a
|
||||
ld [wPinballIsVisible], a
|
||||
ld [wBallSpin], a
|
||||
ld [wBallRotation], a
|
||||
ret
|
||||
|
|
@ -5182,7 +5182,7 @@ Func_16352: ; 0x16352
|
|||
callba Func_10000
|
||||
jr nc, .asm_1636d
|
||||
ld a, $1
|
||||
ld [wd548], a
|
||||
ld [wPinballIsVisible], a
|
||||
ld [wEnableBallGravityAndTilt], a
|
||||
ret
|
||||
|
||||
|
|
@ -5230,12 +5230,12 @@ Func_16352: ; 0x16352
|
|||
cp $d
|
||||
jr nc, .asm_1637a
|
||||
ld a, $1
|
||||
ld [wd548], a
|
||||
ld [wPinballIsVisible], a
|
||||
ld [wEnableBallGravityAndTilt], a
|
||||
ld a, [wCatchEmOrEvolutionSlotRewardActive]
|
||||
cp EVOLUTION_MODE_SLOT_REWARD
|
||||
ret nz
|
||||
callba Func_10ab3
|
||||
callba StartEvolutionMode
|
||||
ld a, [wd7ad]
|
||||
ld c, a
|
||||
ld a, [wStageCollisionState]
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ SaveGame: ; 0xda05
|
|||
ld hl, rIE
|
||||
res 1, [hl]
|
||||
xor a
|
||||
ld [wd4aa], a
|
||||
ld [wDrawBottomMessageBox], a
|
||||
ld a, SCREEN_TITLESCREEN
|
||||
ld [wCurrentScreen], a
|
||||
xor a
|
||||
|
|
|
|||
|
|
@ -1,14 +1,14 @@
|
|||
FieldVerticalTransition: ; 0xe674
|
||||
push af
|
||||
ld a, [wd548]
|
||||
ld a, [wPinballIsVisible]
|
||||
push af
|
||||
xor a
|
||||
ld [wd548], a
|
||||
ld [wPinballIsVisible], a
|
||||
ld [wd803], a
|
||||
callba DrawSpritesForStage
|
||||
call CleanOAMBuffer
|
||||
pop af
|
||||
ld [wd548], a
|
||||
ld [wPinballIsVisible], a
|
||||
pop af
|
||||
ld [wCurrentStage], a
|
||||
xor a
|
||||
|
|
|
|||
|
|
@ -831,11 +831,11 @@ Func_28513: ; 0x28513
|
|||
|
||||
Func_285ca: ; 0x285ca
|
||||
xor a
|
||||
ld [wd80a], a
|
||||
ld [wPressedButtonsPersistent], a
|
||||
call Func_28972
|
||||
call Func_28a8a
|
||||
call Func_28ad1
|
||||
ld a, [wd80a]
|
||||
ld a, [wPressedButtonsPersistent]
|
||||
ret
|
||||
|
||||
Func_285db: ; 0x285db
|
||||
|
|
|
|||
73
home.asm
73
home.asm
|
|
@ -367,9 +367,9 @@ VBlank: ; 0x2f2
|
|||
.asm_3b5
|
||||
res 3, [hl]
|
||||
.asm_3b7
|
||||
ld a, [wd4aa]
|
||||
ld a, [wDrawBottomMessageBox]
|
||||
and a
|
||||
call nz, Func_e69
|
||||
call nz, DrawBottomMessageBox
|
||||
pop hl
|
||||
pop de
|
||||
pop bc
|
||||
|
|
@ -1673,7 +1673,7 @@ ReadJoypad: ; 0xab8
|
|||
.asm_b1a
|
||||
ld a, [hJoypadState]
|
||||
ld [hPreviousJoypadState], a
|
||||
ld hl, wd808
|
||||
ld hl, wJoypadStatesPersistent
|
||||
ld a, [hJoypadState]
|
||||
or [hl]
|
||||
ld [hli], a
|
||||
|
|
@ -1685,8 +1685,8 @@ ReadJoypad: ; 0xab8
|
|||
ld [hli], a
|
||||
ret
|
||||
|
||||
Func_b2e: ; 0xb2e
|
||||
ld hl, wd808
|
||||
ClearPersistentJoypadStates: ; 0xb2e
|
||||
ld hl, wJoypadStatesPersistent
|
||||
xor a
|
||||
ld [hli], a
|
||||
ld [hli], a
|
||||
|
|
@ -2334,10 +2334,13 @@ Func_e5d: ; 0xe5d
|
|||
jr nz, .asm_e62
|
||||
ret
|
||||
|
||||
Func_e69: ; 0xe69
|
||||
DrawBottomMessageBox: ; 0xe69
|
||||
; Draws the current scrolling bottom message box to VRAM during V-Blank.
|
||||
; Note, this only applies to the 1-tile high message bar. When it displays, things like Ball Bonus summary, and
|
||||
; the Save/Cancel menu, this is not used to draw the message buffer.
|
||||
ld a, [rLY]
|
||||
cp $90
|
||||
jr nc, Func_e69
|
||||
jr nc, DrawBottomMessageBox ; ensure we're in V-Blank
|
||||
.asm_e6f
|
||||
ld a, [rSTAT]
|
||||
and $3
|
||||
|
|
@ -2347,60 +2350,60 @@ Func_e69: ; 0xe69
|
|||
dec a
|
||||
jr nz, .asm_e77
|
||||
ld hl, wBottomMessageBuffer + $40
|
||||
call Func_eef
|
||||
call Load4BottomMessageBytes
|
||||
push hl
|
||||
ld hl, $9c00
|
||||
call Func_ef8
|
||||
call Write4BottomMessageBytes
|
||||
pop hl
|
||||
call Func_eef
|
||||
call Load4BottomMessageBytes
|
||||
push hl
|
||||
ld hl, $9c04
|
||||
call Func_ef8
|
||||
call Write4BottomMessageBytes
|
||||
pop hl
|
||||
call Func_eef
|
||||
call Load4BottomMessageBytes
|
||||
push hl
|
||||
ld hl, $9c08
|
||||
call Func_ef8
|
||||
call Write4BottomMessageBytes
|
||||
pop hl
|
||||
call Func_eef
|
||||
call Load4BottomMessageBytes
|
||||
push hl
|
||||
ld hl, $9c0c
|
||||
call Func_ef8
|
||||
call Write4BottomMessageBytes
|
||||
pop hl
|
||||
call Func_eef
|
||||
call Load4BottomMessageBytes
|
||||
push hl
|
||||
ld hl, $9c10
|
||||
call Func_ef8
|
||||
call Write4BottomMessageBytes
|
||||
pop hl
|
||||
ld hl, wBottomMessageBuffer + $c0
|
||||
call Func_eef
|
||||
call Load4BottomMessageBytes
|
||||
push hl
|
||||
ld hl, $9c20
|
||||
call Func_ef8
|
||||
call Write4BottomMessageBytes
|
||||
pop hl
|
||||
call Func_eef
|
||||
call Load4BottomMessageBytes
|
||||
push hl
|
||||
ld hl, $9c24
|
||||
call Func_ef8
|
||||
call Write4BottomMessageBytes
|
||||
pop hl
|
||||
call Func_eef
|
||||
call Load4BottomMessageBytes
|
||||
push hl
|
||||
ld hl, $9c28
|
||||
call Func_ef8
|
||||
call Write4BottomMessageBytes
|
||||
pop hl
|
||||
call Func_eef
|
||||
call Load4BottomMessageBytes
|
||||
push hl
|
||||
ld hl, $9c2c
|
||||
call Func_ef8
|
||||
call Write4BottomMessageBytes
|
||||
pop hl
|
||||
call Func_eef
|
||||
call Load4BottomMessageBytes
|
||||
push hl
|
||||
ld hl, $9c30
|
||||
call Func_ef8
|
||||
call Write4BottomMessageBytes
|
||||
pop hl
|
||||
ret
|
||||
|
||||
Func_eef: ; 0xeef
|
||||
Load4BottomMessageBytes: ; 0xeef
|
||||
ld a, [hli]
|
||||
ld b, a
|
||||
ld a, [hli]
|
||||
|
|
@ -2411,10 +2414,10 @@ Func_eef: ; 0xeef
|
|||
ld e, a
|
||||
ret
|
||||
|
||||
Func_ef8: ; 0xef8
|
||||
Write4BottomMessageBytes: ; 0xef8
|
||||
ld a, [rSTAT]
|
||||
and $3
|
||||
jr nz, Func_ef8
|
||||
jr nz, Write4BottomMessageBytes
|
||||
ld a, b
|
||||
ld [hli], a
|
||||
ld a, c
|
||||
|
|
@ -3949,7 +3952,7 @@ Func_1ffc: ; 0x1ffc
|
|||
call Func_2034
|
||||
call DoScreenLogic
|
||||
call CleanOAMBuffer
|
||||
call Func_b2e
|
||||
call ClearPersistentJoypadStates
|
||||
rst AdvanceFrame
|
||||
jr .master_loop
|
||||
|
||||
|
|
@ -5242,7 +5245,7 @@ HandleLeftTilt: ; 0x358c
|
|||
lb de, $00, $3f
|
||||
call PlaySoundEffect
|
||||
.skipSoundEffect
|
||||
ld a, [wd548]
|
||||
ld a, [wPinballIsVisible]
|
||||
ld hl, wEnableBallGravityAndTilt
|
||||
and [hl]
|
||||
jr z, .skipBallMovement
|
||||
|
|
@ -5298,7 +5301,7 @@ HandleRightTilt: ; 0x35f3
|
|||
lb de, $00, $3f
|
||||
call PlaySoundEffect
|
||||
.skipSoundEffect
|
||||
ld a, [wd548]
|
||||
ld a, [wPinballIsVisible]
|
||||
ld hl, wEnableBallGravityAndTilt
|
||||
and [hl]
|
||||
jr z, .skipBallMovement
|
||||
|
|
@ -5354,7 +5357,7 @@ HandleUpperTilt: ; 0x365a
|
|||
lb de, $00, $3f
|
||||
call PlaySoundEffect
|
||||
.skipSoundEffect
|
||||
ld a, [wd548]
|
||||
ld a, [wPinballIsVisible]
|
||||
ld hl, wEnableBallGravityAndTilt
|
||||
and [hl]
|
||||
jr z, .skipBallMovement
|
||||
|
|
@ -5394,7 +5397,7 @@ HandleUpperTilt: ; 0x365a
|
|||
ret
|
||||
|
||||
ApplyTiltForces: ; 0x36c1
|
||||
ld a, [wd548]
|
||||
ld a, [wPinballIsVisible]
|
||||
ld hl, wEnableBallGravityAndTilt
|
||||
and [hl]
|
||||
ret z
|
||||
|
|
|
|||
|
|
@ -48,7 +48,7 @@ Func_310a: ; 0x310a
|
|||
jr nz, .asm_311d
|
||||
ret
|
||||
|
||||
Func_3125: ; 0x3125 enables special loads
|
||||
LoadMonNameIntoBottomMessageBufferList: ; 0x3125 enables special loads
|
||||
ld b, $1
|
||||
jr asm_312b
|
||||
|
||||
|
|
|
|||
164
main.asm
164
main.asm
|
|
@ -223,21 +223,21 @@ PointerTable_10a9b: ; 0x10a9b
|
|||
padded_dab Func_20bae ; STAGE_BLUE_FIELD_TOP
|
||||
padded_dab Func_20bae ; STAGE_BLUE_FIELD_BOTTOM
|
||||
|
||||
Func_10ab3: ; 0x10ab3
|
||||
StartEvolutionMode: ; 0x10ab3
|
||||
ld a, [wInSpecialMode]
|
||||
and a
|
||||
ret nz
|
||||
ld a, [wCurrentStage]
|
||||
rst JumpTable ; calls JumpToFuncInTable
|
||||
CallTable_10abc: ; 0x10abc
|
||||
dw Func_10ebb ; STAGE_RED_FIELD_TOP
|
||||
dw Func_10ebb ; STAGE_RED_FIELD_BOTTOM
|
||||
dw Func_11054
|
||||
dw Func_11054
|
||||
dw Func_11061 ; STAGE_BLUE_FIELD_TOP
|
||||
dw Func_11061 ; STAGE_BLUE_FIELD_BOTTOM
|
||||
StartEvolutionMode_CallTable: ; 0x10abc
|
||||
dw StartEvolutionMode_RedField ; STAGE_RED_FIELD_TOP
|
||||
dw StartEvolutionMode_RedField ; STAGE_RED_FIELD_BOTTOM
|
||||
dw StartEvolutionMode_UnusedField
|
||||
dw StartEvolutionMode_UnusedField
|
||||
dw StartEvolutionMode_BlueField ; STAGE_BLUE_FIELD_TOP
|
||||
dw StartEvolutionMode_BlueField ; STAGE_BLUE_FIELD_BOTTOM
|
||||
|
||||
Func_10ac8: ; 0x10ac8
|
||||
ConcludeEvolutionMode: ; 0x10ac8
|
||||
xor a
|
||||
ld [wd5ca], a
|
||||
call FillBottomMessageBufferWithBlackTile
|
||||
|
|
@ -252,13 +252,13 @@ Func_10ac8: ; 0x10ac8
|
|||
callba StopTimer
|
||||
ld a, [wCurrentStage]
|
||||
rst JumpTable ; calls JumpToFuncInTable
|
||||
CallTable_10af3: ; 0x10af3
|
||||
dw Func_10fe3 ; STAGE_RED_FIELD_TOP
|
||||
dw Func_10fe3 ; STAGE_RED_FIELD_BOTTOM
|
||||
dw Func_11060
|
||||
dw Func_11060
|
||||
dw Func_11195 ; STAGE_BLUE_FIELD_TOP
|
||||
dw Func_11195 ; STAGE_BLUE_FIELD_TOP
|
||||
ConcludeEvolutionMode_CallTable: ; 0x10af3
|
||||
dw ConcludeEvolutionMode_RedField ; STAGE_RED_FIELD_TOP
|
||||
dw ConcludeEvolutionMode_RedField ; STAGE_RED_FIELD_BOTTOM
|
||||
dw DoNothing_11060
|
||||
dw DoNothing_11060
|
||||
dw ConcludeEvolutionMode_BlueField ; STAGE_BLUE_FIELD_TOP
|
||||
dw ConcludeEvolutionMode_BlueField ; STAGE_BLUE_FIELD_TOP
|
||||
|
||||
Func_10aff: ; 0x10aff
|
||||
ld a, [wCurrentStage]
|
||||
|
|
@ -317,21 +317,22 @@ Func_10b3f: ; 0x10b3f
|
|||
call LoadTextHeader
|
||||
ret
|
||||
|
||||
Func_10b59: ; 0x10b59
|
||||
InitEvolutionSelectionMenu: ; 0x10b59
|
||||
; Initializes the list menu, which the player uses to select which pokemon to evolve.
|
||||
xor a
|
||||
ld [wd4aa], a ;load 0 into ???
|
||||
ld [wDrawBottomMessageBox], a
|
||||
ld hl, wBottomMessageText
|
||||
ld a, $81
|
||||
ld b, $30
|
||||
.asm_10b64
|
||||
ld [hli], a ;load spaces into bottom text? repeat 192 times
|
||||
.clearLoop
|
||||
ld [hli], a ; load spaces into bottom text. repeat 192 times
|
||||
ld [hli], a
|
||||
ld [hli], a
|
||||
ld [hli], a
|
||||
dec b
|
||||
jr nz, .asm_10b64
|
||||
jr nz, .clearLoop
|
||||
ld hl, wPartyMons
|
||||
call Func_10b8e
|
||||
call LoadMonNamesIntoEvolutionSelectionList
|
||||
ld a, BANK(InGameMenuSymbolsGfx)
|
||||
ld hl, InGameMenuSymbolsGfx + $50
|
||||
ld de, vTilesSH tile $08
|
||||
|
|
@ -344,23 +345,28 @@ Func_10b59: ; 0x10b59
|
|||
call LoadVRAMData
|
||||
ret
|
||||
|
||||
Func_10b8e: ; 0x10b8e hl = start of party mons
|
||||
LoadMonNamesIntoEvolutionSelectionList: ; 0x10b8e
|
||||
; Loads 6 pokemon names into the list that allows the player to select which pokemon to evolve.
|
||||
; Input: hl = pointer to a list of pokemon ids. (an offset of wPartyMons)
|
||||
ld a, [wNumPartyMons]
|
||||
ld c, $0
|
||||
ld b, a
|
||||
.asm_10b94
|
||||
.loop
|
||||
ld a, [hli]
|
||||
call Func_10ba2
|
||||
call LoadMonNameIntoEvolutionSelectionList
|
||||
inc c
|
||||
ld a, c
|
||||
cp $6
|
||||
jr z, .asm_10ba1
|
||||
jr z, .done
|
||||
dec b
|
||||
jr nz, .asm_10b94
|
||||
.asm_10ba1
|
||||
jr nz, .loop
|
||||
.done
|
||||
ret
|
||||
|
||||
Func_10ba2: ; 0x10ba2 a = current party mon, b is number to go before end of list, c is number passed so far
|
||||
LoadMonNameIntoEvolutionSelectionList: ; 0x10ba2
|
||||
; Loads a single pokemon name into the list of pokemon to evolve.
|
||||
; Input: c = index of the list
|
||||
; a = pokemon id
|
||||
push bc
|
||||
push hl
|
||||
swap c ;c* 32, does wird things if c starts >15
|
||||
|
|
@ -392,69 +398,72 @@ Func_10ba2: ; 0x10ba2 a = current party mon, b is number to go before end of lis
|
|||
ld [de], a
|
||||
inc de
|
||||
ld a, $81
|
||||
ld [de], a
|
||||
inc de ;load 4 spaces into de
|
||||
call Func_3125 ;load 1 into b and...
|
||||
.asm_10bda
|
||||
ld [de], a ; loaded 4 spaces into de
|
||||
inc de
|
||||
call LoadMonNameIntoBottomMessageBufferList
|
||||
.loadBlankCharacterLoop
|
||||
ld a, e
|
||||
and $1f
|
||||
cp $14
|
||||
jr nc, .asm_10be7
|
||||
jr nc, .done
|
||||
ld a, $81
|
||||
ld [de], a
|
||||
inc de
|
||||
jr .asm_10bda
|
||||
jr .loadBlankCharacterLoop
|
||||
|
||||
.asm_10be7
|
||||
.done
|
||||
pop hl
|
||||
pop bc
|
||||
ret
|
||||
|
||||
Func_10bea: ; 0x10bea
|
||||
SelectPokemonToEvolveMenu: ; 0x10bea
|
||||
; Drivers the menu that allows the player to select a pokemon to evolve.
|
||||
xor a
|
||||
ld [wCurSelectedPartyMon], a
|
||||
ld [wCurSelectedPartyMonScrollOffset], a
|
||||
ld [wPartySelectionCursorCounter], a
|
||||
.asm_10bf4
|
||||
call Func_10c0c
|
||||
call Func_b2e
|
||||
call Func_10c38
|
||||
.loop
|
||||
call MoveEvolutionSelectionCursor
|
||||
call ClearPersistentJoypadStates
|
||||
call UpdateEvolutionSelectionList
|
||||
rst AdvanceFrame
|
||||
ld a, [wd809]
|
||||
bit 0, a
|
||||
jr z, .asm_10bf4
|
||||
ld a, [wNewlyPressedButtonsPersistent]
|
||||
bit BIT_A_BUTTON, a
|
||||
jr z, .loop
|
||||
lb de, $00, $01
|
||||
call PlaySoundEffect
|
||||
ret
|
||||
|
||||
Func_10c0c: ; 0x10c0c
|
||||
ld a, [wd80a]
|
||||
MoveEvolutionSelectionCursor: ; 0x10c0c
|
||||
ld a, [wPressedButtonsPersistent]
|
||||
ld b, a
|
||||
ld a, [wNumPartyMons]
|
||||
ld c, a
|
||||
ld a, [wCurSelectedPartyMon]
|
||||
bit 6, b
|
||||
jr z, .asm_10c28
|
||||
bit BIT_D_UP, b
|
||||
jr z, .didntPressUp
|
||||
and a
|
||||
ret z
|
||||
; move the cursor up
|
||||
dec a
|
||||
ld [wCurSelectedPartyMon], a
|
||||
lb de, $00, $03
|
||||
call PlaySoundEffect
|
||||
ret
|
||||
|
||||
.asm_10c28
|
||||
bit 7, b
|
||||
.didntPressUp
|
||||
bit BIT_D_DOWN, b
|
||||
ret z
|
||||
inc a
|
||||
cp c
|
||||
ret z
|
||||
; move the cursor down
|
||||
ld [wCurSelectedPartyMon], a
|
||||
lb de, $00, $03
|
||||
call PlaySoundEffect
|
||||
ret
|
||||
|
||||
Func_10c38: ; 0x10c38
|
||||
UpdateEvolutionSelectionList: ; 0x10c38
|
||||
ld a, [wCurSelectedPartyMon]
|
||||
ld hl, wCurSelectedPartyMonScrollOffset
|
||||
sub [hl]
|
||||
|
|
@ -476,7 +485,7 @@ Func_10c38: ; 0x10c38
|
|||
ld b, $0
|
||||
ld hl, wPartyMons
|
||||
add hl, bc
|
||||
call Func_10b8e
|
||||
call LoadMonNamesIntoEvolutionSelectionList
|
||||
ld a, [hJoypadState]
|
||||
and a
|
||||
ld a, [wPartySelectionCursorCounter]
|
||||
|
|
@ -531,16 +540,16 @@ PlaceEvolutionInParty: ; 0x10ca5
|
|||
ld [hl], a
|
||||
ret
|
||||
|
||||
Func_10cb7: ; 0x10cb7
|
||||
SelectPokemonToEvolve: ; 0x10cb7
|
||||
call FillBottomMessageBufferWithBlackTile
|
||||
call Func_10b59
|
||||
call InitEvolutionSelectionMenu
|
||||
ld a, $60
|
||||
ld [hWY], a
|
||||
dec a
|
||||
ld [hLYC], a
|
||||
ld a, $fd
|
||||
ld [hLCDCMask], a
|
||||
call Func_10bea
|
||||
call SelectPokemonToEvolveMenu
|
||||
ld a, $86
|
||||
ld [hWY], a
|
||||
ld a, $83
|
||||
|
|
@ -550,7 +559,7 @@ Func_10cb7: ; 0x10cb7
|
|||
ld [hLCDCMask], a
|
||||
ld a, [hGameBoyColorFlag]
|
||||
and a
|
||||
jr nz, .asm_10cee
|
||||
jr nz, .gameboyColor
|
||||
ld a, BANK(StageRedFieldTopStatusBarSymbolsGfx_GameBoy)
|
||||
ld hl, StageRedFieldTopStatusBarSymbolsGfx_GameBoy + $80
|
||||
ld de, vTilesSH tile $08
|
||||
|
|
@ -558,7 +567,7 @@ Func_10cb7: ; 0x10cb7
|
|||
call LoadVRAMData
|
||||
jr .asm_10cfc
|
||||
|
||||
.asm_10cee
|
||||
.gameboyColor
|
||||
ld a, BANK(StageRedFieldTopStatusBarSymbolsGfx_GameBoyColor)
|
||||
ld hl, StageRedFieldTopStatusBarSymbolsGfx_GameBoyColor + $80
|
||||
ld de, vTilesSH tile $08
|
||||
|
|
@ -567,7 +576,7 @@ Func_10cb7: ; 0x10cb7
|
|||
.asm_10cfc
|
||||
call FillBottomMessageBufferWithBlackTile
|
||||
ld a, SPECIAL_MODE_CATCHEM
|
||||
ld [wd4aa], a
|
||||
ld [wDrawBottomMessageBox], a
|
||||
ld [wInSpecialMode], a
|
||||
ld [wSpecialMode], a
|
||||
xor a
|
||||
|
|
@ -581,7 +590,7 @@ Func_10cb7: ; 0x10cb7
|
|||
ld [wCurrentCatchEmMon], a
|
||||
ret
|
||||
|
||||
Func_10d1d: ; 0x10d1d
|
||||
InitEvolutionModeForMon: ; 0x10d1d
|
||||
ld hl, wd586
|
||||
ld b, $18
|
||||
.asm_10d22
|
||||
|
|
@ -809,12 +818,12 @@ Func_10e8b: ; 0x10e8b
|
|||
call LoadTextHeader
|
||||
ret
|
||||
|
||||
Func_10ebb: ; 0x10ebb
|
||||
StartEvolutionMode_RedField: ; 0x10ebb
|
||||
ld a, [wNumPartyMons]
|
||||
and a
|
||||
ret z
|
||||
call Func_10cb7
|
||||
call Func_10d1d
|
||||
call SelectPokemonToEvolve
|
||||
call InitEvolutionModeForMon
|
||||
ld a, [wd555]
|
||||
sub $2
|
||||
ld c, a
|
||||
|
|
@ -826,12 +835,12 @@ Func_10ebb: ; 0x10ebb
|
|||
ld l, a
|
||||
ld de, wIndicatorStates
|
||||
ld b, $13
|
||||
.asm_10eda
|
||||
.loop
|
||||
ld a, [hli]
|
||||
ld [de], a
|
||||
inc de
|
||||
dec b
|
||||
jr nz, .asm_10eda
|
||||
jr nz, .loop
|
||||
xor a
|
||||
ld [wLeftAlleyCount], a
|
||||
call Func_107b0
|
||||
|
|
@ -897,8 +906,8 @@ IndicatorStates_10fbd: ; 0x10fbd
|
|||
IndicatorStates_10fd0: ; 0x10fd0
|
||||
db $00, $00, $80, $80, $00, $00, $01, $01, $01, $01, $01, $01, $01, $01, $01, $00, $00, $00, $00
|
||||
|
||||
Func_10fe3: ; 0x10fe3
|
||||
call Func_107a5
|
||||
ConcludeEvolutionMode_RedField: ; 0x10fe3
|
||||
call ResetIndicatorStates
|
||||
call Func_107c2
|
||||
call Func_107c8
|
||||
call Func_107e9
|
||||
|
|
@ -932,23 +941,23 @@ Func_10fe3: ; 0x10fe3
|
|||
call Func_10aa
|
||||
ret
|
||||
|
||||
Func_11054: ; 0x11054
|
||||
StartEvolutionMode_UnusedField: ; 0x11054
|
||||
ld a, [wNumPartyMons]
|
||||
and a
|
||||
ret z
|
||||
call Func_10cb7
|
||||
call Func_10d1d
|
||||
call SelectPokemonToEvolve
|
||||
call InitEvolutionModeForMon
|
||||
ret
|
||||
|
||||
Func_11060: ; 0x11060
|
||||
DoNothing_11060: ; 0x11060
|
||||
ret
|
||||
|
||||
Func_11061: ; 0x11061
|
||||
StartEvolutionMode_BlueField: ; 0x11061
|
||||
ld a, [wNumPartyMons]
|
||||
and a
|
||||
ret z
|
||||
call Func_10cb7
|
||||
call Func_10d1d
|
||||
call SelectPokemonToEvolve
|
||||
call InitEvolutionModeForMon
|
||||
ld a, $1
|
||||
ld [wd643], a
|
||||
ld a, [wd555]
|
||||
|
|
@ -1033,10 +1042,10 @@ IndicatorStates_1116f: ; 0x1116f
|
|||
IndicatorStates_11182: ; 0x11182
|
||||
db $80, $00, $80, $80, $00, $00, $01, $01, $01, $01, $01, $01, $01, $01, $01, $00, $00, $00, $00
|
||||
|
||||
Func_11195: ; 0x11195
|
||||
ConcludeEvolutionMode_BlueField: ; 0x11195
|
||||
xor a
|
||||
ld [wd643], a
|
||||
call Func_107a5
|
||||
call ResetIndicatorStates
|
||||
call Func_107c2
|
||||
callba Func_1f2ff
|
||||
ld a, [wCurrentStage]
|
||||
|
|
@ -1127,6 +1136,7 @@ INCLUDE "data/mon_names.asm"
|
|||
INCLUDE "data/mon_initial_indicator_states.asm"
|
||||
|
||||
Data_1298b: ; 0x1298b
|
||||
; This has to do with which indicators will need to be hit to evolve the pokemon.
|
||||
db $01 ; BULBASAUR
|
||||
db $02 ; IVYSAUR
|
||||
db $03 ; VENUSAUR
|
||||
|
|
@ -1579,7 +1589,7 @@ Func_311b4: ; 0x311b4
|
|||
ret
|
||||
|
||||
Func_31234: ; 0x31234
|
||||
callba Func_107a5
|
||||
callba ResetIndicatorStates
|
||||
callba Func_107c2
|
||||
callba Func_107c8
|
||||
callba Func_107e9
|
||||
|
|
@ -1756,7 +1766,7 @@ Func_31326: ; 0x31326
|
|||
ret
|
||||
|
||||
Func_313c3: ; 0x313c3
|
||||
callba Func_107a5
|
||||
callba ResetIndicatorStates
|
||||
callba Func_107c2
|
||||
callba Func_1f2ff
|
||||
ld a, $0
|
||||
|
|
|
|||
25
wram.asm
25
wram.asm
|
|
@ -41,6 +41,7 @@ wc4cc:: ; 0xc4cc
|
|||
ds $34
|
||||
|
||||
wBottomMessageText:: ; 0xc500 WARNING: text loading code may break if this is moved
|
||||
; This must be aligned with $100, since there is some logic that depends on the lower byte of the address. (See LoadMonNameIntoEvolutionSelectionList)
|
||||
ds $100
|
||||
|
||||
wBottomMessageBuffer:: ; 0xc600
|
||||
|
|
@ -218,7 +219,9 @@ wNumTimesBallSavedTextWillDisplayBackup:: ; 0xd4a8
|
|||
wd4a9:: ; 0xd4a9
|
||||
ds $1
|
||||
|
||||
wd4aa:: ; 0xd4aa
|
||||
wDrawBottomMessageBox:: ; 0xd4aa
|
||||
; Set to non-zero value if enable drawing the 1-tile high bottom message bar during V-Blank in normal pinball gameplay.
|
||||
; Set to 0 to disable.
|
||||
ds $1
|
||||
|
||||
wd4ab:: ; 0xd4ab
|
||||
|
|
@ -529,7 +532,10 @@ wRightAlleyCount:: ; 0xd545
|
|||
wSecondaryLeftAlleyTrigger:: ; 0xd546
|
||||
ds $2
|
||||
|
||||
wd548:: ; 0xd548
|
||||
wPinballIsVisible:: ; 0xd548
|
||||
; Set to 1 if the pinball is visible in play.
|
||||
; Set to 0 when the pinball disappears in things like the Slot, Slowpoke, Cloyster, Bellsprout, etc.
|
||||
; When it's set to 0, it disables tilt effects on the pinball.
|
||||
ds $1
|
||||
|
||||
wEnableBallGravityAndTilt:: ; 0xd549
|
||||
|
|
@ -1814,14 +1820,17 @@ wd806:: ; 0xd806
|
|||
wd807:: ; 0xd807
|
||||
ds $1
|
||||
|
||||
wd808:: ; 0xd808
|
||||
; These three bytes track different joypad states cummulatively, until they are manually cleared.
|
||||
; They inherit from their similarly-named counterparts found in hram.asm. (See ReadJoyPad)
|
||||
wJoypadStatesPersistent:: ; 0xd808
|
||||
wJoypadStatePersistent::
|
||||
ds $1
|
||||
wNewlyPressedButtonsPersistent:: ; 0xd809
|
||||
ds $1
|
||||
wPressedButtonsPersistent:: ; 0xd80a
|
||||
ds $1
|
||||
|
||||
wd809:: ; 0xd809
|
||||
ds $1
|
||||
|
||||
wd80a:: ; 0xd80a
|
||||
ds $2
|
||||
ds $1 ; unused byte
|
||||
|
||||
wBGP:: ; 0xd80c
|
||||
ds $1
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user