mirror of
https://github.com/shadps4-emu/shadPS4.git
synced 2025-08-04 15:18:45 +00:00
loading of other modules via sceSysmoduleLoadModule
This commit is contained in:
parent
2fe8f22a23
commit
01fcc627a0
2 changed files with 38 additions and 8 deletions
|
@ -50,6 +50,34 @@ int PS4_SYSV_ABI sceSysmoduleLoadModule(OrbisSysModule id) {
|
||||||
case OrbisSysModule::ORBIS_SYSMODULE_NGS2:
|
case OrbisSysModule::ORBIS_SYSMODULE_NGS2:
|
||||||
Libraries::Kernel::sceKernelLoadStartModule("/system/common/lib/libSceNgs2.sprx", 0, NULL,
|
Libraries::Kernel::sceKernelLoadStartModule("/system/common/lib/libSceNgs2.sprx", 0, NULL,
|
||||||
0, NULL, 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;
|
break;
|
||||||
}
|
}
|
||||||
return ORBIS_OK;
|
return ORBIS_OK;
|
||||||
|
|
|
@ -227,18 +227,18 @@ void Emulator::Run(const std::filesystem::path& file) {
|
||||||
void Emulator::LoadSystemModules(const std::filesystem::path& file) {
|
void Emulator::LoadSystemModules(const std::filesystem::path& file) {
|
||||||
constexpr std::array<SysModules, 13> ModulesToLoad{
|
constexpr std::array<SysModules, 13> ModulesToLoad{
|
||||||
{{"libSceNgs2.sprx", &Libraries::Ngs2::RegisterlibSceNgs2, false},
|
{{"libSceNgs2.sprx", &Libraries::Ngs2::RegisterlibSceNgs2, false},
|
||||||
{"libSceFiber.sprx", nullptr, true},
|
{"libSceFiber.sprx", nullptr, false},
|
||||||
{"libSceUlt.sprx", nullptr, true},
|
{"libSceUlt.sprx", nullptr, false},
|
||||||
{"libSceJson.sprx", nullptr, true},
|
{"libSceJson.sprx", nullptr, false},
|
||||||
{"libSceJson2.sprx", nullptr, true},
|
{"libSceJson2.sprx", nullptr, false},
|
||||||
{"libSceLibcInternal.sprx", &Libraries::LibcInternal::RegisterlibSceLibcInternal, true},
|
{"libSceLibcInternal.sprx", &Libraries::LibcInternal::RegisterlibSceLibcInternal, true},
|
||||||
{"libSceDiscMap.sprx", &Libraries::DiscMap::RegisterlibSceDiscMap, true},
|
{"libSceDiscMap.sprx", &Libraries::DiscMap::RegisterlibSceDiscMap, false},
|
||||||
{"libSceRtc.sprx", &Libraries::Rtc::RegisterlibSceRtc, true},
|
{"libSceRtc.sprx", &Libraries::Rtc::RegisterlibSceRtc, true},
|
||||||
{"libSceJpegEnc.sprx", nullptr, true},
|
{"libSceJpegEnc.sprx", nullptr, false},
|
||||||
{"libSceFont.sprx", nullptr, true},
|
{"libSceFont.sprx", nullptr, false},
|
||||||
{"libSceRazorCpu.sprx", nullptr, true},
|
{"libSceRazorCpu.sprx", nullptr, true},
|
||||||
{"libSceCesCs.sprx", nullptr, true},
|
{"libSceCesCs.sprx", nullptr, true},
|
||||||
{"libSceRudp.sprx", nullptr, true}}};
|
{"libSceRudp.sprx", nullptr, false}}};
|
||||||
|
|
||||||
std::vector<std::filesystem::path> found_modules;
|
std::vector<std::filesystem::path> found_modules;
|
||||||
const auto& sys_module_path = Common::FS::GetUserPath(Common::FS::PathType::SysModuleDir);
|
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) {
|
if (result == 0) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (init_func) {
|
if (init_func) {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue