HLE: split filesystem-dependent initialization

This commit is contained in:
keycross committed 2026-09-18 10:24:43 +09:00
1 parent 2385698f8e
commit 5c80533ee3
4 files changed
+13 -9

No files matched your search

+7 -6
View File
@@ -506,6 +506,10 @@ static bool CPU_Init(FileLoader *fileLoader, IdentifiedFileType type, std::strin
DisplayHWInit();
// Initialize the HLE state before mounting filesystems. This includes the module tables and
// CoreTiming event needed by savestates, but does not inspect any filesystem paths.
HLEInit();
// TODO: Put this somewhere better?
if (!g_CoreParameter.mountIso.empty()) {
g_CoreParameter.mountIsoLoader = ConstructFileLoader(g_CoreParameter.mountIso);
@@ -518,12 +522,9 @@ static bool CPU_Init(FileLoader *fileLoader, IdentifiedFileType type, std::strin
MountFileSystems();
// Init all the HLE modules. After the mount, and after the firmware install above, so that the
// checks in HLEInit deciding whether a library can run its real module instead of our HLE can
// ask the PSP filesystem the way everything else does - and see a firmware this very boot just
// installed off the disc. Nothing between CoreTiming::Init above and here touches HLE, and the
// kernel and the game's modules both come later, in the switch below.
HLEInit();
// The module availability checks need the mounted PSP filesystem and the firmware installed
// above. Keep them after the mount, before any kernel or game module can be loaded.
HLECheckModuleAvailability();
// Game-specific settings are load from for example Load_PSP_ISO (which calls g_Config.LoadGameConfig).
// We can't do things that depend on these before the below switch. So for example, the adjustment of the GPU core