mirror of
https://github.com/par274/sharpemu.git
synced 2026-07-22 19:06:15 +08:00
[Runtime] Search prx/ for adjacent modules
Titles ship third-party middleware in prx/ rather than sce_module/, so those modules were never mapped and every NID they export resolved to the unresolved stub. That stub returns 0x80020002, which a caller storing the result as a pointer then dereferences. DOOM + DOOM II (PPSA21444) carries libcohtml.Prospero (Gameface UI), libRenoirCore.PS5, MediaDecoders.Prospero, libPlayFabMultiplayer and party.prx there. Loading them resolves seven previously unknown NIDs and replaces an access violation during UI init with real middleware code. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -637,6 +637,7 @@ public sealed class SharpEmuRuntime : ISharpEmuRuntime
|
||||
{
|
||||
(Path: Path.Combine(ebootDirectory, "sce_module"), StartAtBoot: true),
|
||||
(Path: Path.Combine(ebootDirectory, "sce_modules"), StartAtBoot: true),
|
||||
(Path: Path.Combine(ebootDirectory, "prx"), StartAtBoot: true),
|
||||
(Path: Path.Combine(ebootDirectory, "Media", "Modules"), StartAtBoot: true),
|
||||
// Unity native plugins are loaded later through sceKernelLoadStartModule. Map
|
||||
// them up front so the HLE loader can return a real module handle and dlsym
|
||||
|
||||
Reference in New Issue
Block a user