mirror of
https://github.com/WinampDesktop/winamp.git
synced 2025-06-14 15:45:47 -04:00
System: Refactor main loop
Reduces JIT exits. Improves runahead performance.
This commit is contained in:
@ -95,10 +95,10 @@ bool RegTestHost::InitializeConfig()
|
||||
si.SetStringValue("MemoryCards", "Card2Type", Settings::GetMemoryCardTypeName(MemoryCardType::None));
|
||||
si.SetStringValue("ControllerPorts", "MultitapMode", Settings::GetMultitapModeName(MultitapMode::Disabled));
|
||||
si.SetStringValue("Audio", "Backend", Settings::GetAudioBackendName(AudioBackend::Null));
|
||||
si.SetStringValue("Logging", "LogLevel", Settings::GetLogLevelName(LOGLEVEL_VERBOSE));
|
||||
si.SetBoolValue("Logging", "LogToConsole", true);
|
||||
si.SetBoolValue("Main", "ApplyGameSettings", false); // don't want game settings interfering
|
||||
si.SetBoolValue("BIOS", "PatchFastBoot", true); // no point validating the bios intro..
|
||||
si.SetFloatValue("Main", "EmulationSpeed", 0.0f);
|
||||
|
||||
// disable all sources
|
||||
for (u32 i = 0; i < static_cast<u32>(InputSourceType::Count); i++)
|
||||
@ -251,7 +251,9 @@ void Host::OnGameChanged(const std::string& disc_path, const std::string& game_s
|
||||
|
||||
void Host::PumpMessagesOnCPUThread()
|
||||
{
|
||||
//
|
||||
s_frames_to_run--;
|
||||
if (s_frames_to_run == 0)
|
||||
System::ShutdownSystem(false);
|
||||
}
|
||||
|
||||
void Host::RunOnCPUThread(std::function<void()> function, bool block /* = false */)
|
||||
@ -496,6 +498,7 @@ bool RegTestHost::ParseCommandLineParameters(int argc, char* argv[], std::option
|
||||
}
|
||||
|
||||
Log::SetConsoleOutputParams(true, nullptr, level.value());
|
||||
s_base_settings_interface->SetStringValue("Logging", "LogLevel", Settings::GetLogLevelName(level.value()));
|
||||
continue;
|
||||
}
|
||||
else if (CHECK_ARG_PARAM("-renderer"))
|
||||
@ -577,16 +580,7 @@ int main(int argc, char* argv[])
|
||||
}
|
||||
|
||||
Log_InfoPrintf("Running for %d frames...", s_frames_to_run);
|
||||
|
||||
for (u32 frame = 0; frame < s_frames_to_run; frame++)
|
||||
{
|
||||
System::RunFrame();
|
||||
Host::RenderDisplay(false);
|
||||
System::UpdatePerformanceCounters();
|
||||
}
|
||||
|
||||
Log_InfoPrintf("All done, shutting down system.");
|
||||
System::ShutdownSystem(false);
|
||||
System::Execute();
|
||||
|
||||
Log_InfoPrintf("Exiting with success.");
|
||||
result = 0;
|
||||
|
Reference in New Issue
Block a user