diff --git a/libn3ds/source/arm11/drivers/codec.c b/libn3ds/source/arm11/drivers/codec.c index 14266f1..9081982 100644 --- a/libn3ds/source/arm11/drivers/codec.c +++ b/libn3ds/source/arm11/drivers/codec.c @@ -762,11 +762,12 @@ bool CODEC_getRawAdcData(CdcAdcData *data) void CODEC_soundSwitchOutput(void) { static u8 headset = 0; - u8 state = readReg(CDC_REG_100_44) & 3u; + u8 state = readReg(CDC_REG_100_44) & 1u; if( state != headset ) { headset = state; - if( headset ) maskReg( CDC_REG_HEADSET_SEL, HEADSET_SEL_HP, 0xff); - else maskReg( CDC_REG_HEADSET_SEL, HEADSET_SEL_SP, 0xff); + // see: forceAudioOutput@Luma3DS/sysmodules/rosalina/source/shell.c + if( headset ) maskReg( CDC_REG_HEADSET_SEL, 0x30, 0xff); + else maskReg( CDC_REG_HEADSET_SEL, 0x20, 0xff); } -} \ No newline at end of file +}