From fc9b61e8ac9007221faa2f71377dd49c5880ab47 Mon Sep 17 00:00:00 2001 From: "U-Daniel-PC\\Daniel" Date: Fri, 3 Jul 2015 14:39:24 -0500 Subject: Rename/organize part 3 of 4 rename functions, clean up address/wram comments, other misc only broken up so that all changes are viewable on github --- audio/engine_2.asm | 106 ++++++++++++++++++++++++++--------------------------- 1 file changed, 53 insertions(+), 53 deletions(-) (limited to 'audio/engine_2.asm') diff --git a/audio/engine_2.asm b/audio/engine_2.asm index 067ecc0c..5940b55a 100644 --- a/audio/engine_2.asm +++ b/audio/engine_2.asm @@ -141,7 +141,7 @@ Music8_ApplyMusicAffects: ; 218ae (8:58ae) .done ld d, a ld b, $3 - call Func_21ff7 + call Music8_21ff7 ld [hl], d ret @@ -245,7 +245,7 @@ Music8_endchannel: ; 21967 (8:5967) ld a, c cp CH4 jr z, .asm_219e6 - call Func_21e6d + call Music8_21e6d ret c .asm_219e6 ld a, [wc005] @@ -438,7 +438,7 @@ Music8_pitchbend: ; 21aee (8:5aee) ld b, a ld a, d and $f - call Func_22017 + call Music8_22017 ld b, $0 ld hl, wc0a6 add hl, bc @@ -509,7 +509,7 @@ Music8_unknownmusic0xef: ; 21b88 (8:5b88) jr nz, Music8_dutycycle ; no call Music8_GetNextMusicByte ; yes push bc - call Func_22035 + call Music8_22035 pop bc ld a, [wc003] and a @@ -586,12 +586,12 @@ Music8_unknownsfx0x20: ; 21bf3 or d ld d, a ld b, $1 - call Func_21ff7 + call Music8_21ff7 ld [hl], d call Music8_GetNextMusicByte ld d, a ld b, $2 - call Func_21ff7 + call Music8_21ff7 ld [hl], d call Music8_GetNextMusicByte ld e, a @@ -605,10 +605,10 @@ Music8_unknownsfx0x20: ; 21bf3 .sfxNoiseChannel ld d, a push de - call Func_21daa - call Func_21d79 + call Music8_21daa + call Music8_21d79 pop de - call Func_21dcc + call Music8_21dcc ret Music8_unknownsfx0x10: ; 21c40 (8:5c40) @@ -658,7 +658,7 @@ asm_21c7e and a jr nz, .asm_21c89 ld a, d - call Func_22035 + call Music8_22035 .asm_21c89 pop bc pop de @@ -675,7 +675,7 @@ Music8_notelength: ; 21c8b (8:5c8b) add hl, bc ld a, [hl] ld l, b - call Func_22006 + call Music8_22006 ld a, c cp CH4 jr nc, .sfxChannel @@ -689,7 +689,7 @@ Music8_notelength: ; 21c8b (8:5c8b) ld e, $0 cp CH7 jr z, .skip ; if noise channel - call Func_21e2f + call Music8_21e2f ld a, [wc0ea] ld d, a ld a, [wc0eb] @@ -700,7 +700,7 @@ Music8_notelength: ; 21c8b (8:5c8b) ld hl, wc0ce add hl, bc ld l, [hl] - call Func_22006 + call Music8_22006 ld e, l ld d, h ld hl, wc0ce @@ -751,7 +751,7 @@ Music8_notepitch: ; 21ce9 (8:5ce9) jr .done .notSfxChannel3 ld b, $2 - call Func_21ff7 + call Music8_21ff7 ld a, $8 ld [hli], a inc hl @@ -765,13 +765,13 @@ Music8_notepitch: ; 21ce9 (8:5ce9) ld hl, wc0d6 add hl, bc ld b, [hl] - call Func_22017 + call Music8_22017 ld b, $0 ld hl, wc02e add hl, bc bit 4, [hl] jr z, .asm_21d39 - call Func_21f4e + call Music8_21f4e .asm_21d39 push de ld a, c @@ -794,10 +794,10 @@ Music8_notepitch: ; 21ce9 (8:5ce9) add hl, bc ld d, [hl] ld b, $2 - call Func_21ff7 + call Music8_21ff7 ld [hl], d - call Func_21daa - call Func_21d79 + call Music8_21daa + call Music8_21d79 pop de ld b, $0 ld hl, wc02e @@ -811,10 +811,10 @@ Music8_notepitch: ; 21ce9 (8:5ce9) ld hl, wc066 add hl, bc ld [hl], e - call Func_21dcc + call Music8_21dcc ret -Func_21d79: ; 21d79 (8:5d79) +Music8_21d79: ; 21d79 (8:5d79) ld b, $0 ld hl, Unknown_222e6 add hl, bc @@ -848,7 +848,7 @@ Func_21d79: ; 21d79 (8:5d79) ld [$ff25], a ret -Func_21daa: ; 21daa (8:5daa) +Music8_21daa: ; 21daa (8:5daa) ld b, $0 ld hl, wc0b6 add hl, bc @@ -868,11 +868,11 @@ Func_21daa: ; 21daa (8:5daa) ld d, a .channel3 ld b, $1 - call Func_21ff7 + call Music8_21ff7 ld [hl], d ret -Func_21dcc: ; 21dcc (8:5dcc) +Music8_21dcc: ; 21dcc (8:5dcc) ld a, c cp CH2 jr z, .channel3 @@ -916,18 +916,18 @@ Func_21dcc: ; 21dcc (8:5dcc) and $c7 ld d, a ld b, $3 - call Func_21ff7 + call Music8_21ff7 ld [hl], e inc hl ld [hl], d ld a, c cp CH4 jr c, .musicChannel - call Func_21e56 + call Music8_21e56 .musicChannel ret -Func_21e19: ; 21e19 (8:5e19) +Music8_21e19: ; 21e19 (8:5e19) ld a, c cp CH4 jr nz, .asm_21e2e @@ -941,10 +941,10 @@ Func_21e19: ; 21e19 (8:5e19) .asm_21e2e ret -Func_21e2f: ; 21e2f (8:5e2f) - call Func_21e8b +Music8_21e2f: ; 21e2f (8:5e2f) + call Music8_21e8b jr c, .asm_21e39 - call Func_21e9f + call Music8_21e9f jr nc, .asm_21e4c .asm_21e39 ld d, $0 @@ -965,10 +965,10 @@ Func_21e2f: ; 21e2f (8:5e2f) .asm_21e55 ret -Func_21e56: ; 21e56 (8:5e56) - call Func_21e8b +Music8_21e56: ; 21e56 (8:5e56) + call Music8_21e8b jr c, .asm_21e60 - call Func_21e9f + call Music8_21e9f jr nc, .asm_21e6c .asm_21e60 ld a, [wc0f1] @@ -984,8 +984,8 @@ Func_21e56: ; 21e56 (8:5e56) .asm_21e6c ret -Func_21e6d: ; 21e6d (8:5e6d) - call Func_21e8b +Music8_21e6d: ; 21e6d (8:5e6d) + call Music8_21e8b jr nc, .asm_21e88 ld hl, wc006 ld e, c @@ -1007,7 +1007,7 @@ Func_21e6d: ; 21e6d (8:5e6d) ccf ret -Func_21e8b: ; 21e8b (8:5e8b) +Music8_21e8b: ; 21e8b (8:5e8b) ld a, [wc02a] cp $14 jr nc, .asm_21e94 @@ -1024,7 +1024,7 @@ Func_21e8b: ; 21e8b (8:5e8b) scf ret -Func_21e9f: ; 21e9f (8:5e9f) +Music8_21e9f: ; 21e9f (8:5e9f) ld a, [wc02d] ld b, a ld a, [wc02a] @@ -1134,7 +1134,7 @@ Music8_ApplyPitchBend: ; 21eb8 (8:5eb8) add hl, bc ld [hl], d ld b, $3 - call Func_21ff7 + call Music8_21ff7 ld a, e ld [hli], a ld [hl], d @@ -1146,7 +1146,7 @@ Music8_ApplyPitchBend: ; 21eb8 (8:5eb8) res 5, [hl] ret -Func_21f4e: ; 21f4e (8:5f4e) +Music8_21f4e: ; 21f4e (8:5f4e) ld hl, wc096 add hl, bc ld [hl], d @@ -1246,7 +1246,7 @@ Music8_ApplyDutyCycle: ; 21fcc (8:5fcc) and $c0 ld d, a ld b, $1 - call Func_21ff7 + call Music8_21ff7 ld a, [hl] and $3f or d @@ -1271,7 +1271,7 @@ Music8_GetNextMusicByte: ; 21fe4 (8:5fe4) ld [hl], d ret -Func_21ff7: ; 21ff7 (8:5ff7) +Music8_21ff7: ; 21ff7 (8:5ff7) ld a, c ld hl, Unknown_222d6 add l @@ -1285,7 +1285,7 @@ Func_21ff7: ; 21ff7 (8:5ff7) ld h, $ff ret -Func_22006: ; 22006 (8:6006) +Music8_22006: ; 22006 (8:6006) ld h, $0 .loop srl a @@ -1300,7 +1300,7 @@ Func_22006: ; 22006 (8:6006) .done ret -Func_22017: ; 22017 (8:6017) +Music8_22017: ; 22017 (8:6017) ld h, $0 ld l, a add hl, hl @@ -1325,16 +1325,16 @@ Func_22017: ; 22017 (8:6017) ld d, a ret -Func_22035:: ; 22035 (8:6035) +Music8_22035:: ; 22035 (8:6035) ld [wc001], a cp $ff - jp z, Func_221f3 + jp z, Music8_221f3 cp $e9 - jp z, Func_2210d - jp c, Func_2210d + jp z, Music8_2210d + jp c, Music8_2210d cp $fe jr z, .asm_2204c - jp nc, Func_2210d + jp nc, Music8_2210d .asm_2204c xor a ld [wc000], a @@ -1406,9 +1406,9 @@ Func_22035:: ; 22035 (8:6035) ld [$ff1a], a ld a, $77 ld [$ff24], a - jp Func_2224e + jp Music8_2224e -Func_2210d: ; 2210d (8:610d) +Music8_2210d: ; 2210d (8:610d) ld l, a ld e, a ld h, $0 @@ -1555,11 +1555,11 @@ Func_2210d: ; 2210d (8:610d) .asm_221ea ld a, c and a - jp z, Func_2224e + jp z, Music8_2224e dec c jp .asm_22126 -Func_221f3: ; 221f3 (8:61f3) +Music8_221f3: ; 221f3 (8:61f3) ld a, $80 ld [$ff26], a ld [$ff1a], a @@ -1607,7 +1607,7 @@ FillMusicRAM8: ; 22248 (8:6248) jr nz, .loop ret -Func_2224e: ; 2224e (8:624e) +Music8_2224e: ; 2224e (8:624e) ld a, [wc001] ld l, a ld e, a -- cgit v1.3.1-sl0p From a6f04b434980f2176cb275a7c3ba50d5cbcd6ace Mon Sep 17 00:00:00 2001 From: dannye Date: Wed, 22 Jul 2015 10:22:46 -0500 Subject: Unify audio bank references 2→1 8→2 1f→3 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- audio.asm | 48 +-- audio/engine_1.asm | 372 +++++++++--------- audio/engine_2.asm | 380 +++++++++---------- audio/engine_3.asm | 372 +++++++++--------- audio/headers/musicheaders02.asm | 184 --------- audio/headers/musicheaders08.asm | 57 --- audio/headers/musicheaders1.asm | 184 +++++++++ audio/headers/musicheaders1f.asm | 158 -------- audio/headers/musicheaders2.asm | 57 +++ audio/headers/musicheaders3.asm | 158 ++++++++ audio/headers/sfxheaders02.asm | 562 ---------------------------- audio/headers/sfxheaders08.asm | 706 ----------------------------------- audio/headers/sfxheaders1.asm | 562 ++++++++++++++++++++++++++++ audio/headers/sfxheaders1f.asm | 596 ----------------------------- audio/headers/sfxheaders2.asm | 706 +++++++++++++++++++++++++++++++++++ audio/headers/sfxheaders3.asm | 596 +++++++++++++++++++++++++++++ audio/sfx/pokeflute_ch1_ch2.asm | 14 + audio/sfx/pokeflute_ch3.asm | 13 + audio/sfx/sfx_02_unused.asm | 31 -- audio/sfx/sfx_08_pokeflute.asm | 14 - audio/sfx/sfx_08_pokeflute_ch3.asm | 13 - audio/sfx/sfx_08_unused.asm | 31 -- audio/sfx/sfx_08_unused2.asm | 56 --- audio/sfx/sfx_1f_unused.asm | 31 -- audio/sfx/unused2_2.asm | 56 +++ audio/sfx/unused_1.asm | 31 ++ audio/sfx/unused_2.asm | 31 ++ audio/sfx/unused_3.asm | 31 ++ constants/music_constants.asm | 2 +- engine/overworld/healing_machine.asm | 2 +- home/audio.asm | 44 +-- home/init.asm | 2 +- home/vblank.asm | 22 +- scripts/ssanne7.asm | 2 +- 34 files changed, 3062 insertions(+), 3062 deletions(-) delete mode 100755 audio/headers/musicheaders02.asm delete mode 100755 audio/headers/musicheaders08.asm create mode 100755 audio/headers/musicheaders1.asm delete mode 100755 audio/headers/musicheaders1f.asm create mode 100755 audio/headers/musicheaders2.asm create mode 100755 audio/headers/musicheaders3.asm delete mode 100644 audio/headers/sfxheaders02.asm delete mode 100644 audio/headers/sfxheaders08.asm create mode 100644 audio/headers/sfxheaders1.asm delete mode 100644 audio/headers/sfxheaders1f.asm create mode 100644 audio/headers/sfxheaders2.asm create mode 100644 audio/headers/sfxheaders3.asm create mode 100755 audio/sfx/pokeflute_ch1_ch2.asm create mode 100755 audio/sfx/pokeflute_ch3.asm delete mode 100755 audio/sfx/sfx_02_unused.asm delete mode 100755 audio/sfx/sfx_08_pokeflute.asm delete mode 100755 audio/sfx/sfx_08_pokeflute_ch3.asm delete mode 100755 audio/sfx/sfx_08_unused.asm delete mode 100755 audio/sfx/sfx_08_unused2.asm delete mode 100755 audio/sfx/sfx_1f_unused.asm create mode 100755 audio/sfx/unused2_2.asm create mode 100755 audio/sfx/unused_1.asm create mode 100755 audio/sfx/unused_2.asm create mode 100755 audio/sfx/unused_3.asm (limited to 'audio/engine_2.asm') diff --git a/audio.asm b/audio.asm index 8b83fcaf..286dc7ed 100644 --- a/audio.asm +++ b/audio.asm @@ -7,24 +7,24 @@ INCLUDE "constants.asm" SECTION "Sound Effect Headers 1", ROMX, BANK[AUDIO_1] -INCLUDE "audio/headers/sfxheaders02.asm" +INCLUDE "audio/headers/sfxheaders1.asm" SECTION "Sound Effect Headers 2", ROMX, BANK[AUDIO_2] -INCLUDE "audio/headers/sfxheaders08.asm" +INCLUDE "audio/headers/sfxheaders2.asm" SECTION "Sound Effect Headers 3", ROMX, BANK[AUDIO_3] -INCLUDE "audio/headers/sfxheaders1f.asm" +INCLUDE "audio/headers/sfxheaders3.asm" SECTION "Music Headers 1", ROMX, BANK[AUDIO_1] -INCLUDE "audio/headers/musicheaders02.asm" +INCLUDE "audio/headers/musicheaders1.asm" SECTION "Music Headers 2", ROMX, BANK[AUDIO_2] -INCLUDE "audio/headers/musicheaders08.asm" +INCLUDE "audio/headers/musicheaders2.asm" SECTION "Music Headers 3", ROMX, BANK[AUDIO_3] -INCLUDE "audio/headers/musicheaders1f.asm" +INCLUDE "audio/headers/musicheaders3.asm" @@ -50,7 +50,7 @@ INCLUDE "audio/sfx/muted_snare2_1.asm" INCLUDE "audio/sfx/muted_snare3_1.asm" INCLUDE "audio/sfx/muted_snare4_1.asm" -Music2_WavePointers: INCLUDE "audio/wave_instruments.asm" +Audio1_WavePointers: INCLUDE "audio/wave_instruments.asm" INCLUDE "audio/sfx/start_menu_1.asm" INCLUDE "audio/sfx/pokeflute.asm" @@ -86,7 +86,7 @@ INCLUDE "audio/sfx/push_boulder_1.asm" INCLUDE "audio/sfx/ss_anne_horn_1.asm" INCLUDE "audio/sfx/withdraw_deposit_1.asm" INCLUDE "audio/sfx/safari_zone_pa.asm" -INCLUDE "audio/sfx/sfx_02_unused.asm" +INCLUDE "audio/sfx/unused_1.asm" INCLUDE "audio/sfx/cry09_1.asm" INCLUDE "audio/sfx/cry23_1.asm" INCLUDE "audio/sfx/cry24_1.asm" @@ -149,7 +149,7 @@ INCLUDE "audio/sfx/muted_snare2_2.asm" INCLUDE "audio/sfx/muted_snare3_2.asm" INCLUDE "audio/sfx/muted_snare4_2.asm" -Music8_WavePointers: INCLUDE "audio/wave_instruments.asm" +Audio2_WavePointers: INCLUDE "audio/wave_instruments.asm" INCLUDE "audio/sfx/press_ab_2.asm" INCLUDE "audio/sfx/start_menu_2.asm" @@ -162,7 +162,7 @@ INCLUDE "audio/sfx/ball_poof.asm" INCLUDE "audio/sfx/faint_thud.asm" INCLUDE "audio/sfx/run.asm" INCLUDE "audio/sfx/dex_page_added.asm" -INCLUDE "audio/sfx/sfx_08_pokeflute_ch3.asm" +INCLUDE "audio/sfx/pokeflute_ch3.asm" INCLUDE "audio/sfx/peck.asm" INCLUDE "audio/sfx/faint_fall.asm" INCLUDE "audio/sfx/battle_09.asm" @@ -211,7 +211,7 @@ INCLUDE "audio/sfx/battle_33.asm" INCLUDE "audio/sfx/battle_34.asm" INCLUDE "audio/sfx/battle_35.asm" INCLUDE "audio/sfx/battle_36.asm" -INCLUDE "audio/sfx/sfx_08_unused.asm" +INCLUDE "audio/sfx/unused_2.asm" INCLUDE "audio/sfx/cry09_2.asm" INCLUDE "audio/sfx/cry23_2.asm" INCLUDE "audio/sfx/cry24_2.asm" @@ -274,7 +274,7 @@ INCLUDE "audio/sfx/muted_snare2_3.asm" INCLUDE "audio/sfx/muted_snare3_3.asm" INCLUDE "audio/sfx/muted_snare4_3.asm" -Music1f_WavePointers: INCLUDE "audio/wave_instruments.asm" +Audio3_WavePointers: INCLUDE "audio/wave_instruments.asm" INCLUDE "audio/sfx/start_menu_3.asm" INCLUDE "audio/sfx/cut_3.asm" @@ -318,7 +318,7 @@ INCLUDE "audio/sfx/slots_stop_wheel.asm" INCLUDE "audio/sfx/slots_reward.asm" INCLUDE "audio/sfx/slots_new_spin.asm" INCLUDE "audio/sfx/shooting_star.asm" -INCLUDE "audio/sfx/sfx_1f_unused.asm" +INCLUDE "audio/sfx/unused_3.asm" INCLUDE "audio/sfx/cry09_3.asm" INCLUDE "audio/sfx/cry23_3.asm" INCLUDE "audio/sfx/cry24_3.asm" @@ -408,12 +408,12 @@ Music_RivalAlternateStart:: ; 0x9b47 call PlayMusic ld hl, wc006 ld de, Music_MeetRival_branch_b1a2 - call Music2_OverwriteChannelPointer + call Audio1_OverwriteChannelPointer ld de, Music_MeetRival_branch_b21d - call Music2_OverwriteChannelPointer + call Audio1_OverwriteChannelPointer ld de, Music_MeetRival_branch_b2b5 -Music2_OverwriteChannelPointer: ; 0x9b60 +Audio1_OverwriteChannelPointer: ; 0x9b60 ld a, e ld [hli], a ld a, d @@ -427,14 +427,14 @@ Music_RivalAlternateTempo:: ; 0x9b65 call PlayMusic ld hl, wc006 ld de, Music_MeetRival_branch_b119 - jp Music2_OverwriteChannelPointer + jp Audio1_OverwriteChannelPointer ; applies both the alternate start and alternate tempo Music_RivalAlternateStartAndTempo:: ; 0x9b75 call Music_RivalAlternateStart ld hl, wc006 ld de, Music_MeetRival_branch_b19b - jp Music2_OverwriteChannelPointer + jp Audio1_OverwriteChannelPointer ; an alternate tempo for Cities1 which is used for the Hall of Fame room Music_Cities1AlternateTempo:: ; 0x9b81 @@ -450,7 +450,7 @@ Music_Cities1AlternateTempo:: ; 0x9b81 call PlayMusic ld hl, wc006 ld de, Music_Cities1_branch_aa6f - jp Music2_OverwriteChannelPointer + jp Audio1_OverwriteChannelPointer SECTION "Audio Engine 2", ROMX, BANK[AUDIO_2] @@ -544,12 +544,12 @@ Music_PokeFluteInBattle:: ; 22306 (8:6306) ; then immediately overwrtie the channel pointers ld hl, wc00e ld de, SFX_08_PokeFlute_Ch1 - call Music8_OverwriteChannelPointer + call Audio2_OverwriteChannelPointer ld de, SFX_08_PokeFlute_Ch2 - call Music8_OverwriteChannelPointer + call Audio2_OverwriteChannelPointer ld de, SFX_08_PokeFlute_Ch3 -Music8_OverwriteChannelPointer: ; 2231d (8:631d) +Audio2_OverwriteChannelPointer: ; 2231d (8:631d) ld a, e ld [hli], a ld a, d @@ -632,8 +632,8 @@ INCLUDE "audio/music/pokecenter.asm" SECTION "Music 2", ROMX, BANK[AUDIO_2] -INCLUDE "audio/sfx/sfx_08_pokeflute.asm" -INCLUDE "audio/sfx/sfx_08_unused2.asm" +INCLUDE "audio/sfx/pokeflute_ch1_ch2.asm" +INCLUDE "audio/sfx/unused2_2.asm" INCLUDE "audio/music/gymleaderbattle.asm" INCLUDE "audio/music/trainerbattle.asm" INCLUDE "audio/music/wildbattle.asm" diff --git a/audio/engine_1.asm b/audio/engine_1.asm index fd74b16d..9a302ef3 100644 --- a/audio/engine_1.asm +++ b/audio/engine_1.asm @@ -1,6 +1,6 @@ ; The first of three duplicated sound engines. -Music2_UpdateMusic:: ; 0x9103 +Audio1_UpdateMusic:: ; 0x9103 ld c, CH0 .loop ld b, $0 @@ -26,7 +26,7 @@ Music2_UpdateMusic:: ; 0x9103 ld [$ff1a], a jr .nextChannel .asm_912e - call Music2_ApplyMusicAffects + call Audio1_ApplyMusicAffects .nextChannel ld a, c inc c ; inc channel number @@ -42,13 +42,13 @@ Music2_UpdateMusic:: ; 0x9103 ; 3: a toggle used only by this routine for vibrato ; 4: pitchbend flag ; 6: dutycycle flag -Music2_ApplyMusicAffects: ; 0x9138 +Audio1_ApplyMusicAffects: ; 0x9138 ld b, $0 ld hl, wc0b6 ; delay until next note add hl, bc ld a, [hl] cp $1 ; if the delay is 1, play next note - jp z, Music2_PlayNextNote + jp z, Audio1_PlayNextNote dec a ; otherwise, decrease the delay timer ld [hl], a ld a, c @@ -65,7 +65,7 @@ Music2_ApplyMusicAffects: ; 0x9138 add hl, bc bit 6, [hl] ; dutycycle jr z, .checkForExecuteMusic - call Music2_ApplyDutyCycle + call Audio1_ApplyDutyCycle .checkForExecuteMusic ld b, $0 ld hl, wc036 @@ -81,7 +81,7 @@ Music2_ApplyMusicAffects: ; 0x9138 add hl, bc bit 4, [hl] ; pitchbend jr z, .checkVibratoDelay - jp Music2_ApplyPitchBend + jp Audio1_ApplyPitchBend .checkVibratoDelay ld hl, wc04e ; vibrato delay add hl, bc @@ -141,14 +141,14 @@ Music2_ApplyMusicAffects: ; 0x9138 .done ld d, a ld b, $3 - call Music2_9838 + call Audio1_9838 ld [hl], d ret ; this routine executes all music commands that take up no time, ; like tempo changes, duty changes etc. and doesn't return ; until the first note is reached -Music2_PlayNextNote: ; 0x91d0 +Audio1_PlayNextNote: ; 0x91d0 ld hl, wc06e add hl, bc ld a, [hl] @@ -159,14 +159,14 @@ Music2_PlayNextNote: ; 0x91d0 add hl, bc res 4, [hl] res 5, [hl] - call Music2_endchannel + call Audio1_endchannel ret -Music2_endchannel: ; 0x91e6 - call Music2_GetNextMusicByte +Audio1_endchannel: ; 0x91e6 + call Audio1_GetNextMusicByte ld d, a cp $ff ; is this command an endchannel? - jp nz, Music2_callchannel ; no + jp nz, Audio1_callchannel ; no ld b, $0 ; yes ld hl, wc02e add hl, bc @@ -216,7 +216,7 @@ Music2_endchannel: ; 0x91e6 inc de ld a, [de] ld [hl], a ; loads channel address to return to - jp Music2_endchannel + jp Audio1_endchannel .asm_923f ld hl, Unknown_9b1f add hl, bc @@ -238,7 +238,7 @@ Music2_endchannel: ; 0x91e6 ld a, c cp CH4 jr z, .asm_9265 - call Music2_96c7 + call Audio1_96c7 ret c .asm_9265 ld a, [wc005] @@ -251,12 +251,12 @@ Music2_endchannel: ; 0x91e6 ld [hl], b ret -Music2_callchannel: ; 0x9274 +Audio1_callchannel: ; 0x9274 cp $fd ; is this command a callchannel? - jp nz, Music2_loopchannel ; no - call Music2_GetNextMusicByte ; yes + jp nz, Audio1_loopchannel ; no + call Audio1_GetNextMusicByte ; yes push af - call Music2_GetNextMusicByte + call Audio1_GetNextMusicByte ld d, a pop af ld e, a @@ -286,12 +286,12 @@ Music2_callchannel: ; 0x9274 ld hl, wc02e add hl, bc set 1, [hl] ; set the call flag - jp Music2_endchannel + jp Audio1_endchannel -Music2_loopchannel: ; 0x92a9 +Audio1_loopchannel: ; 0x92a9 cp $fe ; is this command a loopchannel? - jp nz, Music2_notetype ; no - call Music2_GetNextMusicByte ; yes + jp nz, Audio1_notetype ; no + call Audio1_GetNextMusicByte ; yes ld e, a and a jr z, .infiniteLoop @@ -303,17 +303,17 @@ Music2_loopchannel: ; 0x92a9 jr nz, .loopAgain ld a, $1 ; if no more loops to make, ld [hl], a - call Music2_GetNextMusicByte ; skip pointer - call Music2_GetNextMusicByte - jp Music2_endchannel + call Audio1_GetNextMusicByte ; skip pointer + call Audio1_GetNextMusicByte + jp Audio1_endchannel .loopAgain ; inc loop count inc a ld [hl], a ; fall through .infiniteLoop ; overwrite current address with pointer - call Music2_GetNextMusicByte + call Audio1_GetNextMusicByte push af - call Music2_GetNextMusicByte + call Audio1_GetNextMusicByte ld b, a ld d, $0 ld a, c @@ -324,12 +324,12 @@ Music2_loopchannel: ; 0x92a9 pop af ld [hli], a ld [hl], b - jp Music2_endchannel + jp Audio1_endchannel -Music2_notetype: ; 0x92e4 +Audio1_notetype: ; 0x92e4 and $f0 cp $d0 ; is this command a notetype? - jp nz, Music2_toggleperfectpitch ; no + jp nz, Audio1_toggleperfectpitch ; no ld a, d ; yes and $f ld b, $0 @@ -339,7 +339,7 @@ Music2_notetype: ; 0x92e4 ld a, c cp CH3 jr z, .noiseChannel ; noise channel has 0 params - call Music2_GetNextMusicByte + call Audio1_GetNextMusicByte ld d, a ld a, c cp CH2 @@ -368,24 +368,24 @@ Music2_notetype: ; 0x92e4 add hl, bc ld [hl], d .noiseChannel - jp Music2_endchannel + jp Audio1_endchannel -Music2_toggleperfectpitch: ; 0x9323 +Audio1_toggleperfectpitch: ; 0x9323 ld a, d cp $e8 ; is this command a toggleperfectpitch? - jr nz, Music2_vibrato ; no + jr nz, Audio1_vibrato ; no ld b, $0 ; yes ld hl, wc02e add hl, bc ld a, [hl] xor $1 ld [hl], a ; flip bit 0 of wc02e - jp Music2_endchannel + jp Audio1_endchannel -Music2_vibrato: ; 0x9335 +Audio1_vibrato: ; 0x9335 cp $ea ; is this command a vibrato? - jr nz, Music2_pitchbend ; no - call Music2_GetNextMusicByte ; yes + jr nz, Audio1_pitchbend ; no + call Audio1_GetNextMusicByte ; yes ld b, $0 ld hl, wc04e add hl, bc @@ -393,7 +393,7 @@ Music2_vibrato: ; 0x9335 ld hl, wc06e add hl, bc ld [hl], a ; store delay - call Music2_GetNextMusicByte + call Audio1_GetNextMusicByte ld d, a and $f0 swap a @@ -414,24 +414,24 @@ Music2_vibrato: ; 0x9335 swap a or d ld [hl], a ; store depth as both high and low nibbles - jp Music2_endchannel + jp Audio1_endchannel -Music2_pitchbend: ; 0x936d +Audio1_pitchbend: ; 0x936d cp $eb ; is this command a pitchbend? - jr nz, Music2_duty ; no - call Music2_GetNextMusicByte ; yes + jr nz, Audio1_duty ; no + call Audio1_GetNextMusicByte ; yes ld b, $0 ld hl, wc076 add hl, bc ld [hl], a ; store first param - call Music2_GetNextMusicByte + call Audio1_GetNextMusicByte ld d, a and $f0 swap a ld b, a ld a, d and $f - call Music2_9858 + call Audio1_9858 ld b, $0 ld hl, wc0a6 add hl, bc @@ -443,14 +443,14 @@ Music2_pitchbend: ; 0x936d ld hl, wc02e add hl, bc set 4, [hl] ; set pitchbend flag - call Music2_GetNextMusicByte + call Audio1_GetNextMusicByte ld d, a - jp Music2_notelength + jp Audio1_notelength -Music2_duty: ; 0x93a5 +Audio1_duty: ; 0x93a5 cp $ec ; is this command a duty? - jr nz, Music2_tempo ; no - call Music2_GetNextMusicByte ; yes + jr nz, Audio1_tempo ; no + call Audio1_GetNextMusicByte ; yes rrca rrca and $c0 @@ -458,17 +458,17 @@ Music2_duty: ; 0x93a5 ld hl, wc03e add hl, bc ld [hl], a ; store duty - jp Music2_endchannel + jp Audio1_endchannel -Music2_tempo: ; 0x93ba +Audio1_tempo: ; 0x93ba cp $ed ; is this command a tempo? - jr nz, Music2_stereopanning ; no + jr nz, Audio1_stereopanning ; no ld a, c ; yes cp CH4 jr nc, .sfxChannel - call Music2_GetNextMusicByte + call Audio1_GetNextMusicByte ld [wc0e8], a ; store first param - call Music2_GetNextMusicByte + call Audio1_GetNextMusicByte ld [wc0e9], a ; store second param xor a ld [wc0ce], a ; clear RAM @@ -477,9 +477,9 @@ Music2_tempo: ; 0x93ba ld [wc0d1], a jr .musicChannelDone .sfxChannel - call Music2_GetNextMusicByte + call Audio1_GetNextMusicByte ld [wc0ea], a ; store first param - call Music2_GetNextMusicByte + call Audio1_GetNextMusicByte ld [wc0eb], a ; store second param xor a ld [wc0d2], a ; clear RAM @@ -487,22 +487,22 @@ Music2_tempo: ; 0x93ba ld [wc0d4], a ld [wc0d5], a .musicChannelDone - jp Music2_endchannel + jp Audio1_endchannel -Music2_stereopanning: ; 0x93fa +Audio1_stereopanning: ; 0x93fa cp $ee ; is this command a stereopanning? - jr nz, Music2_unknownmusic0xef ; no - call Music2_GetNextMusicByte ; yes + jr nz, Audio1_unknownmusic0xef ; no + call Audio1_GetNextMusicByte ; yes ld [wc004], a ; store panning - jp Music2_endchannel + jp Audio1_endchannel ; this appears to never be used -Music2_unknownmusic0xef: ; 0x9407 +Audio1_unknownmusic0xef: ; 0x9407 cp $ef ; is this command an unknownmusic0xef? - jr nz, Music2_dutycycle ; no - call Music2_GetNextMusicByte ; yes + jr nz, Audio1_dutycycle ; no + call Audio1_GetNextMusicByte ; yes push bc - call Music2_9876 + call Audio1_9876 pop bc ld a, [wc003] and a @@ -512,12 +512,12 @@ Music2_unknownmusic0xef: ; 0x9407 xor a ld [wc02d], a .skip - jp Music2_endchannel + jp Audio1_endchannel -Music2_dutycycle: ; 0x9426 +Audio1_dutycycle: ; 0x9426 cp $fc ; is this command a dutycycle? - jr nz, Music2_volume ; no - call Music2_GetNextMusicByte ; yes + jr nz, Audio1_volume ; no + call Audio1_GetNextMusicByte ; yes ld b, $0 ld hl, wc046 add hl, bc @@ -529,48 +529,48 @@ Music2_dutycycle: ; 0x9426 ld hl, wc02e add hl, bc set 6, [hl] ; set dutycycle flag - jp Music2_endchannel + jp Audio1_endchannel -Music2_volume: ; 0x9444 +Audio1_volume: ; 0x9444 cp $f0 ; is this command a volume? - jr nz, Music2_executemusic ; no - call Music2_GetNextMusicByte ; yes + jr nz, Audio1_executemusic ; no + call Audio1_GetNextMusicByte ; yes ld [$ff24], a ; store volume - jp Music2_endchannel + jp Audio1_endchannel -Music2_executemusic: ; 0x9450 +Audio1_executemusic: ; 0x9450 cp $f8 ; is this command an executemusic? - jr nz, Music2_octave ; no + jr nz, Audio1_octave ; no ld b, $0 ; yes ld hl, wc036 add hl, bc set 0, [hl] - jp Music2_endchannel + jp Audio1_endchannel -Music2_octave: ; 0x945f +Audio1_octave: ; 0x945f and $f0 cp $e0 ; is this command an octave? - jr nz, Music2_unknownsfx0x20 ; no + jr nz, Audio1_unknownsfx0x20 ; no ld hl, wc0d6 ; yes ld b, $0 add hl, bc ld a, d and $f ld [hl], a ; store low nibble as octave - jp Music2_endchannel + jp Audio1_endchannel -Music2_unknownsfx0x20: ; 0x9472 +Audio1_unknownsfx0x20: ; 0x9472 cp $20 ; is this command an unknownsfx0x20? - jr nz, Music2_unknownsfx0x10 ; no + jr nz, Audio1_unknownsfx0x10 ; no ld a, c cp CH3 ; is this a noise or sfx channel? - jr c, Music2_unknownsfx0x10 ; no + jr c, Audio1_unknownsfx0x10 ; no ld b, $0 ld hl, wc036 add hl, bc bit 0, [hl] - jr nz, Music2_unknownsfx0x10 ; no - call Music2_notelength ; yes + jr nz, Audio1_unknownsfx0x10 ; no + call Audio1_notelength ; yes ld d, a ld b, $0 ld hl, wc03e @@ -579,56 +579,56 @@ Music2_unknownsfx0x20: ; 0x9472 or d ld d, a ld b, $1 - call Music2_9838 + call Audio1_9838 ld [hl], d - call Music2_GetNextMusicByte + call Audio1_GetNextMusicByte ld d, a ld b, $2 - call Music2_9838 + call Audio1_9838 ld [hl], d - call Music2_GetNextMusicByte + call Audio1_GetNextMusicByte ld e, a ld a, c cp CH7 ld a, $0 jr z, .sfxNoiseChannel ; only two params for noise channel push de - call Music2_GetNextMusicByte + call Audio1_GetNextMusicByte pop de .sfxNoiseChannel ld d, a push de - call Music2_9629 - call Music2_95f8 + call Audio1_9629 + call Audio1_95f8 pop de - call Music2_964b + call Audio1_964b ret -Music2_unknownsfx0x10: +Audio1_unknownsfx0x10: ld a, c cp CH4 - jr c, Music2_note ; if not a sfx + jr c, Audio1_note ; if not a sfx ld a, d cp $10 ; is this command a unknownsfx0x10? - jr nz, Music2_note ; no + jr nz, Audio1_note ; no ld b, $0 ld hl, wc036 add hl, bc bit 0, [hl] - jr nz, Music2_note ; no - call Music2_GetNextMusicByte ; yes + jr nz, Audio1_note ; no + call Audio1_GetNextMusicByte ; yes ld [$ff10], a - jp Music2_endchannel + jp Audio1_endchannel -Music2_note: +Audio1_note: ld a, c cp CH3 - jr nz, Music2_notelength ; if not noise channel + jr nz, Audio1_notelength ; if not noise channel ld a, d and $f0 cp $b0 ; is this command a dnote? - jr z, Music2_dnote ; yes - jr nc, Music2_notelength ; no + jr z, Audio1_dnote ; yes + jr nc, Audio1_notelength ; no swap a ld b, a ld a, d @@ -639,24 +639,24 @@ Music2_note: push bc jr asm_94fd -Music2_dnote: +Audio1_dnote: ld a, d and $f push af push bc - call Music2_GetNextMusicByte ; get dnote instrument + call Audio1_GetNextMusicByte ; get dnote instrument asm_94fd ld d, a ld a, [wc003] and a jr nz, .asm_9508 ld a, d - call Music2_9876 + call Audio1_9876 .asm_9508 pop bc pop de -Music2_notelength: ; 0x950a +Audio1_notelength: ; 0x950a ld a, d push af and $f @@ -668,7 +668,7 @@ Music2_notelength: ; 0x950a add hl, bc ld a, [hl] ld l, b - call Music2_9847 + call Audio1_9847 ld a, c cp CH4 jr nc, .sfxChannel @@ -682,7 +682,7 @@ Music2_notelength: ; 0x950a ld e, $0 cp CH7 jr z, .skip ; if noise channel - call Music2_9693 + call Audio1_9693 ld a, [wc0ea] ld d, a ld a, [wc0eb] @@ -693,7 +693,7 @@ Music2_notelength: ; 0x950a ld hl, wc0ce add hl, bc ld l, [hl] - call Music2_9847 + call Audio1_9847 ld e, l ld d, h ld hl, wc0ce @@ -706,15 +706,15 @@ Music2_notelength: ; 0x950a ld hl, wc036 add hl, bc bit 0, [hl] - jr nz, Music2_notepitch + jr nz, Audio1_notepitch ld hl, wc02e add hl, bc bit 2, [hl] - jr z, Music2_notepitch + jr z, Audio1_notepitch pop hl ret -Music2_notepitch: ; 0x9568 +Audio1_notepitch: ; 0x9568 pop af and $f0 cp $c0 ; compare to rest @@ -744,7 +744,7 @@ Music2_notepitch: ; 0x9568 jr .done .notSfxChannel3 ld b, $2 - call Music2_9838 + call Audio1_9838 ld a, $8 ld [hli], a inc hl @@ -758,13 +758,13 @@ Music2_notepitch: ; 0x9568 ld hl, wc0d6 add hl, bc ld b, [hl] - call Music2_9858 + call Audio1_9858 ld b, $0 ld hl, wc02e add hl, bc bit 4, [hl] jr z, .asm_95b8 - call Music2_978f + call Audio1_978f .asm_95b8 push de ld a, c @@ -787,10 +787,10 @@ Music2_notepitch: ; 0x9568 add hl, bc ld d, [hl] ld b, $2 - call Music2_9838 + call Audio1_9838 ld [hl], d - call Music2_9629 - call Music2_95f8 + call Audio1_9629 + call Audio1_95f8 pop de ld b, $0 ld hl, wc02e @@ -804,10 +804,10 @@ Music2_notepitch: ; 0x9568 ld hl, wc066 add hl, bc ld [hl], e - call Music2_964b + call Audio1_964b ret -Music2_95f8: ; 0x95f8 +Audio1_95f8: ; 0x95f8 ld b, $0 ld hl, Unknown_9b27 add hl, bc @@ -841,7 +841,7 @@ Music2_95f8: ; 0x95f8 ld [$ff25], a ret -Music2_9629: ; 0x9629 +Audio1_9629: ; 0x9629 ld b, $0 ld hl, wc0b6 add hl, bc @@ -861,11 +861,11 @@ Music2_9629: ; 0x9629 ld d, a .channel3 ld b, $1 - call Music2_9838 + call Audio1_9838 ld [hl], d ret -Music2_964b: ; 0x964b +Audio1_964b: ; 0x964b ld a, c cp CH2 jr z, .channel3 @@ -883,7 +883,7 @@ Music2_964b: ; 0x964b add a ld d, $0 ld e, a - ld hl, Music2_WavePointers + ld hl, Audio1_WavePointers add hl, de ld e, [hl] inc hl @@ -909,15 +909,15 @@ Music2_964b: ; 0x964b and $c7 ld d, a ld b, $3 - call Music2_9838 + call Audio1_9838 ld [hl], e inc hl ld [hl], d - call Music2_96b5 + call Audio1_96b5 ret -Music2_9693: ; 0x9693 - call Music2_96e5 +Audio1_9693: ; 0x9693 + call Audio1_96e5 jr nc, .asm_96ab ld d, $0 ld a, [wc0f2] @@ -937,8 +937,8 @@ Music2_9693: ; 0x9693 .asm_96b4 ret -Music2_96b5: ; 0x96b5 - call Music2_96e5 +Audio1_96b5: ; 0x96b5 + call Audio1_96e5 jr nc, .asm_96c6 ld a, [wc0f1] add e @@ -953,8 +953,8 @@ Music2_96b5: ; 0x96b5 .asm_96c6 ret -Music2_96c7: ; 0x96c7 - call Music2_96e5 +Audio1_96c7: ; 0x96c7 + call Audio1_96e5 jr nc, .asm_96e2 ld hl, wc006 ld e, c @@ -976,7 +976,7 @@ Music2_96c7: ; 0x96c7 ccf ret -Music2_96e5: ; 0x96e5 +Audio1_96e5: ; 0x96e5 ld a, [wc02a] cp $14 jr nc, .asm_96ee @@ -993,7 +993,7 @@ Music2_96e5: ; 0x96e5 scf ret -Music2_ApplyPitchBend: ; 0x96f9 +Audio1_ApplyPitchBend: ; 0x96f9 ld hl, wc02e add hl, bc bit 5, [hl] @@ -1083,7 +1083,7 @@ Music2_ApplyPitchBend: ; 0x96f9 add hl, bc ld [hl], d ld b, $3 - call Music2_9838 + call Audio1_9838 ld a, e ld [hli], a ld [hl], d @@ -1095,7 +1095,7 @@ Music2_ApplyPitchBend: ; 0x96f9 res 5, [hl] ret -Music2_978f: ; 0x978f +Audio1_978f: ; 0x978f ld hl, wc096 add hl, bc ld [hl], d @@ -1184,7 +1184,7 @@ Music2_978f: ; 0x978f ld [hl], a ret -Music2_ApplyDutyCycle: ; 0x980d +Audio1_ApplyDutyCycle: ; 0x980d ld b, $0 ld hl, wc046 add hl, bc @@ -1195,14 +1195,14 @@ Music2_ApplyDutyCycle: ; 0x980d and $c0 ld d, a ld b, $1 - call Music2_9838 + call Audio1_9838 ld a, [hl] and $3f or d ld [hl], a ret -Music2_GetNextMusicByte: ; 0x9825 +Audio1_GetNextMusicByte: ; 0x9825 ld d, $0 ld a, c add a @@ -1220,7 +1220,7 @@ Music2_GetNextMusicByte: ; 0x9825 ld [hl], d ret -Music2_9838: ; 0x9838 +Audio1_9838: ; 0x9838 ld a, c ld hl, Unknown_9b17 add l @@ -1234,7 +1234,7 @@ Music2_9838: ; 0x9838 ld h, $ff ret -Music2_9847: ; 0x9847 +Audio1_9847: ; 0x9847 ld h, $0 .loop srl a @@ -1249,13 +1249,13 @@ Music2_9847: ; 0x9847 .done ret -Music2_9858: ; 0x9858 +Audio1_9858: ; 0x9858 ld h, $0 ld l, a add hl, hl ld d, h ld e, l - ld hl, Music2_Pitches + ld hl, Audio1_Pitches add hl, de ld e, [hl] inc hl @@ -1274,16 +1274,16 @@ Music2_9858: ; 0x9858 ld d, a ret -Music2_9876:: ; 0x9876 +Audio1_9876:: ; 0x9876 ld [wc001], a cp $ff - jp z, Music2_9a34 + jp z, Audio1_9a34 cp $b9 - jp z, Music2_994e - jp c, Music2_994e + jp z, Audio1_994e + jp c, Audio1_994e cp $fe jr z, .asm_988d - jp nc, Music2_994e + jp nc, Audio1_994e .asm_988d xor a ld [wc000], a @@ -1293,53 +1293,53 @@ Music2_9876:: ; 0x9876 ld [wc0e7], a ld d, $8 ld hl, wc016 - call FillMusicRAM2 + call FillAudioRAM1 ld hl, wc006 - call FillMusicRAM2 + call FillAudioRAM1 ld d, $4 ld hl, wc026 - call FillMusicRAM2 + call FillAudioRAM1 ld hl, wc02e - call FillMusicRAM2 + call FillAudioRAM1 ld hl, wc03e - call FillMusicRAM2 + call FillAudioRAM1 ld hl, wc046 - call FillMusicRAM2 + call FillAudioRAM1 ld hl, wc04e - call FillMusicRAM2 + call FillAudioRAM1 ld hl, wc056 - call FillMusicRAM2 + call FillAudioRAM1 ld hl, wc05e - call FillMusicRAM2 + call FillAudioRAM1 ld hl, wc066 - call FillMusicRAM2 + call FillAudioRAM1 ld hl, wc06e - call FillMusicRAM2 + call FillAudioRAM1 ld hl, wc036 - call FillMusicRAM2 + call FillAudioRAM1 ld hl, wc076 - call FillMusicRAM2 + call FillAudioRAM1 ld hl, wc07e - call FillMusicRAM2 + call FillAudioRAM1 ld hl, wc086 - call FillMusicRAM2 + call FillAudioRAM1 ld hl, wc08e - call FillMusicRAM2 + call FillAudioRAM1 ld hl, wc096 - call FillMusicRAM2 + call FillAudioRAM1 ld hl, wc09e - call FillMusicRAM2 + call FillAudioRAM1 ld hl, wc0a6 - call FillMusicRAM2 + call FillAudioRAM1 ld hl, wc0ae - call FillMusicRAM2 + call FillAudioRAM1 ld a, $1 ld hl, wc0be - call FillMusicRAM2 + call FillAudioRAM1 ld hl, wc0b6 - call FillMusicRAM2 + call FillAudioRAM1 ld hl, wc0c6 - call FillMusicRAM2 + call FillAudioRAM1 ld [wc0e8], a ld a, $ff ld [wc004], a @@ -1355,16 +1355,16 @@ Music2_9876:: ; 0x9876 ld [$ff1a], a ld a, $77 ld [$ff24], a - jp Music2_9a8f + jp Audio1_9a8f -Music2_994e: ; 0x994e +Audio1_994e: ; 0x994e ld l, a ld e, a ld h, $0 ld d, h add hl, hl add hl, de - ld de, SFX_Headers_02 + ld de, SFX_Headers_1 add hl, de ld a, h ld [wc0ec], a @@ -1504,11 +1504,11 @@ Music2_994e: ; 0x994e .asm_9a2b ld a, c and a - jp z, Music2_9a8f + jp z, Audio1_9a8f dec c jp .asm_9967 -Music2_9a34: ; 0x9a34 +Audio1_9a34: ; 0x9a34 ld a, $80 ld [$ff26], a ld [$ff1a], a @@ -1536,11 +1536,11 @@ Music2_9a34: ; 0x9a34 ld [wc0e7], a ld d, $a0 ld hl, wc006 - call FillMusicRAM2 + call FillAudioRAM1 ld a, $1 ld d, $18 ld hl, wc0b6 - call FillMusicRAM2 + call FillAudioRAM1 ld [wc0e8], a ld [wc0ea], a ld a, $ff @@ -1548,7 +1548,7 @@ Music2_9a34: ; 0x9a34 ret ; fills d bytes at hl with a -FillMusicRAM2: ; 0x9a89 +FillAudioRAM1: ; 0x9a89 ld b, d .loop ld [hli], a @@ -1556,7 +1556,7 @@ FillMusicRAM2: ; 0x9a89 jr nz, .loop ret -Music2_9a8f: ; 0x9a8f +Audio1_9a8f: ; 0x9a8f ld a, [wc001] ld l, a ld e, a @@ -1564,7 +1564,7 @@ Music2_9a8f: ; 0x9a8f ld d, h add hl, hl add hl, de - ld de, SFX_Headers_02 + ld de, SFX_Headers_1 add hl, de ld e, l ld d, h @@ -1637,7 +1637,7 @@ Music2_9a8f: ; 0x9a8f ld [hli], a ld [hl], a ld hl, wc012 ; sfx noise channel pointer - ld de, Noise2_endchannel + ld de, Noise1_endchannel ld [hl], e inc hl ld [hl], d ; overwrite pointer to point to endchannel @@ -1651,7 +1651,7 @@ Music2_9a8f: ; 0x9a8f .asm_9b15 ret -Noise2_endchannel: ; 0x9b16 +Noise1_endchannel: ; 0x9b16 endchannel Unknown_9b17: ; 0x9b17 @@ -1666,7 +1666,7 @@ Unknown_9b27: ; 0x9b27 db $11, $22, $44, $88 ; channels 0-3 db $11, $22, $44, $88 ; channels 4-7 -Music2_Pitches: ; 0x9b2f +Audio1_Pitches: ; 0x9b2f dw $F82C ; C_ dw $F89D ; C# dw $F907 ; D_ diff --git a/audio/engine_2.asm b/audio/engine_2.asm index 5940b55a..62b82cec 100644 --- a/audio/engine_2.asm +++ b/audio/engine_2.asm @@ -1,6 +1,6 @@ ; The second of three duplicated sound engines. -Music8_UpdateMusic:: ; 21879 (8:5879) +Audio2_UpdateMusic:: ; 21879 (8:5879) ld c, CH0 .loop ld b, $0 @@ -26,7 +26,7 @@ Music8_UpdateMusic:: ; 21879 (8:5879) ld [$ff1a], a jr .nextChannel .applyAffects - call Music8_ApplyMusicAffects + call Audio2_ApplyMusicAffects .nextChannel ld a, c inc c @@ -42,13 +42,13 @@ Music8_UpdateMusic:: ; 21879 (8:5879) ; 3: a toggle used only by this routine for vibrato ; 4: pitchbend flag ; 6: dutycycle flag -Music8_ApplyMusicAffects: ; 218ae (8:58ae) +Audio2_ApplyMusicAffects: ; 218ae (8:58ae) ld b, $0 ld hl, wc0b6 ; delay until next note add hl, bc ld a, [hl] cp $1 ; if the delay is 1, play next note - jp z, Music8_PlayNextNote + jp z, Audio2_PlayNextNote dec a ; otherwise, decrease the delay timer ld [hl], a ld a, c @@ -65,7 +65,7 @@ Music8_ApplyMusicAffects: ; 218ae (8:58ae) add hl, bc bit 6, [hl] ; dutycycle jr z, .checkForExecuteMusic - call Music8_ApplyDutyCycle + call Audio2_ApplyDutyCycle .checkForExecuteMusic ld b, $0 ld hl, wc036 @@ -81,7 +81,7 @@ Music8_ApplyMusicAffects: ; 218ae (8:58ae) add hl, bc bit 4, [hl] ; pitchbend jr z, .checkVibratoDelay - jp Music8_ApplyPitchBend + jp Audio2_ApplyPitchBend .checkVibratoDelay ld hl, wc04e ; vibrato delay add hl, bc @@ -141,14 +141,14 @@ Music8_ApplyMusicAffects: ; 218ae (8:58ae) .done ld d, a ld b, $3 - call Music8_21ff7 + call Audio2_21ff7 ld [hl], d ret ; this routine executes all music commands that take up no time, ; like tempo changes, duty changes etc. and doesn't return ; until the first note is reached -Music8_PlayNextNote: ; 21946 (8:5946) +Audio2_PlayNextNote: ; 21946 (8:5946) ld hl, wc06e add hl, bc ld a, [hl] @@ -166,14 +166,14 @@ Music8_PlayNextNote: ; 21946 (8:5946) bit 7, a ret nz .beginChecks - call Music8_endchannel + call Audio2_endchannel ret -Music8_endchannel: ; 21967 (8:5967) - call Music8_GetNextMusicByte +Audio2_endchannel: ; 21967 (8:5967) + call Audio2_GetNextMusicByte ld d, a cp $ff ; is this command an endchannel? - jp nz, Music8_callchannel ; no + jp nz, Audio2_callchannel ; no ld b, $0 ; yes ld hl, wc02e add hl, bc @@ -223,7 +223,7 @@ Music8_endchannel: ; 21967 (8:5967) inc de ld a, [de] ld [hl], a ; loads channel address to return to - jp Music8_endchannel + jp Audio2_endchannel .asm_219c0 ld hl, Unknown_222de add hl, bc @@ -245,7 +245,7 @@ Music8_endchannel: ; 21967 (8:5967) ld a, c cp CH4 jr z, .asm_219e6 - call Music8_21e6d + call Audio2_21e6d ret c .asm_219e6 ld a, [wc005] @@ -258,12 +258,12 @@ Music8_endchannel: ; 21967 (8:5967) ld [hl], b ret -Music8_callchannel: ; 219f5 (8:59f5) +Audio2_callchannel: ; 219f5 (8:59f5) cp $fd ; is this command a callchannel? - jp nz, Music8_loopchannel ; no - call Music8_GetNextMusicByte ; yes + jp nz, Audio2_loopchannel ; no + call Audio2_GetNextMusicByte ; yes push af - call Music8_GetNextMusicByte + call Audio2_GetNextMusicByte ld d, a pop af ld e, a @@ -293,12 +293,12 @@ Music8_callchannel: ; 219f5 (8:59f5) ld hl, wc02e add hl, bc set 1, [hl] ; set the call flag - jp Music8_endchannel + jp Audio2_endchannel -Music8_loopchannel: ; 21a2a (8:5a2a) +Audio2_loopchannel: ; 21a2a (8:5a2a) cp $fe ; is this command a loopchannel? - jp nz, Music8_notetype ; no - call Music8_GetNextMusicByte ; yes + jp nz, Audio2_notetype ; no + call Audio2_GetNextMusicByte ; yes ld e, a and a jr z, .infiniteLoop @@ -310,17 +310,17 @@ Music8_loopchannel: ; 21a2a (8:5a2a) jr nz, .loopAgain ld a, $1 ; if no more loops to make, ld [hl], a - call Music8_GetNextMusicByte ; skip pointer - call Music8_GetNextMusicByte - jp Music8_endchannel + call Audio2_GetNextMusicByte ; skip pointer + call Audio2_GetNextMusicByte + jp Audio2_endchannel .loopAgain ; inc loop count inc a ld [hl], a ; fall through .infiniteLoop ; overwrite current address with pointer - call Music8_GetNextMusicByte + call Audio2_GetNextMusicByte push af - call Music8_GetNextMusicByte + call Audio2_GetNextMusicByte ld b, a ld d, $0 ld a, c @@ -331,12 +331,12 @@ Music8_loopchannel: ; 21a2a (8:5a2a) pop af ld [hli], a ld [hl], b - jp Music8_endchannel + jp Audio2_endchannel -Music8_notetype: ; 21a65 (8:5a65) +Audio2_notetype: ; 21a65 (8:5a65) and $f0 cp $d0 ; is this command a notetype? - jp nz, Music8_toggleperfectpitch ; no + jp nz, Audio2_toggleperfectpitch ; no ld a, d ; yes and $f ld b, $0 @@ -346,7 +346,7 @@ Music8_notetype: ; 21a65 (8:5a65) ld a, c cp CH3 jr z, .noiseChannel ; noise channel has 0 params - call Music8_GetNextMusicByte + call Audio2_GetNextMusicByte ld d, a ld a, c cp CH2 @@ -375,24 +375,24 @@ Music8_notetype: ; 21a65 (8:5a65) add hl, bc ld [hl], d .noiseChannel - jp Music8_endchannel + jp Audio2_endchannel -Music8_toggleperfectpitch: ; 21aa4 (8:5aa4) +Audio2_toggleperfectpitch: ; 21aa4 (8:5aa4) ld a, d cp $e8 ; is this command a toggleperfectpitch? - jr nz, Music8_vibrato ; no + jr nz, Audio2_vibrato ; no ld b, $0 ; yes ld hl, wc02e add hl, bc ld a, [hl] xor $1 ld [hl], a ; flip bit 0 of wc02e - jp Music8_endchannel + jp Audio2_endchannel -Music8_vibrato: ; 21ab6 (8:5ab6) +Audio2_vibrato: ; 21ab6 (8:5ab6) cp $ea ; is this command a vibrato? - jr nz, Music8_pitchbend ; no - call Music8_GetNextMusicByte ; yes + jr nz, Audio2_pitchbend ; no + call Audio2_GetNextMusicByte ; yes ld b, $0 ld hl, wc04e add hl, bc @@ -400,7 +400,7 @@ Music8_vibrato: ; 21ab6 (8:5ab6) ld hl, wc06e add hl, bc ld [hl], a ; store delay - call Music8_GetNextMusicByte + call Audio2_GetNextMusicByte ld d, a and $f0 swap a @@ -421,24 +421,24 @@ Music8_vibrato: ; 21ab6 (8:5ab6) swap a or d ld [hl], a ; store depth as both high and low nibbles - jp Music8_endchannel + jp Audio2_endchannel -Music8_pitchbend: ; 21aee (8:5aee) +Audio2_pitchbend: ; 21aee (8:5aee) cp $eb ; is this command a pitchbend? - jr nz, Music8_duty ; no - call Music8_GetNextMusicByte ; yes + jr nz, Audio2_duty ; no + call Audio2_GetNextMusicByte ; yes ld b, $0 ld hl, wc076 add hl, bc ld [hl], a ; store first param - call Music8_GetNextMusicByte + call Audio2_GetNextMusicByte ld d, a and $f0 swap a ld b, a ld a, d and $f - call Music8_22017 + call Audio2_22017 ld b, $0 ld hl, wc0a6 add hl, bc @@ -450,14 +450,14 @@ Music8_pitchbend: ; 21aee (8:5aee) ld hl, wc02e add hl, bc set 4, [hl] ; set pitchbend flag - call Music8_GetNextMusicByte + call Audio2_GetNextMusicByte ld d, a - jp Music8_notelength + jp Audio2_notelength -Music8_duty: ; 21b26 (8:5b26) +Audio2_duty: ; 21b26 (8:5b26) cp $ec ; is this command a duty? - jr nz, Music8_tempo ; no - call Music8_GetNextMusicByte ; yes + jr nz, Audio2_tempo ; no + call Audio2_GetNextMusicByte ; yes rrca rrca and $c0 @@ -465,17 +465,17 @@ Music8_duty: ; 21b26 (8:5b26) ld hl, wc03e add hl, bc ld [hl], a ; store duty - jp Music8_endchannel + jp Audio2_endchannel -Music8_tempo: ; 21b3b (8:5b3b) +Audio2_tempo: ; 21b3b (8:5b3b) cp $ed ; is this command a tempo? - jr nz, Music8_stereopanning ; no + jr nz, Audio2_stereopanning ; no ld a, c ; yes cp CH4 jr nc, .sfxChannel - call Music8_GetNextMusicByte + call Audio2_GetNextMusicByte ld [wc0e8], a ; store first param - call Music8_GetNextMusicByte + call Audio2_GetNextMusicByte ld [wc0e9], a ; store second param xor a ld [wc0ce], a ; clear RAM @@ -484,9 +484,9 @@ Music8_tempo: ; 21b3b (8:5b3b) ld [wc0d1], a jr .musicChannelDone .sfxChannel - call Music8_GetNextMusicByte + call Audio2_GetNextMusicByte ld [wc0ea], a ; store first param - call Music8_GetNextMusicByte + call Audio2_GetNextMusicByte ld [wc0eb], a ; store second param xor a ld [wc0d2], a ; clear RAM @@ -494,22 +494,22 @@ Music8_tempo: ; 21b3b (8:5b3b) ld [wc0d4], a ld [wc0d5], a .musicChannelDone - jp Music8_endchannel + jp Audio2_endchannel -Music8_stereopanning: ; 21b7b (8:5b7b) +Audio2_stereopanning: ; 21b7b (8:5b7b) cp $ee ; is this command a stereopanning? - jr nz, Music8_unknownmusic0xef ; no - call Music8_GetNextMusicByte ; yes + jr nz, Audio2_unknownmusic0xef ; no + call Audio2_GetNextMusicByte ; yes ld [wc004], a ; store panning - jp Music8_endchannel + jp Audio2_endchannel ; this appears to never be used -Music8_unknownmusic0xef: ; 21b88 (8:5b88) +Audio2_unknownmusic0xef: ; 21b88 (8:5b88) cp $ef ; is this command an unknownmusic0xef? - jr nz, Music8_dutycycle ; no - call Music8_GetNextMusicByte ; yes + jr nz, Audio2_dutycycle ; no + call Audio2_GetNextMusicByte ; yes push bc - call Music8_22035 + call Audio2_22035 pop bc ld a, [wc003] and a @@ -519,12 +519,12 @@ Music8_unknownmusic0xef: ; 21b88 (8:5b88) xor a ld [wc02d], a .skip - jp Music8_endchannel + jp Audio2_endchannel -Music8_dutycycle: ; 21ba7 (8:5ba7) +Audio2_dutycycle: ; 21ba7 (8:5ba7) cp $fc ; is this command a dutycycle? - jr nz, Music8_volume ; no - call Music8_GetNextMusicByte ; yes + jr nz, Audio2_volume ; no + call Audio2_GetNextMusicByte ; yes ld b, $0 ld hl, wc046 add hl, bc @@ -536,48 +536,48 @@ Music8_dutycycle: ; 21ba7 (8:5ba7) ld hl, wc02e add hl, bc set 6, [hl] ; set dutycycle flag - jp Music8_endchannel + jp Audio2_endchannel -Music8_volume: ; 21bc5 (8:5bc5) +Audio2_volume: ; 21bc5 (8:5bc5) cp $f0 ; is this command a volume? - jr nz, Music8_executemusic ; no - call Music8_GetNextMusicByte ; yes + jr nz, Audio2_executemusic ; no + call Audio2_GetNextMusicByte ; yes ld [$ff24], a ; store volume - jp Music8_endchannel + jp Audio2_endchannel -Music8_executemusic: ; 21bd1 (8:5bd1) +Audio2_executemusic: ; 21bd1 (8:5bd1) cp $f8 ; is this command an executemusic? - jr nz, Music8_octave ; no + jr nz, Audio2_octave ; no ld b, $0 ; yes ld hl, wc036 add hl, bc set 0, [hl] - jp Music8_endchannel + jp Audio2_endchannel -Music8_octave: ; 21be0 (8:5be0) +Audio2_octave: ; 21be0 (8:5be0) and $f0 cp $e0 ; is this command an octave? - jr nz, Music8_unknownsfx0x20 ; no + jr nz, Audio2_unknownsfx0x20 ; no ld hl, wc0d6 ; yes ld b, $0 add hl, bc ld a, d and $f ld [hl], a ; store low nibble as octave - jp Music8_endchannel + jp Audio2_endchannel -Music8_unknownsfx0x20: ; 21bf3 +Audio2_unknownsfx0x20: ; 21bf3 cp $20 ; is this command an unknownsfx0x20? - jr nz, Music8_unknownsfx0x10 ; no + jr nz, Audio2_unknownsfx0x10 ; no ld a, c cp CH3 ; is this a noise or sfx channel? - jr c, Music8_unknownsfx0x10 ; no + jr c, Audio2_unknownsfx0x10 ; no ld b, $0 ld hl, wc036 add hl, bc bit 0, [hl] - jr nz, Music8_unknownsfx0x10 ; no - call Music8_notelength + jr nz, Audio2_unknownsfx0x10 ; no + call Audio2_notelength ld d, a ld b, $0 ld hl, wc03e @@ -586,56 +586,56 @@ Music8_unknownsfx0x20: ; 21bf3 or d ld d, a ld b, $1 - call Music8_21ff7 + call Audio2_21ff7 ld [hl], d - call Music8_GetNextMusicByte + call Audio2_GetNextMusicByte ld d, a ld b, $2 - call Music8_21ff7 + call Audio2_21ff7 ld [hl], d - call Music8_GetNextMusicByte + call Audio2_GetNextMusicByte ld e, a ld a, c cp CH7 ld a, $0 jr z, .sfxNoiseChannel ; only two params for noise channel push de - call Music8_GetNextMusicByte + call Audio2_GetNextMusicByte pop de .sfxNoiseChannel ld d, a push de - call Music8_21daa - call Music8_21d79 + call Audio2_21daa + call Audio2_21d79 pop de - call Music8_21dcc + call Audio2_21dcc ret -Music8_unknownsfx0x10: ; 21c40 (8:5c40) +Audio2_unknownsfx0x10: ; 21c40 (8:5c40) ld a, c cp CH4 - jr c, Music8_note ; if not a sfx + jr c, Audio2_note ; if not a sfx ld a, d cp $10 ; is this command a unknownsfx0x10? - jr nz, Music8_note ; no + jr nz, Audio2_note ; no ld b, $0 ld hl, wc036 add hl, bc bit 0, [hl] - jr nz, Music8_note ; no - call Music8_GetNextMusicByte ; yes + jr nz, Audio2_note ; no + call Audio2_GetNextMusicByte ; yes ld [$ff10], a - jp Music8_endchannel + jp Audio2_endchannel -Music8_note: ; 21c5c (8:5c5c) +Audio2_note: ; 21c5c (8:5c5c) ld a, c cp CH3 - jr nz, Music8_notelength ; if not noise channel + jr nz, Audio2_notelength ; if not noise channel ld a, d and $f0 cp $b0 ; is this command a dnote? - jr z, Music8_dnote ; yes - jr nc, Music8_notelength ; no + jr z, Audio2_dnote ; yes + jr nc, Audio2_notelength ; no swap a ld b, a ld a, d @@ -646,24 +646,24 @@ Music8_note: ; 21c5c (8:5c5c) push bc jr asm_21c7e -Music8_dnote: ; 21c76 (8:5c76) +Audio2_dnote: ; 21c76 (8:5c76) ld a, d and $f push af push bc - call Music8_GetNextMusicByte ; get dnote instrument + call Audio2_GetNextMusicByte ; get dnote instrument asm_21c7e ld d, a ld a, [wc003] and a jr nz, .asm_21c89 ld a, d - call Music8_22035 + call Audio2_22035 .asm_21c89 pop bc pop de -Music8_notelength: ; 21c8b (8:5c8b) +Audio2_notelength: ; 21c8b (8:5c8b) ld a, d push af and $f @@ -675,7 +675,7 @@ Music8_notelength: ; 21c8b (8:5c8b) add hl, bc ld a, [hl] ld l, b - call Music8_22006 + call Audio2_22006 ld a, c cp CH4 jr nc, .sfxChannel @@ -689,7 +689,7 @@ Music8_notelength: ; 21c8b (8:5c8b) ld e, $0 cp CH7 jr z, .skip ; if noise channel - call Music8_21e2f + call Audio2_21e2f ld a, [wc0ea] ld d, a ld a, [wc0eb] @@ -700,7 +700,7 @@ Music8_notelength: ; 21c8b (8:5c8b) ld hl, wc0ce add hl, bc ld l, [hl] - call Music8_22006 + call Audio2_22006 ld e, l ld d, h ld hl, wc0ce @@ -713,15 +713,15 @@ Music8_notelength: ; 21c8b (8:5c8b) ld hl, wc036 add hl, bc bit 0, [hl] - jr nz, Music8_notepitch + jr nz, Audio2_notepitch ld hl, wc02e add hl, bc bit 2, [hl] - jr z, Music8_notepitch + jr z, Audio2_notepitch pop hl ret -Music8_notepitch: ; 21ce9 (8:5ce9) +Audio2_notepitch: ; 21ce9 (8:5ce9) pop af and $f0 cp $c0 ; compare to rest @@ -751,7 +751,7 @@ Music8_notepitch: ; 21ce9 (8:5ce9) jr .done .notSfxChannel3 ld b, $2 - call Music8_21ff7 + call Audio2_21ff7 ld a, $8 ld [hli], a inc hl @@ -765,13 +765,13 @@ Music8_notepitch: ; 21ce9 (8:5ce9) ld hl, wc0d6 add hl, bc ld b, [hl] - call Music8_22017 + call Audio2_22017 ld b, $0 ld hl, wc02e add hl, bc bit 4, [hl] jr z, .asm_21d39 - call Music8_21f4e + call Audio2_21f4e .asm_21d39 push de ld a, c @@ -794,10 +794,10 @@ Music8_notepitch: ; 21ce9 (8:5ce9) add hl, bc ld d, [hl] ld b, $2 - call Music8_21ff7 + call Audio2_21ff7 ld [hl], d - call Music8_21daa - call Music8_21d79 + call Audio2_21daa + call Audio2_21d79 pop de ld b, $0 ld hl, wc02e @@ -811,10 +811,10 @@ Music8_notepitch: ; 21ce9 (8:5ce9) ld hl, wc066 add hl, bc ld [hl], e - call Music8_21dcc + call Audio2_21dcc ret -Music8_21d79: ; 21d79 (8:5d79) +Audio2_21d79: ; 21d79 (8:5d79) ld b, $0 ld hl, Unknown_222e6 add hl, bc @@ -848,7 +848,7 @@ Music8_21d79: ; 21d79 (8:5d79) ld [$ff25], a ret -Music8_21daa: ; 21daa (8:5daa) +Audio2_21daa: ; 21daa (8:5daa) ld b, $0 ld hl, wc0b6 add hl, bc @@ -868,11 +868,11 @@ Music8_21daa: ; 21daa (8:5daa) ld d, a .channel3 ld b, $1 - call Music8_21ff7 + call Audio2_21ff7 ld [hl], d ret -Music8_21dcc: ; 21dcc (8:5dcc) +Audio2_21dcc: ; 21dcc (8:5dcc) ld a, c cp CH2 jr z, .channel3 @@ -890,7 +890,7 @@ Music8_21dcc: ; 21dcc (8:5dcc) add a ld d, $0 ld e, a - ld hl, Music8_WavePointers + ld hl, Audio2_WavePointers add hl, de ld e, [hl] inc hl @@ -916,18 +916,18 @@ Music8_21dcc: ; 21dcc (8:5dcc) and $c7 ld d, a ld b, $3 - call Music8_21ff7 + call Audio2_21ff7 ld [hl], e inc hl ld [hl], d ld a, c cp CH4 jr c, .musicChannel - call Music8_21e56 + call Audio2_21e56 .musicChannel ret -Music8_21e19: ; 21e19 (8:5e19) +Audio2_21e19: ; 21e19 (8:5e19) ld a, c cp CH4 jr nz, .asm_21e2e @@ -941,10 +941,10 @@ Music8_21e19: ; 21e19 (8:5e19) .asm_21e2e ret -Music8_21e2f: ; 21e2f (8:5e2f) - call Music8_21e8b +Audio2_21e2f: ; 21e2f (8:5e2f) + call Audio2_21e8b jr c, .asm_21e39 - call Music8_21e9f + call Audio2_21e9f jr nc, .asm_21e4c .asm_21e39 ld d, $0 @@ -965,10 +965,10 @@ Music8_21e2f: ; 21e2f (8:5e2f) .asm_21e55 ret -Music8_21e56: ; 21e56 (8:5e56) - call Music8_21e8b +Audio2_21e56: ; 21e56 (8:5e56) + call Audio2_21e8b jr c, .asm_21e60 - call Music8_21e9f + call Audio2_21e9f jr nc, .asm_21e6c .asm_21e60 ld a, [wc0f1] @@ -984,8 +984,8 @@ Music8_21e56: ; 21e56 (8:5e56) .asm_21e6c ret -Music8_21e6d: ; 21e6d (8:5e6d) - call Music8_21e8b +Audio2_21e6d: ; 21e6d (8:5e6d) + call Audio2_21e8b jr nc, .asm_21e88 ld hl, wc006 ld e, c @@ -1007,7 +1007,7 @@ Music8_21e6d: ; 21e6d (8:5e6d) ccf ret -Music8_21e8b: ; 21e8b (8:5e8b) +Audio2_21e8b: ; 21e8b (8:5e8b) ld a, [wc02a] cp $14 jr nc, .asm_21e94 @@ -1024,7 +1024,7 @@ Music8_21e8b: ; 21e8b (8:5e8b) scf ret -Music8_21e9f: ; 21e9f (8:5e9f) +Audio2_21e9f: ; 21e9f (8:5e9f) ld a, [wc02d] ld b, a ld a, [wc02a] @@ -1044,7 +1044,7 @@ Music8_21e9f: ; 21e9f (8:5e9f) scf ret -Music8_ApplyPitchBend: ; 21eb8 (8:5eb8) +Audio2_ApplyPitchBend: ; 21eb8 (8:5eb8) ld hl, wc02e add hl, bc bit 5, [hl] @@ -1134,7 +1134,7 @@ Music8_ApplyPitchBend: ; 21eb8 (8:5eb8) add hl, bc ld [hl], d ld b, $3 - call Music8_21ff7 + call Audio2_21ff7 ld a, e ld [hli], a ld [hl], d @@ -1146,7 +1146,7 @@ Music8_ApplyPitchBend: ; 21eb8 (8:5eb8) res 5, [hl] ret -Music8_21f4e: ; 21f4e (8:5f4e) +Audio2_21f4e: ; 21f4e (8:5f4e) ld hl, wc096 add hl, bc ld [hl], d @@ -1235,7 +1235,7 @@ Music8_21f4e: ; 21f4e (8:5f4e) ld [hl], a ret -Music8_ApplyDutyCycle: ; 21fcc (8:5fcc) +Audio2_ApplyDutyCycle: ; 21fcc (8:5fcc) ld b, $0 ld hl, wc046 add hl, bc @@ -1246,14 +1246,14 @@ Music8_ApplyDutyCycle: ; 21fcc (8:5fcc) and $c0 ld d, a ld b, $1 - call Music8_21ff7 + call Audio2_21ff7 ld a, [hl] and $3f or d ld [hl], a ret -Music8_GetNextMusicByte: ; 21fe4 (8:5fe4) +Audio2_GetNextMusicByte: ; 21fe4 (8:5fe4) ld d, $0 ld a, c add a @@ -1271,7 +1271,7 @@ Music8_GetNextMusicByte: ; 21fe4 (8:5fe4) ld [hl], d ret -Music8_21ff7: ; 21ff7 (8:5ff7) +Audio2_21ff7: ; 21ff7 (8:5ff7) ld a, c ld hl, Unknown_222d6 add l @@ -1285,7 +1285,7 @@ Music8_21ff7: ; 21ff7 (8:5ff7) ld h, $ff ret -Music8_22006: ; 22006 (8:6006) +Audio2_22006: ; 22006 (8:6006) ld h, $0 .loop srl a @@ -1300,13 +1300,13 @@ Music8_22006: ; 22006 (8:6006) .done ret -Music8_22017: ; 22017 (8:6017) +Audio2_22017: ; 22017 (8:6017) ld h, $0 ld l, a add hl, hl ld d, h ld e, l - ld hl, Music8_Pitches + ld hl, Audio2_Pitches add hl, de ld e, [hl] inc hl @@ -1325,16 +1325,16 @@ Music8_22017: ; 22017 (8:6017) ld d, a ret -Music8_22035:: ; 22035 (8:6035) +Audio2_22035:: ; 22035 (8:6035) ld [wc001], a cp $ff - jp z, Music8_221f3 + jp z, Audio2_221f3 cp $e9 - jp z, Music8_2210d - jp c, Music8_2210d + jp z, Audio2_2210d + jp c, Audio2_2210d cp $fe jr z, .asm_2204c - jp nc, Music8_2210d + jp nc, Audio2_2210d .asm_2204c xor a ld [wc000], a @@ -1344,53 +1344,53 @@ Music8_22035:: ; 22035 (8:6035) ld [wc0e7], a ld d, $8 ld hl, wc016 - call FillMusicRAM8 + call FillAudioRAM2 ld hl, wc006 - call FillMusicRAM8 + call FillAudioRAM2 ld d, $4 ld hl, wc026 - call FillMusicRAM8 + call FillAudioRAM2 ld hl, wc02e - call FillMusicRAM8 + call FillAudioRAM2 ld hl, wc03e - call FillMusicRAM8 + call FillAudioRAM2 ld hl, wc046 - call FillMusicRAM8 + call FillAudioRAM2 ld hl, wc04e - call FillMusicRAM8 + call FillAudioRAM2 ld hl, wc056 - call FillMusicRAM8 + call FillAudioRAM2 ld hl, wc05e - call FillMusicRAM8 + call FillAudioRAM2 ld hl, wc066 - call FillMusicRAM8 + call FillAudioRAM2 ld hl, wc06e - call FillMusicRAM8 + call FillAudioRAM2 ld hl, wc036 - call FillMusicRAM8 + call FillAudioRAM2 ld hl, wc076 - call FillMusicRAM8 + call FillAudioRAM2 ld hl, wc07e - call FillMusicRAM8 + call FillAudioRAM2 ld hl, wc086 - call FillMusicRAM8 + call FillAudioRAM2 ld hl, wc08e - call FillMusicRAM8 + call FillAudioRAM2 ld hl, wc096 - call FillMusicRAM8 + call FillAudioRAM2 ld hl, wc09e - call FillMusicRAM8 + call FillAudioRAM2 ld hl, wc0a6 - call FillMusicRAM8 + call FillAudioRAM2 ld hl, wc0ae - call FillMusicRAM8 + call FillAudioRAM2 ld a, $1 ld hl, wc0be - call FillMusicRAM8 + call FillAudioRAM2 ld hl, wc0b6 - call FillMusicRAM8 + call FillAudioRAM2 ld hl, wc0c6 - call FillMusicRAM8 + call FillAudioRAM2 ld [wc0e8], a ld a, $ff ld [wc004], a @@ -1406,16 +1406,16 @@ Music8_22035:: ; 22035 (8:6035) ld [$ff1a], a ld a, $77 ld [$ff24], a - jp Music8_2224e + jp Audio2_2224e -Music8_2210d: ; 2210d (8:610d) +Audio2_2210d: ; 2210d (8:610d) ld l, a ld e, a ld h, $0 ld d, h add hl, hl add hl, de - ld de, SFX_Headers_08 + ld de, SFX_Headers_2 add hl, de ld a, h ld [wc0ec], a @@ -1555,11 +1555,11 @@ Music8_2210d: ; 2210d (8:610d) .asm_221ea ld a, c and a - jp z, Music8_2224e + jp z, Audio2_2224e dec c jp .asm_22126 -Music8_221f3: ; 221f3 (8:61f3) +Audio2_221f3: ; 221f3 (8:61f3) ld a, $80 ld [$ff26], a ld [$ff1a], a @@ -1587,11 +1587,11 @@ Music8_221f3: ; 221f3 (8:61f3) ld [wc0e7], a ld d, $a0 ld hl, wc006 - call FillMusicRAM8 + call FillAudioRAM2 ld a, $1 ld d, $18 ld hl, wc0b6 - call FillMusicRAM8 + call FillAudioRAM2 ld [wc0e8], a ld [wc0ea], a ld a, $ff @@ -1599,7 +1599,7 @@ Music8_221f3: ; 221f3 (8:61f3) ret ; fills d bytes at hl with a -FillMusicRAM8: ; 22248 (8:6248) +FillAudioRAM2: ; 22248 (8:6248) ld b, d .loop ld [hli], a @@ -1607,7 +1607,7 @@ FillMusicRAM8: ; 22248 (8:6248) jr nz, .loop ret -Music8_2224e: ; 2224e (8:624e) +Audio2_2224e: ; 2224e (8:624e) ld a, [wc001] ld l, a ld e, a @@ -1615,7 +1615,7 @@ Music8_2224e: ; 2224e (8:624e) ld d, h add hl, hl add hl, de - ld de, SFX_Headers_08 + ld de, SFX_Headers_2 add hl, de ld e, l ld d, h @@ -1688,7 +1688,7 @@ Music8_2224e: ; 2224e (8:624e) ld [hli], a ld [hl], a ld hl, wc012 ; sfx noise channel pointer - ld de, Noise8_endchannel + ld de, Noise2_endchannel ld [hl], e inc hl ld [hl], d ; overwrite pointer to point to endchannel @@ -1702,7 +1702,7 @@ Music8_2224e: ; 2224e (8:624e) .asm_222d4 ret -Noise8_endchannel: ; 222d5 (8:62d5) +Noise2_endchannel: ; 222d5 (8:62d5) endchannel Unknown_222d6: ; 222d6 (8:62d6) @@ -1717,7 +1717,7 @@ Unknown_222e6: ; 222e6 (8:62e6) db $11, $22, $44, $88 ; channels 0-3 db $11, $22, $44, $88 ; channels 4-7 -Music8_Pitches: ; 222ee (8:62ee) +Audio2_Pitches: ; 222ee (8:62ee) dw $F82C ; C_ dw $F89D ; C# dw $F907 ; D_ diff --git a/audio/engine_3.asm b/audio/engine_3.asm index 718b6016..93fa62aa 100644 --- a/audio/engine_3.asm +++ b/audio/engine_3.asm @@ -1,6 +1,6 @@ ; The third of three duplicated sound engines. -Music1f_UpdateMusic:: ; 7d177 (1f:5177) +Audio3_UpdateMusic:: ; 7d177 (1f:5177) ld c, CH0 .loop ld b, $0 @@ -26,7 +26,7 @@ Music1f_UpdateMusic:: ; 7d177 (1f:5177) ld [$ff1a], a jr .nextChannel .applyAffects - call Music1f_ApplyMusicAffects + call Audio3_ApplyMusicAffects .nextChannel ld a, c inc c ; inc channel number @@ -42,13 +42,13 @@ Music1f_UpdateMusic:: ; 7d177 (1f:5177) ; 3: a toggle used only by this routine for vibrato ; 4: pitchbend flag ; 6: dutycycle flag -Music1f_ApplyMusicAffects: ; 7d1ac (1f:51ac) +Audio3_ApplyMusicAffects: ; 7d1ac (1f:51ac) ld b, $0 ld hl, wc0b6 ; delay until next note add hl, bc ld a, [hl] cp $1 ; if delay is 1, play next note - jp z, Music1f_PlayNextNote + jp z, Audio3_PlayNextNote dec a ; otherwise, decrease the delay timer ld [hl], a ld a, c @@ -65,7 +65,7 @@ Music1f_ApplyMusicAffects: ; 7d1ac (1f:51ac) add hl, bc bit 6, [hl] ; dutycycle jr z, .checkForExecuteMusic - call Music1f_ApplyDutyCycle + call Audio3_ApplyDutyCycle .checkForExecuteMusic ld b, $0 ld hl, wc036 @@ -81,7 +81,7 @@ Music1f_ApplyMusicAffects: ; 7d1ac (1f:51ac) add hl, bc bit 4, [hl] ; pitchbend jr z, .checkVibratoDelay - jp Music1f_ApplyPitchBend + jp Audio3_ApplyPitchBend .checkVibratoDelay ld hl, wc04e ; vibrato delay add hl, bc @@ -141,14 +141,14 @@ Music1f_ApplyMusicAffects: ; 7d1ac (1f:51ac) .done ld d, a ld b, $3 - call Music1f_7d8ac + call Audio3_7d8ac ld [hl], d ret ; this routine executes all music commands that take up no time, ; like tempo changes, duty changes etc. and doesn't return ; until the first note is reached -Music1f_PlayNextNote: ; 7d244 (1f:5244) +Audio3_PlayNextNote: ; 7d244 (1f:5244) ld hl, wc06e add hl, bc ld a, [hl] @@ -159,14 +159,14 @@ Music1f_PlayNextNote: ; 7d244 (1f:5244) add hl, bc res 4, [hl] res 5, [hl] - call Music1f_endchannel + call Audio3_endchannel ret -Music1f_endchannel: ; 7d25a (1f:525a) - call Music1f_GetNextMusicByte +Audio3_endchannel: ; 7d25a (1f:525a) + call Audio3_GetNextMusicByte ld d, a cp $ff ; is this command an endchannel? - jp nz, Music1f_callchannel ; no + jp nz, Audio3_callchannel ; no ld b, $0 ; yes ld hl, wc02e add hl, bc @@ -216,7 +216,7 @@ Music1f_endchannel: ; 7d25a (1f:525a) inc de ld a, [de] ld [hl], a ; loads channel address to return to - jp Music1f_endchannel + jp Audio3_endchannel .asm_7d2b3 ld hl, Unknown_7db93 add hl, bc @@ -238,7 +238,7 @@ Music1f_endchannel: ; 7d25a (1f:525a) ld a, c cp CH4 jr z, .asm_7d2d9 - call Music1f_7d73b + call Audio3_7d73b ret c .asm_7d2d9 ld a, [wc005] @@ -251,12 +251,12 @@ Music1f_endchannel: ; 7d25a (1f:525a) ld [hl], b ret -Music1f_callchannel: ; 7d2e8 (1f:52e8) +Audio3_callchannel: ; 7d2e8 (1f:52e8) cp $fd ; is this command a callchannel? - jp nz, Music1f_loopchannel ; no - call Music1f_GetNextMusicByte ; yes + jp nz, Audio3_loopchannel ; no + call Audio3_GetNextMusicByte ; yes push af - call Music1f_GetNextMusicByte + call Audio3_GetNextMusicByte ld d, a pop af ld e, a @@ -286,12 +286,12 @@ Music1f_callchannel: ; 7d2e8 (1f:52e8) ld hl, wc02e add hl, bc set 1, [hl] ; set the call flag - jp Music1f_endchannel + jp Audio3_endchannel -Music1f_loopchannel: ; 7d31d (1f:531d) +Audio3_loopchannel: ; 7d31d (1f:531d) cp $fe ; is this command a loopchannel? - jp nz, Music1f_notetype ; no - call Music1f_GetNextMusicByte ; yes + jp nz, Audio3_notetype ; no + call Audio3_GetNextMusicByte ; yes ld e, a and a jr z, .infiniteLoop @@ -303,17 +303,17 @@ Music1f_loopchannel: ; 7d31d (1f:531d) jr nz, .loopAgain ld a, $1 ; if no more loops to make ld [hl], a - call Music1f_GetNextMusicByte ; skip pointer - call Music1f_GetNextMusicByte - jp Music1f_endchannel + call Audio3_GetNextMusicByte ; skip pointer + call Audio3_GetNextMusicByte + jp Audio3_endchannel .loopAgain ; inc loop count inc a ld [hl], a ; fall through .infiniteLoop ; overwrite current address with pointer - call Music1f_GetNextMusicByte + call Audio3_GetNextMusicByte push af - call Music1f_GetNextMusicByte + call Audio3_GetNextMusicByte ld b, a ld d, $0 ld a, c @@ -324,12 +324,12 @@ Music1f_loopchannel: ; 7d31d (1f:531d) pop af ld [hli], a ld [hl], b - jp Music1f_endchannel + jp Audio3_endchannel -Music1f_notetype: ; 7d358 (1f:5358) +Audio3_notetype: ; 7d358 (1f:5358) and $f0 cp $d0 ; is this command a notetype? - jp nz, Music1f_toggleperfectpitch ; no + jp nz, Audio3_toggleperfectpitch ; no ld a, d ; yes and $f ld b, $0 @@ -339,7 +339,7 @@ Music1f_notetype: ; 7d358 (1f:5358) ld a, c cp CH3 jr z, .noiseChannel ; noise channel has 0 params - call Music1f_GetNextMusicByte + call Audio3_GetNextMusicByte ld d, a ld a, c cp CH2 @@ -368,24 +368,24 @@ Music1f_notetype: ; 7d358 (1f:5358) add hl, bc ld [hl], d .noiseChannel - jp Music1f_endchannel + jp Audio3_endchannel -Music1f_toggleperfectpitch: ; 7d397 (1f:5397) +Audio3_toggleperfectpitch: ; 7d397 (1f:5397) ld a, d cp $e8 ; is this command a toggleperfectpitch? - jr nz, Music1f_vibrato ; no + jr nz, Audio3_vibrato ; no ld b, $0 ; yes ld hl, wc02e add hl, bc ld a, [hl] xor $1 ld [hl], a ; flip bit 0 of wc02e - jp Music1f_endchannel + jp Audio3_endchannel -Music1f_vibrato: ; 7d3a9 (1f:53a9) +Audio3_vibrato: ; 7d3a9 (1f:53a9) cp $ea ; is this command a vibrato? - jr nz, Music1f_pitchbend ; no - call Music1f_GetNextMusicByte ; yes + jr nz, Audio3_pitchbend ; no + call Audio3_GetNextMusicByte ; yes ld b, $0 ld hl, wc04e add hl, bc @@ -393,7 +393,7 @@ Music1f_vibrato: ; 7d3a9 (1f:53a9) ld hl, wc06e add hl, bc ld [hl], a ; store delay - call Music1f_GetNextMusicByte + call Audio3_GetNextMusicByte ld d, a and $f0 swap a @@ -414,24 +414,24 @@ Music1f_vibrato: ; 7d3a9 (1f:53a9) swap a or d ld [hl], a ; store depth as both high and low nibbles - jp Music1f_endchannel + jp Audio3_endchannel -Music1f_pitchbend: ; 7d3e1 (1f:53e1) +Audio3_pitchbend: ; 7d3e1 (1f:53e1) cp $eb ; is this command a pitchbend? - jr nz, Music1f_duty ; no - call Music1f_GetNextMusicByte ; yes + jr nz, Audio3_duty ; no + call Audio3_GetNextMusicByte ; yes ld b, $0 ld hl, wc076 add hl, bc ld [hl], a ; store first param - call Music1f_GetNextMusicByte + call Audio3_GetNextMusicByte ld d, a and $f0 swap a ld b, a ld a, d and $f - call Music1f_7d8cc + call Audio3_7d8cc ld b, $0 ld hl, wc0a6 add hl, bc @@ -443,14 +443,14 @@ Music1f_pitchbend: ; 7d3e1 (1f:53e1) ld hl, wc02e add hl, bc set 4, [hl] ; set pitchbend flag - call Music1f_GetNextMusicByte + call Audio3_GetNextMusicByte ld d, a - jp Music1f_notelength + jp Audio3_notelength -Music1f_duty: ; 7d419 (1f:5419) +Audio3_duty: ; 7d419 (1f:5419) cp $ec ; is this command a duty? - jr nz, Music1f_tempo ; no - call Music1f_GetNextMusicByte ; yes + jr nz, Audio3_tempo ; no + call Audio3_GetNextMusicByte ; yes rrca rrca and $c0 @@ -458,17 +458,17 @@ Music1f_duty: ; 7d419 (1f:5419) ld hl, wc03e add hl, bc ld [hl], a ; store duty - jp Music1f_endchannel + jp Audio3_endchannel -Music1f_tempo: ; 7d42e (1f:542e) +Audio3_tempo: ; 7d42e (1f:542e) cp $ed ; is this command a tempo? - jr nz, Music1f_stereopanning ; no + jr nz, Audio3_stereopanning ; no ld a, c ; yes cp CH4 jr nc, .sfxChannel - call Music1f_GetNextMusicByte + call Audio3_GetNextMusicByte ld [wc0e8], a ; store first param - call Music1f_GetNextMusicByte + call Audio3_GetNextMusicByte ld [wc0e9], a ; store second param xor a ld [wc0ce], a ; clear RAM @@ -477,9 +477,9 @@ Music1f_tempo: ; 7d42e (1f:542e) ld [wc0d1], a jr .musicChannelDone .sfxChannel - call Music1f_GetNextMusicByte + call Audio3_GetNextMusicByte ld [wc0ea], a ; store first param - call Music1f_GetNextMusicByte + call Audio3_GetNextMusicByte ld [wc0eb], a ; store second param xor a ld [wc0d2], a ; clear RAM @@ -487,22 +487,22 @@ Music1f_tempo: ; 7d42e (1f:542e) ld [wc0d4], a ld [wc0d5], a .musicChannelDone - jp Music1f_endchannel + jp Audio3_endchannel -Music1f_stereopanning: ; 7d46e (1f:546e) +Audio3_stereopanning: ; 7d46e (1f:546e) cp $ee ; is this command a stereopanning? - jr nz, Music1f_unknownmusic0xef ; no - call Music1f_GetNextMusicByte ; yes + jr nz, Audio3_unknownmusic0xef ; no + call Audio3_GetNextMusicByte ; yes ld [wc004], a ; store panning - jp Music1f_endchannel + jp Audio3_endchannel ; this appears to never be used -Music1f_unknownmusic0xef: ; 7d47b (1f:547b) +Audio3_unknownmusic0xef: ; 7d47b (1f:547b) cp $ef ; is this command an unknownmusic0xef? - jr nz, Music1f_dutycycle ; no - call Music1f_GetNextMusicByte ; yes + jr nz, Audio3_dutycycle ; no + call Audio3_GetNextMusicByte ; yes push bc - call Music1f_7d8ea + call Audio3_7d8ea pop bc ld a, [wc003] and a @@ -512,12 +512,12 @@ Music1f_unknownmusic0xef: ; 7d47b (1f:547b) xor a ld [wc02d], a .skip - jp Music1f_endchannel + jp Audio3_endchannel -Music1f_dutycycle: ; 7d49a (1f:549a) +Audio3_dutycycle: ; 7d49a (1f:549a) cp $fc ; is this command a dutycycle? - jr nz, Music1f_volume ; no - call Music1f_GetNextMusicByte ; yes + jr nz, Audio3_volume ; no + call Audio3_GetNextMusicByte ; yes ld b, $0 ld hl, wc046 add hl, bc @@ -529,48 +529,48 @@ Music1f_dutycycle: ; 7d49a (1f:549a) ld hl, wc02e add hl, bc set 6, [hl] ; set duty flag - jp Music1f_endchannel + jp Audio3_endchannel -Music1f_volume: ; 7d4b8 (1f:54b8) +Audio3_volume: ; 7d4b8 (1f:54b8) cp $f0 ; is this command a volume? - jr nz, Music1f_executemusic ; no - call Music1f_GetNextMusicByte ; yes + jr nz, Audio3_executemusic ; no + call Audio3_GetNextMusicByte ; yes ld [$ff24], a ; store volume - jp Music1f_endchannel + jp Audio3_endchannel -Music1f_executemusic: ; 7d4c4 (1f:54c4) +Audio3_executemusic: ; 7d4c4 (1f:54c4) cp $f8 ; is this command an executemusic? - jr nz, Music1f_octave ; no + jr nz, Audio3_octave ; no ld b, $0 ; yes ld hl, wc036 add hl, bc set 0, [hl] - jp Music1f_endchannel + jp Audio3_endchannel -Music1f_octave: ; 7d4d3 (1f:54d3) +Audio3_octave: ; 7d4d3 (1f:54d3) and $f0 cp $e0 ; is this command an octave? - jr nz, Music1f_unknownsfx0x20 ; no + jr nz, Audio3_unknownsfx0x20 ; no ld hl, wc0d6 ; yes ld b, $0 add hl, bc ld a, d and $f ld [hl], a ; store low nibble as octave - jp Music1f_endchannel + jp Audio3_endchannel -Music1f_unknownsfx0x20: ; 7d4e6 (1f:54e6) +Audio3_unknownsfx0x20: ; 7d4e6 (1f:54e6) cp $20 ; is this command an unknownsfx0x20? - jr nz, Music1f_unknownsfx0x10 ; no + jr nz, Audio3_unknownsfx0x10 ; no ld a, c cp CH3 ; is this a noise or sfx channel? - jr c, Music1f_unknownsfx0x10 ; no + jr c, Audio3_unknownsfx0x10 ; no ld b, $0 ld hl, wc036 add hl, bc bit 0, [hl] - jr nz, Music1f_unknownsfx0x10 ; no - call Music1f_notelength ; yes + jr nz, Audio3_unknownsfx0x10 ; no + call Audio3_notelength ; yes ld d, a ld b, $0 ld hl, wc03e @@ -579,56 +579,56 @@ Music1f_unknownsfx0x20: ; 7d4e6 (1f:54e6) or d ld d, a ld b, $1 - call Music1f_7d8ac + call Audio3_7d8ac ld [hl], d - call Music1f_GetNextMusicByte + call Audio3_GetNextMusicByte ld d, a ld b, $2 - call Music1f_7d8ac + call Audio3_7d8ac ld [hl], d - call Music1f_GetNextMusicByte + call Audio3_GetNextMusicByte ld e, a ld a, c cp CH7 ld a, $0 jr z, .sfxNoiseChannel ; only two params for noise channel push de - call Music1f_GetNextMusicByte + call Audio3_GetNextMusicByte pop de .sfxNoiseChannel ld d, a push de - call Music1f_7d69d - call Music1f_7d66c + call Audio3_7d69d + call Audio3_7d66c pop de - call Music1f_7d6bf + call Audio3_7d6bf ret -Music1f_unknownsfx0x10: ; 7d533 (1f:5533) +Audio3_unknownsfx0x10: ; 7d533 (1f:5533) ld a, c cp CH4 - jr c, Music1f_note ; if not a sfx + jr c, Audio3_note ; if not a sfx ld a, d cp $10 ; is this command an unknownsfx0x10? - jr nz, Music1f_note ; no + jr nz, Audio3_note ; no ld b, $0 ld hl, wc036 add hl, bc bit 0, [hl] - jr nz, Music1f_note ; no - call Music1f_GetNextMusicByte ; yes + jr nz, Audio3_note ; no + call Audio3_GetNextMusicByte ; yes ld [$ff10], a - jp Music1f_endchannel + jp Audio3_endchannel -Music1f_note: ; 7d54f (1f:554f) +Audio3_note: ; 7d54f (1f:554f) ld a, c cp CH3 - jr nz, Music1f_notelength ; if not noise channel + jr nz, Audio3_notelength ; if not noise channel ld a, d and $f0 cp $b0 ; is this command a dnote? - jr z, Music1f_dnote ; yes - jr nc, Music1f_notelength ; no + jr z, Audio3_dnote ; yes + jr nc, Audio3_notelength ; no swap a ld b, a ld a, d @@ -639,24 +639,24 @@ Music1f_note: ; 7d54f (1f:554f) push bc jr asm_7d571 -Music1f_dnote: ; 7d569 (1f:5569) +Audio3_dnote: ; 7d569 (1f:5569) ld a, d and $f push af push bc - call Music1f_GetNextMusicByte ; get dnote instrument + call Audio3_GetNextMusicByte ; get dnote instrument asm_7d571 ld d, a ld a, [wc003] and a jr nz, .asm_7d57c ld a, d - call Music1f_7d8ea + call Audio3_7d8ea .asm_7d57c pop bc pop de -Music1f_notelength: ; 7d57e (1f:557e) +Audio3_notelength: ; 7d57e (1f:557e) ld a, d push af and $f @@ -668,7 +668,7 @@ Music1f_notelength: ; 7d57e (1f:557e) add hl, bc ld a, [hl] ld l, b - call Music1f_7d8bb + call Audio3_7d8bb ld a, c cp CH4 jr nc, .sfxChannel @@ -682,7 +682,7 @@ Music1f_notelength: ; 7d57e (1f:557e) ld e, $0 cp CH7 jr z, .skip ; if noise channel - call Music1f_7d707 + call Audio3_7d707 ld a, [wc0ea] ld d, a ld a, [wc0eb] @@ -693,7 +693,7 @@ Music1f_notelength: ; 7d57e (1f:557e) ld hl, wc0ce add hl, bc ld l, [hl] - call Music1f_7d8bb + call Audio3_7d8bb ld e, l ld d, h ld hl, wc0ce @@ -706,15 +706,15 @@ Music1f_notelength: ; 7d57e (1f:557e) ld hl, wc036 add hl, bc bit 0, [hl] - jr nz, Music1f_notepitch + jr nz, Audio3_notepitch ld hl, wc02e add hl, bc bit 2, [hl] - jr z, Music1f_notepitch + jr z, Audio3_notepitch pop hl ret -Music1f_notepitch: ; 7d5dc (1f:55dc) +Audio3_notepitch: ; 7d5dc (1f:55dc) pop af and $f0 cp $c0 ; compare to rest @@ -744,7 +744,7 @@ Music1f_notepitch: ; 7d5dc (1f:55dc) jr .quit .notSfxChannel3 ld b, $2 - call Music1f_7d8ac + call Audio3_7d8ac ld a, $8 ld [hli], a inc hl @@ -758,13 +758,13 @@ Music1f_notepitch: ; 7d5dc (1f:55dc) ld hl, wc0d6 add hl, bc ld b, [hl] - call Music1f_7d8cc + call Audio3_7d8cc ld b, $0 ld hl, wc02e add hl, bc bit 4, [hl] jr z, .asm_7d62c - call Music1f_7d803 + call Audio3_7d803 .asm_7d62c push de ld a, c @@ -787,10 +787,10 @@ Music1f_notepitch: ; 7d5dc (1f:55dc) add hl, bc ld d, [hl] ld b, $2 - call Music1f_7d8ac + call Audio3_7d8ac ld [hl], d - call Music1f_7d69d - call Music1f_7d66c + call Audio3_7d69d + call Audio3_7d66c pop de ld b, $0 ld hl, wc02e @@ -804,10 +804,10 @@ Music1f_notepitch: ; 7d5dc (1f:55dc) ld hl, wc066 add hl, bc ld [hl], e - call Music1f_7d6bf + call Audio3_7d6bf ret -Music1f_7d66c: ; 7d66c (1f:566c) +Audio3_7d66c: ; 7d66c (1f:566c) ld b, $0 ld hl, Unknown_7db9b add hl, bc @@ -841,7 +841,7 @@ Music1f_7d66c: ; 7d66c (1f:566c) ld [$ff25], a ret -Music1f_7d69d: ; 7d69d (1f:569d) +Audio3_7d69d: ; 7d69d (1f:569d) ld b, $0 ld hl, wc0b6 add hl, bc @@ -861,11 +861,11 @@ Music1f_7d69d: ; 7d69d (1f:569d) ld d, a .channel3 ld b, $1 - call Music1f_7d8ac + call Audio3_7d8ac ld [hl], d ret -Music1f_7d6bf: ; 7d6bf (1f:56bf) +Audio3_7d6bf: ; 7d6bf (1f:56bf) ld a, c cp CH2 jr z, .channel3 @@ -883,7 +883,7 @@ Music1f_7d6bf: ; 7d6bf (1f:56bf) add a ld d, $0 ld e, a - ld hl, Music1f_WavePointers + ld hl, Audio3_WavePointers add hl, de ld e, [hl] inc hl @@ -909,15 +909,15 @@ Music1f_7d6bf: ; 7d6bf (1f:56bf) and $c7 ld d, a ld b, $3 - call Music1f_7d8ac + call Audio3_7d8ac ld [hl], e inc hl ld [hl], d - call Music1f_7d729 + call Audio3_7d729 ret -Music1f_7d707: ; 7d707 (1f:5707) - call Music1f_7d759 +Audio3_7d707: ; 7d707 (1f:5707) + call Audio3_7d759 jr nc, .asm_7d71f ld d, $0 ld a, [wc0f2] @@ -937,8 +937,8 @@ Music1f_7d707: ; 7d707 (1f:5707) .asm_7d728 ret -Music1f_7d729: ; 7d729 (1f:5729) - call Music1f_7d759 +Audio3_7d729: ; 7d729 (1f:5729) + call Audio3_7d759 jr nc, .asm_7d73a ld a, [wc0f1] add e @@ -953,8 +953,8 @@ Music1f_7d729: ; 7d729 (1f:5729) .asm_7d73a ret -Music1f_7d73b: ; 7d73b (1f:573b) - call Music1f_7d759 +Audio3_7d73b: ; 7d73b (1f:573b) + call Audio3_7d759 jr nc, .asm_7d756 ld hl, wc006 ld e, c @@ -976,7 +976,7 @@ Music1f_7d73b: ; 7d73b (1f:573b) ccf ret -Music1f_7d759: ; 7d759 (1f:5759) +Audio3_7d759: ; 7d759 (1f:5759) ld a, [wc02a] cp $14 jr nc, .asm_7d762 @@ -993,7 +993,7 @@ Music1f_7d759: ; 7d759 (1f:5759) scf ret -Music1f_ApplyPitchBend: ; 7d76d (1f:576d) +Audio3_ApplyPitchBend: ; 7d76d (1f:576d) ld hl, wc02e add hl, bc bit 5, [hl] @@ -1083,7 +1083,7 @@ Music1f_ApplyPitchBend: ; 7d76d (1f:576d) add hl, bc ld [hl], d ld b, $3 - call Music1f_7d8ac + call Audio3_7d8ac ld a, e ld [hli], a ld [hl], d @@ -1095,7 +1095,7 @@ Music1f_ApplyPitchBend: ; 7d76d (1f:576d) res 5, [hl] ret -Music1f_7d803: ; 7d803 (1f:5803) +Audio3_7d803: ; 7d803 (1f:5803) ld hl, wc096 add hl, bc ld [hl], d @@ -1184,7 +1184,7 @@ Music1f_7d803: ; 7d803 (1f:5803) ld [hl], a ret -Music1f_ApplyDutyCycle: ; 7d881 (1f:5881) +Audio3_ApplyDutyCycle: ; 7d881 (1f:5881) ld b, $0 ld hl, wc046 add hl, bc @@ -1195,14 +1195,14 @@ Music1f_ApplyDutyCycle: ; 7d881 (1f:5881) and $c0 ld d, a ld b, $1 - call Music1f_7d8ac + call Audio3_7d8ac ld a, [hl] and $3f or d ld [hl], a ret -Music1f_GetNextMusicByte: ; 7d899 (1f:5899) +Audio3_GetNextMusicByte: ; 7d899 (1f:5899) ld d, $0 ld a, c add a @@ -1220,7 +1220,7 @@ Music1f_GetNextMusicByte: ; 7d899 (1f:5899) ld [hl], d ret -Music1f_7d8ac: ; 7d8ac (1f:58ac) +Audio3_7d8ac: ; 7d8ac (1f:58ac) ld a, c ld hl, Unknown_7db8b add l @@ -1234,7 +1234,7 @@ Music1f_7d8ac: ; 7d8ac (1f:58ac) ld h, $ff ret -Music1f_7d8bb: ; 7d8bb (1f:58bb) +Audio3_7d8bb: ; 7d8bb (1f:58bb) ld h, $0 .loop srl a @@ -1249,13 +1249,13 @@ Music1f_7d8bb: ; 7d8bb (1f:58bb) .done ret -Music1f_7d8cc: ; 7d8cc (1f:58cc) +Audio3_7d8cc: ; 7d8cc (1f:58cc) ld h, $0 ld l, a add hl, hl ld d, h ld e, l - ld hl, Music1f_Pitches + ld hl, Audio3_Pitches add hl, de ld e, [hl] inc hl @@ -1274,16 +1274,16 @@ Music1f_7d8cc: ; 7d8cc (1f:58cc) ld d, a ret -Music1f_7d8ea:: ; 7d8ea (1f:58ea) +Audio3_7d8ea:: ; 7d8ea (1f:58ea) ld [wc001], a cp $ff - jp z, Music1f_7daa8 + jp z, Audio3_7daa8 cp $c2 - jp z, Music1f_7d9c2 - jp c, Music1f_7d9c2 + jp z, Audio3_7d9c2 + jp c, Audio3_7d9c2 cp $fe jr z, .asm_7d901 - jp nc, Music1f_7d9c2 + jp nc, Audio3_7d9c2 .asm_7d901 xor a ld [wc000], a @@ -1293,53 +1293,53 @@ Music1f_7d8ea:: ; 7d8ea (1f:58ea) ld [wc0e7], a ld d, $8 ld hl, wc016 - call FillMusicRAM1f + call FillAudioRAM3 ld hl, wc006 - call FillMusicRAM1f + call FillAudioRAM3 ld d, $4 ld hl, wc026 - call FillMusicRAM1f + call FillAudioRAM3 ld hl, wc02e - call FillMusicRAM1f + call FillAudioRAM3 ld hl, wc03e - call FillMusicRAM1f + call FillAudioRAM3 ld hl, wc046 - call FillMusicRAM1f + call FillAudioRAM3 ld hl, wc04e - call FillMusicRAM1f + call FillAudioRAM3 ld hl, wc056 - call FillMusicRAM1f + call FillAudioRAM3 ld hl, wc05e - call FillMusicRAM1f + call FillAudioRAM3 ld hl, wc066 - call FillMusicRAM1f + call FillAudioRAM3 ld hl, wc06e - call FillMusicRAM1f + call FillAudioRAM3 ld hl, wc036 - call FillMusicRAM1f + call FillAudioRAM3 ld hl, wc076 - call FillMusicRAM1f + call FillAudioRAM3 ld hl, wc07e - call FillMusicRAM1f + call FillAudioRAM3 ld hl, wc086 - call FillMusicRAM1f + call FillAudioRAM3 ld hl, wc08e - call FillMusicRAM1f + call FillAudioRAM3 ld hl, wc096 - call FillMusicRAM1f + call FillAudioRAM3 ld hl, wc09e - call FillMusicRAM1f + call FillAudioRAM3 ld hl, wc0a6 - call FillMusicRAM1f + call FillAudioRAM3 ld hl, wc0ae - call FillMusicRAM1f + call FillAudioRAM3 ld a, $1 ld hl, wc0be - call FillMusicRAM1f + call FillAudioRAM3 ld hl, wc0b6 - call FillMusicRAM1f + call FillAudioRAM3 ld hl, wc0c6 - call FillMusicRAM1f + call FillAudioRAM3 ld [wc0e8], a ld a, $ff ld [wc004], a @@ -1355,16 +1355,16 @@ Music1f_7d8ea:: ; 7d8ea (1f:58ea) ld [$ff1a], a ld a, $77 ld [$ff24], a - jp Music1f_7db03 + jp Audio3_7db03 -Music1f_7d9c2: ; 7d9c2 (1f:59c2) +Audio3_7d9c2: ; 7d9c2 (1f:59c2) ld l, a ld e, a ld h, $0 ld d, h add hl, hl add hl, de - ld de, SFX_Headers_1f + ld de, SFX_Headers_3 add hl, de ld a, h ld [wc0ec], a @@ -1504,11 +1504,11 @@ Music1f_7d9c2: ; 7d9c2 (1f:59c2) .asm_7da9f ld a, c and a - jp z, Music1f_7db03 + jp z, Audio3_7db03 dec c jp .asm_7d9db -Music1f_7daa8: ; 7daa8 (1f:5aa8) +Audio3_7daa8: ; 7daa8 (1f:5aa8) ld a, $80 ld [$ff26], a ld [$ff1a], a @@ -1536,11 +1536,11 @@ Music1f_7daa8: ; 7daa8 (1f:5aa8) ld [wc0e7], a ld d, $a0 ld hl, wc006 - call FillMusicRAM1f + call FillAudioRAM3 ld a, $1 ld d, $18 ld hl, wc0b6 - call FillMusicRAM1f + call FillAudioRAM3 ld [wc0e8], a ld [wc0ea], a ld a, $ff @@ -1548,7 +1548,7 @@ Music1f_7daa8: ; 7daa8 (1f:5aa8) ret ; fills d bytes at hl with a -FillMusicRAM1f: ; 7dafd (1f:5afd) +FillAudioRAM3: ; 7dafd (1f:5afd) ld b, d .loop ld [hli], a @@ -1556,7 +1556,7 @@ FillMusicRAM1f: ; 7dafd (1f:5afd) jr nz, .loop ret -Music1f_7db03: ; 7db03 (1f:5b03) +Audio3_7db03: ; 7db03 (1f:5b03) ld a, [wc001] ld l, a ld e, a @@ -1564,7 +1564,7 @@ Music1f_7db03: ; 7db03 (1f:5b03) ld d, h add hl, hl add hl, de - ld de, SFX_Headers_1f + ld de, SFX_Headers_3 add hl, de ld e, l ld d, h @@ -1637,7 +1637,7 @@ Music1f_7db03: ; 7db03 (1f:5b03) ld [hli], a ld [hl], a ld hl, wc012 ; sfx noise channel pointer - ld de, Noise1f_endchannel + ld de, Noise3_endchannel ld [hl], e inc hl ld [hl], d ; overwrite pointer to point to endchannel @@ -1651,7 +1651,7 @@ Music1f_7db03: ; 7db03 (1f:5b03) .asm_7db89 ret -Noise1f_endchannel: ; 7db8a (1f:5b8a) +Noise3_endchannel: ; 7db8a (1f:5b8a) endchannel Unknown_7db8b: ; 7db8b (1f:5b8b) @@ -1666,7 +1666,7 @@ Unknown_7db9b: ; 7db9b (1f:5b9b) db $11, $22, $44, $88 ; channels 0-3 db $11, $22, $44, $88 ; channels 4-7 -Music1f_Pitches: ; 7dba3 (1f:5ba3) +Audio3_Pitches: ; 7dba3 (1f:5ba3) dw $F82C ; C_ dw $F89D ; C# dw $F907 ; D_ diff --git a/audio/headers/musicheaders02.asm b/audio/headers/musicheaders02.asm deleted file mode 100755 index a6449436..00000000 --- a/audio/headers/musicheaders02.asm +++ /dev/null @@ -1,184 +0,0 @@ -Music_PalletTown:: ; 822e (2:422e) - db ( $80 | CH0 ) - dw Music_PalletTown_Ch1 - db CH1 - dw Music_PalletTown_Ch2 - db CH2 - dw Music_PalletTown_Ch3 - -Music_Pokecenter:: ; 8237 (2:4237) - db ( $80 | CH0 ) - dw Music_Pokecenter_Ch1 - db CH1 - dw Music_Pokecenter_Ch2 - db CH2 - dw Music_Pokecenter_Ch3 - -Music_Gym:: ; 8240 (2:4240) - db ( $80 | CH0 ) - dw Music_Gym_Ch1 - db CH1 - dw Music_Gym_Ch2 - db CH2 - dw Music_Gym_Ch3 - -; Viridian City, Pewter City, Saffron City -Music_Cities1:: ; 8249 (2:4249) - db ( $C0 | CH0 ) - dw Music_Cities1_Ch1 - db CH1 - dw Music_Cities1_Ch2 - db CH2 - dw Music_Cities1_Ch3 - db CH3 - dw Music_Cities1_Ch4 - -; Cerulean City, Fuchsia City -Music_Cities2:: ; 8255 (2:4255) - db ( $80 | CH0 ) - dw Music_Cities2_Ch1 - db CH1 - dw Music_Cities2_Ch2 - db CH2 - dw Music_Cities2_Ch3 - -Music_Celadon:: ; 825e (2:425e) - db ( $80 | CH0 ) - dw Music_Celadon_Ch1 - db CH1 - dw Music_Celadon_Ch2 - db CH2 - dw Music_Celadon_Ch3 - -Music_Cinnabar:: ; 8267 (2:4267) - db ( $80 | CH0 ) - dw Music_Cinnabar_Ch1 - db CH1 - dw Music_Cinnabar_Ch2 - db CH2 - dw Music_Cinnabar_Ch3 - -Music_Vermilion:: ; 8270 (2:4270) - db ( $C0 | CH0 ) - dw Music_Vermilion_Ch1 - db CH1 - dw Music_Vermilion_Ch2 - db CH2 - dw Music_Vermilion_Ch3 - db CH3 - dw Music_Vermilion_Ch4 - -Music_Lavender:: ; 827c (2:427c) - db ( $C0 | CH0 ) - dw Music_Lavender_Ch1 - db CH1 - dw Music_Lavender_Ch2 - db CH2 - dw Music_Lavender_Ch3 - db CH3 - dw Music_Lavender_Ch4 - -Music_SSAnne:: ; 8288 (2:4288) - db ( $80 | CH0 ) - dw Music_SSAnne_Ch1 - db CH1 - dw Music_SSAnne_Ch2 - db CH2 - dw Music_SSAnne_Ch3 - -Music_MeetProfOak:: ; 8291 (2:4291) - db ( $80 | CH0 ) - dw Music_MeetProfOak_Ch1 - db CH1 - dw Music_MeetProfOak_Ch2 - db CH2 - dw Music_MeetProfOak_Ch3 - -Music_MeetRival:: ; 829a (2:429a) - db ( $80 | CH0 ) - dw Music_MeetRival_Ch1 - db CH1 - dw Music_MeetRival_Ch2 - db CH2 - dw Music_MeetRival_Ch3 - -Music_MuseumGuy:: ; 82a3 (2:42a3) - db ( $C0 | CH0 ) - dw Music_MuseumGuy_Ch1 - db CH1 - dw Music_MuseumGuy_Ch2 - db CH2 - dw Music_MuseumGuy_Ch3 - db CH3 - dw Music_MuseumGuy_Ch4 - -Music_SafariZone:: ; 82af (2:42af) - db ( $80 | CH0 ) - dw Music_SafariZone_Ch1 - db CH1 - dw Music_SafariZone_Ch2 - db CH2 - dw Music_SafariZone_Ch3 - -Music_PkmnHealed:: ; 82b8 (2:42b8) - db ( $80 | CH0 ) - dw Music_PkmnHealed_Ch1 - db CH1 - dw Music_PkmnHealed_Ch2 - db CH2 - dw Music_PkmnHealed_Ch3 - -; Routes 1 and 2 -Music_Routes1:: ; 82c1 (2:42c1) - db ( $C0 | CH0 ) - dw Music_Routes1_Ch1 - db CH1 - dw Music_Routes1_Ch2 - db CH2 - dw Music_Routes1_Ch3 - db CH3 - dw Music_Routes1_Ch4 - -; Routes 24 and 25 -Music_Routes2:: ; 82cd (2:42cd) - db ( $C0 | CH0 ) - dw Music_Routes2_Ch1 - db CH1 - dw Music_Routes2_Ch2 - db CH2 - dw Music_Routes2_Ch3 - db CH3 - dw Music_Routes2_Ch4 - -; Routes 3, 4, 5, 6, 7, 8, 9, 10, 16, 17, 18, 19, 20, 21, 22 -Music_Routes3:: ; 82d9 (2:42d9) - db ( $C0 | CH0 ) - dw Music_Routes3_Ch1 - db CH1 - dw Music_Routes3_Ch2 - db CH2 - dw Music_Routes3_Ch3 - db CH3 - dw Music_Routes3_Ch4 - -; Routes 11, 12, 13, 14, 15 -Music_Routes4:: ; 82d5 (2:42d5) - db ( $C0 | CH0 ) - dw Music_Routes4_Ch1 - db CH1 - dw Music_Routes4_Ch2 - db CH2 - dw Music_Routes4_Ch3 - db CH3 - dw Music_Routes4_Ch4 - -; Route 23, Indigo Plateau -Music_IndigoPlateau:: ; 82f1 (2:42f1) - db ( $C0 | CH0 ) - dw Music_IndigoPlateau_Ch1 - db CH1 - dw Music_IndigoPlateau_Ch2 - db CH2 - dw Music_IndigoPlateau_Ch3 - db CH3 - dw Music_IndigoPlateau_Ch4 diff --git a/audio/headers/musicheaders08.asm b/audio/headers/musicheaders08.asm deleted file mode 100755 index 85cf2825..00000000 --- a/audio/headers/musicheaders08.asm +++ /dev/null @@ -1,57 +0,0 @@ -Music_GymLeaderBattle:: ; 202be (8:42be) - db ( $80 | CH0 ) - dw Music_GymLeaderBattle_Ch1 - db CH1 - dw Music_GymLeaderBattle_Ch2 - db CH2 - dw Music_GymLeaderBattle_Ch3 - -Music_TrainerBattle:: ; 202c7 (8:42c7) - db ( $80 | CH0 ) - dw Music_TrainerBattle_Ch1 - db CH1 - dw Music_TrainerBattle_Ch2 - db CH2 - dw Music_TrainerBattle_Ch3 - -Music_WildBattle:: ; 202d0 (8:42d0) - db ( $80 | CH0 ) - dw Music_WildBattle_Ch1 - db CH1 - dw Music_WildBattle_Ch2 - db CH2 - dw Music_WildBattle_Ch3 - -Music_FinalBattle:: ; 202d9 (8:42d9) - db ( $80 | CH0 ) - dw Music_FinalBattle_Ch1 - db CH1 - dw Music_FinalBattle_Ch2 - db CH2 - dw Music_FinalBattle_Ch3 - -Music_DefeatedTrainer:: ; 202e2 (8:42e2) - db ( $80 | CH0 ) - dw Music_DefeatedTrainer_Ch1 - db CH1 - dw Music_DefeatedTrainer_Ch2 - db CH2 - dw Music_DefeatedTrainer_Ch3 - -Music_DefeatedWildMon:: ; 202eb (8:42eb) - db ( $80 | CH0 ) - dw Music_DefeatedWildMon_Ch1 - db CH1 - dw Music_DefeatedWildMon_Ch2 - db CH2 - dw Music_DefeatedWildMon_Ch3 - -Music_DefeatedGymLeader:: ; 202f4 (8:42f4) - db ( $80 | CH0 ) - dw Music_DefeatedGymLeader_Ch1 - db CH1 - dw Music_DefeatedGymLeader_Ch2 - db CH2 - dw Music_DefeatedGymLeader_Ch3 - -; 202fd diff --git a/audio/headers/musicheaders1.asm b/audio/headers/musicheaders1.asm new file mode 100755 index 00000000..a6449436 --- /dev/null +++ b/audio/headers/musicheaders1.asm @@ -0,0 +1,184 @@ +Music_PalletTown:: ; 822e (2:422e) + db ( $80 | CH0 ) + dw Music_PalletTown_Ch1 + db CH1 + dw Music_PalletTown_Ch2 + db CH2 + dw Music_PalletTown_Ch3 + +Music_Pokecenter:: ; 8237 (2:4237) + db ( $80 | CH0 ) + dw Music_Pokecenter_Ch1 + db CH1 + dw Music_Pokecenter_Ch2 + db CH2 + dw Music_Pokecenter_Ch3 + +Music_Gym:: ; 8240 (2:4240) + db ( $80 | CH0 ) + dw Music_Gym_Ch1 + db CH1 + dw Music_Gym_Ch2 + db CH2 + dw Music_Gym_Ch3 + +; Viridian City, Pewter City, Saffron City +Music_Cities1:: ; 8249 (2:4249) + db ( $C0 | CH0 ) + dw Music_Cities1_Ch1 + db CH1 + dw Music_Cities1_Ch2 + db CH2 + dw Music_Cities1_Ch3 + db CH3 + dw Music_Cities1_Ch4 + +; Cerulean City, Fuchsia City +Music_Cities2:: ; 8255 (2:4255) + db ( $80 | CH0 ) + dw Music_Cities2_Ch1 + db CH1 + dw Music_Cities2_Ch2 + db CH2 + dw Music_Cities2_Ch3 + +Music_Celadon:: ; 825e (2:425e) + db ( $80 | CH0 ) + dw Music_Celadon_Ch1 + db CH1 + dw Music_Celadon_Ch2 + db CH2 + dw Music_Celadon_Ch3 + +Music_Cinnabar:: ; 8267 (2:4267) + db ( $80 | CH0 ) + dw Music_Cinnabar_Ch1 + db CH1 + dw Music_Cinnabar_Ch2 + db CH2 + dw Music_Cinnabar_Ch3 + +Music_Vermilion:: ; 8270 (2:4270) + db ( $C0 | CH0 ) + dw Music_Vermilion_Ch1 + db CH1 + dw Music_Vermilion_Ch2 + db CH2 + dw Music_Vermilion_Ch3 + db CH3 + dw Music_Vermilion_Ch4 + +Music_Lavender:: ; 827c (2:427c) + db ( $C0 | CH0 ) + dw Music_Lavender_Ch1 + db CH1 + dw Music_Lavender_Ch2 + db CH2 + dw Music_Lavender_Ch3 + db CH3 + dw Music_Lavender_Ch4 + +Music_SSAnne:: ; 8288 (2:4288) + db ( $80 | CH0 ) + dw Music_SSAnne_Ch1 + db CH1 + dw Music_SSAnne_Ch2 + db CH2 + dw Music_SSAnne_Ch3 + +Music_MeetProfOak:: ; 8291 (2:4291) + db ( $80 | CH0 ) + dw Music_MeetProfOak_Ch1 + db CH1 + dw Music_MeetProfOak_Ch2 + db CH2 + dw Music_MeetProfOak_Ch3 + +Music_MeetRival:: ; 829a (2:429a) + db ( $80 | CH0 ) + dw Music_MeetRival_Ch1 + db CH1 + dw Music_MeetRival_Ch2 + db CH2 + dw Music_MeetRival_Ch3 + +Music_MuseumGuy:: ; 82a3 (2:42a3) + db ( $C0 | CH0 ) + dw Music_MuseumGuy_Ch1 + db CH1 + dw Music_MuseumGuy_Ch2 + db CH2 + dw Music_MuseumGuy_Ch3 + db CH3 + dw Music_MuseumGuy_Ch4 + +Music_SafariZone:: ; 82af (2:42af) + db ( $80 | CH0 ) + dw Music_SafariZone_Ch1 + db CH1 + dw Music_SafariZone_Ch2 + db CH2 + dw Music_SafariZone_Ch3 + +Music_PkmnHealed:: ; 82b8 (2:42b8) + db ( $80 | CH0 ) + dw Music_PkmnHealed_Ch1 + db CH1 + dw Music_PkmnHealed_Ch2 + db CH2 + dw Music_PkmnHealed_Ch3 + +; Routes 1 and 2 +Music_Routes1:: ; 82c1 (2:42c1) + db ( $C0 | CH0 ) + dw Music_Routes1_Ch1 + db CH1 + dw Music_Routes1_Ch2 + db CH2 + dw Music_Routes1_Ch3 + db CH3 + dw Music_Routes1_Ch4 + +; Routes 24 and 25 +Music_Routes2:: ; 82cd (2:42cd) + db ( $C0 | CH0 ) + dw Music_Routes2_Ch1 + db CH1 + dw Music_Routes2_Ch2 + db CH2 + dw Music_Routes2_Ch3 + db CH3 + dw Music_Routes2_Ch4 + +; Routes 3, 4, 5, 6, 7, 8, 9, 10, 16, 17, 18, 19, 20, 21, 22 +Music_Routes3:: ; 82d9 (2:42d9) + db ( $C0 | CH0 ) + dw Music_Routes3_Ch1 + db CH1 + dw Music_Routes3_Ch2 + db CH2 + dw Music_Routes3_Ch3 + db CH3 + dw Music_Routes3_Ch4 + +; Routes 11, 12, 13, 14, 15 +Music_Routes4:: ; 82d5 (2:42d5) + db ( $C0 | CH0 ) + dw Music_Routes4_Ch1 + db CH1 + dw Music_Routes4_Ch2 + db CH2 + dw Music_Routes4_Ch3 + db CH3 + dw Music_Routes4_Ch4 + +; Route 23, Indigo Plateau +Music_IndigoPlateau:: ; 82f1 (2:42f1) + db ( $C0 | CH0 ) + dw Music_IndigoPlateau_Ch1 + db CH1 + dw Music_IndigoPlateau_Ch2 + db CH2 + dw Music_IndigoPlateau_Ch3 + db CH3 + dw Music_IndigoPlateau_Ch4 diff --git a/audio/headers/musicheaders1f.asm b/audio/headers/musicheaders1f.asm deleted file mode 100755 index 7846e48f..00000000 --- a/audio/headers/musicheaders1f.asm +++ /dev/null @@ -1,158 +0,0 @@ -Music_TitleScreen:: ; 7c249 (1f:4249) - db ( $C0 | CH0 ) - dw Music_TitleScreen_Ch1 - db CH1 - dw Music_TitleScreen_Ch2 - db CH2 - dw Music_TitleScreen_Ch3 - db CH3 - dw Music_TitleScreen_Ch4 - -Music_Credits:: ; 7c255 (1f:4255) - db ( $80 | CH0 ) - dw Music_Credits_Ch1 - db CH1 - dw Music_Credits_Ch2 - db CH2 - dw Music_Credits_Ch3 - -Music_HallOfFame:: ; 7c25e (1f:425e) - db ( $80 | CH0 ) - dw Music_HallOfFame_Ch1 - db CH1 - dw Music_HallOfFame_Ch2 - db CH2 - dw Music_HallOfFame_Ch3 - -Music_OaksLab:: ; 7c267 (1f:4267) - db ( $80 | CH0 ) - dw Music_OaksLab_Ch1 - db CH1 - dw Music_OaksLab_Ch2 - db CH2 - dw Music_OaksLab_Ch3 - -Music_JigglypuffSong:: ; 7c270 (1f:4270) - db $40 - dw Music_JigglypuffSong_Ch1 - db CH1 - dw Music_JigglypuffSong_Ch2 - -Music_BikeRiding:: ; 7c276 (1f:4276) - db ( $C0 | CH0 ) - dw Music_BikeRiding_Ch1 - db CH1 - dw Music_BikeRiding_Ch2 - db CH2 - dw Music_BikeRiding_Ch3 - db CH3 - dw Music_BikeRiding_Ch4 - -Music_Surfing:: ; 7c282 (1f:4282) - db ( $80 | CH0 ) - dw Music_Surfing_Ch1 - db CH1 - dw Music_Surfing_Ch2 - db CH2 - dw Music_Surfing_Ch3 - -Music_GameCorner:: ; 7c28b (1f:428b) - db ( $80 | CH0 ) - dw Music_GameCorner_Ch1 - db CH1 - dw Music_GameCorner_Ch2 - db CH2 - dw Music_GameCorner_Ch3 - -Music_IntroBattle:: ; 7c294 (1f:4294) - db ( $C0 | CH0 ) - dw Music_IntroBattle_Ch1 - db CH1 - dw Music_IntroBattle_Ch2 - db CH2 - dw Music_IntroBattle_Ch3 - db CH3 - dw Music_IntroBattle_Ch4 - -; Power Plant, Unknown Dungeon, Rocket HQ -Music_Dungeon1:: ; 7c2a0 (1f:42a0) - db ( $C0 | CH0 ) - dw Music_Dungeon1_Ch1 - db CH1 - dw Music_Dungeon1_Ch2 - db CH2 - dw Music_Dungeon1_Ch3 - db CH3 - dw Music_Dungeon1_Ch4 - -; Viridian Forest, Seafoam Islands -Music_Dungeon2:: ; 7c2ac (1f:42ac) - db ( $C0 | CH0 ) - dw Music_Dungeon2_Ch1 - db CH1 - dw Music_Dungeon2_Ch2 - db CH2 - dw Music_Dungeon2_Ch3 - db CH3 - dw Music_Dungeon2_Ch4 - -; Mt. Moon, Rock Tunnel, Victory Road -Music_Dungeon3:: ; 7c2b8 (1f:42b8) - db ( $C0 | CH0 ) - dw Music_Dungeon3_Ch1 - db CH1 - dw Music_Dungeon3_Ch2 - db CH2 - dw Music_Dungeon3_Ch3 - db CH3 - dw Music_Dungeon3_Ch4 - -Music_CinnabarMansion:: ; 7c2c4 (1f:42c4) - db ( $C0 | CH0 ) - dw Music_CinnabarMansion_Ch1 - db CH1 - dw Music_CinnabarMansion_Ch2 - db CH2 - dw Music_CinnabarMansion_Ch3 - db CH3 - dw Music_CinnabarMansion_Ch4 - -Music_PokemonTower:: ; 7c2d0 (1f:42d0) - db ( $80 | CH0 ) - dw Music_PokemonTower_Ch1 - db CH1 - dw Music_PokemonTower_Ch2 - db CH2 - dw Music_PokemonTower_Ch3 - -Music_SilphCo:: ; 7c2d9 (1f:42d9) - db ( $80 | CH0 ) - dw Music_SilphCo_Ch1 - db CH1 - dw Music_SilphCo_Ch2 - db CH2 - dw Music_SilphCo_Ch3 - -Music_MeetEvilTrainer:: ; 7c2e2 (1f:42e2) - db ( $80 | CH0 ) - dw Music_MeetEvilTrainer_Ch1 - db CH1 - dw Music_MeetEvilTrainer_Ch2 - db CH2 - dw Music_MeetEvilTrainer_Ch3 - -Music_MeetFemaleTrainer:: ; 7c2eb (1f:42eb) - db ( $80 | CH0 ) - dw Music_MeetFemaleTrainer_Ch1 - db CH1 - dw Music_MeetFemaleTrainer_Ch2 - db CH2 - dw Music_MeetFemaleTrainer_Ch3 - -Music_MeetMaleTrainer:: ; 7c2f4 (1f:42f4) - db ( $80 | CH0 ) - dw Music_MeetMaleTrainer_Ch1 - db CH1 - dw Music_MeetMaleTrainer_Ch2 - db CH2 - dw Music_MeetMaleTrainer_Ch3 diff --git a/audio/headers/musicheaders2.asm b/audio/headers/musicheaders2.asm new file mode 100755 index 00000000..85cf2825 --- /dev/null +++ b/audio/headers/musicheaders2.asm @@ -0,0 +1,57 @@ +Music_GymLeaderBattle:: ; 202be (8:42be) + db ( $80 | CH0 ) + dw Music_GymLeaderBattle_Ch1 + db CH1 + dw Music_GymLeaderBattle_Ch2 + db CH2 + dw Music_GymLeaderBattle_Ch3 + +Music_TrainerBattle:: ; 202c7 (8:42c7) + db ( $80 | CH0 ) + dw Music_TrainerBattle_Ch1 + db CH1 + dw Music_TrainerBattle_Ch2 + db CH2 + dw Music_TrainerBattle_Ch3 + +Music_WildBattle:: ; 202d0 (8:42d0) + db ( $80 | CH0 ) + dw Music_WildBattle_Ch1 + db CH1 + dw Music_WildBattle_Ch2 + db CH2 + dw Music_WildBattle_Ch3 + +Music_FinalBattle:: ; 202d9 (8:42d9) + db ( $80 | CH0 ) + dw Music_FinalBattle_Ch1 + db CH1 + dw Music_FinalBattle_Ch2 + db CH2 + dw Music_FinalBattle_Ch3 + +Music_DefeatedTrainer:: ; 202e2 (8:42e2) + db ( $80 | CH0 ) + dw Music_DefeatedTrainer_Ch1 + db CH1 + dw Music_DefeatedTrainer_Ch2 + db CH2 + dw Music_DefeatedTrainer_Ch3 + +Music_DefeatedWildMon:: ; 202eb (8:42eb) + db ( $80 | CH0 ) + dw Music_DefeatedWildMon_Ch1 + db CH1 + dw Music_DefeatedWildMon_Ch2 + db CH2 + dw Music_DefeatedWildMon_Ch3 + +Music_DefeatedGymLeader:: ; 202f4 (8:42f4) + db ( $80 | CH0 ) + dw Music_DefeatedGymLeader_Ch1 + db CH1 + dw Music_DefeatedGymLeader_Ch2 + db CH2 + dw Music_DefeatedGymLeader_Ch3 + +; 202fd diff --git a/audio/headers/musicheaders3.asm b/audio/headers/musicheaders3.asm new file mode 100755 index 00000000..7846e48f --- /dev/null +++ b/audio/headers/musicheaders3.asm @@ -0,0 +1,158 @@ +Music_TitleScreen:: ; 7c249 (1f:4249) + db ( $C0 | CH0 ) + dw Music_TitleScreen_Ch1 + db CH1 + dw Music_TitleScreen_Ch2 + db CH2 + dw Music_TitleScreen_Ch3 + db CH3 + dw Music_TitleScreen_Ch4 + +Music_Credits:: ; 7c255 (1f:4255) + db ( $80 | CH0 ) + dw Music_Credits_Ch1 + db CH1 + dw Music_Credits_Ch2 + db CH2 + dw Music_Credits_Ch3 + +Music_HallOfFame:: ; 7c25e (1f:425e) + db ( $80 | CH0 ) + dw Music_HallOfFame_Ch1 + db CH1 + dw Music_HallOfFame_Ch2 + db CH2 + dw Music_HallOfFame_Ch3 + +Music_OaksLab:: ; 7c267 (1f:4267) + db ( $80 | CH0 ) + dw Music_OaksLab_Ch1 + db CH1 + dw Music_OaksLab_Ch2 + db CH2 + dw Music_OaksLab_Ch3 + +Music_JigglypuffSong:: ; 7c270 (1f:4270) + db $40 + dw Music_JigglypuffSong_Ch1 + db CH1 + dw Music_JigglypuffSong_Ch2 + +Music_BikeRiding:: ; 7c276 (1f:4276) + db ( $C0 | CH0 ) + dw Music_BikeRiding_Ch1 + db CH1 + dw Music_BikeRiding_Ch2 + db CH2 + dw Music_BikeRiding_Ch3 + db CH3 + dw Music_BikeRiding_Ch4 + +Music_Surfing:: ; 7c282 (1f:4282) + db ( $80 | CH0 ) + dw Music_Surfing_Ch1 + db CH1 + dw Music_Surfing_Ch2 + db CH2 + dw Music_Surfing_Ch3 + +Music_GameCorner:: ; 7c28b (1f:428b) + db ( $80 | CH0 ) + dw Music_GameCorner_Ch1 + db CH1 + dw Music_GameCorner_Ch2 + db CH2 + dw Music_GameCorner_Ch3 + +Music_IntroBattle:: ; 7c294 (1f:4294) + db ( $C0 | CH0 ) + dw Music_IntroBattle_Ch1 + db CH1 + dw Music_IntroBattle_Ch2 + db CH2 + dw Music_IntroBattle_Ch3 + db CH3 + dw Music_IntroBattle_Ch4 + +; Power Plant, Unknown Dungeon, Rocket HQ +Music_Dungeon1:: ; 7c2a0 (1f:42a0) + db ( $C0 | CH0 ) + dw Music_Dungeon1_Ch1 + db CH1 + dw Music_Dungeon1_Ch2 + db CH2 + dw Music_Dungeon1_Ch3 + db CH3 + dw Music_Dungeon1_Ch4 + +; Viridian Forest, Seafoam Islands +Music_Dungeon2:: ; 7c2ac (1f:42ac) + db ( $C0 | CH0 ) + dw Music_Dungeon2_Ch1 + db CH1 + dw Music_Dungeon2_Ch2 + db CH2 + dw Music_Dungeon2_Ch3 + db CH3 + dw Music_Dungeon2_Ch4 + +; Mt. Moon, Rock Tunnel, Victory Road +Music_Dungeon3:: ; 7c2b8 (1f:42b8) + db ( $C0 | CH0 ) + dw Music_Dungeon3_Ch1 + db CH1 + dw Music_Dungeon3_Ch2 + db CH2 + dw Music_Dungeon3_Ch3 + db CH3 + dw Music_Dungeon3_Ch4 + +Music_CinnabarMansion:: ; 7c2c4 (1f:42c4) + db ( $C0 | CH0 ) + dw Music_CinnabarMansion_Ch1 + db CH1 + dw Music_CinnabarMansion_Ch2 + db CH2 + dw Music_CinnabarMansion_Ch3 + db CH3 + dw Music_CinnabarMansion_Ch4 + +Music_PokemonTower:: ; 7c2d0 (1f:42d0) + db ( $80 | CH0 ) + dw Music_PokemonTower_Ch1 + db CH1 + dw Music_PokemonTower_Ch2 + db CH2 + dw Music_PokemonTower_Ch3 + +Music_SilphCo:: ; 7c2d9 (1f:42d9) + db ( $80 | CH0 ) + dw Music_SilphCo_Ch1 + db CH1 + dw Music_SilphCo_Ch2 + db CH2 + dw Music_SilphCo_Ch3 + +Music_MeetEvilTrainer:: ; 7c2e2 (1f:42e2) + db ( $80 | CH0 ) + dw Music_MeetEvilTrainer_Ch1 + db CH1 + dw Music_MeetEvilTrainer_Ch2 + db CH2 + dw Music_MeetEvilTrainer_Ch3 + +Music_MeetFemaleTrainer:: ; 7c2eb (1f:42eb) + db ( $80 | CH0 ) + dw Music_MeetFemaleTrainer_Ch1 + db CH1 + dw Music_MeetFemaleTrainer_Ch2 + db CH2 + dw Music_MeetFemaleTrainer_Ch3 + +Music_MeetMaleTrainer:: ; 7c2f4 (1f:42f4) + db ( $80 | CH0 ) + dw Music_MeetMaleTrainer_Ch1 + db CH1 + dw Music_MeetMaleTrainer_Ch2 + db CH2 + dw Music_MeetMaleTrainer_Ch3 diff --git a/audio/headers/sfxheaders02.asm b/audio/headers/sfxheaders02.asm deleted file mode 100644 index 86fca297..00000000 --- a/audio/headers/sfxheaders02.asm +++ /dev/null @@ -1,562 +0,0 @@ -SFX_Headers_02:: - db $ff, $ff, $ff ; padding - -SFX_Snare1_1:: ; 8003 (2:4003) - db CH7 - dw SFX_Snare1_1_Ch1 - -SFX_Snare2_1:: ; 8006 (2:4006) - db CH7 - dw SFX_Snare2_1_Ch1 - -SFX_Snare3_1:: ; 8009 (2:4009) - db CH7 - dw SFX_Snare3_1_Ch1 - -SFX_Snare4_1:: ; 800c (2:400c) - db CH7 - dw SFX_Snare4_1_Ch1 - -SFX_Snare5_1:: ; 800f (2:400f) - db CH7 - dw SFX_Snare5_1_Ch1 - -SFX_Triangle1_1:: ; 8012 (2:4012) - db CH7 - dw SFX_Triangle1_1_Ch1 - -SFX_Triangle2_1:: ; 8015 (2:4015) - db CH7 - dw SFX_Triangle2_1_Ch1 - -SFX_Snare6_1:: ; 8018 (2:4018) - db CH7 - dw SFX_Snare6_1_Ch1 - -SFX_Snare7_1:: ; 801b (2:401b) - db CH7 - dw SFX_Snare7_1_Ch1 - -SFX_Snare8_1:: ; 801e (2:401e) - db CH7 - dw SFX_Snare8_1_Ch1 - -SFX_Snare9_1:: ; 8021 (2:4021) - db CH7 - dw SFX_Snare9_1_Ch1 - -SFX_Cymbal1_1:: ; 8024 (2:4024) - db CH7 - dw SFX_Cymbal1_1_Ch1 - -SFX_Cymbal2_1:: ; 8027 (2:4027) - db CH7 - dw SFX_Cymbal2_1_Ch1 - -SFX_Cymbal3_1:: ; 802a (2:402a) - db CH7 - dw SFX_Cymbal3_1_Ch1 - -SFX_Muted_Snare1_1:: ; 802d (2:402d) - db CH7 - dw SFX_Muted_Snare1_1_Ch1 - -SFX_Triangle3_1:: ; 8030 (2:4030) - db CH7 - dw SFX_Triangle3_1_Ch1 - -SFX_Muted_Snare2_1:: ; 8033 (2:4033) - db CH7 - dw SFX_Muted_Snare2_1_Ch1 - -SFX_Muted_Snare3_1:: ; 8036 (2:4036) - db CH7 - dw SFX_Muted_Snare3_1_Ch1 - -SFX_Muted_Snare4_1:: ; 8039 (2:4039) - db CH7 - dw SFX_Muted_Snare4_1_Ch1 - -SFX_Cry00_1:: ; 803c (2:403c) - db ( $80 | CH4 ) - dw SFX_Cry00_1_Ch1 - db CH5 - dw SFX_Cry00_1_Ch2 - db CH7 - dw SFX_Cry00_1_Ch3 - -SFX_Cry01_1:: ; 8045 (2:4045) - db ( $80 | CH4 ) - dw SFX_Cry01_1_Ch1 - db CH5 - dw SFX_Cry01_1_Ch2 - db CH7 - dw SFX_Cry01_1_Ch3 - -SFX_Cry02_1:: ; 804e (2:404e) - db ( $80 | CH4 ) - dw SFX_Cry02_1_Ch1 - db CH5 - dw SFX_Cry02_1_Ch2 - db CH7 - dw SFX_Cry02_1_Ch3 - -SFX_Cry03_1:: ; 8057 (2:4057) - db ( $80 | CH4 ) - dw SFX_Cry03_1_Ch1 - db CH5 - dw SFX_Cry03_1_Ch2 - db CH7 - dw SFX_Cry03_1_Ch3 - -SFX_Cry04_1:: ; 8060 (2:4060) - db ( $80 | CH4 ) - dw SFX_Cry04_1_Ch1 - db CH5 - dw SFX_Cry04_1_Ch2 - db CH7 - dw SFX_Cry04_1_Ch3 - -SFX_Cry05_1:: ; 8069 (2:4069) - db ( $80 | CH4 ) - dw SFX_Cry05_1_Ch1 - db CH5 - dw SFX_Cry05_1_Ch2 - db CH7 - dw SFX_Cry05_1_Ch3 - -SFX_Cry06_1:: ; 8072 (2:4072) - db ( $80 | CH4 ) - dw SFX_Cry06_1_Ch1 - db CH5 - dw SFX_Cry06_1_Ch2 - db CH7 - dw SFX_Cry06_1_Ch3 - -SFX_Cry07_1:: ; 807b (2:407b) - db ( $80 | CH4 ) - dw SFX_Cry07_1_Ch1 - db CH5 - dw SFX_Cry07_1_Ch2 - db CH7 - dw SFX_Cry07_1_Ch3 - -SFX_Cry08_1:: ; 8084 (2:4084) - db ( $80 | CH4 ) - dw SFX_Cry08_1_Ch1 - db CH5 - dw SFX_Cry08_1_Ch2 - db CH7 - dw SFX_Cry08_1_Ch3 - -SFX_Cry09_1:: ; 808d (2:408d) - db ( $80 | CH4 ) - dw SFX_Cry09_1_Ch1 - db CH5 - dw SFX_Cry09_1_Ch2 - db CH7 - dw SFX_Cry09_1_Ch3 - -SFX_Cry0A_1:: ; 8096 (2:4096) - db ( $80 | CH4 ) - dw SFX_Cry0A_1_Ch1 - db CH5 - dw SFX_Cry0A_1_Ch2 - db CH7 - dw SFX_Cry0A_1_Ch3 - -SFX_Cry0B_1:: ; 809f (2:409f) - db ( $80 | CH4 ) - dw SFX_Cry0B_1_Ch1 - db CH5 - dw SFX_Cry0B_1_Ch2 - db CH7 - dw SFX_Cry0B_1_Ch3 - -SFX_Cry0C_1:: ; 80a8 (2:40a8) - db ( $80 | CH4 ) - dw SFX_Cry0C_1_Ch1 - db CH5 - dw SFX_Cry0C_1_Ch2 - db CH7 - dw SFX_Cry0C_1_Ch3 - -SFX_Cry0D_1:: ; 80b1 (2:40b1) - db ( $80 | CH4 ) - dw SFX_Cry0D_1_Ch1 - db CH5 - dw SFX_Cry0D_1_Ch2 - db CH7 - dw SFX_Cry0D_1_Ch3 - -SFX_Cry0E_1:: ; 80ba (2:40ba) - db ( $80 | CH4 ) - dw SFX_Cry0E_1_Ch1 - db CH5 - dw SFX_Cry0E_1_Ch2 - db CH7 - dw SFX_Cry0E_1_Ch3 - -SFX_Cry0F_1:: ; 80c3 (2:40c3) - db ( $80 | CH4 ) - dw SFX_Cry0F_1_Ch1 - db CH5 - dw SFX_Cry0F_1_Ch2 - db CH7 - dw SFX_Cry0F_1_Ch3 - -SFX_Cry10_1:: ; 80cc (2:40cc) - db ( $80 | CH4 ) - dw SFX_Cry10_1_Ch1 - db CH5 - dw SFX_Cry10_1_Ch2 - db CH7 - dw SFX_Cry10_1_Ch3 - -SFX_Cry11_1:: ; 80d5 (2:40d5) - db ( $80 | CH4 ) - dw SFX_Cry11_1_Ch1 - db CH5 - dw SFX_Cry11_1_Ch2 - db CH7 - dw SFX_Cry11_1_Ch3 - -SFX_Cry12_1:: ; 80de (2:40de) - db ( $80 | CH4 ) - dw SFX_Cry12_1_Ch1 - db CH5 - dw SFX_Cry12_1_Ch2 - db CH7 - dw SFX_Cry12_1_Ch3 - -SFX_Cry13_1:: ; 80e7 (2:40e7) - db ( $80 | CH4 ) - dw SFX_Cry13_1_Ch1 - db CH5 - dw SFX_Cry13_1_Ch2 - db CH7 - dw SFX_Cry13_1_Ch3 - -SFX_Cry14_1:: ; 80f0 (2:40f0) - db ( $80 | CH4 ) - dw SFX_Cry14_1_Ch1 - db CH5 - dw SFX_Cry14_1_Ch2 - db CH7 - dw SFX_Cry14_1_Ch3 - -SFX_Cry15_1:: ; 80f9 (2:40f9) - db ( $80 | CH4 ) - dw SFX_Cry15_1_Ch1 - db CH5 - dw SFX_Cry15_1_Ch2 - db CH7 - dw SFX_Cry15_1_Ch3 - -SFX_Cry16_1:: ; 8102 (2:4102) - db ( $80 | CH4 ) - dw SFX_Cry16_1_Ch1 - db CH5 - dw SFX_Cry16_1_Ch2 - db CH7 - dw SFX_Cry16_1_Ch3 - -SFX_Cry17_1:: ; 810b (2:410b) - db ( $80 | CH4 ) - dw SFX_Cry17_1_Ch1 - db CH5 - dw SFX_Cry17_1_Ch2 - db CH7 - dw SFX_Cry17_1_Ch3 - -SFX_Cry18_1:: ; 8114 (2:4114) - db ( $80 | CH4 ) - dw SFX_Cry18_1_Ch1 - db CH5 - dw SFX_Cry18_1_Ch2 - db CH7 - dw SFX_Cry18_1_Ch3 - -SFX_Cry19_1:: ; 811d (2:411d) - db ( $80 | CH4 ) - dw SFX_Cry19_1_Ch1 - db CH5 - dw SFX_Cry19_1_Ch2 - db CH7 - dw SFX_Cry19_1_Ch3 - -SFX_Cry1A_1:: ; 8126 (2:4126) - db ( $80 | CH4 ) - dw SFX_Cry1A_1_Ch1 - db CH5 - dw SFX_Cry1A_1_Ch2 - db CH7 - dw SFX_Cry1A_1_Ch3 - -SFX_Cry1B_1:: ; 812f (2:412f) - db ( $80 | CH4 ) - dw SFX_Cry1B_1_Ch1 - db CH5 - dw SFX_Cry1B_1_Ch2 - db CH7 - dw SFX_Cry1B_1_Ch3 - -SFX_Cry1C_1:: ; 8138 (2:4138) - db ( $80 | CH4 ) - dw SFX_Cry1C_1_Ch1 - db CH5 - dw SFX_Cry1C_1_Ch2 - db CH7 - dw SFX_Cry1C_1_Ch3 - -SFX_Cry1D_1:: ; 8141 (2:4141) - db ( $80 | CH4 ) - dw SFX_Cry1D_1_Ch1 - db CH5 - dw SFX_Cry1D_1_Ch2 - db CH7 - dw SFX_Cry1D_1_Ch3 - -SFX_Cry1E_1:: ; 814a (2:414a) - db ( $80 | CH4 ) - dw SFX_Cry1E_1_Ch1 - db CH5 - dw SFX_Cry1E_1_Ch2 - db CH7 - dw SFX_Cry1E_1_Ch3 - -SFX_Cry1F_1:: ; 8153 (2:4153) - db ( $80 | CH4 ) - dw SFX_Cry1F_1_Ch1 - db CH5 - dw SFX_Cry1F_1_Ch2 - db CH7 - dw SFX_Cry1F_1_Ch3 - -SFX_Cry20_1:: ; 815c (2:415c) - db ( $80 | CH4 ) - dw SFX_Cry20_1_Ch1 - db CH5 - dw SFX_Cry20_1_Ch2 - db CH7 - dw SFX_Cry20_1_Ch3 - -SFX_Cry21_1:: ; 8165 (2:4165) - db ( $80 | CH4 ) - dw SFX_Cry21_1_Ch1 - db CH5 - dw SFX_Cry21_1_Ch2 - db CH7 - dw SFX_Cry21_1_Ch3 - -SFX_Cry22_1:: ; 816e (2:416e) - db ( $80 | CH4 ) - dw SFX_Cry22_1_Ch1 - db CH5 - dw SFX_Cry22_1_Ch2 - db CH7 - dw SFX_Cry22_1_Ch3 - -SFX_Cry23_1:: ; 8177 (2:4177) - db ( $80 | CH4 ) - dw SFX_Cry23_1_Ch1 - db CH5 - dw SFX_Cry23_1_Ch2 - db CH7 - dw SFX_Cry23_1_Ch3 - -SFX_Cry24_1:: ; 8180 (2:4180) - db ( $80 | CH4 ) - dw SFX_Cry24_1_Ch1 - db CH5 - dw SFX_Cry24_1_Ch2 - db CH7 - dw SFX_Cry24_1_Ch3 - -SFX_Cry25_1:: ; 8189 (2:4189) - db ( $80 | CH4 ) - dw SFX_Cry25_1_Ch1 - db CH5 - dw SFX_Cry25_1_Ch2 - db CH7 - dw SFX_Cry25_1_Ch3 - -SFX_Get_Item1_1:: ; 8192 (2:4192) - db ( $80 | CH4 ) - dw SFX_Get_Item1_1_Ch1 - db CH5 - dw SFX_Get_Item1_1_Ch2 - db CH6 - dw SFX_Get_Item1_1_Ch3 - -SFX_Get_Item2_1:: ; 819b (2:419b) - db ( $80 | CH4 ) - dw SFX_Get_Item2_1_Ch1 - db CH5 - dw SFX_Get_Item2_1_Ch2 - db CH6 - dw SFX_Get_Item2_1_Ch3 - -SFX_Tink_1:: ; 81a4 (2:41a4) - db CH4 - dw SFX_Tink_1_Ch1 - -SFX_Heal_HP_1:: ; 81a7 (2:41a7) - db CH4 - dw SFX_Heal_HP_1_Ch1 - -SFX_Heal_Ailment_1:: ; 81aa (2:41aa) - db CH4 - dw SFX_Heal_Ailment_1_Ch1 - -SFX_Start_Menu_1:: ; 81ad (2:41ad) - db CH7 - dw SFX_Start_Menu_1_Ch1 - -SFX_Press_AB_1:: ; 81b0 (2:41b0) - db CH4 - dw SFX_Press_AB_1_Ch1 - -SFX_Pokedex_Rating_1:: ; 81b3 (2:41b3) - db ( $80 | CH4 ) - dw SFX_Pokedex_Rating_1_Ch1 - db CH5 - dw SFX_Pokedex_Rating_1_Ch2 - db CH6 - dw SFX_Pokedex_Rating_1_Ch3 - -SFX_Get_Key_Item_1:: ; 81bc (2:41bc) - db ( $80 | CH4 ) - dw SFX_Get_Key_Item_1_Ch1 - db CH5 - dw SFX_Get_Key_Item_1_Ch2 - db CH6 - dw SFX_Get_Key_Item_1_Ch3 - -SFX_Poisoned_1:: ; 81c5 (2:41c5) - db CH4 - dw SFX_Poisoned_1_Ch1 - -SFX_Trade_Machine_1:: ; 81c8 (2:41c8) - db CH4 - dw SFX_Trade_Machine_1_Ch1 - -SFX_Turn_On_PC_1:: ; 81cb (2:41cb) - db CH4 - dw SFX_Turn_On_PC_1_Ch1 - -SFX_Turn_Off_PC_1:: ; 81ce (2:41ce) - db CH4 - dw SFX_Turn_Off_PC_1_Ch1 - -SFX_Enter_PC_1:: ; 81d1 (2:41d1) - db CH4 - dw SFX_Enter_PC_1_Ch1 - -SFX_Shrink_1:: ; 81d4 (2:41d4) - db CH4 - dw SFX_Shrink_1_Ch1 - -SFX_Switch_1:: ; 81d7 (2:41d7) - db CH4 - dw SFX_Switch_1_Ch1 - -SFX_Healing_Machine_1:: ; 81da (2:41da) - db CH4 - dw SFX_Healing_Machine_1_Ch1 - -SFX_Teleport_Exit1_1:: ; 81dd (2:41dd) - db CH4 - dw SFX_Teleport_Exit1_1_Ch1 - -SFX_Teleport_Enter1_1:: ; 81e0 (2:41e0) - db CH4 - dw SFX_Teleport_Enter1_1_Ch1 - -SFX_Teleport_Exit2_1:: ; 81e3 (2:41e3) - db CH4 - dw SFX_Teleport_Exit2_1_Ch1 - -SFX_Ledge_1:: ; 81e6 (2:41e6) - db CH4 - dw SFX_Ledge_1_Ch1 - -SFX_Teleport_Enter2_1:: ; 81e9 (2:41e9) - db CH7 - dw SFX_Teleport_Enter2_1_Ch1 - -SFX_Fly_1:: ; 81ec (2:41ec) - db CH7 - dw SFX_Fly_1_Ch1 - -SFX_Denied_1:: ; 81ef (2:41ef) - db ( $40 | CH4 ) - dw SFX_Denied_1_Ch1 - db CH5 - dw SFX_Denied_1_Ch2 - -SFX_Arrow_Tiles_1:: ; 81f5 (2:41f5) - db CH4 - dw SFX_Arrow_Tiles_1_Ch1 - -SFX_Push_Boulder_1:: ; 81f8 (2:41f8) - db CH7 - dw SFX_Push_Boulder_1_Ch1 - -SFX_SS_Anne_Horn_1:: ; 81fb (2:41fb) - db ( $40 | CH4 ) - dw SFX_SS_Anne_Horn_1_Ch1 - db CH5 - dw SFX_SS_Anne_Horn_1_Ch2 - -SFX_Withdraw_Deposit_1:: ; 8201 (2:4201) - db CH4 - dw SFX_Withdraw_Deposit_1_Ch1 - -SFX_Cut_1:: ; 8204 (2:4204) - db CH7 - dw SFX_Cut_1_Ch1 - -SFX_Go_Inside_1:: ; 8207 (2:4207) - db CH7 - dw SFX_Go_Inside_1_Ch1 - -SFX_Swap_1:: ; 820a (2:420a) - db ( $40 | CH4 ) - dw SFX_Swap_1_Ch1 - db CH5 - dw SFX_Swap_1_Ch2 - -SFX_59_1:: ; 8210 (2:4210) - db ( $40 | CH4 ) - dw SFX_59_1_Ch1 - db CH5 - dw SFX_59_1_Ch2 - -SFX_Purchase_1:: ; 8216 (2:4216) - db ( $40 | CH4 ) - dw SFX_Purchase_1_Ch1 - db CH5 - dw SFX_Purchase_1_Ch2 - -SFX_Collision_1:: ; 821c (2:421c) - db CH4 - dw SFX_Collision_1_Ch1 - -SFX_Go_Outside_1:: ; 821f (2:421f) - db CH7 - dw SFX_Go_Outside_1_Ch1 - -SFX_Save_1:: ; 8222 (2:4222) - db ( $40 | CH4 ) - dw SFX_Save_1_Ch1 - db CH5 - dw SFX_Save_1_Ch2 - -SFX_Pokeflute:: ; 8228 (2:4228) - db CH2 - dw SFX_Pokeflute_Ch1 - -SFX_Safari_Zone_PA:: ; 822b (2:422b) - db CH4 - dw SFX_Safari_Zone_PA_Ch1 diff --git a/audio/headers/sfxheaders08.asm b/audio/headers/sfxheaders08.asm deleted file mode 100644 index 46491e67..00000000 --- a/audio/headers/sfxheaders08.asm +++ /dev/null @@ -1,706 +0,0 @@ -SFX_Headers_08:: - db $ff, $ff, $ff ; padding - -SFX_Snare1_2:: ; 20003 (8:4003) - db CH7 - dw SFX_Snare1_2_Ch1 - -SFX_Snare2_2:: ; 20006 (8:4006) - db CH7 - dw SFX_Snare2_2_Ch1 - -SFX_Snare3_2:: ; 20009 (8:4009) - db CH7 - dw SFX_Snare3_2_Ch1 - -SFX_Snare4_2:: ; 2000c (8:400c) - db CH7 - dw SFX_Snare4_2_Ch1 - -SFX_Snare5_2:: ; 2000f (8:400f) - db CH7 - dw SFX_Snare5_2_Ch1 - -SFX_Triangle1_2:: ; 20012 (8:4012) - db CH7 - dw SFX_Triangle1_2_Ch1 - -SFX_Triangle2_2:: ; 20015 (8:4015) - db CH7 - dw SFX_Triangle2_2_Ch1 - -SFX_Snare6_2:: ; 20018 (8:4018) - db CH7 - dw SFX_Snare6_2_Ch1 - -SFX_Snare7_2:: ; 2001b (8:401b) - db CH7 - dw SFX_Snare7_2_Ch1 - -SFX_Snare8_2:: ; 2001e (8:401e) - db CH7 - dw SFX_Snare8_2_Ch1 - -SFX_Snare9_2:: ; 20021 (8:4021) - db CH7 - dw SFX_Snare9_2_Ch1 - -SFX_Cymbal1_2:: ; 20024 (8:4024) - db CH7 - dw SFX_Cymbal1_2_Ch1 - -SFX_Cymbal2_2:: ; 20027 (8:4027) - db CH7 - dw SFX_Cymbal2_2_Ch1 - -SFX_Cymbal3_2:: ; 2002a (8:402a) - db CH7 - dw SFX_Cymbal3_2_Ch1 - -SFX_Muted_Snare1_2:: ; 2002d (8:402d) - db CH7 - dw SFX_Muted_Snare1_2_Ch1 - -SFX_Triangle3_2:: ; 20030 (8:4030) - db CH7 - dw SFX_Triangle3_2_Ch1 - -SFX_Muted_Snare2_2:: ; 20033 (8:4033) - db CH7 - dw SFX_Muted_Snare2_2_Ch1 - -SFX_Muted_Snare3_2:: ; 20036 (8:4036) - db CH7 - dw SFX_Muted_Snare3_2_Ch1 - -SFX_Muted_Snare4_2:: ; 20039 (8:4039) - db CH7 - dw SFX_Muted_Snare4_2_Ch1 - -SFX_Cry00_2:: ; 2003c (8:403c) - db ( $80 | CH4 ) - dw SFX_Cry00_2_Ch1 - db CH5 - dw SFX_Cry00_2_Ch2 - db CH7 - dw SFX_Cry00_2_Ch3 - -SFX_Cry01_2:: ; 20045 (8:4045) - db ( $80 | CH4 ) - dw SFX_Cry01_2_Ch1 - db CH5 - dw SFX_Cry01_2_Ch2 - db CH7 - dw SFX_Cry01_2_Ch3 - -SFX_Cry02_2:: ; 2004e (8:404e) - db ( $80 | CH4 ) - dw SFX_Cry02_2_Ch1 - db CH5 - dw SFX_Cry02_2_Ch2 - db CH7 - dw SFX_Cry02_2_Ch3 - -SFX_Cry03_2:: ; 20057 (8:4057) - db ( $80 | CH4 ) - dw SFX_Cry03_2_Ch1 - db CH5 - dw SFX_Cry03_2_Ch2 - db CH7 - dw SFX_Cry03_2_Ch3 - -SFX_Cry04_2:: ; 20060 (8:4060) - db ( $80 | CH4 ) - dw SFX_Cry04_2_Ch1 - db CH5 - dw SFX_Cry04_2_Ch2 - db CH7 - dw SFX_Cry04_2_Ch3 - -SFX_Cry05_2:: ; 20069 (8:4069) - db ( $80 | CH4 ) - dw SFX_Cry05_2_Ch1 - db CH5 - dw SFX_Cry05_2_Ch2 - db CH7 - dw SFX_Cry05_2_Ch3 - -SFX_Cry06_2:: ; 20072 (8:4072) - db ( $80 | CH4 ) - dw SFX_Cry06_2_Ch1 - db CH5 - dw SFX_Cry06_2_Ch2 - db CH7 - dw SFX_Cry06_2_Ch3 - -SFX_Cry07_2:: ; 2007b (8:407b) - db ( $80 | CH4 ) - dw SFX_Cry07_2_Ch1 - db CH5 - dw SFX_Cry07_2_Ch2 - db CH7 - dw SFX_Cry07_2_Ch3 - -SFX_Cry08_2:: ; 20084 (8:4084) - db ( $80 | CH4 ) - dw SFX_Cry08_2_Ch1 - db CH5 - dw SFX_Cry08_2_Ch2 - db CH7 - dw SFX_Cry08_2_Ch3 - -SFX_Cry09_2:: ; 2008d (8:408d) - db ( $80 | CH4 ) - dw SFX_Cry09_2_Ch1 - db CH5 - dw SFX_Cry09_2_Ch2 - db CH7 - dw SFX_Cry09_2_Ch3 - -SFX_Cry0A_2:: ; 20096 (8:4096) - db ( $80 | CH4 ) - dw SFX_Cry0A_2_Ch1 - db CH5 - dw SFX_Cry0A_2_Ch2 - db CH7 - dw SFX_Cry0A_2_Ch3 - -SFX_Cry0B_2:: ; 2009f (8:409f) - db ( $80 | CH4 ) - dw SFX_Cry0B_2_Ch1 - db CH5 - dw SFX_Cry0B_2_Ch2 - db CH7 - dw SFX_Cry0B_2_Ch3 - -SFX_Cry0C_2:: ; 200a8 (8:40a8) - db ( $80 | CH4 ) - dw SFX_Cry0C_2_Ch1 - db CH5 - dw SFX_Cry0C_2_Ch2 - db CH7 - dw SFX_Cry0C_2_Ch3 - -SFX_Cry0D_2:: ; 200b1 (8:40b1) - db ( $80 | CH4 ) - dw SFX_Cry0D_2_Ch1 - db CH5 - dw SFX_Cry0D_2_Ch2 - db CH7 - dw SFX_Cry0D_2_Ch3 - -SFX_Cry0E_2:: ; 200ba (8:40ba) - db ( $80 | CH4 ) - dw SFX_Cry0E_2_Ch1 - db CH5 - dw SFX_Cry0E_2_Ch2 - db CH7 - dw SFX_Cry0E_2_Ch3 - -SFX_Cry0F_2:: ; 200c3 (8:40c3) - db ( $80 | CH4 ) - dw SFX_Cry0F_2_Ch1 - db CH5 - dw SFX_Cry0F_2_Ch2 - db CH7 - dw SFX_Cry0F_2_Ch3 - -SFX_Cry10_2:: ; 200cc (8:40cc) - db ( $80 | CH4 ) - dw SFX_Cry10_2_Ch1 - db CH5 - dw SFX_Cry10_2_Ch2 - db CH7 - dw SFX_Cry10_2_Ch3 - -SFX_Cry11_2:: ; 200d5 (8:40d5) - db ( $80 | CH4 ) - dw SFX_Cry11_2_Ch1 - db CH5 - dw SFX_Cry11_2_Ch2 - db CH7 - dw SFX_Cry11_2_Ch3 - -SFX_Cry12_2:: ; 200de (8:40de) - db ( $80 | CH4 ) - dw SFX_Cry12_2_Ch1 - db CH5 - dw SFX_Cry12_2_Ch2 - db CH7 - dw SFX_Cry12_2_Ch3 - -SFX_Cry13_2:: ; 200e7 (8:40e7) - db ( $80 | CH4 ) - dw SFX_Cry13_2_Ch1 - db CH5 - dw SFX_Cry13_2_Ch2 - db CH7 - dw SFX_Cry13_2_Ch3 - -SFX_Cry14_2:: ; 200f0 (8:40f0) - db ( $80 | CH4 ) - dw SFX_Cry14_2_Ch1 - db CH5 - dw SFX_Cry14_2_Ch2 - db CH7 - dw SFX_Cry14_2_Ch3 - -SFX_Cry15_2:: ; 200f9 (8:40f9) - db ( $80 | CH4 ) - dw SFX_Cry15_2_Ch1 - db CH5 - dw SFX_Cry15_2_Ch2 - db CH7 - dw SFX_Cry15_2_Ch3 - -SFX_Cry16_2:: ; 20102 (8:4102) - db ( $80 | CH4 ) - dw SFX_Cry16_2_Ch1 - db CH5 - dw SFX_Cry16_2_Ch2 - db CH7 - dw SFX_Cry16_2_Ch3 - -SFX_Cry17_2:: ; 2010b (8:410b) - db ( $80 | CH4 ) - dw SFX_Cry17_2_Ch1 - db CH5 - dw SFX_Cry17_2_Ch2 - db CH7 - dw SFX_Cry17_2_Ch3 - -SFX_Cry18_2:: ; 20114 (8:4114) - db ( $80 | CH4 ) - dw SFX_Cry18_2_Ch1 - db CH5 - dw SFX_Cry18_2_Ch2 - db CH7 - dw SFX_Cry18_2_Ch3 - -SFX_Cry19_2:: ; 2011d (8:411d) - db ( $80 | CH4 ) - dw SFX_Cry19_2_Ch1 - db CH5 - dw SFX_Cry19_2_Ch2 - db CH7 - dw SFX_Cry19_2_Ch3 - -SFX_Cry1A_2:: ; 20126 (8:4126) - db ( $80 | CH4 ) - dw SFX_Cry1A_2_Ch1 - db CH5 - dw SFX_Cry1A_2_Ch2 - db CH7 - dw SFX_Cry1A_2_Ch3 - -SFX_Cry1B_2:: ; 2012f (8:412f) - db ( $80 | CH4 ) - dw SFX_Cry1B_2_Ch1 - db CH5 - dw SFX_Cry1B_2_Ch2 - db CH7 - dw SFX_Cry1B_2_Ch3 - -SFX_Cry1C_2:: ; 20138 (8:4138) - db ( $80 | CH4 ) - dw SFX_Cry1C_2_Ch1 - db CH5 - dw SFX_Cry1C_2_Ch2 - db CH7 - dw SFX_Cry1C_2_Ch3 - -SFX_Cry1D_2:: ; 20141 (8:4141) - db ( $80 | CH4 ) - dw SFX_Cry1D_2_Ch1 - db CH5 - dw SFX_Cry1D_2_Ch2 - db CH7 - dw SFX_Cry1D_2_Ch3 - -SFX_Cry1E_2:: ; 2014a (8:414a) - db ( $80 | CH4 ) - dw SFX_Cry1E_2_Ch1 - db CH5 - dw SFX_Cry1E_2_Ch2 - db CH7 - dw SFX_Cry1E_2_Ch3 - -SFX_Cry1F_2:: ; 20153 (8:4153) - db ( $80 | CH4 ) - dw SFX_Cry1F_2_Ch1 - db CH5 - dw SFX_Cry1F_2_Ch2 - db CH7 - dw SFX_Cry1F_2_Ch3 - -SFX_Cry20_2:: ; 2015c (8:415c) - db ( $80 | CH4 ) - dw SFX_Cry20_2_Ch1 - db CH5 - dw SFX_Cry20_2_Ch2 - db CH7 - dw SFX_Cry20_2_Ch3 - -SFX_Cry21_2:: ; 20165 (8:4165) - db ( $80 | CH4 ) - dw SFX_Cry21_2_Ch1 - db CH5 - dw SFX_Cry21_2_Ch2 - db CH7 - dw SFX_Cry21_2_Ch3 - -SFX_Cry22_2:: ; 2016e (8:416e) - db ( $80 | CH4 ) - dw SFX_Cry22_2_Ch1 - db CH5 - dw SFX_Cry22_2_Ch2 - db CH7 - dw SFX_Cry22_2_Ch3 - -SFX_Cry23_2:: ; 20177 (8:4177) - db ( $80 | CH4 ) - dw SFX_Cry23_2_Ch1 - db CH5 - dw SFX_Cry23_2_Ch2 - db CH7 - dw SFX_Cry23_2_Ch3 - -SFX_Cry24_2:: ; 20180 (8:4180) - db ( $80 | CH4 ) - dw SFX_Cry24_2_Ch1 - db CH5 - dw SFX_Cry24_2_Ch2 - db CH7 - dw SFX_Cry24_2_Ch3 - -SFX_Cry25_2:: ; 20189 (8:4189) - db ( $80 | CH4 ) - dw SFX_Cry25_2_Ch1 - db CH5 - dw SFX_Cry25_2_Ch2 - db CH7 - dw SFX_Cry25_2_Ch3 - -SFX_Level_Up:: ; 20192 (8:4192) - db ( $80 | CH4 ) - dw SFX_Level_Up_Ch1 - db CH5 - dw SFX_Level_Up_Ch2 - db CH6 - dw SFX_Level_Up_Ch3 - -SFX_Get_Item2_2:: ; 2019b (8:419b) - db ( $80 | CH4 ) - dw SFX_Get_Item2_2_Ch1 - db CH5 - dw SFX_Get_Item2_2_Ch2 - db CH6 - dw SFX_Get_Item2_2_Ch3 - -SFX_Tink_2:: ; 201a4 (8:41a4) - db CH4 - dw SFX_Tink_2_Ch1 - -SFX_Heal_HP_2:: ; 201a7 (8:41a7) - db CH4 - dw SFX_Heal_HP_2_Ch1 - -SFX_Heal_Ailment_2:: ; 201aa (8:41aa) - db CH4 - dw SFX_Heal_Ailment_2_Ch1 - -SFX_Start_Menu_2:: ; 201ad (8:41ad) - db CH7 - dw SFX_Start_Menu_2_Ch1 - -SFX_Press_AB_2:: ; 201b0 (8:41b0) - db CH4 - dw SFX_Press_AB_2_Ch1 - -SFX_Ball_Toss:: ; 201b3 (8:41b3) - db ( $40 | CH4 ) - dw SFX_Ball_Toss_Ch1 - db CH5 - dw SFX_Ball_Toss_Ch2 - -SFX_Ball_Poof:: ; 201b9 (8:41b9) - db ( $40 | CH4 ) - dw SFX_Ball_Poof_Ch1 - db CH7 - dw SFX_Ball_Poof_Ch2 - -SFX_Faint_Thud:: ; 201bf (8:41bf) - db ( $40 | CH4 ) - dw SFX_Faint_Thud_Ch1 - db CH7 - dw SFX_Faint_Thud_Ch2 - -SFX_Run:: ; 201c5 (8:41c5) - db CH7 - dw SFX_Run_Ch1 - -SFX_Dex_Page_Added:: ; 201c8 (8:41c8) - db ( $40 | CH4 ) - dw SFX_Dex_Page_Added_Ch1 - db CH5 - dw SFX_Dex_Page_Added_Ch2 - -SFX_Caught_Mon:: ; 201ce (8:41ce) - db ( $80 | CH4 ) - dw SFX_Caught_Mon_Ch1 - db CH5 - dw SFX_Caught_Mon_Ch2 - db CH6 - dw SFX_Caught_Mon_Ch3 - -SFX_Peck:: ; 201d7 (8:41d7) - db CH7 - dw SFX_Peck_Ch1 - -SFX_Faint_Fall:: ; 201da (8:41da) - db CH4 - dw SFX_Faint_Fall_Ch1 - -SFX_Battle_09:: ; 201dd (8:41dd) - db CH4 - dw SFX_Battle_09_Ch1 - -SFX_Pound:: ; 201e0 (8:41e0) - db CH7 - dw SFX_Pound_Ch1 - -SFX_Battle_0B:: ; 201e3 (8:41e3) - db CH7 - dw SFX_Battle_0B_Ch1 - -SFX_Battle_0C:: ; 201e6 (8:41e6) - db CH7 - dw SFX_Battle_0C_Ch1 - -SFX_Battle_0D:: ; 201e9 (8:41e9) - db CH7 - dw SFX_Battle_0D_Ch1 - -SFX_Battle_0E:: ; 201ec (8:41ec) - db CH7 - dw SFX_Battle_0E_Ch1 - -SFX_Battle_0F:: ; 201ef (8:41ef) - db CH7 - dw SFX_Battle_0F_Ch1 - -SFX_Damage:: ; 201f2 (8:41f2) - db CH7 - dw SFX_Damage_Ch1 - -SFX_Not_Very_Effective:: ; 201f5 (8:41f5) - db CH7 - dw SFX_Not_Very_Effective_Ch1 - -SFX_Battle_12:: ; 201f8 (8:41f8) - db CH7 - dw SFX_Battle_12_Ch1 - -SFX_Battle_13:: ; 201fb (8:41fb) - db CH7 - dw SFX_Battle_13_Ch1 - -SFX_Battle_14:: ; 201fe (8:41fe) - db CH7 - dw SFX_Battle_14_Ch1 - -SFX_Vine_Whip:: ; 20201 (8:4201) - db CH7 - dw SFX_Vine_Whip_Ch1 - -SFX_Battle_16:: ; 20204 (8:4204) - db CH7 - dw SFX_Battle_16_Ch1 - -SFX_Battle_17:: ; 20207 (8:4207) - db CH7 - dw SFX_Battle_17_Ch1 - -SFX_Battle_18:: ; 2020a (8:420a) - db CH7 - dw SFX_Battle_18_Ch1 - -SFX_Battle_19:: ; 2020d (8:420d) - db CH7 - dw SFX_Battle_19_Ch1 - -SFX_Super_Effective:: ; 20210 (8:4210) - db CH7 - dw SFX_Super_Effective_Ch1 - -SFX_Battle_1B:: ; 20213 (8:4213) - db CH7 - dw SFX_Battle_1B_Ch1 - -SFX_Battle_1C:: ; 20216 (8:4216) - db CH7 - dw SFX_Battle_1C_Ch1 - -SFX_Doubleslap:: ; 20219 (8:4219) - db CH7 - dw SFX_Doubleslap_Ch1 - -SFX_Battle_1E:: ; 2021c (8:421c) - db ( $40 | CH4 ) - dw SFX_Battle_1E_Ch1 - db CH7 - dw SFX_Battle_1E_Ch2 - -SFX_Horn_Drill:: ; 20222 (8:4222) - db CH7 - dw SFX_Horn_Drill_Ch1 - -SFX_Battle_20:: ; 20225 (8:4225) - db CH7 - dw SFX_Battle_20_Ch1 - -SFX_Battle_21:: ; 20228 (8:4228) - db CH7 - dw SFX_Battle_21_Ch1 - -SFX_Battle_22:: ; 2022b (8:422b) - db CH7 - dw SFX_Battle_22_Ch1 - -SFX_Battle_23:: ; 2022e (8:422e) - db CH7 - dw SFX_Battle_23_Ch1 - -SFX_Battle_24:: ; 20231 (8:4231) - db ( $40 | CH4 ) - dw SFX_Battle_24_Ch1 - db CH7 - dw SFX_Battle_24_Ch2 - -SFX_Battle_25:: ; 20237 (8:4237) - db CH7 - dw SFX_Battle_25_Ch1 - -SFX_Battle_26:: ; 2023a (8:423a) - db CH7 - dw SFX_Battle_26_Ch1 - -SFX_Battle_27:: ; 2023d (8:423d) - db ( $80 | CH4 ) - dw SFX_Battle_27_Ch1 - db CH5 - dw SFX_Battle_27_Ch2 - db CH7 - dw SFX_Battle_27_Ch3 - -SFX_Battle_28:: ; 20246 (8:4246) - db ( $80 | CH4 ) - dw SFX_Battle_28_Ch1 - db CH5 - dw SFX_Battle_28_Ch2 - db CH7 - dw SFX_Battle_28_Ch3 - -SFX_Battle_29:: ; 2024f (8:424f) - db ( $40 | CH4 ) - dw SFX_Battle_29_Ch1 - db CH7 - dw SFX_Battle_29_Ch2 - -SFX_Battle_2A:: ; 20255 (8:4255) - db ( $80 | CH4 ) - dw SFX_Battle_2A_Ch1 - db CH5 - dw SFX_Battle_2A_Ch2 - db CH7 - dw SFX_Battle_2A_Ch3 - -SFX_Battle_2B:: ; 2025e (8:425e) - db ( $40 | CH4 ) - dw SFX_Battle_2B_Ch1 - db CH7 - dw SFX_Battle_2B_Ch2 - -SFX_Battle_2C:: ; 20264 (8:4264) - db ( $80 | CH4 ) - dw SFX_Battle_2C_Ch1 - db CH5 - dw SFX_Battle_2C_Ch2 - db CH7 - dw SFX_Battle_2C_Ch3 - -SFX_Psybeam:: ; 2026d (8:426d) - db ( $80 | CH4 ) - dw SFX_Psybeam_Ch1 - db CH5 - dw SFX_Psybeam_Ch2 - db CH7 - dw SFX_Psybeam_Ch3 - -SFX_Battle_2E:: ; 20276 (8:4276) - db ( $80 | CH4 ) - dw SFX_Battle_2E_Ch1 - db CH5 - dw SFX_Battle_2E_Ch2 - db CH7 - dw SFX_Battle_2E_Ch3 - -SFX_Battle_2F:: ; 2027f (8:427f) - db ( $80 | CH4 ) - dw SFX_Battle_2F_Ch1 - db CH5 - dw SFX_Battle_2F_Ch2 - db CH7 - dw SFX_Battle_2F_Ch3 - -SFX_Psychic_M:: ; 20288 (8:4288) - db ( $80 | CH4 ) - dw SFX_Psychic_M_Ch1 - db CH5 - dw SFX_Psychic_M_Ch2 - db CH7 - dw SFX_Psychic_M_Ch3 - -SFX_Battle_31:: ; 20291 (8:4291) - db ( $40 | CH4 ) - dw SFX_Battle_31_Ch1 - db CH5 - dw SFX_Battle_31_Ch2 - -SFX_Battle_32:: ; 20297 (8:4297) - db ( $40 | CH4 ) - dw SFX_Battle_32_Ch1 - db CH5 - dw SFX_Battle_32_Ch2 - -SFX_Battle_33:: ; 2029d (8:429d) - db ( $40 | CH4 ) - dw SFX_Battle_33_Ch1 - db CH5 - dw SFX_Battle_33_Ch2 - -SFX_Battle_34:: ; 202a3 (8:42a3) - db ( $80 | CH4 ) - dw SFX_Battle_34_Ch1 - db CH5 - dw SFX_Battle_34_Ch2 - db CH7 - dw SFX_Battle_34_Ch3 - -SFX_Battle_35:: ; 202ac (8:42ac) - db ( $40 | CH4 ) - dw SFX_Battle_35_Ch1 - db CH5 - dw SFX_Battle_35_Ch2 - -SFX_Battle_36:: ; 202b2 (8:42b2) - db ( $80 | CH4 ) - dw SFX_Battle_36_Ch1 - db CH5 - dw SFX_Battle_36_Ch2 - db CH7 - dw SFX_Battle_36_Ch3 - -SFX_Silph_Scope:: ; 202bb (8:42bb) - db CH4 - dw SFX_Silph_Scope_Ch1 diff --git a/audio/headers/sfxheaders1.asm b/audio/headers/sfxheaders1.asm new file mode 100644 index 00000000..49370aa4 --- /dev/null +++ b/audio/headers/sfxheaders1.asm @@ -0,0 +1,562 @@ +SFX_Headers_1:: + db $ff, $ff, $ff ; padding + +SFX_Snare1_1:: ; 8003 (2:4003) + db CH7 + dw SFX_Snare1_1_Ch1 + +SFX_Snare2_1:: ; 8006 (2:4006) + db CH7 + dw SFX_Snare2_1_Ch1 + +SFX_Snare3_1:: ; 8009 (2:4009) + db CH7 + dw SFX_Snare3_1_Ch1 + +SFX_Snare4_1:: ; 800c (2:400c) + db CH7 + dw SFX_Snare4_1_Ch1 + +SFX_Snare5_1:: ; 800f (2:400f) + db CH7 + dw SFX_Snare5_1_Ch1 + +SFX_Triangle1_1:: ; 8012 (2:4012) + db CH7 + dw SFX_Triangle1_1_Ch1 + +SFX_Triangle2_1:: ; 8015 (2:4015) + db CH7 + dw SFX_Triangle2_1_Ch1 + +SFX_Snare6_1:: ; 8018 (2:4018) + db CH7 + dw SFX_Snare6_1_Ch1 + +SFX_Snare7_1:: ; 801b (2:401b) + db CH7 + dw SFX_Snare7_1_Ch1 + +SFX_Snare8_1:: ; 801e (2:401e) + db CH7 + dw SFX_Snare8_1_Ch1 + +SFX_Snare9_1:: ; 8021 (2:4021) + db CH7 + dw SFX_Snare9_1_Ch1 + +SFX_Cymbal1_1:: ; 8024 (2:4024) + db CH7 + dw SFX_Cymbal1_1_Ch1 + +SFX_Cymbal2_1:: ; 8027 (2:4027) + db CH7 + dw SFX_Cymbal2_1_Ch1 + +SFX_Cymbal3_1:: ; 802a (2:402a) + db CH7 + dw SFX_Cymbal3_1_Ch1 + +SFX_Muted_Snare1_1:: ; 802d (2:402d) + db CH7 + dw SFX_Muted_Snare1_1_Ch1 + +SFX_Triangle3_1:: ; 8030 (2:4030) + db CH7 + dw SFX_Triangle3_1_Ch1 + +SFX_Muted_Snare2_1:: ; 8033 (2:4033) + db CH7 + dw SFX_Muted_Snare2_1_Ch1 + +SFX_Muted_Snare3_1:: ; 8036 (2:4036) + db CH7 + dw SFX_Muted_Snare3_1_Ch1 + +SFX_Muted_Snare4_1:: ; 8039 (2:4039) + db CH7 + dw SFX_Muted_Snare4_1_Ch1 + +SFX_Cry00_1:: ; 803c (2:403c) + db ( $80 | CH4 ) + dw SFX_Cry00_1_Ch1 + db CH5 + dw SFX_Cry00_1_Ch2 + db CH7 + dw SFX_Cry00_1_Ch3 + +SFX_Cry01_1:: ; 8045 (2:4045) + db ( $80 | CH4 ) + dw SFX_Cry01_1_Ch1 + db CH5 + dw SFX_Cry01_1_Ch2 + db CH7 + dw SFX_Cry01_1_Ch3 + +SFX_Cry02_1:: ; 804e (2:404e) + db ( $80 | CH4 ) + dw SFX_Cry02_1_Ch1 + db CH5 + dw SFX_Cry02_1_Ch2 + db CH7 + dw SFX_Cry02_1_Ch3 + +SFX_Cry03_1:: ; 8057 (2:4057) + db ( $80 | CH4 ) + dw SFX_Cry03_1_Ch1 + db CH5 + dw SFX_Cry03_1_Ch2 + db CH7 + dw SFX_Cry03_1_Ch3 + +SFX_Cry04_1:: ; 8060 (2:4060) + db ( $80 | CH4 ) + dw SFX_Cry04_1_Ch1 + db CH5 + dw SFX_Cry04_1_Ch2 + db CH7 + dw SFX_Cry04_1_Ch3 + +SFX_Cry05_1:: ; 8069 (2:4069) + db ( $80 | CH4 ) + dw SFX_Cry05_1_Ch1 + db CH5 + dw SFX_Cry05_1_Ch2 + db CH7 + dw SFX_Cry05_1_Ch3 + +SFX_Cry06_1:: ; 8072 (2:4072) + db ( $80 | CH4 ) + dw SFX_Cry06_1_Ch1 + db CH5 + dw SFX_Cry06_1_Ch2 + db CH7 + dw SFX_Cry06_1_Ch3 + +SFX_Cry07_1:: ; 807b (2:407b) + db ( $80 | CH4 ) + dw SFX_Cry07_1_Ch1 + db CH5 + dw SFX_Cry07_1_Ch2 + db CH7 + dw SFX_Cry07_1_Ch3 + +SFX_Cry08_1:: ; 8084 (2:4084) + db ( $80 | CH4 ) + dw SFX_Cry08_1_Ch1 + db CH5 + dw SFX_Cry08_1_Ch2 + db CH7 + dw SFX_Cry08_1_Ch3 + +SFX_Cry09_1:: ; 808d (2:408d) + db ( $80 | CH4 ) + dw SFX_Cry09_1_Ch1 + db CH5 + dw SFX_Cry09_1_Ch2 + db CH7 + dw SFX_Cry09_1_Ch3 + +SFX_Cry0A_1:: ; 8096 (2:4096) + db ( $80 | CH4 ) + dw SFX_Cry0A_1_Ch1 + db CH5 + dw SFX_Cry0A_1_Ch2 + db CH7 + dw SFX_Cry0A_1_Ch3 + +SFX_Cry0B_1:: ; 809f (2:409f) + db ( $80 | CH4 ) + dw SFX_Cry0B_1_Ch1 + db CH5 + dw SFX_Cry0B_1_Ch2 + db CH7 + dw SFX_Cry0B_1_Ch3 + +SFX_Cry0C_1:: ; 80a8 (2:40a8) + db ( $80 | CH4 ) + dw SFX_Cry0C_1_Ch1 + db CH5 + dw SFX_Cry0C_1_Ch2 + db CH7 + dw SFX_Cry0C_1_Ch3 + +SFX_Cry0D_1:: ; 80b1 (2:40b1) + db ( $80 | CH4 ) + dw SFX_Cry0D_1_Ch1 + db CH5 + dw SFX_Cry0D_1_Ch2 + db CH7 + dw SFX_Cry0D_1_Ch3 + +SFX_Cry0E_1:: ; 80ba (2:40ba) + db ( $80 | CH4 ) + dw SFX_Cry0E_1_Ch1 + db CH5 + dw SFX_Cry0E_1_Ch2 + db CH7 + dw SFX_Cry0E_1_Ch3 + +SFX_Cry0F_1:: ; 80c3 (2:40c3) + db ( $80 | CH4 ) + dw SFX_Cry0F_1_Ch1 + db CH5 + dw SFX_Cry0F_1_Ch2 + db CH7 + dw SFX_Cry0F_1_Ch3 + +SFX_Cry10_1:: ; 80cc (2:40cc) + db ( $80 | CH4 ) + dw SFX_Cry10_1_Ch1 + db CH5 + dw SFX_Cry10_1_Ch2 + db CH7 + dw SFX_Cry10_1_Ch3 + +SFX_Cry11_1:: ; 80d5 (2:40d5) + db ( $80 | CH4 ) + dw SFX_Cry11_1_Ch1 + db CH5 + dw SFX_Cry11_1_Ch2 + db CH7 + dw SFX_Cry11_1_Ch3 + +SFX_Cry12_1:: ; 80de (2:40de) + db ( $80 | CH4 ) + dw SFX_Cry12_1_Ch1 + db CH5 + dw SFX_Cry12_1_Ch2 + db CH7 + dw SFX_Cry12_1_Ch3 + +SFX_Cry13_1:: ; 80e7 (2:40e7) + db ( $80 | CH4 ) + dw SFX_Cry13_1_Ch1 + db CH5 + dw SFX_Cry13_1_Ch2 + db CH7 + dw SFX_Cry13_1_Ch3 + +SFX_Cry14_1:: ; 80f0 (2:40f0) + db ( $80 | CH4 ) + dw SFX_Cry14_1_Ch1 + db CH5 + dw SFX_Cry14_1_Ch2 + db CH7 + dw SFX_Cry14_1_Ch3 + +SFX_Cry15_1:: ; 80f9 (2:40f9) + db ( $80 | CH4 ) + dw SFX_Cry15_1_Ch1 + db CH5 + dw SFX_Cry15_1_Ch2 + db CH7 + dw SFX_Cry15_1_Ch3 + +SFX_Cry16_1:: ; 8102 (2:4102) + db ( $80 | CH4 ) + dw SFX_Cry16_1_Ch1 + db CH5 + dw SFX_Cry16_1_Ch2 + db CH7 + dw SFX_Cry16_1_Ch3 + +SFX_Cry17_1:: ; 810b (2:410b) + db ( $80 | CH4 ) + dw SFX_Cry17_1_Ch1 + db CH5 + dw SFX_Cry17_1_Ch2 + db CH7 + dw SFX_Cry17_1_Ch3 + +SFX_Cry18_1:: ; 8114 (2:4114) + db ( $80 | CH4 ) + dw SFX_Cry18_1_Ch1 + db CH5 + dw SFX_Cry18_1_Ch2 + db CH7 + dw SFX_Cry18_1_Ch3 + +SFX_Cry19_1:: ; 811d (2:411d) + db ( $80 | CH4 ) + dw SFX_Cry19_1_Ch1 + db CH5 + dw SFX_Cry19_1_Ch2 + db CH7 + dw SFX_Cry19_1_Ch3 + +SFX_Cry1A_1:: ; 8126 (2:4126) + db ( $80 | CH4 ) + dw SFX_Cry1A_1_Ch1 + db CH5 + dw SFX_Cry1A_1_Ch2 + db CH7 + dw SFX_Cry1A_1_Ch3 + +SFX_Cry1B_1:: ; 812f (2:412f) + db ( $80 | CH4 ) + dw SFX_Cry1B_1_Ch1 + db CH5 + dw SFX_Cry1B_1_Ch2 + db CH7 + dw SFX_Cry1B_1_Ch3 + +SFX_Cry1C_1:: ; 8138 (2:4138) + db ( $80 | CH4 ) + dw SFX_Cry1C_1_Ch1 + db CH5 + dw SFX_Cry1C_1_Ch2 + db CH7 + dw SFX_Cry1C_1_Ch3 + +SFX_Cry1D_1:: ; 8141 (2:4141) + db ( $80 | CH4 ) + dw SFX_Cry1D_1_Ch1 + db CH5 + dw SFX_Cry1D_1_Ch2 + db CH7 + dw SFX_Cry1D_1_Ch3 + +SFX_Cry1E_1:: ; 814a (2:414a) + db ( $80 | CH4 ) + dw SFX_Cry1E_1_Ch1 + db CH5 + dw SFX_Cry1E_1_Ch2 + db CH7 + dw SFX_Cry1E_1_Ch3 + +SFX_Cry1F_1:: ; 8153 (2:4153) + db ( $80 | CH4 ) + dw SFX_Cry1F_1_Ch1 + db CH5 + dw SFX_Cry1F_1_Ch2 + db CH7 + dw SFX_Cry1F_1_Ch3 + +SFX_Cry20_1:: ; 815c (2:415c) + db ( $80 | CH4 ) + dw SFX_Cry20_1_Ch1 + db CH5 + dw SFX_Cry20_1_Ch2 + db CH7 + dw SFX_Cry20_1_Ch3 + +SFX_Cry21_1:: ; 8165 (2:4165) + db ( $80 | CH4 ) + dw SFX_Cry21_1_Ch1 + db CH5 + dw SFX_Cry21_1_Ch2 + db CH7 + dw SFX_Cry21_1_Ch3 + +SFX_Cry22_1:: ; 816e (2:416e) + db ( $80 | CH4 ) + dw SFX_Cry22_1_Ch1 + db CH5 + dw SFX_Cry22_1_Ch2 + db CH7 + dw SFX_Cry22_1_Ch3 + +SFX_Cry23_1:: ; 8177 (2:4177) + db ( $80 | CH4 ) + dw SFX_Cry23_1_Ch1 + db CH5 + dw SFX_Cry23_1_Ch2 + db CH7 + dw SFX_Cry23_1_Ch3 + +SFX_Cry24_1:: ; 8180 (2:4180) + db ( $80 | CH4 ) + dw SFX_Cry24_1_Ch1 + db CH5 + dw SFX_Cry24_1_Ch2 + db CH7 + dw SFX_Cry24_1_Ch3 + +SFX_Cry25_1:: ; 8189 (2:4189) + db ( $80 | CH4 ) + dw SFX_Cry25_1_Ch1 + db CH5 + dw SFX_Cry25_1_Ch2 + db CH7 + dw SFX_Cry25_1_Ch3 + +SFX_Get_Item1_1:: ; 8192 (2:4192) + db ( $80 | CH4 ) + dw SFX_Get_Item1_1_Ch1 + db CH5 + dw SFX_Get_Item1_1_Ch2 + db CH6 + dw SFX_Get_Item1_1_Ch3 + +SFX_Get_Item2_1:: ; 819b (2:419b) + db ( $80 | CH4 ) + dw SFX_Get_Item2_1_Ch1 + db CH5 + dw SFX_Get_Item2_1_Ch2 + db CH6 + dw SFX_Get_Item2_1_Ch3 + +SFX_Tink_1:: ; 81a4 (2:41a4) + db CH4 + dw SFX_Tink_1_Ch1 + +SFX_Heal_HP_1:: ; 81a7 (2:41a7) + db CH4 + dw SFX_Heal_HP_1_Ch1 + +SFX_Heal_Ailment_1:: ; 81aa (2:41aa) + db CH4 + dw SFX_Heal_Ailment_1_Ch1 + +SFX_Start_Menu_1:: ; 81ad (2:41ad) + db CH7 + dw SFX_Start_Menu_1_Ch1 + +SFX_Press_AB_1:: ; 81b0 (2:41b0) + db CH4 + dw SFX_Press_AB_1_Ch1 + +SFX_Pokedex_Rating_1:: ; 81b3 (2:41b3) + db ( $80 | CH4 ) + dw SFX_Pokedex_Rating_1_Ch1 + db CH5 + dw SFX_Pokedex_Rating_1_Ch2 + db CH6 + dw SFX_Pokedex_Rating_1_Ch3 + +SFX_Get_Key_Item_1:: ; 81bc (2:41bc) + db ( $80 | CH4 ) + dw SFX_Get_Key_Item_1_Ch1 + db CH5 + dw SFX_Get_Key_Item_1_Ch2 + db CH6 + dw SFX_Get_Key_Item_1_Ch3 + +SFX_Poisoned_1:: ; 81c5 (2:41c5) + db CH4 + dw SFX_Poisoned_1_Ch1 + +SFX_Trade_Machine_1:: ; 81c8 (2:41c8) + db CH4 + dw SFX_Trade_Machine_1_Ch1 + +SFX_Turn_On_PC_1:: ; 81cb (2:41cb) + db CH4 + dw SFX_Turn_On_PC_1_Ch1 + +SFX_Turn_Off_PC_1:: ; 81ce (2:41ce) + db CH4 + dw SFX_Turn_Off_PC_1_Ch1 + +SFX_Enter_PC_1:: ; 81d1 (2:41d1) + db CH4 + dw SFX_Enter_PC_1_Ch1 + +SFX_Shrink_1:: ; 81d4 (2:41d4) + db CH4 + dw SFX_Shrink_1_Ch1 + +SFX_Switch_1:: ; 81d7 (2:41d7) + db CH4 + dw SFX_Switch_1_Ch1 + +SFX_Healing_Machine_1:: ; 81da (2:41da) + db CH4 + dw SFX_Healing_Machine_1_Ch1 + +SFX_Teleport_Exit1_1:: ; 81dd (2:41dd) + db CH4 + dw SFX_Teleport_Exit1_1_Ch1 + +SFX_Teleport_Enter1_1:: ; 81e0 (2:41e0) + db CH4 + dw SFX_Teleport_Enter1_1_Ch1 + +SFX_Teleport_Exit2_1:: ; 81e3 (2:41e3) + db CH4 + dw SFX_Teleport_Exit2_1_Ch1 + +SFX_Ledge_1:: ; 81e6 (2:41e6) + db CH4 + dw SFX_Ledge_1_Ch1 + +SFX_Teleport_Enter2_1:: ; 81e9 (2:41e9) + db CH7 + dw SFX_Teleport_Enter2_1_Ch1 + +SFX_Fly_1:: ; 81ec (2:41ec) + db CH7 + dw SFX_Fly_1_Ch1 + +SFX_Denied_1:: ; 81ef (2:41ef) + db ( $40 | CH4 ) + dw SFX_Denied_1_Ch1 + db CH5 + dw SFX_Denied_1_Ch2 + +SFX_Arrow_Tiles_1:: ; 81f5 (2:41f5) + db CH4 + dw SFX_Arrow_Tiles_1_Ch1 + +SFX_Push_Boulder_1:: ; 81f8 (2:41f8) + db CH7 + dw SFX_Push_Boulder_1_Ch1 + +SFX_SS_Anne_Horn_1:: ; 81fb (2:41fb) + db ( $40 | CH4 ) + dw SFX_SS_Anne_Horn_1_Ch1 + db CH5 + dw SFX_SS_Anne_Horn_1_Ch2 + +SFX_Withdraw_Deposit_1:: ; 8201 (2:4201) + db CH4 + dw SFX_Withdraw_Deposit_1_Ch1 + +SFX_Cut_1:: ; 8204 (2:4204) + db CH7 + dw SFX_Cut_1_Ch1 + +SFX_Go_Inside_1:: ; 8207 (2:4207) + db CH7 + dw SFX_Go_Inside_1_Ch1 + +SFX_Swap_1:: ; 820a (2:420a) + db ( $40 | CH4 ) + dw SFX_Swap_1_Ch1 + db CH5 + dw SFX_Swap_1_Ch2 + +SFX_59_1:: ; 8210 (2:4210) + db ( $40 | CH4 ) + dw SFX_59_1_Ch1 + db CH5 + dw SFX_59_1_Ch2 + +SFX_Purchase_1:: ; 8216 (2:4216) + db ( $40 | CH4 ) + dw SFX_Purchase_1_Ch1 + db CH5 + dw SFX_Purchase_1_Ch2 + +SFX_Collision_1:: ; 821c (2:421c) + db CH4 + dw SFX_Collision_1_Ch1 + +SFX_Go_Outside_1:: ; 821f (2:421f) + db CH7 + dw SFX_Go_Outside_1_Ch1 + +SFX_Save_1:: ; 8222 (2:4222) + db ( $40 | CH4 ) + dw SFX_Save_1_Ch1 + db CH5 + dw SFX_Save_1_Ch2 + +SFX_Pokeflute:: ; 8228 (2:4228) + db CH2 + dw SFX_Pokeflute_Ch1 + +SFX_Safari_Zone_PA:: ; 822b (2:422b) + db CH4 + dw SFX_Safari_Zone_PA_Ch1 diff --git a/audio/headers/sfxheaders1f.asm b/audio/headers/sfxheaders1f.asm deleted file mode 100644 index 7af4755f..00000000 --- a/audio/headers/sfxheaders1f.asm +++ /dev/null @@ -1,596 +0,0 @@ -SFX_Headers_1f:: - db $ff, $ff, $ff ; padding - -SFX_Snare1_3:: ; 7c003 (1f:4003) - db CH7 - dw SFX_Snare1_3_Ch1 - -SFX_Snare2_3:: ; 7c006 (1f:4006) - db CH7 - dw SFX_Snare2_3_Ch1 - -SFX_Snare3_3:: ; 7c009 (1f:4009) - db CH7 - dw SFX_Snare3_3_Ch1 - -SFX_Snare4_3:: ; 7c00c (1f:400c) - db CH7 - dw SFX_Snare4_3_Ch1 - -SFX_Snare5_3:: ; 7c00f (1f:400f) - db CH7 - dw SFX_Snare5_3_Ch1 - -SFX_Triangle1_3:: ; 7c012 (1f:4012) - db CH7 - dw SFX_Triangle1_3_Ch1 - -SFX_Triangle2_3:: ; 7c015 (1f:4015) - db CH7 - dw SFX_Triangle2_3_Ch1 - -SFX_Snare6_3:: ; 7c018 (1f:4018) - db CH7 - dw SFX_Snare6_3_Ch1 - -SFX_Snare7_3:: ; 7c01b (1f:401b) - db CH7 - dw SFX_Snare7_3_Ch1 - -SFX_Snare8_3:: ; 7c01e (1f:401e) - db CH7 - dw SFX_Snare8_3_Ch1 - -SFX_Snare9_3:: ; 7c021 (1f:4021) - db CH7 - dw SFX_Snare9_3_Ch1 - -SFX_Cymbal1_3:: ; 7c024 (1f:4024) - db CH7 - dw SFX_Cymbal1_3_Ch1 - -SFX_Cymbal2_3:: ; 7c027 (1f:4027) - db CH7 - dw SFX_Cymbal2_3_Ch1 - -SFX_Cymbal3_3:: ; 7c02a (1f:402a) - db CH7 - dw SFX_Cymbal3_3_Ch1 - -SFX_Muted_Snare1_3:: ; 7c02d (1f:402d) - db CH7 - dw SFX_Muted_Snare1_3_Ch1 - -SFX_Triangle3_3:: ; 7c030 (1f:4030) - db CH7 - dw SFX_Triangle3_3_Ch1 - -SFX_Muted_Snare2_3:: ; 7c033 (1f:4033) - db CH7 - dw SFX_Muted_Snare2_3_Ch1 - -SFX_Muted_Snare3_3:: ; 7c036 (1f:4036) - db CH7 - dw SFX_Muted_Snare3_3_Ch1 - -SFX_Muted_Snare4_3:: ; 7c039 (1f:4039) - db CH7 - dw SFX_Muted_Snare4_3_Ch1 - -SFX_Cry00_3:: ; 7c03c (1f:403c) - db ( $80 | CH4 ) - dw SFX_Cry00_3_Ch1 - db CH5 - dw SFX_Cry00_3_Ch2 - db CH7 - dw SFX_Cry00_3_Ch3 - -SFX_Cry01_3:: ; 7c045 (1f:4045) - db ( $80 | CH4 ) - dw SFX_Cry01_3_Ch1 - db CH5 - dw SFX_Cry01_3_Ch2 - db CH7 - dw SFX_Cry01_3_Ch3 - -SFX_Cry02_3:: ; 7c04e (1f:404e) - db ( $80 | CH4 ) - dw SFX_Cry02_3_Ch1 - db CH5 - dw SFX_Cry02_3_Ch2 - db CH7 - dw SFX_Cry02_3_Ch3 - -SFX_Cry03_3:: ; 7c057 (1f:4057) - db ( $80 | CH4 ) - dw SFX_Cry03_3_Ch1 - db CH5 - dw SFX_Cry03_3_Ch2 - db CH7 - dw SFX_Cry03_3_Ch3 - -SFX_Cry04_3:: ; 7c060 (1f:4060) - db ( $80 | CH4 ) - dw SFX_Cry04_3_Ch1 - db CH5 - dw SFX_Cry04_3_Ch2 - db CH7 - dw SFX_Cry04_3_Ch3 - -SFX_Cry05_3:: ; 7c069 (1f:4069) - db ( $80 | CH4 ) - dw SFX_Cry05_3_Ch1 - db CH5 - dw SFX_Cry05_3_Ch2 - db CH7 - dw SFX_Cry05_3_Ch3 - -SFX_Cry06_3:: ; 7c072 (1f:4072) - db ( $80 | CH4 ) - dw SFX_Cry06_3_Ch1 - db CH5 - dw SFX_Cry06_3_Ch2 - db CH7 - dw SFX_Cry06_3_Ch3 - -SFX_Cry07_3:: ; 7c07b (1f:407b) - db ( $80 | CH4 ) - dw SFX_Cry07_3_Ch1 - db CH5 - dw SFX_Cry07_3_Ch2 - db CH7 - dw SFX_Cry07_3_Ch3 - -SFX_Cry08_3:: ; 7c084 (1f:4084) - db ( $80 | CH4 ) - dw SFX_Cry08_3_Ch1 - db CH5 - dw SFX_Cry08_3_Ch2 - db CH7 - dw SFX_Cry08_3_Ch3 - -SFX_Cry09_3:: ; 7c08d (1f:408d) - db ( $80 | CH4 ) - dw SFX_Cry09_3_Ch1 - db CH5 - dw SFX_Cry09_3_Ch2 - db CH7 - dw SFX_Cry09_3_Ch3 - -SFX_Cry0A_3:: ; 7c096 (1f:4096) - db ( $80 | CH4 ) - dw SFX_Cry0A_3_Ch1 - db CH5 - dw SFX_Cry0A_3_Ch2 - db CH7 - dw SFX_Cry0A_3_Ch3 - -SFX_Cry0B_3:: ; 7c09f (1f:409f) - db ( $80 | CH4 ) - dw SFX_Cry0B_3_Ch1 - db CH5 - dw SFX_Cry0B_3_Ch2 - db CH7 - dw SFX_Cry0B_3_Ch3 - -SFX_Cry0C_3:: ; 7c0a8 (1f:40a8) - db ( $80 | CH4 ) - dw SFX_Cry0C_3_Ch1 - db CH5 - dw SFX_Cry0C_3_Ch2 - db CH7 - dw SFX_Cry0C_3_Ch3 - -SFX_Cry0D_3:: ; 7c0b1 (1f:40b1) - db ( $80 | CH4 ) - dw SFX_Cry0D_3_Ch1 - db CH5 - dw SFX_Cry0D_3_Ch2 - db CH7 - dw SFX_Cry0D_3_Ch3 - -SFX_Cry0E_3:: ; 7c0ba (1f:40ba) - db ( $80 | CH4 ) - dw SFX_Cry0E_3_Ch1 - db CH5 - dw SFX_Cry0E_3_Ch2 - db CH7 - dw SFX_Cry0E_3_Ch3 - -SFX_Cry0F_3:: ; 7c0c3 (1f:40c3) - db ( $80 | CH4 ) - dw SFX_Cry0F_3_Ch1 - db CH5 - dw SFX_Cry0F_3_Ch2 - db CH7 - dw SFX_Cry0F_3_Ch3 - -SFX_Cry10_3:: ; 7c0cc (1f:40cc) - db ( $80 | CH4 ) - dw SFX_Cry10_3_Ch1 - db CH5 - dw SFX_Cry10_3_Ch2 - db CH7 - dw SFX_Cry10_3_Ch3 - -SFX_Cry11_3:: ; 7c0d5 (1f:40d5) - db ( $80 | CH4 ) - dw SFX_Cry11_3_Ch1 - db CH5 - dw SFX_Cry11_3_Ch2 - db CH7 - dw SFX_Cry11_3_Ch3 - -SFX_Cry12_3:: ; 7c0de (1f:40de) - db ( $80 | CH4 ) - dw SFX_Cry12_3_Ch1 - db CH5 - dw SFX_Cry12_3_Ch2 - db CH7 - dw SFX_Cry12_3_Ch3 - -SFX_Cry13_3:: ; 7c0e7 (1f:40e7) - db ( $80 | CH4 ) - dw SFX_Cry13_3_Ch1 - db CH5 - dw SFX_Cry13_3_Ch2 - db CH7 - dw SFX_Cry13_3_Ch3 - -SFX_Cry14_3:: ; 7c0f0 (1f:40f0) - db ( $80 | CH4 ) - dw SFX_Cry14_3_Ch1 - db CH5 - dw SFX_Cry14_3_Ch2 - db CH7 - dw SFX_Cry14_3_Ch3 - -SFX_Cry15_3:: ; 7c0f9 (1f:40f9) - db ( $80 | CH4 ) - dw SFX_Cry15_3_Ch1 - db CH5 - dw SFX_Cry15_3_Ch2 - db CH7 - dw SFX_Cry15_3_Ch3 - -SFX_Cry16_3:: ; 7c102 (1f:4102) - db ( $80 | CH4 ) - dw SFX_Cry16_3_Ch1 - db CH5 - dw SFX_Cry16_3_Ch2 - db CH7 - dw SFX_Cry16_3_Ch3 - -SFX_Cry17_3:: ; 7c10b (1f:410b) - db ( $80 | CH4 ) - dw SFX_Cry17_3_Ch1 - db CH5 - dw SFX_Cry17_3_Ch2 - db CH7 - dw SFX_Cry17_3_Ch3 - -SFX_Cry18_3:: ; 7c114 (1f:4114) - db ( $80 | CH4 ) - dw SFX_Cry18_3_Ch1 - db CH5 - dw SFX_Cry18_3_Ch2 - db CH7 - dw SFX_Cry18_3_Ch3 - -SFX_Cry19_3:: ; 7c11d (1f:411d) - db ( $80 | CH4 ) - dw SFX_Cry19_3_Ch1 - db CH5 - dw SFX_Cry19_3_Ch2 - db CH7 - dw SFX_Cry19_3_Ch3 - -SFX_Cry1A_3:: ; 7c126 (1f:4126) - db ( $80 | CH4 ) - dw SFX_Cry1A_3_Ch1 - db CH5 - dw SFX_Cry1A_3_Ch2 - db CH7 - dw SFX_Cry1A_3_Ch3 - -SFX_Cry1B_3:: ; 7c12f (1f:412f) - db ( $80 | CH4 ) - dw SFX_Cry1B_3_Ch1 - db CH5 - dw SFX_Cry1B_3_Ch2 - db CH7 - dw SFX_Cry1B_3_Ch3 - -SFX_Cry1C_3:: ; 7c138 (1f:4138) - db ( $80 | CH4 ) - dw SFX_Cry1C_3_Ch1 - db CH5 - dw SFX_Cry1C_3_Ch2 - db CH7 - dw SFX_Cry1C_3_Ch3 - -SFX_Cry1D_3:: ; 7c141 (1f:4141) - db ( $80 | CH4 ) - dw SFX_Cry1D_3_Ch1 - db CH5 - dw SFX_Cry1D_3_Ch2 - db CH7 - dw SFX_Cry1D_3_Ch3 - -SFX_Cry1E_3:: ; 7c14a (1f:414a) - db ( $80 | CH4 ) - dw SFX_Cry1E_3_Ch1 - db CH5 - dw SFX_Cry1E_3_Ch2 - db CH7 - dw SFX_Cry1E_3_Ch3 - -SFX_Cry1F_3:: ; 7c153 (1f:4153) - db ( $80 | CH4 ) - dw SFX_Cry1F_3_Ch1 - db CH5 - dw SFX_Cry1F_3_Ch2 - db CH7 - dw SFX_Cry1F_3_Ch3 - -SFX_Cry20_3:: ; 7c15c (1f:415c) - db ( $80 | CH4 ) - dw SFX_Cry20_3_Ch1 - db CH5 - dw SFX_Cry20_3_Ch2 - db CH7 - dw SFX_Cry20_3_Ch3 - -SFX_Cry21_3:: ; 7c165 (1f:4165) - db ( $80 | CH4 ) - dw SFX_Cry21_3_Ch1 - db CH5 - dw SFX_Cry21_3_Ch2 - db CH7 - dw SFX_Cry21_3_Ch3 - -SFX_Cry22_3:: ; 7c16e (1f:416e) - db ( $80 | CH4 ) - dw SFX_Cry22_3_Ch1 - db CH5 - dw SFX_Cry22_3_Ch2 - db CH7 - dw SFX_Cry22_3_Ch3 - -SFX_Cry23_3:: ; 7c177 (1f:4177) - db ( $80 | CH4 ) - dw SFX_Cry23_3_Ch1 - db CH5 - dw SFX_Cry23_3_Ch2 - db CH7 - dw SFX_Cry23_3_Ch3 - -SFX_Cry24_3:: ; 7c180 (1f:4180) - db ( $80 | CH4 ) - dw SFX_Cry24_3_Ch1 - db CH5 - dw SFX_Cry24_3_Ch2 - db CH7 - dw SFX_Cry24_3_Ch3 - -SFX_Cry25_3:: ; 7c189 (1f:4189) - db ( $80 | CH4 ) - dw SFX_Cry25_3_Ch1 - db CH5 - dw SFX_Cry25_3_Ch2 - db CH7 - dw SFX_Cry25_3_Ch3 - -SFX_Get_Item1_3:: ; 7c192 (1f:4192) - db ( $80 | CH4 ) - dw SFX_Get_Item1_3_Ch1 - db CH5 - dw SFX_Get_Item1_3_Ch2 - db CH6 - dw SFX_Get_Item1_3_Ch3 - -SFX_Get_Item2_3:: ; 7c19b (1f:419b) - db ( $80 | CH4 ) - dw SFX_Get_Item2_3_Ch1 - db CH5 - dw SFX_Get_Item2_3_Ch2 - db CH6 - dw SFX_Get_Item2_3_Ch3 - -SFX_Tink_3:: ; 7c1a4 (1f:41a4) - db CH4 - dw SFX_Tink_3_Ch1 - -SFX_Heal_HP_3:: ; 7c1a7 (1f:41a7) - db CH4 - dw SFX_Heal_HP_3_Ch1 - -SFX_Heal_Ailment_3:: ; 7c1aa (1f:41aa) - db CH4 - dw SFX_Heal_Ailment_3_Ch1 - -SFX_Start_Menu_3:: ; 7c1ad (1f:41ad) - db CH7 - dw SFX_Start_Menu_3_Ch1 - -SFX_Press_AB_3:: ; 7c1b0 (1f:41b0) - db CH4 - dw SFX_Press_AB_3_Ch1 - -SFX_Pokedex_Rating_3:: ; 7c1b3 (1f:41b3) - db ( $80 | CH4 ) - dw SFX_Pokedex_Rating_3_Ch1 - db CH5 - dw SFX_Pokedex_Rating_3_Ch2 - db CH6 - dw SFX_Pokedex_Rating_3_Ch3 - -SFX_Get_Key_Item_3:: ; 7c1bc (1f:41bc) - db ( $80 | CH4 ) - dw SFX_Get_Key_Item_3_Ch1 - db CH5 - dw SFX_Get_Key_Item_3_Ch2 - db CH6 - dw SFX_Get_Key_Item_3_Ch3 - -SFX_Poisoned_3:: ; 7c1c5 (1f:41c5) - db CH4 - dw SFX_Poisoned_3_Ch1 - -SFX_Trade_Machine_3:: ; 7c1c8 (1f:41c8) - db CH4 - dw SFX_Trade_Machine_3_Ch1 - -SFX_Turn_On_PC_3:: ; 7c1cb (1f:41cb) - db CH4 - dw SFX_Turn_On_PC_3_Ch1 - -SFX_Turn_Off_PC_3:: ; 7c1ce (1f:41ce) - db CH4 - dw SFX_Turn_Off_PC_3_Ch1 - -SFX_Enter_PC_3:: ; 7c1d1 (1f:41d1) - db CH4 - dw SFX_Enter_PC_3_Ch1 - -SFX_Shrink_3:: ; 7c1d4 (1f:41d4) - db CH4 - dw SFX_Shrink_3_Ch1 - -SFX_Switch_3:: ; 7c1d7 (1f:41d7) - db CH4 - dw SFX_Switch_3_Ch1 - -SFX_Healing_Machine_3:: ; 7c1da (1f:41da) - db CH4 - dw SFX_Healing_Machine_3_Ch1 - -SFX_Teleport_Exit1_3:: ; 7c1dd (1f:41dd) - db CH4 - dw SFX_Teleport_Exit1_3_Ch1 - -SFX_Teleport_Enter1_3:: ; 7c1e0 (1f:41e0) - db CH4 - dw SFX_Teleport_Enter1_3_Ch1 - -SFX_Teleport_Exit2_3:: ; 7c1e3 (1f:41e3) - db CH4 - dw SFX_Teleport_Exit2_3_Ch1 - -SFX_Ledge_3:: ; 7c1e6 (1f:41e6) - db CH4 - dw SFX_Ledge_3_Ch1 - -SFX_Teleport_Enter2_3:: ; 7c1e9 (1f:41e9) - db CH7 - dw SFX_Teleport_Enter2_3_Ch1 - -SFX_Fly_3:: ; 7c1ec (1f:41ec) - db CH7 - dw SFX_Fly_3_Ch1 - -SFX_Denied_3:: ; 7c1ef (1f:41ef) - db ( $40 | CH4 ) - dw SFX_Denied_3_Ch1 - db CH5 - dw SFX_Denied_3_Ch2 - -SFX_Arrow_Tiles_3:: ; 7c1f5 (1f:41f5) - db CH4 - dw SFX_Arrow_Tiles_3_Ch1 - -SFX_Push_Boulder_3:: ; 7c1f8 (1f:41f8) - db CH7 - dw SFX_Push_Boulder_3_Ch1 - -SFX_SS_Anne_Horn_3:: ; 7c1fb (1f:41fb) - db ( $40 | CH4 ) - dw SFX_SS_Anne_Horn_3_Ch1 - db CH5 - dw SFX_SS_Anne_Horn_3_Ch2 - -SFX_Withdraw_Deposit_3:: ; 7c201 (1f:4201) - db CH4 - dw SFX_Withdraw_Deposit_3_Ch1 - -SFX_Cut_3:: ; 7c204 (1f:4204) - db CH7 - dw SFX_Cut_3_Ch1 - -SFX_Go_Inside_3:: ; 7c207 (1f:4207) - db CH7 - dw SFX_Go_Inside_3_Ch1 - -SFX_Swap_3:: ; 7c20a (1f:420a) - db ( $40 | CH4 ) - dw SFX_Swap_3_Ch1 - db CH5 - dw SFX_Swap_3_Ch2 - -SFX_59_3:: ; 7c210 (1f:4210) - db ( $40 | CH4 ) - dw SFX_59_3_Ch1 - db CH5 - dw SFX_59_3_Ch2 - -SFX_Purchase_3:: ; 7c216 (1f:4216) - db ( $40 | CH4 ) - dw SFX_Purchase_3_Ch1 - db CH5 - dw SFX_Purchase_3_Ch2 - -SFX_Collision_3:: ; 7c21c (1f:421c) - db CH4 - dw SFX_Collision_3_Ch1 - -SFX_Go_Outside_3:: ; 7c21f (1f:421f) - db CH7 - dw SFX_Go_Outside_3_Ch1 - -SFX_Save_3:: ; 7c222 (1f:4222) - db ( $40 | CH4 ) - dw SFX_Save_3_Ch1 - db CH5 - dw SFX_Save_3_Ch2 - -SFX_Intro_Lunge:: ; 7c228 (1f:4228) - db CH7 - dw SFX_Intro_Lunge_Ch1 - -SFX_Intro_Hip:: ; 7c22b (1f:422b) - db CH4 - dw SFX_Intro_Hip_Ch1 - -SFX_Intro_Hop:: ; 7c22e (1f:422e) - db CH4 - dw SFX_Intro_Hop_Ch1 - -SFX_Intro_Raise:: ; 7c231 (1f:4231) - db CH7 - dw SFX_Intro_Raise_Ch1 - -SFX_Intro_Crash:: ; 7c234 (1f:4234) - db CH7 - dw SFX_Intro_Crash_Ch1 - -SFX_Intro_Whoosh:: ; 7c237 (1f:4237) - db CH7 - dw SFX_Intro_Whoosh_Ch1 - -SFX_Slots_Stop_Wheel:: ; 7c23a (1f:423a) - db CH4 - dw SFX_Slots_Stop_Wheel_Ch1 - -SFX_Slots_Reward:: ; 7c23d (1f:423d) - db CH4 - dw SFX_Slots_Reward_Ch1 - -SFX_Slots_New_Spin:: ; 7c240 (1f:4240) - db ( $40 | CH4 ) - dw SFX_Slots_New_Spin_Ch1 - db CH5 - dw SFX_Slots_New_Spin_Ch2 - -SFX_Shooting_Star:: ; 7c246 (1f:4246) - db CH4 - dw SFX_Shooting_Star_Ch1 diff --git a/audio/headers/sfxheaders2.asm b/audio/headers/sfxheaders2.asm new file mode 100644 index 00000000..1b30f5cc --- /dev/null +++ b/audio/headers/sfxheaders2.asm @@ -0,0 +1,706 @@ +SFX_Headers_2:: + db $ff, $ff, $ff ; padding + +SFX_Snare1_2:: ; 20003 (8:4003) + db CH7 + dw SFX_Snare1_2_Ch1 + +SFX_Snare2_2:: ; 20006 (8:4006) + db CH7 + dw SFX_Snare2_2_Ch1 + +SFX_Snare3_2:: ; 20009 (8:4009) + db CH7 + dw SFX_Snare3_2_Ch1 + +SFX_Snare4_2:: ; 2000c (8:400c) + db CH7 + dw SFX_Snare4_2_Ch1 + +SFX_Snare5_2:: ; 2000f (8:400f) + db CH7 + dw SFX_Snare5_2_Ch1 + +SFX_Triangle1_2:: ; 20012 (8:4012) + db CH7 + dw SFX_Triangle1_2_Ch1 + +SFX_Triangle2_2:: ; 20015 (8:4015) + db CH7 + dw SFX_Triangle2_2_Ch1 + +SFX_Snare6_2:: ; 20018 (8:4018) + db CH7 + dw SFX_Snare6_2_Ch1 + +SFX_Snare7_2:: ; 2001b (8:401b) + db CH7 + dw SFX_Snare7_2_Ch1 + +SFX_Snare8_2:: ; 2001e (8:401e) + db CH7 + dw SFX_Snare8_2_Ch1 + +SFX_Snare9_2:: ; 20021 (8:4021) + db CH7 + dw SFX_Snare9_2_Ch1 + +SFX_Cymbal1_2:: ; 20024 (8:4024) + db CH7 + dw SFX_Cymbal1_2_Ch1 + +SFX_Cymbal2_2:: ; 20027 (8:4027) + db CH7 + dw SFX_Cymbal2_2_Ch1 + +SFX_Cymbal3_2:: ; 2002a (8:402a) + db CH7 + dw SFX_Cymbal3_2_Ch1 + +SFX_Muted_Snare1_2:: ; 2002d (8:402d) + db CH7 + dw SFX_Muted_Snare1_2_Ch1 + +SFX_Triangle3_2:: ; 20030 (8:4030) + db CH7 + dw SFX_Triangle3_2_Ch1 + +SFX_Muted_Snare2_2:: ; 20033 (8:4033) + db CH7 + dw SFX_Muted_Snare2_2_Ch1 + +SFX_Muted_Snare3_2:: ; 20036 (8:4036) + db CH7 + dw SFX_Muted_Snare3_2_Ch1 + +SFX_Muted_Snare4_2:: ; 20039 (8:4039) + db CH7 + dw SFX_Muted_Snare4_2_Ch1 + +SFX_Cry00_2:: ; 2003c (8:403c) + db ( $80 | CH4 ) + dw SFX_Cry00_2_Ch1 + db CH5 + dw SFX_Cry00_2_Ch2 + db CH7 + dw SFX_Cry00_2_Ch3 + +SFX_Cry01_2:: ; 20045 (8:4045) + db ( $80 | CH4 ) + dw SFX_Cry01_2_Ch1 + db CH5 + dw SFX_Cry01_2_Ch2 + db CH7 + dw SFX_Cry01_2_Ch3 + +SFX_Cry02_2:: ; 2004e (8:404e) + db ( $80 | CH4 ) + dw SFX_Cry02_2_Ch1 + db CH5 + dw SFX_Cry02_2_Ch2 + db CH7 + dw SFX_Cry02_2_Ch3 + +SFX_Cry03_2:: ; 20057 (8:4057) + db ( $80 | CH4 ) + dw SFX_Cry03_2_Ch1 + db CH5 + dw SFX_Cry03_2_Ch2 + db CH7 + dw SFX_Cry03_2_Ch3 + +SFX_Cry04_2:: ; 20060 (8:4060) + db ( $80 | CH4 ) + dw SFX_Cry04_2_Ch1 + db CH5 + dw SFX_Cry04_2_Ch2 + db CH7 + dw SFX_Cry04_2_Ch3 + +SFX_Cry05_2:: ; 20069 (8:4069) + db ( $80 | CH4 ) + dw SFX_Cry05_2_Ch1 + db CH5 + dw SFX_Cry05_2_Ch2 + db CH7 + dw SFX_Cry05_2_Ch3 + +SFX_Cry06_2:: ; 20072 (8:4072) + db ( $80 | CH4 ) + dw SFX_Cry06_2_Ch1 + db CH5 + dw SFX_Cry06_2_Ch2 + db CH7 + dw SFX_Cry06_2_Ch3 + +SFX_Cry07_2:: ; 2007b (8:407b) + db ( $80 | CH4 ) + dw SFX_Cry07_2_Ch1 + db CH5 + dw SFX_Cry07_2_Ch2 + db CH7 + dw SFX_Cry07_2_Ch3 + +SFX_Cry08_2:: ; 20084 (8:4084) + db ( $80 | CH4 ) + dw SFX_Cry08_2_Ch1 + db CH5 + dw SFX_Cry08_2_Ch2 + db CH7 + dw SFX_Cry08_2_Ch3 + +SFX_Cry09_2:: ; 2008d (8:408d) + db ( $80 | CH4 ) + dw SFX_Cry09_2_Ch1 + db CH5 + dw SFX_Cry09_2_Ch2 + db CH7 + dw SFX_Cry09_2_Ch3 + +SFX_Cry0A_2:: ; 20096 (8:4096) + db ( $80 | CH4 ) + dw SFX_Cry0A_2_Ch1 + db CH5 + dw SFX_Cry0A_2_Ch2 + db CH7 + dw SFX_Cry0A_2_Ch3 + +SFX_Cry0B_2:: ; 2009f (8:409f) + db ( $80 | CH4 ) + dw SFX_Cry0B_2_Ch1 + db CH5 + dw SFX_Cry0B_2_Ch2 + db CH7 + dw SFX_Cry0B_2_Ch3 + +SFX_Cry0C_2:: ; 200a8 (8:40a8) + db ( $80 | CH4 ) + dw SFX_Cry0C_2_Ch1 + db CH5 + dw SFX_Cry0C_2_Ch2 + db CH7 + dw SFX_Cry0C_2_Ch3 + +SFX_Cry0D_2:: ; 200b1 (8:40b1) + db ( $80 | CH4 ) + dw SFX_Cry0D_2_Ch1 + db CH5 + dw SFX_Cry0D_2_Ch2 + db CH7 + dw SFX_Cry0D_2_Ch3 + +SFX_Cry0E_2:: ; 200ba (8:40ba) + db ( $80 | CH4 ) + dw SFX_Cry0E_2_Ch1 + db CH5 + dw SFX_Cry0E_2_Ch2 + db CH7 + dw SFX_Cry0E_2_Ch3 + +SFX_Cry0F_2:: ; 200c3 (8:40c3) + db ( $80 | CH4 ) + dw SFX_Cry0F_2_Ch1 + db CH5 + dw SFX_Cry0F_2_Ch2 + db CH7 + dw SFX_Cry0F_2_Ch3 + +SFX_Cry10_2:: ; 200cc (8:40cc) + db ( $80 | CH4 ) + dw SFX_Cry10_2_Ch1 + db CH5 + dw SFX_Cry10_2_Ch2 + db CH7 + dw SFX_Cry10_2_Ch3 + +SFX_Cry11_2:: ; 200d5 (8:40d5) + db ( $80 | CH4 ) + dw SFX_Cry11_2_Ch1 + db CH5 + dw SFX_Cry11_2_Ch2 + db CH7 + dw SFX_Cry11_2_Ch3 + +SFX_Cry12_2:: ; 200de (8:40de) + db ( $80 | CH4 ) + dw SFX_Cry12_2_Ch1 + db CH5 + dw SFX_Cry12_2_Ch2 + db CH7 + dw SFX_Cry12_2_Ch3 + +SFX_Cry13_2:: ; 200e7 (8:40e7) + db ( $80 | CH4 ) + dw SFX_Cry13_2_Ch1 + db CH5 + dw SFX_Cry13_2_Ch2 + db CH7 + dw SFX_Cry13_2_Ch3 + +SFX_Cry14_2:: ; 200f0 (8:40f0) + db ( $80 | CH4 ) + dw SFX_Cry14_2_Ch1 + db CH5 + dw SFX_Cry14_2_Ch2 + db CH7 + dw SFX_Cry14_2_Ch3 + +SFX_Cry15_2:: ; 200f9 (8:40f9) + db ( $80 | CH4 ) + dw SFX_Cry15_2_Ch1 + db CH5 + dw SFX_Cry15_2_Ch2 + db CH7 + dw SFX_Cry15_2_Ch3 + +SFX_Cry16_2:: ; 20102 (8:4102) + db ( $80 | CH4 ) + dw SFX_Cry16_2_Ch1 + db CH5 + dw SFX_Cry16_2_Ch2 + db CH7 + dw SFX_Cry16_2_Ch3 + +SFX_Cry17_2:: ; 2010b (8:410b) + db ( $80 | CH4 ) + dw SFX_Cry17_2_Ch1 + db CH5 + dw SFX_Cry17_2_Ch2 + db CH7 + dw SFX_Cry17_2_Ch3 + +SFX_Cry18_2:: ; 20114 (8:4114) + db ( $80 | CH4 ) + dw SFX_Cry18_2_Ch1 + db CH5 + dw SFX_Cry18_2_Ch2 + db CH7 + dw SFX_Cry18_2_Ch3 + +SFX_Cry19_2:: ; 2011d (8:411d) + db ( $80 | CH4 ) + dw SFX_Cry19_2_Ch1 + db CH5 + dw SFX_Cry19_2_Ch2 + db CH7 + dw SFX_Cry19_2_Ch3 + +SFX_Cry1A_2:: ; 20126 (8:4126) + db ( $80 | CH4 ) + dw SFX_Cry1A_2_Ch1 + db CH5 + dw SFX_Cry1A_2_Ch2 + db CH7 + dw SFX_Cry1A_2_Ch3 + +SFX_Cry1B_2:: ; 2012f (8:412f) + db ( $80 | CH4 ) + dw SFX_Cry1B_2_Ch1 + db CH5 + dw SFX_Cry1B_2_Ch2 + db CH7 + dw SFX_Cry1B_2_Ch3 + +SFX_Cry1C_2:: ; 20138 (8:4138) + db ( $80 | CH4 ) + dw SFX_Cry1C_2_Ch1 + db CH5 + dw SFX_Cry1C_2_Ch2 + db CH7 + dw SFX_Cry1C_2_Ch3 + +SFX_Cry1D_2:: ; 20141 (8:4141) + db ( $80 | CH4 ) + dw SFX_Cry1D_2_Ch1 + db CH5 + dw SFX_Cry1D_2_Ch2 + db CH7 + dw SFX_Cry1D_2_Ch3 + +SFX_Cry1E_2:: ; 2014a (8:414a) + db ( $80 | CH4 ) + dw SFX_Cry1E_2_Ch1 + db CH5 + dw SFX_Cry1E_2_Ch2 + db CH7 + dw SFX_Cry1E_2_Ch3 + +SFX_Cry1F_2:: ; 20153 (8:4153) + db ( $80 | CH4 ) + dw SFX_Cry1F_2_Ch1 + db CH5 + dw SFX_Cry1F_2_Ch2 + db CH7 + dw SFX_Cry1F_2_Ch3 + +SFX_Cry20_2:: ; 2015c (8:415c) + db ( $80 | CH4 ) + dw SFX_Cry20_2_Ch1 + db CH5 + dw SFX_Cry20_2_Ch2 + db CH7 + dw SFX_Cry20_2_Ch3 + +SFX_Cry21_2:: ; 20165 (8:4165) + db ( $80 | CH4 ) + dw SFX_Cry21_2_Ch1 + db CH5 + dw SFX_Cry21_2_Ch2 + db CH7 + dw SFX_Cry21_2_Ch3 + +SFX_Cry22_2:: ; 2016e (8:416e) + db ( $80 | CH4 ) + dw SFX_Cry22_2_Ch1 + db CH5 + dw SFX_Cry22_2_Ch2 + db CH7 + dw SFX_Cry22_2_Ch3 + +SFX_Cry23_2:: ; 20177 (8:4177) + db ( $80 | CH4 ) + dw SFX_Cry23_2_Ch1 + db CH5 + dw SFX_Cry23_2_Ch2 + db CH7 + dw SFX_Cry23_2_Ch3 + +SFX_Cry24_2:: ; 20180 (8:4180) + db ( $80 | CH4 ) + dw SFX_Cry24_2_Ch1 + db CH5 + dw SFX_Cry24_2_Ch2 + db CH7 + dw SFX_Cry24_2_Ch3 + +SFX_Cry25_2:: ; 20189 (8:4189) + db ( $80 | CH4 ) + dw SFX_Cry25_2_Ch1 + db CH5 + dw SFX_Cry25_2_Ch2 + db CH7 + dw SFX_Cry25_2_Ch3 + +SFX_Level_Up:: ; 20192 (8:4192) + db ( $80 | CH4 ) + dw SFX_Level_Up_Ch1 + db CH5 + dw SFX_Level_Up_Ch2 + db CH6 + dw SFX_Level_Up_Ch3 + +SFX_Get_Item2_2:: ; 2019b (8:419b) + db ( $80 | CH4 ) + dw SFX_Get_Item2_2_Ch1 + db CH5 + dw SFX_Get_Item2_2_Ch2 + db CH6 + dw SFX_Get_Item2_2_Ch3 + +SFX_Tink_2:: ; 201a4 (8:41a4) + db CH4 + dw SFX_Tink_2_Ch1 + +SFX_Heal_HP_2:: ; 201a7 (8:41a7) + db CH4 + dw SFX_Heal_HP_2_Ch1 + +SFX_Heal_Ailment_2:: ; 201aa (8:41aa) + db CH4 + dw SFX_Heal_Ailment_2_Ch1 + +SFX_Start_Menu_2:: ; 201ad (8:41ad) + db CH7 + dw SFX_Start_Menu_2_Ch1 + +SFX_Press_AB_2:: ; 201b0 (8:41b0) + db CH4 + dw SFX_Press_AB_2_Ch1 + +SFX_Ball_Toss:: ; 201b3 (8:41b3) + db ( $40 | CH4 ) + dw SFX_Ball_Toss_Ch1 + db CH5 + dw SFX_Ball_Toss_Ch2 + +SFX_Ball_Poof:: ; 201b9 (8:41b9) + db ( $40 | CH4 ) + dw SFX_Ball_Poof_Ch1 + db CH7 + dw SFX_Ball_Poof_Ch2 + +SFX_Faint_Thud:: ; 201bf (8:41bf) + db ( $40 | CH4 ) + dw SFX_Faint_Thud_Ch1 + db CH7 + dw SFX_Faint_Thud_Ch2 + +SFX_Run:: ; 201c5 (8:41c5) + db CH7 + dw SFX_Run_Ch1 + +SFX_Dex_Page_Added:: ; 201c8 (8:41c8) + db ( $40 | CH4 ) + dw SFX_Dex_Page_Added_Ch1 + db CH5 + dw SFX_Dex_Page_Added_Ch2 + +SFX_Caught_Mon:: ; 201ce (8:41ce) + db ( $80 | CH4 ) + dw SFX_Caught_Mon_Ch1 + db CH5 + dw SFX_Caught_Mon_Ch2 + db CH6 + dw SFX_Caught_Mon_Ch3 + +SFX_Peck:: ; 201d7 (8:41d7) + db CH7 + dw SFX_Peck_Ch1 + +SFX_Faint_Fall:: ; 201da (8:41da) + db CH4 + dw SFX_Faint_Fall_Ch1 + +SFX_Battle_09:: ; 201dd (8:41dd) + db CH4 + dw SFX_Battle_09_Ch1 + +SFX_Pound:: ; 201e0 (8:41e0) + db CH7 + dw SFX_Pound_Ch1 + +SFX_Battle_0B:: ; 201e3 (8:41e3) + db CH7 + dw SFX_Battle_0B_Ch1 + +SFX_Battle_0C:: ; 201e6 (8:41e6) + db CH7 + dw SFX_Battle_0C_Ch1 + +SFX_Battle_0D:: ; 201e9 (8:41e9) + db CH7 + dw SFX_Battle_0D_Ch1 + +SFX_Battle_0E:: ; 201ec (8:41ec) + db CH7 + dw SFX_Battle_0E_Ch1 + +SFX_Battle_0F:: ; 201ef (8:41ef) + db CH7 + dw SFX_Battle_0F_Ch1 + +SFX_Damage:: ; 201f2 (8:41f2) + db CH7 + dw SFX_Damage_Ch1 + +SFX_Not_Very_Effective:: ; 201f5 (8:41f5) + db CH7 + dw SFX_Not_Very_Effective_Ch1 + +SFX_Battle_12:: ; 201f8 (8:41f8) + db CH7 + dw SFX_Battle_12_Ch1 + +SFX_Battle_13:: ; 201fb (8:41fb) + db CH7 + dw SFX_Battle_13_Ch1 + +SFX_Battle_14:: ; 201fe (8:41fe) + db CH7 + dw SFX_Battle_14_Ch1 + +SFX_Vine_Whip:: ; 20201 (8:4201) + db CH7 + dw SFX_Vine_Whip_Ch1 + +SFX_Battle_16:: ; 20204 (8:4204) + db CH7 + dw SFX_Battle_16_Ch1 + +SFX_Battle_17:: ; 20207 (8:4207) + db CH7 + dw SFX_Battle_17_Ch1 + +SFX_Battle_18:: ; 2020a (8:420a) + db CH7 + dw SFX_Battle_18_Ch1 + +SFX_Battle_19:: ; 2020d (8:420d) + db CH7 + dw SFX_Battle_19_Ch1 + +SFX_Super_Effective:: ; 20210 (8:4210) + db CH7 + dw SFX_Super_Effective_Ch1 + +SFX_Battle_1B:: ; 20213 (8:4213) + db CH7 + dw SFX_Battle_1B_Ch1 + +SFX_Battle_1C:: ; 20216 (8:4216) + db CH7 + dw SFX_Battle_1C_Ch1 + +SFX_Doubleslap:: ; 20219 (8:4219) + db CH7 + dw SFX_Doubleslap_Ch1 + +SFX_Battle_1E:: ; 2021c (8:421c) + db ( $40 | CH4 ) + dw SFX_Battle_1E_Ch1 + db CH7 + dw SFX_Battle_1E_Ch2 + +SFX_Horn_Drill:: ; 20222 (8:4222) + db CH7 + dw SFX_Horn_Drill_Ch1 + +SFX_Battle_20:: ; 20225 (8:4225) + db CH7 + dw SFX_Battle_20_Ch1 + +SFX_Battle_21:: ; 20228 (8:4228) + db CH7 + dw SFX_Battle_21_Ch1 + +SFX_Battle_22:: ; 2022b (8:422b) + db CH7 + dw SFX_Battle_22_Ch1 + +SFX_Battle_23:: ; 2022e (8:422e) + db CH7 + dw SFX_Battle_23_Ch1 + +SFX_Battle_24:: ; 20231 (8:4231) + db ( $40 | CH4 ) + dw SFX_Battle_24_Ch1 + db CH7 + dw SFX_Battle_24_Ch2 + +SFX_Battle_25:: ; 20237 (8:4237) + db CH7 + dw SFX_Battle_25_Ch1 + +SFX_Battle_26:: ; 2023a (8:423a) + db CH7 + dw SFX_Battle_26_Ch1 + +SFX_Battle_27:: ; 2023d (8:423d) + db ( $80 | CH4 ) + dw SFX_Battle_27_Ch1 + db CH5 + dw SFX_Battle_27_Ch2 + db CH7 + dw SFX_Battle_27_Ch3 + +SFX_Battle_28:: ; 20246 (8:4246) + db ( $80 | CH4 ) + dw SFX_Battle_28_Ch1 + db CH5 + dw SFX_Battle_28_Ch2 + db CH7 + dw SFX_Battle_28_Ch3 + +SFX_Battle_29:: ; 2024f (8:424f) + db ( $40 | CH4 ) + dw SFX_Battle_29_Ch1 + db CH7 + dw SFX_Battle_29_Ch2 + +SFX_Battle_2A:: ; 20255 (8:4255) + db ( $80 | CH4 ) + dw SFX_Battle_2A_Ch1 + db CH5 + dw SFX_Battle_2A_Ch2 + db CH7 + dw SFX_Battle_2A_Ch3 + +SFX_Battle_2B:: ; 2025e (8:425e) + db ( $40 | CH4 ) + dw SFX_Battle_2B_Ch1 + db CH7 + dw SFX_Battle_2B_Ch2 + +SFX_Battle_2C:: ; 20264 (8:4264) + db ( $80 | CH4 ) + dw SFX_Battle_2C_Ch1 + db CH5 + dw SFX_Battle_2C_Ch2 + db CH7 + dw SFX_Battle_2C_Ch3 + +SFX_Psybeam:: ; 2026d (8:426d) + db ( $80 | CH4 ) + dw SFX_Psybeam_Ch1 + db CH5 + dw SFX_Psybeam_Ch2 + db CH7 + dw SFX_Psybeam_Ch3 + +SFX_Battle_2E:: ; 20276 (8:4276) + db ( $80 | CH4 ) + dw SFX_Battle_2E_Ch1 + db CH5 + dw SFX_Battle_2E_Ch2 + db CH7 + dw SFX_Battle_2E_Ch3 + +SFX_Battle_2F:: ; 2027f (8:427f) + db ( $80 | CH4 ) + dw SFX_Battle_2F_Ch1 + db CH5 + dw SFX_Battle_2F_Ch2 + db CH7 + dw SFX_Battle_2F_Ch3 + +SFX_Psychic_M:: ; 20288 (8:4288) + db ( $80 | CH4 ) + dw SFX_Psychic_M_Ch1 + db CH5 + dw SFX_Psychic_M_Ch2 + db CH7 + dw SFX_Psychic_M_Ch3 + +SFX_Battle_31:: ; 20291 (8:4291) + db ( $40 | CH4 ) + dw SFX_Battle_31_Ch1 + db CH5 + dw SFX_Battle_31_Ch2 + +SFX_Battle_32:: ; 20297 (8:4297) + db ( $40 | CH4 ) + dw SFX_Battle_32_Ch1 + db CH5 + dw SFX_Battle_32_Ch2 + +SFX_Battle_33:: ; 2029d (8:429d) + db ( $40 | CH4 ) + dw SFX_Battle_33_Ch1 + db CH5 + dw SFX_Battle_33_Ch2 + +SFX_Battle_34:: ; 202a3 (8:42a3) + db ( $80 | CH4 ) + dw SFX_Battle_34_Ch1 + db CH5 + dw SFX_Battle_34_Ch2 + db CH7 + dw SFX_Battle_34_Ch3 + +SFX_Battle_35:: ; 202ac (8:42ac) + db ( $40 | CH4 ) + dw SFX_Battle_35_Ch1 + db CH5 + dw SFX_Battle_35_Ch2 + +SFX_Battle_36:: ; 202b2 (8:42b2) + db ( $80 | CH4 ) + dw SFX_Battle_36_Ch1 + db CH5 + dw SFX_Battle_36_Ch2 + db CH7 + dw SFX_Battle_36_Ch3 + +SFX_Silph_Scope:: ; 202bb (8:42bb) + db CH4 + dw SFX_Silph_Scope_Ch1 diff --git a/audio/headers/sfxheaders3.asm b/audio/headers/sfxheaders3.asm new file mode 100644 index 00000000..321a33f5 --- /dev/null +++ b/audio/headers/sfxheaders3.asm @@ -0,0 +1,596 @@ +SFX_Headers_3:: + db $ff, $ff, $ff ; padding + +SFX_Snare1_3:: ; 7c003 (1f:4003) + db CH7 + dw SFX_Snare1_3_Ch1 + +SFX_Snare2_3:: ; 7c006 (1f:4006) + db CH7 + dw SFX_Snare2_3_Ch1 + +SFX_Snare3_3:: ; 7c009 (1f:4009) + db CH7 + dw SFX_Snare3_3_Ch1 + +SFX_Snare4_3:: ; 7c00c (1f:400c) + db CH7 + dw SFX_Snare4_3_Ch1 + +SFX_Snare5_3:: ; 7c00f (1f:400f) + db CH7 + dw SFX_Snare5_3_Ch1 + +SFX_Triangle1_3:: ; 7c012 (1f:4012) + db CH7 + dw SFX_Triangle1_3_Ch1 + +SFX_Triangle2_3:: ; 7c015 (1f:4015) + db CH7 + dw SFX_Triangle2_3_Ch1 + +SFX_Snare6_3:: ; 7c018 (1f:4018) + db CH7 + dw SFX_Snare6_3_Ch1 + +SFX_Snare7_3:: ; 7c01b (1f:401b) + db CH7 + dw SFX_Snare7_3_Ch1 + +SFX_Snare8_3:: ; 7c01e (1f:401e) + db CH7 + dw SFX_Snare8_3_Ch1 + +SFX_Snare9_3:: ; 7c021 (1f:4021) + db CH7 + dw SFX_Snare9_3_Ch1 + +SFX_Cymbal1_3:: ; 7c024 (1f:4024) + db CH7 + dw SFX_Cymbal1_3_Ch1 + +SFX_Cymbal2_3:: ; 7c027 (1f:4027) + db CH7 + dw SFX_Cymbal2_3_Ch1 + +SFX_Cymbal3_3:: ; 7c02a (1f:402a) + db CH7 + dw SFX_Cymbal3_3_Ch1 + +SFX_Muted_Snare1_3:: ; 7c02d (1f:402d) + db CH7 + dw SFX_Muted_Snare1_3_Ch1 + +SFX_Triangle3_3:: ; 7c030 (1f:4030) + db CH7 + dw SFX_Triangle3_3_Ch1 + +SFX_Muted_Snare2_3:: ; 7c033 (1f:4033) + db CH7 + dw SFX_Muted_Snare2_3_Ch1 + +SFX_Muted_Snare3_3:: ; 7c036 (1f:4036) + db CH7 + dw SFX_Muted_Snare3_3_Ch1 + +SFX_Muted_Snare4_3:: ; 7c039 (1f:4039) + db CH7 + dw SFX_Muted_Snare4_3_Ch1 + +SFX_Cry00_3:: ; 7c03c (1f:403c) + db ( $80 | CH4 ) + dw SFX_Cry00_3_Ch1 + db CH5 + dw SFX_Cry00_3_Ch2 + db CH7 + dw SFX_Cry00_3_Ch3 + +SFX_Cry01_3:: ; 7c045 (1f:4045) + db ( $80 | CH4 ) + dw SFX_Cry01_3_Ch1 + db CH5 + dw SFX_Cry01_3_Ch2 + db CH7 + dw SFX_Cry01_3_Ch3 + +SFX_Cry02_3:: ; 7c04e (1f:404e) + db ( $80 | CH4 ) + dw SFX_Cry02_3_Ch1 + db CH5 + dw SFX_Cry02_3_Ch2 + db CH7 + dw SFX_Cry02_3_Ch3 + +SFX_Cry03_3:: ; 7c057 (1f:4057) + db ( $80 | CH4 ) + dw SFX_Cry03_3_Ch1 + db CH5 + dw SFX_Cry03_3_Ch2 + db CH7 + dw SFX_Cry03_3_Ch3 + +SFX_Cry04_3:: ; 7c060 (1f:4060) + db ( $80 | CH4 ) + dw SFX_Cry04_3_Ch1 + db CH5 + dw SFX_Cry04_3_Ch2 + db CH7 + dw SFX_Cry04_3_Ch3 + +SFX_Cry05_3:: ; 7c069 (1f:4069) + db ( $80 | CH4 ) + dw SFX_Cry05_3_Ch1 + db CH5 + dw SFX_Cry05_3_Ch2 + db CH7 + dw SFX_Cry05_3_Ch3 + +SFX_Cry06_3:: ; 7c072 (1f:4072) + db ( $80 | CH4 ) + dw SFX_Cry06_3_Ch1 + db CH5 + dw SFX_Cry06_3_Ch2 + db CH7 + dw SFX_Cry06_3_Ch3 + +SFX_Cry07_3:: ; 7c07b (1f:407b) + db ( $80 | CH4 ) + dw SFX_Cry07_3_Ch1 + db CH5 + dw SFX_Cry07_3_Ch2 + db CH7 + dw SFX_Cry07_3_Ch3 + +SFX_Cry08_3:: ; 7c084 (1f:4084) + db ( $80 | CH4 ) + dw SFX_Cry08_3_Ch1 + db CH5 + dw SFX_Cry08_3_Ch2 + db CH7 + dw SFX_Cry08_3_Ch3 + +SFX_Cry09_3:: ; 7c08d (1f:408d) + db ( $80 | CH4 ) + dw SFX_Cry09_3_Ch1 + db CH5 + dw SFX_Cry09_3_Ch2 + db CH7 + dw SFX_Cry09_3_Ch3 + +SFX_Cry0A_3:: ; 7c096 (1f:4096) + db ( $80 | CH4 ) + dw SFX_Cry0A_3_Ch1 + db CH5 + dw SFX_Cry0A_3_Ch2 + db CH7 + dw SFX_Cry0A_3_Ch3 + +SFX_Cry0B_3:: ; 7c09f (1f:409f) + db ( $80 | CH4 ) + dw SFX_Cry0B_3_Ch1 + db CH5 + dw SFX_Cry0B_3_Ch2 + db CH7 + dw SFX_Cry0B_3_Ch3 + +SFX_Cry0C_3:: ; 7c0a8 (1f:40a8) + db ( $80 | CH4 ) + dw SFX_Cry0C_3_Ch1 + db CH5 + dw SFX_Cry0C_3_Ch2 + db CH7 + dw SFX_Cry0C_3_Ch3 + +SFX_Cry0D_3:: ; 7c0b1 (1f:40b1) + db ( $80 | CH4 ) + dw SFX_Cry0D_3_Ch1 + db CH5 + dw SFX_Cry0D_3_Ch2 + db CH7 + dw SFX_Cry0D_3_Ch3 + +SFX_Cry0E_3:: ; 7c0ba (1f:40ba) + db ( $80 | CH4 ) + dw SFX_Cry0E_3_Ch1 + db CH5 + dw SFX_Cry0E_3_Ch2 + db CH7 + dw SFX_Cry0E_3_Ch3 + +SFX_Cry0F_3:: ; 7c0c3 (1f:40c3) + db ( $80 | CH4 ) + dw SFX_Cry0F_3_Ch1 + db CH5 + dw SFX_Cry0F_3_Ch2 + db CH7 + dw SFX_Cry0F_3_Ch3 + +SFX_Cry10_3:: ; 7c0cc (1f:40cc) + db ( $80 | CH4 ) + dw SFX_Cry10_3_Ch1 + db CH5 + dw SFX_Cry10_3_Ch2 + db CH7 + dw SFX_Cry10_3_Ch3 + +SFX_Cry11_3:: ; 7c0d5 (1f:40d5) + db ( $80 | CH4 ) + dw SFX_Cry11_3_Ch1 + db CH5 + dw SFX_Cry11_3_Ch2 + db CH7 + dw SFX_Cry11_3_Ch3 + +SFX_Cry12_3:: ; 7c0de (1f:40de) + db ( $80 | CH4 ) + dw SFX_Cry12_3_Ch1 + db CH5 + dw SFX_Cry12_3_Ch2 + db CH7 + dw SFX_Cry12_3_Ch3 + +SFX_Cry13_3:: ; 7c0e7 (1f:40e7) + db ( $80 | CH4 ) + dw SFX_Cry13_3_Ch1 + db CH5 + dw SFX_Cry13_3_Ch2 + db CH7 + dw SFX_Cry13_3_Ch3 + +SFX_Cry14_3:: ; 7c0f0 (1f:40f0) + db ( $80 | CH4 ) + dw SFX_Cry14_3_Ch1 + db CH5 + dw SFX_Cry14_3_Ch2 + db CH7 + dw SFX_Cry14_3_Ch3 + +SFX_Cry15_3:: ; 7c0f9 (1f:40f9) + db ( $80 | CH4 ) + dw SFX_Cry15_3_Ch1 + db CH5 + dw SFX_Cry15_3_Ch2 + db CH7 + dw SFX_Cry15_3_Ch3 + +SFX_Cry16_3:: ; 7c102 (1f:4102) + db ( $80 | CH4 ) + dw SFX_Cry16_3_Ch1 + db CH5 + dw SFX_Cry16_3_Ch2 + db CH7 + dw SFX_Cry16_3_Ch3 + +SFX_Cry17_3:: ; 7c10b (1f:410b) + db ( $80 | CH4 ) + dw SFX_Cry17_3_Ch1 + db CH5 + dw SFX_Cry17_3_Ch2 + db CH7 + dw SFX_Cry17_3_Ch3 + +SFX_Cry18_3:: ; 7c114 (1f:4114) + db ( $80 | CH4 ) + dw SFX_Cry18_3_Ch1 + db CH5 + dw SFX_Cry18_3_Ch2 + db CH7 + dw SFX_Cry18_3_Ch3 + +SFX_Cry19_3:: ; 7c11d (1f:411d) + db ( $80 | CH4 ) + dw SFX_Cry19_3_Ch1 + db CH5 + dw SFX_Cry19_3_Ch2 + db CH7 + dw SFX_Cry19_3_Ch3 + +SFX_Cry1A_3:: ; 7c126 (1f:4126) + db ( $80 | CH4 ) + dw SFX_Cry1A_3_Ch1 + db CH5 + dw SFX_Cry1A_3_Ch2 + db CH7 + dw SFX_Cry1A_3_Ch3 + +SFX_Cry1B_3:: ; 7c12f (1f:412f) + db ( $80 | CH4 ) + dw SFX_Cry1B_3_Ch1 + db CH5 + dw SFX_Cry1B_3_Ch2 + db CH7 + dw SFX_Cry1B_3_Ch3 + +SFX_Cry1C_3:: ; 7c138 (1f:4138) + db ( $80 | CH4 ) + dw SFX_Cry1C_3_Ch1 + db CH5 + dw SFX_Cry1C_3_Ch2 + db CH7 + dw SFX_Cry1C_3_Ch3 + +SFX_Cry1D_3:: ; 7c141 (1f:4141) + db ( $80 | CH4 ) + dw SFX_Cry1D_3_Ch1 + db CH5 + dw SFX_Cry1D_3_Ch2 + db CH7 + dw SFX_Cry1D_3_Ch3 + +SFX_Cry1E_3:: ; 7c14a (1f:414a) + db ( $80 | CH4 ) + dw SFX_Cry1E_3_Ch1 + db CH5 + dw SFX_Cry1E_3_Ch2 + db CH7 + dw SFX_Cry1E_3_Ch3 + +SFX_Cry1F_3:: ; 7c153 (1f:4153) + db ( $80 | CH4 ) + dw SFX_Cry1F_3_Ch1 + db CH5 + dw SFX_Cry1F_3_Ch2 + db CH7 + dw SFX_Cry1F_3_Ch3 + +SFX_Cry20_3:: ; 7c15c (1f:415c) + db ( $80 | CH4 ) + dw SFX_Cry20_3_Ch1 + db CH5 + dw SFX_Cry20_3_Ch2 + db CH7 + dw SFX_Cry20_3_Ch3 + +SFX_Cry21_3:: ; 7c165 (1f:4165) + db ( $80 | CH4 ) + dw SFX_Cry21_3_Ch1 + db CH5 + dw SFX_Cry21_3_Ch2 + db CH7 + dw SFX_Cry21_3_Ch3 + +SFX_Cry22_3:: ; 7c16e (1f:416e) + db ( $80 | CH4 ) + dw SFX_Cry22_3_Ch1 + db CH5 + dw SFX_Cry22_3_Ch2 + db CH7 + dw SFX_Cry22_3_Ch3 + +SFX_Cry23_3:: ; 7c177 (1f:4177) + db ( $80 | CH4 ) + dw SFX_Cry23_3_Ch1 + db CH5 + dw SFX_Cry23_3_Ch2 + db CH7 + dw SFX_Cry23_3_Ch3 + +SFX_Cry24_3:: ; 7c180 (1f:4180) + db ( $80 | CH4 ) + dw SFX_Cry24_3_Ch1 + db CH5 + dw SFX_Cry24_3_Ch2 + db CH7 + dw SFX_Cry24_3_Ch3 + +SFX_Cry25_3:: ; 7c189 (1f:4189) + db ( $80 | CH4 ) + dw SFX_Cry25_3_Ch1 + db CH5 + dw SFX_Cry25_3_Ch2 + db CH7 + dw SFX_Cry25_3_Ch3 + +SFX_Get_Item1_3:: ; 7c192 (1f:4192) + db ( $80 | CH4 ) + dw SFX_Get_Item1_3_Ch1 + db CH5 + dw SFX_Get_Item1_3_Ch2 + db CH6 + dw SFX_Get_Item1_3_Ch3 + +SFX_Get_Item2_3:: ; 7c19b (1f:419b) + db ( $80 | CH4 ) + dw SFX_Get_Item2_3_Ch1 + db CH5 + dw SFX_Get_Item2_3_Ch2 + db CH6 + dw SFX_Get_Item2_3_Ch3 + +SFX_Tink_3:: ; 7c1a4 (1f:41a4) + db CH4 + dw SFX_Tink_3_Ch1 + +SFX_Heal_HP_3:: ; 7c1a7 (1f:41a7) + db CH4 + dw SFX_Heal_HP_3_Ch1 + +SFX_Heal_Ailment_3:: ; 7c1aa (1f:41aa) + db CH4 + dw SFX_Heal_Ailment_3_Ch1 + +SFX_Start_Menu_3:: ; 7c1ad (1f:41ad) + db CH7 + dw SFX_Start_Menu_3_Ch1 + +SFX_Press_AB_3:: ; 7c1b0 (1f:41b0) + db CH4 + dw SFX_Press_AB_3_Ch1 + +SFX_Pokedex_Rating_3:: ; 7c1b3 (1f:41b3) + db ( $80 | CH4 ) + dw SFX_Pokedex_Rating_3_Ch1 + db CH5 + dw SFX_Pokedex_Rating_3_Ch2 + db CH6 + dw SFX_Pokedex_Rating_3_Ch3 + +SFX_Get_Key_Item_3:: ; 7c1bc (1f:41bc) + db ( $80 | CH4 ) + dw SFX_Get_Key_Item_3_Ch1 + db CH5 + dw SFX_Get_Key_Item_3_Ch2 + db CH6 + dw SFX_Get_Key_Item_3_Ch3 + +SFX_Poisoned_3:: ; 7c1c5 (1f:41c5) + db CH4 + dw SFX_Poisoned_3_Ch1 + +SFX_Trade_Machine_3:: ; 7c1c8 (1f:41c8) + db CH4 + dw SFX_Trade_Machine_3_Ch1 + +SFX_Turn_On_PC_3:: ; 7c1cb (1f:41cb) + db CH4 + dw SFX_Turn_On_PC_3_Ch1 + +SFX_Turn_Off_PC_3:: ; 7c1ce (1f:41ce) + db CH4 + dw SFX_Turn_Off_PC_3_Ch1 + +SFX_Enter_PC_3:: ; 7c1d1 (1f:41d1) + db CH4 + dw SFX_Enter_PC_3_Ch1 + +SFX_Shrink_3:: ; 7c1d4 (1f:41d4) + db CH4 + dw SFX_Shrink_3_Ch1 + +SFX_Switch_3:: ; 7c1d7 (1f:41d7) + db CH4 + dw SFX_Switch_3_Ch1 + +SFX_Healing_Machine_3:: ; 7c1da (1f:41da) + db CH4 + dw SFX_Healing_Machine_3_Ch1 + +SFX_Teleport_Exit1_3:: ; 7c1dd (1f:41dd) + db CH4 + dw SFX_Teleport_Exit1_3_Ch1 + +SFX_Teleport_Enter1_3:: ; 7c1e0 (1f:41e0) + db CH4 + dw SFX_Teleport_Enter1_3_Ch1 + +SFX_Teleport_Exit2_3:: ; 7c1e3 (1f:41e3) + db CH4 + dw SFX_Teleport_Exit2_3_Ch1 + +SFX_Ledge_3:: ; 7c1e6 (1f:41e6) + db CH4 + dw SFX_Ledge_3_Ch1 + +SFX_Teleport_Enter2_3:: ; 7c1e9 (1f:41e9) + db CH7 + dw SFX_Teleport_Enter2_3_Ch1 + +SFX_Fly_3:: ; 7c1ec (1f:41ec) + db CH7 + dw SFX_Fly_3_Ch1 + +SFX_Denied_3:: ; 7c1ef (1f:41ef) + db ( $40 | CH4 ) + dw SFX_Denied_3_Ch1 + db CH5 + dw SFX_Denied_3_Ch2 + +SFX_Arrow_Tiles_3:: ; 7c1f5 (1f:41f5) + db CH4 + dw SFX_Arrow_Tiles_3_Ch1 + +SFX_Push_Boulder_3:: ; 7c1f8 (1f:41f8) + db CH7 + dw SFX_Push_Boulder_3_Ch1 + +SFX_SS_Anne_Horn_3:: ; 7c1fb (1f:41fb) + db ( $40 | CH4 ) + dw SFX_SS_Anne_Horn_3_Ch1 + db CH5 + dw SFX_SS_Anne_Horn_3_Ch2 + +SFX_Withdraw_Deposit_3:: ; 7c201 (1f:4201) + db CH4 + dw SFX_Withdraw_Deposit_3_Ch1 + +SFX_Cut_3:: ; 7c204 (1f:4204) + db CH7 + dw SFX_Cut_3_Ch1 + +SFX_Go_Inside_3:: ; 7c207 (1f:4207) + db CH7 + dw SFX_Go_Inside_3_Ch1 + +SFX_Swap_3:: ; 7c20a (1f:420a) + db ( $40 | CH4 ) + dw SFX_Swap_3_Ch1 + db CH5 + dw SFX_Swap_3_Ch2 + +SFX_59_3:: ; 7c210 (1f:4210) + db ( $40 | CH4 ) + dw SFX_59_3_Ch1 + db CH5 + dw SFX_59_3_Ch2 + +SFX_Purchase_3:: ; 7c216 (1f:4216) + db ( $40 | CH4 ) + dw SFX_Purchase_3_Ch1 + db CH5 + dw SFX_Purchase_3_Ch2 + +SFX_Collision_3:: ; 7c21c (1f:421c) + db CH4 + dw SFX_Collision_3_Ch1 + +SFX_Go_Outside_3:: ; 7c21f (1f:421f) + db CH7 + dw SFX_Go_Outside_3_Ch1 + +SFX_Save_3:: ; 7c222 (1f:4222) + db ( $40 | CH4 ) + dw SFX_Save_3_Ch1 + db CH5 + dw SFX_Save_3_Ch2 + +SFX_Intro_Lunge:: ; 7c228 (1f:4228) + db CH7 + dw SFX_Intro_Lunge_Ch1 + +SFX_Intro_Hip:: ; 7c22b (1f:422b) + db CH4 + dw SFX_Intro_Hip_Ch1 + +SFX_Intro_Hop:: ; 7c22e (1f:422e) + db CH4 + dw SFX_Intro_Hop_Ch1 + +SFX_Intro_Raise:: ; 7c231 (1f:4231) + db CH7 + dw SFX_Intro_Raise_Ch1 + +SFX_Intro_Crash:: ; 7c234 (1f:4234) + db CH7 + dw SFX_Intro_Crash_Ch1 + +SFX_Intro_Whoosh:: ; 7c237 (1f:4237) + db CH7 + dw SFX_Intro_Whoosh_Ch1 + +SFX_Slots_Stop_Wheel:: ; 7c23a (1f:423a) + db CH4 + dw SFX_Slots_Stop_Wheel_Ch1 + +SFX_Slots_Reward:: ; 7c23d (1f:423d) + db CH4 + dw SFX_Slots_Reward_Ch1 + +SFX_Slots_New_Spin:: ; 7c240 (1f:4240) + db ( $40 | CH4 ) + dw SFX_Slots_New_Spin_Ch1 + db CH5 + dw SFX_Slots_New_Spin_Ch2 + +SFX_Shooting_Star:: ; 7c246 (1f:4246) + db CH4 + dw SFX_Shooting_Star_Ch1 diff --git a/audio/sfx/pokeflute_ch1_ch2.asm b/audio/sfx/pokeflute_ch1_ch2.asm new file mode 100755 index 00000000..4ccf89d8 --- /dev/null +++ b/audio/sfx/pokeflute_ch1_ch2.asm @@ -0,0 +1,14 @@ +SFX_08_PokeFlute_Ch1: ; 22322 (8:6322) + tempo 256 + + +SFX_08_PokeFlute_Ch2: ; 22325 (8:6325) + executemusic + notetype 8, 0, 0 + rest 5 + rest 7 + rest 5 + rest 5 + rest 5 + rest 5 + endchannel diff --git a/audio/sfx/pokeflute_ch3.asm b/audio/sfx/pokeflute_ch3.asm new file mode 100755 index 00000000..0652e673 --- /dev/null +++ b/audio/sfx/pokeflute_ch3.asm @@ -0,0 +1,13 @@ +SFX_08_PokeFlute_Ch3: ; 2049b (8:449b) + executemusic + vibrato 16, 1, 4 + notetype 8, 1, 0 + octave 5 + E_ 3 + F_ 3 + G_ 7 + A_ 3 + G_ 3 + octave 6 + C_ 13 + endchannel diff --git a/audio/sfx/sfx_02_unused.asm b/audio/sfx/sfx_02_unused.asm deleted file mode 100755 index bd9bdfb3..00000000 --- a/audio/sfx/sfx_02_unused.asm +++ /dev/null @@ -1,31 +0,0 @@ -SFX_02_unused_Ch1: ; 86e3 (2:46e3) - dutycycle 240 - unknownsfx0x20 15, 224, 128, 7 - unknownsfx0x20 15, 240, 132, 7 - unknownsfx0x20 15, 195, 224, 5 - unknownsfx0x20 15, 196, 0, 6 - unknownsfx0x20 10, 108, 128, 7 - unknownsfx0x20 8, 113, 132, 7 - endchannel - - -SFX_02_unused_Ch2: ; 86fe (2:46fe) - dutycycle 5 - unknownsfx0x20 15, 160, 65, 7 - unknownsfx0x20 15, 176, 67, 7 - unknownsfx0x20 15, 147, 177, 5 - unknownsfx0x20 15, 148, 193, 5 - unknownsfx0x20 10, 76, 65, 7 - unknownsfx0x20 8, 49, 70, 7 - endchannel - - -SFX_02_unused_Ch3: ; 8719 (2:4719) - unknownnoise0x20 2, 242, 76 - unknownnoise0x20 6, 224, 58 - unknownnoise0x20 15, 208, 58 - unknownnoise0x20 8, 208, 44 - unknownnoise0x20 6, 230, 76 - unknownnoise0x20 12, 125, 76 - unknownnoise0x20 15, 211, 76 - endchannel diff --git a/audio/sfx/sfx_08_pokeflute.asm b/audio/sfx/sfx_08_pokeflute.asm deleted file mode 100755 index 4ccf89d8..00000000 --- a/audio/sfx/sfx_08_pokeflute.asm +++ /dev/null @@ -1,14 +0,0 @@ -SFX_08_PokeFlute_Ch1: ; 22322 (8:6322) - tempo 256 - - -SFX_08_PokeFlute_Ch2: ; 22325 (8:6325) - executemusic - notetype 8, 0, 0 - rest 5 - rest 7 - rest 5 - rest 5 - rest 5 - rest 5 - endchannel diff --git a/audio/sfx/sfx_08_pokeflute_ch3.asm b/audio/sfx/sfx_08_pokeflute_ch3.asm deleted file mode 100755 index 0652e673..00000000 --- a/audio/sfx/sfx_08_pokeflute_ch3.asm +++ /dev/null @@ -1,13 +0,0 @@ -SFX_08_PokeFlute_Ch3: ; 2049b (8:449b) - executemusic - vibrato 16, 1, 4 - notetype 8, 1, 0 - octave 5 - E_ 3 - F_ 3 - G_ 7 - A_ 3 - G_ 3 - octave 6 - C_ 13 - endchannel diff --git a/audio/sfx/sfx_08_unused.asm b/audio/sfx/sfx_08_unused.asm deleted file mode 100755 index 25e4840c..00000000 --- a/audio/sfx/sfx_08_unused.asm +++ /dev/null @@ -1,31 +0,0 @@ -SFX_08_unused_Ch1: ; 2098b (8:498b) - dutycycle 240 - unknownsfx0x20 15, 224, 128, 7 - unknownsfx0x20 15, 240, 132, 7 - unknownsfx0x20 15, 195, 224, 5 - unknownsfx0x20 15, 196, 0, 6 - unknownsfx0x20 10, 108, 128, 7 - unknownsfx0x20 8, 113, 132, 7 - endchannel - - -SFX_08_unused_Ch2: ; 209a6 (8:49a6) - dutycycle 5 - unknownsfx0x20 15, 160, 65, 7 - unknownsfx0x20 15, 176, 67, 7 - unknownsfx0x20 15, 147, 177, 5 - unknownsfx0x20 15, 148, 193, 5 - unknownsfx0x20 10, 76, 65, 7 - unknownsfx0x20 8, 49, 70, 7 - endchannel - - -SFX_08_unused_Ch3: ; 209c1 (8:49c1) - unknownnoise0x20 2, 242, 76 - unknownnoise0x20 6, 224, 58 - unknownnoise0x20 15, 208, 58 - unknownnoise0x20 8, 208, 44 - unknownnoise0x20 6, 230, 76 - unknownnoise0x20 12, 125, 76 - unknownnoise0x20 15, 211, 76 - endchannel diff --git a/audio/sfx/sfx_08_unused2.asm b/audio/sfx/sfx_08_unused2.asm deleted file mode 100755 index 1eca4432..00000000 --- a/audio/sfx/sfx_08_unused2.asm +++ /dev/null @@ -1,56 +0,0 @@ -SFX_08_unused2_Ch1: ; 2232f (8:632f) - executemusic - tempo 256 - volume 7, 7 - vibrato 6, 2, 6 - duty 2 - toggleperfectpitch - notetype 6, 11, 1 - octave 3 - G# 2 - G# 2 - notetype 6, 11, 3 - G# 2 - B_ 2 - octave 4 - E_ 8 - endchannel - - -SFX_08_unused2_Ch2: ; 22347 (8:6347) - executemusic - vibrato 8, 2, 7 - duty 2 - notetype 6, 12, 1 - octave 4 - E_ 2 - E_ 1 - E_ 1 - notetype 6, 12, 3 - E_ 2 - G# 2 - B_ 8 - endchannel - - -SFX_08_unused2_Ch3: ; 22359 (8:6359) - executemusic - notetype 6, 1, 0 - octave 4 - B_ 1 - rest 1 - notetype 3, 1, 0 - B_ 1 - rest 1 - B_ 1 - rest 1 - notetype 6, 1, 0 - B_ 1 - rest 1 - octave 5 - E_ 1 - rest 1 - octave 4 - B_ 4 - rest 4 - endchannel diff --git a/audio/sfx/sfx_1f_unused.asm b/audio/sfx/sfx_1f_unused.asm deleted file mode 100755 index dfb16ee1..00000000 --- a/audio/sfx/sfx_1f_unused.asm +++ /dev/null @@ -1,31 +0,0 @@ -SFX_1f_unused_Ch1: ; 7c758 (1f:4758) - dutycycle 240 - unknownsfx0x20 15, 224, 128, 7 - unknownsfx0x20 15, 240, 132, 7 - unknownsfx0x20 15, 195, 224, 5 - unknownsfx0x20 15, 196, 0, 6 - unknownsfx0x20 10, 108, 128, 7 - unknownsfx0x20 8, 113, 132, 7 - endchannel - - -SFX_1f_unused_Ch2: ; 7c773 (1f:4773) - dutycycle 5 - unknownsfx0x20 15, 160, 65, 7 - unknownsfx0x20 15, 176, 67, 7 - unknownsfx0x20 15, 147, 177, 5 - unknownsfx0x20 15, 148, 193, 5 - unknownsfx0x20 10, 76, 65, 7 - unknownsfx0x20 8, 49, 70, 7 - endchannel - - -SFX_1f_unused_Ch3: ; 7c78e (1f:478e) - unknownnoise0x20 2, 242, 76 - unknownnoise0x20 6, 224, 58 - unknownnoise0x20 15, 208, 58 - unknownnoise0x20 8, 208, 44 - unknownnoise0x20 6, 230, 76 - unknownnoise0x20 12, 125, 76 - unknownnoise0x20 15, 211, 76 - endchannel diff --git a/audio/sfx/unused2_2.asm b/audio/sfx/unused2_2.asm new file mode 100755 index 00000000..1eca4432 --- /dev/null +++ b/audio/sfx/unused2_2.asm @@ -0,0 +1,56 @@ +SFX_08_unused2_Ch1: ; 2232f (8:632f) + executemusic + tempo 256 + volume 7, 7 + vibrato 6, 2, 6 + duty 2 + toggleperfectpitch + notetype 6, 11, 1 + octave 3 + G# 2 + G# 2 + notetype 6, 11, 3 + G# 2 + B_ 2 + octave 4 + E_ 8 + endchannel + + +SFX_08_unused2_Ch2: ; 22347 (8:6347) + executemusic + vibrato 8, 2, 7 + duty 2 + notetype 6, 12, 1 + octave 4 + E_ 2 + E_ 1 + E_ 1 + notetype 6, 12, 3 + E_ 2 + G# 2 + B_ 8 + endchannel + + +SFX_08_unused2_Ch3: ; 22359 (8:6359) + executemusic + notetype 6, 1, 0 + octave 4 + B_ 1 + rest 1 + notetype 3, 1, 0 + B_ 1 + rest 1 + B_ 1 + rest 1 + notetype 6, 1, 0 + B_ 1 + rest 1 + octave 5 + E_ 1 + rest 1 + octave 4 + B_ 4 + rest 4 + endchannel diff --git a/audio/sfx/unused_1.asm b/audio/sfx/unused_1.asm new file mode 100755 index 00000000..bd9bdfb3 --- /dev/null +++ b/audio/sfx/unused_1.asm @@ -0,0 +1,31 @@ +SFX_02_unused_Ch1: ; 86e3 (2:46e3) + dutycycle 240 + unknownsfx0x20 15, 224, 128, 7 + unknownsfx0x20 15, 240, 132, 7 + unknownsfx0x20 15, 195, 224, 5 + unknownsfx0x20 15, 196, 0, 6 + unknownsfx0x20 10, 108, 128, 7 + unknownsfx0x20 8, 113, 132, 7 + endchannel + + +SFX_02_unused_Ch2: ; 86fe (2:46fe) + dutycycle 5 + unknownsfx0x20 15, 160, 65, 7 + unknownsfx0x20 15, 176, 67, 7 + unknownsfx0x20 15, 147, 177, 5 + unknownsfx0x20 15, 148, 193, 5 + unknownsfx0x20 10, 76, 65, 7 + unknownsfx0x20 8, 49, 70, 7 + endchannel + + +SFX_02_unused_Ch3: ; 8719 (2:4719) + unknownnoise0x20 2, 242, 76 + unknownnoise0x20 6, 224, 58 + unknownnoise0x20 15, 208, 58 + unknownnoise0x20 8, 208, 44 + unknownnoise0x20 6, 230, 76 + unknownnoise0x20 12, 125, 76 + unknownnoise0x20 15, 211, 76 + endchannel diff --git a/audio/sfx/unused_2.asm b/audio/sfx/unused_2.asm new file mode 100755 index 00000000..25e4840c --- /dev/null +++ b/audio/sfx/unused_2.asm @@ -0,0 +1,31 @@ +SFX_08_unused_Ch1: ; 2098b (8:498b) + dutycycle 240 + unknownsfx0x20 15, 224, 128, 7 + unknownsfx0x20 15, 240, 132, 7 + unknownsfx0x20 15, 195, 224, 5 + unknownsfx0x20 15, 196, 0, 6 + unknownsfx0x20 10, 108, 128, 7 + unknownsfx0x20 8, 113, 132, 7 + endchannel + + +SFX_08_unused_Ch2: ; 209a6 (8:49a6) + dutycycle 5 + unknownsfx0x20 15, 160, 65, 7 + unknownsfx0x20 15, 176, 67, 7 + unknownsfx0x20 15, 147, 177, 5 + unknownsfx0x20 15, 148, 193, 5 + unknownsfx0x20 10, 76, 65, 7 + unknownsfx0x20 8, 49, 70, 7 + endchannel + + +SFX_08_unused_Ch3: ; 209c1 (8:49c1) + unknownnoise0x20 2, 242, 76 + unknownnoise0x20 6, 224, 58 + unknownnoise0x20 15, 208, 58 + unknownnoise0x20 8, 208, 44 + unknownnoise0x20 6, 230, 76 + unknownnoise0x20 12, 125, 76 + unknownnoise0x20 15, 211, 76 + endchannel diff --git a/audio/sfx/unused_3.asm b/audio/sfx/unused_3.asm new file mode 100755 index 00000000..dfb16ee1 --- /dev/null +++ b/audio/sfx/unused_3.asm @@ -0,0 +1,31 @@ +SFX_1f_unused_Ch1: ; 7c758 (1f:4758) + dutycycle 240 + unknownsfx0x20 15, 224, 128, 7 + unknownsfx0x20 15, 240, 132, 7 + unknownsfx0x20 15, 195, 224, 5 + unknownsfx0x20 15, 196, 0, 6 + unknownsfx0x20 10, 108, 128, 7 + unknownsfx0x20 8, 113, 132, 7 + endchannel + + +SFX_1f_unused_Ch2: ; 7c773 (1f:4773) + dutycycle 5 + unknownsfx0x20 15, 160, 65, 7 + unknownsfx0x20 15, 176, 67, 7 + unknownsfx0x20 15, 147, 177, 5 + unknownsfx0x20 15, 148, 193, 5 + unknownsfx0x20 10, 76, 65, 7 + unknownsfx0x20 8, 49, 70, 7 + endchannel + + +SFX_1f_unused_Ch3: ; 7c78e (1f:478e) + unknownnoise0x20 2, 242, 76 + unknownnoise0x20 6, 224, 58 + unknownnoise0x20 15, 208, 58 + unknownnoise0x20 8, 208, 44 + unknownnoise0x20 6, 230, 76 + unknownnoise0x20 12, 125, 76 + unknownnoise0x20 15, 211, 76 + endchannel diff --git a/constants/music_constants.asm b/constants/music_constants.asm index d8c62dda..f239acea 100644 --- a/constants/music_constants.asm +++ b/constants/music_constants.asm @@ -1,7 +1,7 @@ ; Song ids are calculated by address to save space. music_const: MACRO -\1 EQUS "((\2 - SFX_Headers_02) / 3)" +\1 EQUS "((\2 - SFX_Headers_1) / 3)" ENDM ; AUDIO_1 diff --git a/engine/overworld/healing_machine.asm b/engine/overworld/healing_machine.asm index f9dcc3a5..b123f33f 100755 --- a/engine/overworld/healing_machine.asm +++ b/engine/overworld/healing_machine.asm @@ -35,7 +35,7 @@ AnimateHealingMachine: ; 70433 (1c:4433) dec b jr nz, .asm_7046e ld a, [wc0ef] - cp BANK(Music1f_UpdateMusic) + cp BANK(Audio3_UpdateMusic) ld [wc0f0], a jr nz, .asm_70495 ld a, $ff diff --git a/home/audio.asm b/home/audio.asm index 1301550c..033f4067 100644 --- a/home/audio.asm +++ b/home/audio.asm @@ -56,19 +56,19 @@ Func_2324:: ; 2324 (0:2324) Func_235f:: ; 235f (0:235f) ld a, [wc0ef] ld b, a - cp BANK(Music2_UpdateMusic) - jr nz, .checkForBank08 -.bank02 - ld hl, Music2_UpdateMusic + cp BANK(Audio1_UpdateMusic) + jr nz, .checkForAudio2 +.audio1 + ld hl, Audio1_UpdateMusic jr .asm_2378 -.checkForBank08 - cp BANK(Music8_UpdateMusic) - jr nz, .bank1F -.bank08 - ld hl, Music8_UpdateMusic +.checkForAudio2 + cp BANK(Audio2_UpdateMusic) + jr nz, .audio3 +.audio2 + ld hl, Audio2_UpdateMusic jr .asm_2378 -.bank1F - ld hl, Music1f_UpdateMusic +.audio3 + ld hl, Audio3_UpdateMusic .asm_2378 ld c, $6 .asm_237a @@ -147,22 +147,22 @@ PlaySound:: ; 23b1 (0:23b1) ld a, [wc0ef] ld [H_LOADEDROMBANK], a ld [MBC1RomBank], a - cp BANK(Music2_9876) - jr nz, .checkForBank08 -.bank02 + cp BANK(Audio1_9876) + jr nz, .checkForAudio2 +.audio1 ld a, b - call Music2_9876 + call Audio1_9876 jr .asm_240b -.checkForBank08 - cp BANK(Music8_22035) - jr nz, .bank1F -.bank08 +.checkForAudio2 + cp BANK(Audio2_22035) + jr nz, .audio3 +.audio2 ld a, b - call Music8_22035 + call Audio2_22035 jr .asm_240b -.bank1F +.audio3 ld a, b - call Music1f_7d8ea + call Audio3_7d8ea .asm_240b ld a, [$ffb9] ld [H_LOADEDROMBANK], a diff --git a/home/init.asm b/home/init.asm index 848a81a3..624a4d6a 100644 --- a/home/init.asm +++ b/home/init.asm @@ -126,7 +126,7 @@ ClearVram: StopAllSounds:: - ld a, BANK(Music2_UpdateMusic) + ld a, BANK(Audio1_UpdateMusic) ld [wc0ef], a ld [wc0f0], a xor a diff --git a/home/vblank.asm b/home/vblank.asm index 9adf537c..05b01a3d 100644 --- a/home/vblank.asm +++ b/home/vblank.asm @@ -56,20 +56,20 @@ VBlank:: ld [H_LOADEDROMBANK], a ld [MBC1RomBank], a - cp BANK(Music2_UpdateMusic) - jr nz, .notbank2 -.bank2 - call Music2_UpdateMusic + cp BANK(Audio1_UpdateMusic) + jr nz, .checkForAudio2 +.audio1 + call Audio1_UpdateMusic jr .afterMusic -.notbank2 - cp BANK(Music8_UpdateMusic) - jr nz, .bank1F -.bank8 +.checkForAudio2 + cp BANK(Audio2_UpdateMusic) + jr nz, .audio3 +.audio2 call Music_DoLowHealthAlarm - call Music8_UpdateMusic + call Audio2_UpdateMusic jr .afterMusic -.bank1F - call Music1f_UpdateMusic +.audio3 + call Audio3_UpdateMusic .afterMusic callba TrackPlayTime ; keep track of time played diff --git a/scripts/ssanne7.asm b/scripts/ssanne7.asm index a1fd791a..f1eabc29 100755 --- a/scripts/ssanne7.asm +++ b/scripts/ssanne7.asm @@ -48,7 +48,7 @@ SSAnne7RubText: ; 618ec (18:58ec) TX_FAR _SSAnne7RubText TX_ASM ld a, [wc0ef] - cp BANK(Music1f_UpdateMusic) + cp BANK(Audio3_UpdateMusic) ld [wc0f0], a jr nz, .asm_61908 ld a, $ff -- cgit v1.3.1-sl0p From 2b018159997e3b580efd114ff4e3548a0de3cbc5 Mon Sep 17 00:00:00 2001 From: YamaArashi Date: Sat, 8 Aug 2015 22:32:44 -0700 Subject: commented audio code --- audio.asm | 32 +- audio/engine_1.asm | 1277 ++++++++++++++++++---------------- audio/engine_2.asm | 540 +++++++------- audio/engine_3.asm | 532 +++++++------- constants/hardware_constants.asm | 1 - constants/music_constants.asm | 39 ++ engine/battle/animations.asm | 18 +- engine/battle/common_text.asm | 4 +- engine/battle/core.asm | 16 +- engine/battle/end_of_battle.asm | 2 +- engine/cable_club.asm | 16 +- engine/evolution.asm | 6 +- engine/hall_of_fame.asm | 8 +- engine/hidden_object_functions7.asm | 6 +- engine/intro.asm | 6 +- engine/items/items.asm | 8 +- engine/menu/pokedex.asm | 4 +- engine/menu/status_screen.asm | 4 +- engine/oak_speech.asm | 10 +- engine/overworld/elevator.asm | 2 +- engine/overworld/healing_machine.asm | 40 +- engine/overworld/npc_movement.asm | 12 +- engine/overworld/pokecenter.asm | 12 +- engine/slot_machine.asm | 4 +- engine/titlescreen.asm | 6 +- home.asm | 52 +- home/audio.asm | 233 ++++--- home/init.asm | 14 +- home/overworld.asm | 22 +- home/vblank.asm | 12 +- hram.asm | 4 +- scripts/ceruleancity.asm | 4 +- scripts/oakslab.asm | 4 +- scripts/pewterpokecenter.asm | 4 +- scripts/pokemontower2.asm | 4 +- scripts/redshouse1f.asm | 8 +- scripts/route22.asm | 10 +- scripts/silphco7.asm | 4 +- scripts/ssanne2.asm | 4 +- scripts/ssanne7.asm | 12 +- scripts/vermiliondock.asm | 2 +- wram.asm | 239 +++++-- 42 files changed, 1731 insertions(+), 1506 deletions(-) (limited to 'audio/engine_2.asm') diff --git a/audio.asm b/audio.asm index 286dc7ed..037145d8 100644 --- a/audio.asm +++ b/audio.asm @@ -364,10 +364,10 @@ SECTION "Audio Engine 1", ROMX, BANK[AUDIO_1] PlayBattleMusic:: ; 0x90c6 xor a - ld [wMusicHeaderPointer], a + ld [wAudioFadeOutControl], a ld [wLowHealthAlarm], a dec a - ld [wc0ee], a + ld [wNewSoundID], a call PlaySound ; stop music call DelayFrame ld c, BANK(Music_GymLeaderBattle) @@ -406,7 +406,7 @@ Music_RivalAlternateStart:: ; 0x9b47 ld c, BANK(Music_MeetRival) ld a, MUSIC_MEET_RIVAL call PlayMusic - ld hl, wc006 + ld hl, wChannelCommandPointers ld de, Music_MeetRival_branch_b1a2 call Audio1_OverwriteChannelPointer ld de, Music_MeetRival_branch_b21d @@ -425,30 +425,30 @@ Music_RivalAlternateTempo:: ; 0x9b65 ld c, BANK(Music_MeetRival) ld a, MUSIC_MEET_RIVAL call PlayMusic - ld hl, wc006 + ld hl, wChannelCommandPointers ld de, Music_MeetRival_branch_b119 jp Audio1_OverwriteChannelPointer ; applies both the alternate start and alternate tempo Music_RivalAlternateStartAndTempo:: ; 0x9b75 call Music_RivalAlternateStart - ld hl, wc006 + ld hl, wChannelCommandPointers ld de, Music_MeetRival_branch_b19b jp Audio1_OverwriteChannelPointer ; an alternate tempo for Cities1 which is used for the Hall of Fame room Music_Cities1AlternateTempo:: ; 0x9b81 - ld a, $a - ld [wcfc8], a - ld [wcfc9], a - ld a, $ff - ld [wMusicHeaderPointer], a + ld a, 10 + ld [wAudioFadeOutCounterReloadValue], a + ld [wAudioFadeOutCounter], a + ld a, $ff ; stop playing music after the fade-out is finished + ld [wAudioFadeOutControl], a ld c, 100 - call DelayFrames + call DelayFrames ; wait for the fade-out to finish ld c, BANK(Music_Cities1) ld a, MUSIC_CITIES1 call PlayMusic - ld hl, wc006 + ld hl, wChannelCommandPointers ld de, Music_Cities1_branch_aa6f jp Audio1_OverwriteChannelPointer @@ -477,7 +477,7 @@ Music_DoLowHealthAlarm:: ; 2136e (8:536e) .asm_2138a ld a, $86 - ld [wc02a], a ;disable sound channel? + ld [wChannelSoundIDs + CH4], a ;disable sound channel? ld a, [wLowHealthAlarm] and $7f ;decrement alarm timer. dec a @@ -491,7 +491,7 @@ Music_DoLowHealthAlarm:: ; 2136e (8:536e) .disableAlarm xor a ld [wLowHealthAlarm], a ;disable alarm - ld [wc02a], a ;re-enable sound channel? + ld [wChannelSoundIDs + CH4], a ;re-enable sound channel? ld de, .toneDataSilence jr .playTone @@ -542,7 +542,7 @@ Music_PokeFluteInBattle:: ; 22306 (8:6306) ld a, SFX_CAUGHT_MON call PlaySoundWaitForCurrent ; then immediately overwrtie the channel pointers - ld hl, wc00e + ld hl, wChannelCommandPointers + CH4 * 2 ld de, SFX_08_PokeFlute_Ch1 call Audio2_OverwriteChannelPointer ld de, SFX_08_PokeFlute_Ch2 @@ -572,7 +572,7 @@ PlayPokedexRatingSfx:: ; 7d13b (1f:513b) .gotSfxPointer push bc ld a, $ff - ld [wc0ee], a + ld [wNewSoundID], a call PlaySoundWaitForCurrent pop bc ld b, $0 diff --git a/audio/engine_1.asm b/audio/engine_1.asm index 9a302ef3..c729fa7e 100644 --- a/audio/engine_1.asm +++ b/audio/engine_1.asm @@ -3,29 +3,29 @@ Audio1_UpdateMusic:: ; 0x9103 ld c, CH0 .loop - ld b, $0 - ld hl, wc026 + ld b, 0 + ld hl, wChannelSoundIDs add hl, bc ld a, [hl] and a jr z, .nextChannel ld a, c cp CH4 - jr nc, .asm_912e ; if sfx channel - ld a, [wc002] + jr nc, .applyAffects ; if sfx channel + ld a, [wMuteAudioAndPauseMusic] and a - jr z, .asm_912e + jr z, .applyAffects bit 7, a jr nz, .nextChannel set 7, a - ld [wc002], a - xor a - ld [$ff25], a - ld [$ff1a], a + ld [wMuteAudioAndPauseMusic], a + xor a ; disable all channels' output + ld [rNR51], a + ld [rNR30], a ld a, $80 - ld [$ff1a], a + ld [rNR30], a jr .nextChannel -.asm_912e +.applyAffects call Audio1_ApplyMusicAffects .nextChannel ld a, c @@ -36,15 +36,9 @@ Audio1_UpdateMusic:: ; 0x9103 ; this routine checks flags for music effects currently applied ; to the channel and calls certain functions based on flags. -; known flags for wc02e: -; 0: toggleperfectpitch has been used -; 1: call has been used -; 3: a toggle used only by this routine for vibrato -; 4: pitchbend flag -; 6: dutycycle flag Audio1_ApplyMusicAffects: ; 0x9138 ld b, $0 - ld hl, wc0b6 ; delay until next note + ld hl, wChannelNoteDelayCounters ; delay until next note add hl, bc ld a, [hl] cp $1 ; if the delay is 1, play next note @@ -54,45 +48,45 @@ Audio1_ApplyMusicAffects: ; 0x9138 ld a, c cp CH4 jr nc, .startChecks ; if a sfx channel - ld hl, wc02a + ld hl, wChannelSoundIDs + CH4 add hl, bc ld a, [hl] and a jr z, .startChecks ret .startChecks - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc - bit 6, [hl] ; dutycycle + bit BIT_ROTATE_DUTY, [hl] jr z, .checkForExecuteMusic call Audio1_ApplyDutyCycle .checkForExecuteMusic - ld b, $0 - ld hl, wc036 + ld b, 0 + ld hl, wChannelFlags2 add hl, bc - bit 0, [hl] + bit BIT_EXECUTE_MUSIC, [hl] jr nz, .checkForPitchBend - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc - bit 2, [hl] - jr nz, .disablePitchBendVibrato + bit BIT_NOISE_OR_SFX, [hl] + jr nz, .skipPitchBendVibrato .checkForPitchBend - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc - bit 4, [hl] ; pitchbend + bit BIT_PITCH_BEND_ON, [hl] jr z, .checkVibratoDelay jp Audio1_ApplyPitchBend .checkVibratoDelay - ld hl, wc04e ; vibrato delay + ld hl, wChannelVibratoDelayCounters add hl, bc ld a, [hl] and a ; check if delay is over jr z, .checkForVibrato dec [hl] ; otherwise, dec delay -.disablePitchBendVibrato +.skipPitchBendVibrato ret .checkForVibrato - ld hl, wc056 ; vibrato rate + ld hl, wChannelVibratoExtents add hl, bc ld a, [hl] and a @@ -100,38 +94,40 @@ Audio1_ApplyMusicAffects: ; 0x9138 ret ; no vibrato .vibrato ld d, a - ld hl, wc05e + ld hl, wChannelVibratoRates add hl, bc ld a, [hl] and $f and a - jr z, .vibratoAlreadyDone - dec [hl] ; apply vibrato pitch change + jr z, .applyVibrato + dec [hl] ; decrement counter ret -.vibratoAlreadyDone +.applyVibrato ld a, [hl] swap [hl] or [hl] - ld [hl], a ; reset the vibrato value and start again - ld hl, wc066 + ld [hl], a ; reload the counter + ld hl, wChannelFrequencyLowBytes add hl, bc ld e, [hl] ; get note pitch - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc - bit 3, [hl] ; this is the only code that sets/resets bit three so - jr z, .unset ; it continuously alternates which path it takes - res 3, [hl] +; This is the only code that sets/resets the vibrato direction bit, so it +; continuously alternates which path it takes. + bit BIT_VIBRATO_DIRECTION, [hl] + jr z, .unset + res BIT_VIBRATO_DIRECTION, [hl] ld a, d and $f ld d, a ld a, e sub d jr nc, .noCarry - ld a, $0 + ld a, 0 .noCarry jr .done .unset - set 3, [hl] + set BIT_VIBRATO_DIRECTION, [hl] ld a, d and $f0 swap a @@ -140,8 +136,8 @@ Audio1_ApplyMusicAffects: ; 0x9138 ld a, $ff .done ld d, a - ld b, $3 - call Audio1_9838 + ld b, REG_FREQUENCY_LO + call Audio1_GetRegisterPointer ld [hl], d ret @@ -149,16 +145,18 @@ Audio1_ApplyMusicAffects: ; 0x9138 ; like tempo changes, duty changes etc. and doesn't return ; until the first note is reached Audio1_PlayNextNote: ; 0x91d0 - ld hl, wc06e +; reload the vibrato delay counter + ld hl, wChannelVibratoDelayCounterReloadValues add hl, bc ld a, [hl] - ld hl, wc04e + ld hl, wChannelVibratoDelayCounters add hl, bc ld [hl], a - ld hl, wc02e + + ld hl, wChannelFlags1 add hl, bc - res 4, [hl] - res 5, [hl] + res BIT_PITCH_BEND_ON, [hl] + res BIT_PITCH_BEND_DECREASING, [hl] call Audio1_endchannel ret @@ -167,34 +165,35 @@ Audio1_endchannel: ; 0x91e6 ld d, a cp $ff ; is this command an endchannel? jp nz, Audio1_callchannel ; no - ld b, $0 ; yes - ld hl, wc02e + ld b, 0 + ld hl, wChannelFlags1 add hl, bc - bit 1, [hl] + bit BIT_CHANNEL_CALL, [hl] jr nz, .returnFromCall ld a, c cp CH3 jr nc, .noiseOrSfxChannel - jr .asm_923f + jr .disableChannelOutput .noiseOrSfxChannel - res 2, [hl] - ld hl, wc036 + res BIT_NOISE_OR_SFX, [hl] + ld hl, wChannelFlags2 add hl, bc - res 0, [hl] + res BIT_EXECUTE_MUSIC, [hl] cp CH6 - jr nz, .notSfxChannel3 + jr nz, .skipSfxChannel3 +; restart hardware channel 3 (wave channel) output ld a, $0 - ld [$ff1a], a + ld [rNR30], a ld a, $80 - ld [$ff1a], a -.notSfxChannel3 + ld [rNR30], a +.skipSfxChannel3 jr nz, .asm_9222 - ld a, [wc003] + ld a, [wDisableChannelOutputWhenSfxEnds] and a jr z, .asm_9222 xor a - ld [wc003], a - jr .asm_923f + ld [wDisableChannelOutputWhenSfxEnds], a + jr .disableChannelOutput .asm_9222 jr .asm_9248 .returnFromCall @@ -203,10 +202,10 @@ Audio1_endchannel: ; 0x91e6 ld a, c add a ld e, a - ld hl, wc006 + ld hl, wChannelCommandPointers add hl, de push hl ; store current channel address - ld hl, wc016 + ld hl, wChannelReturnAddresses add hl, de ld e, l ld d, h @@ -217,36 +216,36 @@ Audio1_endchannel: ; 0x91e6 ld a, [de] ld [hl], a ; loads channel address to return to jp Audio1_endchannel -.asm_923f - ld hl, Unknown_9b1f +.disableChannelOutput + ld hl, Audio1_HWChannelDisableMasks add hl, bc - ld a, [$ff25] + ld a, [rNR51] and [hl] - ld [$ff25], a + ld [rNR51], a .asm_9248 - ld a, [wc02a] - cp $14 + ld a, [wChannelSoundIDs + CH4] + cp CRY_SFX_START jr nc, .asm_9251 - jr .asm_926e + jr .skipCry .asm_9251 - ld a, [wc02a] - cp $86 - jr z, .asm_926e - jr c, .asm_925c - jr .asm_926e -.asm_925c + ld a, [wChannelSoundIDs + CH4] + cp CRY_SFX_END + jr z, .skipCry + jr c, .cry + jr .skipCry +.cry ld a, c cp CH4 jr z, .asm_9265 - call Audio1_96c7 + call Audio1_GoBackOneCommandIfCry ret c .asm_9265 - ld a, [wc005] - ld [$ff24], a + ld a, [wSavedVolume] + ld [rNR50], a xor a - ld [wc005], a -.asm_926e - ld hl, wc026 + ld [wSavedVolume], a +.skipCry + ld hl, wChannelSoundIDs add hl, bc ld [hl], b ret @@ -254,7 +253,7 @@ Audio1_endchannel: ; 0x91e6 Audio1_callchannel: ; 0x9274 cp $fd ; is this command a callchannel? jp nz, Audio1_loopchannel ; no - call Audio1_GetNextMusicByte ; yes + call Audio1_GetNextMusicByte push af call Audio1_GetNextMusicByte ld d, a @@ -265,10 +264,10 @@ Audio1_callchannel: ; 0x9274 ld a, c add a ld e, a - ld hl, wc006 + ld hl, wChannelCommandPointers add hl, de push hl - ld hl, wc016 + ld hl, wChannelReturnAddresses add hl, de ld e, l ld d, h @@ -283,20 +282,20 @@ Audio1_callchannel: ; 0x9274 inc hl ld [hl], d ; overwrite current address with pointer ld b, $0 - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc - set 1, [hl] ; set the call flag + set BIT_CHANNEL_CALL, [hl] ; set the call flag jp Audio1_endchannel Audio1_loopchannel: ; 0x92a9 cp $fe ; is this command a loopchannel? jp nz, Audio1_notetype ; no - call Audio1_GetNextMusicByte ; yes + call Audio1_GetNextMusicByte ld e, a and a jr z, .infiniteLoop - ld b, $0 - ld hl, wc0be + ld b, 0 + ld hl, wChannelLoopCounters add hl, bc ld a, [hl] cp e @@ -319,7 +318,7 @@ Audio1_loopchannel: ; 0x92a9 ld a, c add a ld e, a - ld hl, wc006 + ld hl, wChannelCommandPointers add hl, de pop af ld [hli], a @@ -330,10 +329,10 @@ Audio1_notetype: ; 0x92e4 and $f0 cp $d0 ; is this command a notetype? jp nz, Audio1_toggleperfectpitch ; no - ld a, d ; yes + ld a, d and $f ld b, $0 - ld hl, wc0c6 + ld hl, wChannelNoteSpeeds add hl, bc ld [hl], a ; store low nibble as speed ld a, c @@ -345,15 +344,15 @@ Audio1_notetype: ; 0x92e4 cp CH2 jr z, .musicChannel3 cp CH6 - jr nz, .notChannel3 - ld hl, wc0e7 - jr .sfxChannel3 + jr nz, .skipChannel3 + ld hl, wSfxWaveInstrument + jr .channel3 .musicChannel3 - ld hl, wc0e6 -.sfxChannel3 + ld hl, wMusicWaveInstrument +.channel3 ld a, d and $f - ld [hl], a ; store low nibble of param as duty + ld [hl], a ; store low nibble of param as wave instrument ld a, d and $30 sla a @@ -362,9 +361,9 @@ Audio1_notetype: ; 0x92e4 ; if channel 3, store high nibble as volume ; else, store volume (high nibble) and fade (low nibble) -.notChannel3 - ld b, $0 - ld hl, wc0de +.skipChannel3 + ld b, 0 + ld hl, wChannelVolumes add hl, bc ld [hl], d .noiseChannel @@ -374,56 +373,70 @@ Audio1_toggleperfectpitch: ; 0x9323 ld a, d cp $e8 ; is this command a toggleperfectpitch? jr nz, Audio1_vibrato ; no - ld b, $0 ; yes - ld hl, wc02e + ld b, 0 + ld hl, wChannelFlags1 add hl, bc ld a, [hl] xor $1 - ld [hl], a ; flip bit 0 of wc02e + ld [hl], a ; flip bit 0 of wChannelFlags1 jp Audio1_endchannel Audio1_vibrato: ; 0x9335 cp $ea ; is this command a vibrato? jr nz, Audio1_pitchbend ; no - call Audio1_GetNextMusicByte ; yes - ld b, $0 - ld hl, wc04e + call Audio1_GetNextMusicByte + ld b, 0 + ld hl, wChannelVibratoDelayCounters add hl, bc ld [hl], a ; store delay - ld hl, wc06e + ld hl, wChannelVibratoDelayCounterReloadValues add hl, bc ld [hl], a ; store delay call Audio1_GetNextMusicByte ld d, a + +; The high nybble of the command byte is the extent of the vibrato. +; Let n be the extent. +; The upper nybble of the channel's byte in the wChannelVibratoExtents +; array will store the extent above the note: (n / 2) + (n % 2). +; The lower nybble will store the extent below the note: (n / 2). +; These two values add to the total extent, n. and $f0 swap a - ld b, $0 - ld hl, wc056 + ld b, 0 + ld hl, wChannelVibratoExtents add hl, bc srl a ld e, a adc b swap a or e - ld [hl], a ; store rate as both high and low nibbles + ld [hl], a + +; The low nybble of the command byte is the rate of the vibrato. +; The high and low nybbles of the channel's byte in the wChannelVibratoRates +; array are both initialised to this value because the high nybble is the +; counter reload value and the low nybble is the counter itself, which should +; start at its value upon reload. ld a, d and $f ld d, a - ld hl, wc05e + ld hl, wChannelVibratoRates add hl, bc swap a or d - ld [hl], a ; store depth as both high and low nibbles + ld [hl], a + jp Audio1_endchannel Audio1_pitchbend: ; 0x936d cp $eb ; is this command a pitchbend? jr nz, Audio1_duty ; no - call Audio1_GetNextMusicByte ; yes - ld b, $0 - ld hl, wc076 + call Audio1_GetNextMusicByte + ld b, 0 + ld hl, wChannelPitchBendLengthModifiers add hl, bc - ld [hl], a ; store first param + ld [hl], a call Audio1_GetNextMusicByte ld d, a and $f0 @@ -431,18 +444,18 @@ Audio1_pitchbend: ; 0x936d ld b, a ld a, d and $f - call Audio1_9858 - ld b, $0 - ld hl, wc0a6 + call Audio1_CalculateFrequency + ld b, 0 + ld hl, wChannelPitchBendTargetFrequencyHighBytes add hl, bc - ld [hl], d ; store unknown part of second param - ld hl, wc0ae + ld [hl], d + ld hl, wChannelPitchBendTargetFrequencyLowBytes add hl, bc - ld [hl], e ; store unknown part of second param - ld b, $0 - ld hl, wc02e + ld [hl], e + ld b, 0 + ld hl, wChannelFlags1 add hl, bc - set 4, [hl] ; set pitchbend flag + set BIT_PITCH_BEND_ON, [hl] call Audio1_GetNextMusicByte ld d, a jp Audio1_notelength @@ -450,12 +463,12 @@ Audio1_pitchbend: ; 0x936d Audio1_duty: ; 0x93a5 cp $ec ; is this command a duty? jr nz, Audio1_tempo ; no - call Audio1_GetNextMusicByte ; yes + call Audio1_GetNextMusicByte rrca rrca and $c0 - ld b, $0 - ld hl, wc03e + ld b, 0 + ld hl, wChannelDuties add hl, bc ld [hl], a ; store duty jp Audio1_endchannel @@ -463,96 +476,96 @@ Audio1_duty: ; 0x93a5 Audio1_tempo: ; 0x93ba cp $ed ; is this command a tempo? jr nz, Audio1_stereopanning ; no - ld a, c ; yes + ld a, c cp CH4 jr nc, .sfxChannel call Audio1_GetNextMusicByte - ld [wc0e8], a ; store first param + ld [wMusicTempo], a ; store first param call Audio1_GetNextMusicByte - ld [wc0e9], a ; store second param + ld [wMusicTempo + 1], a ; store second param xor a - ld [wc0ce], a ; clear RAM - ld [wc0cf], a - ld [wc0d0], a - ld [wc0d1], a + ld [wChannelNoteDelayCountersFractionalPart], a ; clear RAM + ld [wChannelNoteDelayCountersFractionalPart + 1], a + ld [wChannelNoteDelayCountersFractionalPart + 2], a + ld [wChannelNoteDelayCountersFractionalPart + 3], a jr .musicChannelDone .sfxChannel call Audio1_GetNextMusicByte - ld [wc0ea], a ; store first param + ld [wSfxTempo], a ; store first param call Audio1_GetNextMusicByte - ld [wc0eb], a ; store second param + ld [wSfxTempo + 1], a ; store second param xor a - ld [wc0d2], a ; clear RAM - ld [wc0d3], a - ld [wc0d4], a - ld [wc0d5], a + ld [wChannelNoteDelayCountersFractionalPart + 4], a ; clear RAM + ld [wChannelNoteDelayCountersFractionalPart + 5], a + ld [wChannelNoteDelayCountersFractionalPart + 6], a + ld [wChannelNoteDelayCountersFractionalPart + 7], a .musicChannelDone jp Audio1_endchannel Audio1_stereopanning: ; 0x93fa cp $ee ; is this command a stereopanning? jr nz, Audio1_unknownmusic0xef ; no - call Audio1_GetNextMusicByte ; yes - ld [wc004], a ; store panning + call Audio1_GetNextMusicByte + ld [wStereoPanning], a ; store panning jp Audio1_endchannel ; this appears to never be used Audio1_unknownmusic0xef: ; 0x9407 cp $ef ; is this command an unknownmusic0xef? jr nz, Audio1_dutycycle ; no - call Audio1_GetNextMusicByte ; yes + call Audio1_GetNextMusicByte push bc - call Audio1_9876 + call Audio1_PlaySound pop bc - ld a, [wc003] + ld a, [wDisableChannelOutputWhenSfxEnds] and a jr nz, .skip - ld a, [wc02d] - ld [wc003], a + ld a, [wChannelSoundIDs + CH7] + ld [wDisableChannelOutputWhenSfxEnds], a xor a - ld [wc02d], a + ld [wChannelSoundIDs + CH7], a .skip jp Audio1_endchannel Audio1_dutycycle: ; 0x9426 cp $fc ; is this command a dutycycle? jr nz, Audio1_volume ; no - call Audio1_GetNextMusicByte ; yes - ld b, $0 - ld hl, wc046 + call Audio1_GetNextMusicByte + ld b, 0 + ld hl, wChannelDutyCycles add hl, bc ld [hl], a ; store full cycle and $c0 - ld hl, wc03e + ld hl, wChannelDuties add hl, bc ld [hl], a ; store first duty - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc - set 6, [hl] ; set dutycycle flag + set BIT_ROTATE_DUTY, [hl] jp Audio1_endchannel Audio1_volume: ; 0x9444 cp $f0 ; is this command a volume? jr nz, Audio1_executemusic ; no - call Audio1_GetNextMusicByte ; yes - ld [$ff24], a ; store volume + call Audio1_GetNextMusicByte + ld [rNR50], a ; store volume jp Audio1_endchannel Audio1_executemusic: ; 0x9450 cp $f8 ; is this command an executemusic? jr nz, Audio1_octave ; no - ld b, $0 ; yes - ld hl, wc036 + ld b, $0 + ld hl, wChannelFlags2 add hl, bc - set 0, [hl] + set BIT_EXECUTE_MUSIC, [hl] jp Audio1_endchannel Audio1_octave: ; 0x945f and $f0 cp $e0 ; is this command an octave? jr nz, Audio1_unknownsfx0x20 ; no - ld hl, wc0d6 ; yes - ld b, $0 + ld hl, wChannelOctaves + ld b, 0 add hl, bc ld a, d and $f @@ -561,47 +574,54 @@ Audio1_octave: ; 0x945f Audio1_unknownsfx0x20: ; 0x9472 cp $20 ; is this command an unknownsfx0x20? - jr nz, Audio1_unknownsfx0x10 ; no + jr nz, Audio1_unknownsfx0x10 ld a, c cp CH3 ; is this a noise or sfx channel? jr c, Audio1_unknownsfx0x10 ; no - ld b, $0 - ld hl, wc036 + ld b, 0 + ld hl, wChannelFlags2 add hl, bc - bit 0, [hl] - jr nz, Audio1_unknownsfx0x10 ; no - call Audio1_notelength ; yes + bit BIT_EXECUTE_MUSIC, [hl] ; is executemusic being used? + jr nz, Audio1_unknownsfx0x10 ; yes + call Audio1_notelength + +; This code seems to do the same thing as what Audio1_ApplyDutyAndSoundLength +; does below. ld d, a - ld b, $0 - ld hl, wc03e + ld b, 0 + ld hl, wChannelDuties add hl, bc ld a, [hl] or d ld d, a - ld b, $1 - call Audio1_9838 + ld b, REG_DUTY_SOUND_LEN + call Audio1_GetRegisterPointer ld [hl], d + call Audio1_GetNextMusicByte ld d, a - ld b, $2 - call Audio1_9838 + ld b, REG_VOLUME_ENVELOPE + call Audio1_GetRegisterPointer ld [hl], d call Audio1_GetNextMusicByte ld e, a ld a, c cp CH7 - ld a, $0 - jr z, .sfxNoiseChannel ; only two params for noise channel + ld a, 0 + jr z, .skip +; Channels 1 through 3 have 2 registers that control frequency, but the noise +; channel a single register (the polynomial counter) that controls frequency, +; so this command has one less byte on the noise channel. push de call Audio1_GetNextMusicByte pop de -.sfxNoiseChannel +.skip ld d, a push de - call Audio1_9629 - call Audio1_95f8 + call Audio1_ApplyDutyAndSoundLength + call Audio1_EnableChannelOutput pop de - call Audio1_964b + call Audio1_ApplyWavePatternAndFrequency ret Audio1_unknownsfx0x10: @@ -612,12 +632,12 @@ Audio1_unknownsfx0x10: cp $10 ; is this command a unknownsfx0x10? jr nz, Audio1_note ; no ld b, $0 - ld hl, wc036 + ld hl, wChannelFlags2 add hl, bc - bit 0, [hl] + bit BIT_EXECUTE_MUSIC, [hl] jr nz, Audio1_note ; no - call Audio1_GetNextMusicByte ; yes - ld [$ff10], a + call Audio1_GetNextMusicByte + ld [rNR10], a jp Audio1_endchannel Audio1_note: @@ -627,7 +647,7 @@ Audio1_note: ld a, d and $f0 cp $b0 ; is this command a dnote? - jr z, Audio1_dnote ; yes + jr z, Audio1_dnote jr nc, Audio1_notelength ; no swap a ld b, a @@ -647,11 +667,11 @@ Audio1_dnote: call Audio1_GetNextMusicByte ; get dnote instrument asm_94fd ld d, a - ld a, [wc003] + ld a, [wDisableChannelOutputWhenSfxEnds] and a jr nz, .asm_9508 ld a, d - call Audio1_9876 + call Audio1_PlaySound .asm_9508 pop bc pop de @@ -661,20 +681,20 @@ Audio1_notelength: ; 0x950a push af and $f inc a - ld b, $0 + ld b, 0 ld e, a ; store note length (in 16ths) ld d, b - ld hl, wc0c6 + ld hl, wChannelNoteSpeeds add hl, bc ld a, [hl] ld l, b - call Audio1_9847 + call Audio1_MultiplyAdd ld a, c cp CH4 jr nc, .sfxChannel - ld a, [wc0e8] + ld a, [wMusicTempo] ld d, a - ld a, [wc0e9] + ld a, [wMusicTempo + 1] ld e, a jr .skip .sfxChannel @@ -682,34 +702,34 @@ Audio1_notelength: ; 0x950a ld e, $0 cp CH7 jr z, .skip ; if noise channel - call Audio1_9693 - ld a, [wc0ea] + call Audio1_SetSfxTempo + ld a, [wSfxTempo] ld d, a - ld a, [wc0eb] + ld a, [wSfxTempo + 1] ld e, a .skip - ld a, l - ld b, $0 - ld hl, wc0ce + ld a, l ; a = note_length * note_speed + ld b, 0 + ld hl, wChannelNoteDelayCountersFractionalPart add hl, bc ld l, [hl] - call Audio1_9847 + call Audio1_MultiplyAdd ld e, l - ld d, h - ld hl, wc0ce + ld d, h ; de = note_delay_frac_part + (note_length * note_speed * tempo) + ld hl, wChannelNoteDelayCountersFractionalPart add hl, bc ld [hl], e ld a, d - ld hl, wc0b6 + ld hl, wChannelNoteDelayCounters add hl, bc ld [hl], a - ld hl, wc036 + ld hl, wChannelFlags2 add hl, bc - bit 0, [hl] + bit BIT_EXECUTE_MUSIC, [hl] jr nz, Audio1_notepitch - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc - bit 2, [hl] + bit BIT_NOISE_OR_SFX, [hl] jr z, Audio1_notepitch pop hl ret @@ -721,177 +741,183 @@ Audio1_notepitch: ; 0x9568 jr nz, .notRest ld a, c cp CH4 - jr nc, .sfxChannel - ld hl, wc02a + jr nc, .next +; If this isn't an SFX channel, try the corresponding SFX channel. + ld hl, wChannelSoundIDs + CH4 add hl, bc ld a, [hl] and a jr nz, .done ; fall through -.sfxChannel +.next ld a, c cp CH2 - jr z, .musicChannel3 + jr z, .channel3 cp CH6 - jr nz, .notSfxChannel3 -.musicChannel3 - ld b, $0 - ld hl, Unknown_9b1f + jr nz, .notChannel3 +.channel3 + ld b, 0 + ld hl, Audio1_HWChannelDisableMasks add hl, bc - ld a, [$ff25] + ld a, [rNR51] and [hl] - ld [$ff25], a + ld [rNR51], a ; disable hardware channel 3's output jr .done -.notSfxChannel3 - ld b, $2 - call Audio1_9838 - ld a, $8 +.notChannel3 + ld b, REG_VOLUME_ENVELOPE + call Audio1_GetRegisterPointer + ld a, $8 ; fade in sound ld [hli], a inc hl - ld a, $80 + ld a, $80 ; restart sound ld [hl], a .done ret .notRest swap a - ld b, $0 - ld hl, wc0d6 + ld b, 0 + ld hl, wChannelOctaves add hl, bc ld b, [hl] - call Audio1_9858 - ld b, $0 - ld hl, wc02e - add hl, bc - bit 4, [hl] - jr z, .asm_95b8 - call Audio1_978f -.asm_95b8 + call Audio1_CalculateFrequency + ld b, 0 + ld hl, wChannelFlags1 + add hl, bc + bit BIT_PITCH_BEND_ON, [hl] + jr z, .skipPitchBend + call Audio1_InitPitchBendVars +.skipPitchBend push de ld a, c cp CH4 - jr nc, .skip ; if sfx channel - ld hl, wc02a - ld d, $0 + jr nc, .sfxChannel ; if sfx channel +; If this isn't an SFX channel, try the corresponding SFX channel. + ld hl, wChannelSoundIDs + CH4 + ld d, 0 ld e, a add hl, de ld a, [hl] and a - jr nz, .asm_95cb - jr .skip -.asm_95cb + jr nz, .noSfx + jr .sfxChannel +.noSfx pop de ret -.skip - ld b, $0 - ld hl, wc0de +.sfxChannel + ld b, 0 + ld hl, wChannelVolumes add hl, bc ld d, [hl] - ld b, $2 - call Audio1_9838 + ld b, REG_VOLUME_ENVELOPE + call Audio1_GetRegisterPointer ld [hl], d - call Audio1_9629 - call Audio1_95f8 + call Audio1_ApplyDutyAndSoundLength + call Audio1_EnableChannelOutput pop de ld b, $0 - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc - bit 0, [hl] ; has toggleperfectpitch been used? - jr z, .skip2 - inc e ; if yes, increment the pitch by 1 - jr nc, .skip2 + bit BIT_PERFECT_PITCH, [hl] ; has toggleperfectpitch been used? + jr z, .skipFrequencyInc + inc e ; if yes, increment the frequency by 1 + jr nc, .skipFrequencyInc inc d -.skip2 - ld hl, wc066 +.skipFrequencyInc + ld hl, wChannelFrequencyLowBytes add hl, bc ld [hl], e - call Audio1_964b + call Audio1_ApplyWavePatternAndFrequency ret -Audio1_95f8: ; 0x95f8 - ld b, $0 - ld hl, Unknown_9b27 +Audio1_EnableChannelOutput: ; 0x95f8 + ld b, 0 + ld hl, Audio1_HWChannelEnableMasks add hl, bc - ld a, [$ff25] - or [hl] + ld a, [rNR51] + or [hl] ; set this channel's bits ld d, a ld a, c cp CH7 - jr z, .sfxNoiseChannel + jr z, .noiseChannelOrNoSfx cp CH4 jr nc, .skip ; if sfx channel - ld hl, wc02a +; If this isn't an SFX channel, try the corresponding SFX channel. + ld hl, wChannelSoundIDs + CH4 add hl, bc ld a, [hl] and a jr nz, .skip -.sfxNoiseChannel - ld a, [wc004] - ld hl, Unknown_9b27 +.noiseChannelOrNoSfx +; If this is the SFX noise channel or a music channel whose corresponding +; SFX channel is off, apply stereo panning. + ld a, [wStereoPanning] + ld hl, Audio1_HWChannelEnableMasks add hl, bc and [hl] ld d, a - ld a, [$ff25] - ld hl, Unknown_9b1f + ld a, [rNR51] + ld hl, Audio1_HWChannelDisableMasks add hl, bc - and [hl] - or d + and [hl] ; reset this channel's output bits + or d ; set this channel's output bits that enabled in [wStereoPanning] ld d, a .skip ld a, d - ld [$ff25], a + ld [rNR51], a ret -Audio1_9629: ; 0x9629 - ld b, $0 - ld hl, wc0b6 +Audio1_ApplyDutyAndSoundLength: ; 0x9629 + ld b, 0 + ld hl, wChannelNoteDelayCounters ; use the note delay as sound length add hl, bc ld d, [hl] ld a, c cp CH2 - jr z, .channel3 ; if music channel 3 + jr z, .skipDuty ; if music channel 3 cp CH6 - jr z, .channel3 ; if sfx channel 3 + jr z, .skipDuty ; if sfx channel 3 +; include duty (except on channel 3 which doesn't have it) ld a, d and $3f ld d, a - ld hl, wc03e + ld hl, wChannelDuties add hl, bc ld a, [hl] or d ld d, a -.channel3 - ld b, $1 - call Audio1_9838 +.skipDuty + ld b, REG_DUTY_SOUND_LEN + call Audio1_GetRegisterPointer ld [hl], d ret -Audio1_964b: ; 0x964b +Audio1_ApplyWavePatternAndFrequency: ; 0x964b ld a, c cp CH2 jr z, .channel3 cp CH6 - jr nz, .notSfxChannel3 + jr nz, .notChannel3 ; fall through .channel3 push de - ld de, wc0e6 + ld de, wMusicWaveInstrument cp CH2 - jr z, .musicChannel3 - ld de, wc0e7 -.musicChannel3 + jr z, .next + ld de, wSfxWaveInstrument +.next ld a, [de] add a - ld d, $0 + ld d, 0 ld e, a ld hl, Audio1_WavePointers add hl, de ld e, [hl] inc hl ld d, [hl] - ld hl, $ff30 + ld hl, $ff30 ; wave pattern RAM ld b, $f - ld a, $0 - ld [$ff1a], a + ld a, $0 ; stop hardware channel 3 + ld [rNR30], a .loop ld a, [de] inc de @@ -900,152 +926,155 @@ Audio1_964b: ; 0x964b dec b and a jr nz, .loop - ld a, $80 - ld [$ff1a], a + ld a, $80 ; start hardware channel 3 + ld [rNR30], a pop de -.notSfxChannel3 +.notChannel3 ld a, d - or $80 - and $c7 + or $80 ; use counter mode (i.e. disable output when the counter reaches 0) + and $c7 ; zero the unused bits in the register ld d, a - ld b, $3 - call Audio1_9838 - ld [hl], e + ld b, REG_FREQUENCY_LO + call Audio1_GetRegisterPointer + ld [hl], e ; store frequency low byte inc hl - ld [hl], d - call Audio1_96b5 + ld [hl], d ; store frequency high byte + call Audio1_ApplyFrequencyModifier ret -Audio1_9693: ; 0x9693 - call Audio1_96e5 - jr nc, .asm_96ab - ld d, $0 - ld a, [wc0f2] +Audio1_SetSfxTempo: ; 0x9693 + call Audio1_IsCry + jr nc, .notCry + ld d, 0 + ld a, [wTempoModifier] add $80 - jr nc, .asm_96a2 + jr nc, .next inc d -.asm_96a2 - ld [wc0eb], a +.next + ld [wSfxTempo + 1], a ld a, d - ld [wc0ea], a - jr .asm_96b4 -.asm_96ab + ld [wSfxTempo], a + jr .done +.notCry xor a - ld [wc0eb], a + ld [wSfxTempo + 1], a ld a, $1 - ld [wc0ea], a -.asm_96b4 + ld [wSfxTempo], a +.done ret -Audio1_96b5: ; 0x96b5 - call Audio1_96e5 - jr nc, .asm_96c6 - ld a, [wc0f1] +Audio1_ApplyFrequencyModifier: ; 0x96b5 + call Audio1_IsCry + jr nc, .done +; if playing a cry, add the cry's frequency modifier + ld a, [wFrequencyModifier] add e - jr nc, .asm_96c1 + jr nc, .noCarry inc d -.asm_96c1 +.noCarry dec hl ld e, a ld [hl], e inc hl ld [hl], d -.asm_96c6 +.done ret -Audio1_96c7: ; 0x96c7 - call Audio1_96e5 - jr nc, .asm_96e2 - ld hl, wc006 +Audio1_GoBackOneCommandIfCry: ; 0x96c7 + call Audio1_IsCry + jr nc, .done + ld hl, wChannelCommandPointers ld e, c - ld d, $0 + ld d, 0 sla e rl d add hl, de ld a, [hl] - sub $1 + sub 1 ld [hl], a inc hl ld a, [hl] - sbc $0 + sbc 0 ld [hl], a scf ret -.asm_96e2 +.done scf ccf ret -Audio1_96e5: ; 0x96e5 - ld a, [wc02a] - cp $14 - jr nc, .asm_96ee - jr .asm_96f4 -.asm_96ee - cp $86 - jr z, .asm_96f4 - jr c, .asm_96f7 -.asm_96f4 +Audio1_IsCry: ; 0x96e5 +; Returns whether the currently playing audio is a cry in carry. + ld a, [wChannelSoundIDs + CH4] + cp CRY_SFX_START + jr nc, .next + jr .no +.next + cp CRY_SFX_END + jr z, .no + jr c, .yes +.no scf ccf ret -.asm_96f7 +.yes scf ret Audio1_ApplyPitchBend: ; 0x96f9 - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc - bit 5, [hl] - jp nz, .asm_9740 - ld hl, wc09e + bit BIT_PITCH_BEND_DECREASING, [hl] + jp nz, .frequencyDecreasing +; frequency increasing + ld hl, wChannelPitchBendCurrentFrequencyLowBytes add hl, bc ld e, [hl] - ld hl, wc096 + ld hl, wChannelPitchBendCurrentFrequencyHighBytes add hl, bc ld d, [hl] - ld hl, wc07e + ld hl, wChannelPitchBendFrequencySteps add hl, bc ld l, [hl] ld h, b add hl, de ld d, h ld e, l - ld hl, wc08e + ld hl, wChannelPitchBendCurrentFrequencyFractionalPart add hl, bc push hl - ld hl, wc086 + ld hl, wChannelPitchBendFrequencyStepsFractionalPart add hl, bc ld a, [hl] pop hl add [hl] ld [hl], a - ld a, $0 + ld a, 0 adc e ld e, a - ld a, $0 + ld a, 0 adc d ld d, a - ld hl, wc0a6 + ld hl, wChannelPitchBendTargetFrequencyHighBytes add hl, bc ld a, [hl] cp d - jp c, .asm_9786 - jr nz, .asm_9773 - ld hl, wc0ae + jp c, .reachedTargetFrequency + jr nz, .applyUpdatedFrequency + ld hl, wChannelPitchBendTargetFrequencyLowBytes add hl, bc ld a, [hl] cp e - jp c, .asm_9786 - jr .asm_9773 -.asm_9740 - ld hl, wc09e + jp c, .reachedTargetFrequency + jr .applyUpdatedFrequency +.frequencyDecreasing + ld hl, wChannelPitchBendCurrentFrequencyLowBytes add hl, bc ld a, [hl] - ld hl, wc096 + ld hl, wChannelPitchBendCurrentFrequencyHighBytes add hl, bc ld d, [hl] - ld hl, wc07e + ld hl, wChannelPitchBendFrequencySteps add hl, bc ld e, [hl] sub e @@ -1053,7 +1082,7 @@ Audio1_ApplyPitchBend: ; 0x96f9 ld a, d sbc b ld d, a - ld hl, wc086 + ld hl, wChannelPitchBendFrequencyStepsFractionalPart add hl, bc ld a, [hl] add a @@ -1064,129 +1093,140 @@ Audio1_ApplyPitchBend: ; 0x96f9 ld a, d sbc b ld d, a - ld hl, wc0a6 + ld hl, wChannelPitchBendTargetFrequencyHighBytes add hl, bc ld a, d cp [hl] - jr c, .asm_9786 - jr nz, .asm_9773 - ld hl, wc0ae + jr c, .reachedTargetFrequency + jr nz, .applyUpdatedFrequency + ld hl, wChannelPitchBendTargetFrequencyLowBytes add hl, bc ld a, e cp [hl] - jr c, .asm_9786 -.asm_9773 - ld hl, wc09e + jr c, .reachedTargetFrequency +.applyUpdatedFrequency + ld hl, wChannelPitchBendCurrentFrequencyLowBytes add hl, bc ld [hl], e - ld hl, wc096 + ld hl, wChannelPitchBendCurrentFrequencyHighBytes add hl, bc ld [hl], d - ld b, $3 - call Audio1_9838 + ld b, REG_FREQUENCY_LO + call Audio1_GetRegisterPointer ld a, e ld [hli], a ld [hl], d ret -.asm_9786 - ld hl, wc02e +.reachedTargetFrequency +; Turn off pitch bend when the target frequency has been reached. + ld hl, wChannelFlags1 add hl, bc - res 4, [hl] - res 5, [hl] + res BIT_PITCH_BEND_ON, [hl] + res BIT_PITCH_BEND_DECREASING, [hl] ret -Audio1_978f: ; 0x978f - ld hl, wc096 +Audio1_InitPitchBendVars: ; 0x978f + ld hl, wChannelPitchBendCurrentFrequencyHighBytes add hl, bc ld [hl], d - ld hl, wc09e + ld hl, wChannelPitchBendCurrentFrequencyLowBytes add hl, bc ld [hl], e - ld hl, wc0b6 + ld hl, wChannelNoteDelayCounters add hl, bc ld a, [hl] - ld hl, wc076 + ld hl, wChannelPitchBendLengthModifiers add hl, bc sub [hl] - jr nc, .asm_97a7 - ld a, $1 -.asm_97a7 + jr nc, .next + ld a, 1 +.next ld [hl], a - ld hl, wc0ae + ld hl, wChannelPitchBendTargetFrequencyLowBytes add hl, bc ld a, e sub [hl] ld e, a ld a, d sbc b - ld hl, wc0a6 + ld hl, wChannelPitchBendTargetFrequencyHighBytes add hl, bc sub [hl] - jr c, .asm_97c3 + jr c, .targetFrequencyGreater ld d, a - ld b, $0 - ld hl, wc02e + ld b, 0 + ld hl, wChannelFlags1 add hl, bc - set 5, [hl] - jr .asm_97e6 -.asm_97c3 - ld hl, wc096 + set BIT_PITCH_BEND_DECREASING, [hl] + jr .next2 +.targetFrequencyGreater +; If the target frequency is greater, subtract the current frequency from +; the target frequency to get the absolute difference. + ld hl, wChannelPitchBendCurrentFrequencyHighBytes add hl, bc ld d, [hl] - ld hl, wc09e + ld hl, wChannelPitchBendCurrentFrequencyLowBytes add hl, bc ld e, [hl] - ld hl, wc0ae + ld hl, wChannelPitchBendTargetFrequencyLowBytes add hl, bc ld a, [hl] sub e ld e, a + +; Bug. Instead of borrowing from the high byte of the target frequency as it +; should, it borrows from the high byte of the current frequency instead. +; This means that the result will be 0x200 greater than it should be if the +; low byte of the current frequency is greater than the low byte of the +; target frequency. ld a, d sbc b ld d, a - ld hl, wc0a6 + + ld hl, wChannelPitchBendTargetFrequencyHighBytes add hl, bc ld a, [hl] sub d ld d, a - ld b, $0 - ld hl, wc02e + ld b, 0 + ld hl, wChannelFlags1 add hl, bc - res 5, [hl] -.asm_97e6 - ld hl, wc076 + res BIT_PITCH_BEND_DECREASING, [hl] + +.next2 + ld hl, wChannelPitchBendLengthModifiers add hl, bc -.asm_97ea +.divideLoop inc b ld a, e sub [hl] ld e, a - jr nc, .asm_97ea + jr nc, .divideLoop ld a, d and a - jr z, .asm_97f8 + jr z, .doneDividing dec a ld d, a - jr .asm_97ea -.asm_97f8 - ld a, e + jr .divideLoop +.doneDividing + ld a, e ; a = remainder - dividend add [hl] - ld d, b - ld b, $0 - ld hl, wc07e + ld d, b ; d = quotient + 1 + ld b, 0 + ld hl, wChannelPitchBendFrequencySteps add hl, bc - ld [hl], d - ld hl, wc086 + ld [hl], d ; store quotient + 1 + ld hl, wChannelPitchBendFrequencyStepsFractionalPart add hl, bc - ld [hl], a - ld hl, wc08e + ld [hl], a ; store remainder - dividend + ld hl, wChannelPitchBendCurrentFrequencyFractionalPart add hl, bc - ld [hl], a + ld [hl], a ; store remainder - dividend ret Audio1_ApplyDutyCycle: ; 0x980d - ld b, $0 - ld hl, wc046 + ld b, 0 + ld hl, wChannelDutyCycles add hl, bc ld a, [hl] rlca @@ -1194,8 +1234,8 @@ Audio1_ApplyDutyCycle: ; 0x980d ld [hl], a and $c0 ld d, a - ld b, $1 - call Audio1_9838 + ld b, REG_DUTY_SOUND_LEN + call Audio1_GetRegisterPointer ld a, [hl] and $3f or d @@ -1203,11 +1243,11 @@ Audio1_ApplyDutyCycle: ; 0x980d ret Audio1_GetNextMusicByte: ; 0x9825 - ld d, $0 + ld d, 0 ld a, c add a ld e, a - ld hl, wc006 + ld hl, wChannelCommandPointers add hl, de ld a, [hli] ld e, a @@ -1220,9 +1260,10 @@ Audio1_GetNextMusicByte: ; 0x9825 ld [hl], d ret -Audio1_9838: ; 0x9838 +Audio1_GetRegisterPointer: ; 0x9838 +; hl = address of hardware sound register b for software channel c ld a, c - ld hl, Unknown_9b17 + ld hl, Audio1_HWChannelBaseAddresses add l jr nc, .noCarry inc h @@ -1234,13 +1275,14 @@ Audio1_9838: ; 0x9838 ld h, $ff ret -Audio1_9847: ; 0x9847 - ld h, $0 +Audio1_MultiplyAdd: ; 0x9847 +; hl = l + (a * de) + ld h, 0 .loop srl a - jr nc, .noCarry + jr nc, .skipAdd add hl, de -.noCarry +.skipAdd sla e rl d and a @@ -1249,8 +1291,9 @@ Audio1_9847: ; 0x9847 .done ret -Audio1_9858: ; 0x9858 - ld h, $0 +Audio1_CalculateFrequency: ; 0x9858 +; return the frequency for note a, octave b in de + ld h, 0 ld l, a add hl, hl ld d, h @@ -1262,137 +1305,138 @@ Audio1_9858: ; 0x9858 ld d, [hl] ld a, b .loop - cp $7 + cp 7 jr z, .done sra d rr e inc a jr .loop .done - ld a, $8 + ld a, 8 add d ld d, a ret -Audio1_9876:: ; 0x9876 - ld [wc001], a +Audio1_PlaySound:: ; 0x9876 + ld [wSoundID], a cp $ff - jp z, Audio1_9a34 - cp $b9 - jp z, Audio1_994e - jp c, Audio1_994e + jp z, .stopAllAudio + cp MAX_SFX_ID + jp z, .playSfx + jp c, .playSfx cp $fe - jr z, .asm_988d - jp nc, Audio1_994e -.asm_988d + jr z, .playMusic + jp nc, .playSfx + +.playMusic xor a - ld [wc000], a - ld [wc003], a - ld [wc0e9], a - ld [wc0e6], a - ld [wc0e7], a + ld [wUnusedC000], a + ld [wDisableChannelOutputWhenSfxEnds], a + ld [wMusicTempo + 1], a + ld [wMusicWaveInstrument], a + ld [wSfxWaveInstrument], a ld d, $8 - ld hl, wc016 - call FillAudioRAM1 - ld hl, wc006 - call FillAudioRAM1 + ld hl, wChannelReturnAddresses + call .FillMem + ld hl, wChannelCommandPointers + call .FillMem ld d, $4 - ld hl, wc026 - call FillAudioRAM1 - ld hl, wc02e - call FillAudioRAM1 - ld hl, wc03e - call FillAudioRAM1 - ld hl, wc046 - call FillAudioRAM1 - ld hl, wc04e - call FillAudioRAM1 - ld hl, wc056 - call FillAudioRAM1 - ld hl, wc05e - call FillAudioRAM1 - ld hl, wc066 - call FillAudioRAM1 - ld hl, wc06e - call FillAudioRAM1 - ld hl, wc036 - call FillAudioRAM1 - ld hl, wc076 - call FillAudioRAM1 - ld hl, wc07e - call FillAudioRAM1 - ld hl, wc086 - call FillAudioRAM1 - ld hl, wc08e - call FillAudioRAM1 - ld hl, wc096 - call FillAudioRAM1 - ld hl, wc09e - call FillAudioRAM1 - ld hl, wc0a6 - call FillAudioRAM1 - ld hl, wc0ae - call FillAudioRAM1 + ld hl, wChannelSoundIDs + call .FillMem + ld hl, wChannelFlags1 + call .FillMem + ld hl, wChannelDuties + call .FillMem + ld hl, wChannelDutyCycles + call .FillMem + ld hl, wChannelVibratoDelayCounters + call .FillMem + ld hl, wChannelVibratoExtents + call .FillMem + ld hl, wChannelVibratoRates + call .FillMem + ld hl, wChannelFrequencyLowBytes + call .FillMem + ld hl, wChannelVibratoDelayCounterReloadValues + call .FillMem + ld hl, wChannelFlags2 + call .FillMem + ld hl, wChannelPitchBendLengthModifiers + call .FillMem + ld hl, wChannelPitchBendFrequencySteps + call .FillMem + ld hl, wChannelPitchBendFrequencyStepsFractionalPart + call .FillMem + ld hl, wChannelPitchBendCurrentFrequencyFractionalPart + call .FillMem + ld hl, wChannelPitchBendCurrentFrequencyHighBytes + call .FillMem + ld hl, wChannelPitchBendCurrentFrequencyLowBytes + call .FillMem + ld hl, wChannelPitchBendTargetFrequencyHighBytes + call .FillMem + ld hl, wChannelPitchBendTargetFrequencyLowBytes + call .FillMem ld a, $1 - ld hl, wc0be - call FillAudioRAM1 - ld hl, wc0b6 - call FillAudioRAM1 - ld hl, wc0c6 - call FillAudioRAM1 - ld [wc0e8], a + ld hl, wChannelLoopCounters + call .FillMem + ld hl, wChannelNoteDelayCounters + call .FillMem + ld hl, wChannelNoteSpeeds + call .FillMem + ld [wMusicTempo], a ld a, $ff - ld [wc004], a + ld [wStereoPanning], a xor a - ld [$ff24], a + ld [rNR50], a ld a, $8 - ld [$ff10], a - ld a, $0 - ld [$ff25], a + ld [rNR10], a + ld a, 0 + ld [rNR51], a xor a - ld [$ff1a], a + ld [rNR30], a ld a, $80 - ld [$ff1a], a + ld [rNR30], a ld a, $77 - ld [$ff24], a - jp Audio1_9a8f + ld [rNR50], a + jp .playSoundCommon -Audio1_994e: ; 0x994e +.playSfx ld l, a ld e, a - ld h, $0 + ld h, 0 ld d, h add hl, hl add hl, de ld de, SFX_Headers_1 add hl, de ld a, h - ld [wc0ec], a + ld [wSfxHeaderPointer], a ld a, l - ld [wc0ed], a + ld [wSfxHeaderPointer + 1], a ld a, [hl] and $c0 rlca rlca ld c, a -.asm_9967 +.sfxChannelLoop ld d, c ld a, c add a add c ld c, a - ld b, $0 - ld a, [wc0ec] + ld b, 0 + ld a, [wSfxHeaderPointer] ld h, a - ld a, [wc0ed] + ld a, [wSfxHeaderPointer + 1] ld l, a add hl, bc ld c, d ld a, [hl] and $f - ld e, a - ld d, $0 - ld hl, wc026 + ld e, a ; software channel ID + ld d, 0 + ld hl, wChannelSoundIDs add hl, de ld a, [hl] and a @@ -1400,7 +1444,7 @@ Audio1_994e: ; 0x994e ld a, e cp $7 jr nz, .asm_999a - ld a, [wc001] + ld a, [wSoundID] cp $14 jr nc, .asm_9993 ret @@ -1410,7 +1454,7 @@ Audio1_994e: ; 0x994e jr z, .asm_99a3 jr c, .asm_99a3 .asm_999a - ld a, [wc001] + ld a, [wSoundID] cp [hl] jr z, .asm_99a3 jr c, .asm_99a3 @@ -1423,132 +1467,132 @@ Audio1_994e: ; 0x994e add hl, hl ld d, h ld e, l - ld hl, wc016 + ld hl, wChannelReturnAddresses add hl, de ld [hli], a ld [hl], a - ld hl, wc006 + ld hl, wChannelCommandPointers add hl, de ld [hli], a ld [hl], a pop de - ld hl, wc026 + ld hl, wChannelSoundIDs add hl, de ld [hl], a - ld hl, wc02e + ld hl, wChannelFlags1 add hl, de ld [hl], a - ld hl, wc03e + ld hl, wChannelDuties add hl, de ld [hl], a - ld hl, wc046 + ld hl, wChannelDutyCycles add hl, de ld [hl], a - ld hl, wc04e + ld hl, wChannelVibratoDelayCounters add hl, de ld [hl], a - ld hl, wc056 + ld hl, wChannelVibratoExtents add hl, de ld [hl], a - ld hl, wc05e + ld hl, wChannelVibratoRates add hl, de ld [hl], a - ld hl, wc066 + ld hl, wChannelFrequencyLowBytes add hl, de ld [hl], a - ld hl, wc06e + ld hl, wChannelVibratoDelayCounterReloadValues add hl, de ld [hl], a - ld hl, wc076 + ld hl, wChannelPitchBendLengthModifiers add hl, de ld [hl], a - ld hl, wc07e + ld hl, wChannelPitchBendFrequencySteps add hl, de ld [hl], a - ld hl, wc086 + ld hl, wChannelPitchBendFrequencyStepsFractionalPart add hl, de ld [hl], a - ld hl, wc08e + ld hl, wChannelPitchBendCurrentFrequencyFractionalPart add hl, de ld [hl], a - ld hl, wc096 + ld hl, wChannelPitchBendCurrentFrequencyHighBytes add hl, de ld [hl], a - ld hl, wc09e + ld hl, wChannelPitchBendCurrentFrequencyLowBytes add hl, de ld [hl], a - ld hl, wc0a6 + ld hl, wChannelPitchBendTargetFrequencyHighBytes add hl, de ld [hl], a - ld hl, wc0ae + ld hl, wChannelPitchBendTargetFrequencyLowBytes add hl, de ld [hl], a - ld hl, wc036 + ld hl, wChannelFlags2 add hl, de ld [hl], a ld a, $1 - ld hl, wc0be + ld hl, wChannelLoopCounters add hl, de ld [hl], a - ld hl, wc0b6 + ld hl, wChannelNoteDelayCounters add hl, de ld [hl], a - ld hl, wc0c6 + ld hl, wChannelNoteSpeeds add hl, de ld [hl], a ld a, e - cp $4 + cp CH4 jr nz, .asm_9a2b ld a, $8 - ld [$ff10], a + ld [rNR10], a ; sweep off .asm_9a2b ld a, c and a - jp z, Audio1_9a8f + jp z, .playSoundCommon dec c - jp .asm_9967 + jp .sfxChannelLoop -Audio1_9a34: ; 0x9a34 +.stopAllAudio ld a, $80 - ld [$ff26], a - ld [$ff1a], a + ld [rNR52], a ; sound hardware on + ld [rNR30], a ; wave playback on xor a - ld [$ff25], a - ld [$ff1c], a + ld [rNR51], a ; no sound output + ld [rNR32], a ; mute channel 3 (wave channel) ld a, $8 - ld [$ff10], a - ld [$ff12], a - ld [$ff17], a - ld [$ff21], a + ld [rNR10], a ; sweep off + ld [rNR12], a ; mute channel 1 (pulse channel 1) + ld [rNR22], a ; mute channel 2 (pulse channel 2) + ld [rNR42], a ; mute channel 4 (noise channel) ld a, $40 - ld [$ff14], a - ld [$ff19], a - ld [$ff23], a + ld [rNR14], a ; counter mode + ld [rNR24], a + ld [rNR44], a ld a, $77 - ld [$ff24], a + ld [rNR50], a ; full volume xor a - ld [wc000], a - ld [wc003], a - ld [wc002], a - ld [wc0e9], a - ld [wc0eb], a - ld [wc0e6], a - ld [wc0e7], a + ld [wUnusedC000], a + ld [wDisableChannelOutputWhenSfxEnds], a + ld [wMuteAudioAndPauseMusic], a + ld [wMusicTempo + 1], a + ld [wSfxTempo + 1], a + ld [wMusicWaveInstrument], a + ld [wSfxWaveInstrument], a ld d, $a0 - ld hl, wc006 - call FillAudioRAM1 + ld hl, wChannelCommandPointers + call .FillMem ld a, $1 ld d, $18 - ld hl, wc0b6 - call FillAudioRAM1 - ld [wc0e8], a - ld [wc0ea], a + ld hl, wChannelNoteDelayCounters + call .FillMem + ld [wMusicTempo], a + ld [wSfxTempo], a ld a, $ff - ld [wc004], a + ld [wStereoPanning], a ret ; fills d bytes at hl with a -FillAudioRAM1: ; 0x9a89 +.FillMem ld b, d .loop ld [hli], a @@ -1556,11 +1600,11 @@ FillAudioRAM1: ; 0x9a89 jr nz, .loop ret -Audio1_9a8f: ; 0x9a8f - ld a, [wc001] +.playSoundCommon + ld a, [wSoundID] ld l, a ld e, a - ld h, $0 + ld h, 0 ld d, h add hl, hl add hl, de @@ -1568,7 +1612,7 @@ Audio1_9a8f: ; 0x9a8f add hl, de ld e, l ld d, h - ld hl, wc006 + ld hl, wChannelCommandPointers ld a, [de] ; get channel number ld b, a rlca @@ -1580,31 +1624,31 @@ Audio1_9a8f: ; 0x9a8f ld b, c inc b inc de - ld c, $0 -.asm_9ab1 + ld c, 0 +.commandPointerLoop cp c - jr z, .asm_9ab9 + jr z, .next inc c inc hl inc hl - jr .asm_9ab1 -.asm_9ab9 + jr .commandPointerLoop +.next push hl push bc push af - ld b, $0 + ld b, 0 ld c, a - ld hl, wc026 + ld hl, wChannelSoundIDs add hl, bc - ld a, [wc001] + ld a, [wSoundID] ld [hl], a pop af - cp $3 - jr c, .asm_9ad2 - ld hl, wc02e + cp CH3 + jr c, .skipSettingFlag + ld hl, wChannelFlags1 add hl, bc - set 2, [hl] -.asm_9ad2 + set BIT_NOISE_OR_SFX, [hl] +.skipSettingFlag pop bc pop hl ld a, [de] ; get channel pointer @@ -1619,52 +1663,53 @@ Audio1_9a8f: ; 0x9a8f and a ld a, [de] inc de - jr nz, .asm_9ab1 - ld a, [wc001] - cp $14 + jr nz, .commandPointerLoop + ld a, [wSoundID] + cp CRY_SFX_START jr nc, .asm_9aeb - jr .asm_9b15 + jr .done .asm_9aeb - ld a, [wc001] - cp $86 - jr z, .asm_9b15 - jr c, .asm_9af6 - jr .asm_9b15 -.asm_9af6 - ld hl, wc02a + ld a, [wSoundID] + cp CRY_SFX_END + jr z, .done + jr c, .cry + jr .done +.cry + ld hl, wChannelSoundIDs + CH4 ld [hli], a ld [hli], a ld [hli], a ld [hl], a - ld hl, wc012 ; sfx noise channel pointer - ld de, Noise1_endchannel + ld hl, wChannelCommandPointers + CH6 * 2 ; sfx wave channel pointer + ld de, Audio1_CryEndchannel ld [hl], e inc hl ld [hl], d ; overwrite pointer to point to endchannel - ld a, [wc005] + ld a, [wSavedVolume] and a - jr nz, .asm_9b15 - ld a, [$ff24] - ld [wc005], a + jr nz, .done + ld a, [rNR50] + ld [wSavedVolume], a ld a, $77 - ld [$ff24], a -.asm_9b15 + ld [rNR50], a ; full volume +.done ret -Noise1_endchannel: ; 0x9b16 +Audio1_CryEndchannel: ; 0x9b16 endchannel -Unknown_9b17: ; 0x9b17 - db $10, $15, $1A, $1F ; channels 0-3 - db $10, $15, $1A, $1F ; channels 4-7 +Audio1_HWChannelBaseAddresses: ; 0x9b17 +; the low bytes of each HW channel's base address + db HW_CH1_BASE, HW_CH2_BASE, HW_CH3_BASE, HW_CH4_BASE ; channels 0-3 + db HW_CH1_BASE, HW_CH2_BASE, HW_CH3_BASE, HW_CH4_BASE ; channels 4-7 -Unknown_9b1f: ; 0x9b1f - db $EE, $DD, $BB, $77 ; channels 0-3 - db $EE, $DD, $BB, $77 ; channels 4-7 +Audio1_HWChannelDisableMasks: ; 0x9b1f + db HW_CH1_DISABLE_MASK, HW_CH2_DISABLE_MASK, HW_CH3_DISABLE_MASK, HW_CH4_DISABLE_MASK ; channels 0-3 + db HW_CH1_DISABLE_MASK, HW_CH2_DISABLE_MASK, HW_CH3_DISABLE_MASK, HW_CH4_DISABLE_MASK ; channels 4-7 -Unknown_9b27: ; 0x9b27 - db $11, $22, $44, $88 ; channels 0-3 - db $11, $22, $44, $88 ; channels 4-7 +Audio1_HWChannelEnableMasks: ; 0x9b27 + db HW_CH1_ENABLE_MASK, HW_CH2_ENABLE_MASK, HW_CH3_ENABLE_MASK, HW_CH4_ENABLE_MASK ; channels 0-3 + db HW_CH1_ENABLE_MASK, HW_CH2_ENABLE_MASK, HW_CH3_ENABLE_MASK, HW_CH4_ENABLE_MASK ; channels 4-7 Audio1_Pitches: ; 0x9b2f dw $F82C ; C_ diff --git a/audio/engine_2.asm b/audio/engine_2.asm index 62b82cec..e70a305f 100644 --- a/audio/engine_2.asm +++ b/audio/engine_2.asm @@ -4,7 +4,7 @@ Audio2_UpdateMusic:: ; 21879 (8:5879) ld c, CH0 .loop ld b, $0 - ld hl, wc026 + ld hl, wChannelSoundIDs add hl, bc ld a, [hl] and a @@ -12,18 +12,18 @@ Audio2_UpdateMusic:: ; 21879 (8:5879) ld a, c cp CH4 jr nc, .applyAffects ; if sfx channel - ld a, [wc002] + ld a, [wMuteAudioAndPauseMusic] and a jr z, .applyAffects bit 7, a jr nz, .nextChannel set 7, a - ld [wc002], a + ld [wMuteAudioAndPauseMusic], a xor a - ld [$ff25], a - ld [$ff1a], a + ld [rNR51], a + ld [rNR30], a ld a, $80 - ld [$ff1a], a + ld [rNR30], a jr .nextChannel .applyAffects call Audio2_ApplyMusicAffects @@ -36,7 +36,7 @@ Audio2_UpdateMusic:: ; 21879 (8:5879) ; this routine checks flags for music effects currently applied ; to the channel and calls certain functions based on flags. -; known flags for wc02e: +; known flags for wChannelFlags1: ; 0: toggleperfectpitch has been used ; 1: call has been used ; 3: a toggle used only by this routine for vibrato @@ -44,7 +44,7 @@ Audio2_UpdateMusic:: ; 21879 (8:5879) ; 6: dutycycle flag Audio2_ApplyMusicAffects: ; 218ae (8:58ae) ld b, $0 - ld hl, wc0b6 ; delay until next note + ld hl, wChannelNoteDelayCounters ; delay until next note add hl, bc ld a, [hl] cp $1 ; if the delay is 1, play next note @@ -54,36 +54,36 @@ Audio2_ApplyMusicAffects: ; 218ae (8:58ae) ld a, c cp CH4 jr nc, .startChecks ; if a sfx channel - ld hl, wc02a + ld hl, wChannelSoundIDs + CH4 add hl, bc ld a, [hl] and a jr z, .startChecks ret .startChecks - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc bit 6, [hl] ; dutycycle jr z, .checkForExecuteMusic call Audio2_ApplyDutyCycle .checkForExecuteMusic ld b, $0 - ld hl, wc036 + ld hl, wChannelFlags2 add hl, bc bit 0, [hl] jr nz, .checkForPitchBend - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc bit 2, [hl] jr nz, .disablePitchBendVibrato .checkForPitchBend - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc bit 4, [hl] ; pitchbend jr z, .checkVibratoDelay jp Audio2_ApplyPitchBend .checkVibratoDelay - ld hl, wc04e ; vibrato delay + ld hl, wChannelVibratoDelayCounters ; vibrato delay add hl, bc ld a, [hl] and a ; check if delay is over @@ -92,7 +92,7 @@ Audio2_ApplyMusicAffects: ; 218ae (8:58ae) .disablePitchBendVibrato ret .checkForVibrato - ld hl, wc056 ; vibrato rate + ld hl, wChannelVibratoExtents ; vibrato rate add hl, bc ld a, [hl] and a @@ -100,7 +100,7 @@ Audio2_ApplyMusicAffects: ; 218ae (8:58ae) ret ; no vibrato .vibrato ld d, a - ld hl, wc05e + ld hl, wChannelVibratoRates add hl, bc ld a, [hl] and $f @@ -113,10 +113,10 @@ Audio2_ApplyMusicAffects: ; 218ae (8:58ae) swap [hl] or [hl] ld [hl], a ; reset the vibrato value and start again - ld hl, wc066 + ld hl, wChannelFrequencyLowBytes add hl, bc ld e, [hl] ; get note pitch - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc bit 3, [hl] ; this is the only code that sets/resets bit three so jr z, .unset ; it continuously alternates which path it takes @@ -149,13 +149,13 @@ Audio2_ApplyMusicAffects: ; 218ae (8:58ae) ; like tempo changes, duty changes etc. and doesn't return ; until the first note is reached Audio2_PlayNextNote: ; 21946 (8:5946) - ld hl, wc06e + ld hl, wChannelVibratoDelayCounterReloadValues add hl, bc ld a, [hl] - ld hl, wc04e + ld hl, wChannelVibratoDelayCounters add hl, bc ld [hl], a - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc res 4, [hl] res 5, [hl] @@ -175,7 +175,7 @@ Audio2_endchannel: ; 21967 (8:5967) cp $ff ; is this command an endchannel? jp nz, Audio2_callchannel ; no ld b, $0 ; yes - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc bit 1, [hl] jr nz, .returnFromCall @@ -185,22 +185,22 @@ Audio2_endchannel: ; 21967 (8:5967) jr .asm_219c0 .noiseOrSfxChannel res 2, [hl] - ld hl, wc036 + ld hl, wChannelFlags2 add hl, bc res 0, [hl] cp CH6 jr nz, .notSfxChannel3 ld a, $0 - ld [$ff1a], a + ld [rNR30], a ld a, $80 - ld [$ff1a], a + ld [rNR30], a .notSfxChannel3 jr nz, .asm_219a3 - ld a, [wc003] + ld a, [wDisableChannelOutputWhenSfxEnds] and a jr z, .asm_219a3 xor a - ld [wc003], a + ld [wDisableChannelOutputWhenSfxEnds], a jr .asm_219c0 .asm_219a3 jr .asm_219c9 @@ -210,10 +210,10 @@ Audio2_endchannel: ; 21967 (8:5967) ld a, c add a ld e, a - ld hl, wc006 + ld hl, wChannelCommandPointers add hl, de push hl ; store current channel address - ld hl, wc016 + ld hl, wChannelReturnAddresses add hl, de ld e, l ld d, h @@ -227,16 +227,16 @@ Audio2_endchannel: ; 21967 (8:5967) .asm_219c0 ld hl, Unknown_222de add hl, bc - ld a, [$ff25] + ld a, [rNR51] and [hl] - ld [$ff25], a + ld [rNR51], a .asm_219c9 - ld a, [wc02a] + ld a, [wChannelSoundIDs + CH4] cp $14 jr nc, .asm_219d2 jr .asm_219ef .asm_219d2 - ld a, [wc02a] + ld a, [wChannelSoundIDs + CH4] cp $86 jr z, .asm_219ef jr c, .asm_219dd @@ -248,12 +248,12 @@ Audio2_endchannel: ; 21967 (8:5967) call Audio2_21e6d ret c .asm_219e6 - ld a, [wc005] - ld [$ff24], a + ld a, [wSavedVolume] + ld [rNR50], a xor a - ld [wc005], a + ld [wSavedVolume], a .asm_219ef - ld hl, wc026 + ld hl, wChannelSoundIDs add hl, bc ld [hl], b ret @@ -272,10 +272,10 @@ Audio2_callchannel: ; 219f5 (8:59f5) ld a, c add a ld e, a - ld hl, wc006 + ld hl, wChannelCommandPointers add hl, de push hl - ld hl, wc016 + ld hl, wChannelReturnAddresses add hl, de ld e, l ld d, h @@ -290,7 +290,7 @@ Audio2_callchannel: ; 219f5 (8:59f5) inc hl ld [hl], d ; overwrite current address with pointer ld b, $0 - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc set 1, [hl] ; set the call flag jp Audio2_endchannel @@ -303,7 +303,7 @@ Audio2_loopchannel: ; 21a2a (8:5a2a) and a jr z, .infiniteLoop ld b, $0 - ld hl, wc0be + ld hl, wChannelLoopCounters add hl, bc ld a, [hl] cp e @@ -326,7 +326,7 @@ Audio2_loopchannel: ; 21a2a (8:5a2a) ld a, c add a ld e, a - ld hl, wc006 + ld hl, wChannelCommandPointers add hl, de pop af ld [hli], a @@ -340,7 +340,7 @@ Audio2_notetype: ; 21a65 (8:5a65) ld a, d ; yes and $f ld b, $0 - ld hl, wc0c6 + ld hl, wChannelNoteSpeeds add hl, bc ld [hl], a ; store low nibble as speed ld a, c @@ -353,10 +353,10 @@ Audio2_notetype: ; 21a65 (8:5a65) jr z, .musicChannel3 cp CH6 jr nz, .notChannel3 - ld hl, wc0e7 + ld hl, wSfxWaveInstrument jr .sfxChannel3 .musicChannel3 - ld hl, wc0e6 + ld hl, wMusicWaveInstrument .sfxChannel3 ld a, d and $f @@ -371,7 +371,7 @@ Audio2_notetype: ; 21a65 (8:5a65) ; else, store volume (high nibble) and fade (low nibble) .notChannel3 ld b, $0 - ld hl, wc0de + ld hl, wChannelVolumes add hl, bc ld [hl], d .noiseChannel @@ -382,11 +382,11 @@ Audio2_toggleperfectpitch: ; 21aa4 (8:5aa4) cp $e8 ; is this command a toggleperfectpitch? jr nz, Audio2_vibrato ; no ld b, $0 ; yes - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc ld a, [hl] xor $1 - ld [hl], a ; flip bit 0 of wc02e + ld [hl], a ; flip bit 0 of wChannelFlags1 jp Audio2_endchannel Audio2_vibrato: ; 21ab6 (8:5ab6) @@ -394,10 +394,10 @@ Audio2_vibrato: ; 21ab6 (8:5ab6) jr nz, Audio2_pitchbend ; no call Audio2_GetNextMusicByte ; yes ld b, $0 - ld hl, wc04e + ld hl, wChannelVibratoDelayCounters add hl, bc ld [hl], a ; store delay - ld hl, wc06e + ld hl, wChannelVibratoDelayCounterReloadValues add hl, bc ld [hl], a ; store delay call Audio2_GetNextMusicByte @@ -405,7 +405,7 @@ Audio2_vibrato: ; 21ab6 (8:5ab6) and $f0 swap a ld b, $0 - ld hl, wc056 + ld hl, wChannelVibratoExtents add hl, bc srl a ld e, a @@ -416,7 +416,7 @@ Audio2_vibrato: ; 21ab6 (8:5ab6) ld a, d and $f ld d, a - ld hl, wc05e + ld hl, wChannelVibratoRates add hl, bc swap a or d @@ -428,7 +428,7 @@ Audio2_pitchbend: ; 21aee (8:5aee) jr nz, Audio2_duty ; no call Audio2_GetNextMusicByte ; yes ld b, $0 - ld hl, wc076 + ld hl, wChannelPitchBendLengthModifiers add hl, bc ld [hl], a ; store first param call Audio2_GetNextMusicByte @@ -440,14 +440,14 @@ Audio2_pitchbend: ; 21aee (8:5aee) and $f call Audio2_22017 ld b, $0 - ld hl, wc0a6 + ld hl, wChannelPitchBendTargetFrequencyHighBytes add hl, bc ld [hl], d ; store unknown part of second param - ld hl, wc0ae + ld hl, wChannelPitchBendTargetFrequencyLowBytes add hl, bc ld [hl], e ; store unknown part of second param ld b, $0 - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc set 4, [hl] ; set pitchbend flag call Audio2_GetNextMusicByte @@ -462,7 +462,7 @@ Audio2_duty: ; 21b26 (8:5b26) rrca and $c0 ld b, $0 - ld hl, wc03e + ld hl, wChannelDuties add hl, bc ld [hl], a ; store duty jp Audio2_endchannel @@ -474,25 +474,25 @@ Audio2_tempo: ; 21b3b (8:5b3b) cp CH4 jr nc, .sfxChannel call Audio2_GetNextMusicByte - ld [wc0e8], a ; store first param + ld [wMusicTempo], a ; store first param call Audio2_GetNextMusicByte - ld [wc0e9], a ; store second param + ld [wMusicTempo + 1], a ; store second param xor a - ld [wc0ce], a ; clear RAM - ld [wc0cf], a - ld [wc0d0], a - ld [wc0d1], a + ld [wChannelNoteDelayCountersFractionalPart], a ; clear RAM + ld [wChannelNoteDelayCountersFractionalPart + 1], a + ld [wChannelNoteDelayCountersFractionalPart + 2], a + ld [wChannelNoteDelayCountersFractionalPart + 3], a jr .musicChannelDone .sfxChannel call Audio2_GetNextMusicByte - ld [wc0ea], a ; store first param + ld [wSfxTempo], a ; store first param call Audio2_GetNextMusicByte - ld [wc0eb], a ; store second param + ld [wSfxTempo + 1], a ; store second param xor a - ld [wc0d2], a ; clear RAM - ld [wc0d3], a - ld [wc0d4], a - ld [wc0d5], a + ld [wChannelNoteDelayCountersFractionalPart + 4], a ; clear RAM + ld [wChannelNoteDelayCountersFractionalPart + 5], a + ld [wChannelNoteDelayCountersFractionalPart + 6], a + ld [wChannelNoteDelayCountersFractionalPart + 7], a .musicChannelDone jp Audio2_endchannel @@ -500,7 +500,7 @@ Audio2_stereopanning: ; 21b7b (8:5b7b) cp $ee ; is this command a stereopanning? jr nz, Audio2_unknownmusic0xef ; no call Audio2_GetNextMusicByte ; yes - ld [wc004], a ; store panning + ld [wStereoPanning], a ; store panning jp Audio2_endchannel ; this appears to never be used @@ -509,15 +509,15 @@ Audio2_unknownmusic0xef: ; 21b88 (8:5b88) jr nz, Audio2_dutycycle ; no call Audio2_GetNextMusicByte ; yes push bc - call Audio2_22035 + call Audio2_PlaySound pop bc - ld a, [wc003] + ld a, [wDisableChannelOutputWhenSfxEnds] and a jr nz, .skip - ld a, [wc02d] - ld [wc003], a + ld a, [wChannelSoundIDs + CH7] + ld [wDisableChannelOutputWhenSfxEnds], a xor a - ld [wc02d], a + ld [wChannelSoundIDs + CH7], a .skip jp Audio2_endchannel @@ -526,14 +526,14 @@ Audio2_dutycycle: ; 21ba7 (8:5ba7) jr nz, Audio2_volume ; no call Audio2_GetNextMusicByte ; yes ld b, $0 - ld hl, wc046 + ld hl, wChannelDutyCycles add hl, bc ld [hl], a ; store full cycle and $c0 - ld hl, wc03e + ld hl, wChannelDuties add hl, bc ld [hl], a ; store first duty - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc set 6, [hl] ; set dutycycle flag jp Audio2_endchannel @@ -542,14 +542,14 @@ Audio2_volume: ; 21bc5 (8:5bc5) cp $f0 ; is this command a volume? jr nz, Audio2_executemusic ; no call Audio2_GetNextMusicByte ; yes - ld [$ff24], a ; store volume + ld [rNR50], a ; store volume jp Audio2_endchannel Audio2_executemusic: ; 21bd1 (8:5bd1) cp $f8 ; is this command an executemusic? jr nz, Audio2_octave ; no ld b, $0 ; yes - ld hl, wc036 + ld hl, wChannelFlags2 add hl, bc set 0, [hl] jp Audio2_endchannel @@ -558,7 +558,7 @@ Audio2_octave: ; 21be0 (8:5be0) and $f0 cp $e0 ; is this command an octave? jr nz, Audio2_unknownsfx0x20 ; no - ld hl, wc0d6 ; yes + ld hl, wChannelOctaves ; yes ld b, $0 add hl, bc ld a, d @@ -573,14 +573,14 @@ Audio2_unknownsfx0x20: ; 21bf3 cp CH3 ; is this a noise or sfx channel? jr c, Audio2_unknownsfx0x10 ; no ld b, $0 - ld hl, wc036 + ld hl, wChannelFlags2 add hl, bc bit 0, [hl] jr nz, Audio2_unknownsfx0x10 ; no call Audio2_notelength ld d, a ld b, $0 - ld hl, wc03e + ld hl, wChannelDuties add hl, bc ld a, [hl] or d @@ -619,12 +619,12 @@ Audio2_unknownsfx0x10: ; 21c40 (8:5c40) cp $10 ; is this command a unknownsfx0x10? jr nz, Audio2_note ; no ld b, $0 - ld hl, wc036 + ld hl, wChannelFlags2 add hl, bc bit 0, [hl] jr nz, Audio2_note ; no call Audio2_GetNextMusicByte ; yes - ld [$ff10], a + ld [rNR10], a jp Audio2_endchannel Audio2_note: ; 21c5c (8:5c5c) @@ -654,11 +654,11 @@ Audio2_dnote: ; 21c76 (8:5c76) call Audio2_GetNextMusicByte ; get dnote instrument asm_21c7e ld d, a - ld a, [wc003] + ld a, [wDisableChannelOutputWhenSfxEnds] and a jr nz, .asm_21c89 ld a, d - call Audio2_22035 + call Audio2_PlaySound .asm_21c89 pop bc pop de @@ -671,7 +671,7 @@ Audio2_notelength: ; 21c8b (8:5c8b) ld b, $0 ld e, a ; store note length (in 16ths) ld d, b - ld hl, wc0c6 + ld hl, wChannelNoteSpeeds add hl, bc ld a, [hl] ld l, b @@ -679,9 +679,9 @@ Audio2_notelength: ; 21c8b (8:5c8b) ld a, c cp CH4 jr nc, .sfxChannel - ld a, [wc0e8] + ld a, [wMusicTempo] ld d, a - ld a, [wc0e9] + ld a, [wMusicTempo + 1] ld e, a jr .skip .sfxChannel @@ -690,31 +690,31 @@ Audio2_notelength: ; 21c8b (8:5c8b) cp CH7 jr z, .skip ; if noise channel call Audio2_21e2f - ld a, [wc0ea] + ld a, [wSfxTempo] ld d, a - ld a, [wc0eb] + ld a, [wSfxTempo + 1] ld e, a .skip ld a, l ld b, $0 - ld hl, wc0ce + ld hl, wChannelNoteDelayCountersFractionalPart add hl, bc ld l, [hl] call Audio2_22006 ld e, l ld d, h - ld hl, wc0ce + ld hl, wChannelNoteDelayCountersFractionalPart add hl, bc ld [hl], e ld a, d - ld hl, wc0b6 + ld hl, wChannelNoteDelayCounters add hl, bc ld [hl], a - ld hl, wc036 + ld hl, wChannelFlags2 add hl, bc bit 0, [hl] jr nz, Audio2_notepitch - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc bit 2, [hl] jr z, Audio2_notepitch @@ -729,7 +729,7 @@ Audio2_notepitch: ; 21ce9 (8:5ce9) ld a, c cp CH4 jr nc, .sfxChannel - ld hl, wc02a + ld hl, wChannelSoundIDs + CH4 add hl, bc ld a, [hl] and a @@ -745,9 +745,9 @@ Audio2_notepitch: ; 21ce9 (8:5ce9) ld b, $0 ld hl, Unknown_222de add hl, bc - ld a, [$ff25] + ld a, [rNR51] and [hl] - ld [$ff25], a + ld [rNR51], a jr .done .notSfxChannel3 ld b, $2 @@ -762,12 +762,12 @@ Audio2_notepitch: ; 21ce9 (8:5ce9) .notRest swap a ld b, $0 - ld hl, wc0d6 + ld hl, wChannelOctaves add hl, bc ld b, [hl] call Audio2_22017 ld b, $0 - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc bit 4, [hl] jr z, .asm_21d39 @@ -777,7 +777,7 @@ Audio2_notepitch: ; 21ce9 (8:5ce9) ld a, c cp CH4 jr nc, .skip ; if sfx channel - ld hl, wc02a + ld hl, wChannelSoundIDs + CH4 ld d, $0 ld e, a add hl, de @@ -790,7 +790,7 @@ Audio2_notepitch: ; 21ce9 (8:5ce9) ret .skip ld b, $0 - ld hl, wc0de + ld hl, wChannelVolumes add hl, bc ld d, [hl] ld b, $2 @@ -800,7 +800,7 @@ Audio2_notepitch: ; 21ce9 (8:5ce9) call Audio2_21d79 pop de ld b, $0 - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc bit 0, [hl] ; has toggleperfectpitch been used? jr z, .skip2 @@ -808,7 +808,7 @@ Audio2_notepitch: ; 21ce9 (8:5ce9) jr nc, .skip2 inc d .skip2 - ld hl, wc066 + ld hl, wChannelFrequencyLowBytes add hl, bc ld [hl], e call Audio2_21dcc @@ -818,7 +818,7 @@ Audio2_21d79: ; 21d79 (8:5d79) ld b, $0 ld hl, Unknown_222e6 add hl, bc - ld a, [$ff25] + ld a, [rNR51] or [hl] ld d, a ld a, c @@ -826,18 +826,18 @@ Audio2_21d79: ; 21d79 (8:5d79) jr z, .sfxNoiseChannel cp CH4 jr nc, .skip ; if sfx channel - ld hl, wc02a + ld hl, wChannelSoundIDs + CH4 add hl, bc ld a, [hl] and a jr nz, .skip .sfxNoiseChannel - ld a, [wc004] + ld a, [wStereoPanning] ld hl, Unknown_222e6 add hl, bc and [hl] ld d, a - ld a, [$ff25] + ld a, [rNR51] ld hl, Unknown_222de add hl, bc and [hl] @@ -845,12 +845,12 @@ Audio2_21d79: ; 21d79 (8:5d79) ld d, a .skip ld a, d - ld [$ff25], a + ld [rNR51], a ret Audio2_21daa: ; 21daa (8:5daa) ld b, $0 - ld hl, wc0b6 + ld hl, wChannelNoteDelayCounters add hl, bc ld d, [hl] ld a, c @@ -861,7 +861,7 @@ Audio2_21daa: ; 21daa (8:5daa) ld a, d and $3f ld d, a - ld hl, wc03e + ld hl, wChannelDuties add hl, bc ld a, [hl] or d @@ -881,10 +881,10 @@ Audio2_21dcc: ; 21dcc (8:5dcc) ; fall through .channel3 push de - ld de, wc0e6 + ld de, wMusicWaveInstrument cp CH2 jr z, .musicChannel3 - ld de, wc0e7 + ld de, wSfxWaveInstrument .musicChannel3 ld a, [de] add a @@ -898,7 +898,7 @@ Audio2_21dcc: ; 21dcc (8:5dcc) ld hl, $ff30 ld b, $f ld a, $0 - ld [$ff1a], a + ld [rNR30], a .loop ld a, [de] inc de @@ -908,7 +908,7 @@ Audio2_21dcc: ; 21dcc (8:5dcc) and a jr nz, .loop ld a, $80 - ld [$ff1a], a + ld [rNR30], a pop de .notSfxChannel3 ld a, d @@ -935,9 +935,9 @@ Audio2_21e19: ; 21e19 (8:5e19) bit 7, a jr z, .asm_21e2e xor a - ld [wc0f1], a + ld [wFrequencyModifier], a ld a, $80 - ld [wc0f2], a + ld [wTempoModifier], a .asm_21e2e ret @@ -948,20 +948,20 @@ Audio2_21e2f: ; 21e2f (8:5e2f) jr nc, .asm_21e4c .asm_21e39 ld d, $0 - ld a, [wc0f2] + ld a, [wTempoModifier] add $80 jr nc, .asm_21e43 inc d .asm_21e43 - ld [wc0eb], a + ld [wSfxTempo + 1], a ld a, d - ld [wc0ea], a + ld [wSfxTempo], a jr .asm_21e55 .asm_21e4c xor a - ld [wc0eb], a + ld [wSfxTempo + 1], a ld a, $1 - ld [wc0ea], a + ld [wSfxTempo], a .asm_21e55 ret @@ -971,7 +971,7 @@ Audio2_21e56: ; 21e56 (8:5e56) call Audio2_21e9f jr nc, .asm_21e6c .asm_21e60 - ld a, [wc0f1] + ld a, [wFrequencyModifier] add e jr nc, .asm_21e67 inc d @@ -987,7 +987,7 @@ Audio2_21e56: ; 21e56 (8:5e56) Audio2_21e6d: ; 21e6d (8:5e6d) call Audio2_21e8b jr nc, .asm_21e88 - ld hl, wc006 + ld hl, wChannelCommandPointers ld e, c ld d, $0 sla e @@ -1008,7 +1008,7 @@ Audio2_21e6d: ; 21e6d (8:5e6d) ret Audio2_21e8b: ; 21e8b (8:5e8b) - ld a, [wc02a] + ld a, [wChannelSoundIDs + CH4] cp $14 jr nc, .asm_21e94 jr .asm_21e9a @@ -1025,9 +1025,9 @@ Audio2_21e8b: ; 21e8b (8:5e8b) ret Audio2_21e9f: ; 21e9f (8:5e9f) - ld a, [wc02d] + ld a, [wChannelSoundIDs + CH7] ld b, a - ld a, [wc02a] + ld a, [wChannelSoundIDs + CH4] or b cp $9d jr nc, .asm_21ead @@ -1045,27 +1045,27 @@ Audio2_21e9f: ; 21e9f (8:5e9f) ret Audio2_ApplyPitchBend: ; 21eb8 (8:5eb8) - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc bit 5, [hl] jp nz, .asm_21eff - ld hl, wc09e + ld hl, wChannelPitchBendCurrentFrequencyLowBytes add hl, bc ld e, [hl] - ld hl, wc096 + ld hl, wChannelPitchBendCurrentFrequencyHighBytes add hl, bc ld d, [hl] - ld hl, wc07e + ld hl, wChannelPitchBendFrequencySteps add hl, bc ld l, [hl] ld h, b add hl, de ld d, h ld e, l - ld hl, wc08e + ld hl, wChannelPitchBendCurrentFrequencyFractionalPart add hl, bc push hl - ld hl, wc086 + ld hl, wChannelPitchBendFrequencyStepsFractionalPart add hl, bc ld a, [hl] pop hl @@ -1077,26 +1077,26 @@ Audio2_ApplyPitchBend: ; 21eb8 (8:5eb8) ld a, $0 adc d ld d, a - ld hl, wc0a6 + ld hl, wChannelPitchBendTargetFrequencyHighBytes add hl, bc ld a, [hl] cp d jp c, .asm_21f45 jr nz, .asm_21f32 - ld hl, wc0ae + ld hl, wChannelPitchBendTargetFrequencyLowBytes add hl, bc ld a, [hl] cp e jp c, .asm_21f45 jr .asm_21f32 .asm_21eff - ld hl, wc09e + ld hl, wChannelPitchBendCurrentFrequencyLowBytes add hl, bc ld a, [hl] - ld hl, wc096 + ld hl, wChannelPitchBendCurrentFrequencyHighBytes add hl, bc ld d, [hl] - ld hl, wc07e + ld hl, wChannelPitchBendFrequencySteps add hl, bc ld e, [hl] sub e @@ -1104,7 +1104,7 @@ Audio2_ApplyPitchBend: ; 21eb8 (8:5eb8) ld a, d sbc b ld d, a - ld hl, wc086 + ld hl, wChannelPitchBendFrequencyStepsFractionalPart add hl, bc ld a, [hl] add a @@ -1115,22 +1115,22 @@ Audio2_ApplyPitchBend: ; 21eb8 (8:5eb8) ld a, d sbc b ld d, a - ld hl, wc0a6 + ld hl, wChannelPitchBendTargetFrequencyHighBytes add hl, bc ld a, d cp [hl] jr c, .asm_21f45 jr nz, .asm_21f32 - ld hl, wc0ae + ld hl, wChannelPitchBendTargetFrequencyLowBytes add hl, bc ld a, e cp [hl] jr c, .asm_21f45 .asm_21f32 - ld hl, wc09e + ld hl, wChannelPitchBendCurrentFrequencyLowBytes add hl, bc ld [hl], e - ld hl, wc096 + ld hl, wChannelPitchBendCurrentFrequencyHighBytes add hl, bc ld [hl], d ld b, $3 @@ -1140,54 +1140,54 @@ Audio2_ApplyPitchBend: ; 21eb8 (8:5eb8) ld [hl], d ret .asm_21f45 - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc res 4, [hl] res 5, [hl] ret Audio2_21f4e: ; 21f4e (8:5f4e) - ld hl, wc096 + ld hl, wChannelPitchBendCurrentFrequencyHighBytes add hl, bc ld [hl], d - ld hl, wc09e + ld hl, wChannelPitchBendCurrentFrequencyLowBytes add hl, bc ld [hl], e - ld hl, wc0b6 + ld hl, wChannelNoteDelayCounters add hl, bc ld a, [hl] - ld hl, wc076 + ld hl, wChannelPitchBendLengthModifiers add hl, bc sub [hl] jr nc, .asm_21f66 ld a, $1 .asm_21f66 ld [hl], a - ld hl, wc0ae + ld hl, wChannelPitchBendTargetFrequencyLowBytes add hl, bc ld a, e sub [hl] ld e, a ld a, d sbc b - ld hl, wc0a6 + ld hl, wChannelPitchBendTargetFrequencyHighBytes add hl, bc sub [hl] jr c, .asm_21f82 ld d, a ld b, $0 - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc set 5, [hl] jr .asm_21fa5 .asm_21f82 - ld hl, wc096 + ld hl, wChannelPitchBendCurrentFrequencyHighBytes add hl, bc ld d, [hl] - ld hl, wc09e + ld hl, wChannelPitchBendCurrentFrequencyLowBytes add hl, bc ld e, [hl] - ld hl, wc0ae + ld hl, wChannelPitchBendTargetFrequencyLowBytes add hl, bc ld a, [hl] sub e @@ -1195,17 +1195,17 @@ Audio2_21f4e: ; 21f4e (8:5f4e) ld a, d sbc b ld d, a - ld hl, wc0a6 + ld hl, wChannelPitchBendTargetFrequencyHighBytes add hl, bc ld a, [hl] sub d ld d, a ld b, $0 - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc res 5, [hl] .asm_21fa5 - ld hl, wc076 + ld hl, wChannelPitchBendLengthModifiers add hl, bc .asm_21fa9 inc b @@ -1224,20 +1224,20 @@ Audio2_21f4e: ; 21f4e (8:5f4e) add [hl] ld d, b ld b, $0 - ld hl, wc07e + ld hl, wChannelPitchBendFrequencySteps add hl, bc ld [hl], d - ld hl, wc086 + ld hl, wChannelPitchBendFrequencyStepsFractionalPart add hl, bc ld [hl], a - ld hl, wc08e + ld hl, wChannelPitchBendCurrentFrequencyFractionalPart add hl, bc ld [hl], a ret Audio2_ApplyDutyCycle: ; 21fcc (8:5fcc) ld b, $0 - ld hl, wc046 + ld hl, wChannelDutyCycles add hl, bc ld a, [hl] rlca @@ -1258,7 +1258,7 @@ Audio2_GetNextMusicByte: ; 21fe4 (8:5fe4) ld a, c add a ld e, a - ld hl, wc006 + ld hl, wChannelCommandPointers add hl, de ld a, [hli] ld e, a @@ -1325,8 +1325,8 @@ Audio2_22017: ; 22017 (8:6017) ld d, a ret -Audio2_22035:: ; 22035 (8:6035) - ld [wc001], a +Audio2_PlaySound:: ; 22035 (8:6035) + ld [wSoundID], a cp $ff jp z, Audio2_221f3 cp $e9 @@ -1337,75 +1337,75 @@ Audio2_22035:: ; 22035 (8:6035) jp nc, Audio2_2210d .asm_2204c xor a - ld [wc000], a - ld [wc003], a - ld [wc0e9], a - ld [wc0e6], a - ld [wc0e7], a + ld [wUnusedC000], a + ld [wDisableChannelOutputWhenSfxEnds], a + ld [wMusicTempo + 1], a + ld [wMusicWaveInstrument], a + ld [wSfxWaveInstrument], a ld d, $8 - ld hl, wc016 + ld hl, wChannelReturnAddresses call FillAudioRAM2 - ld hl, wc006 + ld hl, wChannelCommandPointers call FillAudioRAM2 ld d, $4 - ld hl, wc026 + ld hl, wChannelSoundIDs call FillAudioRAM2 - ld hl, wc02e + ld hl, wChannelFlags1 call FillAudioRAM2 - ld hl, wc03e + ld hl, wChannelDuties call FillAudioRAM2 - ld hl, wc046 + ld hl, wChannelDutyCycles call FillAudioRAM2 - ld hl, wc04e + ld hl, wChannelVibratoDelayCounters call FillAudioRAM2 - ld hl, wc056 + ld hl, wChannelVibratoExtents call FillAudioRAM2 - ld hl, wc05e + ld hl, wChannelVibratoRates call FillAudioRAM2 - ld hl, wc066 + ld hl, wChannelFrequencyLowBytes call FillAudioRAM2 - ld hl, wc06e + ld hl, wChannelVibratoDelayCounterReloadValues call FillAudioRAM2 - ld hl, wc036 + ld hl, wChannelFlags2 call FillAudioRAM2 - ld hl, wc076 + ld hl, wChannelPitchBendLengthModifiers call FillAudioRAM2 - ld hl, wc07e + ld hl, wChannelPitchBendFrequencySteps call FillAudioRAM2 - ld hl, wc086 + ld hl, wChannelPitchBendFrequencyStepsFractionalPart call FillAudioRAM2 - ld hl, wc08e + ld hl, wChannelPitchBendCurrentFrequencyFractionalPart call FillAudioRAM2 - ld hl, wc096 + ld hl, wChannelPitchBendCurrentFrequencyHighBytes call FillAudioRAM2 - ld hl, wc09e + ld hl, wChannelPitchBendCurrentFrequencyLowBytes call FillAudioRAM2 - ld hl, wc0a6 + ld hl, wChannelPitchBendTargetFrequencyHighBytes call FillAudioRAM2 - ld hl, wc0ae + ld hl, wChannelPitchBendTargetFrequencyLowBytes call FillAudioRAM2 ld a, $1 - ld hl, wc0be + ld hl, wChannelLoopCounters call FillAudioRAM2 - ld hl, wc0b6 + ld hl, wChannelNoteDelayCounters call FillAudioRAM2 - ld hl, wc0c6 + ld hl, wChannelNoteSpeeds call FillAudioRAM2 - ld [wc0e8], a + ld [wMusicTempo], a ld a, $ff - ld [wc004], a + ld [wStereoPanning], a xor a - ld [$ff24], a + ld [rNR50], a ld a, $8 - ld [$ff10], a + ld [rNR10], a ld a, $0 - ld [$ff25], a + ld [rNR51], a xor a - ld [$ff1a], a + ld [rNR30], a ld a, $80 - ld [$ff1a], a + ld [rNR30], a ld a, $77 - ld [$ff24], a + ld [rNR50], a jp Audio2_2224e Audio2_2210d: ; 2210d (8:610d) @@ -1418,9 +1418,9 @@ Audio2_2210d: ; 2210d (8:610d) ld de, SFX_Headers_2 add hl, de ld a, h - ld [wc0ec], a + ld [wSfxHeaderPointer], a ld a, l - ld [wc0ed], a + ld [wSfxHeaderPointer + 1], a ld a, [hl] and $c0 rlca @@ -1433,9 +1433,9 @@ Audio2_2210d: ; 2210d (8:610d) add c ld c, a ld b, $0 - ld a, [wc0ec] + ld a, [wSfxHeaderPointer] ld h, a - ld a, [wc0ed] + ld a, [wSfxHeaderPointer + 1] ld l, a add hl, bc ld c, d @@ -1443,7 +1443,7 @@ Audio2_2210d: ; 2210d (8:610d) and $f ld e, a ld d, $0 - ld hl, wc026 + ld hl, wChannelSoundIDs add hl, de ld a, [hl] and a @@ -1451,7 +1451,7 @@ Audio2_2210d: ; 2210d (8:610d) ld a, e cp $7 jr nz, .asm_22159 - ld a, [wc001] + ld a, [wSoundID] cp $14 jr nc, .asm_22152 ret @@ -1461,7 +1461,7 @@ Audio2_2210d: ; 2210d (8:610d) jr z, .asm_22162 jr c, .asm_22162 .asm_22159 - ld a, [wc001] + ld a, [wSoundID] cp [hl] jr z, .asm_22162 jr c, .asm_22162 @@ -1474,84 +1474,84 @@ Audio2_2210d: ; 2210d (8:610d) add hl, hl ld d, h ld e, l - ld hl, wc016 + ld hl, wChannelReturnAddresses add hl, de ld [hli], a ld [hl], a - ld hl, wc006 + ld hl, wChannelCommandPointers add hl, de ld [hli], a ld [hl], a pop de - ld hl, wc026 + ld hl, wChannelSoundIDs add hl, de ld [hl], a - ld hl, wc02e + ld hl, wChannelFlags1 add hl, de ld [hl], a - ld hl, wc03e + ld hl, wChannelDuties add hl, de ld [hl], a - ld hl, wc046 + ld hl, wChannelDutyCycles add hl, de ld [hl], a - ld hl, wc04e + ld hl, wChannelVibratoDelayCounters add hl, de ld [hl], a - ld hl, wc056 + ld hl, wChannelVibratoExtents add hl, de ld [hl], a - ld hl, wc05e + ld hl, wChannelVibratoRates add hl, de ld [hl], a - ld hl, wc066 + ld hl, wChannelFrequencyLowBytes add hl, de ld [hl], a - ld hl, wc06e + ld hl, wChannelVibratoDelayCounterReloadValues add hl, de ld [hl], a - ld hl, wc076 + ld hl, wChannelPitchBendLengthModifiers add hl, de ld [hl], a - ld hl, wc07e + ld hl, wChannelPitchBendFrequencySteps add hl, de ld [hl], a - ld hl, wc086 + ld hl, wChannelPitchBendFrequencyStepsFractionalPart add hl, de ld [hl], a - ld hl, wc08e + ld hl, wChannelPitchBendCurrentFrequencyFractionalPart add hl, de ld [hl], a - ld hl, wc096 + ld hl, wChannelPitchBendCurrentFrequencyHighBytes add hl, de ld [hl], a - ld hl, wc09e + ld hl, wChannelPitchBendCurrentFrequencyLowBytes add hl, de ld [hl], a - ld hl, wc0a6 + ld hl, wChannelPitchBendTargetFrequencyHighBytes add hl, de ld [hl], a - ld hl, wc0ae + ld hl, wChannelPitchBendTargetFrequencyLowBytes add hl, de ld [hl], a - ld hl, wc036 + ld hl, wChannelFlags2 add hl, de ld [hl], a ld a, $1 - ld hl, wc0be + ld hl, wChannelLoopCounters add hl, de ld [hl], a - ld hl, wc0b6 + ld hl, wChannelNoteDelayCounters add hl, de ld [hl], a - ld hl, wc0c6 + ld hl, wChannelNoteSpeeds add hl, de ld [hl], a ld a, e cp $4 jr nz, .asm_221ea ld a, $8 - ld [$ff10], a + ld [rNR10], a .asm_221ea ld a, c and a @@ -1561,41 +1561,41 @@ Audio2_2210d: ; 2210d (8:610d) Audio2_221f3: ; 221f3 (8:61f3) ld a, $80 - ld [$ff26], a - ld [$ff1a], a + ld [rNR52], a + ld [rNR30], a xor a - ld [$ff25], a - ld [$ff1c], a + ld [rNR51], a + ld [rNR32], a ld a, $8 - ld [$ff10], a - ld [$ff12], a - ld [$ff17], a - ld [$ff21], a + ld [rNR10], a + ld [rNR12], a + ld [rNR22], a + ld [rNR42], a ld a, $40 - ld [$ff14], a - ld [$ff19], a - ld [$ff23], a + ld [rNR14], a + ld [rNR24], a + ld [rNR44], a ld a, $77 - ld [$ff24], a + ld [rNR50], a xor a - ld [wc000], a - ld [wc003], a - ld [wc002], a - ld [wc0e9], a - ld [wc0eb], a - ld [wc0e6], a - ld [wc0e7], a + ld [wUnusedC000], a + ld [wDisableChannelOutputWhenSfxEnds], a + ld [wMuteAudioAndPauseMusic], a + ld [wMusicTempo + 1], a + ld [wSfxTempo + 1], a + ld [wMusicWaveInstrument], a + ld [wSfxWaveInstrument], a ld d, $a0 - ld hl, wc006 + ld hl, wChannelCommandPointers call FillAudioRAM2 ld a, $1 ld d, $18 - ld hl, wc0b6 + ld hl, wChannelNoteDelayCounters call FillAudioRAM2 - ld [wc0e8], a - ld [wc0ea], a + ld [wMusicTempo], a + ld [wSfxTempo], a ld a, $ff - ld [wc004], a + ld [wStereoPanning], a ret ; fills d bytes at hl with a @@ -1608,7 +1608,7 @@ FillAudioRAM2: ; 22248 (8:6248) ret Audio2_2224e: ; 2224e (8:624e) - ld a, [wc001] + ld a, [wSoundID] ld l, a ld e, a ld h, $0 @@ -1619,7 +1619,7 @@ Audio2_2224e: ; 2224e (8:624e) add hl, de ld e, l ld d, h - ld hl, wc006 + ld hl, wChannelCommandPointers ld a, [de] ; get channel number ld b, a rlca @@ -1645,14 +1645,14 @@ Audio2_2224e: ; 2224e (8:624e) push af ld b, $0 ld c, a - ld hl, wc026 + ld hl, wChannelSoundIDs add hl, bc - ld a, [wc001] + ld a, [wSoundID] ld [hl], a pop af cp $3 jr c, .asm_22291 - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc set 2, [hl] .asm_22291 @@ -1671,34 +1671,34 @@ Audio2_2224e: ; 2224e (8:624e) ld a, [de] inc de jr nz, .asm_22270 - ld a, [wc001] + ld a, [wSoundID] cp $14 jr nc, .asm_222aa jr .asm_222d4 .asm_222aa - ld a, [wc001] + ld a, [wSoundID] cp $86 jr z, .asm_222d4 jr c, .asm_222b5 jr .asm_222d4 .asm_222b5 - ld hl, wc02a + ld hl, wChannelSoundIDs + CH4 ld [hli], a ld [hli], a ld [hli], a ld [hl], a - ld hl, wc012 ; sfx noise channel pointer + ld hl, wChannelCommandPointers + CH6 * 2 ; sfx noise channel pointer ld de, Noise2_endchannel ld [hl], e inc hl ld [hl], d ; overwrite pointer to point to endchannel - ld a, [wc005] + ld a, [wSavedVolume] and a jr nz, .asm_222d4 - ld a, [$ff24] - ld [wc005], a + ld a, [rNR50] + ld [wSavedVolume], a ld a, $77 - ld [$ff24], a + ld [rNR50], a .asm_222d4 ret diff --git a/audio/engine_3.asm b/audio/engine_3.asm index 93fa62aa..c7254405 100644 --- a/audio/engine_3.asm +++ b/audio/engine_3.asm @@ -4,7 +4,7 @@ Audio3_UpdateMusic:: ; 7d177 (1f:5177) ld c, CH0 .loop ld b, $0 - ld hl, wc026 + ld hl, wChannelSoundIDs add hl, bc ld a, [hl] and a @@ -12,18 +12,18 @@ Audio3_UpdateMusic:: ; 7d177 (1f:5177) ld a, c cp CH4 jr nc, .applyAffects ; if sfx channel - ld a, [wc002] + ld a, [wMuteAudioAndPauseMusic] and a jr z, .applyAffects bit 7, a jr nz, .nextChannel set 7, a - ld [wc002], a + ld [wMuteAudioAndPauseMusic], a xor a - ld [$ff25], a - ld [$ff1a], a + ld [rNR51], a + ld [rNR30], a ld a, $80 - ld [$ff1a], a + ld [rNR30], a jr .nextChannel .applyAffects call Audio3_ApplyMusicAffects @@ -36,7 +36,7 @@ Audio3_UpdateMusic:: ; 7d177 (1f:5177) ; this routine checks flags for music effects currently applied ; to the channel and calls certain functions based on flags. -; known flags for wc02e: +; known flags for wChannelFlags1: ; 0: toggleperfectpitch has been used ; 1: call has been used ; 3: a toggle used only by this routine for vibrato @@ -44,7 +44,7 @@ Audio3_UpdateMusic:: ; 7d177 (1f:5177) ; 6: dutycycle flag Audio3_ApplyMusicAffects: ; 7d1ac (1f:51ac) ld b, $0 - ld hl, wc0b6 ; delay until next note + ld hl, wChannelNoteDelayCounters ; delay until next note add hl, bc ld a, [hl] cp $1 ; if delay is 1, play next note @@ -54,36 +54,36 @@ Audio3_ApplyMusicAffects: ; 7d1ac (1f:51ac) ld a, c cp CH4 jr nc, .startChecks ; if a sfx channel - ld hl, wc02a + ld hl, wChannelSoundIDs + CH4 add hl, bc ld a, [hl] and a jr z, .startChecks ret .startChecks - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc bit 6, [hl] ; dutycycle jr z, .checkForExecuteMusic call Audio3_ApplyDutyCycle .checkForExecuteMusic ld b, $0 - ld hl, wc036 + ld hl, wChannelFlags2 add hl, bc bit 0, [hl] jr nz, .checkForPitchBend - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc bit 2, [hl] jr nz, .disablePitchBendVibrato .checkForPitchBend - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc bit 4, [hl] ; pitchbend jr z, .checkVibratoDelay jp Audio3_ApplyPitchBend .checkVibratoDelay - ld hl, wc04e ; vibrato delay + ld hl, wChannelVibratoDelayCounters ; vibrato delay add hl, bc ld a, [hl] and a ; check if delay is over @@ -92,7 +92,7 @@ Audio3_ApplyMusicAffects: ; 7d1ac (1f:51ac) .disablePitchBendVibrato ret .checkForVibrato - ld hl, wc056 ; vibrato rate + ld hl, wChannelVibratoExtents ; vibrato rate add hl, bc ld a, [hl] and a @@ -100,7 +100,7 @@ Audio3_ApplyMusicAffects: ; 7d1ac (1f:51ac) ret ; no vibrato .vibrato ld d, a - ld hl, wc05e + ld hl, wChannelVibratoRates add hl, bc ld a, [hl] and $f @@ -113,10 +113,10 @@ Audio3_ApplyMusicAffects: ; 7d1ac (1f:51ac) swap [hl] or [hl] ld [hl], a ; reset the vibrato value and start again - ld hl, wc066 + ld hl, wChannelFrequencyLowBytes add hl, bc ld e, [hl] ; get note pitch - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc bit 3, [hl] ; this is the only code that sets/resets bit three so jr z, .unset ; it continuously alternates which path it takes @@ -149,13 +149,13 @@ Audio3_ApplyMusicAffects: ; 7d1ac (1f:51ac) ; like tempo changes, duty changes etc. and doesn't return ; until the first note is reached Audio3_PlayNextNote: ; 7d244 (1f:5244) - ld hl, wc06e + ld hl, wChannelVibratoDelayCounterReloadValues add hl, bc ld a, [hl] - ld hl, wc04e + ld hl, wChannelVibratoDelayCounters add hl, bc ld [hl], a - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc res 4, [hl] res 5, [hl] @@ -168,7 +168,7 @@ Audio3_endchannel: ; 7d25a (1f:525a) cp $ff ; is this command an endchannel? jp nz, Audio3_callchannel ; no ld b, $0 ; yes - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc bit 1, [hl] jr nz, .returnFromCall @@ -178,22 +178,22 @@ Audio3_endchannel: ; 7d25a (1f:525a) jr .asm_7d2b3 .noiseOrSfxChannel res 2, [hl] - ld hl, wc036 + ld hl, wChannelFlags2 add hl, bc res 0, [hl] cp CH6 jr nz, .notSfxChannel3 ld a, $0 - ld [$ff1a], a + ld [rNR30], a ld a, $80 - ld [$ff1a], a + ld [rNR30], a .notSfxChannel3 jr nz, .asm_7d296 - ld a, [wc003] + ld a, [wDisableChannelOutputWhenSfxEnds] and a jr z, .asm_7d296 xor a - ld [wc003], a + ld [wDisableChannelOutputWhenSfxEnds], a jr .asm_7d2b3 .asm_7d296 jr .asm_7d2bc @@ -203,10 +203,10 @@ Audio3_endchannel: ; 7d25a (1f:525a) ld a, c add a ld e, a - ld hl, wc006 + ld hl, wChannelCommandPointers add hl, de push hl ; store current channel address - ld hl, wc016 + ld hl, wChannelReturnAddresses add hl, de ld e, l ld d, h @@ -220,16 +220,16 @@ Audio3_endchannel: ; 7d25a (1f:525a) .asm_7d2b3 ld hl, Unknown_7db93 add hl, bc - ld a, [$ff25] + ld a, [rNR51] and [hl] - ld [$ff25], a + ld [rNR51], a .asm_7d2bc - ld a, [wc02a] + ld a, [wChannelSoundIDs + CH4] cp $14 jr nc, .asm_7d2c5 jr .asm_7d2e2 .asm_7d2c5 - ld a, [wc02a] + ld a, [wChannelSoundIDs + CH4] cp $86 jr z, .asm_7d2e2 jr c, .asm_7d2d0 @@ -241,12 +241,12 @@ Audio3_endchannel: ; 7d25a (1f:525a) call Audio3_7d73b ret c .asm_7d2d9 - ld a, [wc005] - ld [$ff24], a + ld a, [wSavedVolume] + ld [rNR50], a xor a - ld [wc005], a + ld [wSavedVolume], a .asm_7d2e2 - ld hl, wc026 + ld hl, wChannelSoundIDs add hl, bc ld [hl], b ret @@ -265,10 +265,10 @@ Audio3_callchannel: ; 7d2e8 (1f:52e8) ld a, c add a ld e, a - ld hl, wc006 + ld hl, wChannelCommandPointers add hl, de push hl - ld hl, wc016 + ld hl, wChannelReturnAddresses add hl, de ld e, l ld d, h @@ -283,7 +283,7 @@ Audio3_callchannel: ; 7d2e8 (1f:52e8) inc hl ld [hl], d ; overwrite current address with pointer ld b, $0 - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc set 1, [hl] ; set the call flag jp Audio3_endchannel @@ -296,7 +296,7 @@ Audio3_loopchannel: ; 7d31d (1f:531d) and a jr z, .infiniteLoop ld b, $0 - ld hl, wc0be + ld hl, wChannelLoopCounters add hl, bc ld a, [hl] cp e @@ -319,7 +319,7 @@ Audio3_loopchannel: ; 7d31d (1f:531d) ld a, c add a ld e, a - ld hl, wc006 + ld hl, wChannelCommandPointers add hl, de pop af ld [hli], a @@ -333,7 +333,7 @@ Audio3_notetype: ; 7d358 (1f:5358) ld a, d ; yes and $f ld b, $0 - ld hl, wc0c6 + ld hl, wChannelNoteSpeeds add hl, bc ld [hl], a ; store low nibble as speed ld a, c @@ -346,10 +346,10 @@ Audio3_notetype: ; 7d358 (1f:5358) jr z, .musicChannel3 cp CH6 jr nz, .notChannel3 - ld hl, wc0e7 + ld hl, wSfxWaveInstrument jr .sfxChannel3 .musicChannel3 - ld hl, wc0e6 + ld hl, wMusicWaveInstrument .sfxChannel3 ld a, d and $f @@ -364,7 +364,7 @@ Audio3_notetype: ; 7d358 (1f:5358) ; else, store volume (high nibble) and fade (low nibble) .notChannel3 ld b, $0 - ld hl, wc0de + ld hl, wChannelVolumes add hl, bc ld [hl], d .noiseChannel @@ -375,11 +375,11 @@ Audio3_toggleperfectpitch: ; 7d397 (1f:5397) cp $e8 ; is this command a toggleperfectpitch? jr nz, Audio3_vibrato ; no ld b, $0 ; yes - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc ld a, [hl] xor $1 - ld [hl], a ; flip bit 0 of wc02e + ld [hl], a ; flip bit 0 of wChannelFlags1 jp Audio3_endchannel Audio3_vibrato: ; 7d3a9 (1f:53a9) @@ -387,10 +387,10 @@ Audio3_vibrato: ; 7d3a9 (1f:53a9) jr nz, Audio3_pitchbend ; no call Audio3_GetNextMusicByte ; yes ld b, $0 - ld hl, wc04e + ld hl, wChannelVibratoDelayCounters add hl, bc ld [hl], a ; store delay - ld hl, wc06e + ld hl, wChannelVibratoDelayCounterReloadValues add hl, bc ld [hl], a ; store delay call Audio3_GetNextMusicByte @@ -398,7 +398,7 @@ Audio3_vibrato: ; 7d3a9 (1f:53a9) and $f0 swap a ld b, $0 - ld hl, wc056 + ld hl, wChannelVibratoExtents add hl, bc srl a ld e, a @@ -409,7 +409,7 @@ Audio3_vibrato: ; 7d3a9 (1f:53a9) ld a, d and $f ld d, a - ld hl, wc05e + ld hl, wChannelVibratoRates add hl, bc swap a or d @@ -421,7 +421,7 @@ Audio3_pitchbend: ; 7d3e1 (1f:53e1) jr nz, Audio3_duty ; no call Audio3_GetNextMusicByte ; yes ld b, $0 - ld hl, wc076 + ld hl, wChannelPitchBendLengthModifiers add hl, bc ld [hl], a ; store first param call Audio3_GetNextMusicByte @@ -433,14 +433,14 @@ Audio3_pitchbend: ; 7d3e1 (1f:53e1) and $f call Audio3_7d8cc ld b, $0 - ld hl, wc0a6 + ld hl, wChannelPitchBendTargetFrequencyHighBytes add hl, bc ld [hl], d ; store unknown part of second param - ld hl, wc0ae + ld hl, wChannelPitchBendTargetFrequencyLowBytes add hl, bc ld [hl], e ; store unknown part of second param ld b, $0 - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc set 4, [hl] ; set pitchbend flag call Audio3_GetNextMusicByte @@ -455,7 +455,7 @@ Audio3_duty: ; 7d419 (1f:5419) rrca and $c0 ld b, $0 - ld hl, wc03e + ld hl, wChannelDuties add hl, bc ld [hl], a ; store duty jp Audio3_endchannel @@ -467,25 +467,25 @@ Audio3_tempo: ; 7d42e (1f:542e) cp CH4 jr nc, .sfxChannel call Audio3_GetNextMusicByte - ld [wc0e8], a ; store first param + ld [wMusicTempo], a ; store first param call Audio3_GetNextMusicByte - ld [wc0e9], a ; store second param + ld [wMusicTempo + 1], a ; store second param xor a - ld [wc0ce], a ; clear RAM - ld [wc0cf], a - ld [wc0d0], a - ld [wc0d1], a + ld [wChannelNoteDelayCountersFractionalPart], a ; clear RAM + ld [wChannelNoteDelayCountersFractionalPart + 1], a + ld [wChannelNoteDelayCountersFractionalPart + 2], a + ld [wChannelNoteDelayCountersFractionalPart + 3], a jr .musicChannelDone .sfxChannel call Audio3_GetNextMusicByte - ld [wc0ea], a ; store first param + ld [wSfxTempo], a ; store first param call Audio3_GetNextMusicByte - ld [wc0eb], a ; store second param + ld [wSfxTempo + 1], a ; store second param xor a - ld [wc0d2], a ; clear RAM - ld [wc0d3], a - ld [wc0d4], a - ld [wc0d5], a + ld [wChannelNoteDelayCountersFractionalPart + 4], a ; clear RAM + ld [wChannelNoteDelayCountersFractionalPart + 5], a + ld [wChannelNoteDelayCountersFractionalPart + 6], a + ld [wChannelNoteDelayCountersFractionalPart + 7], a .musicChannelDone jp Audio3_endchannel @@ -493,7 +493,7 @@ Audio3_stereopanning: ; 7d46e (1f:546e) cp $ee ; is this command a stereopanning? jr nz, Audio3_unknownmusic0xef ; no call Audio3_GetNextMusicByte ; yes - ld [wc004], a ; store panning + ld [wStereoPanning], a ; store panning jp Audio3_endchannel ; this appears to never be used @@ -502,15 +502,15 @@ Audio3_unknownmusic0xef: ; 7d47b (1f:547b) jr nz, Audio3_dutycycle ; no call Audio3_GetNextMusicByte ; yes push bc - call Audio3_7d8ea + call Audio3_PlaySound pop bc - ld a, [wc003] + ld a, [wDisableChannelOutputWhenSfxEnds] and a jr nz, .skip - ld a, [wc02d] - ld [wc003], a + ld a, [wChannelSoundIDs + CH7] + ld [wDisableChannelOutputWhenSfxEnds], a xor a - ld [wc02d], a + ld [wChannelSoundIDs + CH7], a .skip jp Audio3_endchannel @@ -519,14 +519,14 @@ Audio3_dutycycle: ; 7d49a (1f:549a) jr nz, Audio3_volume ; no call Audio3_GetNextMusicByte ; yes ld b, $0 - ld hl, wc046 + ld hl, wChannelDutyCycles add hl, bc ld [hl], a ; store full cycle and $c0 - ld hl, wc03e + ld hl, wChannelDuties add hl, bc ld [hl], a ; store first duty - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc set 6, [hl] ; set duty flag jp Audio3_endchannel @@ -535,14 +535,14 @@ Audio3_volume: ; 7d4b8 (1f:54b8) cp $f0 ; is this command a volume? jr nz, Audio3_executemusic ; no call Audio3_GetNextMusicByte ; yes - ld [$ff24], a ; store volume + ld [rNR50], a ; store volume jp Audio3_endchannel Audio3_executemusic: ; 7d4c4 (1f:54c4) cp $f8 ; is this command an executemusic? jr nz, Audio3_octave ; no ld b, $0 ; yes - ld hl, wc036 + ld hl, wChannelFlags2 add hl, bc set 0, [hl] jp Audio3_endchannel @@ -551,7 +551,7 @@ Audio3_octave: ; 7d4d3 (1f:54d3) and $f0 cp $e0 ; is this command an octave? jr nz, Audio3_unknownsfx0x20 ; no - ld hl, wc0d6 ; yes + ld hl, wChannelOctaves ; yes ld b, $0 add hl, bc ld a, d @@ -566,14 +566,14 @@ Audio3_unknownsfx0x20: ; 7d4e6 (1f:54e6) cp CH3 ; is this a noise or sfx channel? jr c, Audio3_unknownsfx0x10 ; no ld b, $0 - ld hl, wc036 + ld hl, wChannelFlags2 add hl, bc bit 0, [hl] jr nz, Audio3_unknownsfx0x10 ; no call Audio3_notelength ; yes ld d, a ld b, $0 - ld hl, wc03e + ld hl, wChannelDuties add hl, bc ld a, [hl] or d @@ -612,12 +612,12 @@ Audio3_unknownsfx0x10: ; 7d533 (1f:5533) cp $10 ; is this command an unknownsfx0x10? jr nz, Audio3_note ; no ld b, $0 - ld hl, wc036 + ld hl, wChannelFlags2 add hl, bc bit 0, [hl] jr nz, Audio3_note ; no call Audio3_GetNextMusicByte ; yes - ld [$ff10], a + ld [rNR10], a jp Audio3_endchannel Audio3_note: ; 7d54f (1f:554f) @@ -647,11 +647,11 @@ Audio3_dnote: ; 7d569 (1f:5569) call Audio3_GetNextMusicByte ; get dnote instrument asm_7d571 ld d, a - ld a, [wc003] + ld a, [wDisableChannelOutputWhenSfxEnds] and a jr nz, .asm_7d57c ld a, d - call Audio3_7d8ea + call Audio3_PlaySound .asm_7d57c pop bc pop de @@ -664,7 +664,7 @@ Audio3_notelength: ; 7d57e (1f:557e) ld b, $0 ld e, a ; store note length (in 16ths) ld d, b - ld hl, wc0c6 + ld hl, wChannelNoteSpeeds add hl, bc ld a, [hl] ld l, b @@ -672,9 +672,9 @@ Audio3_notelength: ; 7d57e (1f:557e) ld a, c cp CH4 jr nc, .sfxChannel - ld a, [wc0e8] + ld a, [wMusicTempo] ld d, a - ld a, [wc0e9] + ld a, [wMusicTempo + 1] ld e, a jr .skip .sfxChannel @@ -683,31 +683,31 @@ Audio3_notelength: ; 7d57e (1f:557e) cp CH7 jr z, .skip ; if noise channel call Audio3_7d707 - ld a, [wc0ea] + ld a, [wSfxTempo] ld d, a - ld a, [wc0eb] + ld a, [wSfxTempo + 1] ld e, a .skip ld a, l ld b, $0 - ld hl, wc0ce + ld hl, wChannelNoteDelayCountersFractionalPart add hl, bc ld l, [hl] call Audio3_7d8bb ld e, l ld d, h - ld hl, wc0ce + ld hl, wChannelNoteDelayCountersFractionalPart add hl, bc ld [hl], e ld a, d - ld hl, wc0b6 + ld hl, wChannelNoteDelayCounters add hl, bc ld [hl], a - ld hl, wc036 + ld hl, wChannelFlags2 add hl, bc bit 0, [hl] jr nz, Audio3_notepitch - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc bit 2, [hl] jr z, Audio3_notepitch @@ -722,7 +722,7 @@ Audio3_notepitch: ; 7d5dc (1f:55dc) ld a, c cp CH4 jr nc, .sfxChannel - ld hl, wc02a + ld hl, wChannelSoundIDs + CH4 add hl, bc ld a, [hl] and a @@ -738,9 +738,9 @@ Audio3_notepitch: ; 7d5dc (1f:55dc) ld b, $0 ld hl, Unknown_7db93 add hl, bc - ld a, [$ff25] + ld a, [rNR51] and [hl] - ld [$ff25], a + ld [rNR51], a jr .quit .notSfxChannel3 ld b, $2 @@ -755,12 +755,12 @@ Audio3_notepitch: ; 7d5dc (1f:55dc) .notRest swap a ld b, $0 - ld hl, wc0d6 + ld hl, wChannelOctaves add hl, bc ld b, [hl] call Audio3_7d8cc ld b, $0 - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc bit 4, [hl] jr z, .asm_7d62c @@ -770,7 +770,7 @@ Audio3_notepitch: ; 7d5dc (1f:55dc) ld a, c cp CH4 jr nc, .skip ; if sfx Channel - ld hl, wc02a + ld hl, wChannelSoundIDs + CH4 ld d, $0 ld e, a add hl, de @@ -783,7 +783,7 @@ Audio3_notepitch: ; 7d5dc (1f:55dc) ret .skip ld b, $0 - ld hl, wc0de + ld hl, wChannelVolumes add hl, bc ld d, [hl] ld b, $2 @@ -793,7 +793,7 @@ Audio3_notepitch: ; 7d5dc (1f:55dc) call Audio3_7d66c pop de ld b, $0 - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc bit 0, [hl] ; has toggleperfectpitch been used? jr z, .skip2 @@ -801,7 +801,7 @@ Audio3_notepitch: ; 7d5dc (1f:55dc) jr nc, .skip2 inc d .skip2 - ld hl, wc066 + ld hl, wChannelFrequencyLowBytes add hl, bc ld [hl], e call Audio3_7d6bf @@ -811,7 +811,7 @@ Audio3_7d66c: ; 7d66c (1f:566c) ld b, $0 ld hl, Unknown_7db9b add hl, bc - ld a, [$ff25] + ld a, [rNR51] or [hl] ld d, a ld a, c @@ -819,18 +819,18 @@ Audio3_7d66c: ; 7d66c (1f:566c) jr z, .sfxNoiseChannel cp CH4 jr nc, .skip ; if sfx channel - ld hl, wc02a + ld hl, wChannelSoundIDs + CH4 add hl, bc ld a, [hl] and a jr nz, .skip .sfxNoiseChannel - ld a, [wc004] + ld a, [wStereoPanning] ld hl, Unknown_7db9b add hl, bc and [hl] ld d, a - ld a, [$ff25] + ld a, [rNR51] ld hl, Unknown_7db93 add hl, bc and [hl] @@ -838,12 +838,12 @@ Audio3_7d66c: ; 7d66c (1f:566c) ld d, a .skip ld a, d - ld [$ff25], a + ld [rNR51], a ret Audio3_7d69d: ; 7d69d (1f:569d) ld b, $0 - ld hl, wc0b6 + ld hl, wChannelNoteDelayCounters add hl, bc ld d, [hl] ld a, c @@ -854,7 +854,7 @@ Audio3_7d69d: ; 7d69d (1f:569d) ld a, d and $3f ld d, a - ld hl, wc03e + ld hl, wChannelDuties add hl, bc ld a, [hl] or d @@ -874,10 +874,10 @@ Audio3_7d6bf: ; 7d6bf (1f:56bf) ; fall through .channel3 push de - ld de, wc0e6 + ld de, wMusicWaveInstrument cp CH2 jr z, .musicChannel3 - ld de, wc0e7 + ld de, wSfxWaveInstrument .musicChannel3 ld a, [de] add a @@ -891,7 +891,7 @@ Audio3_7d6bf: ; 7d6bf (1f:56bf) ld hl, $ff30 ld b, $f ld a, $0 - ld [$ff1a], a + ld [rNR30], a .loop ld a, [de] inc de @@ -901,7 +901,7 @@ Audio3_7d6bf: ; 7d6bf (1f:56bf) and a jr nz, .loop ld a, $80 - ld [$ff1a], a + ld [rNR30], a pop de .notSfxChannel3 ld a, d @@ -920,27 +920,27 @@ Audio3_7d707: ; 7d707 (1f:5707) call Audio3_7d759 jr nc, .asm_7d71f ld d, $0 - ld a, [wc0f2] + ld a, [wTempoModifier] add $80 jr nc, .asm_7d716 inc d .asm_7d716 - ld [wc0eb], a + ld [wSfxTempo + 1], a ld a, d - ld [wc0ea], a + ld [wSfxTempo], a jr .asm_7d728 .asm_7d71f xor a - ld [wc0eb], a + ld [wSfxTempo + 1], a ld a, $1 - ld [wc0ea], a + ld [wSfxTempo], a .asm_7d728 ret Audio3_7d729: ; 7d729 (1f:5729) call Audio3_7d759 jr nc, .asm_7d73a - ld a, [wc0f1] + ld a, [wFrequencyModifier] add e jr nc, .asm_7d735 inc d @@ -956,7 +956,7 @@ Audio3_7d729: ; 7d729 (1f:5729) Audio3_7d73b: ; 7d73b (1f:573b) call Audio3_7d759 jr nc, .asm_7d756 - ld hl, wc006 + ld hl, wChannelCommandPointers ld e, c ld d, $0 sla e @@ -977,7 +977,7 @@ Audio3_7d73b: ; 7d73b (1f:573b) ret Audio3_7d759: ; 7d759 (1f:5759) - ld a, [wc02a] + ld a, [wChannelSoundIDs + CH4] cp $14 jr nc, .asm_7d762 jr .asm_7d768 @@ -994,27 +994,27 @@ Audio3_7d759: ; 7d759 (1f:5759) ret Audio3_ApplyPitchBend: ; 7d76d (1f:576d) - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc bit 5, [hl] jp nz, .asm_7d7b4 - ld hl, wc09e + ld hl, wChannelPitchBendCurrentFrequencyLowBytes add hl, bc ld e, [hl] - ld hl, wc096 + ld hl, wChannelPitchBendCurrentFrequencyHighBytes add hl, bc ld d, [hl] - ld hl, wc07e + ld hl, wChannelPitchBendFrequencySteps add hl, bc ld l, [hl] ld h, b add hl, de ld d, h ld e, l - ld hl, wc08e + ld hl, wChannelPitchBendCurrentFrequencyFractionalPart add hl, bc push hl - ld hl, wc086 + ld hl, wChannelPitchBendFrequencyStepsFractionalPart add hl, bc ld a, [hl] pop hl @@ -1026,26 +1026,26 @@ Audio3_ApplyPitchBend: ; 7d76d (1f:576d) ld a, $0 adc d ld d, a - ld hl, wc0a6 + ld hl, wChannelPitchBendTargetFrequencyHighBytes add hl, bc ld a, [hl] cp d jp c, .asm_7d7fa jr nz, .asm_7d7e7 - ld hl, wc0ae + ld hl, wChannelPitchBendTargetFrequencyLowBytes add hl, bc ld a, [hl] cp e jp c, .asm_7d7fa jr .asm_7d7e7 .asm_7d7b4 - ld hl, wc09e + ld hl, wChannelPitchBendCurrentFrequencyLowBytes add hl, bc ld a, [hl] - ld hl, wc096 + ld hl, wChannelPitchBendCurrentFrequencyHighBytes add hl, bc ld d, [hl] - ld hl, wc07e + ld hl, wChannelPitchBendFrequencySteps add hl, bc ld e, [hl] sub e @@ -1053,7 +1053,7 @@ Audio3_ApplyPitchBend: ; 7d76d (1f:576d) ld a, d sbc b ld d, a - ld hl, wc086 + ld hl, wChannelPitchBendFrequencyStepsFractionalPart add hl, bc ld a, [hl] add a @@ -1064,22 +1064,22 @@ Audio3_ApplyPitchBend: ; 7d76d (1f:576d) ld a, d sbc b ld d, a - ld hl, wc0a6 + ld hl, wChannelPitchBendTargetFrequencyHighBytes add hl, bc ld a, d cp [hl] jr c, .asm_7d7fa jr nz, .asm_7d7e7 - ld hl, wc0ae + ld hl, wChannelPitchBendTargetFrequencyLowBytes add hl, bc ld a, e cp [hl] jr c, .asm_7d7fa .asm_7d7e7 - ld hl, wc09e + ld hl, wChannelPitchBendCurrentFrequencyLowBytes add hl, bc ld [hl], e - ld hl, wc096 + ld hl, wChannelPitchBendCurrentFrequencyHighBytes add hl, bc ld [hl], d ld b, $3 @@ -1089,54 +1089,54 @@ Audio3_ApplyPitchBend: ; 7d76d (1f:576d) ld [hl], d ret .asm_7d7fa - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc res 4, [hl] res 5, [hl] ret Audio3_7d803: ; 7d803 (1f:5803) - ld hl, wc096 + ld hl, wChannelPitchBendCurrentFrequencyHighBytes add hl, bc ld [hl], d - ld hl, wc09e + ld hl, wChannelPitchBendCurrentFrequencyLowBytes add hl, bc ld [hl], e - ld hl, wc0b6 + ld hl, wChannelNoteDelayCounters add hl, bc ld a, [hl] - ld hl, wc076 + ld hl, wChannelPitchBendLengthModifiers add hl, bc sub [hl] jr nc, .asm_7d81b ld a, $1 .asm_7d81b ld [hl], a - ld hl, wc0ae + ld hl, wChannelPitchBendTargetFrequencyLowBytes add hl, bc ld a, e sub [hl] ld e, a ld a, d sbc b - ld hl, wc0a6 + ld hl, wChannelPitchBendTargetFrequencyHighBytes add hl, bc sub [hl] jr c, .asm_7d837 ld d, a ld b, $0 - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc set 5, [hl] jr .asm_7d85a .asm_7d837 - ld hl, wc096 + ld hl, wChannelPitchBendCurrentFrequencyHighBytes add hl, bc ld d, [hl] - ld hl, wc09e + ld hl, wChannelPitchBendCurrentFrequencyLowBytes add hl, bc ld e, [hl] - ld hl, wc0ae + ld hl, wChannelPitchBendTargetFrequencyLowBytes add hl, bc ld a, [hl] sub e @@ -1144,17 +1144,17 @@ Audio3_7d803: ; 7d803 (1f:5803) ld a, d sbc b ld d, a - ld hl, wc0a6 + ld hl, wChannelPitchBendTargetFrequencyHighBytes add hl, bc ld a, [hl] sub d ld d, a ld b, $0 - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc res 5, [hl] .asm_7d85a - ld hl, wc076 + ld hl, wChannelPitchBendLengthModifiers add hl, bc .asm_7d85e inc b @@ -1173,20 +1173,20 @@ Audio3_7d803: ; 7d803 (1f:5803) add [hl] ld d, b ld b, $0 - ld hl, wc07e + ld hl, wChannelPitchBendFrequencySteps add hl, bc ld [hl], d - ld hl, wc086 + ld hl, wChannelPitchBendFrequencyStepsFractionalPart add hl, bc ld [hl], a - ld hl, wc08e + ld hl, wChannelPitchBendCurrentFrequencyFractionalPart add hl, bc ld [hl], a ret Audio3_ApplyDutyCycle: ; 7d881 (1f:5881) ld b, $0 - ld hl, wc046 + ld hl, wChannelDutyCycles add hl, bc ld a, [hl] rlca @@ -1207,7 +1207,7 @@ Audio3_GetNextMusicByte: ; 7d899 (1f:5899) ld a, c add a ld e, a - ld hl, wc006 + ld hl, wChannelCommandPointers add hl, de ld a, [hli] ld e, a @@ -1274,8 +1274,8 @@ Audio3_7d8cc: ; 7d8cc (1f:58cc) ld d, a ret -Audio3_7d8ea:: ; 7d8ea (1f:58ea) - ld [wc001], a +Audio3_PlaySound:: ; 7d8ea (1f:58ea) + ld [wSoundID], a cp $ff jp z, Audio3_7daa8 cp $c2 @@ -1286,75 +1286,75 @@ Audio3_7d8ea:: ; 7d8ea (1f:58ea) jp nc, Audio3_7d9c2 .asm_7d901 xor a - ld [wc000], a - ld [wc003], a - ld [wc0e9], a - ld [wc0e6], a - ld [wc0e7], a + ld [wUnusedC000], a + ld [wDisableChannelOutputWhenSfxEnds], a + ld [wMusicTempo + 1], a + ld [wMusicWaveInstrument], a + ld [wSfxWaveInstrument], a ld d, $8 - ld hl, wc016 + ld hl, wChannelReturnAddresses call FillAudioRAM3 - ld hl, wc006 + ld hl, wChannelCommandPointers call FillAudioRAM3 ld d, $4 - ld hl, wc026 + ld hl, wChannelSoundIDs call FillAudioRAM3 - ld hl, wc02e + ld hl, wChannelFlags1 call FillAudioRAM3 - ld hl, wc03e + ld hl, wChannelDuties call FillAudioRAM3 - ld hl, wc046 + ld hl, wChannelDutyCycles call FillAudioRAM3 - ld hl, wc04e + ld hl, wChannelVibratoDelayCounters call FillAudioRAM3 - ld hl, wc056 + ld hl, wChannelVibratoExtents call FillAudioRAM3 - ld hl, wc05e + ld hl, wChannelVibratoRates call FillAudioRAM3 - ld hl, wc066 + ld hl, wChannelFrequencyLowBytes call FillAudioRAM3 - ld hl, wc06e + ld hl, wChannelVibratoDelayCounterReloadValues call FillAudioRAM3 - ld hl, wc036 + ld hl, wChannelFlags2 call FillAudioRAM3 - ld hl, wc076 + ld hl, wChannelPitchBendLengthModifiers call FillAudioRAM3 - ld hl, wc07e + ld hl, wChannelPitchBendFrequencySteps call FillAudioRAM3 - ld hl, wc086 + ld hl, wChannelPitchBendFrequencyStepsFractionalPart call FillAudioRAM3 - ld hl, wc08e + ld hl, wChannelPitchBendCurrentFrequencyFractionalPart call FillAudioRAM3 - ld hl, wc096 + ld hl, wChannelPitchBendCurrentFrequencyHighBytes call FillAudioRAM3 - ld hl, wc09e + ld hl, wChannelPitchBendCurrentFrequencyLowBytes call FillAudioRAM3 - ld hl, wc0a6 + ld hl, wChannelPitchBendTargetFrequencyHighBytes call FillAudioRAM3 - ld hl, wc0ae + ld hl, wChannelPitchBendTargetFrequencyLowBytes call FillAudioRAM3 ld a, $1 - ld hl, wc0be + ld hl, wChannelLoopCounters call FillAudioRAM3 - ld hl, wc0b6 + ld hl, wChannelNoteDelayCounters call FillAudioRAM3 - ld hl, wc0c6 + ld hl, wChannelNoteSpeeds call FillAudioRAM3 - ld [wc0e8], a + ld [wMusicTempo], a ld a, $ff - ld [wc004], a + ld [wStereoPanning], a xor a - ld [$ff24], a + ld [rNR50], a ld a, $8 - ld [$ff10], a + ld [rNR10], a ld a, $0 - ld [$ff25], a + ld [rNR51], a xor a - ld [$ff1a], a + ld [rNR30], a ld a, $80 - ld [$ff1a], a + ld [rNR30], a ld a, $77 - ld [$ff24], a + ld [rNR50], a jp Audio3_7db03 Audio3_7d9c2: ; 7d9c2 (1f:59c2) @@ -1367,9 +1367,9 @@ Audio3_7d9c2: ; 7d9c2 (1f:59c2) ld de, SFX_Headers_3 add hl, de ld a, h - ld [wc0ec], a + ld [wSfxHeaderPointer], a ld a, l - ld [wc0ed], a + ld [wSfxHeaderPointer + 1], a ld a, [hl] and $c0 rlca @@ -1382,9 +1382,9 @@ Audio3_7d9c2: ; 7d9c2 (1f:59c2) add c ld c, a ld b, $0 - ld a, [wc0ec] + ld a, [wSfxHeaderPointer] ld h, a - ld a, [wc0ed] + ld a, [wSfxHeaderPointer + 1] ld l, a add hl, bc ld c, d @@ -1392,7 +1392,7 @@ Audio3_7d9c2: ; 7d9c2 (1f:59c2) and $f ld e, a ld d, $0 - ld hl, wc026 + ld hl, wChannelSoundIDs add hl, de ld a, [hl] and a @@ -1400,7 +1400,7 @@ Audio3_7d9c2: ; 7d9c2 (1f:59c2) ld a, e cp $7 jr nz, .asm_7da0e - ld a, [wc001] + ld a, [wSoundID] cp $14 jr nc, .asm_7da07 ret @@ -1410,7 +1410,7 @@ Audio3_7d9c2: ; 7d9c2 (1f:59c2) jr z, .asm_7da17 jr c, .asm_7da17 .asm_7da0e - ld a, [wc001] + ld a, [wSoundID] cp [hl] jr z, .asm_7da17 jr c, .asm_7da17 @@ -1423,84 +1423,84 @@ Audio3_7d9c2: ; 7d9c2 (1f:59c2) add hl, hl ld d, h ld e, l - ld hl, wc016 + ld hl, wChannelReturnAddresses add hl, de ld [hli], a ld [hl], a - ld hl, wc006 + ld hl, wChannelCommandPointers add hl, de ld [hli], a ld [hl], a pop de - ld hl, wc026 + ld hl, wChannelSoundIDs add hl, de ld [hl], a - ld hl, wc02e + ld hl, wChannelFlags1 add hl, de ld [hl], a - ld hl, wc03e + ld hl, wChannelDuties add hl, de ld [hl], a - ld hl, wc046 + ld hl, wChannelDutyCycles add hl, de ld [hl], a - ld hl, wc04e + ld hl, wChannelVibratoDelayCounters add hl, de ld [hl], a - ld hl, wc056 + ld hl, wChannelVibratoExtents add hl, de ld [hl], a - ld hl, wc05e + ld hl, wChannelVibratoRates add hl, de ld [hl], a - ld hl, wc066 + ld hl, wChannelFrequencyLowBytes add hl, de ld [hl], a - ld hl, wc06e + ld hl, wChannelVibratoDelayCounterReloadValues add hl, de ld [hl], a - ld hl, wc076 + ld hl, wChannelPitchBendLengthModifiers add hl, de ld [hl], a - ld hl, wc07e + ld hl, wChannelPitchBendFrequencySteps add hl, de ld [hl], a - ld hl, wc086 + ld hl, wChannelPitchBendFrequencyStepsFractionalPart add hl, de ld [hl], a - ld hl, wc08e + ld hl, wChannelPitchBendCurrentFrequencyFractionalPart add hl, de ld [hl], a - ld hl, wc096 + ld hl, wChannelPitchBendCurrentFrequencyHighBytes add hl, de ld [hl], a - ld hl, wc09e + ld hl, wChannelPitchBendCurrentFrequencyLowBytes add hl, de ld [hl], a - ld hl, wc0a6 + ld hl, wChannelPitchBendTargetFrequencyHighBytes add hl, de ld [hl], a - ld hl, wc0ae + ld hl, wChannelPitchBendTargetFrequencyLowBytes add hl, de ld [hl], a - ld hl, wc036 + ld hl, wChannelFlags2 add hl, de ld [hl], a ld a, $1 - ld hl, wc0be + ld hl, wChannelLoopCounters add hl, de ld [hl], a - ld hl, wc0b6 + ld hl, wChannelNoteDelayCounters add hl, de ld [hl], a - ld hl, wc0c6 + ld hl, wChannelNoteSpeeds add hl, de ld [hl], a ld a, e cp $4 jr nz, .asm_7da9f ld a, $8 - ld [$ff10], a + ld [rNR10], a .asm_7da9f ld a, c and a @@ -1510,41 +1510,41 @@ Audio3_7d9c2: ; 7d9c2 (1f:59c2) Audio3_7daa8: ; 7daa8 (1f:5aa8) ld a, $80 - ld [$ff26], a - ld [$ff1a], a + ld [rNR52], a + ld [rNR30], a xor a - ld [$ff25], a - ld [$ff1c], a + ld [rNR51], a + ld [rNR32], a ld a, $8 - ld [$ff10], a - ld [$ff12], a - ld [$ff17], a - ld [$ff21], a + ld [rNR10], a + ld [rNR12], a + ld [rNR22], a + ld [rNR42], a ld a, $40 - ld [$ff14], a - ld [$ff19], a - ld [$ff23], a + ld [rNR14], a + ld [rNR24], a + ld [rNR44], a ld a, $77 - ld [$ff24], a + ld [rNR50], a xor a - ld [wc000], a - ld [wc003], a - ld [wc002], a - ld [wc0e9], a - ld [wc0eb], a - ld [wc0e6], a - ld [wc0e7], a + ld [wUnusedC000], a + ld [wDisableChannelOutputWhenSfxEnds], a + ld [wMuteAudioAndPauseMusic], a + ld [wMusicTempo + 1], a + ld [wSfxTempo + 1], a + ld [wMusicWaveInstrument], a + ld [wSfxWaveInstrument], a ld d, $a0 - ld hl, wc006 + ld hl, wChannelCommandPointers call FillAudioRAM3 ld a, $1 ld d, $18 - ld hl, wc0b6 + ld hl, wChannelNoteDelayCounters call FillAudioRAM3 - ld [wc0e8], a - ld [wc0ea], a + ld [wMusicTempo], a + ld [wSfxTempo], a ld a, $ff - ld [wc004], a + ld [wStereoPanning], a ret ; fills d bytes at hl with a @@ -1557,7 +1557,7 @@ FillAudioRAM3: ; 7dafd (1f:5afd) ret Audio3_7db03: ; 7db03 (1f:5b03) - ld a, [wc001] + ld a, [wSoundID] ld l, a ld e, a ld h, $0 @@ -1568,7 +1568,7 @@ Audio3_7db03: ; 7db03 (1f:5b03) add hl, de ld e, l ld d, h - ld hl, wc006 + ld hl, wChannelCommandPointers ld a, [de] ; get channel number ld b, a rlca @@ -1594,14 +1594,14 @@ Audio3_7db03: ; 7db03 (1f:5b03) push af ld b, $0 ld c, a - ld hl, wc026 + ld hl, wChannelSoundIDs add hl, bc - ld a, [wc001] + ld a, [wSoundID] ld [hl], a pop af cp $3 jr c, .asm_7db46 - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc set 2, [hl] .asm_7db46 @@ -1620,34 +1620,34 @@ Audio3_7db03: ; 7db03 (1f:5b03) ld a, [de] inc de jr nz, .asm_7db25 - ld a, [wc001] + ld a, [wSoundID] cp $14 jr nc, .asm_7db5f jr .asm_7db89 .asm_7db5f - ld a, [wc001] + ld a, [wSoundID] cp $86 jr z, .asm_7db89 jr c, .asm_7db6a jr .asm_7db89 .asm_7db6a - ld hl, wc02a + ld hl, wChannelSoundIDs + CH4 ld [hli], a ld [hli], a ld [hli], a ld [hl], a - ld hl, wc012 ; sfx noise channel pointer + ld hl, wChannelCommandPointers + CH6 * 2 ; sfx noise channel pointer ld de, Noise3_endchannel ld [hl], e inc hl ld [hl], d ; overwrite pointer to point to endchannel - ld a, [wc005] + ld a, [wSavedVolume] and a jr nz, .asm_7db89 - ld a, [$ff24] - ld [wc005], a + ld a, [rNR50] + ld [wSavedVolume], a ld a, $77 - ld [$ff24], a + ld [rNR50], a .asm_7db89 ret diff --git a/constants/hardware_constants.asm b/constants/hardware_constants.asm index f9e3fe19..21a3ad93 100644 --- a/constants/hardware_constants.asm +++ b/constants/hardware_constants.asm @@ -107,4 +107,3 @@ rUNKNOWN5 EQU $ff75 ; (8Fh) - Bit 4-6 (Read/Write) rUNKNOWN6 EQU $ff76 ; (00h) - Always 00h (Read Only) rUNKNOWN7 EQU $ff77 ; (00h) - Always 00h (Read Only) rIE EQU $ffff ; Interrupt Enable (R/W) - diff --git a/constants/music_constants.asm b/constants/music_constants.asm index f239acea..57ad230d 100644 --- a/constants/music_constants.asm +++ b/constants/music_constants.asm @@ -1,3 +1,42 @@ +; HW sound channel register base addresses +HW_CH1_BASE EQU (rNR10 % $100) +HW_CH2_BASE EQU ((rNR21 % $100) - 1) +HW_CH3_BASE EQU (rNR30 % $100) +HW_CH4_BASE EQU ((rNR41 % $100) - 1) + +; HW sound channel enable bit masks +HW_CH1_ENABLE_MASK EQU %00010001 +HW_CH2_ENABLE_MASK EQU %00100010 +HW_CH3_ENABLE_MASK EQU %01000100 +HW_CH4_ENABLE_MASK EQU %10001000 + +; HW sound channel disable bit masks +HW_CH1_DISABLE_MASK EQU (~HW_CH1_ENABLE_MASK & $ff) +HW_CH2_DISABLE_MASK EQU (~HW_CH2_ENABLE_MASK & $ff) +HW_CH3_DISABLE_MASK EQU (~HW_CH3_ENABLE_MASK & $ff) +HW_CH4_DISABLE_MASK EQU (~HW_CH4_ENABLE_MASK & $ff) + +REG_DUTY_SOUND_LEN EQU 1 +REG_VOLUME_ENVELOPE EQU 2 +REG_FREQUENCY_LO EQU 3 + +MAX_SFX_ID EQU $B9 + +CRY_SFX_START EQU $14 +CRY_SFX_END EQU $86 + +; wChannelFlags1 constants +BIT_PERFECT_PITCH EQU 0 ; controlled by toggleperfectpitch command +BIT_CHANNEL_CALL EQU 1 ; if in channel call +BIT_NOISE_OR_SFX EQU 2 ; if channel is the music noise channel or an SFX channel +BIT_VIBRATO_DIRECTION EQU 3 ; if the pitch is above or below normal (cycles) +BIT_PITCH_BEND_ON EQU 4 ; if pitch bend is active +BIT_PITCH_BEND_DECREASING EQU 5 ; if the pitch bend frequency is decreasing (instead of increasing) +BIT_ROTATE_DUTY EQU 6 ; if rotating duty + +; wChannelFlags2 constant (only has one flag) +BIT_EXECUTE_MUSIC EQU 0 ; if in execute music + ; Song ids are calculated by address to save space. music_const: MACRO diff --git a/engine/battle/animations.asm b/engine/battle/animations.asm index b46842ec..1bd48988 100755 --- a/engine/battle/animations.asm +++ b/engine/battle/animations.asm @@ -772,7 +772,7 @@ DoBallTossSpecialEffects: ; 78f3e (1e:4f3e) dec b jr nz,.loop ld a,%00001000 - ld [$ff10],a ; Channel 1 sweep register + ld [rNR10],a ; Channel 1 sweep register ret .isTrainerBattle ; if it's a trainer battle, shorten the animation by one frame ld a,[W_SUBANIMCOUNTER] @@ -2335,19 +2335,19 @@ GetMoveSound: ; 7986f (1e:586f) call GetCryData ld b,a pop hl - ld a,[wc0f1] + ld a,[wFrequencyModifier] add [hl] - ld [wc0f1],a + ld [wFrequencyModifier],a inc hl - ld a,[wc0f2] + ld a,[wTempoModifier] add [hl] - ld [wc0f2],a + ld [wTempoModifier],a jr .done .NotCryMove ld a,[hli] - ld [wc0f1],a + ld [wFrequencyModifier],a ld a,[hli] - ld [wc0f2],a + ld [wTempoModifier],a .done ld a,b ret @@ -3029,8 +3029,8 @@ PlayApplyingAttackSound: ; 79e6a (1e:5e6a) ld b, $1 ld c, SFX_NOT_VERY_EFFECTIVE .playSound - ld [wc0f1], a + ld [wFrequencyModifier], a ld a, b - ld [wc0f2], a + ld [wTempoModifier], a ld a, c jp PlaySound diff --git a/engine/battle/common_text.asm b/engine/battle/common_text.asm index a00e9d59..a1afcb75 100644 --- a/engine/battle/common_text.asm +++ b/engine/battle/common_text.asm @@ -61,9 +61,9 @@ PrintBeginningBattleText: ; 58d99 (16:4d99) .playSFX xor a - ld [wc0f1], a + ld [wFrequencyModifier], a ld a, $80 - ld [wc0f2], a + ld [wTempoModifier], a ld a, SFX_SILPH_SCOPE call PlaySound jp WaitForSoundToFinish diff --git a/engine/battle/core.asm b/engine/battle/core.asm index 004859da..22a47908 100755 --- a/engine/battle/core.asm +++ b/engine/battle/core.asm @@ -867,12 +867,12 @@ FaintEnemyPokemon: ; 0x3c567 dec a jr z, .wild_win xor a - ld [wc0f1], a - ld [wc0f2], a + ld [wFrequencyModifier], a + ld [wTempoModifier], a ld a, SFX_FAINT_FALL call PlaySoundWaitForCurrent .sfxwait - ld a, [wc02a] + ld a, [wChannelSoundIDs + CH4] cp SFX_FAINT_FALL jr z, .sfxwait ld a, SFX_FAINT_THUD @@ -952,7 +952,7 @@ EnemyMonFaintedText: ; 0x3c63e EndLowHealthAlarm: ; 3c643 (f:4643) xor a ld [wLowHealthAlarm], a ;disable low health alarm - ld [wc02a], a + ld [wChannelSoundIDs + CH4], a inc a ld [wccf6], a ret @@ -1045,7 +1045,7 @@ TrainerDefeatedText: ; 3c6e9 (f:46e9) PlayBattleVictoryMusic: ; 3c6ee (f:46ee) push af ld a, $ff - ld [wc0ee], a + ld [wNewSoundID], a call PlaySoundWaitForCurrent ld c, BANK(Music_DefeatedTrainer) pop af @@ -1944,7 +1944,7 @@ DrawPlayerHUDAndHPBar: ; 3cd60 (f:4d60) ld [hl], $0 ret z xor a - ld [wc02a], a + ld [wChannelSoundIDs + CH4], a ret .asm_3cde6 ld hl, wLowHealthAlarm @@ -6993,8 +6993,8 @@ _LoadTrainerPic: ; 3f04b (f:704b) ; unreferenced ResetCryModifiers: ; 3f069 (f:7069) xor a - ld [wc0f1], a - ld [wc0f2], a + ld [wFrequencyModifier], a + ld [wTempoModifier], a jp PlaySound ; animates the mon "growing" out of the pokeball diff --git a/engine/battle/end_of_battle.asm b/engine/battle/end_of_battle.asm index c642d206..f1de313c 100755 --- a/engine/battle/end_of_battle.asm +++ b/engine/battle/end_of_battle.asm @@ -46,7 +46,7 @@ EndOfBattle: ; 137aa (4:77aa) .resetVariables xor a ld [wLowHealthAlarm], a ;disable low health alarm - ld [wc02a], a + ld [wChannelSoundIDs + CH4], a ld [W_ISINBATTLE], a ld [W_BATTLETYPE], a ld [W_MOVEMISSED], a diff --git a/engine/cable_club.asm b/engine/cable_club.asm index 078ae5c2..dec18fe3 100755 --- a/engine/cable_club.asm +++ b/engine/cable_club.asm @@ -824,12 +824,12 @@ TradeCenter_Trade: add hl, bc ld a, [hl] ld [wTradedEnemyMonSpecies], a - ld a, $a - ld [wMusicHeaderPointer], a + ld a, 10 + ld [wAudioFadeOutControl], a ld a, $2 - ld [wc0f0], a + ld [wAudioSavedROMBank], a ld a, MUSIC_SAFARI_ZONE - ld [wc0ee], a + ld [wNewSoundID], a call PlaySound ld c, 100 call DelayFrames @@ -915,12 +915,12 @@ CableClub_Run: ; 5a5f (1:5a5f) inc a ; LINK_STATE_IN_CABLE_CLUB ld [wLinkState], a ld [$ffb5], a - ld a, $a - ld [wMusicHeaderPointer], a + ld a, 10 + ld [wAudioFadeOutControl], a ld a, BANK(Music_Celadon) - ld [wc0f0], a + ld [wAudioSavedROMBank], a ld a, MUSIC_CELADON - ld [wc0ee], a + ld [wNewSoundID], a jp PlaySound EmptyFunc3: ; 5aaf (1:5aaf) diff --git a/engine/evolution.asm b/engine/evolution.asm index 720e77cd..8fbf568a 100755 --- a/engine/evolution.asm +++ b/engine/evolution.asm @@ -8,9 +8,9 @@ EvolveMon: ; 7bde9 (1e:7de9) push af xor a ld [wLowHealthAlarm], a - ld [wc02a], a + ld [wChannelSoundIDs + CH4], a dec a - ld [wc0ee], a + ld [wNewSoundID], a call PlaySound ld a, $1 ld [H_AUTOBGTRANSFERENABLED], a @@ -68,7 +68,7 @@ EvolveMon: ; 7bde9 (1e:7de9) .done ld [wcf1d], a ld a, $ff - ld [wc0ee], a + ld [wNewSoundID], a call PlaySound ld a, [wcf1d] call PlayCry diff --git a/engine/hall_of_fame.asm b/engine/hall_of_fame.asm index ce1430e3..293c756f 100755 --- a/engine/hall_of_fame.asm +++ b/engine/hall_of_fame.asm @@ -280,9 +280,9 @@ HoFRecordMonInfo: ; 70404 (1c:4404) jp CopyData HoFFadeOutScreenAndMusic: ; 70423 (1c:4423) - ld a, $a - ld [wcfc8], a - ld [wcfc9], a + ld a, 10 + ld [wAudioFadeOutCounterReloadValue], a + ld [wAudioFadeOutCounter], a ld a, $ff - ld [wMusicHeaderPointer], a + ld [wAudioFadeOutControl], a jp GBFadeOutToWhite diff --git a/engine/hidden_object_functions7.asm b/engine/hidden_object_functions7.asm index 0753531e..67e75301 100755 --- a/engine/hidden_object_functions7.asm +++ b/engine/hidden_object_functions7.asm @@ -63,14 +63,14 @@ SafariZoneGameStillGoing: ; 1e9ab (7:69ab) SafariZoneGameOver: ; 1e9b0 (7:69b0) call EnableAutoTextBoxDrawing xor a - ld [wMusicHeaderPointer], a + ld [wAudioFadeOutControl], a dec a call PlaySound ld c, BANK(SFX_Safari_Zone_PA) ld a, SFX_SAFARI_ZONE_PA call PlayMusic .asm_1e9c2 - ld a, [wc02a] + ld a, [wChannelSoundIDs + CH4] cp $b9 jr nz, .asm_1e9c2 ld a, TEXT_SAFARI_GAME_OVER @@ -374,7 +374,7 @@ BillsHouseInitiatedText: ; 1ebe2 (7:6be2) db $06 TX_ASM ld a, $ff - ld [wc0ee], a + ld [wNewSoundID], a call PlaySound ld c, 16 call DelayFrames diff --git a/engine/intro.asm b/engine/intro.asm index 154c41fd..572d51fa 100755 --- a/engine/intro.asm +++ b/engine/intro.asm @@ -325,10 +325,10 @@ PlayShootingStar: ; 4188a (10:588a) call DelayFrames .next ld a, BANK(Music_IntroBattle) - ld [wc0ef], a - ld [wc0f0], a + ld [wAudioROMBank], a + ld [wAudioSavedROMBank], a ld a, MUSIC_INTRO_BATTLE - ld [wc0ee], a + ld [wNewSoundID], a call PlaySound call IntroClearMiddleOfScreen call ClearSprites diff --git a/engine/items/items.asm b/engine/items/items.asm index a45b9185..84490521 100755 --- a/engine/items/items.asm +++ b/engine/items/items.asm @@ -856,7 +856,7 @@ ItemUseMedicine: ; dabb (3:5abb) .notFullHP ; if the pokemon's current HP doesn't equal its max HP xor a ld [wLowHealthAlarm],a ;disable low health alarm - ld [wc02a],a + ld [wChannelSoundIDs + CH4],a push hl push de ld bc,32 @@ -1643,7 +1643,7 @@ ItemUsePokeflute: ; e140 (3:6140) call WaitForSoundToFinish ; wait for sound to end callba Music_PokeFluteInBattle ; play in-battle pokeflute music .musicWaitLoop ; wait for music to finish playing - ld a,[wc02c] + ld a,[wChannelSoundIDs + CH6] and a ; music off? jr nz,.musicWaitLoop .skipMusic @@ -1716,8 +1716,8 @@ PlayedFluteHadEffectText: ; e215 (3:6215) ld c, BANK(SFX_Pokeflute) call PlayMusic .musicWaitLoop ; wait for music to finish playing - ld a,[wc028] - cp a,$b8 + ld a,[wChannelSoundIDs + CH2] + cp a, SFX_POKEFLUE jr z,.musicWaitLoop call PlayDefaultMusic ; start playing normal music again .done diff --git a/engine/menu/pokedex.asm b/engine/menu/pokedex.asm index b5ebd83e..fd8a928d 100755 --- a/engine/menu/pokedex.asm +++ b/engine/menu/pokedex.asm @@ -397,7 +397,7 @@ ShowPokedexDataInternal: ; 402e2 (10:42e2) ld hl,wd72c set 1,[hl] ld a,$33 ; 3/7 volume - ld [$ff24],a + ld [rNR50],a call GBPalWhiteOut ; zero all palettes call ClearScreen ld a,[wd11e] ; pokemon ID @@ -566,7 +566,7 @@ ShowPokedexDataInternal: ; 402e2 (10:42e2) ld hl,wd72c res 1,[hl] ld a,$77 ; max volume - ld [$ff24],a + ld [rNR50],a ret HeightWeightText: ; 40448 (10:4448) diff --git a/engine/menu/status_screen.asm b/engine/menu/status_screen.asm index c13d7c85..bc58ba21 100755 --- a/engine/menu/status_screen.asm +++ b/engine/menu/status_screen.asm @@ -80,7 +80,7 @@ StatusScreen: ; 12953 (4:6953) ld hl, wd72c set 1, [hl] ld a, $33 - ld [$ff24], a ; Reduce the volume + ld [rNR50], a ; Reduce the volume call GBPalWhiteOutWithDelay3 call ClearScreen call UpdateSprites @@ -430,7 +430,7 @@ StatusScreen2: ; 12b57 (4:6b57) ld hl, wd72c res 1, [hl] ld a, $77 - ld [$ff24], a + ld [rNR50], a call GBPalWhiteOut jp ClearScreen diff --git a/engine/oak_speech.asm b/engine/oak_speech.asm index 98499d7f..566bd880 100755 --- a/engine/oak_speech.asm +++ b/engine/oak_speech.asm @@ -129,12 +129,12 @@ OakSpeech: ; 6115 (1:6115) ld a,[H_LOADEDROMBANK] push af ld a, BANK(Music_PalletTown) - ld [wc0ef],a - ld [wc0f0],a - ld a,$A - ld [wMusicHeaderPointer],a + ld [wAudioROMBank],a + ld [wAudioSavedROMBank],a + ld a, 10 + ld [wAudioFadeOutControl],a ld a,$FF - ld [wc0ee],a + ld [wNewSoundID],a call PlaySound ; stop music pop af ld [H_LOADEDROMBANK],a diff --git a/engine/overworld/elevator.asm b/engine/overworld/elevator.asm index eb62fee7..05a9cc4e 100755 --- a/engine/overworld/elevator.asm +++ b/engine/overworld/elevator.asm @@ -33,7 +33,7 @@ ShakeElevator: ; 7bf15 (1e:7f15) ld a, SFX_SAFARI_ZONE_PA call PlayMusic .musicLoop - ld a, [wc02a] + ld a, [wChannelSoundIDs + CH4] cp $b9 jr z, .musicLoop call UpdateSprites diff --git a/engine/overworld/healing_machine.asm b/engine/overworld/healing_machine.asm index d3513b0d..0c04ff0e 100755 --- a/engine/overworld/healing_machine.asm +++ b/engine/overworld/healing_machine.asm @@ -15,44 +15,44 @@ AnimateHealingMachine: ; 70433 (1c:4433) ld hl, wOAMBuffer + $84 ld de, PokeCenterOAMData call CopyHealingMachineOAM - ld a, $4 - ld [wMusicHeaderPointer], a + ld a, 4 + ld [wAudioFadeOutControl], a ld a, $ff - ld [wc0ee], a + ld [wNewSoundID], a call PlaySound -.asm_70464 - ld a, [wMusicHeaderPointer] - and a - jr nz, .asm_70464 +.waitLoop + ld a, [wAudioFadeOutControl] + and a ; is fade-out finished? + jr nz, .waitLoop ; if not, check again ld a, [wPartyCount] ld b, a -.asm_7046e +.partyLoop call CopyHealingMachineOAM ld a, SFX_HEALING_MACHINE call PlaySound ld c, 30 call DelayFrames dec b - jr nz, .asm_7046e - ld a, [wc0ef] + jr nz, .partyLoop + ld a, [wAudioROMBank] cp BANK(Audio3_UpdateMusic) - ld [wc0f0], a - jr nz, .asm_70495 + ld [wAudioSavedROMBank], a + jr nz, .next ld a, $ff - ld [wc0ee], a + ld [wNewSoundID], a call PlaySound ld a, BANK(Music_PkmnHealed) - ld [wc0ef], a -.asm_70495 + ld [wAudioROMBank], a +.next ld a, MUSIC_PKMN_HEALED - ld [wc0ee], a + ld [wNewSoundID], a call PlaySound ld d, $28 call FlashSprite8Times -.asm_704a2 - ld a, [wc026] - cp MUSIC_PKMN_HEALED - jr z, .asm_704a2 +.waitLoop2 + ld a, [wChannelSoundIDs] + cp MUSIC_PKMN_HEALED ; is the healed music still playing? + jr z, .waitLoop2 ; if so, check gain ld c, 32 call DelayFrames pop af diff --git a/engine/overworld/npc_movement.asm b/engine/overworld/npc_movement.asm index 0c01e38c..fa5ac222 100755 --- a/engine/overworld/npc_movement.asm +++ b/engine/overworld/npc_movement.asm @@ -163,10 +163,10 @@ PewterMuseumGuyMovementScriptPointerTable: ; 1a510 (6:6510) PewterMovementScript_WalkToMuseum: ; 1a514 (6:6514) ld a, BANK(Music_MuseumGuy) - ld [wc0ef], a - ld [wc0f0], a + ld [wAudioROMBank], a + ld [wAudioSavedROMBank], a ld a, MUSIC_MUSEUM_GUY - ld [wc0ee], a + ld [wNewSoundID], a call PlaySound ld a, [wSpriteIndex] swap a @@ -219,10 +219,10 @@ PewterGymGuyMovementScriptPointerTable: ; 1a57d (6:657d) PewterMovementScript_WalkToGym: ; 1a581 (6:6581) ld a, BANK(Music_MuseumGuy) - ld [wc0ef], a - ld [wc0f0], a + ld [wAudioROMBank], a + ld [wAudioSavedROMBank], a ld a, MUSIC_MUSEUM_GUY - ld [wc0ee], a + ld [wNewSoundID], a call PlaySound ld a, [wSpriteIndex] swap a diff --git a/engine/overworld/pokecenter.asm b/engine/overworld/pokecenter.asm index 5b2e4cbb..f302d994 100755 --- a/engine/overworld/pokecenter.asm +++ b/engine/overworld/pokecenter.asm @@ -24,12 +24,12 @@ DisplayPokemonCenterDialogue_: ; 6fe6 (1:6fe6) predef HealParty callba AnimateHealingMachine ; do the healing machine animation xor a - ld [wMusicHeaderPointer], a - ld a, [wc0f0] - ld [wc0ef], a - ld a, [wd35b] - ld [wcfca], a - ld [wc0ee], a + ld [wAudioFadeOutControl], a + ld a, [wAudioSavedROMBank] + ld [wAudioROMBank], a + ld a, [wMapMusicSoundID] + ld [wLastMusicSoundID], a + ld [wNewSoundID], a call PlaySound ld hl, PokemonFightingFitText call PrintText diff --git a/engine/slot_machine.asm b/engine/slot_machine.asm index 3b392dde..b68b9294 100755 --- a/engine/slot_machine.asm +++ b/engine/slot_machine.asm @@ -411,7 +411,7 @@ SlotMachine_CheckForMatches: ; 37588 (d:7588) call PrintText .done xor a - ld [wc002], a + ld [wMuteAudioAndPauseMusic], a ret .rollWheel3DownByOneSymbol call SlotMachine_AnimWheel3 @@ -654,7 +654,7 @@ SlotMachine_PrintPayoutCoins: ; 3775f (d:775f) SlotMachine_PayCoinsToPlayer: ; 3776b (d:776b) ld a, $1 - ld [wc002], a + ld [wMuteAudioAndPauseMusic], a call WaitForSoundToFinish ; Put 1 in the temp coins variable. This value is added to the player's coins diff --git a/engine/titlescreen.asm b/engine/titlescreen.asm index df47275b..17609786 100755 --- a/engine/titlescreen.asm +++ b/engine/titlescreen.asm @@ -18,8 +18,8 @@ SetDefaultNamesBeforeTitlescreen: ; 42b7 (1:42b7) ld [hli], a ld [hl], a ld a, BANK(Music_TitleScreen) - ld [wc0ef], a - ld [wc0f0], a + ld [wAudioROMBank], a + ld [wAudioSavedROMBank], a DisplayTitleScreen: ; 42dd (1:42dd) call GBPalWhiteOut @@ -219,7 +219,7 @@ ENDC call Delay3 call WaitForSoundToFinish ld a, MUSIC_TITLE_SCREEN - ld [wc0ee], a + ld [wNewSoundID], a call PlaySound xor a ld [wcc5b], a diff --git a/home.asm b/home.asm index b18a4ec3..e850c858 100644 --- a/home.asm +++ b/home.asm @@ -332,9 +332,9 @@ GetCryData:: ; 13d9 (0:13d9) ld a, [hli] ld b, a ; cry id ld a, [hli] - ld [wc0f1], a + ld [wFrequencyModifier], a ld a, [hl] - ld [wc0f2], a + ld [wTempoModifier], a call BankswitchBack ; Cry headers have 3 channels, @@ -998,27 +998,27 @@ ResetPlayerSpriteData_ClearSpriteData:: ; 28c4 (0:28c4) xor a jp FillMemory -Func_28cb:: ; 28cb (0:28cb) - ld a, [wMusicHeaderPointer] +FadeOutAudio:: ; 28cb (0:28cb) + ld a, [wAudioFadeOutControl] and a jr nz, .asm_28dc ld a, [wd72c] bit 1, a ret nz ld a, $77 - ld [$ff24], a + ld [rNR50], a ret .asm_28dc - ld a, [wcfc9] + ld a, [wAudioFadeOutCounter] and a - jr z, .asm_28e7 + jr z, .counterReachedZero dec a - ld [wcfc9], a + ld [wAudioFadeOutCounter], a ret -.asm_28e7 - ld a, [wcfc8] - ld [wcfc9], a - ld a, [$ff24] +.counterReachedZero + ld a, [wAudioFadeOutCounterReloadValue] + ld [wAudioFadeOutCounter], a + ld a, [rNR50] and a jr z, .asm_2903 ld b, a @@ -1031,20 +1031,20 @@ Func_28cb:: ; 28cb (0:28cb) dec a swap a or c - ld [$ff24], a + ld [rNR50], a ret .asm_2903 - ld a, [wMusicHeaderPointer] + ld a, [wAudioFadeOutControl] ld b, a xor a - ld [wMusicHeaderPointer], a + ld [wAudioFadeOutControl], a ld a, $ff - ld [wc0ee], a + ld [wNewSoundID], a call PlaySound - ld a, [wc0f0] - ld [wc0ef], a + ld a, [wAudioSavedROMBank] + ld [wAudioROMBank], a ld a, b - ld [wc0ee], a + ld [wNewSoundID], a jp PlaySound ; this function is used to display sign messages, sprite dialog, etc. @@ -2604,12 +2604,12 @@ PlayTrainerMusic:: ; 33e8 (0:33e8) and a ret nz xor a - ld [wMusicHeaderPointer], a + ld [wAudioFadeOutControl], a ld a, $ff call PlaySound ld a, BANK(Music_MeetEvilTrainer) - ld [wc0ef], a - ld [wc0f0], a + ld [wAudioROMBank], a + ld [wAudioSavedROMBank], a ld a, [wEngagedTrainerClass] ld b, a ld hl, EvilTrainerList @@ -2634,7 +2634,7 @@ PlayTrainerMusic:: ; 33e8 (0:33e8) .maleTrainer ld a, MUSIC_MEET_MALE_TRAINER .PlaySound - ld [wc0ee], a + ld [wNewSoundID], a jp PlaySound INCLUDE "data/trainer_types.asm" @@ -3217,8 +3217,8 @@ WaitForSoundToFinish:: ; 3748 (0:3748) and $80 ret nz push hl -.asm_374f - ld hl, wc02a +.waitLoop + ld hl, wChannelSoundIDs + CH4 xor a or [hl] inc hl @@ -3226,7 +3226,7 @@ WaitForSoundToFinish:: ; 3748 (0:3748) inc hl inc hl or [hl] - jr nz, .asm_374f + jr nz, .waitLoop pop hl ret diff --git a/home/audio.asm b/home/audio.asm index 033f4067..2c46ec7a 100644 --- a/home/audio.asm +++ b/home/audio.asm @@ -3,112 +3,139 @@ PlayDefaultMusic:: ; 2307 (0:2307) xor a ld c, a ld d, a - ld [wcfca], a - jr Func_2324 + ld [wLastMusicSoundID], a + jr PlayDefaultMusicCommon -Func_2312:: ; 2312 (0:2312) - ld c, $a - ld d, $0 +PlayDefaultMusicFadeOutCurrent:: ; 2312 (0:2312) +; Fade out the current music and then play the default music. + ld c, 10 + ld d, 0 ld a, [wd72e] - bit 5, a - jr z, Func_2324 + bit 5, a ; has a battle just ended? + jr z, PlayDefaultMusicCommon xor a - ld [wcfca], a - ld c, $8 + ld [wLastMusicSoundID], a + ld c, 8 ld d, c -Func_2324:: ; 2324 (0:2324) + +PlayDefaultMusicCommon:: ; 2324 (0:2324) ld a, [wWalkBikeSurfState] and a - jr z, .asm_2343 + jr z, .walking cp $2 - jr z, .asm_2332 + jr z, .surfing ld a, MUSIC_BIKE_RIDING - jr .asm_2334 -.asm_2332 + jr .next + +.surfing ld a, MUSIC_SURFING -.asm_2334 + +.next ld b, a ld a, d - and a + and a ; should current music be faded out first? ld a, BANK(Music_BikeRiding) - jr nz, .asm_233e - ld [wc0ef], a -.asm_233e - ld [wc0f0], a - jr .asm_234c -.asm_2343 - ld a, [wd35b] + jr nz, .next2 + +; Only change the audio ROM bank if the current music isn't going to be faded +; out before the default music begins. + ld [wAudioROMBank], a + +.next2 +; [wAudioSavedROMBank] will be copied to [wAudioROMBank] after fading out the +; current music (if the current music is faded out). + ld [wAudioSavedROMBank], a + jr .next3 + +.walking + ld a, [wMapMusicSoundID] ld b, a - call Func_2385 - jr c, .asm_2351 -.asm_234c - ld a, [wcfca] - cp b - ret z -.asm_2351 + call CompareMapMusicBankWithCurrentBank + jr c, .next4 + +.next3 + ld a, [wLastMusicSoundID] + cp b ; is the default music already playing? + ret z ; if so, do nothing + +.next4 ld a, c - ld [wMusicHeaderPointer], a + ld [wAudioFadeOutControl], a ld a, b - ld [wcfca], a - ld [wc0ee], a + ld [wLastMusicSoundID], a + ld [wNewSoundID], a jp PlaySound -Func_235f:: ; 235f (0:235f) - ld a, [wc0ef] +UpdateMusic6Times:: ; 235f (0:235f) +; This is called when entering a map, before fading out the current music and +; playing the default music (i.e. the map's music or biking/surfing music). + ld a, [wAudioROMBank] ld b, a cp BANK(Audio1_UpdateMusic) jr nz, .checkForAudio2 -.audio1 + +; audio 1 ld hl, Audio1_UpdateMusic - jr .asm_2378 + jr .next + .checkForAudio2 cp BANK(Audio2_UpdateMusic) jr nz, .audio3 -.audio2 + +; audio 2 ld hl, Audio2_UpdateMusic - jr .asm_2378 + jr .next + .audio3 ld hl, Audio3_UpdateMusic -.asm_2378 - ld c, $6 -.asm_237a + +.next + ld c, 6 +.loop push bc push hl call Bankswitch pop hl pop bc dec c - jr nz, .asm_237a + jr nz, .loop ret -Func_2385:: ; 2385 (0:2385) - ld a, [wd35c] +CompareMapMusicBankWithCurrentBank:: ; 2385 (0:2385) +; Compares the map music's audio ROM bank with the current audio ROM bank +; and updates the audio ROM bank variables. +; Returns whether the banks are different in carry. + ld a, [wMapMusicROMBank] ld e, a - ld a, [wc0ef] + ld a, [wAudioROMBank] cp e - jr nz, .asm_2394 - ld [wc0f0], a + jr nz, .differentBanks + ld [wAudioSavedROMBank], a and a ret -.asm_2394 - ld a, c +.differentBanks + ld a, c ; this is a fade-out counter value and it's always non-zero and a ld a, e - jr nz, .asm_239c - ld [wc0ef], a -.asm_239c - ld [wc0f0], a + jr nz, .next +; If the fade-counter is non-zero, we don't change the audio ROM bank because +; it's needed to keep playing the music as it fades out. The FadeOutAudio +; routine will take care of copying [wAudioSavedROMBank] to [wAudioROMBank] +; when the music has faded out. + ld [wAudioROMBank], a +.next + ld [wAudioSavedROMBank], a scf ret PlayMusic:: ; 23a1 (0:23a1) ld b, a - ld [wc0ee], a + ld [wNewSoundID], a xor a - ld [wMusicHeaderPointer], a + ld [wAudioFadeOutControl], a ld a, c - ld [wc0ef], a - ld [wc0f0], a + ld [wAudioROMBank], a + ld [wAudioSavedROMBank], a ld a, b ; plays music specified by a. If value is $ff, music is stopped @@ -117,66 +144,74 @@ PlaySound:: ; 23b1 (0:23b1) push de push bc ld b, a - ld a, [wc0ee] + ld a, [wNewSoundID] and a - jr z, .asm_23c8 + jr z, .next xor a - ld [wc02a], a - ld [wc02b], a - ld [wc02c], a - ld [wc02d], a -.asm_23c8 - ld a, [wMusicHeaderPointer] - and a - jr z, .asm_23e3 - ld a, [wc0ee] - and a - jr z, .asm_2425 + ld [wChannelSoundIDs + CH4], a + ld [wChannelSoundIDs + CH5], a + ld [wChannelSoundIDs + CH6], a + ld [wChannelSoundIDs + CH7], a +.next + ld a, [wAudioFadeOutControl] + and a ; has a fade-out length been specified? + jr z, .noFadeOut + ld a, [wNewSoundID] + and a ; is the new sound ID 0? + jr z, .done ; if so, do nothing xor a - ld [wc0ee], a - ld a, [wcfca] - cp $ff - jr nz, .asm_2414 + ld [wNewSoundID], a + ld a, [wLastMusicSoundID] + cp $ff ; has the music been stopped? + jr nz, .fadeOut ; if not, fade out the current music +; If it has been stopped, start playing the new music immediately. xor a - ld [wMusicHeaderPointer], a -.asm_23e3 + ld [wAudioFadeOutControl], a +.noFadeOut xor a - ld [wc0ee], a + ld [wNewSoundID], a ld a, [H_LOADEDROMBANK] - ld [$ffb9], a - ld a, [wc0ef] + ld [hSavedROMBank], a + ld a, [wAudioROMBank] ld [H_LOADEDROMBANK], a ld [MBC1RomBank], a - cp BANK(Audio1_9876) + cp BANK(Audio1_PlaySound) jr nz, .checkForAudio2 -.audio1 + +; audio 1 ld a, b - call Audio1_9876 - jr .asm_240b + call Audio1_PlaySound + jr .next2 + .checkForAudio2 - cp BANK(Audio2_22035) + cp BANK(Audio2_PlaySound) jr nz, .audio3 -.audio2 + +; audio 2 ld a, b - call Audio2_22035 - jr .asm_240b + call Audio2_PlaySound + jr .next2 + .audio3 ld a, b - call Audio3_7d8ea -.asm_240b - ld a, [$ffb9] + call Audio3_PlaySound + +.next2 + ld a, [hSavedROMBank] ld [H_LOADEDROMBANK], a ld [MBC1RomBank], a - jr .asm_2425 -.asm_2414 + jr .done + +.fadeOut ld a, b - ld [wcfca], a - ld a, [wMusicHeaderPointer] - ld [wcfc8], a - ld [wcfc9], a + ld [wLastMusicSoundID], a + ld a, [wAudioFadeOutControl] + ld [wAudioFadeOutCounterReloadValue], a + ld [wAudioFadeOutCounter], a ld a, b - ld [wMusicHeaderPointer], a -.asm_2425 + ld [wAudioFadeOutControl], a + +.done pop bc pop de pop hl diff --git a/home/init.asm b/home/init.asm index 624a4d6a..cb5c6583 100644 --- a/home/init.asm +++ b/home/init.asm @@ -98,8 +98,8 @@ rLCDC_DEFAULT EQU %11100011 predef LoadSGB ld a, BANK(SFX_Shooting_Star) - ld [wc0ef], a - ld [wc0f0], a + ld [wAudioROMBank], a + ld [wAudioSavedROMBank], a ld a, $9c ld [H_AUTOBGTRANSFERDEST + 1], a xor a @@ -127,11 +127,11 @@ ClearVram: StopAllSounds:: ld a, BANK(Audio1_UpdateMusic) - ld [wc0ef], a - ld [wc0f0], a + ld [wAudioROMBank], a + ld [wAudioSavedROMBank], a xor a - ld [wMusicHeaderPointer], a - ld [wc0ee], a - ld [wcfca], a + ld [wAudioFadeOutControl], a + ld [wNewSoundID], a + ld [wLastMusicSoundID], a dec a jp PlaySound diff --git a/home/overworld.asm b/home/overworld.asm index f8d6e7e1..eba47df2 100644 --- a/home/overworld.asm +++ b/home/overworld.asm @@ -658,7 +658,7 @@ CheckMapConnections:: ; 07ba (0:07ba) ld [wCurrentTileBlockMapViewPointer + 1],a .loadNewMap ; load the connected map that was entered call LoadMapHeader - call Func_2312 ; music + call PlayDefaultMusicFadeOutCurrent ld b,$09 call GoPAL_SET ; Since the sprite set shouldn't change, this will just update VRAM slots at @@ -750,16 +750,16 @@ HandleBlackOut:: ld [MBC1RomBank], a call ResetStatusAndHalveMoneyOnBlackout call SpecialWarpIn - call Func_2312 + call PlayDefaultMusicFadeOutCurrent jp SpecialEnterMap StopMusic:: - ld [wMusicHeaderPointer], a + ld [wAudioFadeOutControl], a ld a, $ff - ld [wc0ee], a + ld [wNewSoundID], a call PlaySound .wait - ld a, [wMusicHeaderPointer] + ld a, [wAudioFadeOutControl] and a jr nz, .wait jp StopAllSounds @@ -1224,7 +1224,7 @@ CollisionCheckOnLand:: ; 0bd1 (0:0bd1) call CheckTilePassable jr nc,.noCollision .collision - ld a,[wc02a] + ld a,[wChannelSoundIDs + CH4] cp a,SFX_COLLISION ; check if collision sound is already playing jr z,.setCarry ld a,SFX_COLLISION @@ -1927,7 +1927,7 @@ CollisionCheckOnWater:: ; 0fb7 (0:0fb7) jr z,.stopSurfing ; stop surfing if the tile is passable jr .loop .collision - ld a,[wc02a] + ld a,[wChannelSoundIDs + CH4] cp a,SFX_COLLISION ; check if collision sound is already playing jr z,.setCarry ld a,SFX_COLLISION @@ -2279,9 +2279,9 @@ LoadMapHeader:: ; 107c (0:107c) add hl,bc add hl,bc ld a,[hli] - ld [wd35b],a ; music 1 + ld [wMapMusicSoundID],a ; music 1 ld a,[hl] - ld [wd35c],a ; music 2 + ld [wMapMusicROMBank],a ; music 2 pop af ld [H_LOADEDROMBANK],a ld [MBC1RomBank],a @@ -2352,8 +2352,8 @@ LoadMapData:: ; 1241 (0:1241) ld a,[W_FLAGS_D733] bit 1,a jr nz,.restoreRomBank - call Func_235f ; music related - call Func_2312 ; music related + call UpdateMusic6Times + call PlayDefaultMusicFadeOutCurrent .restoreRomBank pop af ld [H_LOADEDROMBANK],a diff --git a/home/vblank.asm b/home/vblank.asm index 6abc3756..3bdbe7cb 100644 --- a/home/vblank.asm +++ b/home/vblank.asm @@ -38,21 +38,21 @@ VBlank:: ld a, [H_VBLANKOCCURRED] and a - jr z, .vblanked + jr z, .skipZeroing xor a ld [H_VBLANKOCCURRED], a -.vblanked +.skipZeroing ld a, [H_FRAMECOUNTER] and a - jr z, .decced + jr z, .skipDec dec a ld [H_FRAMECOUNTER], a -.decced - call Func_28cb +.skipDec + call FadeOutAudio - ld a, [wc0ef] ; music ROM bank + ld a, [wAudioROMBank] ; music ROM bank ld [H_LOADEDROMBANK], a ld [MBC1RomBank], a diff --git a/hram.asm b/hram.asm index 2f70b91a..3f331cfb 100644 --- a/hram.asm +++ b/hram.asm @@ -182,7 +182,9 @@ hJoy5 EQU $FFB5 hJoy6 EQU $FFB6 hJoy7 EQU $FFB7 -H_LOADEDROMBANK EQU $FFB8 +H_LOADEDROMBANK EQU $FFB8 + +hSavedROMBank EQU $FFB9 ; is automatic background transfer during V-blank enabled? ; if nonzero, yes diff --git a/scripts/ceruleancity.asm b/scripts/ceruleancity.asm index 158a683d..d5aa57c1 100755 --- a/scripts/ceruleancity.asm +++ b/scripts/ceruleancity.asm @@ -65,7 +65,7 @@ CeruleanCityScript0: ; 194c8 (6:54c8) and a jr z, .asm_19512 ld a, $ff - ld [wc0ee], a + ld [wNewSoundID], a call PlaySound .asm_19512 ld c, BANK(Music_MeetRival) @@ -172,7 +172,7 @@ CeruleanCityScript2: ; 195b1 (6:55b1) ld [hSpriteIndexOrTextID], a call DisplayTextID ld a, $ff - ld [wc0ee], a + ld [wNewSoundID], a call PlaySound callba Music_RivalAlternateStart ld a, $1 diff --git a/scripts/oakslab.asm b/scripts/oakslab.asm index c52f00cf..db6fa696 100755 --- a/scripts/oakslab.asm +++ b/scripts/oakslab.asm @@ -511,7 +511,7 @@ OaksLabScript15: ; 1ceb0 (7:4eb0) ld [hJoyHeld], a call EnableAutoTextBoxDrawing ld a, $ff - ld [wc0ee], a + ld [wNewSoundID], a call PlaySound callba Music_RivalAlternateStart ld a, $15 @@ -612,7 +612,7 @@ OaksLabScript16: ; 1cf12 (7:4f12) call FillMemory ld [hl], $ff ld a, $ff - ld [wc0ee], a + ld [wNewSoundID], a call PlaySound callba Music_RivalAlternateStart ld a, $1 diff --git a/scripts/pewterpokecenter.asm b/scripts/pewterpokecenter.asm index 584878eb..25c07be6 100755 --- a/scripts/pewterpokecenter.asm +++ b/scripts/pewterpokecenter.asm @@ -59,9 +59,9 @@ PewterPokecenterText3: ; 5c59b (17:459b) ld c, 24 call DelayFrames - ld a, [wc026] + ld a, [wChannelSoundIDs] ld b, a - ld a, [wc027] + ld a, [wChannelSoundIDs + CH1] or b jr nz, .loop diff --git a/scripts/pokemontower2.asm b/scripts/pokemontower2.asm index a569b60b..5422d887 100755 --- a/scripts/pokemontower2.asm +++ b/scripts/pokemontower2.asm @@ -23,7 +23,7 @@ PokemonTower2Script0: ; 6050f (18:450f) call ArePlayerCoordsInArray ret nc ld a, $ff - ld [wc0ee], a + ld [wNewSoundID], a call PlaySound ld c, BANK(Music_MeetRival) ld a, MUSIC_MEET_RIVAL @@ -77,7 +77,7 @@ PokemonTower2Script1: ; 60563 (18:4563) ld [H_SPRITEINDEX], a call MoveSprite ld a, $ff - ld [wc0ee], a + ld [wNewSoundID], a call PlaySound callba Music_RivalAlternateStart ld a, $2 diff --git a/scripts/redshouse1f.asm b/scripts/redshouse1f.asm index 09ce97dc..f9c7193f 100755 --- a/scripts/redshouse1f.asm +++ b/scripts/redshouse1f.asm @@ -29,14 +29,14 @@ MomHealPokemon: ; 4818a (12:418a) call ReloadMapData predef HealParty ld a, MUSIC_PKMN_HEALED - ld [wc0ee], a + ld [wNewSoundID], a call PlaySound .next - ld a, [wc026] + ld a, [wChannelSoundIDs] cp MUSIC_PKMN_HEALED jr z, .next - ld a, [wd35b] - ld [wc0ee], a + ld a, [wMapMusicSoundID] + ld [wNewSoundID], a call PlaySound call GBFadeInFromWhite ld hl, MomHealText2 diff --git a/scripts/route22.asm b/scripts/route22.asm index 041f75e6..f6f6778e 100755 --- a/scripts/route22.asm +++ b/scripts/route22.asm @@ -89,7 +89,7 @@ Route22Script0: ; 50f00 (14:4f00) and a jr z, .asm_50f4e ld a, $ff - ld [wc0ee], a + ld [wNewSoundID], a call PlaySound .asm_50f4e ld c, BANK(Music_MeetRival) @@ -168,7 +168,7 @@ Route22Script2: ; 50fb5 (14:4fb5) ld [hSpriteIndexOrTextID], a call DisplayTextID ld a, $ff - ld [wc0ee], a + ld [wNewSoundID], a call PlaySound callba Music_RivalAlternateStart ld a, [wcf0d] @@ -242,11 +242,11 @@ Route22Script_5104e: ; 5104e (14:504e) and a jr z, .skipYVisibilityTesta ld a, $ff - ld [wc0ee], a + ld [wNewSoundID], a call PlaySound .skipYVisibilityTesta ld a, $ff - ld [wc0ee], a + ld [wNewSoundID], a call PlaySound callba Music_RivalAlternateTempo ld a, $2 @@ -327,7 +327,7 @@ Route22Script5: ; 510df (14:50df) ld [hSpriteIndexOrTextID], a call DisplayTextID ld a, $ff - ld [wc0ee], a + ld [wNewSoundID], a call PlaySound callba Music_RivalAlternateStartAndTempo ld a, [wcf0d] diff --git a/scripts/silphco7.asm b/scripts/silphco7.asm index 525405c7..0de4b324 100755 --- a/scripts/silphco7.asm +++ b/scripts/silphco7.asm @@ -131,7 +131,7 @@ SilphCo7Script0: ; 51c23 (14:5c23) ld a, PLAYER_DIR_DOWN ld [wPlayerMovingDirection], a ld a, $ff - ld [wc0ee], a + ld [wNewSoundID], a call PlaySound ld c, BANK(Music_MeetRival) ld a, MUSIC_MEET_RIVAL @@ -220,7 +220,7 @@ SilphCo7Script4: ; 51cc8 (14:5cc8) ld [hSpriteIndexOrTextID], a call DisplayTextID ld a, $ff - ld [wc0ee], a + ld [wNewSoundID], a call PlaySound callba Music_RivalAlternateStart ld de, MovementData_51d1d diff --git a/scripts/ssanne2.asm b/scripts/ssanne2.asm index b95c5723..c4afd9d0 100755 --- a/scripts/ssanne2.asm +++ b/scripts/ssanne2.asm @@ -25,7 +25,7 @@ SSAnne2Script0: ; 613be (18:53be) call ArePlayerCoordsInArray ret nc ld a, $ff - ld [wc0ee], a + ld [wNewSoundID], a call PlaySound ld c, BANK(Music_MeetRival) ld a, MUSIC_MEET_RIVAL @@ -146,7 +146,7 @@ SSAnne2Script2: ; 6146d (18:546d) ld [H_SPRITEINDEX], a call MoveSprite ld a, $ff - ld [wc0ee], a + ld [wNewSoundID], a call PlaySound callba Music_RivalAlternateStart ld a, $3 diff --git a/scripts/ssanne7.asm b/scripts/ssanne7.asm index b99f5bb2..911dac7f 100755 --- a/scripts/ssanne7.asm +++ b/scripts/ssanne7.asm @@ -44,21 +44,21 @@ SSAnne7Text1: ; 618ad (18:58ad) SSAnne7RubText: ; 618ec (18:58ec) TX_FAR _SSAnne7RubText TX_ASM - ld a, [wc0ef] + ld a, [wAudioROMBank] cp BANK(Audio3_UpdateMusic) - ld [wc0f0], a + ld [wAudioSavedROMBank], a jr nz, .asm_61908 ld a, $ff - ld [wc0ee], a + ld [wNewSoundID], a call PlaySound ld a, Bank(Music_PkmnHealed) - ld [wc0ef], a + ld [wAudioROMBank], a .asm_61908 ld a, MUSIC_PKMN_HEALED - ld [wc0ee], a + ld [wNewSoundID], a call PlaySound .asm_61910 - ld a, [wc026] + ld a, [wChannelSoundIDs] cp MUSIC_PKMN_HEALED jr z, .asm_61910 call PlayDefaultMusic diff --git a/scripts/vermiliondock.asm b/scripts/vermiliondock.asm index a65b3603..8c2173cc 100755 --- a/scripts/vermiliondock.asm +++ b/scripts/vermiliondock.asm @@ -40,7 +40,7 @@ VermilionDock_1db9b: ; 1db9b (7:5b9b) SetEventForceReuseHL EVENT_SS_ANNE_LEFT ld a, $ff ld [wJoyIgnore], a - ld [wc0ee], a + ld [wNewSoundID], a call PlaySound ld c, BANK(Music_Surfing) ld a, MUSIC_SURFING diff --git a/wram.asm b/wram.asm index 872d1e8e..2fc94e8d 100755 --- a/wram.asm +++ b/wram.asm @@ -61,66 +61,146 @@ ENDM SECTION "WRAM Bank 0", WRAM0 -wc000:: ds 1 -wc001:: ds 1 -wc002:: ds 1 -wc003:: ds 1 -wc004:: ds 1 -wc005:: ds 1 -wc006:: ds 8 -wc00e:: ds 4 -wc012:: ds 4 -wc016:: ds 16 -wc026:: ds 1 -wc027:: ds 1 -wc028:: ds 2 -wc02a:: ds 1 -wc02b:: ds 1 -wc02c:: ds 1 -wc02d:: ds 1 -wc02e:: ds 8 -wc036:: ds 8 -wc03e:: ds 8 -wc046:: ds 8 -wc04e:: ds 8 -wc056:: ds 8 -wc05e:: ds 8 -wc066:: ds 8 -wc06e:: ds 8 -wc076:: ds 8 -wc07e:: ds 8 -wc086:: ds 8 -wc08e:: ds 8 -wc096:: ds 8 -wc09e:: ds 8 -wc0a6:: ds 8 -wc0ae:: ds 8 -wc0b6:: ds 8 -wc0be:: ds 8 -wc0c6:: ds 8 -wc0ce:: ds 1 -wc0cf:: ds 1 -wc0d0:: ds 1 -wc0d1:: ds 1 -wc0d2:: ds 1 -wc0d3:: ds 1 -wc0d4:: ds 1 -wc0d5:: ds 1 -wc0d6:: ds 8 -wc0de:: ds 8 -wc0e6:: ds 1 -wc0e7:: ds 1 -wc0e8:: ds 1 -wc0e9:: ds 1 -wc0ea:: ds 1 -wc0eb:: ds 1 -wc0ec:: ds 1 -wc0ed:: ds 1 -wc0ee:: ds 1 -wc0ef:: ds 1 -wc0f0:: ds 1 -wc0f1:: ds 1 -wc0f2:: ds 14 +wUnusedC000:: ; c000 + ds 1 + +wSoundID:: ; c001 + ds 1 + +wMuteAudioAndPauseMusic:: ; c002 +; bit 7: whether sound has been muted +; all bits: whether the effective is active +; Store 1 to activate effect (any value in the range [1, 127] works). +; All audio is muted and music is paused. Sfx continues playing until it +; ends normally. +; Store 0 to resume music. + ds 1 + +wDisableChannelOutputWhenSfxEnds:: ; c003 + ds 1 + +wStereoPanning:: ; c004 + ds 1 + +wSavedVolume:: ; c005 + ds 1 + +wChannelCommandPointers:: ; c006 + ds 16 + +wChannelReturnAddresses:: ; c016 + ds 16 + +wChannelSoundIDs:: ; c026 + ds 8 + +wChannelFlags1:: ; c02e + ds 8 + +wChannelFlags2:: ; c036 + ds 8 + +wChannelDuties:: ; c03e + ds 8 + +wChannelDutyCycles:: ; c046 + ds 8 + +wChannelVibratoDelayCounters:: ; c04e +; reloaded at the beginning of a note. counts down until the vibrato begins. + ds 8 + +wChannelVibratoExtents:: ; c056 + ds 8 + +wChannelVibratoRates:: ; c05e +; high nybble is rate (counter reload value) and low nybble is counter. +; time between applications of vibrato. + ds 8 + +wChannelFrequencyLowBytes:: ; c066 + ds 8 + +wChannelVibratoDelayCounterReloadValues:: ; c06e +; delay of the beginning of the vibrato from the start of the note + ds 8 + +wChannelPitchBendLengthModifiers:: ; c076 + ds 8 + +wChannelPitchBendFrequencySteps:: ; c07e + ds 8 + +wChannelPitchBendFrequencyStepsFractionalPart:: ; c086 + ds 8 + +wChannelPitchBendCurrentFrequencyFractionalPart:: ; c08e + ds 8 + +wChannelPitchBendCurrentFrequencyHighBytes:: ; c096 + ds 8 + +wChannelPitchBendCurrentFrequencyLowBytes:: ; c09e + ds 8 + +wChannelPitchBendTargetFrequencyHighBytes:: ; c0a6 + ds 8 + +wChannelPitchBendTargetFrequencyLowBytes:: ; c0ae + ds 8 + +wChannelNoteDelayCounters:: ; c0b6 +; Note delays are stored as 16-bit fixed-point numbers where the integer part +; is 8 bits and the fractional part is 8 bits. + ds 8 + +wChannelLoopCounters:: ; c0be + ds 8 + +wChannelNoteSpeeds:: ; c0c6 + ds 8 + +wChannelNoteDelayCountersFractionalPart:: ; c0ce + ds 8 + +wChannelOctaves:: ; c0d6 + ds 8 + +wChannelVolumes:: ; c0de +; also includes fade for hardware channels that support it + ds 8 + +wMusicWaveInstrument:: + ds 1 + +wSfxWaveInstrument:: + ds 1 + +wMusicTempo:: ; c0e8 + ds 2 + +wSfxTempo:: ; c0ea + ds 2 + +wSfxHeaderPointer:: ; c0ec + ds 2 + +wNewSoundID:: ; c0ee + ds 1 + +wAudioROMBank:: ; c0ef + ds 1 + +wAudioSavedROMBank:: ; c0f0 + ds 1 + +wFrequencyModifier:: ; c0f1 + ds 1 + +wTempoModifier:: ; c0f2 + ds 1 + + ds 13 SECTION "Sprite State Data", WRAM0[$c100] @@ -1289,13 +1369,35 @@ wTileInFrontOfPlayer:: ; cfc6 ; background tile number in front of the player (either 1 or 2 steps ahead) ds 1 -wMusicHeaderPointer:: ; cfc7 -; (the current music channel address - $4000) / 3 +wAudioFadeOutControl:: ; cfc7 +; The desired fade counter reload value is stored here prior to calling +; PlaySound in order to cause the current music to fade out before the new +; music begins playing. Storing 0 causes no fade out to occur and the new music +; to begin immediately. +; This variable has another use related to fade-out, as well. PlaySound stores +; the sound ID of the music that should be played after the fade-out is finished +; in this variable. FadeOutAudio checks if it's non-zero every V-Blank and +; fades out the current audio if it is. Once it has finished fading out the +; audio, it zeroes this variable and starts playing the sound ID stored in it. ds 1 -wcfc8:: ds 1 ; used with audio -wcfc9:: ds 1 ; also used with audio -wcfca:: ds 1 ; also used with audio too +wAudioFadeOutCounterReloadValue:: ; cfc8 + ds 1 + +wAudioFadeOutCounter:: ; cfc9 + ds 1 + +wLastMusicSoundID:: ; cfca +; This is used to determine whether the default music is already playing when +; attempting to play the default music (in order to avoid restarting the same +; music) and whether the music has already been stopped when attempting to +; fade out the current music (so that the new music can be begin immediately +; instead of waiting). +; It sometimes contains the sound ID of the last music played, but it may also +; contain $ff (if the music has been stopped) or 0 (because some routines zero +; it in order to prevent assumptions from being made about the current state of +; the music). + ds 1 wUpdateSpritesEnabled:: ; cfcb ; $00 = causes sprites to be hidden and the value to change to $ff @@ -2126,8 +2228,11 @@ wLetterPrintingDelayFlags:: ; d358 wPlayerID:: ; d359 ds 2 -wd35b:: ds 1 ; used with audio stuff -wd35c:: ds 1 ; storage for audio bank for current map? +wMapMusicSoundID:: ; d35b + ds 1 + +wMapMusicROMBank:: ; d35c + ds 1 wMapPalOffset:: ; d35d ; offset subtracted from FadePal4 to get the background and object palettes for the current map -- cgit v1.3.1-sl0p