summaryrefslogtreecommitdiff
path: root/Source
diff options
context:
space:
mode:
authorPierre Bourdon <delroth@gmail.com>2016-03-14 01:42:37 +0100
committerPierre Bourdon <delroth@gmail.com>2016-03-14 01:42:37 +0100
commitf0e25b84777fa1090ff53d0844a982bb44a83435 (patch)
treeb86c390081c5b8c6c745c7b3d12074fc3563610d /Source
parent53815961fdf4b805a26a3872f51455485ea3c733 (diff)
parentb1c8198cecbd3aeeccdd5096049f3a453ba411dd (diff)
Merge pull request #3668 from RisingFog/wii_movie_sysconf
Apply Wii Settings on Movie Recording/Playback
Diffstat (limited to 'Source')
-rw-r--r--Source/Core/Common/SysConf.cpp9
-rw-r--r--Source/Core/Core/Movie.cpp9
-rw-r--r--Source/Core/Core/Movie.h4
3 files changed, 21 insertions, 1 deletions
diff --git a/Source/Core/Common/SysConf.cpp b/Source/Core/Common/SysConf.cpp
index 23a49412c8..a50efeb71b 100644
--- a/Source/Core/Common/SysConf.cpp
+++ b/Source/Core/Common/SysConf.cpp
@@ -15,6 +15,8 @@
#include "Common/SysConf.h"
#include "Common/Logging/Log.h"
+#include "Core/Movie.h"
+
SysConf::SysConf()
: m_IsValid(false)
{
@@ -74,6 +76,13 @@ bool SysConf::LoadFromFile(const std::string& filename)
{
m_Filename = filename;
m_IsValid = true;
+ // Apply Wii settings from normal SYSCONF on Movie recording/playback
+ if (Movie::IsRecordingInput() || Movie::IsPlayingInput())
+ {
+ SetData("IPL.LNG", Movie::GetLanguage());
+ SetData("IPL.E60", Movie::IsPAL60());
+ SetData("IPL.PGS", Movie::IsProgressive());
+ }
return true;
}
}
diff --git a/Source/Core/Core/Movie.cpp b/Source/Core/Core/Movie.cpp
index 91ace55535..825d15e4ce 100644
--- a/Source/Core/Core/Movie.cpp
+++ b/Source/Core/Core/Movie.cpp
@@ -80,6 +80,7 @@ static u8 s_bongos, s_memcards;
static u8 s_revision[20];
static u32 s_DSPiromHash = 0;
static u32 s_DSPcoefHash = 0;
+static u8 s_language = 10; //Set to unknown until language is known
static bool s_bRecordingFromSaveState = false;
static bool s_bPolled = false;
@@ -385,6 +386,11 @@ int GetCPUMode()
return s_iCPUCore;
}
+u8 GetLanguage()
+{
+ return s_language;
+}
+
bool IsStartingFromClearSave()
{
return g_bClearSave;
@@ -810,6 +816,7 @@ void ReadHeader()
s_bongos = tmpHeader.bongos;
s_bSyncGPU = tmpHeader.bSyncGPU;
s_bNetPlay = tmpHeader.bNetPlay;
+ s_language = tmpHeader.language;
memcpy(s_revision, tmpHeader.revision, ArraySize(s_revision));
}
else
@@ -1254,6 +1261,7 @@ void SaveRecording(const std::string& filename)
header.DSPiromHash = s_DSPiromHash;
header.DSPcoefHash = s_DSPcoefHash;
header.tickCount = s_totalTickCount;
+ header.language = s_language;
// TODO
header.uniqueID = 0;
@@ -1317,6 +1325,7 @@ void GetSettings()
s_bSyncGPU = SConfig::GetInstance().bSyncGPU;
s_iCPUCore = SConfig::GetInstance().iCPUCore;
s_bNetPlay = NetPlay::IsNetPlayRunning();
+ s_language = SConfig::GetInstance().m_SYSCONF->GetData<u8>("IPL.LNG");
if (!SConfig::GetInstance().bWii)
g_bClearSave = !File::Exists(SConfig::GetInstance().m_strMemoryCardA);
s_memcards |= (SConfig::GetInstance().m_EXIDevice[0] == EXIDEVICE_MEMORYCARD) << 0;
diff --git a/Source/Core/Core/Movie.h b/Source/Core/Core/Movie.h
index c7fe7e630c..7fa19d22f5 100644
--- a/Source/Core/Core/Movie.h
+++ b/Source/Core/Core/Movie.h
@@ -102,7 +102,8 @@ struct DTMHeader
bool bSyncGPU;
bool bNetPlay;
bool bPAL60;
- u8 reserved[12]; // Padding for any new config options
+ u8 language;
+ u8 reserved[11]; // Padding for any new config options
u8 discChange[40]; // Name of iso file to switch to, for two disc games.
u8 revision[20]; // Git hash
u32 DSPiromHash;
@@ -137,6 +138,7 @@ bool IsSkipIdle();
bool IsDSPHLE();
bool IsFastDiscSpeed();
int GetCPUMode();
+u8 GetLanguage();
bool IsStartingFromClearSave();
bool IsUsingMemcard(int memcard);
bool IsSyncGPU();