Repository navigation
Wobbly Life (PPSA29413) on Linux #2211
exefer
started this conversation in
Game bring-up
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Wobbly Life (PPSA29413) on Linux
Tested
UP7742-PPSA29413_00-WOBBLYLIFEEUUSXX), content version 01.160.000. Unity 2022.3.62f2, IL2CPP, FMOD, EOS (Epic Online Services plugins + vendored C# SDK), Rewired input, UMod arcade mods.--registry --module-dir Media/Plugins --to-intel(--to-intelrequired: the title ships AMD-onlyinsertq, fatal SIGILL on Intel otherwise).Status
Boots into arcade content streaming with rendering. Unity bootstrap, IL2CPP metadata, Addressables catalogs, FMOD banks (Master/Loading/PS5/Game), PSN/EOS/FMOD/burst plugins load with start arguments, GC stop-the-world via SIGUSR1 works, ~80+ shader-cache hits, 1920x1080 targets present. Import audit: 0 absent, 443 implemented, 19 stubs, 152 module-bound.
Open problem: one managed
System.FormatException: "Unrecognized Guid format."deterministically ~60–90 s in, while streaming arcade bundles (right afterresources.assets), terminating the run. Forensics so far: no missing files (extraction verified complete), no network sockets, no save/prefs I/O, no directory enumeration, nosceNpAuthticket requests, Rewired (ControllerElementIdentifier,hardwareGuid/deviceInstanceGuidmachinery) and game-code*GuidStrfields (jobs/mods/arcade:miningAreaGuidStr,ModGUIDComponent, …) adjacent in the managed heap, EOSSDK loads shortly before the crash window. The Guid input string is not stored in the exception object; caller not yet identified.Still needed beyond
mainUpdate: #1102, #1503, #1534, #1902 and #1928 have merged since. The local patch is 42 lines in one relinker file (#2212); everything else is unmodified upstream PRs.
Media/Plugins(PSN, EOSSDK, FMOD, …) loaded at run time with start arguments; without it the first plugin load failsargs/argpdelivered on Linux (PSN/SaveData validate their{16, 0x200, …}block; #846 alone throws for them there)kitt_support.prxdependency identity →kitt_support-PS5-shipping.prxfile (kitt plugins need it; otherwise hostdlopenfails)writefrom libkernel hijacked by kitt's copy →undefined symbol: FN4gaPmuFV8#guest)_umtx_op(04AjkP0jO9U, Unity PS5Util/GC thread sync; load stops without it) + interruptible mutex/rwlock waitssceKernelRaiseExceptiondelivery on Linux (Unity GC stops threads with SIGUSR1)DB_RENDER_CONTROL = 0x22stencil-clear draws with color output (first presented frames)Stops, in the order they were hit
Ambiguous guest import M4YYbSFfJ8g in input.elf: exported by Il2cppUserAssemblies.prx, kitt_support-PS5-shipping.prxwith--module-dirkitt_support.prx: cannot open shared object fileat boot (excluded as workaround)Ambiguous guest import smbQukfxYJM in kitt_webkit-PS5-shipping.prx(same pair, plugin→plugin import)PS5Util.prx.guest.prx: undefined symbol: 04AjkP0jO9Uat loadtools/nid_names.py:_umtx_op)Il2cppUserAssemblies.prx.guest.prx: undefined symbol: FN4gaPmuFV8#guestat load (writefrom libkernel bound to kitt's copy)sceKernelRaiseException not implemented(GC stop-the-world during bootstrap)depth/stencil clear … draws (DB_RENDER_CONTROL) is unsupported (register 0x0 = 0x00000022)at first presentprepared shader artifact is missing for the requested static ABI … stage=5 wave=64(fragment)prepared rectangle artifacts are missing(same draw, right after)insertqSIGILL on Intel host (ininput.elf, Il2cpp, EOSSDK, kitt modules)--to-intelflag, no code changeSystem.FormatException: Unrecognized Guid format.while streaming arcade bundlesLocal patch: bind Linux guest imports by declared module identity
PR #2212 — full diff lives there. Summary: on Linux, executable imports shared between providers bind when exactly one provider's filename or SONAME is in the executable's
DT_NEEDEDlist, and guest-module imports bind when the declared library resolves to one of the providers (the existing Windows-only filter now applies on both platforms). Anything else still throws exactly as before. 42-line change incore/relinker/relinker/src/guest/GuestModuleBuilder.cpp, no test changes needed (41/41 green, ambiguity regressions intact).Notes
Media/Pluginsmodules load withsceKernelLoadStartModule(path, 52, …); PSN loads ~6×, FMOD ~20×, EOSSDK 6× late in the run. SaveData/kitt/resonance/burst plugins never load before the crash. No EOS/PSN network sockets are ever opened._Z5dummyv,arch_raise_user,arch_test,arch_init_gc,arch_DbgBacktraceSelf(+2 unknown NIDs); it imports_umtx_op,sceKernelSleepand 7 more libkernel NIDs.sysmoduleLoadModule unknown id: 267, 272is tolerated (also seen on a working title).*GuidStrfields, LocalizationTableReferenceFromString, game-code job/prefab Guid strings. The failing input string is not recoverable post-mortem (not stored in the exception object);sceKernelDebugWriteCppExceptionInforeceiveswhat=nullptr.mainata8b032b2+ the 9 PR heads above + the local patch. Temporary diagnostic patches (throw tracing, coredump heap probing, module-load/directory/auth logging) were all reverted; the tree diff besides the merges is only the submitted patch plus one test-expectation line for fix(libkernel): pass module args and argp to runtime-loaded modules on Linux #1102×fix(relinker): keep Linux imports declared from host modules off guest exports #1529 accessor imports.Stack tried
mainata8b032b2(2026-10-09), plus #846 + #1102 + #1503 + #1529 + #2051 + #1431 + #1534 + #1902 + #1928 and the submitted patch. Relinker suite 41/41. Deliberately not merged (checked, not needed or conflicting for this title): #755 (weak duplicates — both colliding exports here are global), #1482 (_umtx_opsuperset overlapping #2051; private ops unused so far), #1617 (closed, Windows-only owner binding), #2071/#1837 (other static-ABI misses; not hit), #2053 (HTILE clears; not hit).tools/nid_names.py+tools/import_audit.pyfor NID work.All reactions