summaryrefslogtreecommitdiff
path: root/Source/Core
diff options
context:
space:
mode:
authorLéo Lam <leo@innovatetechnologi.es>2017-05-01 11:10:08 +0200
committerLéo Lam <leo@innovatetechnologi.es>2017-05-01 11:32:27 +0200
commit3be987be40bab4df9d34213c6ad98bd768436005 (patch)
tree9bbe5865f6a0d38ee6f0e6a1ab6b009255910481 /Source/Core
parent1bad3bef4b5d5acf9cb2e3d1d0845dc0204849d3 (diff)
IOS/ES: Extend the "fake IOSes" hack to netplay/TAS
Netplay uses a blank NAND, which means that homebrew launchers like Gecko will force users to install IOSes. Expecting netplay users to have a proper NAND setup is unrealistic, and we don't actually give them a good way of syncing NANDs, so let's extend the hack to netplay/TAS until we have a better way of dealing with the issue.
Diffstat (limited to 'Source/Core')
-rw-r--r--Source/Core/Core/IOS/ES/Views.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/Source/Core/Core/IOS/ES/Views.cpp b/Source/Core/Core/IOS/ES/Views.cpp
index 8f06bc8973..639ca81110 100644
--- a/Source/Core/Core/IOS/ES/Views.cpp
+++ b/Source/Core/Core/IOS/ES/Views.cpp
@@ -12,6 +12,7 @@
#include "Common/Logging/Log.h"
#include "Common/NandPaths.h"
#include "Core/ConfigManager.h"
+#include "Core/Core.h"
#include "Core/HW/Memmap.h"
#include "Core/IOS/ES/Formats.h"
#include "Core/IOS/ES/NandUtils.h"
@@ -25,14 +26,18 @@ namespace Device
{
// HACK: Since we do not want to require users to install disc updates when launching
// Wii games from the game list (which is the inaccurate game boot path anyway),
-// IOSes have to be faked for games which reload IOS to work properly.
+// or in TAS/netplay (because forcing every user to have a proper NAND setup in those cases
+// is unrealistic), IOSes have to be faked for games and homebrew that reload IOS
+// such as Gecko to work properly.
+//
// To minimize the effect of this hack, we should only do this for disc titles
// booted from the game list, though.
static bool ShouldReturnFakeViewsForIOSes(u64 title_id, const TitleContext& context)
{
const bool ios = IsTitleType(title_id, IOS::ES::TitleType::System) && title_id != TITLEID_SYSMENU;
const bool disc_title = context.active && IOS::ES::IsDiscTitle(context.tmd.GetTitleId());
- return ios && SConfig::GetInstance().m_BootType == SConfig::BOOT_ISO && disc_title;
+ return Core::WantsDeterminism() ||
+ (ios && SConfig::GetInstance().m_BootType == SConfig::BOOT_ISO && disc_title);
}
IPCCommandResult ES::GetTicketViewCount(const IOCtlVRequest& request)