summaryrefslogtreecommitdiff
path: root/main.asm
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2016-12-06 21:56:48 -0500
committerPikalaxALT <pikalaxalt@gmail.com>2016-12-06 21:56:48 -0500
commit09db40d83edac1f125fdb54669be1707ae3a07f6 (patch)
tree551e949d11ec472c0b1d74ef283c45c60033ac6b /main.asm
parente935cd885be225472e077466508f815e7c203296 (diff)
Split out audio engine copies
Diffstat (limited to 'main.asm')
-rwxr-xr-xmain.asm2701
1 files changed, 14 insertions, 2687 deletions
diff --git a/main.asm b/main.asm
index dbdbf19..f8c948b 100755
--- a/main.asm
+++ b/main.asm
@@ -48668,7 +48668,7 @@ Func_3174c: ; 0x3174c
callba Func_30253
ld de, $2525
call PlaySoundEffect
- ld bc, $2cbf
+ ld bc, Data_2cbf
ld [$ff8a], a
callba Func_3118f
.asm_3177a
@@ -48690,7 +48690,7 @@ SlotOnPic: ; 0x34000
SlotOffPic: ; 0x34180
INCBIN "gfx/billboard/slot/slot_off.2bpp"
- dr $34300, $37f00
+SECTION "bankd.2", ROMX [$7f00], BANK[$d]
StageSeelBonusCollisionMasks: ; 0x37f00
INCBIN "data/collision/masks/seel_bonus.masks"
@@ -48707,7 +48707,8 @@ Data_38020:
Data_38030:
db $a9, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00
- dr $38040, $3809a ; 0x38000
+
+ dr $38040, $3809a ; 38040
Data_3809a:
db $00, $00, $00
@@ -48717,7 +48718,7 @@ Data_3809a:
Data_380a6:
db $59, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00
- dr $380b6, $38156 ; 0x38000
+ dr $380b6, $38156 ; 380b6
Data_38156:
db $99, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00
@@ -48725,11 +48726,11 @@ Data_38156:
Data_39166:
db $99, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00
- dr $39176, $3a176 ; 0x38000
+ dr $39176, $3a176 ; 39176
Data_3a176:
db $a1, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00
- dr $3a186, $3a9e6 ; 0x38000
+ dr $3a186, $3a9e6 ; 3a186
Data_3a9e6:
db $79, $5d, $08, $00, $0b, $8c, $d0, $f4, $60, $00, $00, $00, $00, $00, $00, $00
@@ -48752,2705 +48753,31 @@ Data_3aa66:
Data_3aa76:
db $b9, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00
- dr $3aa86, $3c000 ; 0x38000
-
SECTION "bankf", ROMX, BANK[$f]
-Func_3c000: ; 0x3c000
- push hl
- push de
- push bc
- push af
- call Func_3cb1b
- ld hl, wdd01
- ld de, $01af
-.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
-.asm_3c022
- 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, .asm_3c022
- 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, WRAMPointerTable_3cc92
- 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
-
- dr $3c08b, $3c090
-
-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, SongHeaderPointers0F
- 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
-
- dr $3c0bb, $3c0c0
-
-PlaySoundEffect_BankF: ; 0x3c0c0
- call Func_3cb1b
- ld hl, wde9b
- ld [hl], e
- inc hl
- ld [hl], d
- ld hl, PointerTable_3e3ce
- 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
-
- dr $3c0ec, $3c0f0
-
-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
- 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
- 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
-
- dr $3c17c, $3c180
-
-Func_3c180: ; 0x3c180
- ld a, [wdd00]
- and a
- ret z
- xor a
- ld [wde97], a
- ld [wde99], a
- ld bc, wdd01
-.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, wddcb
- bit 0, [hl]
- jr nz, .asm_3c204
- ld hl, wddfd
- bit 0, [hl]
- jr nz, .asm_3c204
- ld hl, wde2f
- bit 0, [hl]
- jr nz, .asm_3c204
- ld hl, wde61
- 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]
- ld [rNR50], a
- ld a, [wde99]
- ld [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]
- ld [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]
- ld [rNR13], a
- ld a, [wde94]
- ld [rNR14], a
-.asm_3c295
- bit 2, [hl]
- jr z, .asm_3c2a5
- ld a, [wde92]
- ld [rNR12], a
- ld a, [wde94]
- or $80
- ld [rNR14], a
-.asm_3c2a5
- bit 0, [hl]
- ret z
- ld a, [wde91]
- ld d, a
- ld a, [rNR11]
- and $3f
- or d
- ld [rNR11], a
- ret
-
-.asm_3c2b4
- ld a, [wde93]
- ld [rNR13], a
- ret
-
-.asm_3c2ba
- ld a, $8
- ld [rNR12], a
- ld a, [wde94]
- or $80
- ld [rNR14], a
- ret
-
-.asm_3c2c6
- ld hl, wde91
- ld a, $3f
- or [hl]
- ld [rNR11], a
- ld a, [wde92]
- ld [rNR12], a
- ld a, [wde93]
- ld [rNR13], a
- ld a, [wde94]
- or $80
- ld [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]
- ld [rNR23], a
- ld a, [wde94]
- ld [rNR24], a
-.asm_3c2fe
- bit 2, [hl]
- jr z, .asm_3c30e
- ld a, [wde92]
- ld [rNR22], a
- ld a, [wde94]
- or $80
- ld [rNR24], a
-.asm_3c30e
- bit 0, [hl]
- ret z
- ld a, [wde91]
- ld d, a
- ld a, [rNR21]
- and $3f
- or d
- ld [rNR21], a
- ret
-
-.asm_3c31d
- ld a, [wde93]
- ld [rNR23], a
- ret
-
-.asm_3c323
- ld a, $8
- ld [rNR22], a
- ld a, [wde94]
- or $80
- ld [rNR24], a
- ret
-
-.asm_3c32f
- ld hl, wde91
- ld a, $3f
- or [hl]
- ld [rNR21], a
- ld a, [wde92]
- ld [rNR22], a
- ld a, [wde93]
- ld [rNR23], a
- ld a, [wde94]
- or $80
- ld [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]
- ld [rNR33], a
- ld a, [wde94]
- ld [rNR34], a
-.asm_3c367
- bit 2, [hl]
- ret z
- xor a
- ld [rNR30], a
- call LoadWavePattern
- ld a, $80
- ld [rNR30], a
- ld a, [wde93]
- ld [rNR33], a
- ld a, [wde94]
- or $80
- ld [rNR34], a
- ret
-
-.asm_3c381
- ld a, [wde93]
- ld [rNR33], a
- ret
-
-.asm_3c387
- xor a
- ld [rNR30], a
- ret
-
-.asm_3c38b
- ld a, $3f
- ld [rNR31], a
- xor a
- ld [rNR30], a
- call LoadWavePattern
- ld a, $80
- ld [rNR30], a
- ld a, [wde93]
- ld [rNR33], a
- ld a, [wde94]
- or $80
- ld [rNR34], a
- ret
-
-LoadWavePattern: ; 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
- ld [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]
- ld [rNR43], a
-.asm_3c3e4
- bit 2, [hl]
- ret z
- ld a, [wde92]
- ld [rNR42], a
- ld a, $80
- ld [rNR44], a
- ret
-
-.asm_3c3f1
- ld a, $8
- ld [rNR42], a
- ld a, $80
- ld [rNR44], a
- ret
-
-.asm_3c3fa
- ld a, $3f
- ld [rNR41], a
- ld a, [wde92]
- ld [rNR42], a
- ld a, [wde93]
- ld [rNR43], a
- ld a, $80
- ld [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
- ld [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, wde21
- ld [hli], a
- ld [hl], a
- ld hl, wde85
- 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, $4ba2
- 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
- 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, $4b20 ; todo
- 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, wdd01
- call Func_3cad1
- ld bc, wdd33
- call Func_3cad1
- ld bc, wdd65
- call Func_3cad1
- ld bc, wdd97
- call Func_3cad1
- jr .asm_3cacf
-
-.asm_3cab7
- ld bc, wddc9
- call Func_3cad1
- ld bc, wddfb
- call Func_3cad1
- ld bc, wde2d
- call Func_3cad1
- ld bc, wde5f
- 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
- ld [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
-
- dr $3cb20, $3cb52
-
-WavePatterns_BankF:
-WavePattern0_BankF: ; 0x3cb52
- db $02, $46, $8A, $CE, $FF, $FE, $ED, $DC, $CB, $A9, $87, $65, $44, $33, $22, $11
-WavePattern1_BankF: ; 0x3cb62
- db $02, $46, $8A, $CE, $EF, $FF, $FE, $EE, $DD, $CB, $A9, $87, $65, $43, $22, $11
-WavePattern2_BankF: ; 0x3cb72
- db $01, $23, $43, $21, $FE, $CA, $8A, $CE, $01, $23, $43, $21, $FE, $CA, $8A, $CE
-WavePattern3_BankF: ; 0x3cb82
- db $00, $11, $22, $33, $44, $33, $22, $11, $FF, $EE, $CC, $AA, $88, $AA, $CC, $EE
-WavePattern4_BankF: ; 0x3cb92
- db $00, $11, $22, $33, $44, $33, $22, $11, $FF, $EE, $CC, $AA, $88, $AA, $CC, $EE
-
- dr $3cba2, $3cc8e
-
-Data_3cc8e: ; 0x3cc8e
- db $11, $22, $44, $88
-
-WRAMPointerTable_3cc92: ; 0x3cc92
- dw $DD01
- dw $DD33
- dw $DD65
- dw $DD97
-
- dr $3cc9a, $3cca2
-
-SongHeaderPointers0F: ; 0x3cca2
- dw Music_Nothing0F
- dw Music_BlueField
- dw Music_CatchEmRed
- dw Music_HurryUpRed
- dw Music_Pokedex
- dw Music_GastlyInTheGraveyard
- dw Music_HaunterInTheGraveyard
- dw Music_GengarInTheGraveyard
-; 0x3ccb2
-
-INCLUDE "audio/music/nothing0f.asm"
-INCLUDE "audio/music/bluefield.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"
-
-PointerTable_3e3ce: ; 0x3e3ce
- dw $646A
- dw $6480
- dw $649A
- dw $64BA
- dw $64D0
- dw $64E0
- dw $64F0
- dw $6500
- dw $651A
- dw $652E
- dw $6544
- dw $6554
- dw $657C
- dw $6589
- dw $659F
- dw $65B5
- dw $65C5
- dw $65E2
- dw $65F4
- dw $6606
- dw $6618
- dw $662A
- dw $663C
- dw $664E
- dw $6660
- dw $6672
- dw $6684
- dw $6696
- dw $66A8
- dw $66BA
- dw $66CC
- dw $66DE
- dw $66F0
- dw $6702
- dw $671A
- dw $675D
- dw $6810
- dw $68AE
- dw $696D
- dw $6A25
- dw $6A68
- dw $6A82
- dw $6B17
- dw $6BF9
- dw $6C17
- dw $6C31
- dw $6C4B
- dw $6C7D
- dw $6C8F
- dw $6CA7
- dw $6CB7
- dw $6CD1
- dw $6CE9
- dw $6CFF
- dw $6D15
- dw $6D31
- dw $6D4D
- dw $6D65
- dw $6D78
- dw $6D98
- dw $6DB0
- dw $6DC0
- dw $6DD0
- dw $6DE3
- dw $6DF3
- dw $6E1C
- dw $6E32
- dw $6E48
- dw $6E5E
- dw $6E78
- dw $6E92
- dw $6EAA
- dw $6EC4
- dw $6ED4
- dw $6EEA
- dw $6F00
- dw $6F16
- dw $6F27
-
- dr $3e46a, $3ef63
-
-CryBasePointers: ; 0x3ef63
- dw Cry_00_Header_BankF
- dw Cry_01_Header_BankF
- dw Cry_02_Header_BankF
- dw Cry_03_Header_BankF
- dw Cry_04_Header_BankF
- dw Cry_05_Header_BankF
- dw Cry_06_Header_BankF
- dw Cry_07_Header_BankF
- dw Cry_08_Header_BankF
- dw Cry_09_Header_BankF
- dw Cry_0A_Header_BankF
- dw Cry_0B_Header_BankF
- dw Cry_0C_Header_BankF
- dw Cry_0D_Header_BankF
- dw Cry_0E_Header_BankF
- dw Cry_0F_Header_BankF
- dw Cry_10_Header_BankF
- dw Cry_11_Header_BankF
- dw Cry_12_Header_BankF
- dw Cry_13_Header_BankF
- dw Cry_14_Header_BankF
- dw Cry_15_Header_BankF
- dw Cry_16_Header_BankF
- dw Cry_17_Header_BankF
- dw Cry_18_Header_BankF
- dw Cry_19_Header_BankF
- dw Cry_1A_Header_BankF
- dw Cry_1B_Header_BankF
- dw Cry_1C_Header_BankF
- dw Cry_1D_Header_BankF
- dw Cry_1E_Header_BankF
- dw Cry_1F_Header_BankF
- dw Cry_20_Header_BankF
- dw Cry_21_Header_BankF
- dw Cry_22_Header_BankF
- dw Cry_23_Header_BankF
- dw Cry_24_Header_BankF
- dw Cry_25_Header_BankF
-
-CryData: ; 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
-
-Cry_00_Header_BankF: ; 0x3f339
- db $84
- dw $7733
- db $05
- dw $7742
- db $07
- dw $7751
-
-Cry_01_Header_BankF: ; 0x3f342
- db $84
- dw $7943
- db $05
- dw $7956
- db $07
- dw $7969
-
-Cry_02_Header_BankF: ; 0x3f34b
- db $84
- dw $78B8
- db $05
- dw $78C7
- db $07
- dw $78D5
-
-Cry_03_Header_BankF: ; 0x3f354
- db $84
- dw $7652
- db $05
- dw $7671
- db $07
- dw $7690
-
-Cry_04_Header_BankF: ; 0x3f35d
- db $84
- dw $7A01
- db $05
- dw $7A20
- db $07
- dw $7A3F
-
-Cry_05_Header_BankF: ; 0x3f366
- db $84
- dw $77E1
- db $05
- dw $77F4
- db $07
- dw $7806
-
-Cry_06_Header_BankF: ; 0x3f36f
- db $84
- dw $778B
- db $05
- dw $77A5
- db $07
- dw $77A6
-
-Cry_07_Header_BankF: ; 0x3f378
- db $84
- dw $77B9
- db $05
- dw $77C8
- db $07
- dw $77D7
-
-Cry_08_Header_BankF: ; 0x3f381
- db $84
- dw $79D1
- db $05
- dw $79E4
- db $07
- dw $79F7
-
-Cry_09_Header_BankF: ; 0x3f38a
- db $84
- dw $74DB
- db $05
- dw $74F8
- db $07
- dw $7519
-
-Cry_0A_Header_BankF: ; 0x3f393
- db $84
- dw $7976
- db $05
- dw $7995
- db $07
- dw $79B8
-
-Cry_0B_Header_BankF: ; 0x3f39c
- db $84
- dw $7807
- db $05
- dw $7832
- db $07
- dw $7851
-
-Cry_0C_Header_BankF: ; 0x3f3a5
- db $84
- dw $786A
- db $05
- dw $7891
- db $07
- dw $78B7
-
-Cry_0D_Header_BankF: ; 0x3f3ae
- db $84
- dw $78D6
- db $05
- dw $78F5
- db $07
- dw $7924
-
-Cry_0E_Header_BankF: ; 0x3f
- db $84
- dw $775B
- db $05
- dw $776E
- db $07
- dw $7781
-
-Cry_0F_Header_BankF: ; 0x3f
- db $84
- dw $769D
- db $05
- dw $76B8
- db $07
- dw $76D3
-
-Cry_10_Header_BankF: ; 0x3f3b7
- db $84
- dw $76E3
- db $05
- dw $7706
- db $07
- dw $7729
-
-Cry_11_Header_BankF: ; 0x3f3c0
- db $84
- dw $75BF
- db $05
- dw $75DE
- db $07
- dw $7601
-
-Cry_12_Header_BankF: ; 0x3f3c9
- db $84
- dw $7AD7
- db $05
- dw $7AEA
- db $07
- dw $7AFD
-
-Cry_13_Header_BankF: ; 0x3f3d2
- db $84
- dw $7B0A
- db $05
- dw $7B25
- db $07
- dw $7B40
-
-Cry_14_Header_BankF: ; 0x3f3db
- db $84
- dw $7B53
- db $05
- dw $7B62
- db $07
- dw $7B71
-
-Cry_15_Header_BankF: ; 0x3f3e4
- db $84
- dw $7BE1
- db $05
- dw $7BFC
- db $07
- dw $7C17
-
-Cry_16_Header_BankF: ; 0x3f3ed
- db $84
- dw $7A74
- db $05
- dw $7A83
- db $07
- dw $7A92
-
-Cry_17_Header_BankF: ; 0x3f3f6
- db $84
- dw $7C2A
- db $05
- dw $7C3D
- db $07
- dw $7C50
-
-Cry_18_Header_BankF: ; 0x3f3ff
- db $84
- dw $7D3A
- db $05
- dw $7D5D
- db $07
- dw $7D80
-
-Cry_19_Header_BankF: ; 0x3f408
- db $84
- dw $7A52
- db $05
- dw $7A61
- db $07
- dw $7A73
-
-Cry_1A_Header_BankF: ; 0x3f411
- db $84
- dw $7CAB
- db $05
- dw $7CC6
- db $07
- dw $7CE1
-
-Cry_1B_Header_BankF: ; 0x3f41a
- db $84
- dw $7A9C
- db $05
- dw $7AB3
- db $07
- dw $7ACA
-
-Cry_1C_Header_BankF: ; 0x3f423
- db $84
- dw $7C5D
- db $05
- dw $7C80
- db $07
- dw $7C9B
-
-Cry_1D_Header_BankF: ; 0x3f42c
- db $84
- dw $7CF4
- db $05
- dw $7D0F
- db $07
- dw $7D2A
-
-Cry_1E_Header_BankF: ; 0x3f435
- db $84
- dw $7B7B
- db $05
- dw $7B9E
- db $07
- dw $7BC5
-
-Cry_1F_Header_BankF: ; 0x3f43e
- db $84
- dw $7D93
- db $05
- dw $7DA6
- db $07
- dw $7DB9
-
-Cry_20_Header_BankF: ; 0x3f447
- db $84
- dw $7DC6
- db $05
- dw $7DD9
- db $07
- dw $7DEC
-
-Cry_21_Header_BankF: ; 0x3f450
- db $84
- dw $7DF9
- db $05
- dw $7E1C
- db $07
- dw $7E3E
-
-Cry_22_Header_BankF: ; 0x3f459
- db $84
- dw $7E3F
- db $05
- dw $7E52
- db $07
- dw $7E65
-
-Cry_23_Header_BankF: ; 0x3f462
- db $84
- dw $7532
- db $05
- dw $7549
- db $07
- dw $755C
-
-Cry_24_Header_BankF: ; 0x3f46b
- db $84
- dw $7569
- db $05
- dw $758C
- db $07
- dw $75AF
-
-Cry_25_Header_BankF: ; 0x3f474
- db $84
- dw $7617
- db $05
- dw $762E
- db $07
- dw $7645
-
- dr $3f48f, $40000
+INCLUDE "audio/engine_0f.asm"
SECTION "bank10", ROMX, BANK[$10]
- dr $40000, $40ca2
-
-SongHeaderPointers10: ; 0x40ca2
- dw Music_Nothing10
- dw Music_RedField
- dw Music_CatchEmBlue
- dw Music_HurryUpBlue
- dw Music_HiScore
- dw Music_GameOver
-; 0x40cae
-
-INCLUDE "audio/music/nothing10.asm"
-INCLUDE "audio/music/redfield.asm"
-INCLUDE "audio/music/catchemblue.asm"
-INCLUDE "audio/music/hiscore.asm"
-INCLUDE "audio/music/gameover.asm"
-INCLUDE "audio/music/hurryupblue.asm"
-
- dr $4255b, $44000
+INCLUDE "audio/engine_10.asm"
SECTION "bank11", ROMX, BANK[$11]
- dr $44000, $44ca2
-
-SongHeaderPointers11: ; 0x44ca2
- dw Music_Nothing11
- dw Music_WhackTheDiglett
- dw Music_WhackTheDugtrio
- dw Music_SeelStage
- dw Music_Title
-; 0x44cac
-
-INCLUDE "audio/music/nothing11.asm"
-INCLUDE "audio/music/whackthediglett.asm"
-INCLUDE "audio/music/whackthedugtrio.asm"
-INCLUDE "audio/music/seelstage.asm"
-INCLUDE "audio/music/title.asm"
-
- dr $462d3, $48000
+INCLUDE "audio/engine_11.asm"
SECTION "bank12", ROMX, BANK[$12]
- dr $48000, $48ca2
-
-SongHeaderPointers12: ; 0x48ca2
- dw Music_Nothing12
- dw Music_MewtwoStage
- dw Music_Options
- dw Music_FieldSelect
- dw Music_MeowthStage
-; 0x48cac
-
-INCLUDE "audio/music/nothing12.asm"
-INCLUDE "audio/music/mewtwostage.asm"
-INCLUDE "audio/music/options.asm"
-INCLUDE "audio/music/fieldselect.asm"
-INCLUDE "audio/music/meowthstage.asm"
-
- dr $49c04, $4c000
+INCLUDE "audio/engine_12.asm"
SECTION "bank13", ROMX, BANK[$13]
- dr $4c000, $4cca2
-
-SongHeaderPointers13: ; 0x4cca2
- dw Music_Nothing13
- dw Music_EndCredits
- dw Music_NameEntry
-; 0x4cca8
-
-INCLUDE "audio/music/nothing13.asm"
-INCLUDE "audio/music/endcredits.asm"
-INCLUDE "audio/music/nameentry.asm"
-
- dr $4def4, $50000
+INCLUDE "audio/engine_13.asm"
SECTION "bank14", ROMX, BANK[$14]
-PlayPikachuSoundClip: ; 0x50000
-; Plays the pcm (pulse-code modulation) sound clip of one of the pikachu noises.
- sla a
- ld c, a
- ld b, $0
- ld hl, PikachuSoundClipPointers
- add hl, bc
- ld a, [hli]
- ld h, [hl]
- ld l, a
- push hl
- di
- ld b, $4
-.asm_50010
- ld a, [rLY]
- and a
- jr nz, .asm_50010
- dec b
- jr nz, .asm_50010
- xor a
- ld [rNR50], a
- ld [rNR51], a
- ld a, $80
- ld [rNR52], a
- xor a
- ld [rNR30], a
- ld hl, wd84b
- ld c, $30
- ld b, $10
-.asm_5002b
- ld a, [$ff00+c]
- ld [hli], a
- ld a, $ff
- ld [$ff00+c], a
- inc c
- dec b
- jr nz, .asm_5002b
- ld a, $80
- ld [rNR30], 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
- ld a, $77
- ld [rNR50], a
- ld a, $44
- ld [rNR51], a
- pop hl
- call PlayPikachuPCM
- xor a
- ld [rNR50], a
- ld [rNR51], a
- ld [rNR52], a
- ld hl, wd84b
- ld c, $30
- ld b, $10
-.asm_50062
- ld a, [hli]
- ld [$ff00+c], a
- inc c
- dec b
- jr nz, .asm_50062
- ld a, $77
- ld [rNR50], a
- ld a, $ff
- ld [rNR51], a
- ld a, $80
- ld [rNR52], a
- ei
- ret
-
-PikachuSoundClipPointers: ; 0x50076
- dw PikachuBillboardBonusSoundClip
- dw PikachuThundershockSoundClip
-
-PikachuBillboardBonusSoundClip: ; 0x5007a
- dw $caf ; length of the pcm data (todo: there is probably a way to do this dynamically with rgbds)
- INCBIN "audio/sound_clips/pi_ka_chu.pcm"
-
- db $1f ; unused
-
-PikachuThundershockSoundClip: ; 0x50d2c
- dw $1227 ; length of the pcm data (todo: there is probably a way to do this dynamically with rgbds)
- INCBIN "audio/sound_clips/piiiiikaaaa.pcm"
-
- db $f0, $00, $00 ; unused
-
-PlayPikachuPCM: ; 0x51f56
-; Plays the audio PCM at [hl]
- ld a, [hli]
- ld c, a
- ld a, [hli]
- ld b, a
- ; bc = number of bytes in the sound clip's PCM (pulse-code modulation)
-.loop
- ld a, [hli]
- ld d, a
- ld a, $3
-.playSingleSample
- dec a
- jr nz, .playSingleSample
- call LoadNextSoundClipSample
- call PlaySoundClipSample
- call LoadNextSoundClipSample
- call PlaySoundClipSample
- call LoadNextSoundClipSample
- call PlaySoundClipSample
- call LoadNextSoundClipSample
- call PlaySoundClipSample
- call LoadNextSoundClipSample
- call PlaySoundClipSample
- call LoadNextSoundClipSample
- call PlaySoundClipSample
- call LoadNextSoundClipSample
- call PlaySoundClipSample
- call LoadNextSoundClipSample
- dec bc
- ld a, c
- or b
- jr nz, .loop
- ret
-
-LoadNextSoundClipSample: ; 0x51f94
- ld a, d
- and $80
- srl a
- srl a
- ld [rNR32], a
- sla d
- ret
-
-PlaySoundClipSample: ; 0x51fa0
- ld a, $3
-.loop
- dec a
- jr nz, .loop
- ret
-
- dr $51fa6, $54000
-
-SECTION "bank15", ROMX, BANK[$15]
+INCLUDE "audio/pikapcm.asm"
- dr $54000, $58000 ; 0x54000
+; bank $15 is blank
SECTION "bank16", ROMX, BANK[$16]