diff options
Diffstat (limited to 'audio/engine_2.asm')
-rw-r--r-- | audio/engine_2.asm | 914 |
1 files changed, 457 insertions, 457 deletions
diff --git a/audio/engine_2.asm b/audio/engine_2.asm index 067ecc0c..e70a305f 100644 --- a/audio/engine_2.asm +++ b/audio/engine_2.asm @@ -1,10 +1,10 @@ ; The second of three duplicated sound engines. -Music8_UpdateMusic:: ; 21879 (8:5879) +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,21 +12,21 @@ Music8_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 Music8_ApplyMusicAffects + call Audio2_ApplyMusicAffects .nextChannel ld a, c inc c @@ -36,54 +36,54 @@ Music8_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 ; 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 + ld hl, wChannelNoteDelayCounters ; 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 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 Music8_ApplyDutyCycle + 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 Music8_ApplyPitchBend + 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 @@ Music8_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 @@ Music8_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 @@ Music8_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 @@ -141,21 +141,21 @@ Music8_ApplyMusicAffects: ; 218ae (8:58ae) .done ld d, a ld b, $3 - call Func_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) - ld hl, wc06e +Audio2_PlayNextNote: ; 21946 (8:5946) + 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] @@ -166,16 +166,16 @@ 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 + ld hl, wChannelFlags1 add hl, bc bit 1, [hl] jr nz, .returnFromCall @@ -185,22 +185,22 @@ Music8_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 @@ Music8_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 @@ -223,20 +223,20 @@ 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 - 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 @@ -245,25 +245,25 @@ Music8_endchannel: ; 21967 (8:5967) ld a, c cp CH4 jr z, .asm_219e6 - call Func_21e6d + 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 -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 @@ -272,10 +272,10 @@ Music8_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,73 +290,73 @@ Music8_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 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 ld b, $0 - ld hl, wc0be + ld hl, wChannelLoopCounters add hl, bc ld a, [hl] cp e 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 add a ld e, a - ld hl, wc006 + ld hl, wChannelCommandPointers add hl, de 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 - ld hl, wc0c6 + ld hl, wChannelNoteSpeeds add hl, bc ld [hl], a ; store low nibble as speed 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 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,41 +371,41 @@ Music8_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 - 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 + ld hl, wChannelFlags1 add hl, bc ld a, [hl] xor $1 - ld [hl], a ; flip bit 0 of wc02e - jp Music8_endchannel + ld [hl], a ; flip bit 0 of wChannelFlags1 + 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 + 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 Music8_GetNextMusicByte + call Audio2_GetNextMusicByte ld d, a and $f0 swap a ld b, $0 - ld hl, wc056 + ld hl, wChannelVibratoExtents add hl, bc srl a ld e, a @@ -416,226 +416,226 @@ Music8_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 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 + ld hl, wChannelPitchBendLengthModifiers 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 Func_22017 + 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 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 ld b, $0 - ld hl, wc03e + ld hl, wChannelDuties 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 - ld [wc0e8], a ; store first param - call Music8_GetNextMusicByte - ld [wc0e9], a ; store second param + call Audio2_GetNextMusicByte + ld [wMusicTempo], a ; store first param + call Audio2_GetNextMusicByte + 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 Music8_GetNextMusicByte - ld [wc0ea], a ; store first param - call Music8_GetNextMusicByte - ld [wc0eb], a ; store second param + call Audio2_GetNextMusicByte + ld [wSfxTempo], a ; store first param + call Audio2_GetNextMusicByte + 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 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 - ld [wc004], a ; store panning - jp Music8_endchannel + jr nz, Audio2_unknownmusic0xef ; no + call Audio2_GetNextMusicByte ; yes + ld [wStereoPanning], a ; store panning + 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 Func_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 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 + 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 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 - ld [$ff24], a ; store volume - jp Music8_endchannel + jr nz, Audio2_executemusic ; no + call Audio2_GetNextMusicByte ; yes + ld [rNR50], a ; store volume + 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 + ld hl, wChannelFlags2 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 - ld hl, wc0d6 ; yes + jr nz, Audio2_unknownsfx0x20 ; no + ld hl, wChannelOctaves ; 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 + ld hl, wChannelFlags2 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 + ld hl, wChannelDuties add hl, bc ld a, [hl] or d ld d, a ld b, $1 - call Func_21ff7 + call Audio2_21ff7 ld [hl], d - call Music8_GetNextMusicByte + call Audio2_GetNextMusicByte ld d, a ld b, $2 - call Func_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 Func_21daa - call Func_21d79 + call Audio2_21daa + call Audio2_21d79 pop de - call Func_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 + ld hl, wChannelFlags2 add hl, bc bit 0, [hl] - jr nz, Music8_note ; no - call Music8_GetNextMusicByte ; yes - ld [$ff10], a - jp Music8_endchannel + jr nz, Audio2_note ; no + call Audio2_GetNextMusicByte ; yes + ld [rNR10], a + 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] + ld a, [wDisableChannelOutputWhenSfxEnds] and a jr nz, .asm_21c89 ld a, d - call Func_22035 + call Audio2_PlaySound .asm_21c89 pop bc pop de -Music8_notelength: ; 21c8b (8:5c8b) +Audio2_notelength: ; 21c8b (8:5c8b) ld a, d push af and $f @@ -671,17 +671,17 @@ Music8_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 - call Func_22006 + call Audio2_22006 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 @@ -689,39 +689,39 @@ Music8_notelength: ; 21c8b (8:5c8b) ld e, $0 cp CH7 jr z, .skip ; if noise channel - call Func_21e2f - ld a, [wc0ea] + call Audio2_21e2f + 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 Func_22006 + 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, Music8_notepitch - ld hl, wc02e + jr nz, Audio2_notepitch + ld hl, wChannelFlags1 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 @@ -729,7 +729,7 @@ Music8_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,13 +745,13 @@ Music8_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 - call Func_21ff7 + call Audio2_21ff7 ld a, $8 ld [hli], a inc hl @@ -762,22 +762,22 @@ Music8_notepitch: ; 21ce9 (8:5ce9) .notRest swap a ld b, $0 - ld hl, wc0d6 + ld hl, wChannelOctaves add hl, bc ld b, [hl] - call Func_22017 + call Audio2_22017 ld b, $0 - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc bit 4, [hl] jr z, .asm_21d39 - call Func_21f4e + call Audio2_21f4e .asm_21d39 push de 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,17 +790,17 @@ Music8_notepitch: ; 21ce9 (8:5ce9) ret .skip ld b, $0 - ld hl, wc0de + ld hl, wChannelVolumes add hl, bc ld d, [hl] ld b, $2 - call Func_21ff7 + call Audio2_21ff7 ld [hl], d - call Func_21daa - call Func_21d79 + call Audio2_21daa + 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,17 +808,17 @@ Music8_notepitch: ; 21ce9 (8:5ce9) jr nc, .skip2 inc d .skip2 - ld hl, wc066 + ld hl, wChannelFrequencyLowBytes add hl, bc ld [hl], e - call Func_21dcc + call Audio2_21dcc ret -Func_21d79: ; 21d79 (8:5d79) +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 @@ Func_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 @@ Func_21d79: ; 21d79 (8:5d79) ld d, a .skip ld a, d - ld [$ff25], a + ld [rNR51], a ret -Func_21daa: ; 21daa (8:5daa) +Audio2_21daa: ; 21daa (8:5daa) ld b, $0 - ld hl, wc0b6 + ld hl, wChannelNoteDelayCounters add hl, bc ld d, [hl] ld a, c @@ -861,18 +861,18 @@ Func_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 ld d, a .channel3 ld b, $1 - call Func_21ff7 + call Audio2_21ff7 ld [hl], d ret -Func_21dcc: ; 21dcc (8:5dcc) +Audio2_21dcc: ; 21dcc (8:5dcc) ld a, c cp CH2 jr z, .channel3 @@ -881,16 +881,16 @@ Func_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 ld d, $0 ld e, a - ld hl, Music8_WavePointers + ld hl, Audio2_WavePointers add hl, de ld e, [hl] inc hl @@ -898,7 +898,7 @@ Func_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 @@ Func_21dcc: ; 21dcc (8:5dcc) and a jr nz, .loop ld a, $80 - ld [$ff1a], a + ld [rNR30], a pop de .notSfxChannel3 ld a, d @@ -916,18 +916,18 @@ Func_21dcc: ; 21dcc (8:5dcc) and $c7 ld d, a ld b, $3 - call Func_21ff7 + call Audio2_21ff7 ld [hl], e inc hl ld [hl], d ld a, c cp CH4 jr c, .musicChannel - call Func_21e56 + call Audio2_21e56 .musicChannel ret -Func_21e19: ; 21e19 (8:5e19) +Audio2_21e19: ; 21e19 (8:5e19) ld a, c cp CH4 jr nz, .asm_21e2e @@ -935,43 +935,43 @@ Func_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 -Func_21e2f: ; 21e2f (8:5e2f) - call Func_21e8b +Audio2_21e2f: ; 21e2f (8:5e2f) + call Audio2_21e8b jr c, .asm_21e39 - call Func_21e9f + call Audio2_21e9f 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 -Func_21e56: ; 21e56 (8:5e56) - call Func_21e8b +Audio2_21e56: ; 21e56 (8:5e56) + call Audio2_21e8b jr c, .asm_21e60 - call Func_21e9f + call Audio2_21e9f jr nc, .asm_21e6c .asm_21e60 - ld a, [wc0f1] + ld a, [wFrequencyModifier] add e jr nc, .asm_21e67 inc d @@ -984,10 +984,10 @@ Func_21e56: ; 21e56 (8:5e56) .asm_21e6c ret -Func_21e6d: ; 21e6d (8:5e6d) - call Func_21e8b +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 @@ -1007,8 +1007,8 @@ Func_21e6d: ; 21e6d (8:5e6d) ccf ret -Func_21e8b: ; 21e8b (8:5e8b) - ld a, [wc02a] +Audio2_21e8b: ; 21e8b (8:5e8b) + ld a, [wChannelSoundIDs + CH4] cp $14 jr nc, .asm_21e94 jr .asm_21e9a @@ -1024,10 +1024,10 @@ Func_21e8b: ; 21e8b (8:5e8b) scf ret -Func_21e9f: ; 21e9f (8:5e9f) - ld a, [wc02d] +Audio2_21e9f: ; 21e9f (8:5e9f) + ld a, [wChannelSoundIDs + CH7] ld b, a - ld a, [wc02a] + ld a, [wChannelSoundIDs + CH4] or b cp $9d jr nc, .asm_21ead @@ -1044,28 +1044,28 @@ Func_21e9f: ; 21e9f (8:5e9f) scf ret -Music8_ApplyPitchBend: ; 21eb8 (8:5eb8) - ld hl, wc02e +Audio2_ApplyPitchBend: ; 21eb8 (8:5eb8) + 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 @@ Music8_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 @@ Music8_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,79 +1115,79 @@ Music8_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 - call Func_21ff7 + call Audio2_21ff7 ld a, e ld [hli], a ld [hl], d ret .asm_21f45 - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc res 4, [hl] res 5, [hl] ret -Func_21f4e: ; 21f4e (8:5f4e) - ld hl, wc096 +Audio2_21f4e: ; 21f4e (8:5f4e) + 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 @@ Func_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 @@ Func_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 -Music8_ApplyDutyCycle: ; 21fcc (8:5fcc) +Audio2_ApplyDutyCycle: ; 21fcc (8:5fcc) ld b, $0 - ld hl, wc046 + ld hl, wChannelDutyCycles add hl, bc ld a, [hl] rlca @@ -1246,19 +1246,19 @@ Music8_ApplyDutyCycle: ; 21fcc (8:5fcc) and $c0 ld d, a ld b, $1 - call Func_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 ld e, a - ld hl, wc006 + ld hl, wChannelCommandPointers add hl, de ld a, [hli] ld e, a @@ -1271,7 +1271,7 @@ Music8_GetNextMusicByte: ; 21fe4 (8:5fe4) ld [hl], d ret -Func_21ff7: ; 21ff7 (8:5ff7) +Audio2_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) +Audio2_22006: ; 22006 (8:6006) ld h, $0 .loop srl a @@ -1300,13 +1300,13 @@ Func_22006: ; 22006 (8:6006) .done ret -Func_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,102 +1325,102 @@ Func_22017: ; 22017 (8:6017) ld d, a ret -Func_22035:: ; 22035 (8:6035) - ld [wc001], a +Audio2_PlaySound:: ; 22035 (8:6035) + ld [wSoundID], a cp $ff - jp z, Func_221f3 + jp z, Audio2_221f3 cp $e9 - jp z, Func_2210d - jp c, Func_2210d + jp z, Audio2_2210d + jp c, Audio2_2210d cp $fe jr z, .asm_2204c - jp nc, Func_2210d + 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 - call FillMusicRAM8 - ld hl, wc006 - call FillMusicRAM8 + ld hl, wChannelReturnAddresses + call FillAudioRAM2 + ld hl, wChannelCommandPointers + call FillAudioRAM2 ld d, $4 - ld hl, wc026 - call FillMusicRAM8 - ld hl, wc02e - call FillMusicRAM8 - ld hl, wc03e - call FillMusicRAM8 - ld hl, wc046 - call FillMusicRAM8 - ld hl, wc04e - call FillMusicRAM8 - ld hl, wc056 - call FillMusicRAM8 - ld hl, wc05e - call FillMusicRAM8 - ld hl, wc066 - call FillMusicRAM8 - ld hl, wc06e - call FillMusicRAM8 - ld hl, wc036 - call FillMusicRAM8 - ld hl, wc076 - call FillMusicRAM8 - ld hl, wc07e - call FillMusicRAM8 - ld hl, wc086 - call FillMusicRAM8 - ld hl, wc08e - call FillMusicRAM8 - ld hl, wc096 - call FillMusicRAM8 - ld hl, wc09e - call FillMusicRAM8 - ld hl, wc0a6 - call FillMusicRAM8 - ld hl, wc0ae - call FillMusicRAM8 + ld hl, wChannelSoundIDs + call FillAudioRAM2 + ld hl, wChannelFlags1 + call FillAudioRAM2 + ld hl, wChannelDuties + call FillAudioRAM2 + ld hl, wChannelDutyCycles + call FillAudioRAM2 + ld hl, wChannelVibratoDelayCounters + call FillAudioRAM2 + ld hl, wChannelVibratoExtents + call FillAudioRAM2 + ld hl, wChannelVibratoRates + call FillAudioRAM2 + ld hl, wChannelFrequencyLowBytes + call FillAudioRAM2 + ld hl, wChannelVibratoDelayCounterReloadValues + call FillAudioRAM2 + ld hl, wChannelFlags2 + call FillAudioRAM2 + ld hl, wChannelPitchBendLengthModifiers + call FillAudioRAM2 + ld hl, wChannelPitchBendFrequencySteps + call FillAudioRAM2 + ld hl, wChannelPitchBendFrequencyStepsFractionalPart + call FillAudioRAM2 + ld hl, wChannelPitchBendCurrentFrequencyFractionalPart + call FillAudioRAM2 + ld hl, wChannelPitchBendCurrentFrequencyHighBytes + call FillAudioRAM2 + ld hl, wChannelPitchBendCurrentFrequencyLowBytes + call FillAudioRAM2 + ld hl, wChannelPitchBendTargetFrequencyHighBytes + call FillAudioRAM2 + ld hl, wChannelPitchBendTargetFrequencyLowBytes + call FillAudioRAM2 ld a, $1 - ld hl, wc0be - call FillMusicRAM8 - ld hl, wc0b6 - call FillMusicRAM8 - ld hl, wc0c6 - call FillMusicRAM8 - ld [wc0e8], a + ld hl, wChannelLoopCounters + call FillAudioRAM2 + ld hl, wChannelNoteDelayCounters + call FillAudioRAM2 + ld hl, wChannelNoteSpeeds + call FillAudioRAM2 + 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 - jp Func_2224e + ld [rNR50], a + jp Audio2_2224e -Func_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 + ld [wSfxHeaderPointer], a ld a, l - ld [wc0ed], a + ld [wSfxHeaderPointer + 1], a ld a, [hl] and $c0 rlca @@ -1433,9 +1433,9 @@ Func_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 @@ Func_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 @@ Func_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 @@ Func_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,132 +1474,132 @@ Func_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 - jp z, Func_2224e + jp z, Audio2_2224e dec c jp .asm_22126 -Func_221f3: ; 221f3 (8:61f3) +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 - call FillMusicRAM8 + ld hl, wChannelCommandPointers + call FillAudioRAM2 ld a, $1 ld d, $18 - ld hl, wc0b6 - call FillMusicRAM8 - ld [wc0e8], a - ld [wc0ea], a + ld hl, wChannelNoteDelayCounters + call FillAudioRAM2 + ld [wMusicTempo], a + ld [wSfxTempo], a ld a, $ff - ld [wc004], a + ld [wStereoPanning], a ret ; fills d bytes at hl with a -FillMusicRAM8: ; 22248 (8:6248) +FillAudioRAM2: ; 22248 (8:6248) ld b, d .loop ld [hli], a @@ -1607,19 +1607,19 @@ FillMusicRAM8: ; 22248 (8:6248) jr nz, .loop ret -Func_2224e: ; 2224e (8:624e) - ld a, [wc001] +Audio2_2224e: ; 2224e (8:624e) + ld a, [wSoundID] 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 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 @@ Func_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,38 +1671,38 @@ Func_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 de, Noise8_endchannel + 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 -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_ |