From 4a74249236a6746e4308bd604c3fbd01741082d4 Mon Sep 17 00:00:00 2001 From: goyuken Date: Sat, 4 May 2013 01:32:33 +0000 Subject: [PATCH] n64: remove a few minor hacks in n64.cs that were due to previous minor hacks of mine and are obselete now that the first frame problem is resolved --- .../Consoles/Nintendo/N64/N64.cs | 33 ++++++++----------- 1 file changed, 14 insertions(+), 19 deletions(-) diff --git a/BizHawk.Emulation/Consoles/Nintendo/N64/N64.cs b/BizHawk.Emulation/Consoles/Nintendo/N64/N64.cs index a302aebea6..59e5353eca 100644 --- a/BizHawk.Emulation/Consoles/Nintendo/N64/N64.cs +++ b/BizHawk.Emulation/Consoles/Nintendo/N64/N64.cs @@ -372,26 +372,22 @@ namespace BizHawk.Emulation.Consoles.Nintendo.N64 VICallback m64pVICallback; public void FrameComplete() { - if (resampler != null) + uint s = (uint)AudGetAudioRate(); + if (s != m64pSamplingRate) { - // the way i've fubared up the core, a first framecomplete callback happens in init, before everything is set up - uint s = (uint)AudGetAudioRate(); - if (s != m64pSamplingRate) - { - m64pSamplingRate = s; - resampler.ChangeRate(s, 44100, s, 44100); - //Console.WriteLine("N64 ARate Change {0}", s); - } + m64pSamplingRate = s; + resampler.ChangeRate(s, 44100, s, 44100); + //Console.WriteLine("N64 ARate Change {0}", s); + } - int m64pAudioBufferSize = AudGetBufferSize(); - if (m64pAudioBuffer.Length < m64pAudioBufferSize) - m64pAudioBuffer = new short[m64pAudioBufferSize]; + int m64pAudioBufferSize = AudGetBufferSize(); + if (m64pAudioBuffer.Length < m64pAudioBufferSize) + m64pAudioBuffer = new short[m64pAudioBufferSize]; - if (m64pAudioBufferSize > 0) - { - AudReadAudioBuffer(m64pAudioBuffer); - resampler.EnqueueSamples(m64pAudioBuffer, m64pAudioBufferSize / 2); - } + if (m64pAudioBufferSize > 0) + { + AudReadAudioBuffer(m64pAudioBuffer); + resampler.EnqueueSamples(m64pAudioBuffer, m64pAudioBufferSize / 2); } m64pFrameComplete.Set(); } @@ -514,8 +510,7 @@ namespace BizHawk.Emulation.Consoles.Nintendo.N64 //m64pFrameComplete.WaitOne(); m64pStartupComplete.WaitOne(); - // because of when we're doing this, we can't call this yet - m64pSamplingRate = 32000; // (uint)AudGetAudioRate(); + m64pSamplingRate = (uint)AudGetAudioRate(); resampler = new Sound.Utilities.SpeexResampler(6, m64pSamplingRate, 44100, m64pSamplingRate, 44100, null, null); //Console.WriteLine("N64 Initial ARate {0}", m64pSamplingRate);