mirror of
https://github.com/hrydgard/ppsspp.git
synced 2026-09-20 11:27:48 +02:00
HLE: add the 5.xx NIDs the VSH of that era imports
sceKernelLoadModuleVSH, sceKernelGetModel, and four of sceImpose_driver's calls already have implementations; 5.xx just asks for them under different NIDs, so the 5.50 shell got nothing back. Each one was identified by disassembling that firmware's own module and comparing the body against 6.61's, where the same function is exported under a name - the pairs are instruction-for-instruction identical apart from context-struct offsets. GetModel was the one that mattered most: unresolved, vshbridge handed the shell a garbage model number, and it went looking for PSP-3000 resources on a dump that has none. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
765d5bfbcf
commit
1a3f14acd0
@@ -3196,6 +3196,10 @@ const HLEFunction ModuleMgrForKernel[] = {
|
||||
// module id 0 back and the sceKernelStartModule after it failed with UNKNOWN_MODULE.
|
||||
// NOTE: new entries go at the end - the syscall opcode in a savestate is an index into this array.
|
||||
{0xA4370E7C, &WrapU_CUU<sceKernelLoadModuleVSH>, "sceKernelLoadModuleVSH", 'x', "sxx", HLE_KERNEL_SYSCALL },
|
||||
// And the 5.x NID for it, confirmed the same way: in 5.50's modulemgr.prx this NID has the
|
||||
// identical callee set to 6.61's 0xD5DDAB1F. Without it 5.50's vshbridge couldn't load the
|
||||
// XMB plugins (opening_plugin, impose_plugin, ...) and the VSH stopped at a black screen.
|
||||
{0xCCDE84A8, &WrapU_CUU<sceKernelLoadModuleVSH>, "sceKernelLoadModuleVSH", 'x', "sxx", HLE_KERNEL_SYSCALL },
|
||||
};
|
||||
|
||||
void Register_ModuleMgrForUser() {
|
||||
|
||||
Reference in New Issue
Block a user