From 55923bf8d8583b1209611d5a4fe9a6e8603b4fc2 Mon Sep 17 00:00:00 2001 From: Cuyler36 Date: Mon, 3 Nov 2025 11:25:51 -0500 Subject: [PATCH] jaudio_NES/driver: match Nas_Synth_Envelope --- configure.py | 2 +- src/static/jaudio_NES/internal/driver.c | 17 ++++++++--------- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/configure.py b/configure.py index 7c680628..583a0ab6 100644 --- a/configure.py +++ b/configure.py @@ -797,7 +797,7 @@ config.libs = [ Object(Matching, "jaudio_NES/internal/channel.c"), Object(Matching, "jaudio_NES/internal/cmdstack.c"), Object(Matching, "jaudio_NES/internal/connect.c"), - Object(NonMatching, "jaudio_NES/internal/driver.c"), + Object(NonMatching, "jaudio_NES/internal/driver.c", extra_cflags=["-vector on"]), Object(Matching, "jaudio_NES/internal/driverinterface.c"), Object(Matching, "jaudio_NES/internal/dsp_cardunlock.c"), Object(Matching, "jaudio_NES/internal/dsp_GBAKey.c"), diff --git a/src/static/jaudio_NES/internal/driver.c b/src/static/jaudio_NES/internal/driver.c index 76ad93fd..1006ce5d 100644 --- a/src/static/jaudio_NES/internal/driver.c +++ b/src/static/jaudio_NES/internal/driver.c @@ -1248,7 +1248,7 @@ codec_continue_and_skip: Acmd* Nas_DolbySurround(Acmd* cmd, commonch* common, driverch* driver, s32 num_samples_per_update, s32 haas_dmem, s32 flags) { s32 size; - s32 wetGain; + u16 wetGain; u16 dryGain; s64 dmem = DMEM_SURROUND_TEMP; f32 decayGain; @@ -1266,16 +1266,15 @@ Acmd* Nas_DolbySurround(Acmd* cmd, commonch* common, driverch* driver, s32 num_s aLoadBuffer2(cmd++, driver->synth_params->surround_effect_state, dmem, sizeof(driver->synth_params->surround_effect_state)); aMix(cmd++, size >> 4, dryGain, dmem, DMEM_LEFT_CH); - aMix(cmd++, size >> 4, (dryGain ^ 0xFFFF), dmem, DMEM_RIGHT_CH); + aMix(cmd++, size >> 4, (u16)(dryGain ^ 0xFFFF), dmem, DMEM_RIGHT_CH); aMix(cmd++, size >> 4, wetGain, dmem, DMEM_WET_LEFT_CH); aMix(cmd++, size >> 4, (wetGain ^ 0xFFFF), dmem, DMEM_WET_RIGHT_CH); } - aSaveBuffer2(cmd++, DMEM_SURROUND_TEMP + size, driver->synth_params->surround_effect_state, sizeof(driver->synth_params->surround_effect_state)); - - decayGain = (common->target_volume_left + common->target_volume_right) / 8192.0f; // 1.0f / 0x2000 - + aSaveBuffer2(cmd++, driver->synth_params->surround_effect_state, DMEM_SURROUND_TEMP + size, sizeof(driver->synth_params->surround_effect_state)); + + decayGain = (common->target_volume_left + common->target_volume_right) / 8192.0f; if (decayGain > 1.0f) { decayGain = 1.0f; } @@ -1321,7 +1320,7 @@ extern Acmd* Nas_Synth_Envelope(Acmd* cmd, commonch* common, driverch* driver, s targetVolLeft = common->target_volume_left << 4; targetVolRight = common->target_volume_right << 4; - if ((AG.sound_mode == SOUND_OUTPUT_DOLBY_SURROUND)) { + if (AG.sound_mode == SOUND_OUTPUT_DOLBY_SURROUND) { u8 idx = common->surround_effect_idx; if (idx != 0xFF) { @@ -1377,8 +1376,8 @@ extern Acmd* Nas_Synth_Envelope(Acmd* cmd, commonch* common, driverch* driver, s break; } } else { - curReverbVol = curReverbVolAndFlags & 0x7F; - aSetEnvParam(cmd++, curReverbVol * 2, rampReverb, rampLeft, rampRight); + targetReverbVol = ((curReverbVolAndFlags & 0x7F) << 1); + aSetEnvParam(cmd++, targetReverbVol, rampReverb, rampLeft, rampRight); aSetEnvParam2(cmd++, curVolLeft, curVolRight); dmemDests = Env_Data_L3; }