@@ -7,17 +7,24 @@
#pragma once

#include <cstring>
#include <memory>
#include <string>
#include <vector>

#include "Common/Assert.h"
#include "Common/CommonTypes.h"
#include "Common/NandPaths.h"

namespace IOS::HLE::FS
{
class FileHandle;
class FileSystem;
}

class SysConf final
{
public:
explicit SysConf(Common::FromWhichRoot root_type);
explicit SysConf(std::shared_ptr<IOS::HLE::FS::FileSystem> fs);
~SysConf();

void Clear();
@@ -85,8 +92,8 @@ class SysConf final

private:
void InsertDefaultEntries();
bool LoadFromFile(const std::string& file_name);
bool LoadFromFile(const IOS::HLE::FS::FileHandle& file);

std::string m_file_name;
std::vector<Entry> m_entries;
std::shared_ptr<IOS::HLE::FS::FileSystem> m_fs;
};
@@ -11,10 +11,11 @@
#include "Common/Logging/Log.h"
#include "Common/NandPaths.h"
#include "Common/StringUtil.h"
#include "Common/SysConf.h"
#include "Core/ConfigManager.h"
#include "Core/IOS/IOS.h"
#include "Core/Movie.h"
#include "Core/NetPlayClient.h"
#include "Core/SysConf.h"

namespace Core
{
@@ -64,7 +65,7 @@ void InitializeWiiRoot(bool use_temporary)
WARN_LOG(IOS_FS, "Using temporary directory %s for minimal Wii FS", s_temp_wii_root.c_str());
File::SetUserPath(D_SESSION_WIIROOT_IDX, s_temp_wii_root);
// Generate a SYSCONF with default settings for the temporary Wii NAND.
SysConf sysconf{Common::FromWhichRoot::FROM_SESSION_ROOT};
SysConf sysconf{IOS::HLE::Kernel{}.GetFS()};
sysconf.Save();

InitializeDeterministicWiiSaves();
@@ -29,13 +29,13 @@
#include "Common/NandPaths.h"
#include "Common/StringUtil.h"
#include "Common/Swap.h"
#include "Common/SysConf.h"
#include "Core/CommonTitles.h"
#include "Core/ConfigManager.h"
#include "Core/IOS/Device.h"
#include "Core/IOS/ES/ES.h"
#include "Core/IOS/ES/Formats.h"
#include "Core/IOS/IOS.h"
#include "Core/SysConf.h"
#include "DiscIO/DiscExtractor.h"
#include "DiscIO/Enums.h"
#include "DiscIO/Filesystem.h"
@@ -136,7 +136,7 @@ bool InstallWAD(IOS::HLE::Kernel& ios, const DiscIO::WiiWAD& wad, InstallType in
}

// Delete a previous temporary title, if it exists.
SysConf sysconf{Common::FROM_SESSION_ROOT};
SysConf sysconf{ios.GetFS()};
SysConf::Entry* tid_entry = sysconf.GetOrAddEntry("IPL.TID", SysConf::Entry::Type::LongLong);
if (const u64 previous_temporary_title_id = Common::swap64(tid_entry->GetData<u64>(0)))
ios.GetES()->DeleteTitleContent(previous_temporary_title_id);
@@ -39,7 +39,6 @@
#include "Common/CommonTypes.h"
#include "Common/FileUtil.h"
#include "Common/StringUtil.h"
#include "Common/SysConf.h"
#include "Common/Thread.h"
#include "Core/Boot/Boot.h"
#include "Core/Config/NetplaySettings.h"
@@ -48,6 +47,7 @@
#include "Core/HW/DVD/DVDInterface.h"
#include "Core/HW/WiiSaveCrypted.h"
#include "Core/Movie.h"
#include "Core/SysConf.h"
#include "Core/TitleDatabase.h"
#include "Core/WiiUtils.h"
#include "DiscIO/Blob.h"
@@ -24,10 +24,10 @@

#include "Common/Assert.h"
#include "Common/FileUtil.h"
#include "Common/SysConf.h"
#include "Core/Config/SYSCONFSettings.h"
#include "Core/ConfigManager.h"
#include "Core/Core.h"
#include "Core/SysConf.h"
#include "DolphinWX/DolphinSlider.h"
#include "DolphinWX/Frame.h"
#include "DolphinWX/Main.h"