diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2016-12-06 21:56:48 -0500 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2016-12-06 21:56:48 -0500 |
commit | 09db40d83edac1f125fdb54669be1707ae3a07f6 (patch) | |
tree | 551e949d11ec472c0b1d74ef283c45c60033ac6b /main.asm | |
parent | e935cd885be225472e077466508f815e7c203296 (diff) |
Split out audio engine copies
Diffstat (limited to 'main.asm')
-rwxr-xr-x | main.asm | 2701 |
1 files changed, 14 insertions, 2687 deletions
@@ -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] |