Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Merge pull request #667 from RachelBryk/remove-audio-limit
Remove audio frame limit.
  • Loading branch information
neobrain committed Jul 28, 2014
2 parents 3554a15 + acaac51 commit 9c7d4b6
Show file tree
Hide file tree
Showing 7 changed files with 5 additions and 30 deletions.
1 change: 0 additions & 1 deletion Source/Core/AudioCommon/AudioCommon.cpp
Expand Up @@ -152,7 +152,6 @@ namespace AudioCommon
{
if (soundStream)
{
soundStream->GetMixer()->SetThrottle(SConfig::GetInstance().m_Framelimit == 2);
soundStream->SetVolume(SConfig::GetInstance().m_Volume);
}
}
Expand Down
17 changes: 1 addition & 16 deletions Source/Core/AudioCommon/Mixer.cpp
Expand Up @@ -46,7 +46,7 @@ unsigned int CMixer::MixerFifo::Mix(short* samples, unsigned int numSamples, boo

u32 framelimit = SConfig::GetInstance().m_Framelimit;
float aid_sample_rate = m_input_sample_rate + offset;
if (consider_framelimit && framelimit > 2)
if (consider_framelimit && framelimit > 1)
{
aid_sample_rate = aid_sample_rate * (framelimit - 1) * 5 / VideoInterface::TargetRefreshRate;
}
Expand Down Expand Up @@ -132,21 +132,6 @@ void CMixer::MixerFifo::PushSamples(const short *samples, unsigned int num_sampl
// needs to get updates to not deadlock.
u32 indexW = Common::AtomicLoad(m_indexW);

if (m_mixer->m_throttle)
{
// The auto throttle function. This loop will put a ceiling on the CPU MHz.
while (num_samples * 2 + ((indexW - Common::AtomicLoad(m_indexR)) & INDEX_MASK) >= MAX_SAMPLES * 2)
{
if (*PowerPC::GetStatePtr() != PowerPC::CPU_RUNNING || soundStream->IsMuted())
break;
// Shortcut key for Throttle Skipping
if (Core::GetIsFramelimiterTempDisabled())
break;
SLEEP(1);
soundStream->Update();
}
}

// Check if we have enough free space
// indexW == m_indexR results in empty buffer, so indexR must always be smaller than indexW
if (num_samples * 2 + ((indexW - Common::AtomicLoad(m_indexR)) & INDEX_MASK) >= MAX_SAMPLES * 2)
Expand Down
6 changes: 0 additions & 6 deletions Source/Core/AudioCommon/Mixer.h
Expand Up @@ -26,7 +26,6 @@ class CMixer {
, m_streaming_mixer(this, 48000)
, m_sampleRate(BackendSampleRate)
, m_logAudio(0)
, m_throttle(false)
, m_speed(0)
{
INFO_LOG(AUDIO_INTERFACE, "Mixer is initialized");
Expand All @@ -46,9 +45,6 @@ class CMixer {
void SetStreamInputSampleRate(unsigned int rate);
void SetStreamingVolume(unsigned int lvolume, unsigned int rvolume);

void SetThrottle(bool use) { m_throttle = use;}


virtual void StartLogAudio(const std::string& filename)
{
if (! m_logAudio)
Expand Down Expand Up @@ -122,8 +118,6 @@ class CMixer {

bool m_logAudio;

bool m_throttle;

std::mutex m_csMixing;

volatile float m_speed; // Current rate of the emulation (1.0 = 100% speed)
Expand Down
2 changes: 1 addition & 1 deletion Source/Core/Core/Core.cpp
Expand Up @@ -630,7 +630,7 @@ void VideoThrottle()
bool ShouldSkipFrame(int skipped)
{
const u32 TargetFPS = (SConfig::GetInstance().m_Framelimit > 1)
? SConfig::GetInstance().m_Framelimit * 5
? (SConfig::GetInstance().m_Framelimit - 1) * 5
: VideoInterface::TargetRefreshRate;
const u32 frames = Common::AtomicLoad(DrawnFrame);
const bool fps_slow = !(Timer.GetTimeDifference() < (frames + skipped) * 1000 / TargetFPS);
Expand Down
4 changes: 2 additions & 2 deletions Source/Core/Core/HW/SystemTimers.cpp
Expand Up @@ -219,9 +219,9 @@ static void ThrottleCallback(u64 last_time, int cyclesLate)

int diff = (u32)last_time - time;
const SConfig& config = SConfig::GetInstance();
bool frame_limiter = config.m_Framelimit && config.m_Framelimit != 2 && !Core::GetIsFramelimiterTempDisabled();
bool frame_limiter = config.m_Framelimit && !Core::GetIsFramelimiterTempDisabled();
u32 next_event = GetTicksPerSecond()/1000;
if (SConfig::GetInstance().m_Framelimit > 2)
if (SConfig::GetInstance().m_Framelimit > 1)
{
next_event = next_event * (SConfig::GetInstance().m_Framelimit - 1) * 5 / VideoInterface::TargetRefreshRate;
}
Expand Down
4 changes: 1 addition & 3 deletions Source/Core/DolphinWX/ConfigMain.cpp
Expand Up @@ -264,8 +264,7 @@ void CConfigMain::InitializeGUILists()
// Framelimit
arrayStringFor_Framelimit.Add(_("Off"));
arrayStringFor_Framelimit.Add(_("Auto"));
arrayStringFor_Framelimit.Add(_("Audio"));
for (int i = 10; i <= 120; i += 5) // from 10 to 120
for (int i = 5; i <= 120; i += 5) // from 5 to 120
arrayStringFor_Framelimit.Add(wxString::Format("%i", i));

// Emulator Engine
Expand Down Expand Up @@ -898,7 +897,6 @@ void CConfigMain::CoreSettingsChanged(wxCommandEvent& event)
break;
case ID_FRAMELIMIT:
SConfig::GetInstance().m_Framelimit = Framelimit->GetSelection();
AudioCommon::UpdateSoundStream();
break;
// Core - Advanced
case ID_CPUENGINE:
Expand Down
1 change: 0 additions & 1 deletion Source/Core/DolphinWX/NetWindow.cpp
Expand Up @@ -134,7 +134,6 @@ NetPlaySetupDiag::NetPlaySetupDiag(wxWindow* const parent, const CGameListCtrl*
" - Enable Dual Core [OFF]\n"
" - DSP Emulator Engine Must be the same on all computers!\n"
" - DSP on Dedicated Thread [OFF]\n"
" - Framelimit NOT set to [Audio]\n"
" - Manually set the extensions for each wiimote\n"
"\n"
"All players should use the same Dolphin version and settings.\n"
Expand Down

0 comments on commit 9c7d4b6

Please sign in to comment.