summaryrefslogtreecommitdiff
path: root/Source/Core
diff options
context:
space:
mode:
authorTilka <tilkax@gmail.com>2024-09-29 14:40:43 +0100
committerGitHub <noreply@github.com>2024-09-29 14:40:43 +0100
commitc7cbac538ab22b00c8b20d329fb02141430751bd (patch)
tree147f437434b7d3d8a7b2ac6e22a974b57e1c34ff /Source/Core
parent5b40a7ed17e409ae3be2650497092348dd363b13 (diff)
parentb168a8092fe3959777c67b80ec4b4dba223c4910 (diff)
Merge pull request #13083 from Tilka/apploader
Boot: write Apploader version into memory
Diffstat (limited to 'Source/Core')
-rw-r--r--Source/Core/Core/Boot/Boot.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/Source/Core/Core/Boot/Boot.cpp b/Source/Core/Core/Boot/Boot.cpp
index f71806be0e..d84df0a8db 100644
--- a/Source/Core/Core/Boot/Boot.cpp
+++ b/Source/Core/Core/Boot/Boot.cpp
@@ -571,6 +571,13 @@ bool CBoot::BootUp(Core::System& system, const Core::CPUThreadGuard& guard,
// we default to IOS58, which is the version used by the Homebrew Channel.
SetupWiiMemory(system, IOS::HLE::IOSC::ConsoleType::Retail);
system.GetIOS()->BootIOS(Titles::IOS(58));
+
+ // The Apploader writes an IOS-like version number into memory.
+ // Older versions of OSInit read it to check IOS compatibility.
+ constexpr u32 ADDR_IOS_VERSION = 0x3140;
+ constexpr u32 ADDR_APPLOADER_VERSION = 0x3188;
+ const u32 ios_version = system.GetMemory().Read_U32(ADDR_IOS_VERSION);
+ system.GetMemory().Write_U32(ios_version, ADDR_APPLOADER_VERSION);
}
else
{