mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-01-27 06:35:39 +00:00
Add an INI option to not loop FIFO playback and stop emulation when it's done
This commit is contained in:
parent
205ebbebbb
commit
5c3dcc50bc
@ -276,6 +276,9 @@ void SConfig::SaveSettings()
|
||||
ini.Set("DSP", "Backend", sBackend);
|
||||
ini.Set("DSP", "Volume", m_Volume);
|
||||
|
||||
// Fifo Player
|
||||
ini.Set("FifoPlayer", "LoopReplay", m_LocalCoreStartupParameter.bLoopFifoReplay);
|
||||
|
||||
ini.Save(File::GetUserPath(F_DOLPHINCONFIG_IDX));
|
||||
m_SYSCONF->Save();
|
||||
}
|
||||
@ -448,6 +451,8 @@ void SConfig::LoadSettings()
|
||||
ini.Get("DSP", "Backend", &sBackend, BACKEND_NULLSOUND);
|
||||
#endif
|
||||
ini.Get("DSP", "Volume", &m_Volume, 100);
|
||||
|
||||
ini.Get("FifoPlayer", "LoopReplay", &m_LocalCoreStartupParameter.bLoopFifoReplay, true);
|
||||
}
|
||||
|
||||
m_SYSCONF = new SysConf();
|
||||
|
@ -47,7 +47,8 @@ SCoreStartupParameter::SCoreStartupParameter()
|
||||
bRenderWindowAutoSize(false), bKeepWindowOnTop(false),
|
||||
bFullscreen(false), bRenderToMain(false),
|
||||
bProgressive(false), bDisableScreenSaver(false),
|
||||
iPosX(100), iPosY(100), iWidth(800), iHeight(600)
|
||||
iPosX(100), iPosY(100), iWidth(800), iHeight(600),
|
||||
bLoopFifoReplay(true)
|
||||
{
|
||||
LoadDefaults();
|
||||
}
|
||||
@ -84,6 +85,8 @@ void SCoreStartupParameter::LoadDefaults()
|
||||
iWidth = 800;
|
||||
iHeight = 600;
|
||||
|
||||
bLoopFifoReplay = true;
|
||||
|
||||
bJITOff = false; // debugger only settings
|
||||
bJITLoadStoreOff = false;
|
||||
bJITLoadStoreFloatingOff = false;
|
||||
|
@ -162,6 +162,9 @@ struct SCoreStartupParameter
|
||||
|
||||
int iPosX, iPosY, iWidth, iHeight;
|
||||
|
||||
// Fifo Player related settings
|
||||
bool bLoopFifoReplay;
|
||||
|
||||
enum EBootBS2
|
||||
{
|
||||
BOOT_DEFAULT,
|
||||
|
@ -6,7 +6,10 @@
|
||||
#include "FifoPlayer.h"
|
||||
|
||||
#include "Common.h"
|
||||
#include "ConfigManager.h"
|
||||
#include "Core.h"
|
||||
#include "CoreTiming.h"
|
||||
#include "Host.h"
|
||||
|
||||
#include "HW/GPFifo.h"
|
||||
#include "HW/Memmap.h"
|
||||
@ -68,10 +71,18 @@ bool FifoPlayer::Play()
|
||||
{
|
||||
if (m_CurrentFrame >= m_FrameRangeEnd)
|
||||
{
|
||||
m_CurrentFrame = m_FrameRangeStart;
|
||||
if (m_Loop)
|
||||
{
|
||||
m_CurrentFrame = m_FrameRangeStart;
|
||||
|
||||
CoreTiming::downcount = 0;
|
||||
CoreTiming::Advance();
|
||||
CoreTiming::downcount = 0;
|
||||
CoreTiming::Advance();
|
||||
}
|
||||
else
|
||||
{
|
||||
PowerPC::Stop();
|
||||
Host_Message(WM_USER_STOP);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -150,6 +161,7 @@ FifoPlayer::FifoPlayer() :
|
||||
m_FrameWrittenCb(NULL),
|
||||
m_File(NULL)
|
||||
{
|
||||
m_Loop = SConfig::GetInstance().m_LocalCoreStartupParameter.bLoopFifoReplay;
|
||||
}
|
||||
|
||||
void FifoPlayer::WriteFrame(const FifoFrameInfo &frame, const AnalyzedFrameInfo &info)
|
||||
|
@ -86,6 +86,8 @@ private:
|
||||
|
||||
bool ShouldLoadBP(u8 address);
|
||||
|
||||
bool m_Loop;
|
||||
|
||||
u32 m_CurrentFrame;
|
||||
u32 m_FrameRangeStart;
|
||||
u32 m_FrameRangeEnd;
|
||||
|
Loading…
x
Reference in New Issue
Block a user