From d9e921cc2c18063640611a2a705ee6e8a73ab0be Mon Sep 17 00:00:00 2001 From: booto Date: Thu, 31 Dec 2015 05:29:43 +0800 Subject: [PATCH] VI: set the JP bit of VI's DTV reg when needed The "Force NTSC-J" option was broken by 480dbb22f2cfddf7fa989f3a68fbfec075b3a1b4 (i.e. field-timing). A side effect of this was that it exposed a bug where the JP region bit of VI's DTV reg was not automatically set for wads from the JP region. --- Source/Core/Core/Boot/Boot_WiiWAD.cpp | 7 ++++++- Source/Core/Core/HW/VideoInterface.cpp | 1 + 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/Source/Core/Core/Boot/Boot_WiiWAD.cpp b/Source/Core/Core/Boot/Boot_WiiWAD.cpp index 3ae57817e2..00bca2eb97 100644 --- a/Source/Core/Core/Boot/Boot_WiiWAD.cpp +++ b/Source/Core/Core/Boot/Boot_WiiWAD.cpp @@ -15,6 +15,7 @@ #include "Core/Boot/Boot_DOL.h" #include "Core/HLE/HLE.h" #include "Core/HW/Memmap.h" +#include "Core/HW/VideoInterface.h" #include "Core/IPC_HLE/WII_IPC_HLE.h" #include "Core/IPC_HLE/WII_IPC_HLE_Device_FileIO.h" #include "Core/PowerPC/PowerPC.h" @@ -88,7 +89,11 @@ bool CBoot::Boot_WiiWAD(const std::string& _pFilename) // setup Wii memory if (!SetupWiiMemory(ContentLoader.GetCountry())) return false; - + // this sets a bit that is used to detect NTSC-J + if (ContentLoader.GetCountry() == DiscIO::IVolume::COUNTRY_JAPAN) + { + VideoInterface::SetRegionReg('J'); + } // DOL const DiscIO::SNANDContent* pContent = ContentLoader.GetContentByIndex(ContentLoader.GetBootIndex()); if (pContent == nullptr) diff --git a/Source/Core/Core/HW/VideoInterface.cpp b/Source/Core/Core/HW/VideoInterface.cpp index 533a2e166e..19ebe24044 100644 --- a/Source/Core/Core/HW/VideoInterface.cpp +++ b/Source/Core/Core/HW/VideoInterface.cpp @@ -154,6 +154,7 @@ void Preset(bool _bNTSC) // Say component cable is plugged m_DTVStatus.component_plugged = SConfig::GetInstance().bProgressive; + m_DTVStatus.ntsc_j = SConfig::GetInstance().bForceNTSCJ; s_ticks_last_line_start = 0; s_half_line_count = 1;