mirror of
https://github.com/pret/pokeyellow.git
synced 2026-05-22 19:07:35 -05:00
155 lines
3.0 KiB
NASM
Executable File
155 lines
3.0 KiB
NASM
Executable File
PlayPikachuSoundClip:: ; f0000 (3c:4000)
|
|
ld a, e
|
|
ld e, a
|
|
ld d, $0
|
|
ld hl, PikachuCriesPointerTable
|
|
add hl, de
|
|
add hl, de
|
|
add hl, de
|
|
ld b, [hl] ; bank of pikachu cry data
|
|
inc hl
|
|
ld a, [hli] ; cry data pointer
|
|
ld h, [hl]
|
|
ld l, a
|
|
ld c, $4
|
|
.loop
|
|
dec c
|
|
jr z, .done_delay
|
|
call DelayFrame
|
|
jr .loop
|
|
|
|
.done_delay
|
|
di
|
|
push bc
|
|
push hl
|
|
ld a, $80
|
|
ld [rNR52], a
|
|
ld a, $77
|
|
ld [rNR50], a
|
|
xor a
|
|
ld [rNR30], a
|
|
ld hl, $ff30 ; wave data
|
|
ld de, wRedrawRowOrColumnSrcTiles
|
|
.saveWaveDataLoop
|
|
ld a, [hl]
|
|
ld [de], a
|
|
inc de
|
|
ld a, $ff
|
|
ld [hli], a
|
|
ld a, l
|
|
cp $40 ; end of wave data
|
|
jr nz, .saveWaveDataLoop
|
|
ld a, $80
|
|
ld [rNR30], a
|
|
ld a, [rNR51]
|
|
or $44
|
|
ld [rNR51], a
|
|
ld a, $ff
|
|
ld [rNR31], a
|
|
ld a, $20
|
|
ld [rNR32], a
|
|
ld a, $ff
|
|
ld [rNR33], a
|
|
ld a, $87
|
|
ld [rNR34], a
|
|
pop hl
|
|
pop bc
|
|
call PlayPikachuPCM
|
|
xor a
|
|
ld [wc0f3], a
|
|
ld [wc0f4], a
|
|
ld a, $80
|
|
ld [rNR52], a
|
|
xor a
|
|
ld [rNR30], a
|
|
ld hl, $ff30
|
|
ld de, wRedrawRowOrColumnSrcTiles
|
|
.reloadWaveDataLoop
|
|
ld a, [de]
|
|
inc de
|
|
ld [hli], a
|
|
ld a, l
|
|
cp $40 ; end of wave data
|
|
jr nz, .reloadWaveDataLoop
|
|
ld a, $80
|
|
ld [rNR30], a
|
|
ld a, [rNR51]
|
|
and $bb
|
|
ld [rNR51], a
|
|
xor a
|
|
ld [wChannelSoundIDs+CH4], a
|
|
ld [wChannelSoundIDs+CH5], a
|
|
ld [wChannelSoundIDs+CH6], a
|
|
ld [wChannelSoundIDs+CH7], a
|
|
ld a, [H_LOADEDROMBANK]
|
|
ei
|
|
ret
|
|
|
|
PikachuCriesPointerTable: ; f008e (3c:408e)
|
|
; format:
|
|
; db bank
|
|
; dw pointer to cry
|
|
|
|
; bank 21
|
|
pikacry_def PikachuCry1 ; 21:4000
|
|
pikacry_def PikachuCry2 ; 21:491a
|
|
pikacry_def PikachuCry3 ; 21:4fdc
|
|
pikacry_def PikachuCry4 ; 21:59ee
|
|
|
|
; bank 22
|
|
pikacry_def PikachuCry5 ; 22:4000
|
|
pikacry_def PikachuCry6 ; 22:5042
|
|
pikacry_def PikachuCry7 ; 22:6254
|
|
|
|
; bank 23
|
|
pikacry_def PikachuCry8 ; 23:4000
|
|
pikacry_def PikachuCry9 ; 23:50ca
|
|
pikacry_def PikachuCry10 ; 23:5e0c
|
|
|
|
; bank 24
|
|
pikacry_def PikachuCry11 ; 24:4000
|
|
pikacry_def PikachuCry12 ; 24:4722
|
|
pikacry_def PikachuCry13 ; 24:54a4
|
|
|
|
; bank 25
|
|
pikacry_def PikachuCry14 ; 25:4000
|
|
pikacry_def PikachuCry15 ; 25:589a
|
|
|
|
; banks 31-34, in no particular order
|
|
|
|
pikacry_def PikachuCry16 ; 31:4000
|
|
pikacry_def PikachuCry17 ; 34:4000
|
|
pikacry_def PikachuCry18 ; 31:549a
|
|
pikacry_def PikachuCry19 ; 33:4000
|
|
pikacry_def PikachuCry20 ; 32:4000
|
|
pikacry_def PikachuCry21 ; 32:6002
|
|
pikacry_def PikachuCry22 ; 31:63a4
|
|
pikacry_def PikachuCry23 ; 34:4862
|
|
pikacry_def PikachuCry24 ; 33:5632
|
|
pikacry_def PikachuCry25 ; 34:573c
|
|
pikacry_def PikachuCry26 ; 33:725c
|
|
|
|
; bank 35
|
|
pikacry_def PikachuCry27 ; 35:4000
|
|
pikacry_def PikachuCry28 ; 35:4b5a
|
|
pikacry_def PikachuCry29 ; 35:5da4
|
|
pikacry_def PikachuCry30 ; 35:69ce
|
|
pikacry_def PikachuCry31 ; 35:6e80
|
|
|
|
; bank 36
|
|
pikacry_def PikachuCry32 ; 36:4000
|
|
pikacry_def PikachuCry33 ; 36:458a
|
|
pikacry_def PikachuCry34 ; 36:523c
|
|
|
|
; bank 37
|
|
pikacry_def PikachuCry35 ; 37:4000
|
|
pikacry_def PikachuCry36 ; 37:522a
|
|
|
|
; banks 36-38
|
|
pikacry_def PikachuCry37 ; 38:4000
|
|
pikacry_def PikachuCry38 ; 38:4dfa
|
|
pikacry_def PikachuCry39 ; 37:6e0c
|
|
pikacry_def PikachuCry40 ; 38:5a64
|
|
pikacry_def PikachuCry41 ; 36:6746
|
|
pikacry_def PikachuCry42 ; 38:6976
|