loading of other modules via sceSysmoduleLoadModule

This commit is contained in:
georgemoralis 2024-09-27 10:46:05 +03:00
parent 2fe8f22a23
commit 01fcc627a0
2 changed files with 38 additions and 8 deletions

View file

@ -50,6 +50,34 @@ int PS4_SYSV_ABI sceSysmoduleLoadModule(OrbisSysModule id) {
case OrbisSysModule::ORBIS_SYSMODULE_NGS2:
Libraries::Kernel::sceKernelLoadStartModule("/system/common/lib/libSceNgs2.sprx", 0, NULL,
0, NULL, NULL);
break;;
case OrbisSysModule::ORBIS_SYSMODULE_ULT:
Libraries::Kernel::sceKernelLoadStartModule("/system/common/lib/libSceUlt.sprx", 0, NULL, 0,
NULL, NULL);
break;
case OrbisSysModule::ORBIS_SYSMODULE_FIBER:
Libraries::Kernel::sceKernelLoadStartModule("/system/common/lib/libSceFiber.sprx", 0, NULL,
0, NULL, NULL);
break;
case OrbisSysModule::ORBIS_SYSMODULE_JSON:
Libraries::Kernel::sceKernelLoadStartModule("/system/common/lib/libSceJson.sprx", 0, NULL,
0, NULL, NULL);
break;
case OrbisSysModule::ORBIS_SYSMODULE_JSON2:
Libraries::Kernel::sceKernelLoadStartModule("/system/common/lib/libSceJson2.sprx", 0, NULL,
0, NULL, NULL);
break;
case OrbisSysModule::ORBIS_SYSMODULE_FONT:
Libraries::Kernel::sceKernelLoadStartModule("/system/common/lib/libSceFont.sprx", 0, NULL,
0, NULL, NULL);
break;
case OrbisSysModule::ORBIS_SYSMODULE_JPEG_ENC:
Libraries::Kernel::sceKernelLoadStartModule("/system/common/lib/libSceJpegEnc.sprx", 0, NULL,
0, NULL, NULL);
break;
case OrbisSysModule::ORBIS_SYSMODULE_DISC_MAP:
Libraries::Kernel::sceKernelLoadStartModule("/system/common/lib/libSceDiscMap.sprx", 0,
NULL, 0, NULL, NULL);
break;
}
return ORBIS_OK;

View file

@ -227,18 +227,18 @@ void Emulator::Run(const std::filesystem::path& file) {
void Emulator::LoadSystemModules(const std::filesystem::path& file) {
constexpr std::array<SysModules, 13> ModulesToLoad{
{{"libSceNgs2.sprx", &Libraries::Ngs2::RegisterlibSceNgs2, false},
{"libSceFiber.sprx", nullptr, true},
{"libSceUlt.sprx", nullptr, true},
{"libSceJson.sprx", nullptr, true},
{"libSceJson2.sprx", nullptr, true},
{"libSceFiber.sprx", nullptr, false},
{"libSceUlt.sprx", nullptr, false},
{"libSceJson.sprx", nullptr, false},
{"libSceJson2.sprx", nullptr, false},
{"libSceLibcInternal.sprx", &Libraries::LibcInternal::RegisterlibSceLibcInternal, true},
{"libSceDiscMap.sprx", &Libraries::DiscMap::RegisterlibSceDiscMap, true},
{"libSceDiscMap.sprx", &Libraries::DiscMap::RegisterlibSceDiscMap, false},
{"libSceRtc.sprx", &Libraries::Rtc::RegisterlibSceRtc, true},
{"libSceJpegEnc.sprx", nullptr, true},
{"libSceFont.sprx", nullptr, true},
{"libSceJpegEnc.sprx", nullptr, false},
{"libSceFont.sprx", nullptr, false},
{"libSceRazorCpu.sprx", nullptr, true},
{"libSceCesCs.sprx", nullptr, true},
{"libSceRudp.sprx", nullptr, true}}};
{"libSceRudp.sprx", nullptr, false}}};
std::vector<std::filesystem::path> found_modules;
const auto& sys_module_path = Common::FS::GetUserPath(Common::FS::PathType::SysModuleDir);
@ -255,6 +255,8 @@ void Emulator::LoadSystemModules(const std::filesystem::path& file) {
if (result == 0) {
continue;
}
} else {
continue;
}
}
if (init_func) {