mirror of
https://github.com/pret/pokeyellow.git
synced 2026-04-26 01:31:29 -05:00
2864 lines
47 KiB
NASM
2864 lines
47 KiB
NASM
SurfingPikachuMinigame::
|
|
call SurfingPikachuMinigame_BlankPals
|
|
call DelayFrame
|
|
call DelayFrame
|
|
call DelayFrame
|
|
ldh a, [hTileAnimations]
|
|
push af
|
|
xor a
|
|
ldh [hTileAnimations], a
|
|
ld a, [wUpdateSpritesEnabled]
|
|
push af
|
|
ld a, $ff
|
|
ld [wUpdateSpritesEnabled], a
|
|
ldh a, [rIE]
|
|
push af
|
|
xor a
|
|
ldh [rIF], a
|
|
ld a, $f
|
|
ldh [rIE], a
|
|
ld a, $8
|
|
ldh [rSTAT], a
|
|
ldh a, [hAutoBGTransferDest + 1]
|
|
push af
|
|
ld a, $98
|
|
ldh [hAutoBGTransferDest + 1], a
|
|
call SurfingPikachuMinigameIntro
|
|
call SurfingPikachuLoop
|
|
xor a
|
|
ldh [rBGP], a
|
|
ldh [rOBP0], a
|
|
ldh [rOBP1], a
|
|
call UpdateCGBPal_BGP
|
|
call UpdateCGBPal_OBP0
|
|
call UpdateCGBPal_OBP1
|
|
call ClearObjectAnimationBuffers
|
|
call ClearSprites
|
|
xor a
|
|
ldh [hLCDCPointer], a
|
|
ldh [hSCX], a
|
|
ldh [hSCY], a
|
|
ld a, $90
|
|
ldh [hWY], a
|
|
call DelayFrame
|
|
pop af
|
|
ldh [hAutoBGTransferDest + 1], a
|
|
xor a
|
|
ldh [rIF], a
|
|
pop af
|
|
ldh [rIE], a
|
|
xor a
|
|
ldh [rSTAT], a
|
|
call RunDefaultPaletteCommand
|
|
call ReloadMapAfterSurfingMinigame
|
|
call PlayDefaultMusic
|
|
call GBPalNormal
|
|
pop af
|
|
ld [wUpdateSpritesEnabled], a
|
|
pop af
|
|
ldh [hTileAnimations], a
|
|
ret
|
|
|
|
SurfingPikachuLoop:
|
|
call SurfingPikachuMinigame_LoadGFXAndLayout
|
|
call DelayFrame
|
|
ld b, SET_PAL_SURFING_PIKACHU_TITLE
|
|
call RunPaletteCommand
|
|
.loop
|
|
ld a, [wSurfingMinigameRoutineNumber]
|
|
bit 7, a
|
|
ret nz
|
|
call SurfingPikachu_GetJoypad_3FrameBuffer
|
|
call SurfingPikachu_CheckPressedSelect
|
|
ret nz
|
|
call RunSurfingMinigameRoutine
|
|
ld a, $3c
|
|
ld [wCurrentAnimatedObjectOAMBufferOffset], a
|
|
call RunObjectAnimations
|
|
call SurfingMinigame_MoveClouds
|
|
call .DelayFrame
|
|
call SurfingMinigame_UpdateMusicTempo
|
|
jr .loop
|
|
|
|
.DelayFrame:
|
|
call DelayFrame
|
|
ret
|
|
|
|
SurfingPikachu_CheckPressedSelect:
|
|
ld hl, wd492
|
|
bit 1, [hl]
|
|
ret z
|
|
ldh a, [hJoyPressed]
|
|
and PAD_SELECT
|
|
ret
|
|
|
|
Func_f80b7:
|
|
ldh a, [hJoyPressed]
|
|
and PAD_START
|
|
ret z
|
|
ld hl, wc5e2
|
|
ld a, [hl]
|
|
xor $1
|
|
ld [hl], a
|
|
ret
|
|
|
|
SurfingMinigame_UpdateMusicTempo:
|
|
ld a, [wc634]
|
|
and a
|
|
ret z
|
|
|
|
; check that all channels are on their last frame of note delay
|
|
ld hl, wChannelNoteDelayCounters
|
|
ld a, $1
|
|
cp [hl]
|
|
ret nz
|
|
inc hl
|
|
cp [hl]
|
|
ret nz
|
|
inc hl
|
|
cp [hl]
|
|
ret nz
|
|
|
|
; de = ([wSurfingMinigamePikachuSpeed] & 0x3f) * 2
|
|
ld a, [wSurfingMinigamePikachuSpeed]
|
|
ld e, a
|
|
ld a, [wSurfingMinigamePikachuSpeed + 1]
|
|
and $3
|
|
ld d, a
|
|
sla e
|
|
rl d
|
|
ld e, d
|
|
ld d, $0
|
|
ld hl, .Tempos
|
|
add hl, de
|
|
add hl, de
|
|
ld a, [hli]
|
|
ld [wMusicTempo + 1], a
|
|
ld a, [hl]
|
|
ld [wMusicTempo], a
|
|
ret
|
|
|
|
.Tempos:
|
|
dw 117
|
|
dw 109
|
|
dw 101
|
|
dw 93
|
|
dw 85
|
|
|
|
SurfingMinigame_ResetMusicTempo:
|
|
ld hl, wChannelNoteDelayCounters
|
|
ld a, $1
|
|
cp [hl]
|
|
ret nz
|
|
inc hl
|
|
cp [hl]
|
|
ret nz
|
|
inc hl
|
|
cp [hl]
|
|
ret nz
|
|
ld a, 117
|
|
ld [wMusicTempo + 1], a
|
|
xor a
|
|
ld [wMusicTempo], a
|
|
ret
|
|
|
|
SurfingPikachuMinigame_LoadGFXAndLayout:
|
|
call SurfingPikachu_ClearTileMap
|
|
call ClearSprites
|
|
call DisableLCD
|
|
ld hl, wSurfingMinigameData
|
|
ld bc, wSurfingMinigameDataEnd - wSurfingMinigameData
|
|
xor a
|
|
call FillMemory
|
|
ld hl, wLYOverrides
|
|
ld bc, wLYOverridesBufferEnd - wLYOverrides
|
|
xor a
|
|
call FillMemory
|
|
xor a
|
|
ldh [hAutoBGTransferEnabled], a
|
|
call ClearObjectAnimationBuffers
|
|
|
|
ld hl, SurfingPikachu1Graphics1
|
|
ld de, $9000
|
|
ld bc, $500
|
|
ld a, BANK(SurfingPikachu1Graphics1)
|
|
call FarCopyData
|
|
|
|
ld hl, SurfingPikachu1Graphics2
|
|
ld de, $8000
|
|
ld bc, $1000
|
|
ld a, BANK(SurfingPikachu1Graphics2)
|
|
call FarCopyData
|
|
|
|
ld a, LOW(SurfingPikachuSpawnStateDataPointer)
|
|
ld [wAnimatedObjectSpawnStateDataPointer], a
|
|
ld a, HIGH(SurfingPikachuSpawnStateDataPointer)
|
|
ld [wAnimatedObjectSpawnStateDataPointer + 1], a
|
|
|
|
ld a, LOW(SurfingPikachuObjectJumptable)
|
|
ld [wAnimatedObjectJumptablePointer], a
|
|
ld a, HIGH(SurfingPikachuObjectJumptable)
|
|
ld [wAnimatedObjectJumptablePointer + 1], a
|
|
|
|
ld a, LOW(SurfingPikachuOAMData)
|
|
ld [wAnimatedObjectOAMDataPointer], a
|
|
ld a, HIGH(SurfingPikachuOAMData)
|
|
ld [wAnimatedObjectOAMDataPointer + 1], a
|
|
|
|
ld a, LOW(SurfingPikachuFrames)
|
|
ld [wAnimatedObjectFramesDataPointer], a
|
|
ld a, HIGH(SurfingPikachuFrames)
|
|
ld [wAnimatedObjectFramesDataPointer + 1], a
|
|
|
|
ld hl, vBGMap0
|
|
ld bc, $80 tiles
|
|
ld a, $0
|
|
call FillMemory
|
|
|
|
ld hl, $98c0
|
|
ld bc, $18 tiles
|
|
ld a, $b
|
|
call FillMemory
|
|
|
|
ld a, $1
|
|
lb de, $74, $58
|
|
call SpawnAnimatedObject
|
|
|
|
ld a, $74
|
|
ld [wSurfingMinigamePikachuObjectHeight], a
|
|
|
|
call SurfingMinigame_InitScanlineOverrides
|
|
|
|
xor a
|
|
ldh [hSCX], a
|
|
ldh [hSCY], a
|
|
ld a, $7e
|
|
ldh [hWY], a
|
|
ld a, rSCY - $ff00
|
|
ldh [hLCDCPointer], a
|
|
ld a, $40
|
|
ld [wSurfingMinigamePikachuSpeed], a
|
|
xor a
|
|
ld [wSurfingMinigamePikachuSpeed + 1], a
|
|
xor a
|
|
ld [wSurfingMinigamePikachuHP], a
|
|
ld a, $60
|
|
ld [wSurfingMinigamePikachuHP + 1], a
|
|
ld hl, wSurfingMinigameWaveHeight
|
|
ld bc, $14
|
|
ld a, $74
|
|
call FillMemory
|
|
call Func_f81ff
|
|
call Func_f8256
|
|
ld a, $e3
|
|
ldh [rLCDC], a
|
|
call SurfingPikachuMinigame_SetBGPals
|
|
ld a, $e4
|
|
ldh [rOBP0], a
|
|
ld a, $e0
|
|
ldh [rOBP1], a
|
|
call UpdateCGBPal_OBP0
|
|
call UpdateCGBPal_OBP1
|
|
ret
|
|
|
|
SurfingPikachuMinigame_SetBGPals:
|
|
ld a, [wOnSGB]
|
|
and a
|
|
jr nz, .sgb
|
|
ld a, $d0
|
|
ldh [rBGP], a
|
|
call UpdateCGBPal_BGP
|
|
ret
|
|
|
|
.sgb
|
|
ld a, $e4
|
|
ldh [rBGP], a
|
|
call UpdateCGBPal_BGP
|
|
ret
|
|
|
|
Func_f81ff:
|
|
ld hl, wSpriteDataEnd
|
|
ld de, Unkn_f8249
|
|
ld b, $97
|
|
ld c, $80
|
|
ld a, $4
|
|
call Func_f8233
|
|
ld de, Unkn_f8248
|
|
ld b, $96
|
|
ld c, $50
|
|
ld a, $1
|
|
call Func_f8233
|
|
ld de, Unkn_f824d
|
|
ld b, $14
|
|
ld c, $20
|
|
ld a, $5
|
|
call Func_f8233
|
|
ld de, Unkn_f8252
|
|
ld b, $20
|
|
ld c, $80
|
|
ld a, $4
|
|
call Func_f8233
|
|
ret
|
|
|
|
Func_f8233:
|
|
.asm_f8233
|
|
push af
|
|
ld [hl], b
|
|
inc hl
|
|
ld [hl], c
|
|
inc hl
|
|
ld a, [de]
|
|
ld [hl], a
|
|
inc hl
|
|
ld [hl], $0
|
|
inc hl
|
|
ld a, c
|
|
add $8
|
|
ld c, a
|
|
inc de
|
|
pop af
|
|
dec a
|
|
jr nz, .asm_f8233
|
|
ret
|
|
|
|
Unkn_f8248:
|
|
db $fe
|
|
|
|
Unkn_f8249:
|
|
db $d0
|
|
db $d0
|
|
db $d0
|
|
db $d0
|
|
|
|
Unkn_f824d:
|
|
db $ec
|
|
db $ed
|
|
db $ed
|
|
db $ee
|
|
db $ef
|
|
|
|
Unkn_f8252:
|
|
db $ec
|
|
db $ed
|
|
db $ee
|
|
db $ef
|
|
|
|
Func_f8256:
|
|
ld de, $9c21
|
|
ld hl, Unkn_f8279
|
|
ld c, $9
|
|
.asm_f825e
|
|
ld a, [hli]
|
|
ld [de], a
|
|
inc de
|
|
dec c
|
|
jr nz, .asm_f825e
|
|
ld hl, $9c01
|
|
ld [hl], $15
|
|
ld hl, $9c02
|
|
ld [hl], $16
|
|
ld hl, $9c2c
|
|
ld [hl], $1b
|
|
ld hl, $9c2d
|
|
ld [hl], $1c
|
|
ret
|
|
|
|
Unkn_f8279:
|
|
db $17
|
|
db $18
|
|
db $19
|
|
db $19
|
|
db $19
|
|
db $19
|
|
db $19
|
|
db $19
|
|
db $19
|
|
|
|
RunSurfingMinigameRoutine:
|
|
ld a, [wSurfingMinigameRoutineNumber]
|
|
ld e, a
|
|
ld d, $0
|
|
ld hl, .Jumptable
|
|
add hl, de
|
|
add hl, de
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
jp hl
|
|
|
|
.Jumptable:
|
|
dw SurfingMinigameRoutine_SpawnPikachu ; 0
|
|
dw SurfingMinigame_RunGame ; 1
|
|
dw Func_f8324 ; 2
|
|
dw Func_f835c ; 3
|
|
dw SurfingMinigame_DrawResultsScreenAndWait ; 4
|
|
dw SurfingMinigame_WriteHPLeftAndWait ; 5
|
|
dw SurfingMinigame_WriteRadnessAndWait ; 6
|
|
dw SurfingMinigame_WriteTotalAndWait ; 7
|
|
dw SurfingMinigame_AddRemainingHPToTotalAndWait ; 8
|
|
dw SurfingMinigame_AddRadnessToTotalAndWait ; 9
|
|
dw SurfingMinigame_WaitLast ; a
|
|
dw SurfingMinigame_ExitOnPressA ; b
|
|
dw SurfingMinigame_GameOver ; c
|
|
|
|
SurfingMinigameRoutine_SpawnPikachu:
|
|
ld a, $2
|
|
lb de, $48, $e0
|
|
call SpawnAnimatedObject
|
|
ld hl, wSurfingMinigameRoutineNumber
|
|
inc [hl]
|
|
ld a, $1
|
|
ld [wc634], a
|
|
ret
|
|
|
|
SurfingMinigame_RunGame:
|
|
ld a, [wc5e5]
|
|
cp $18
|
|
jr nc, .asm_f82e8
|
|
ld hl, wSurfingMinigamePikachuHP
|
|
ld a, [hli]
|
|
or [hl]
|
|
and a
|
|
jr z, .dead
|
|
call Random
|
|
ld [wc5d5], a
|
|
call SurfingMinigame_UpdateLYOverrides
|
|
call SurfingMinigame_SetPikachuHeight
|
|
call SurfingMinigame_ReadBGMapBuffer
|
|
call SurfingMinigame_ScrollAndGenerateBGMap
|
|
call SurfingMinigame_UpdatePikachuDistance
|
|
call SurfingMinigame_Deduct1HP
|
|
call SurfingMinigame_DrawHP
|
|
ret
|
|
|
|
.asm_f82e8
|
|
ld hl, wSurfingMinigameRoutineNumber
|
|
inc [hl]
|
|
xor a
|
|
ld [wc634], a
|
|
ld a, 192
|
|
ld [wSurfingMinigameRoutineDelay], a
|
|
ret
|
|
|
|
.dead
|
|
ld a, $1
|
|
ld [wc630], a
|
|
ld a, $c
|
|
ld [wSurfingMinigameRoutineNumber], a
|
|
ld a, $80
|
|
ld [wc631], a
|
|
ld a, $b
|
|
lb de, $88, $58
|
|
call SpawnAnimatedObject
|
|
ld hl, ANIM_OBJ_Y_OFFSET
|
|
add hl, bc
|
|
ld [hl], $80
|
|
ld hl, ANIM_OBJ_FIELD_B
|
|
add hl, bc
|
|
ld [hl], $80
|
|
ld hl, ANIM_OBJ_FIELD_C
|
|
add hl, bc
|
|
ld [hl], $30
|
|
xor a
|
|
ld [wc634], a
|
|
ret
|
|
|
|
Func_f8324:
|
|
call SurfingMinigame_RunDelayTimer
|
|
jr c, .done_delay
|
|
xor a
|
|
ld [wc5d5], a
|
|
call SurfingMinigame_UpdateLYOverrides
|
|
call SurfingMinigame_SetPikachuHeight
|
|
call SurfingMinigame_ReadBGMapBuffer
|
|
call Func_f8c97
|
|
call SurfingMinigame_ResetMusicTempo
|
|
ret
|
|
|
|
.done_delay
|
|
ld hl, wSurfingMinigameRoutineNumber
|
|
inc [hl]
|
|
ld a, $90
|
|
ldh [hSCX], a
|
|
ld a, $72
|
|
ld [wSurfingMinigameWaveFunctionNumber], a
|
|
ld a, $4
|
|
ld [wc5d2], a
|
|
xor a
|
|
ldh [hLCDCPointer], a
|
|
ld [wSurfingMinigameSCX], a
|
|
ld [wSurfingMinigameSCX2], a
|
|
ld [wSurfingMinigameSCXHi], a
|
|
ret
|
|
|
|
Func_f835c:
|
|
ldh a, [hSCX]
|
|
and a
|
|
jr z, .asm_f837b
|
|
call SurfingMinigame_UpdateLYOverrides
|
|
call SurfingMinigame_SetPikachuHeight
|
|
call SurfingMinigame_ReadBGMapBuffer
|
|
ldh a, [hSCX]
|
|
dec a
|
|
dec a
|
|
dec a
|
|
dec a
|
|
ldh [hSCX], a
|
|
ld a, $e0
|
|
ld [wSurfingMinigameXOffset], a
|
|
call SurfingMinigame_GenerateBGMap
|
|
ret
|
|
|
|
.asm_f837b
|
|
xor a
|
|
ld [wSurfingMinigamePikachuSpeed], a
|
|
ld [wSurfingMinigamePikachuSpeed + 1], a
|
|
ld hl, wSurfingMinigameRoutineNumber
|
|
inc [hl]
|
|
ld a, $5
|
|
ld [wc5d2], a
|
|
ret
|
|
|
|
SurfingMinigame_DrawResultsScreenAndWait:
|
|
call SurfingMinigame_DrawResultsScreen
|
|
ld a, 32
|
|
ld [wSurfingMinigameRoutineDelay], a
|
|
ld hl, wSurfingMinigameRoutineNumber
|
|
inc [hl]
|
|
ret
|
|
|
|
SurfingMinigame_WriteHPLeftAndWait:
|
|
call SurfingMinigame_RunDelayTimer
|
|
ret nc
|
|
call SurfingMinigame_WriteHPLeft
|
|
ld a, 64
|
|
ld [wSurfingMinigameRoutineDelay], a
|
|
ld hl, wSurfingMinigameRoutineNumber
|
|
inc [hl]
|
|
ret
|
|
|
|
SurfingMinigame_WriteRadnessAndWait:
|
|
call SurfingMinigame_RunDelayTimer
|
|
ret nc
|
|
call SurfingMinigame_WriteRadness
|
|
ld a, 64
|
|
ld [wSurfingMinigameRoutineDelay], a
|
|
ld hl, wSurfingMinigameRoutineNumber
|
|
inc [hl]
|
|
ret
|
|
|
|
SurfingMinigame_WriteTotalAndWait:
|
|
call SurfingMinigame_RunDelayTimer
|
|
ret nc
|
|
call SurfingMinigame_WriteTotal
|
|
ld a, 64
|
|
ld [wSurfingMinigameRoutineDelay], a
|
|
ld hl, wSurfingMinigameRoutineNumber
|
|
inc [hl]
|
|
ret
|
|
|
|
SurfingMinigame_AddRemainingHPToTotalAndWait:
|
|
call SurfingMinigame_RunDelayTimer
|
|
ret nc
|
|
call SurfingMinigame_AddRemainingHPToTotal
|
|
push af
|
|
call SurfingMinigame_BCDPrintTotalScore
|
|
pop af
|
|
ret nc
|
|
ld a, 64
|
|
ld [wSurfingMinigameRoutineDelay], a
|
|
ld hl, wSurfingMinigameRoutineNumber
|
|
inc [hl]
|
|
ret
|
|
|
|
SurfingMinigame_AddRadnessToTotalAndWait:
|
|
call SurfingMinigame_RunDelayTimer
|
|
ret nc
|
|
call SurfingMinigame_AddRadnessToTotal
|
|
push af
|
|
call SurfingMinigame_BCDPrintTotalScore
|
|
pop af
|
|
ret nc
|
|
ld a, 128
|
|
ld [wSurfingMinigameRoutineDelay], a
|
|
ld hl, wSurfingMinigameRoutineNumber
|
|
inc [hl]
|
|
call DidPlayerGetAHighScore
|
|
ret nc
|
|
call SurfingMinigame_PrintTextHiScore
|
|
ld a, $6
|
|
ld [wc5d2], a
|
|
ret
|
|
|
|
SurfingMinigame_WaitLast:
|
|
call SurfingMinigame_RunDelayTimer
|
|
ret nc
|
|
ld hl, wSurfingMinigameRoutineNumber
|
|
inc [hl]
|
|
ret
|
|
|
|
SurfingMinigame_ExitOnPressA:
|
|
call SurfingMinigame_UpdateLYOverrides
|
|
ldh a, [hJoyPressed]
|
|
and PAD_A
|
|
ret z
|
|
ld hl, wSurfingMinigameRoutineNumber
|
|
set 7, [hl]
|
|
ret
|
|
|
|
SurfingMinigame_GameOver:
|
|
call SurfingMinigame_UpdateLYOverrides
|
|
call SurfingMinigame_SetPikachuHeight
|
|
call SurfingMinigame_ReadBGMapBuffer
|
|
call SurfingMinigame_ScrollAndGenerateBGMap
|
|
call SurfingMinigame_ResetMusicTempo
|
|
ld hl, wc631
|
|
ld a, [hl]
|
|
and a
|
|
jr z, .wait_press_a
|
|
dec [hl]
|
|
ret
|
|
|
|
.wait_press_a
|
|
ldh a, [hJoyPressed]
|
|
and PAD_A
|
|
ret z
|
|
ld hl, wSurfingMinigameRoutineNumber
|
|
set 7, [hl]
|
|
ret
|
|
|
|
SurfingMinigame_RunDelayTimer:
|
|
ld hl, wSurfingMinigameRoutineDelay
|
|
ld a, [hl]
|
|
and a
|
|
jr z, .set_carry
|
|
dec [hl]
|
|
and a
|
|
ret
|
|
|
|
.set_carry
|
|
scf
|
|
ret
|
|
|
|
SurfingMinigame_UpdatePikachuDistance:
|
|
ld a, [wc5e5 + 1]
|
|
ld h, a
|
|
ld a, [wc5e5 + 2]
|
|
ld l, a
|
|
ld a, [wSurfingMinigamePikachuSpeed]
|
|
ld e, a
|
|
ld a, [wSurfingMinigamePikachuSpeed + 1]
|
|
ld d, a
|
|
add hl, de
|
|
ld a, h
|
|
ld [wc5e5 + 1], a
|
|
ld a, l
|
|
ld [wc5e5 + 2], a
|
|
ret nc
|
|
ld hl, wc5e5
|
|
inc [hl]
|
|
ld hl, wShadowOAMSprite04XCoord
|
|
dec [hl]
|
|
dec [hl]
|
|
ret
|
|
|
|
SurfingMinigameAnimatedObjectFn_Pikachu:
|
|
ld a, [wc5d2]
|
|
ld e, a
|
|
ld d, $0
|
|
ld hl, Jumptable_f847f
|
|
add hl, de
|
|
add hl, de
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
jp hl
|
|
|
|
Jumptable_f847f:
|
|
dw Func_f848d
|
|
dw SurfingMinigame_ScoreCurrentWave
|
|
dw Func_f8516
|
|
dw Func_f8545
|
|
dw Func_f8561
|
|
dw Func_f856d
|
|
dw Func_f8579
|
|
|
|
Func_f848d:
|
|
ld a, [wc630]
|
|
and a
|
|
jr nz, .asm_f84d2
|
|
call Func_f87b5
|
|
ld a, [wSurfingMinigamePikachuObjectHeight]
|
|
ld hl, ANIM_OBJ_Y_COORD
|
|
add hl, bc
|
|
ld [hl], a
|
|
call Func_f871e
|
|
jr c, .splash
|
|
call Func_f8742
|
|
call SurfingMinigame_SpeedUpPikachu
|
|
ret
|
|
|
|
.splash
|
|
call Func_f8742
|
|
ld a, $1 ; on a wave
|
|
ld [wc5d2], a
|
|
xor a
|
|
ld hl, ANIM_OBJ_FIELD_C
|
|
add hl, bc
|
|
ld [hl], a
|
|
ld hl, ANIM_OBJ_FIELD_D
|
|
add hl, bc
|
|
ld [hl], a
|
|
ld hl, ANIM_OBJ_FIELD_E
|
|
add hl, bc
|
|
ld [hl], a
|
|
ld [wSurfingMinigameRadnessMeter], a
|
|
ld [wSurfingMinigameTrickFlags], a
|
|
xor a
|
|
ld [wChannelSoundIDs + CHAN8], a
|
|
ld a, SFX_SURFING_JUMP
|
|
call PlaySound
|
|
ret
|
|
|
|
.asm_f84d2
|
|
xor a
|
|
ld [wSurfingMinigamePikachuSpeed], a
|
|
ld [wSurfingMinigamePikachuSpeed + 1], a
|
|
ld a, $4
|
|
ld [wc5d2], a
|
|
call Func_f8742
|
|
ret
|
|
|
|
SurfingMinigame_ScoreCurrentWave:
|
|
call SurfingMinigame_DPadAction
|
|
call SurfingMinigame_UpdatePikachuHeight
|
|
ret nc
|
|
call SurfingMinigame_TileInteraction
|
|
jr c, .splash
|
|
call SurfingMinigame_CalculateAndAddRadnessFromStunt
|
|
ld hl, ANIM_OBJ_FIELD_C
|
|
add hl, bc
|
|
ld [hl], $0
|
|
ld a, $2
|
|
ld [wc5d2], a
|
|
ret
|
|
|
|
.splash
|
|
ld a, $3
|
|
ld [wc5d2], a
|
|
ld a, $60
|
|
ld [wc5e1], a
|
|
ld a, $10
|
|
call SetCurrentAnimatedObjectCallbackAndResetFrameStateRegisters
|
|
xor a
|
|
ld [wChannelSoundIDs + CHAN8], a
|
|
ld a, SFX_SURFING_CRASH
|
|
call PlaySound
|
|
ret
|
|
|
|
Func_f8516:
|
|
ld hl, ANIM_OBJ_FIELD_C
|
|
add hl, bc
|
|
ld a, [hl]
|
|
cp $20
|
|
jr nc, .asm_f8539
|
|
inc [hl]
|
|
inc [hl]
|
|
inc [hl]
|
|
inc [hl]
|
|
ld d, $4
|
|
call SurfingPikachu_Sine
|
|
ld hl, ANIM_OBJ_Y_OFFSET
|
|
add hl, bc
|
|
ld [hl], a
|
|
call Func_f87b5
|
|
ld a, [wSurfingMinigamePikachuObjectHeight]
|
|
ld hl, ANIM_OBJ_Y_COORD
|
|
add hl, bc
|
|
ld [hl], a
|
|
ret
|
|
|
|
.asm_f8539
|
|
ld hl, ANIM_OBJ_Y_OFFSET
|
|
add hl, bc
|
|
ld [hl], $0
|
|
ld a, $0
|
|
ld [wc5d2], a
|
|
ret
|
|
|
|
Func_f8545:
|
|
ld hl, wc5e1
|
|
ld a, [hl]
|
|
and a
|
|
jr z, .asm_f8556
|
|
dec [hl]
|
|
ld a, [wSurfingMinigamePikachuObjectHeight]
|
|
ld hl, ANIM_OBJ_Y_COORD
|
|
add hl, bc
|
|
ld [hl], a
|
|
ret
|
|
|
|
.asm_f8556
|
|
ld a, $0
|
|
ld [wc5d2], a
|
|
ld a, $4
|
|
call SetCurrentAnimatedObjectCallbackAndResetFrameStateRegisters
|
|
ret
|
|
|
|
Func_f8561:
|
|
ld a, [wSurfingMinigamePikachuObjectHeight]
|
|
ld hl, ANIM_OBJ_Y_COORD
|
|
add hl, bc
|
|
ld [hl], a
|
|
call Func_f8742
|
|
ret
|
|
|
|
Func_f856d:
|
|
ld a, $f
|
|
call SetCurrentAnimatedObjectCallbackAndResetFrameStateRegisters
|
|
ld hl, ANIM_OBJ_FIELD_C
|
|
add hl, bc
|
|
ld [hl], $0
|
|
ret
|
|
|
|
Func_f8579:
|
|
ld hl, ANIM_OBJ_FIELD_C
|
|
add hl, bc
|
|
ld a, [hl]
|
|
inc [hl]
|
|
inc [hl]
|
|
and $3f
|
|
cp $20
|
|
jr c, .asm_f8591
|
|
ld d, $10
|
|
call SurfingPikachu_Sine
|
|
ld hl, ANIM_OBJ_Y_OFFSET
|
|
add hl, bc
|
|
ld [hl], a
|
|
ret
|
|
|
|
.asm_f8591
|
|
ld hl, ANIM_OBJ_Y_OFFSET
|
|
add hl, bc
|
|
ld [hl], $0
|
|
ret
|
|
|
|
SurfingMinigame_DPadAction:
|
|
ld de, hJoy5
|
|
ld a, [de]
|
|
and PAD_LEFT
|
|
jr nz, .d_left
|
|
ld a, [de]
|
|
and PAD_RIGHT
|
|
jr nz, .d_right
|
|
ret
|
|
|
|
.d_left
|
|
ld hl, ANIM_OBJ_FIELD_E
|
|
add hl, bc
|
|
ld [hl], $0
|
|
ld hl, ANIM_OBJ_FIELD_D
|
|
add hl, bc
|
|
ld a, [hl]
|
|
inc [hl]
|
|
cp $b
|
|
jr c, .d_left_skip
|
|
call .StartTrick
|
|
ld hl, wSurfingMinigameTrickFlags
|
|
set 0, [hl]
|
|
.d_left_skip
|
|
ld hl, ANIM_OBJ_FRAME_SET
|
|
add hl, bc
|
|
ld a, [hl]
|
|
cp $e
|
|
jr nc, .d_left_reset
|
|
inc [hl]
|
|
ret
|
|
|
|
.d_left_reset
|
|
ld [hl], $1
|
|
ret
|
|
|
|
.d_right
|
|
ld hl, ANIM_OBJ_FIELD_D
|
|
add hl, bc
|
|
ld [hl], $0
|
|
ld hl, ANIM_OBJ_FIELD_E
|
|
add hl, bc
|
|
ld a, [hl]
|
|
inc [hl]
|
|
cp $d
|
|
jr c, .d_right_skip
|
|
call .StartTrick
|
|
ld hl, wSurfingMinigameTrickFlags
|
|
set 1, [hl]
|
|
.d_right_skip
|
|
ld hl, ANIM_OBJ_FRAME_SET
|
|
add hl, bc
|
|
ld a, [hl]
|
|
cp $1
|
|
jr z, .d_right_reset
|
|
dec [hl]
|
|
ret
|
|
|
|
.d_right_reset
|
|
ld [hl], $e
|
|
ret
|
|
|
|
.StartTrick:
|
|
call SurfingMinigame_IncreaseRadnessMeter
|
|
xor a
|
|
ld hl, ANIM_OBJ_FIELD_D
|
|
add hl, bc
|
|
ld [hl], a
|
|
ld hl, ANIM_OBJ_FIELD_E
|
|
add hl, bc
|
|
ld [hl], a
|
|
ld a, SFX_SURFING_FLIP
|
|
call PlaySound
|
|
ret
|
|
|
|
SurfingMinigame_TileInteraction:
|
|
ld hl, ANIM_OBJ_FRAME_SET
|
|
add hl, bc
|
|
ld a, [wSurfingMinigameBGMapReadBuffer]
|
|
cp $6
|
|
jr z, .tile_06
|
|
cp $14
|
|
jr z, .tile_14
|
|
cp $12
|
|
jr z, .tile_12
|
|
cp $7
|
|
jr z, .tile_07
|
|
ld a, [hl]
|
|
cp $1
|
|
jp z, .action_0
|
|
cp $2
|
|
jr z, .action_1
|
|
cp $3
|
|
jr z, .action_2
|
|
cp $4
|
|
jr z, .action_3
|
|
cp $5
|
|
jr z, .action_2
|
|
cp $6
|
|
jr z, .action_1
|
|
cp $7
|
|
jr z, .action_0
|
|
jr .action_0
|
|
|
|
.tile_06
|
|
ld a, [hl]
|
|
cp $1
|
|
jr z, .action_0
|
|
cp $2
|
|
jr z, .action_0
|
|
cp $3
|
|
jr z, .action_0
|
|
cp $4
|
|
jr z, .action_1
|
|
cp $5
|
|
jr z, .action_2
|
|
cp $6
|
|
jr z, .action_3
|
|
cp $7
|
|
jr z, .action_2
|
|
jr .action_0
|
|
|
|
.tile_07
|
|
ld a, [hl]
|
|
cp $1
|
|
jr z, .action_2
|
|
cp $2
|
|
jr z, .action_3
|
|
cp $3
|
|
jr z, .action_2
|
|
cp $4
|
|
jr z, .action_1
|
|
cp $5
|
|
jr z, .action_0
|
|
cp $6
|
|
jr z, .action_0
|
|
cp $7
|
|
jr z, .action_0
|
|
jr .action_0
|
|
|
|
.tile_12
|
|
.tile_14
|
|
ld a, [hl]
|
|
cp $1
|
|
jr z, .action_0
|
|
cp $2
|
|
jr z, .action_1
|
|
cp $3
|
|
jr z, .action_2
|
|
cp $4
|
|
jr z, .action_3
|
|
cp $5
|
|
jr z, .action_3
|
|
cp $6
|
|
jr z, .action_2
|
|
cp $7
|
|
jr z, .action_1
|
|
jr .action_0
|
|
|
|
.action_1
|
|
call SufingMinigame_ReduceSpeedBy128
|
|
jr .action_3
|
|
|
|
.action_2
|
|
call SufingMinigame_ReduceSpeedBy64
|
|
.action_3
|
|
xor a
|
|
ld [wChannelSoundIDs + CHAN8], a
|
|
ld a, SFX_SURFING_LAND
|
|
call PlaySound
|
|
and a
|
|
ret
|
|
|
|
.action_0
|
|
ld a, $40
|
|
ld [wSurfingMinigamePikachuSpeed], a
|
|
xor a
|
|
ld [wSurfingMinigamePikachuSpeed + 1], a
|
|
scf
|
|
ret
|
|
|
|
SurfingMinigame_SpeedUpPikachu:
|
|
ld a, [wSurfingMinigamePikachuSpeed + 1]
|
|
cp $2
|
|
ret nc
|
|
ld h, a
|
|
ld a, [wSurfingMinigamePikachuSpeed]
|
|
ld l, a
|
|
ld de, $2
|
|
add hl, de
|
|
ld a, h
|
|
ld [wSurfingMinigamePikachuSpeed + 1], a
|
|
ld a, l
|
|
ld [wSurfingMinigamePikachuSpeed], a
|
|
ret
|
|
|
|
SufingMinigame_ReduceSpeedBy64:
|
|
ld a, [wSurfingMinigamePikachuSpeed + 1]
|
|
and a
|
|
jr nz, .go
|
|
ld a, [wSurfingMinigamePikachuSpeed]
|
|
cp $40
|
|
jr nc, .go
|
|
xor a
|
|
ld [wSurfingMinigamePikachuSpeed], a
|
|
ret
|
|
|
|
.go
|
|
ld a, [wSurfingMinigamePikachuSpeed + 1]
|
|
ld h, a
|
|
ld a, [wSurfingMinigamePikachuSpeed]
|
|
ld l, a
|
|
ld de, -$40
|
|
add hl, de
|
|
ld a, h
|
|
ld [wSurfingMinigamePikachuSpeed + 1], a
|
|
ld a, l
|
|
ld [wSurfingMinigamePikachuSpeed], a
|
|
ret
|
|
|
|
SufingMinigame_ReduceSpeedBy128:
|
|
ld a, [wSurfingMinigamePikachuSpeed + 1]
|
|
and a
|
|
jr nz, .go
|
|
ld a, [wSurfingMinigamePikachuSpeed]
|
|
cp $80
|
|
jr nc, .go
|
|
xor a
|
|
ld [wSurfingMinigamePikachuSpeed], a
|
|
ret
|
|
|
|
.go
|
|
ld a, [wSurfingMinigamePikachuSpeed + 1]
|
|
ld h, a
|
|
ld a, [wSurfingMinigamePikachuSpeed]
|
|
ld l, a
|
|
ld de, -$80
|
|
add hl, de
|
|
ld a, h
|
|
ld [wSurfingMinigamePikachuSpeed + 1], a
|
|
ld a, l
|
|
ld [wSurfingMinigamePikachuSpeed], a
|
|
ret
|
|
|
|
Func_f871e:
|
|
ldh a, [hSCX]
|
|
and $7
|
|
cp $3
|
|
jr c, .asm_f8740
|
|
cp $5
|
|
jr nc, .asm_f8740
|
|
ld a, [wSurfingMinigameBGMapReadBuffer]
|
|
cp $14
|
|
jr nz, .asm_f8740
|
|
call SufingMinigame_GetSpeedDividedBy32
|
|
cp $a
|
|
jr c, .asm_f8740
|
|
ld [wc5ec], a
|
|
call Func_f9284
|
|
scf
|
|
ret
|
|
|
|
.asm_f8740
|
|
and a
|
|
ret
|
|
|
|
Func_f8742:
|
|
ldh a, [hSCX]
|
|
and $7
|
|
cp $3
|
|
ret c
|
|
cp $5
|
|
ret nc
|
|
ld a, [wSurfingMinigameBGMapReadBuffer]
|
|
cp $6
|
|
jr z, .asm_f8766
|
|
cp $14
|
|
jr z, .asm_f8766
|
|
cp $7
|
|
jr z, .asm_f876a
|
|
call Func_f8778
|
|
ld a, $4
|
|
ld hl, ANIM_OBJ_FRAME_SET
|
|
add hl, bc
|
|
ld [hl], a
|
|
ret
|
|
|
|
.asm_f8766
|
|
ld a, $6
|
|
jr .asm_f876c
|
|
|
|
.asm_f876a
|
|
ld a, $2
|
|
.asm_f876c
|
|
ld e, a
|
|
ld a, [wc5de]
|
|
dec a
|
|
add e
|
|
ld hl, ANIM_OBJ_FRAME_SET
|
|
add hl, bc
|
|
ld [hl], a
|
|
ret
|
|
|
|
Func_f8778:
|
|
ld hl, wc5e0
|
|
ld a, [hl]
|
|
inc [hl]
|
|
and $7
|
|
ret nz
|
|
ld a, [wc5df]
|
|
and a
|
|
jr z, .asm_f8796
|
|
ld a, [wc5de]
|
|
and a
|
|
jr z, .asm_f8791
|
|
dec a
|
|
ld [wc5de], a
|
|
ret
|
|
|
|
.asm_f8791
|
|
xor a
|
|
ld [wc5df], a
|
|
ret
|
|
|
|
.asm_f8796
|
|
ld a, [wc5de]
|
|
cp $2
|
|
jr z, .asm_f87a2
|
|
inc a
|
|
ld [wc5de], a
|
|
ret
|
|
|
|
.asm_f87a2
|
|
ld a, $1
|
|
ld [wc5df], a
|
|
ret
|
|
|
|
SufingMinigame_GetSpeedDividedBy32:
|
|
ld a, [wSurfingMinigamePikachuSpeed]
|
|
ld l, a
|
|
ld a, [wSurfingMinigamePikachuSpeed + 1]
|
|
ld h, a
|
|
add hl, hl
|
|
add hl, hl
|
|
add hl, hl
|
|
ld a, h
|
|
ret
|
|
|
|
Func_f87b5:
|
|
ld hl, wc5eb
|
|
ld a, [hl]
|
|
inc [hl]
|
|
and $3
|
|
ret nz
|
|
call .GetYCoord
|
|
ld d, a
|
|
ld hl, ANIM_OBJ_X_COORD
|
|
add hl, bc
|
|
ld e, [hl]
|
|
ld a, $a
|
|
push bc
|
|
call SpawnAnimatedObject
|
|
pop bc
|
|
ret
|
|
|
|
.GetYCoord:
|
|
ldh a, [hSCX]
|
|
and $8
|
|
jr nz, .get_height_plus_9
|
|
ld hl, wSurfingMinigameWaveHeight + 8
|
|
jr .got_hl
|
|
|
|
.get_height_plus_9
|
|
ld hl, wSurfingMinigameWaveHeight + 9
|
|
.got_hl
|
|
ld a, [wSurfingMinigameBGMapReadBuffer + 1]
|
|
cp $6
|
|
jr z, .six_or_twenty
|
|
cp $14
|
|
jr z, .six_or_twenty
|
|
cp $7
|
|
jr z, .seven
|
|
ld a, [hl]
|
|
ret
|
|
|
|
.six_or_twenty
|
|
ldh a, [hSCX]
|
|
and $7
|
|
ld e, a
|
|
ld a, [hl]
|
|
sub e
|
|
ret
|
|
|
|
.seven
|
|
ldh a, [hSCX]
|
|
and $7
|
|
add [hl]
|
|
ret
|
|
|
|
Func_f87fb:
|
|
ld hl, ANIM_OBJ_X_COORD
|
|
add hl, bc
|
|
ld a, [hl]
|
|
cp $58
|
|
ret z
|
|
add $4
|
|
ld [hl], a
|
|
ret
|
|
|
|
Func_f8807: ; unreferenced
|
|
call MaskCurrentAnimatedObjectStruct
|
|
ret
|
|
|
|
SurfingMinigameAnimatedObjectFn_FlippingPika:
|
|
ld hl, ANIM_OBJ_FIELD_B
|
|
add hl, bc
|
|
ld a, [hl]
|
|
and a
|
|
ret z
|
|
dec [hl]
|
|
dec [hl]
|
|
ld d, a
|
|
ld hl, ANIM_OBJ_FIELD_C
|
|
add hl, bc
|
|
ld a, [hl]
|
|
inc [hl]
|
|
call SurfingPikachu_Sine
|
|
cp $80
|
|
jr nc, .positive
|
|
xor $ff
|
|
inc a
|
|
.positive
|
|
ld hl, ANIM_OBJ_Y_OFFSET
|
|
add hl, bc
|
|
ld [hl], a
|
|
ret
|
|
|
|
SurfingMinigameAnimatedObjectFn_IntroAnimationPikachu:
|
|
ld hl, ANIM_OBJ_FIELD_B
|
|
add hl, bc
|
|
ld a, [hl]
|
|
inc [hl]
|
|
and $1
|
|
ret z
|
|
ld hl, ANIM_OBJ_X_COORD
|
|
add hl, bc
|
|
ld a, [hl]
|
|
cp $c0
|
|
jr z, .done
|
|
inc [hl]
|
|
ret
|
|
|
|
.done
|
|
ld a, $1
|
|
ld [wSurfingMinigameIntroAnimationFinished], a
|
|
call MaskCurrentAnimatedObjectStruct
|
|
ret
|
|
|
|
SurfingMinigame_MoveClouds:
|
|
ld a, [wc635]
|
|
ld e, a
|
|
ld d, $0
|
|
ld a, [wSurfingMinigamePikachuSpeed]
|
|
ld l, a
|
|
ld a, [wSurfingMinigamePikachuSpeed + 1]
|
|
ld h, a
|
|
add hl, de
|
|
ld a, l
|
|
ld [wc635], a
|
|
ld d, h
|
|
ld hl, wShadowOAMSprite05XCoord
|
|
ld e, $9
|
|
.loop
|
|
ld a, [hl]
|
|
add d
|
|
ld [hli], a
|
|
inc hl
|
|
inc hl
|
|
inc hl
|
|
dec e
|
|
jr nz, .loop
|
|
ret
|
|
|
|
SurfingMinigame_ReadBGMapBuffer:
|
|
ld a, [wSurfingMinigameBGMapReadBuffer] ; ???
|
|
ldh a, [hSCX]
|
|
add $48
|
|
ld e, a
|
|
srl e
|
|
srl e
|
|
srl e
|
|
ld d, $0
|
|
ld hl, vBGMap0
|
|
add hl, de
|
|
ld a, [wSurfingMinigamePikachuObjectHeight]
|
|
srl a
|
|
srl a
|
|
srl a
|
|
ld c, a
|
|
.loop
|
|
ld a, c
|
|
and a
|
|
jr z, .copy
|
|
dec c
|
|
ld de, $20
|
|
add hl, de
|
|
ld a, h
|
|
and $3
|
|
or $98
|
|
ld h, a
|
|
jr .loop
|
|
|
|
.copy
|
|
ld de, wSurfingMinigameBGMapReadBuffer
|
|
ld a, e
|
|
ldh [hVBlankCopyDest], a
|
|
ld a, d
|
|
ldh [hVBlankCopyDest + 1], a
|
|
ld a, l
|
|
ldh [hVBlankCopySource], a
|
|
ld a, h
|
|
ldh [hVBlankCopySource + 1], a
|
|
ld a, 16 / $10
|
|
ldh [hVBlankCopySize], a
|
|
ret
|
|
|
|
SurfingMinigame_SetPikachuHeight:
|
|
ldh a, [hSCX]
|
|
and $8
|
|
jr nz, .asm_f88b9
|
|
ld hl, wSurfingMinigameWaveHeight + 7
|
|
jr .asm_f88bc
|
|
|
|
.asm_f88b9
|
|
ld hl, wSurfingMinigameWaveHeight + 8
|
|
.asm_f88bc
|
|
ld a, [wSurfingMinigameBGMapReadBuffer]
|
|
cp $6
|
|
jr z, .asm_f88d0
|
|
cp $14
|
|
jr z, .asm_f88d0
|
|
cp $7
|
|
jr z, .asm_f88db
|
|
ld a, [hl]
|
|
ld [wSurfingMinigamePikachuObjectHeight], a
|
|
ret
|
|
|
|
.asm_f88d0
|
|
ldh a, [hSCX]
|
|
and $7
|
|
ld e, a
|
|
ld a, [hl]
|
|
sub e
|
|
ld [wSurfingMinigamePikachuObjectHeight], a
|
|
ret
|
|
|
|
.asm_f88db
|
|
ldh a, [hSCX]
|
|
and $7
|
|
add [hl]
|
|
ld [wSurfingMinigamePikachuObjectHeight], a
|
|
ret
|
|
|
|
SurfingMinigame_Deduct1HP:
|
|
ld hl, wSurfingMinigamePikachuHP
|
|
ld e, $99
|
|
call .BCD_Deduct
|
|
ret nc
|
|
inc hl
|
|
ld e, $99
|
|
.BCD_Deduct:
|
|
ld a, [hl]
|
|
and a
|
|
jr z, .roll_over
|
|
sub $1
|
|
daa
|
|
ld [hl], a
|
|
and a
|
|
ret
|
|
|
|
.roll_over
|
|
ld [hl], e
|
|
scf
|
|
ret
|
|
|
|
SurfingMinigame_DrawHP:
|
|
ld de, wSurfingMinigamePikachuHP + 1
|
|
ld hl, wShadowOAMSprite00TileID
|
|
ld a, [de]
|
|
call .PlaceBCDNumber
|
|
ld hl, wShadowOAMSprite02TileID
|
|
ld a, [de]
|
|
.PlaceBCDNumber:
|
|
ld c, a
|
|
swap a
|
|
and $f
|
|
add $d0
|
|
ld [hli], a
|
|
inc hl
|
|
inc hl
|
|
inc hl
|
|
ld a, c
|
|
and $f
|
|
add $d0
|
|
ld [hl], a
|
|
dec de
|
|
ret
|
|
|
|
SurfingMinigame_DrawResultsScreen:
|
|
ld hl, wTileMap
|
|
ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
|
|
xor a
|
|
call FillMemory
|
|
ld hl, .BeachTilemap
|
|
decoord 0, 6
|
|
ld bc, .BeachTilemapEnd - .BeachTilemap
|
|
call CopyData
|
|
call .PlaceTextbox
|
|
ld hl, wShadowOAMSprite05XCoord
|
|
ld bc, 9 * 4
|
|
xor a
|
|
call FillMemory
|
|
ld a, $1
|
|
ldh [hAutoBGTransferEnabled], a
|
|
ret
|
|
|
|
.BeachTilemap:
|
|
INCBIN "gfx/surfing_pikachu/unknown_f8946.map"
|
|
.BeachTilemapEnd:
|
|
|
|
.PlaceTextbox:
|
|
hlcoord 1, 1
|
|
lb de, $3b, $3c
|
|
ld a, $40
|
|
call .place_row
|
|
hlcoord 1, 2
|
|
lb de, $3f, $3f
|
|
ld a, $ff
|
|
call .place_row
|
|
hlcoord 1, 3
|
|
lb de, $3f, $3f
|
|
ld a, $ff
|
|
call .place_row
|
|
hlcoord 1, 4
|
|
lb de, $3f, $3f
|
|
ld a, $ff
|
|
call .place_row
|
|
hlcoord 1, 5
|
|
lb de, $3f, $3f
|
|
ld a, $ff
|
|
call .place_row
|
|
hlcoord 1, 6
|
|
lb de, $3f, $3f
|
|
ld a, $ff
|
|
call .place_row
|
|
hlcoord 1, 7
|
|
lb de, $3f, $3f
|
|
ld a, $ff
|
|
call .place_row
|
|
hlcoord 1, 8
|
|
lb de, $3f, $3f
|
|
ld a, $ff
|
|
call .place_row
|
|
hlcoord 1, 9
|
|
lb de, $3d, $3e
|
|
ld a, $40
|
|
call .place_row
|
|
ret
|
|
|
|
.place_row:
|
|
ld [hl], d
|
|
inc hl
|
|
ld c, $10
|
|
.loop
|
|
ld [hli], a
|
|
dec c
|
|
jr nz, .loop
|
|
ld [hl], e
|
|
ret
|
|
|
|
SurfingMinigame_PrintTextHiScore:
|
|
ld hl, .Hi_Score
|
|
decoord 6, 8
|
|
ld bc, $9
|
|
call CopyData
|
|
ret
|
|
|
|
.Hi_Score:
|
|
db $20,$2e,$2f,$30,$31,$2c,$32,$23,$33 ; Hi-Score!!
|
|
|
|
SurfingMinigame_WriteHPLeft:
|
|
ld hl, .HP_Left
|
|
decoord 2, 2
|
|
ld bc, $7
|
|
call CopyData
|
|
call SurfingMinigame_BCDPrintHPLeft
|
|
ret
|
|
|
|
.HP_Left:
|
|
db $20,$21,$ff,$22,$23,$24,$25 ; HP Left
|
|
|
|
SurfingMinigame_AddRemainingHPToTotal:
|
|
ld c, 99
|
|
.loop
|
|
push bc
|
|
ld hl, wSurfingMinigamePikachuHP
|
|
ld a, [hli]
|
|
or [hl]
|
|
and a
|
|
jr z, .dead
|
|
call SurfingMinigame_Deduct1HP
|
|
ld e, $1
|
|
call SurfingMinigame_AddPointsToTotal
|
|
pop bc
|
|
dec c
|
|
jr nz, .loop
|
|
ld a, SFX_PRESS_AB
|
|
call PlaySound
|
|
and a
|
|
ret
|
|
|
|
.dead
|
|
pop bc
|
|
scf
|
|
ret
|
|
|
|
SurfingMinigame_BCDPrintHPLeft:
|
|
hlcoord 10, 2
|
|
ld de, wSurfingMinigamePikachuHP + 1
|
|
ld a, [de]
|
|
call SurfingPikachu_PlaceBCDNumber
|
|
inc hl
|
|
ld a, [de]
|
|
call SurfingPikachu_PlaceBCDNumber
|
|
inc hl
|
|
inc hl
|
|
ld [hl], $21 ; P
|
|
inc hl
|
|
ld [hl], $25 ; t
|
|
inc hl
|
|
ld [hl], $26 ; s
|
|
ret
|
|
|
|
SurfingMinigame_WriteRadness:
|
|
ld hl, .Radness
|
|
decoord 2, 4
|
|
ld bc, $7
|
|
call CopyData
|
|
call SurfingMinigame_BCDPrintRadness
|
|
ret
|
|
|
|
.Radness:
|
|
db $27,$28,$29,$2a,$23,$26,$26 ; Radness
|
|
|
|
SurfingMinigame_AddRadnessToTotal:
|
|
ld c, 99
|
|
.loop
|
|
push bc
|
|
ld hl, wSurfingMinigameRadnessScore
|
|
ld a, [hli]
|
|
ld e, a
|
|
or [hl]
|
|
jr z, .done
|
|
ld d, [hl]
|
|
ld a, e
|
|
sub $1
|
|
daa
|
|
ld e, a
|
|
ld a, d
|
|
sbc $0
|
|
daa
|
|
ld [hld], a
|
|
ld [hl], e
|
|
ld e, $1
|
|
call SurfingMinigame_AddPointsToTotal
|
|
pop bc
|
|
dec c
|
|
jr nz, .loop
|
|
ld a, SFX_PRESS_AB
|
|
call PlaySound
|
|
and a
|
|
ret
|
|
|
|
.done
|
|
pop bc
|
|
scf
|
|
ret
|
|
|
|
SurfingMinigame_BCDPrintRadness:
|
|
ld a, [wSurfingMinigameRadnessScore + 1]
|
|
hlcoord 10, 4
|
|
call SurfingPikachu_PlaceBCDNumber
|
|
ld a, [wSurfingMinigameRadnessScore]
|
|
hlcoord 12, 4
|
|
call SurfingPikachu_PlaceBCDNumber
|
|
inc hl
|
|
inc hl
|
|
ld [hl], $21 ; P
|
|
inc hl
|
|
ld [hl], $25 ; t
|
|
inc hl
|
|
ld [hl], $26 ; s
|
|
ret
|
|
|
|
SurfingMinigame_AddPointsToTotal:
|
|
ld a, [wSurfingMinigameTotalScore]
|
|
add e
|
|
daa
|
|
ld [wSurfingMinigameTotalScore], a
|
|
ld a, [wSurfingMinigameTotalScore + 1]
|
|
adc $0
|
|
daa
|
|
ld [wSurfingMinigameTotalScore + 1], a
|
|
ret nc
|
|
ld a, $99
|
|
ld [wSurfingMinigameTotalScore], a
|
|
ld [wSurfingMinigameTotalScore + 1], a
|
|
ret
|
|
|
|
SurfingMinigame_BCDPrintTotalScore:
|
|
ld a, [wSurfingMinigameTotalScore + 1]
|
|
hlcoord 10, 6
|
|
call SurfingPikachu_PlaceBCDNumber
|
|
ld a, [wSurfingMinigameTotalScore]
|
|
hlcoord 12, 6
|
|
call SurfingPikachu_PlaceBCDNumber
|
|
inc hl
|
|
inc hl
|
|
ld [hl], $21 ; P
|
|
inc hl
|
|
ld [hl], $25 ; t
|
|
inc hl
|
|
ld [hl], $26 ; s
|
|
ret
|
|
|
|
SurfingMinigame_WriteTotal:
|
|
ld hl, .Total
|
|
decoord 2, 6
|
|
ld bc, $5
|
|
call CopyData
|
|
call SurfingMinigame_BCDPrintRadness
|
|
call SurfingMinigame_BCDPrintTotalScore
|
|
ret
|
|
|
|
.Total:
|
|
db $2b,$2c,$25,$28,$2d ; Total
|
|
|
|
DidPlayerGetAHighScore:
|
|
ld hl, wSurfingMinigameHiScore + 1
|
|
ld a, [wSurfingMinigameTotalScore + 1]
|
|
cp [hl]
|
|
jr c, .not_high_score
|
|
jr nz, .high_score
|
|
dec hl
|
|
ld a, [wSurfingMinigameTotalScore]
|
|
cp [hl]
|
|
jr c, .not_high_score
|
|
jr nz, .high_score
|
|
.not_high_score
|
|
call WaitForSoundToFinish
|
|
ldpikacry e, PikachuCry28
|
|
call SurfingMinigame_PlayPikaCryIfSurfingPikaInParty
|
|
and a
|
|
ret
|
|
|
|
.high_score
|
|
ld a, [wSurfingMinigameTotalScore]
|
|
ld [wSurfingMinigameHiScore], a
|
|
ld a, [wSurfingMinigameTotalScore + 1]
|
|
ld [wSurfingMinigameHiScore + 1], a
|
|
call WaitForSoundToFinish
|
|
ldpikacry e, PikachuCry34
|
|
call SurfingMinigame_PlayPikaCryIfSurfingPikaInParty
|
|
ld a, SFX_GET_ITEM2_4_2
|
|
call PlaySound
|
|
scf
|
|
ret
|
|
|
|
SurfingMinigame_PlayPikaCryIfSurfingPikaInParty:
|
|
push de
|
|
callfar IsSurfingPikachuInThePlayersParty
|
|
pop de
|
|
ret nc
|
|
callfar PlayPikachuSoundClip
|
|
ret
|
|
|
|
SurfingMinigame_IncreaseRadnessMeter:
|
|
ld a, [wSurfingMinigameRadnessMeter]
|
|
inc a
|
|
cp $4
|
|
jr c, .cap
|
|
ld a, $3
|
|
.cap
|
|
ld [wSurfingMinigameRadnessMeter], a
|
|
ret
|
|
|
|
SurfingMinigame_CalculateAndAddRadnessFromStunt:
|
|
; Compute the amount of radness points from the
|
|
; current trick based on the number of
|
|
; consecutive flips
|
|
; Single flip: +0050
|
|
; 2 of the same flip: +0150
|
|
; 3 or more of the same flip: +0350
|
|
; 2 different flips: +0180
|
|
; 3 or more different flips: +0500
|
|
ld a, [wSurfingMinigameRadnessMeter]
|
|
and a
|
|
ret z
|
|
ld a, [wSurfingMinigameTrickFlags]
|
|
and $3
|
|
cp $3 ; did a combination of front and back flips
|
|
jr z, .mixed_chain
|
|
ld a, [wSurfingMinigameRadnessMeter]
|
|
ld d, a
|
|
ld e, $1
|
|
ld a, $0
|
|
.get_amount_of_radness
|
|
add e
|
|
sla e
|
|
dec d
|
|
jr nz, .get_amount_of_radness
|
|
.add_radness_50_at_a_time
|
|
push af
|
|
ld e, $50
|
|
call SurfingMinigame_AddRadness
|
|
pop af
|
|
dec a
|
|
jr nz, .add_radness_50_at_a_time
|
|
ld hl, ANIM_OBJ_Y_COORD
|
|
add hl, bc
|
|
ld a, [hl]
|
|
sub $10
|
|
ld d, a
|
|
ld hl, ANIM_OBJ_X_COORD
|
|
add hl, bc
|
|
ld e, [hl]
|
|
ld a, [wSurfingMinigameRadnessMeter]
|
|
add $3
|
|
push bc
|
|
call SpawnAnimatedObject
|
|
pop bc
|
|
ret
|
|
|
|
.mixed_chain
|
|
ld a, [wSurfingMinigameRadnessMeter]
|
|
cp $3
|
|
jr c, .add_180_radness_points
|
|
ld a, 10
|
|
.add_500_radness_50_at_a_time
|
|
push af
|
|
ld e, $50
|
|
call SurfingMinigame_AddRadness
|
|
pop af
|
|
dec a
|
|
jr nz, .add_500_radness_50_at_a_time
|
|
ld hl, ANIM_OBJ_Y_COORD
|
|
add hl, bc
|
|
ld a, [hl]
|
|
sub $10
|
|
ld d, a
|
|
ld hl, ANIM_OBJ_X_COORD
|
|
add hl, bc
|
|
ld e, [hl]
|
|
ld a, $9
|
|
push bc
|
|
call SpawnAnimatedObject
|
|
pop bc
|
|
ret
|
|
|
|
.add_180_radness_points
|
|
ld e, $50
|
|
call SurfingMinigame_AddRadness
|
|
ld e, $50
|
|
call SurfingMinigame_AddRadness
|
|
ld e, $50
|
|
call SurfingMinigame_AddRadness
|
|
ld e, $30
|
|
call SurfingMinigame_AddRadness
|
|
ld hl, ANIM_OBJ_Y_COORD
|
|
add hl, bc
|
|
ld a, [hl]
|
|
sub $10
|
|
ld d, a
|
|
ld hl, ANIM_OBJ_X_COORD
|
|
add hl, bc
|
|
ld e, [hl]
|
|
ld a, $8
|
|
push bc
|
|
call SpawnAnimatedObject
|
|
pop bc
|
|
ret
|
|
|
|
SurfingMinigame_AddRadness:
|
|
ld a, [wSurfingMinigameRadnessScore]
|
|
add e
|
|
daa
|
|
ld [wSurfingMinigameRadnessScore], a
|
|
ld a, [wSurfingMinigameRadnessScore + 1]
|
|
adc $0
|
|
daa
|
|
ld [wSurfingMinigameRadnessScore + 1], a
|
|
ret nc
|
|
ld a, $99
|
|
ld [wSurfingMinigameRadnessScore], a
|
|
ld [wSurfingMinigameRadnessScore + 1], a
|
|
ret
|
|
|
|
Func_f8c97:
|
|
ld a, $a0
|
|
ld [wSurfingMinigameXOffset], a
|
|
ldh a, [hSCX]
|
|
ld h, a
|
|
ld a, [wSurfingMinigameSCX]
|
|
ld l, a
|
|
ld de, $900
|
|
add hl, de
|
|
ld a, l
|
|
ld [wSurfingMinigameSCX], a
|
|
ld a, h
|
|
ldh [hSCX], a
|
|
jr SurfingMinigame_GenerateBGMap
|
|
|
|
SurfingMinigame_ScrollAndGenerateBGMap:
|
|
ld a, $a0
|
|
ld [wSurfingMinigameXOffset], a
|
|
ldh a, [hSCX]
|
|
ld h, a
|
|
ld a, [wSurfingMinigameSCX]
|
|
ld l, a
|
|
ld de, $180
|
|
add hl, de
|
|
ld a, l
|
|
ld [wSurfingMinigameSCX], a
|
|
ld a, h
|
|
ldh [hSCX], a
|
|
SurfingMinigame_GenerateBGMap:
|
|
ld hl, wSurfingMinigameSCX2
|
|
ldh a, [hSCX]
|
|
cp [hl]
|
|
ret z
|
|
ld [hl], a
|
|
and $f0
|
|
ld hl, wSurfingMinigameSCXHi
|
|
cp [hl]
|
|
ret z
|
|
ld [hl], a
|
|
call SurfingMinigame_GetWaveDataPointers
|
|
; b and c contain the height of the next wave to appear
|
|
; on screen, in number of pixels from the top of the screen
|
|
ld a, b
|
|
ld [wSurfingMinigameWaveHeightBuffer], a
|
|
ld a, c
|
|
ld [wSurfingMinigameWaveHeightBuffer + 1], a
|
|
push de
|
|
ld hl, wSurfingMinigameWaveHeight
|
|
ld de, wSurfingMinigameWaveHeight + 2
|
|
ld c, SCREEN_WIDTH - 2
|
|
.copy_loop
|
|
ld a, [de]
|
|
inc de
|
|
ld [hli], a
|
|
dec c
|
|
jr nz, .copy_loop
|
|
ld a, [wSurfingMinigameWaveHeightBuffer]
|
|
ld [hli], a
|
|
ld a, [wSurfingMinigameWaveHeightBuffer + 1]
|
|
ld [hl], a
|
|
pop de
|
|
ld hl, wRedrawRowOrColumnSrcTiles
|
|
ld c, $8
|
|
.loop
|
|
ld a, [de]
|
|
call .CopyRedrawSrcTiles
|
|
inc de
|
|
dec c
|
|
jr nz, .loop
|
|
ld a, [wSurfingMinigameXOffset]
|
|
ld e, a
|
|
ldh a, [hSCX]
|
|
add e
|
|
and $f0
|
|
srl a
|
|
srl a
|
|
srl a
|
|
ld e, a
|
|
ld d, $0
|
|
ld hl, vBGMap0
|
|
add hl, de
|
|
ld a, l
|
|
ldh [hRedrawRowOrColumnDest], a
|
|
ld a, h
|
|
ldh [hRedrawRowOrColumnDest + 1], a
|
|
ld a, $1
|
|
ldh [hRedrawRowOrColumnMode], a
|
|
ret
|
|
|
|
.CopyRedrawSrcTiles:
|
|
push de
|
|
push hl
|
|
ld l, a
|
|
ld h, $0
|
|
ld de, Unkn_f96e5
|
|
add hl, hl
|
|
add hl, hl
|
|
add hl, de
|
|
ld e, l
|
|
ld d, h
|
|
pop hl
|
|
ld a, [de]
|
|
inc de
|
|
ld [hli], a
|
|
ld a, [de]
|
|
inc de
|
|
ld [hli], a
|
|
ld a, [de]
|
|
inc de
|
|
ld [hli], a
|
|
ld a, [de]
|
|
inc de
|
|
ld [hli], a
|
|
pop de
|
|
ret
|
|
|
|
SurfingMinigame_GetWaveDataPointers:
|
|
ld a, [wSurfingMinigameWaveFunctionNumber]
|
|
ld e, a
|
|
ld d, $0
|
|
ld hl, Jumptable_f8d53
|
|
add hl, de
|
|
add hl, de
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
jp hl
|
|
|
|
Jumptable_f8d53:
|
|
dw SurfingMinigameWaveFunction_NoWave ; 00
|
|
|
|
dw Func_f8f28 ; 01
|
|
dw Func_f8f31 ; 02
|
|
dw Func_f8f3a ; 03
|
|
dw Func_f8f43 ; 04
|
|
dw Func_f8e7d ; 05
|
|
dw Func_f8f4c ; 06
|
|
dw Func_f8f55 ; 07
|
|
dw Func_f8f5e ; 08
|
|
dw Func_f8e7d ; 09
|
|
dw Func_f8e7d ; 0a
|
|
dw Func_f8e7d ; 0b
|
|
dw Func_f8e7d ; 0c
|
|
dw Func_f8f94 ; 0d
|
|
|
|
dw Func_f8ec5 ; 0e
|
|
dw Func_f8ece ; 0f
|
|
dw Func_f8ed7 ; 10
|
|
dw Func_f8ee0 ; 11
|
|
dw Func_f8ee9 ; 12
|
|
dw Func_f8ef2 ; 13
|
|
dw Func_f8e7d ; 14
|
|
dw Func_f8e7d ; 15
|
|
dw Func_f8e7d ; 16
|
|
dw Func_f8e7d ; 17
|
|
dw Func_f8e7d ; 18
|
|
dw Func_f8f94 ; 19
|
|
|
|
dw Func_f8efb ; 1a
|
|
dw Func_f8f04 ; 1b
|
|
dw Func_f8f0d ; 1c
|
|
dw Func_f8f16 ; 1d
|
|
dw Func_f8f1f ; 1e
|
|
dw Func_f8efb ; 1f
|
|
dw Func_f8f04 ; 20
|
|
dw Func_f8f0d ; 21
|
|
dw Func_f8f16 ; 22
|
|
dw Func_f8f1f ; 23
|
|
dw Func_f8e7d ; 24
|
|
dw Func_f8e7d ; 25
|
|
dw Func_f8e7d ; 26
|
|
dw Func_f8e7d ; 27
|
|
dw Func_f8f94 ; 28
|
|
|
|
dw Func_f8f28 ; 29
|
|
dw Func_f8f31 ; 2a
|
|
dw Func_f8f3a ; 2b
|
|
dw Func_f8f43 ; 2c
|
|
dw Func_f8e7d ; 2d
|
|
dw Func_f8e7d ; 2e
|
|
dw Func_f8e7d ; 2f
|
|
dw Func_f8e7d ; 30
|
|
dw Func_f8f94 ; 31
|
|
|
|
dw Func_f8f4c ; 32
|
|
dw Func_f8f55 ; 33
|
|
dw Func_f8f5e ; 34
|
|
dw Func_f8f4c ; 35
|
|
dw Func_f8f55 ; 36
|
|
dw Func_f8f5e ; 37
|
|
dw Func_f8f4c ; 38
|
|
dw Func_f8f55 ; 39
|
|
dw Func_f8f5e ; 3a
|
|
dw Func_f8e7d ; 3b
|
|
dw Func_f8e7d ; 3c
|
|
dw Func_f8e7d ; 3d
|
|
dw Func_f8e7d ; 3e
|
|
dw Func_f8f94 ; 3f
|
|
|
|
dw Func_f8f67 ; 40
|
|
dw Func_f8f70 ; 41
|
|
dw Func_f8efb ; 42
|
|
dw Func_f8f04 ; 43
|
|
dw Func_f8f0d ; 44
|
|
dw Func_f8f16 ; 45
|
|
dw Func_f8f1f ; 46
|
|
dw Func_f8f67 ; 47
|
|
dw Func_f8f70 ; 48
|
|
dw Func_f8e7d ; 49
|
|
dw Func_f8e7d ; 4a
|
|
dw Func_f8e7d ; 4b
|
|
dw Func_f8f94 ; 4c
|
|
|
|
dw Func_f8ec5 ; 4d
|
|
dw Func_f8ece ; 4e
|
|
dw Func_f8ed7 ; 4f
|
|
dw Func_f8ee0 ; 50
|
|
dw Func_f8ee9 ; 51
|
|
dw Func_f8ef2 ; 52
|
|
dw Func_f8e7d ; 53
|
|
dw Func_f8f67 ; 54
|
|
dw Func_f8f70 ; 55
|
|
dw Func_f8f67 ; 56
|
|
dw Func_f8f70 ; 57
|
|
dw Func_f8e7d ; 58
|
|
dw Func_f8e7d ; 59
|
|
dw Func_f8e7d ; 5a
|
|
dw Func_f8f94 ; 5b
|
|
|
|
dw Func_f8efb ; 5c
|
|
dw Func_f8f04 ; 5d
|
|
dw Func_f8f0d ; 5e
|
|
dw Func_f8f16 ; 5f
|
|
dw Func_f8f1f ; 60
|
|
dw Func_f8f28 ; 61
|
|
dw Func_f8f31 ; 62
|
|
dw Func_f8f3a ; 63
|
|
dw Func_f8f43 ; 64
|
|
dw Func_f8e7d ; 65
|
|
dw Func_f8e7d ; 66
|
|
dw Func_f8e7d ; 67
|
|
dw Func_f8e7d ; 68
|
|
dw Func_f8f94 ; 69
|
|
|
|
dw Func_f8e86 ; 6a
|
|
dw Func_f8e8f ; 6b
|
|
dw Func_f8e98 ; 6c
|
|
dw Func_f8ea1 ; 6d
|
|
dw Func_f8eaa ; 6e
|
|
dw Func_f8eb3 ; 6f
|
|
dw Func_f8ebc ; 70
|
|
dw Func_f8f9d ; 71
|
|
|
|
dw Func_f8e7d ; 72
|
|
dw Func_f8f79 ; 73
|
|
dw Func_f8f82 ; 74
|
|
dw Func_f8f82 ; 75
|
|
dw Func_f8f82 ; 76
|
|
dw Func_f8f82 ; 77
|
|
dw Func_f8f82 ; 78
|
|
dw Func_f8f82 ; 79
|
|
dw Func_f8f82 ; 7a
|
|
dw Func_f8f8b ; 7b
|
|
|
|
SurfingMinigameWaveFunction_NoWave:
|
|
ld a, [wc5e5]
|
|
cp $16
|
|
jr c, .check_param
|
|
jr z, .big_kahuna
|
|
jr nc, .got_wave
|
|
.big_kahuna
|
|
ld a, $6a
|
|
jr .got_next_fn
|
|
|
|
.check_param
|
|
ld a, [wc5d5]
|
|
and a
|
|
jr z, .got_wave
|
|
dec a
|
|
and $7
|
|
ld e, a
|
|
ld d, $0
|
|
ld hl, Unkn_f8e75
|
|
add hl, de
|
|
ld a, [hl]
|
|
.got_next_fn
|
|
ld [wSurfingMinigameWaveFunctionNumber], a
|
|
.got_wave
|
|
lb bc, $74, $74
|
|
ld de, Unkn_f973d
|
|
ret
|
|
|
|
Unkn_f8e75:
|
|
db $01,$0e,$1a,$29,$32,$40,$4d,$5c
|
|
|
|
Func_f8e7d:
|
|
lb bc, $74, $74
|
|
ld de, Unkn_f973d
|
|
jp SurfingMinigameWaveFunction_GoToNextWaveFunction
|
|
|
|
Func_f8e86:
|
|
lb bc, $74, $6c
|
|
ld de, Unkn_f9745
|
|
jp SurfingMinigameWaveFunction_GoToNextWaveFunction
|
|
|
|
Func_f8e8f:
|
|
lb bc, $64, $5c
|
|
ld de, Unkn_f974d
|
|
jp SurfingMinigameWaveFunction_GoToNextWaveFunction
|
|
|
|
Func_f8e98:
|
|
lb bc, $54, $4c
|
|
ld de, Unkn_f9755
|
|
jp SurfingMinigameWaveFunction_GoToNextWaveFunction
|
|
|
|
Func_f8ea1:
|
|
lb bc, $44, $44
|
|
ld de, Unkn_f975d
|
|
jp SurfingMinigameWaveFunction_GoToNextWaveFunction
|
|
|
|
Func_f8eaa:
|
|
lb bc, $44, $4c
|
|
ld de, Unkn_f9765
|
|
jp SurfingMinigameWaveFunction_GoToNextWaveFunction
|
|
|
|
Func_f8eb3:
|
|
lb bc, $54, $5c
|
|
ld de, Unkn_f976d
|
|
jp SurfingMinigameWaveFunction_GoToNextWaveFunction
|
|
|
|
Func_f8ebc:
|
|
lb bc, $64, $6c
|
|
ld de, Unkn_f9775
|
|
jp SurfingMinigameWaveFunction_GoToNextWaveFunction
|
|
|
|
Func_f8ec5:
|
|
lb bc, $74, $6c
|
|
ld de, Unkn_f977d
|
|
jp SurfingMinigameWaveFunction_GoToNextWaveFunction
|
|
|
|
Func_f8ece:
|
|
lb bc, $64, $5c
|
|
ld de, Unkn_f9785
|
|
jp SurfingMinigameWaveFunction_GoToNextWaveFunction
|
|
|
|
Func_f8ed7:
|
|
lb bc, $54, $4c
|
|
ld de, Unkn_f978d
|
|
jp SurfingMinigameWaveFunction_GoToNextWaveFunction
|
|
|
|
Func_f8ee0:
|
|
lb bc, $4c, $4c
|
|
ld de, Unkn_f9795
|
|
jp SurfingMinigameWaveFunction_GoToNextWaveFunction
|
|
|
|
Func_f8ee9:
|
|
lb bc, $54, $5c
|
|
ld de, Unkn_f979d
|
|
jp SurfingMinigameWaveFunction_GoToNextWaveFunction
|
|
|
|
Func_f8ef2:
|
|
lb bc, $64, $6c
|
|
ld de, Unkn_f97a5
|
|
jp SurfingMinigameWaveFunction_GoToNextWaveFunction
|
|
|
|
Func_f8efb:
|
|
lb bc, $74, $6c
|
|
ld de, Unkn_f97ad
|
|
jp SurfingMinigameWaveFunction_GoToNextWaveFunction
|
|
|
|
Func_f8f04:
|
|
lb bc, $64, $5c
|
|
ld de, Unkn_f97b5
|
|
jp SurfingMinigameWaveFunction_GoToNextWaveFunction
|
|
|
|
Func_f8f0d:
|
|
lb bc, $54, $54
|
|
ld de, Unkn_f97bd
|
|
jp SurfingMinigameWaveFunction_GoToNextWaveFunction
|
|
|
|
Func_f8f16:
|
|
lb bc, $54, $5c
|
|
ld de, Unkn_f97c5
|
|
jp SurfingMinigameWaveFunction_GoToNextWaveFunction
|
|
|
|
Func_f8f1f:
|
|
lb bc, $64, $6c
|
|
ld de, Unkn_f97cd
|
|
jp SurfingMinigameWaveFunction_GoToNextWaveFunction
|
|
|
|
Func_f8f28:
|
|
lb bc, $74, $6c
|
|
ld de, Unkn_f97d5
|
|
jp SurfingMinigameWaveFunction_GoToNextWaveFunction
|
|
|
|
Func_f8f31:
|
|
lb bc, $64, $5c
|
|
ld de, Unkn_f97dd
|
|
jp SurfingMinigameWaveFunction_GoToNextWaveFunction
|
|
|
|
Func_f8f3a:
|
|
lb bc, $5c, $5c
|
|
ld de, Unkn_f97e5
|
|
jp SurfingMinigameWaveFunction_GoToNextWaveFunction
|
|
|
|
Func_f8f43:
|
|
lb bc, $64, $6c
|
|
ld de, Unkn_f97ed
|
|
jp SurfingMinigameWaveFunction_GoToNextWaveFunction
|
|
|
|
Func_f8f4c:
|
|
lb bc, $74, $6c
|
|
ld de, Unkn_f97f5
|
|
jp SurfingMinigameWaveFunction_GoToNextWaveFunction
|
|
|
|
Func_f8f55:
|
|
lb bc, $64, $64
|
|
ld de, Unkn_f97fd
|
|
jp SurfingMinigameWaveFunction_GoToNextWaveFunction
|
|
|
|
Func_f8f5e:
|
|
lb bc, $64, $6c
|
|
ld de, Unkn_f9805
|
|
jp SurfingMinigameWaveFunction_GoToNextWaveFunction
|
|
|
|
Func_f8f67:
|
|
lb bc, $74, $6c
|
|
ld de, Unkn_f980d
|
|
jp SurfingMinigameWaveFunction_GoToNextWaveFunction
|
|
|
|
Func_f8f70:
|
|
lb bc, $6c, $6c
|
|
ld de, Unkn_f9815
|
|
jp SurfingMinigameWaveFunction_GoToNextWaveFunction
|
|
|
|
Func_f8f79:
|
|
lb bc, $74, $74
|
|
ld de, Unkn_f981d
|
|
jp SurfingMinigameWaveFunction_GoToNextWaveFunction
|
|
|
|
Func_f8f82:
|
|
lb bc, $74, $74
|
|
ld de, Unkn_f9825
|
|
jp SurfingMinigameWaveFunction_GoToNextWaveFunction
|
|
|
|
Func_f8f8b:
|
|
lb bc, $74, $74
|
|
ld de, Unkn_f9825
|
|
jp SurfingMinigameWaveFunction_ResetWaveFunction
|
|
|
|
Func_f8f94:
|
|
lb bc, $74, $74
|
|
ld de, Unkn_f973d
|
|
jp SurfingMinigameWaveFunction_ResetWaveFunction
|
|
|
|
Func_f8f9d:
|
|
lb bc, $74, $74
|
|
ld de, Unkn_f973d
|
|
ret
|
|
|
|
Func_f8fa4: ; unused
|
|
inc a
|
|
ld [wSurfingMinigameWaveFunctionNumber], a
|
|
ret
|
|
|
|
SurfingMinigameWaveFunction_GoToNextWaveFunction:
|
|
ld hl, wSurfingMinigameWaveFunctionNumber
|
|
inc [hl]
|
|
ret
|
|
|
|
SurfingMinigameWaveFunction_ResetWaveFunction:
|
|
xor a
|
|
ld [wSurfingMinigameWaveFunctionNumber], a
|
|
ret
|
|
|
|
SurfingPikachuMinigameIntro:
|
|
call SurfingPikachu_ClearTileMap
|
|
call ClearSprites
|
|
call DisableLCD
|
|
xor a
|
|
ldh [hAutoBGTransferEnabled], a
|
|
call ClearObjectAnimationBuffers
|
|
ld hl, SurfingPikachu1Graphics3
|
|
ld de, $8800
|
|
ld bc, $900
|
|
ld a, BANK(SurfingPikachu1Graphics3)
|
|
call FarCopyData
|
|
ld a, LOW(SurfingPikachuSpawnStateDataPointer)
|
|
ld [wAnimatedObjectSpawnStateDataPointer], a
|
|
ld a, HIGH(SurfingPikachuSpawnStateDataPointer)
|
|
ld [wAnimatedObjectSpawnStateDataPointer + 1], a
|
|
ld a, LOW(SurfingPikachuObjectJumptable)
|
|
ld [wAnimatedObjectJumptablePointer], a
|
|
ld a, HIGH(SurfingPikachuObjectJumptable)
|
|
ld [wAnimatedObjectJumptablePointer + 1], a
|
|
ld a, LOW(SurfingPikachuOAMData)
|
|
ld [wAnimatedObjectOAMDataPointer], a
|
|
ld a, HIGH(SurfingPikachuOAMData)
|
|
ld [wAnimatedObjectOAMDataPointer + 1], a
|
|
ld a, LOW(SurfingPikachuFrames)
|
|
ld [wAnimatedObjectFramesDataPointer], a
|
|
ld a, HIGH(SurfingPikachuFrames)
|
|
ld [wAnimatedObjectFramesDataPointer + 1], a
|
|
ld a, $c
|
|
lb de, $74, $58
|
|
call SpawnAnimatedObject
|
|
call DrawSurfingPikachuMinigameIntroBackground
|
|
xor a
|
|
ldh [hSCX], a
|
|
ldh [hSCY], a
|
|
ld a, $90
|
|
ldh [hWY], a
|
|
ld b, SET_PAL_SURFING_PIKACHU_MINIGAME
|
|
call RunPaletteCommand
|
|
ld a, $e3
|
|
ldh [rLCDC], a
|
|
ld a, $1
|
|
ldh [hAutoBGTransferEnabled], a
|
|
call DelayFrame
|
|
call DelayFrame
|
|
call DelayFrame
|
|
call SurfingPikachuMinigame_SetBGPals
|
|
ld a, $e4
|
|
ldh [rOBP0], a
|
|
ld a, $e0
|
|
ldh [rOBP1], a
|
|
call UpdateCGBPal_OBP0
|
|
call UpdateCGBPal_OBP1
|
|
call DelayFrame
|
|
ld a, MUSIC_SURFING_PIKACHU
|
|
ld c, BANK(Music_SurfingPikachu)
|
|
call PlayMusic
|
|
xor a
|
|
ld [wSurfingMinigameIntroAnimationFinished], a
|
|
.loop
|
|
ld a, [wSurfingMinigameIntroAnimationFinished]
|
|
and a
|
|
ret nz
|
|
ld a, $0
|
|
ld [wCurrentAnimatedObjectOAMBufferOffset], a
|
|
call RunObjectAnimations
|
|
call DelayFrame
|
|
jr .loop
|
|
|
|
DrawSurfingPikachuMinigameIntroBackground:
|
|
ld hl, wTileMap
|
|
ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
|
|
ld a, $ff
|
|
call FillMemory
|
|
ld hl, Tilemap_f90bc
|
|
decoord 0, 6
|
|
ld bc, 12 * SCREEN_WIDTH
|
|
call CopyData
|
|
ld de, Tilemap_f91c8
|
|
hlcoord 4, 0
|
|
lb bc, 6, 12
|
|
call .CopyBox
|
|
hlcoord 3, 7
|
|
lb bc, 3, 15
|
|
call .FillBoxWithFF
|
|
ld hl, Tilemap_f91ac
|
|
decoord 3, 7
|
|
ld bc, 15
|
|
call CopyData
|
|
ld hl, Tilemap_f91bb
|
|
decoord 4, 9
|
|
ld bc, 13
|
|
call CopyData
|
|
ret
|
|
|
|
.CopyBox:
|
|
.copy_row
|
|
push bc
|
|
push hl
|
|
.copy_col
|
|
ld a, [de]
|
|
inc de
|
|
ld [hli], a
|
|
dec c
|
|
jr nz, .copy_col
|
|
ld bc, SCREEN_WIDTH
|
|
pop hl
|
|
add hl, bc
|
|
pop bc
|
|
dec b
|
|
jr nz, .copy_row
|
|
ret
|
|
|
|
.FillBoxWithFF:
|
|
.fill_row
|
|
push bc
|
|
push hl
|
|
.fill_col
|
|
ld [hl], $ff
|
|
inc hl
|
|
dec c
|
|
jr nz, .fill_col
|
|
pop hl
|
|
ld bc, SCREEN_WIDTH
|
|
add hl, bc
|
|
pop bc
|
|
dec b
|
|
jr nz, .fill_row
|
|
ret
|
|
|
|
Tilemap_f90bc: INCBIN "gfx/surfing_pikachu/unknown_f90bc.map"
|
|
Tilemap_f91ac: INCBIN "gfx/surfing_pikachu/unknown_f91ac.map"
|
|
Tilemap_f91bb: INCBIN "gfx/surfing_pikachu/unknown_f91bb.map"
|
|
Tilemap_f91c8: INCBIN "gfx/surfing_pikachu/unknown_f91c8.map"
|
|
|
|
SurfingMinigame_UpdateLYOverrides:
|
|
ld hl, wLYOverrides + $10
|
|
ld de, wLYOverrides + $11
|
|
ld c, $80
|
|
ld a, [hl]
|
|
push af
|
|
.loop
|
|
ld a, [de]
|
|
inc de
|
|
ld [hli], a
|
|
dec c
|
|
jr nz, .loop
|
|
pop af
|
|
ld [hl], a
|
|
ret
|
|
|
|
SurfingMinigame_InitScanlineOverrides:
|
|
ld hl, wLYOverrides
|
|
ld bc, wLYOverridesEnd - wLYOverrides
|
|
ld de, $0
|
|
.loop
|
|
ld a, e
|
|
and $1f
|
|
ld e, a
|
|
push hl
|
|
ld hl, SurfingMinigame_LYOverridesInitialSineWave
|
|
add hl, de
|
|
ld a, [hl]
|
|
pop hl
|
|
ld [hli], a
|
|
inc e
|
|
dec bc
|
|
ld a, c
|
|
or b
|
|
jr nz, .loop
|
|
ret
|
|
|
|
SurfingPikachu_GetJoypad_3FrameBuffer:
|
|
call Joypad
|
|
ldh a, [hFrameCounter]
|
|
and a
|
|
jr nz, .delayed
|
|
ldh a, [hJoyHeld]
|
|
ldh [hJoy5], a
|
|
ld a, $2
|
|
ldh [hFrameCounter], a
|
|
ret
|
|
|
|
.delayed
|
|
xor a
|
|
ldh [hJoy5], a
|
|
ret
|
|
|
|
SurfingPikachuMinigame_BlankPals:
|
|
xor a
|
|
ldh [rBGP], a
|
|
ldh [rOBP0], a
|
|
ldh [rOBP1], a
|
|
call UpdateCGBPal_BGP
|
|
call UpdateCGBPal_OBP0
|
|
call UpdateCGBPal_OBP1
|
|
ret
|
|
|
|
SurfingPikachuMinigame_NormalPals:
|
|
ld a, $e4
|
|
ldh [rBGP], a
|
|
ldh [rOBP0], a
|
|
ld a, $e0
|
|
ldh [rOBP1], a
|
|
call UpdateCGBPal_BGP
|
|
call UpdateCGBPal_OBP0
|
|
call UpdateCGBPal_OBP1
|
|
ret
|
|
|
|
SurfingPikachu_ClearTileMap:
|
|
ld hl, wTileMap
|
|
ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
|
|
xor a
|
|
call FillMemory
|
|
ret
|
|
|
|
Func_f9284:
|
|
xor a
|
|
ld [wc5ed], a
|
|
ld [wc5ee], a
|
|
ret
|
|
|
|
SurfingMinigame_UpdatePikachuHeight:
|
|
ld a, [wc5ed]
|
|
and a
|
|
jr nz, .positive
|
|
ld a, [wc5ec]
|
|
ld d, a
|
|
ld a, [wc5ee]
|
|
or d
|
|
jr z, .done
|
|
ld a, [wc5ee]
|
|
ld e, a
|
|
ld hl, -$80
|
|
add hl, de
|
|
ld a, l
|
|
ld [wc5ee], a
|
|
ld a, h
|
|
ld [wc5ec], a
|
|
|
|
; -(4 * a ** 2)
|
|
ld e, a
|
|
ld d, $0
|
|
call SurfingMinigame_NTimesDE
|
|
ld e, l
|
|
ld d, h
|
|
ld a, $4
|
|
call SurfingMinigame_NTimesDE
|
|
ld a, l
|
|
xor $ff
|
|
inc a
|
|
ld l, a
|
|
ld a, h
|
|
xor $ff
|
|
ld h, a
|
|
|
|
push hl
|
|
ld hl, ANIM_OBJ_Y_COORD
|
|
add hl, bc
|
|
ld d, [hl]
|
|
ld hl, ANIM_OBJ_FIELD_C
|
|
add hl, bc
|
|
ld e, [hl]
|
|
pop hl
|
|
|
|
add hl, de
|
|
ld e, l
|
|
ld d, h
|
|
|
|
ld hl, ANIM_OBJ_Y_COORD
|
|
add hl, bc
|
|
ld [hl], d
|
|
ld hl, ANIM_OBJ_FIELD_C
|
|
add hl, bc
|
|
ld [hl], e
|
|
and a
|
|
ret
|
|
|
|
.done
|
|
ld a, $1
|
|
ld [wc5ed], a
|
|
and a
|
|
ret
|
|
|
|
.positive
|
|
ld a, [wSurfingMinigamePikachuObjectHeight]
|
|
ld e, a
|
|
ld hl, ANIM_OBJ_Y_COORD
|
|
add hl, bc
|
|
ld a, [hl]
|
|
cp $90
|
|
jr nc, .okay
|
|
cp e
|
|
jr nc, .reset
|
|
.okay
|
|
ld a, [wc5ec]
|
|
ld d, a
|
|
ld a, [wc5ee]
|
|
ld e, a
|
|
ld hl, $80
|
|
add hl, de
|
|
ld a, l
|
|
ld [wc5ee], a
|
|
ld a, h
|
|
ld [wc5ec], a
|
|
|
|
; 4 * a ** 2
|
|
ld e, a
|
|
ld d, $0
|
|
call SurfingMinigame_NTimesDE
|
|
ld e, l
|
|
ld d, h
|
|
ld a, $4
|
|
call SurfingMinigame_NTimesDE
|
|
|
|
push hl
|
|
ld hl, ANIM_OBJ_Y_COORD
|
|
add hl, bc
|
|
ld d, [hl]
|
|
ld hl, ANIM_OBJ_FIELD_C
|
|
add hl, bc
|
|
ld e, [hl]
|
|
pop hl
|
|
|
|
add hl, de
|
|
ld e, l
|
|
ld d, h
|
|
|
|
ld hl, ANIM_OBJ_Y_COORD
|
|
add hl, bc
|
|
ld [hl], d
|
|
ld hl, ANIM_OBJ_FIELD_C
|
|
add hl, bc
|
|
ld [hl], e
|
|
and a
|
|
ret
|
|
|
|
.reset
|
|
ld hl, ANIM_OBJ_Y_COORD
|
|
add hl, bc
|
|
ld a, [wSurfingMinigamePikachuObjectHeight]
|
|
ld [hl], a
|
|
ld hl, ANIM_OBJ_FIELD_C
|
|
add hl, bc
|
|
ld [hl], $0
|
|
scf
|
|
ret
|
|
|
|
SurfingMinigame_NTimesDE:
|
|
ld hl, $0
|
|
.loop
|
|
srl a
|
|
jr nc, .no_add
|
|
add hl, de
|
|
.no_add
|
|
sla e
|
|
rl d
|
|
and a
|
|
jr nz, .loop
|
|
ret
|
|
|
|
SurfingPikachu_PlaceBCDNumber:
|
|
ld c, a
|
|
swap a
|
|
and $f
|
|
add $d0
|
|
ld [hli], a
|
|
ld a, c
|
|
and $f
|
|
add $d0
|
|
ld [hl], a
|
|
dec de
|
|
ret
|
|
|
|
SurfingPikachu_Cosine: ; cosine
|
|
add $10
|
|
SurfingPikachu_Sine: ; sine
|
|
and $3f
|
|
cp $20
|
|
jr nc, .positive
|
|
call .GetSine
|
|
ld a, h
|
|
ret
|
|
|
|
.positive
|
|
and $1f
|
|
call .GetSine
|
|
ld a, h
|
|
xor $ff
|
|
inc a
|
|
ret
|
|
|
|
.GetSine:
|
|
ld e, a
|
|
ld a, d
|
|
ld d, $0
|
|
ld hl, .SineWave
|
|
add hl, de
|
|
add hl, de
|
|
ld e, [hl]
|
|
inc hl
|
|
ld d, [hl]
|
|
ld hl, $0
|
|
.loop
|
|
srl a
|
|
jr nc, .no_add
|
|
add hl, de
|
|
.no_add
|
|
sla e
|
|
rl d
|
|
and a
|
|
jr nz, .loop
|
|
ret
|
|
|
|
.SineWave:
|
|
sine_table 32
|
|
|
|
SurfingPikachuSpawnStateDataPointer:
|
|
db $00, $00, $00 ; 0
|
|
db $04, $01, $00 ; 1
|
|
db $11, $02, $00 ; 2
|
|
db $12, $02, $00 ; 3
|
|
db $15, $00, $00 ; 4
|
|
db $16, $00, $00 ; 5
|
|
db $17, $00, $00 ; 6
|
|
db $18, $00, $00 ; 7
|
|
db $19, $00, $00 ; 8
|
|
db $1a, $00, $00 ; 9
|
|
db $14, $00, $00 ; a
|
|
db $13, $03, $00 ; b
|
|
db $1b, $04, $00 ; c
|
|
|
|
SurfingPikachuObjectJumptable:
|
|
dw SurfingMinigameAnimatedObjectFn_nop ; 0
|
|
dw SurfingMinigameAnimatedObjectFn_Pikachu ; 1
|
|
dw Func_f87fb ; 2
|
|
dw SurfingMinigameAnimatedObjectFn_FlippingPika ; 3
|
|
dw SurfingMinigameAnimatedObjectFn_IntroAnimationPikachu ; 4
|
|
|
|
SurfingMinigameAnimatedObjectFn_nop:
|
|
ret
|
|
|
|
INCLUDE "data/sprite_anims/surfing_pikachu_frames.asm"
|
|
INCLUDE "data/sprite_anims/surfing_pikachu_oam.asm"
|
|
|
|
SurfingMinigame_LYOverridesInitialSineWave:
|
|
; a sine wave with amplitude 2
|
|
db 0, 0, 0, 1, 1, 1, 1, 2
|
|
db 2, 2, 1, 1, 1, 1, 0, 0
|
|
db 0, 0, 0, -1, -1, -1, -1, -2
|
|
db -2, -2, -1, -1, -1, -1, 0, 0
|
|
|
|
Unkn_f96e5:
|
|
db $00, $00, $00, $00 ; 00
|
|
db $0b, $0b, $0b, $0b ; 01
|
|
db $0b, $02, $02, $06 ; 02
|
|
db $03, $0b, $07, $03 ; 03
|
|
db $06, $06, $06, $06 ; 04
|
|
db $07, $07, $07, $07 ; 05
|
|
db $06, $04, $04, $08 ; 06
|
|
db $05, $07, $08, $05 ; 07
|
|
db $0b, $0b, $11, $12 ; 08
|
|
db $0b, $0b, $13, $03 ; 09
|
|
db $14, $12, $04, $08 ; 0a
|
|
db $13, $07, $08, $05 ; 0b
|
|
db $06, $14, $06, $14 ; 0c
|
|
db $13, $07, $13, $07 ; 0d
|
|
db $08, $08, $08, $08 ; 0e
|
|
db $14, $12, $14, $12 ; 0f
|
|
db $0b, $11, $02, $14 ; 10
|
|
db $06, $14, $06, $14 ; 11
|
|
db $0c, $0c, $0d, $0d ; 12
|
|
db $0d, $0d, $0d, $0d ; 13
|
|
db $0e, $0f, $10, $0b ; 14
|
|
db $12, $13, $12, $13 ; 15
|
|
|
|
Unkn_f973d:
|
|
db $00, $00, $00, $01, $01, $01, $01, $01
|
|
Unkn_f9745:
|
|
db $00, $00, $00, $01, $01, $02, $04, $06
|
|
Unkn_f974d:
|
|
db $00, $00, $00, $01, $02, $04, $06, $0e
|
|
Unkn_f9755:
|
|
db $00, $00, $00, $10, $11, $06, $0e, $0e
|
|
Unkn_f975d:
|
|
db $00, $00, $00, $15, $15, $0e, $0e, $0e
|
|
Unkn_f9765:
|
|
db $00, $00, $00, $03, $05, $07, $0e, $0e
|
|
Unkn_f976d:
|
|
db $00, $00, $00, $01, $03, $05, $07, $0e
|
|
Unkn_f9775:
|
|
db $00, $00, $00, $01, $01, $03, $05, $07
|
|
Unkn_f977d:
|
|
db $00, $00, $00, $01, $01, $02, $04, $06
|
|
Unkn_f9785:
|
|
db $00, $00, $00, $01, $02, $04, $06, $0e
|
|
Unkn_f978d:
|
|
db $00, $00, $00, $08, $0f, $0a, $0e, $0e
|
|
Unkn_f9795:
|
|
db $00, $00, $00, $09, $0d, $0b, $0e, $0e
|
|
Unkn_f979d:
|
|
db $00, $00, $00, $01, $03, $05, $07, $0e
|
|
Unkn_f97a5:
|
|
db $00, $00, $00, $01, $01, $03, $05, $07
|
|
Unkn_f97ad:
|
|
db $00, $00, $00, $01, $01, $02, $04, $06
|
|
Unkn_f97b5:
|
|
db $00, $00, $00, $01, $10, $11, $06, $0e
|
|
Unkn_f97bd:
|
|
db $00, $00, $00, $01, $15, $15, $0e, $0e
|
|
Unkn_f97c5:
|
|
db $00, $00, $00, $01, $03, $05, $07, $0e
|
|
Unkn_f97cd:
|
|
db $00, $00, $00, $01, $01, $03, $05, $07
|
|
Unkn_f97d5:
|
|
db $00, $00, $00, $01, $01, $02, $04, $06
|
|
Unkn_f97dd:
|
|
db $00, $00, $00, $01, $08, $0f, $0a, $0e
|
|
Unkn_f97e5:
|
|
db $00, $00, $00, $01, $09, $0d, $0b, $0e
|
|
Unkn_f97ed:
|
|
db $00, $00, $00, $01, $01, $03, $05, $07
|
|
Unkn_f97f5:
|
|
db $00, $00, $00, $01, $01, $10, $11, $06
|
|
Unkn_f97fd:
|
|
db $00, $00, $00, $01, $01, $15, $15, $0e
|
|
Unkn_f9805:
|
|
db $00, $00, $00, $01, $01, $03, $05, $07
|
|
Unkn_f980d:
|
|
db $00, $00, $00, $01, $01, $08, $0f, $0a
|
|
Unkn_f9815:
|
|
db $00, $00, $00, $01, $01, $09, $0d, $0b
|
|
Unkn_f981d:
|
|
db $00, $00, $00, $14, $14, $14, $14, $14
|
|
Unkn_f9825:
|
|
db $00, $00, $00, $12, $13, $13, $13, $13
|