From f5ef060b21d0f235814113a834e7a97e7545b081 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9o=20Lam?= Date: Tue, 27 Jun 2017 15:44:17 +0200 Subject: [PATCH] Initialise WiiRoot once per emulation session This removes unnecessary initialisations which would cause issues in determinism mode. --- Source/Core/Core/HW/HW.cpp | 5 +++++ Source/Core/Core/IOS/IOS.cpp | 2 -- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/Source/Core/Core/HW/HW.cpp b/Source/Core/Core/HW/HW.cpp index 988bf977a9..5cf808ee3f 100644 --- a/Source/Core/Core/HW/HW.cpp +++ b/Source/Core/Core/HW/HW.cpp @@ -8,6 +8,7 @@ #include "Common/CommonTypes.h" #include "Core/ConfigManager.h" +#include "Core/Core.h" #include "Core/CoreTiming.h" #include "Core/HW/AudioInterface.h" #include "Core/HW/CPU.h" @@ -23,6 +24,7 @@ #include "Core/HW/WII_IPC.h" #include "Core/IOS/IOS.h" #include "Core/State.h" +#include "Core/WiiRoot.h" namespace HW { @@ -48,6 +50,8 @@ void Init() if (SConfig::GetInstance().bWii) { + // The NAND should only be initialised once per emulation session. + Core::InitializeWiiRoot(Core::WantsDeterminism()); IOS::Init(); IOS::HLE::Init(); // Depends on Memory } @@ -58,6 +62,7 @@ void Shutdown() // IOS should always be shut down regardless of bWii because it can be running in GC mode (MIOS). IOS::HLE::Shutdown(); // Depends on Memory IOS::Shutdown(); + Core::ShutdownWiiRoot(); SystemTimers::Shutdown(); CPU::Shutdown(); diff --git a/Source/Core/Core/IOS/IOS.cpp b/Source/Core/Core/IOS/IOS.cpp index d9d0e30453..6e43aaeabf 100644 --- a/Source/Core/Core/IOS/IOS.cpp +++ b/Source/Core/Core/IOS/IOS.cpp @@ -212,8 +212,6 @@ EmulationKernel::EmulationKernel(u64 title_id) : Kernel(title_id) if (!SetupMemory(title_id, MemorySetupType::IOSReload)) WARN_LOG(IOS, "No information about this IOS -- cannot set up memory values"); - Core::InitializeWiiRoot(Core::WantsDeterminism()); - if (title_id == Titles::MIOS) { MIOS::Load();