diff --git a/configure.py b/configure.py index 02885142..b77a5cfb 100644 --- a/configure.py +++ b/configure.py @@ -811,7 +811,7 @@ config.libs = [ Object(Matching, "jaudio_NES/internal/ja_calc.c", extra_cflags=["-sym off"]), Object(NonMatching, "jaudio_NES/internal/jammain_2.c", extra_cflags=["-sym on"]), Object(Matching, "jaudio_NES/internal/jamosc.c"), - Object(Equivalent, "jaudio_NES/internal/memory.c", extra_cflags=["-pragma \"scheduling 7400\""]), + Object(Matching, "jaudio_NES/internal/memory.c", extra_cflags=["-pragma \"scheduling 7400\""]), Object(Matching, "jaudio_NES/internal/midplay.c"), Object(Matching, "jaudio_NES/internal/noteon.c"), Object(Matching, "jaudio_NES/internal/oneshot.c"), diff --git a/src/static/jaudio_NES/internal/memory.c b/src/static/jaudio_NES/internal/memory.c index 1e24c840..c8a4b0cb 100644 --- a/src/static/jaudio_NES/internal/memory.c +++ b/src/static/jaudio_NES/internal/memory.c @@ -811,7 +811,7 @@ void Nas_SetBPFilter(s16* a, s32 b, s32 c) { Nas_SetLPFilter(a, b); return; } else if (b == 0) { - Nas_SetLPFilter(a, c); + Nas_SetHPFilter(a, c); return; } k = 0; @@ -975,19 +975,7 @@ void __Nas_MemoryReconfig() { (AG.audio_params.num_samples_per_frame_target / AG.audio_params.updates_per_frame) & ~7; /*0x2870*/ AG.audio_params.ai_sampling_frequency = AG.audio_params.sampling_frequency; OSReport("----------------------------- SFS_NORMAL = %d\n", AG.audio_params.num_samples_per_update); - /* - order is - 287c - 287e - 2884 - 2898 - 289c - 28b8 - 2888 - 2880 - 288c - 2890 - */ + /*0x287C*/ AG.audio_params.num_samples_per_update_max = AG.audio_params.num_samples_per_update + 8; /*0x287E*/ AG.audio_params.num_samples_per_update_min = AG.audio_params.num_samples_per_update - 8; /*0x2884*/ AG.audio_params.resample_rate = 33476.156f / (s32)AG.audio_params.sampling_frequency; @@ -1005,24 +993,28 @@ void __Nas_MemoryReconfig() { } /*0x2A18*/ AG.num_abi_cmds_max = 8; - /*0x0002*/ AG._0002 = spec->_14; + /*0x0002*/ AG._0002 = (s16)spec->_14; - s32 tmp = AG.audio_params.updates_per_frame; - /*0x28BC*/ AG.max_tempo = ((((60.0f * 1000.0f * AUDIO_TATUMS_PER_BEAT) * tmp) / AGC.timeBase) / AG._29D8) / 1.04613; + /*0x28BC*/ AG.max_tempo = (int)(((((60.0f * 1000.0f * AUDIO_TATUMS_PER_BEAT) * (s16)AG.audio_params.updates_per_frame) / AGC.timeBase) / AG._29D8) / 1.04613); - /*0x2894*/ AG.sample_to_update_delay_scale = (f32)AG.refresh_rate * (f32)tmp / AG.audio_params.ai_sampling_frequency / AG.max_tempo; + /*0x2894*/ AG.sample_to_update_delay_scale = (f32)AG.refresh_rate * (f32)AG.audio_params.updates_per_frame / AG.audio_params.ai_sampling_frequency / (s16)AG.max_tempo; - /*0x286C*/ AG.audio_params.spec = spec->_04; /*0x2894*/ AG.sample_to_update_delay_scale = AG.refresh_rate; - /*0x2894*/ AG.sample_to_update_delay_scale *= tmp; + /*0x2894*/ AG.sample_to_update_delay_scale *= AG.audio_params.updates_per_frame; /*0x2894*/ AG.sample_to_update_delay_scale /= AG.audio_params.ai_sampling_frequency; - /*0x2894*/ AG.sample_to_update_delay_scale /= AG.max_tempo; - /*0x2876*/ AG.audio_params.num_samples_per_frame_min *= AG.audio_params.spec; - /*0x2878*/ AG.audio_params.updates_per_frame *= AG.audio_params.spec; - /*0x2872*/ AG.audio_params.num_samples_per_frame_target *= AG.audio_params.spec; - /*0x2874*/ AG.audio_params.num_samples_per_frame_max *= AG.audio_params.spec; + /*0x2894*/ AG.sample_to_update_delay_scale /= (s16)AG.max_tempo; - if (AG.audio_params.spec > 1) { + (void)(f32)AG.refresh_rate; + (void)(f32)AG.audio_params.updates_per_frame; + (void)(f32)AG.audio_params.ai_sampling_frequency; + + /*0x286C*/ AG.audio_params.spec = (s16)spec->_04; + /*0x2872*/ AG.audio_params.num_samples_per_frame_target *= (s16)AG.audio_params.spec; + /*0x2874*/ AG.audio_params.num_samples_per_frame_max *= (s16)AG.audio_params.spec; + /*0x2876*/ AG.audio_params.num_samples_per_frame_min *= (s16)AG.audio_params.spec; + /*0x2878*/ AG.audio_params.updates_per_frame *= (s16)AG.audio_params.spec; + + if ((s16)AG.audio_params.spec > 1) { /*0x2874*/ AG.audio_params.num_samples_per_frame_max -= 0x10; } // int c = (a + b);