pokepinball/audio/engine_0f.asm
Xillicis fb7aa4b2e0
Update to rgbds v0.8.0 (#57)
* First test commit

* XIL: All changes for pokepinball to work with rgbds v0.8.0
2024-12-22 17:53:44 -06:00

2193 lines
31 KiB
NASM

Func_3c000: ; 0x3c000
push hl
push de
push bc
push af
call Func_3cb1b
ld hl, wChannel0
ld de, wdeb0 - wChannel0
.clearLoop
xor a
ld [hli], a
dec de
ld a, e
or d
jr nz, .clearLoop
ld hl, rNR50
xor a
ld [hli], a
ld [hli], a
ld a, $80
ld [hli], a
ld hl, rNR10
ld e, $4
.loop
xor a
ld [hli], a
ld [hli], a
ld a, $8
ld [hli], a
xor a
ld [hli], a
ld a, $80
ld [hli], a
dec e
jr nz, .loop
ld a, $8
ld [wde9a], a
ld a, $77
ld [wde98], a
call Func_3cb15
pop af
pop bc
pop de
pop hl
ret
Func_3c042: ; 0x3c042
ld a, [de]
inc de
and $7
ld [wdeae], a
ld c, a
ld b, $0
ld hl, ChannelPointers_BankF
add hl, bc
add hl, bc
ld c, [hl]
inc hl
ld b, [hl]
ld hl, $0002
add hl, bc
res 0, [hl]
push de
xor a
ld hl, $0000
add hl, bc
ld e, $32
.loop
ld [hli], a
dec e
jr nz, .loop
ld hl, $0017
add hl, bc
xor a
ld [hli], a
inc a
ld [hl], a
ld hl, $0028
add hl, bc
ld [hl], a
pop de
ld hl, $0005
add hl, bc
ld a, [de]
ld [hli], a
inc de
ld a, [de]
ld [hl], a
inc de
ld hl, $0000
add hl, bc
ld a, [wde9b]
ld [hli], a
ld a, [wde9c]
ld [hl], a
ret
Unused_3c08b: ; 3c08b
; ???
ld hl, $c405
ld a, $09
PlaySong_BankF: ; 0x3c090
push de
call Func_3c000
pop de
call Func_3cb1b
ld hl, wde9b
ld [hl], e
inc hl
ld [hl], d
ld hl, SongHeaderPointers_BankF
add hl, de
add hl, de
ld e, [hl]
inc hl
ld d, [hl]
ld a, [de]
rlca
rlca
and $3
inc a
.asm_3c0ac
push af
call Func_3c042
call Func_3cadf
pop af
dec a
jr nz, .asm_3c0ac
call Func_3cb15
ret
Unused_3c0bb: ; 3c0bb
; ???
ld bc, $cd55
ld [hl], c
ld d, h
PlaySoundEffect_BankF: ; 0x3c0c0
call Func_3cb1b
ld hl, wde9b
ld [hl], e
inc hl
ld [hl], d
ld hl, SoundEffects_BankF
add hl, de
add hl, de
ld e, [hl]
inc hl
ld d, [hl]
ld a, [de]
rlca
rlca
and $3
inc a
.asm_3c0d7
push af
call Func_3c042
ld hl, $0002
add hl, bc
set 3, [hl]
call Func_3cadf
pop af
dec a
jr nz, .asm_3c0d7
call Func_3cb15
ret
Unused_3c0ec: ; 0x3c0ec
; ???
db $C3, $57, $41, $CD
PlayCry_BankF: ; 0x3c0f0
; Plays a Pokemon cry.
; Input: e = mon id
call Func_3cb1b
ld a, e
and a
ret z
dec e
ld d, $0
ld hl, CryData_BankF
add hl, de
add hl, de
add hl, de
add hl, de
add hl, de
add hl, de
ld e, [hl]
inc hl
ld d, [hl] ; de = base cry id
inc hl
ld a, [hli]
ld [wdea8], a
ld a, [hli]
ld [wdea9], a ; dea8 = cry pitch
ld a, [hli]
ld [wdeaa], a
ld a, [hl]
ld [wdeab], a ; deaa = cry length
ld hl, wde9b
ld [hl], e
inc hl
ld [hl], d
ld hl, CryBasePointers_BankF
add hl, de
add hl, de
ld e, [hl]
inc hl
ld d, [hl]
ld a, [de]
rlca
rlca
and $3
inc a
.asm_3c12a
push af
call Func_3c042
ld hl, $0002
add hl, bc
set 5, [hl]
ld hl, $0003
add hl, bc
set 4, [hl]
ld hl, $0026
add hl, bc
ld a, [wdea8]
ld [hli], a
ld a, [wdea9]
ld [hl], a
ld a, [wde97]
and $3
cp $3
jr nc, .asm_3c15b
ld hl, $0017
add hl, bc
ld a, [wdeaa]
ld [hli], a
ld a, [wdeab]
ld [hl], a
.asm_3c15b
call Func_3cadf
pop af
dec a
jr nz, .asm_3c12a
ld a, [wdeac]
and a
jr nz, .asm_3c173
ld a, [wde98]
ld [wdeac], a
ld a, $77
ld [wde98], a
.asm_3c173
ld a, $1
ld [wdead], a
call Func_3cb15
ret
Unused_3c17c: ; 0x3c17c
; ???
db $CD, $2E, $45, $CA
Func_3c180: ; 0x3c180
ld a, [wdd00]
and a
ret z
xor a
ld [wde97], a
ld [wde99], a
ld bc, wChannel0
.asm_3c18f
ld hl, $0002
add hl, bc
bit 0, [hl]
jp z, .asm_3c22d
ld hl, $0014
add hl, bc
ld a, [hl]
cp $2
jr c, .asm_3c1a4
dec [hl]
jr .asm_3c1c1
.asm_3c1a4
ld hl, $001c
add hl, bc
ld a, [hl]
ld hl, $001b
add hl, bc
ld [hl], a
ld hl, $0025
add hl, bc
ld a, [hl]
ld hl, $0024
add hl, bc
ld [hl], a
ld hl, $0003
add hl, bc
res 1, [hl]
call Func_3c670
.asm_3c1c1
ld hl, $000d
add hl, bc
ld a, [hli]
ld [wde91], a
ld a, [hli]
ld [wde92], a
ld a, [hli]
ld [wde93], a
ld a, [hl]
ld [wde94], a
call Func_3c4f0
call Func_3c632
ld a, [wdead]
and a
jr z, .asm_3c20a
ld a, [wde97]
cp $4
jr nc, .asm_3c219
ld hl, wChannel4 + 2
bit 0, [hl]
jr nz, .asm_3c204
ld hl, wChannel5 + 2
bit 0, [hl]
jr nz, .asm_3c204
ld hl, wChannel6 + 2
bit 0, [hl]
jr nz, .asm_3c204
ld hl, wChannel7 + 2
bit 0, [hl]
jr z, .asm_3c20a
.asm_3c204
ld hl, $000b
add hl, bc
set 5, [hl]
.asm_3c20a
ld a, [wde97]
cp $4
jr nc, .asm_3c219
ld hl, $00ca
add hl, bc
bit 0, [hl]
jr nz, .asm_3c227
.asm_3c219
call Func_3c24d
ld hl, $0019
add hl, bc
ld a, [wde99]
or [hl]
ld [wde99], a
.asm_3c227
ld hl, $000b
add hl, bc
xor a
ld [hl], a
.asm_3c22d
ld hl, $0032
add hl, bc
ld c, l
ld b, h
ld a, [wde97]
inc a
ld [wde97], a
cp $8
jp nz, .asm_3c18f
call Func_3c40d
ld a, [wde98]
ldh [rNR50], a
ld a, [wde99]
ldh [rNR51], a
ret
Func_3c24d: ; 0x3c24d
ld hl, PointerTable_3c25e
ld a, [wde97]
and $7
add a
ld e, a
ld d, $0
add hl, de
ld a, [hli]
ld h, [hl]
ld l, a
jp hl
PointerTable_3c25e: ; 0x3c25e
dw Func_3c26e
dw Func_3c2e0
dw Func_3c349
dw Func_3c3cf
dw Func_3c26e
dw Func_3c2e0
dw Func_3c349
dw Func_3c3cf
Func_3c26e: ; 0x3c26e
ld hl, $000b
add hl, bc
bit 3, [hl]
jr z, .asm_3c27b
ld a, [wde9a]
ldh [rNR10], a
.asm_3c27b
bit 5, [hl]
jr nz, .asm_3c2ba
bit 4, [hl]
jr nz, .asm_3c2c6
bit 6, [hl]
jr nz, .asm_3c2b4
bit 1, [hl]
jr z, .asm_3c295
ld a, [wde93]
ldh [rNR13], a
ld a, [wde94]
ldh [rNR14], a
.asm_3c295
bit 2, [hl]
jr z, .asm_3c2a5
ld a, [wde92]
ldh [rNR12], a
ld a, [wde94]
or $80
ldh [rNR14], a
.asm_3c2a5
bit 0, [hl]
ret z
ld a, [wde91]
ld d, a
ldh a, [rNR11]
and $3f
or d
ldh [rNR11], a
ret
.asm_3c2b4
ld a, [wde93]
ldh [rNR13], a
ret
.asm_3c2ba
ld a, $8
ldh [rNR12], a
ld a, [wde94]
or $80
ldh [rNR14], a
ret
.asm_3c2c6
ld hl, wde91
ld a, $3f
or [hl]
ldh [rNR11], a
ld a, [wde92]
ldh [rNR12], a
ld a, [wde93]
ldh [rNR13], a
ld a, [wde94]
or $80
ldh [rNR14], a
ret
Func_3c2e0: ; 0x3c2e0
ld hl, $000b
add hl, bc
bit 5, [hl]
jr nz, .asm_3c323
bit 4, [hl]
jr nz, .asm_3c32f
bit 6, [hl]
jr nz, .asm_3c31d
bit 1, [hl]
jr z, .asm_3c2fe
ld a, [wde93]
ldh [rNR23], a
ld a, [wde94]
ldh [rNR24], a
.asm_3c2fe
bit 2, [hl]
jr z, .asm_3c30e
ld a, [wde92]
ldh [rNR22], a
ld a, [wde94]
or $80
ldh [rNR24], a
.asm_3c30e
bit 0, [hl]
ret z
ld a, [wde91]
ld d, a
ldh a, [rNR21]
and $3f
or d
ldh [rNR21], a
ret
.asm_3c31d
ld a, [wde93]
ldh [rNR23], a
ret
.asm_3c323
ld a, $8
ldh [rNR22], a
ld a, [wde94]
or $80
ldh [rNR24], a
ret
.asm_3c32f
ld hl, wde91
ld a, $3f
or [hl]
ldh [rNR21], a
ld a, [wde92]
ldh [rNR22], a
ld a, [wde93]
ldh [rNR23], a
ld a, [wde94]
or $80
ldh [rNR24], a
ret
Func_3c349: ; 0x3c349
ld hl, $000b
add hl, bc
bit 5, [hl]
jr nz, .asm_3c387
bit 4, [hl]
jr nz, .asm_3c38b
bit 6, [hl]
jr nz, .asm_3c381
bit 1, [hl]
jr z, .asm_3c367
ld a, [wde93]
ldh [rNR33], a
ld a, [wde94]
ldh [rNR34], a
.asm_3c367
bit 2, [hl]
ret z
xor a
ldh [rNR30], a
call LoadWavePattern_BankF
ld a, $80
ldh [rNR30], a
ld a, [wde93]
ldh [rNR33], a
ld a, [wde94]
or $80
ldh [rNR34], a
ret
.asm_3c381
ld a, [wde93]
ldh [rNR33], a
ret
.asm_3c387
xor a
ldh [rNR30], a
ret
.asm_3c38b
ld a, $3f
ldh [rNR31], a
xor a
ldh [rNR30], a
call LoadWavePattern_BankF
ld a, $80
ldh [rNR30], a
ld a, [wde93]
ldh [rNR33], a
ld a, [wde94]
or $80
ldh [rNR34], a
ret
LoadWavePattern_BankF: ; 0x3c3a6
push hl
ld a, [wde92]
and $f
ld l, a
ld h, $0
add hl, hl
add hl, hl
add hl, hl
add hl, hl
ld de, WavePatterns_BankF
add hl, de
ld de, rWave_0
push bc
ld b, $10
.loop
ld a, [hli]
ld [de], a
inc de
dec b
jr nz, .loop
pop bc
pop hl
ld a, [wde92]
and $f0
sla a
ldh [rNR32], a ; set volume of wave channel
ret
Func_3c3cf: ; 0x3c3cf
ld hl, $000b
add hl, bc
bit 5, [hl]
jr nz, .asm_3c3f1
bit 4, [hl]
jr nz, .asm_3c3fa
bit 1, [hl]
jr z, .asm_3c3e4
ld a, [wde93]
ldh [rNR43], a
.asm_3c3e4
bit 2, [hl]
ret z
ld a, [wde92]
ldh [rNR42], a
ld a, $80
ldh [rNR44], a
ret
.asm_3c3f1
ld a, $8
ldh [rNR42], a
ld a, $80
ldh [rNR44], a
ret
.asm_3c3fa
ld a, $3f
ldh [rNR41], a
ld a, [wde92]
ldh [rNR42], a
ld a, [wde93]
ldh [rNR43], a
ld a, $80
ldh [rNR44], a
ret
Func_3c40d: ; 0x3c40d
ld a, [wdea2]
and a
ret z
ld a, [wdea3]
and a
jr z, .asm_3c41d
dec a
ld [wdea3], a
ret
.asm_3c41d
ld a, [wdea2]
ld d, a
and $7f
ld [wdea3], a
ld a, [wde98]
and $7
bit 7, d
jr nz, .asm_3c448
and a
jr z, .asm_3c435
dec a
jr .asm_3c454
.asm_3c435
ld a, [wdea4]
ld e, a
ld a, [wdea5]
ld d, a
push bc
call PlaySong_BankF
pop bc
ld hl, wdea2
set 7, [hl]
ret
.asm_3c448
cp $7
jr nc, .asm_3c44f
inc a
jr .asm_3c454
.asm_3c44f
xor a
ld [wdea2], a
ret
.asm_3c454
ld d, a
swap a
or d
ld [wde98], a
ret
Func_3c45c: ; 0x3c45c
ld hl, $0003
add hl, bc
bit 1, [hl]
ret z
ld hl, $0014
add hl, bc
ld a, [hl]
ld hl, wde95
sub [hl]
jr nc, .asm_3c470
ld a, $1
.asm_3c470
ld [hl], a
ld hl, $000f
add hl, bc
ld e, [hl]
inc hl
ld d, [hl]
ld hl, $001f
add hl, bc
ld a, e
sub [hl]
ld e, a
ld a, d
sbc $0
ld d, a
ld hl, $0020
add hl, bc
sub [hl]
jr nc, .asm_3c4ab
ld hl, $0004
add hl, bc
set 1, [hl]
ld hl, $000f
add hl, bc
ld e, [hl]
inc hl
ld d, [hl]
ld hl, $001f
add hl, bc
ld a, [hl]
sub e
ld e, a
ld a, d
sbc $0
ld d, a
ld hl, $0020
add hl, bc
ld a, [hl]
sub d
ld d, a
jr .asm_3c4c9
.asm_3c4ab
ld hl, $0004
add hl, bc
res 1, [hl]
ld hl, $000f
add hl, bc
ld e, [hl]
inc hl
ld d, [hl]
ld hl, $001f
add hl, bc
ld a, e
sub [hl]
ld e, a
ld a, d
sbc $0
ld d, a
ld hl, $0020
add hl, bc
sub [hl]
ld d, a
.asm_3c4c9
push bc
ld hl, wde95
ld b, $0
.asm_3c4cf
inc b
ld a, e
sub [hl]
ld e, a
jr nc, .asm_3c4cf
ld a, d
and a
jr z, .asm_3c4dc
dec d
jr .asm_3c4cf
.asm_3c4dc
ld a, e
add [hl]
ld d, b
pop bc
ld hl, $0021
add hl, bc
ld [hl], d
ld hl, $0022
add hl, bc
ld [hl], a
ld hl, $0023
add hl, bc
xor a
ld [hl], a
; fall through
Func_3c4f0: ; 0x3c4f0
ld hl, $0003
add hl, bc
bit 2, [hl]
jr z, .asm_3c50b
ld hl, $001a
add hl, bc
ld a, [hl]
rlca
rlca
ld [hl], a
and $c0
ld [wde91], a
ld hl, $000b
add hl, bc
set 0, [hl]
.asm_3c50b
ld hl, $0003
add hl, bc
bit 4, [hl]
jr z, .asm_3c529
ld hl, $0026
add hl, bc
ld e, [hl]
inc hl
ld d, [hl]
ld hl, wde93
ld a, [hli]
ld h, [hl]
ld l, a
add hl, de
ld e, l
ld d, h
ld hl, wde93
ld [hl], e
inc hl
ld [hl], d
.asm_3c529
ld hl, $0003
add hl, bc
bit 1, [hl]
jp z, .asm_3c5c1
ld hl, $000f
add hl, bc
ld e, [hl]
inc hl
ld d, [hl]
ld hl, $0004
add hl, bc
bit 1, [hl]
jr z, .asm_3c574
ld hl, $0021
add hl, bc
ld l, [hl]
ld h, $0
add hl, de
ld d, h
ld e, l
ld hl, $0022
add hl, bc
ld a, [hl]
ld hl, $0023
add hl, bc
add [hl]
ld [hl], a
ld a, $0
adc e
ld e, a
ld a, $0
adc d
ld d, a
ld hl, $0020
add hl, bc
ld a, [hl]
cp d
jp c, .asm_3c5a1
jr nz, .asm_3c5b4
ld hl, $001f
add hl, bc
ld a, [hl]
cp e
jp c, .asm_3c5a1
jr .asm_3c5b4
.asm_3c574
ld a, e
ld hl, $0021
add hl, bc
ld e, [hl]
sub e
ld e, a
ld a, d
sbc $0
ld d, a
ld hl, $0022
add hl, bc
ld a, [hl]
add a
ld [hl], a
ld a, e
sbc $0
ld e, a
ld a, d
sbc $0
ld d, a
ld hl, $0020
add hl, bc
ld a, d
cp [hl]
jr c, .asm_3c5a1
jr nz, .asm_3c5b4
ld hl, $001f
add hl, bc
ld a, e
cp [hl]
jr nc, .asm_3c5b4
.asm_3c5a1
ld hl, $0003
add hl, bc
res 1, [hl]
ld hl, $0004
add hl, bc
res 1, [hl]
ld hl, $0020
add hl, bc
ld e, [hl]
inc hl
ld d, [hl]
.asm_3c5b4
ld hl, $000f
add hl, bc
ld [hl], e
inc hl
ld [hl], d
ld hl, $000b
add hl, bc
set 1, [hl]
.asm_3c5c1
ld hl, $0003
add hl, bc
bit 0, [hl]
jr z, .asm_3c61a
ld hl, $001b
add hl, bc
ld a, [hl]
and a
jr nz, .asm_3c5e3
ld hl, $001d
add hl, bc
ld a, [hl]
and a
jr z, .asm_3c61a
ld d, a
ld hl, $001e
add hl, bc
ld a, [hl]
and $f
jr z, .asm_3c5e6
.asm_3c5e3
dec [hl]
jr .asm_3c61a
.asm_3c5e6
ld a, [hl]
swap [hl]
or [hl]
ld [hl], a
ld a, [wde93]
ld e, a
ld hl, $0004
add hl, bc
bit 0, [hl]
jr z, .asm_3c605
res 0, [hl]
ld a, d
and $f
ld d, a
ld a, e
sub d
jr nc, .asm_3c611
ld a, $0
jr .asm_3c611
.asm_3c605
set 0, [hl]
ld a, d
and $f0
swap a
add e
jr nc, .asm_3c611
ld a, $ff
.asm_3c611
ld [wde93], a
ld hl, $000b
add hl, bc
set 6, [hl]
.asm_3c61a
ld hl, $0003
add hl, bc
bit 3, [hl]
ret z
ld hl, $0024
add hl, bc
ld a, [hl]
and a
jr z, .asm_3c62b
dec [hl]
ret
.asm_3c62b
ld hl, $000b
add hl, bc
set 5, [hl]
ret
Func_3c632: ; 0x3c632
ld hl, $0002
add hl, bc
bit 4, [hl]
ret z
ld a, [wde9f]
and a
jr z, .asm_3c644
dec a
ld [wde9f], a
ret
.asm_3c644
ld hl, wde9d
ld e, [hl]
inc hl
ld d, [hl]
ld a, [de]
inc de
cp $ff
ret z
and $f
inc a
ld [wde9f], a
ld a, [de]
inc de
ld [wde92], a
ld a, [de]
inc de
ld [wde93], a
xor a
ld [wde94], a
ld hl, wde9d
ld [hl], e
inc hl
ld [hl], d
ld hl, $000b
add hl, bc
set 4, [hl]
ret
Func_3c670: ; 0x3c670
call Func_3ca10
cp $ff
jr z, .asm_3c6c9
cp $d0
jr c, .asm_3c680
.asm_3c67b
call Func_3c786
jr Func_3c670
.asm_3c680
ld hl, $0002
add hl, bc
bit 3, [hl]
jp nz, Func_3c723
bit 5, [hl]
jp nz, Func_3c723
bit 4, [hl]
jp nz, Func_3c750
ld a, [wde96]
and $f
call Func_3ca5b
ld a, [wde96]
swap a
and $f
jr z, .asm_3c6c2
ld hl, $0011
add hl, bc
ld [hl], a
ld e, a
ld hl, $0012
add hl, bc
ld d, [hl]
call Func_3ca2b
ld hl, $000f
add hl, bc
ld [hl], e
inc hl
ld [hl], d
ld hl, $000b
add hl, bc
set 4, [hl]
jp Func_3c45c
.asm_3c6c2
ld hl, $000b
add hl, bc
set 5, [hl]
ret
.asm_3c6c9
ld hl, $0002
add hl, bc
bit 1, [hl]
jr nz, .asm_3c67b
ld a, [wde97]
cp $4
jr nc, .asm_3c6e0
ld hl, $00ca
add hl, bc
bit 0, [hl]
jr nz, .asm_3c6f6
.asm_3c6e0
ld hl, $0002
add hl, bc
bit 5, [hl]
call nz, Func_3c704
ld a, [wde97]
cp $4
jr nz, .asm_3c6f6
xor a
ldh [rNR10], a
ld [wde9a], a
.asm_3c6f6
ld hl, $0002
add hl, bc
res 0, [hl]
ld hl, $0000
add hl, bc
xor a
ld [hli], a
ld [hli], a
ret
Func_3c704: ; 0x3c704
ld a, [wde97]
cp $4
ret nz
xor a
ld hl, wChannel5 + $26
ld [hli], a
ld [hl], a
ld hl, wChannel7 + $26
ld [hli], a
ld [hl], a
ld a, [wdeac]
ld [wde98], a
xor a
ld [wdeac], a
ld [wdead], a
ret
Func_3c723: ; 0x3c723
ld hl, $000b
add hl, bc
set 4, [hl]
ld a, [wde96]
call Func_3ca5b
call Func_3ca10
ld hl, $000e
add hl, bc
ld [hl], a
call Func_3ca10
ld hl, $000f
add hl, bc
ld [hl], a
ld a, [wde97]
and $3
cp $3
ret z
call Func_3ca10
ld hl, $0010
add hl, bc
ld [hl], a
ret
Func_3c750: ; 0x3c750
ld a, [wde97]
cp $3
ret nz
ld a, [wde96]
and $f
call Func_3ca5b
ld a, [wdea1]
ld e, a
ld d, $0
ld hl, Drumkits_BankF
add hl, de
add hl, de
ld a, [hli]
ld h, [hl]
ld l, a
ld a, [wde96]
swap a
and $f
ret z
ld e, a
ld d, $0
add hl, de
add hl, de
ld a, [hli]
ld [wde9d], a
ld a, [hl]
ld [wde9e], a
xor a
ld [wde9f], a
ret
Func_3c786: ; 0x3c786
ld a, [wde96]
sub $d0
ld e, a
ld d, $0
ld hl, PointerTable_3c797
add hl, de
add hl, de
ld a, [hli]
ld h, [hl]
ld l, a
jp hl
PointerTable_3c797: ; 0x3c797
dw Func_3c9b6
dw Func_3c9b6
dw Func_3c9b6
dw Func_3c9b6
dw Func_3c9b6
dw Func_3c9b6
dw Func_3c9b6
dw Func_3c9b6
dw Func_3c973
dw Func_3c9c1
dw Func_3c9aa
dw Func_3c994
dw Func_3c9a1
dw Func_3c987
dw Func_3c939
dw Func_3c951
dw Func_3c8ff
dw Func_3c8c4
dw Func_3c8b5
dw Func_3c95f
dw Func_3c9ca
dw Func_3c9da
dw Func_3c926
dw Func_3c7f7
dw Func_3c7f7
dw Func_3c9e9
dw Func_3c7f7
dw Func_3c7f7
dw Func_3ca05
dw Func_3ca0b
dw Func_3c7f7
dw Func_3c7f7
dw Func_3c7f7
dw Func_3c7f7
dw Func_3c7f7
dw Func_3c7f7
dw Func_3c7f7
dw Func_3c7f7
dw Func_3c7f7
dw Func_3c7f7
dw Func_3c7f7
dw Func_3c7f7
dw Func_3c885
dw Func_3c88e
dw Func_3c833
dw Func_3c843
dw Func_3c80d
dw Func_3c7f8
Func_3c7f7: ; 0x3c7f7
ret
Func_3c7f8: ; 0x3c7f8
ld hl, $0002
add hl, bc
res 1, [hl]
ld hl, $0007
add hl, bc
ld e, [hl]
inc hl
ld d, [hl]
ld hl, $0005
add hl, bc
ld [hl], e
inc hl
ld [hl], d
ret
Func_3c80d: ; 0x3c80d
call Func_3ca10
ld e, a
call Func_3ca10
ld d, a
push de
ld hl, $0005
add hl, bc
ld e, [hl]
inc hl
ld d, [hl]
ld hl, $0007
add hl, bc
ld [hl], e
inc hl
ld [hl], d
pop de
ld hl, $0005
add hl, bc
ld [hl], e
inc hl
ld [hl], d
ld hl, $0002
add hl, bc
set 1, [hl]
ret
Func_3c833: ; 0x3c833
call Func_3ca10
ld e, a
call Func_3ca10
ld d, a
ld hl, $0005
add hl, bc
ld [hl], e
inc hl
ld [hl], d
ret
Func_3c843: ; 0x3c843
call Func_3ca10
ld hl, $0002
add hl, bc
bit 2, [hl]
jr nz, .asm_3c859
and a
jr z, .asm_3c862
dec a
set 2, [hl]
ld hl, $0016
add hl, bc
ld [hl], a
.asm_3c859
ld hl, $0016
add hl, bc
ld a, [hl]
and a
jr z, .asm_3c872
dec [hl]
.asm_3c862
call Func_3ca10
ld e, a
call Func_3ca10
ld d, a
ld hl, $0005
add hl, bc
ld [hl], e
inc hl
ld [hl], d
ret
.asm_3c872
ld hl, $0002
add hl, bc
res 2, [hl]
ld hl, $0005
add hl, bc
ld e, [hl]
inc hl
ld d, [hl]
inc de
inc de
ld [hl], d
dec hl
ld [hl], e
ret
Func_3c885: ; 0x3c885
call Func_3ca10
ld hl, $000c
add hl, bc
ld [hl], a
ret
Func_3c88e: ; 0x3c88e
call Func_3ca10
ld hl, $000c
add hl, bc
cp [hl]
jr z, .asm_3c8a5
ld hl, $0005
add hl, bc
ld e, [hl]
inc hl
ld d, [hl]
inc de
inc de
ld [hl], d
dec hl
ld [hl], e
ret
.asm_3c8a5
call Func_3ca10
ld e, a
call Func_3ca10
ld d, a
ld hl, $0005
add hl, bc
ld [hl], e
inc hl
ld [hl], d
ret
Func_3c8b5: ; 0x3c8b5
call Func_3ca10
ld hl, $0025
add hl, bc
ld [hl], a
ld hl, $0003
add hl, bc
set 3, [hl]
ret
Func_3c8c4: ; 0x3c8c4
ld hl, $0003
add hl, bc
set 0, [hl]
ld hl, $0004
add hl, bc
res 0, [hl]
call Func_3ca10
ld hl, $001c
add hl, bc
ld [hl], a
ld hl, $001b
add hl, bc
ld [hl], a
call Func_3ca10
ld hl, $001d
add hl, bc
ld d, a
and $f0
swap a
srl a
ld e, a
adc $0
swap a
or e
ld [hl], a
ld hl, $001e
add hl, bc
ld a, d
and $f
ld d, a
swap a
or d
ld [hl], a
ret
Func_3c8ff: ; 0x3c8ff
call Func_3ca10
ld [wde95], a
call Func_3ca10
ld d, a
and $f
ld e, a
ld a, d
swap a
and $f
ld d, a
call Func_3ca2b
ld hl, $001f
add hl, bc
ld [hl], e
ld hl, $0020
add hl, bc
ld [hl], d
ld hl, $0003
add hl, bc
set 1, [hl]
ret
Func_3c926: ; 0x3c926
ld hl, $0003
add hl, bc
set 4, [hl]
ld hl, $0027
add hl, bc
call Func_3ca10
ld [hld], a
call Func_3ca10
ld [hl], a
ret
Func_3c939: ; 0x3c939
ld hl, $0003
add hl, bc
set 2, [hl]
call Func_3ca10
rrca
rrca
ld hl, $001a
add hl, bc
ld [hl], a
and $c0
ld hl, $000d
add hl, bc
ld [hl], a
ret
Func_3c951: ; 0x3c951
ld hl, $0002
add hl, bc
bit 3, [hl]
jr z, .asm_3c95c
res 3, [hl]
ret
.asm_3c95c
set 3, [hl]
ret
Func_3c95f: ; 0x3c95f
ld hl, $0002
add hl, bc
bit 4, [hl]
jr z, .asm_3c96a
res 4, [hl]
ret
.asm_3c96a
set 4, [hl]
call Func_3ca10
ld [wdea1], a
ret
Func_3c973: ; 0x3c973
call Func_3ca10
ld hl, $0028
add hl, bc
ld [hl], a
ld a, [wde97]
and $3
cp $3
ret z
call Func_3c9a1
ret
Func_3c987: ; 0x3c987
call Func_3ca10
ld [wde9a], a
ld hl, $000b
add hl, bc
set 3, [hl]
ret
Func_3c994: ; 0x3c994
call Func_3ca10
rrca
rrca
and $c0
ld hl, $000d
add hl, bc
ld [hl], a
ret
Func_3c9a1: ; 0x3c9a1
call Func_3ca10
ld hl, $000e
add hl, bc
ld [hl], a
ret
Func_3c9aa: ; 0x3c9aa
call Func_3ca10
ld d, a
call Func_3ca10
ld e, a
call Func_3ca95
ret
Func_3c9b6: ; 0x3c9b6
ld hl, $0012
add hl, bc
ld a, [wde96]
and $7
ld [hl], a
ret
Func_3c9c1: ; 0x3c9c1
call Func_3ca10
ld hl, $0013
add hl, bc
ld [hl], a
ret
Func_3c9ca: ; 0x3c9ca
ld a, [wde97]
call Func_3caf4
call Func_3ca10
ld hl, $0019
add hl, bc
and [hl]
ld [hl], a
ret
Func_3c9da: ; 0x3c9da
call Func_3ca10
ld a, [wdea2]
and a
ret nz
ld a, [wde96]
ld [wde98], a
ret
Func_3c9e9: ; 0x3c9e9
call Func_3ca10
; cast to s16
ld e, a
cp $80
jr nc, .asm_3c9f5
ld d, $0
jr .asm_3c9f7
.asm_3c9f5
ld d, $ff
.asm_3c9f7
ld hl, $0017
add hl, bc
ld a, [hli]
ld h, [hl]
ld l, a
add hl, de
ld e, l
ld d, h
call Func_3ca95
ret
Func_3ca05: ; 0x3ca05
ld a, $1
ld [wdead], a
ret
Func_3ca0b: ; 0x3ca0b
xor a
ld [wdead], a
ret
Func_3ca10: ; 0x3ca10
push hl
push de
ld hl, $0005
add hl, bc
ld e, [hl]
inc hl
ld d, [hl]
ld a, [de]
ld [wde96], a
inc de
ld hl, $0005
add hl, bc
ld [hl], e
inc hl
ld [hl], d
pop de
pop hl
ld a, [wde96]
ret
Func_3ca2b: ; 0x3ca2b
ld hl, $0013
add hl, bc
ld a, [hl]
swap a
and $f
add d
push af
ld hl, $0013
add hl, bc
ld a, [hl]
and $f
ld l, a
ld d, $0
ld h, d
add hl, de
add hl, hl
ld de, Data_3cb20
add hl, de
ld e, [hl]
inc hl
ld d, [hl]
pop af
.asm_3ca4b
cp $7
jr nc, .asm_3ca56
sra d
rr e
inc a
jr .asm_3ca4b
.asm_3ca56
ld a, d
and $7
ld d, a
ret
Func_3ca5b: ; 0x3ca5b
inc a
ld e, a
ld d, $0
ld hl, $0028
add hl, bc
ld a, [hl]
ld l, $0
call Func_3ca86
ld a, l
ld hl, $0017
add hl, bc
ld e, [hl]
inc hl
ld d, [hl]
ld hl, $0015
add hl, bc
ld l, [hl]
call Func_3ca86
ld e, l
ld d, h
ld hl, $0015
add hl, bc
ld [hl], e
ld hl, $0014
add hl, bc
ld [hl], d
ret
Func_3ca86: ; 0x3ca86
ld h, $0
.asm_3ca88
srl a
jr nc, .asm_3ca8d
add hl, de
.asm_3ca8d
sla e
rl d
and a
jr nz, .asm_3ca88
ret
Func_3ca95: ; 0x3ca95
push bc
ld a, [wde97]
cp $4
jr nc, .asm_3cab7
ld bc, wChannel0
call Func_3cad1
ld bc, wChannel1
call Func_3cad1
ld bc, wChannel2
call Func_3cad1
ld bc, wChannel3
call Func_3cad1
jr .asm_3cacf
.asm_3cab7
ld bc, wChannel4
call Func_3cad1
ld bc, wChannel5
call Func_3cad1
ld bc, wChannel6
call Func_3cad1
ld bc, wChannel7
call Func_3cad1
.asm_3cacf
pop bc
ret
Func_3cad1: ; 0x3cad1
ld hl, $0017
add hl, bc
ld [hl], e
inc hl
ld [hl], d
xor a
ld hl, $0015
add hl, bc
ld [hl], a
ret
Func_3cadf: ; 0x3cadf
call Func_3cb06
ld a, [wdeae]
jr .asm_3caea
ld a, [wde97]
.asm_3caea
call Func_3caf4
ld hl, $0002
add hl, bc
set 0, [hl]
ret
Func_3caf4: ; 0x3caf4
push de
and $3
ld e, a
ld d, $0
ld hl, Data_3cc8e
add hl, de
ld a, [hl]
ld hl, $0019
add hl, bc
ld [hl], a
pop de
ret
Func_3cb06: ; 0x3cb06
ld a, [wdeae]
and $3
cp $0
ret nz
xor a
ldh [rNR10], a
ld [wde9a], a
ret
Func_3cb15: ; 0x3cb15
ld a, $1
ld [wdd00], a
ret
Func_3cb1b: ; 0x3cb1b
xor a
ld [wdd00], a
ret
Data_3cb20:
dw $0000
dw $f82c
dw $f89d
dw $f907
dw $f96b
dw $f9ca
dw $fa23
dw $fa77
dw $fac7
dw $fb12
dw $fb58
dw $fb9b
dw $fbda
dw $fc16
dw $fc4e
dw $fc83
dw $fcb5
dw $fce5
dw $fd11
dw $fd3b
dw $fd63
dw $fd89
dw $fdac
dw $fdcd
dw $fded
WavePatterns_BankF:
INCLUDE "audio/wave_samples.asm"
INCLUDE "audio/drumkits_0f.asm"
Data_3cc8e: ; 0x3cc8e
db $11, $22, $44, $88
ChannelPointers_BankF: ; 0x3cc92
dw wChannel0
dw wChannel1
dw wChannel2
dw wChannel3
dw wChannel4
dw wChannel5
dw wChannel6
dw wChannel7
SongHeaderPointers_BankF: ; 0x3cca2
dw Music_Nothing0F
dw Music_RedField
dw Music_CatchEmRed
dw Music_HurryUpRed
dw Music_Pokedex
dw Music_GastlyInTheGraveyard
dw Music_HaunterInTheGraveyard
dw Music_GengarInTheGraveyard
INCLUDE "audio/music/nothing0f.asm"
INCLUDE "audio/music/redfield.asm"
INCLUDE "audio/music/catchemred.asm"
INCLUDE "audio/music/pokedex.asm"
INCLUDE "audio/music/hurryupred.asm"
INCLUDE "audio/music/gastlyinthegraveyard.asm"
INCLUDE "audio/music/haunterinthegraveyard.asm"
INCLUDE "audio/music/gengarinthegraveyard.asm"
SoundEffects_BankF: ; 0x3e3ce
dw Sfx_SoundEffect0_BankF
dw Sfx_SoundEffect1_BankF
dw Sfx_SoundEffect2_BankF
dw Sfx_SoundEffect3_BankF
dw Sfx_SoundEffect4_BankF
dw Sfx_SoundEffect5_BankF
dw Sfx_SoundEffect6_BankF
dw Sfx_SoundEffect7_BankF
dw Sfx_SoundEffect8_BankF
dw Sfx_SoundEffect9_BankF
dw Sfx_SoundEffect10_BankF
dw Sfx_SoundEffect11_BankF
dw Sfx_SoundEffect12_BankF
dw Sfx_SoundEffect13_BankF
dw Sfx_SoundEffect14_BankF
dw Sfx_SoundEffect15_BankF
dw Sfx_SoundEffect16_BankF
dw Sfx_SoundEffect17_BankF
dw Sfx_SoundEffect18_BankF
dw Sfx_SoundEffect19_BankF
dw Sfx_SoundEffect20_BankF
dw Sfx_SoundEffect21_BankF
dw Sfx_SoundEffect22_BankF
dw Sfx_SoundEffect23_BankF
dw Sfx_SoundEffect24_BankF
dw Sfx_SoundEffect25_BankF
dw Sfx_SoundEffect26_BankF
dw Sfx_SoundEffect27_BankF
dw Sfx_SoundEffect28_BankF
dw Sfx_SoundEffect29_BankF
dw Sfx_SoundEffect30_BankF
dw Sfx_SoundEffect31_BankF
dw Sfx_SoundEffect32_BankF
dw Sfx_SoundEffect33_BankF
dw Sfx_SoundEffect34_BankF
dw Sfx_SoundEffect35_BankF
dw Sfx_SoundEffect36_BankF
dw Sfx_SoundEffect37_BankF
dw Sfx_SoundEffect38_BankF
dw Sfx_SoundEffect39_BankF
dw Sfx_SoundEffect40_BankF
dw Sfx_SoundEffect41_BankF
dw Sfx_SoundEffect42_BankF
dw Sfx_SoundEffect43_BankF
dw Sfx_SoundEffect44_BankF
dw Sfx_SoundEffect45_BankF
dw Sfx_SoundEffect46_BankF
dw Sfx_SoundEffect47_BankF
dw Sfx_SoundEffect48_BankF
dw Sfx_SoundEffect49_BankF
dw Sfx_SoundEffect50_BankF
dw Sfx_SoundEffect51_BankF
dw Sfx_SoundEffect52_BankF
dw Sfx_SoundEffect53_BankF
dw Sfx_SoundEffect54_BankF
dw Sfx_SoundEffect55_BankF
dw Sfx_SoundEffect56_BankF
dw Sfx_SoundEffect57_BankF
dw Sfx_SoundEffect58_BankF
dw Sfx_SoundEffect59_BankF
dw Sfx_SoundEffect60_BankF
dw Sfx_SoundEffect61_BankF
dw Sfx_SoundEffect62_BankF
dw Sfx_SoundEffect63_BankF
dw Sfx_SoundEffect64_BankF
dw Sfx_SoundEffect65_BankF
dw Sfx_SoundEffect66_BankF
dw Sfx_SoundEffect67_BankF
dw Sfx_SoundEffect68_BankF
dw Sfx_SoundEffect69_BankF
dw Sfx_SoundEffect70_BankF
dw Sfx_SoundEffect71_BankF
dw Sfx_SoundEffect72_BankF
dw Sfx_SoundEffect73_BankF
dw Sfx_SoundEffect74_BankF
dw Sfx_SoundEffect75_BankF
dw Sfx_SoundEffect76_BankF
dw Sfx_SoundEffect77_BankF
INCLUDE "audio/sfx_0f.asm"
CryBasePointers_BankF: ; 0x3ef63
dw Cry_00_BankF
dw Cry_01_BankF
dw Cry_02_BankF
dw Cry_03_BankF
dw Cry_04_BankF
dw Cry_05_BankF
dw Cry_06_BankF
dw Cry_07_BankF
dw Cry_08_BankF
dw Cry_09_BankF
dw Cry_0A_BankF
dw Cry_0B_BankF
dw Cry_0C_BankF
dw Cry_0D_BankF
dw Cry_0E_BankF
dw Cry_0F_BankF
dw Cry_10_BankF
dw Cry_11_BankF
dw Cry_12_BankF
dw Cry_13_BankF
dw Cry_14_BankF
dw Cry_15_BankF
dw Cry_16_BankF
dw Cry_17_BankF
dw Cry_18_BankF
dw Cry_19_BankF
dw Cry_1A_BankF
dw Cry_1B_BankF
dw Cry_1C_BankF
dw Cry_1D_BankF
dw Cry_1E_BankF
dw Cry_1F_BankF
dw Cry_20_BankF
dw Cry_21_BankF
dw Cry_22_BankF
dw Cry_23_BankF
dw Cry_24_BankF
dw Cry_25_BankF
CryData_BankF: ; 0x3efaf
; Each entry is in the following format:
; [base cry id], [pitch], [length
dw $000F, $0080, $0081 ; BULBASAUR
dw $000F, $0020, $0100 ; IVYSAUR
dw $000F, $0000, $0140 ; VENUSAUR
dw $0004, $0060, $00C0 ; CHARMANDER
dw $0004, $0020, $00C0 ; CHARMELEON
dw $0004, $0000, $0100 ; CHARIZARD
dw $001D, $0060, $00C0 ; SQUIRTLE
dw $001D, $0020, $00C0 ; WARTORTLE
dw $0013, $0000, $0100 ; BLASTOISE
dw $0016, $0080, $00A0 ; CATERPIE
dw $001C, $00CC, $0081 ; METAPOD
dw $0016, $0077, $00C0 ; BUTTERFREE
dw $0015, $00EE, $0081 ; WEEDLE
dw $0013, $00FF, $0081 ; KAKUNA
dw $0013, $0060, $0100 ; BEEDRILL
dw $000E, $00DF, $0084 ; PIDGEY
dw $0014, $0028, $0140 ; PIDGEOTTO
dw $0014, $0011, $017F ; PIDGEOT
dw $0022, $0000, $0100 ; RATTATA
dw $0022, $0020, $017F ; RATICATE
dw $0010, $0000, $0100 ; SPEAROW
dw $0018, $0040, $0120 ; FEAROW
dw $0017, $0012, $00C0 ; EKANS
dw $0017, $00E0, $0090 ; ARBOK
dw $000F, $00EE, $0081 ; PIKACHU
dw $0009, $00EE, $0088 ; RAICHU
dw $0000, $0020, $00C0 ; SANDSHREW
dw $0000, $00FF, $017F ; SANDSLASH
dw $0001, $0000, $0100 ; NIDORAN_F
dw $0001, $002C, $0160 ; NIDORINA
dw $000A, $0000, $0100 ; NIDOQUEEN
dw $0000, $0000, $0100 ; NIDORAN_M
dw $0000, $002C, $0140 ; NIDORINO
dw $0009, $0000, $0100 ; NIDOKING
dw $0019, $00CC, $0081 ; CLEFAIRY
dw $0019, $00AA, $00A0 ; CLEFABLE
dw $0024, $004F, $0090 ; VULPIX
dw $0024, $0088, $00E0 ; NINETALES
dw $000E, $00FF, $00B5 ; JIGGLYPUFF
dw $000E, $0068, $00E0 ; WIGGLYTUFF
dw $001D, $00E0, $0100 ; ZUBAT
dw $001D, $00FA, $0100 ; GOLBAT
dw $0008, $00DD, $0081 ; ODDISH
dw $0008, $00AA, $00C0 ; GLOOM
dw $0023, $0022, $017F ; VILEPLUME
dw $001E, $0020, $0160 ; PARAS
dw $001E, $0042, $017F ; PARASECT
dw $001A, $0044, $00C0 ; VENONAT
dw $001A, $0029, $0100 ; VENOMOTH
dw $000B, $00AA, $0081 ; DIGLETT
dw $000B, $002A, $0090 ; DUGTRIO
dw $0019, $0077, $0090 ; MEOWTH
dw $0019, $0099, $017F ; PERSIAN
dw $0021, $0020, $00E0 ; PSYDUCK
dw $0021, $00FF, $00C0 ; GOLDUCK
dw $000A, $00DD, $00E0 ; MANKEY
dw $000A, $00AF, $00C0 ; PRIMEAPE
dw $001F, $0020, $00C0 ; GROWLITHE
dw $0015, $0000, $0100 ; ARCANINE
dw $000E, $00FF, $017F ; POLIWAG
dw $000E, $0077, $00E0 ; POLIWHIRL
dw $000E, $0000, $017F ; POLIWRATH
dw $001C, $00C0, $0081 ; ABRA
dw $001C, $00A8, $0140 ; KADABRA
dw $001C, $0098, $017F ; ALAKAZAM
dw $001F, $00EE, $0081 ; MACHOP
dw $001F, $0048, $00E0 ; MACHOKE
dw $001F, $0008, $0140 ; MACHAMP
dw $0021, $0055, $0081 ; BELLSPROUT
dw $0025, $0044, $00A0 ; WEEPINBELL
dw $0025, $0066, $014C ; VICTREEBEL
dw $001A, $0000, $0100 ; TENTACOOL
dw $001A, $00EE, $017F ; TENTACRUEL
dw $0024, $00F0, $0090 ; GEODUDE
dw $0024, $0000, $0100 ; GRAVELER
dw $0012, $00E0, $00C0 ; GOLEM
dw $0025, $0000, $0100 ; PONYTA
dw $0025, $0020, $0140 ; RAPIDASH
dw $0002, $0000, $0100 ; SLOWPOKE
dw $001F, $0000, $0100 ; SLOWBRO
dw $001C, $0080, $00E0 ; MAGNEMITE
dw $001C, $0020, $0140 ; MAGNETON
dw $0010, $00DD, $0081 ; FARFETCH_D
dw $000B, $00BB, $0081 ; DODUO
dw $000B, $0099, $00A0 ; DODRIO
dw $000C, $0088, $0140 ; SEEL
dw $000C, $0023, $017F ; DEWGONG
dw $0005, $0000, $0100 ; GRIMER
dw $0007, $00EF, $017F ; MUK
dw $0018, $0000, $0100 ; SHELLDER
dw $0018, $006F, $0160 ; CLOYSTER
dw $001C, $0000, $0100 ; GASTLY
dw $001C, $0030, $00C0 ; HAUNTER
dw $0007, $0000, $017F ; GENGAR
dw $0017, $00FF, $0140 ; ONIX
dw $000D, $0088, $00A0 ; DROWZEE
dw $000D, $00EE, $00C0 ; HYPNO
dw $0020, $0020, $0160 ; KRABBY
dw $0020, $00EE, $0160 ; KINGLER
dw $0006, $00ED, $0100 ; VOLTORB
dw $0006, $00A8, $0110 ; ELECTRODE
dw $000B, $0000, $0100 ; EXEGGCUTE
dw $000D, $0000, $0100 ; EXEGGUTOR
dw $0019, $0000, $0100 ; CUBONE
dw $0008, $004F, $00E0 ; MAROWAK
dw $0012, $0080, $0140 ; HITMONLEE
dw $000C, $00EE, $0140 ; HITMONCHAN
dw $000C, $0000, $0100 ; LICKITUNG
dw $0012, $00E6, $015D ; KOFFING
dw $0012, $00FF, $017F ; WEEZING
dw $0004, $0000, $0100 ; RHYHORN
dw $0011, $0000, $0100 ; RHYDON
dw $0014, $000A, $0140 ; CHANSEY
dw $0012, $0000, $0100 ; TANGELA
dw $0003, $0000, $0100 ; KANGASKHAN
dw $0019, $0099, $0090 ; HORSEA
dw $0019, $003C, $0081 ; SEADRA
dw $0016, $0080, $00C0 ; GOLDEEN
dw $0016, $0010, $017F ; SEAKING
dw $001E, $0002, $00A0 ; STARYU
dw $001E, $0000, $0100 ; STARMIE
dw $0020, $0008, $00C0 ; MR_MIME
dw $0016, $0000, $0100 ; SCYTHER
dw $000D, $00FF, $017F ; JYNX
dw $0006, $008F, $017F ; ELECTABUZZ
dw $0004, $00FF, $00B0 ; MAGMAR
dw $0014, $0000, $0100 ; PINSIR
dw $001D, $0011, $00C0 ; TAUROS
dw $0017, $0080, $0080 ; MAGIKARP
dw $0017, $0000, $0100 ; GYARADOS
dw $001B, $0000, $0100 ; LAPRAS
dw $000E, $00FF, $017F ; DITTO
dw $001A, $0088, $00E0 ; EEVEE
dw $001A, $00AA, $017F ; VAPOREON
dw $001A, $003D, $0100 ; JOLTEON
dw $001A, $0010, $00A0 ; FLAREON
dw $0025, $00AA, $017F ; PORYGON
dw $001F, $00F0, $0081 ; OMANYTE
dw $001F, $00FF, $00C0 ; OMASTAR
dw $0016, $00BB, $00C0 ; KABUTO
dw $0018, $00EE, $0081 ; KABUTOPS
dw $0023, $0020, $0170 ; AERODACTYL
dw $0005, $0055, $0081 ; SNORLAX
dw $0009, $0080, $00C0 ; ARTICUNO
dw $0018, $00FF, $0100 ; ZAPDOS
dw $0009, $00F8, $00C0 ; MOLTRES
dw $000F, $0060, $00C0 ; DRATINI
dw $000F, $0040, $0100 ; DRAGONAIR
dw $000F, $003C, $0140 ; DRAGONITE
dw $001E, $0099, $017F ; MEWTWO
dw $001E, $00EE, $017F ; MEW
INCLUDE "audio/cries_0f.asm"