aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordannye <33dannye@gmail.com>2022-07-15 06:15:56 -0500
committerdannye <33dannye@gmail.com>2022-07-15 06:15:56 -0500
commit395d563295fed59cd05cf2752059db6e147cce29 (patch)
tree75f0e54188cc04a2fa69d75c9415028950d28688
parentFix some hardcoded battle sfx ids (diff)
downloadpokeyellow-395d563295fed59cd05cf2752059db6e147cce29.tar.gz
pokeyellow-395d563295fed59cd05cf2752059db6e147cce29.tar.xz
pokeyellow-395d563295fed59cd05cf2752059db6e147cce29.zip
Fix mono/stereo channel enable masks
-rw-r--r--audio/engine_1.asm27
-rw-r--r--constants/audio_constants.asm10
2 files changed, 27 insertions, 10 deletions
diff --git a/audio/engine_1.asm b/audio/engine_1.asm
index 9fb0ef1e..8c9b2352 100644
--- a/audio/engine_1.asm
+++ b/audio/engine_1.asm
@@ -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"
diff --git a/constants/audio_constants.asm b/constants/audio_constants.asm
index 59900fec..1fbc2bc0 100644
--- a/constants/audio_constants.asm
+++ b/constants/audio_constants.asm
@@ -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)