Fix mono/stereo channel enable masks

This commit is contained in:
dannye
2022-07-15 06:15:56 -05:00
parent 5222068e7c
commit 395d563295
2 changed files with 27 additions and 10 deletions
+17 -10
View File
@@ -852,7 +852,7 @@ Audio1_note_pitch:
Audio1_EnableChannelOutput:
ld b, 0
call Audio1_9972
call Audio1_ApplyMonoStereo
add hl, bc
ldh a, [rNR51]
or [hl] ; set this channel's bits
@@ -872,7 +872,7 @@ Audio1_EnableChannelOutput:
; If this is the SFX noise channel or a music channel whose corresponding
; SFX channel is off, apply stereo panning.
ld a, [wStereoPanning]
call Audio1_9972
call Audio1_ApplyMonoStereo
add hl, bc
and [hl]
ld d, a
@@ -1063,7 +1063,7 @@ Audio1_IsCry:
ret
Audio1_IsBattleSFX:
; Returns whether the currently playing audio is a battle sfx in carry.
; Returns whether the currently playing audio is a battle sfx in carry.
ld a, [wAudioROMBank]
cp BANK("Audio Engine 2")
jr nz, .no
@@ -1564,7 +1564,7 @@ Audio1_HWChannelDisableMasks:
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
Audio1_9972:
Audio1_ApplyMonoStereo:
push af
push bc
ld a, [wOptions]
@@ -1579,14 +1579,21 @@ Audio1_9972:
ret
Audio1_HWChannelEnableMasks:
; mono
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
db $01,$20,$44,$88
db $11,$22,$44,$88
db $01,$20,$04,$80
db $01,$20,$04,$80
db $01,$02,$40,$80
db $01,$02,$40,$80
; earphone 1
db HW_CH1_RIGHT_ENABLE_MASK, HW_CH2_LEFT_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
; earphone 2
db HW_CH1_RIGHT_ENABLE_MASK, HW_CH2_LEFT_ENABLE_MASK, HW_CH3_RIGHT_ENABLE_MASK, HW_CH4_LEFT_ENABLE_MASK ; channels 0-3
db HW_CH1_RIGHT_ENABLE_MASK, HW_CH2_LEFT_ENABLE_MASK, HW_CH3_RIGHT_ENABLE_MASK, HW_CH4_LEFT_ENABLE_MASK ; channels 4-7
; earphone 3
db HW_CH1_RIGHT_ENABLE_MASK, HW_CH2_RIGHT_ENABLE_MASK, HW_CH3_LEFT_ENABLE_MASK, HW_CH4_LEFT_ENABLE_MASK ; channels 0-3
db HW_CH1_RIGHT_ENABLE_MASK, HW_CH2_RIGHT_ENABLE_MASK, HW_CH3_LEFT_ENABLE_MASK, HW_CH4_LEFT_ENABLE_MASK ; channels 4-7
Audio1_Pitches:
INCLUDE "audio/notes.asm"
+10
View File
@@ -43,6 +43,16 @@ DEF HW_CH2_ENABLE_MASK EQU %00100010
DEF HW_CH3_ENABLE_MASK EQU %01000100
DEF HW_CH4_ENABLE_MASK EQU %10001000
DEF HW_CH1_LEFT_ENABLE_MASK EQU %00010000
DEF HW_CH2_LEFT_ENABLE_MASK EQU %00100000
DEF HW_CH3_LEFT_ENABLE_MASK EQU %01000000
DEF HW_CH4_LEFT_ENABLE_MASK EQU %10000000
DEF HW_CH1_RIGHT_ENABLE_MASK EQU %00000001
DEF HW_CH2_RIGHT_ENABLE_MASK EQU %00000010
DEF HW_CH3_RIGHT_ENABLE_MASK EQU %00000100
DEF HW_CH4_RIGHT_ENABLE_MASK EQU %00001000
; HW sound channel disable bit masks
DEF HW_CH1_DISABLE_MASK EQU (~HW_CH1_ENABLE_MASK & $ff)
DEF HW_CH2_DISABLE_MASK EQU (~HW_CH2_ENABLE_MASK & $ff)