Repository navigation
Vampire Survivors (PPSA21703) on Windows with NVIDIA: stops when the PSN plugin starts without its start argument #3745
Replies: 4 comments
|
I will post args and prs tomorrow but here is teaser of one of the bugs fixed while I'm still self reviewing the prs chest_before_after_169.mp4 |
|
Same title on Windows with an AMD GPU, for comparison: here it gets past the PSN plugin and is playable at 60 FPS. Tested title: Vampire Survivors, PPSA21703, v01.016.107. What works: boot, menus, saving and loading, full runs with level-ups and chests, the results screen. Problems found on the way, and their fixes:
Still open: one "marker stack underflow" abort right after the results screen, not reproduced since. vampire_10mb.mp4 |
|
Update: I can now reach gameplay on Windows with an NVIDIA GPU. My local build included several changes, so I can’t attribute the result to one fix. PR #4413 contains the APR read change and regression test. I also used a local workaround for PSN.prx/SaveData.prx when they’re launched with zero arguments and a null argument pointer; that workaround isn’t in the PR. I’ll update this discussion if I isolate a general fix for the missing start argument. |
|
Same title on Windows with NVIDIA, as a second report.
How I relinked (current Then copy the dump's Current blocker, and the pull requests involved
Clip below: 30 seconds of that run, window only, frame counter visible. vs_pipeline_30s.mp4 |
Uh oh!
There was an error while loading. Please reload this page.
Tested Title: Vampire Survivors, PPSA21703, content version v01.016.107. Unity, IL2CPP, FMOD (judging by the module and thread names in the log).
Host: Windows 11 Pro 10.0.26200, AMD Ryzen 7 7800X3D, NVIDIA GeForce RTX 5070 Ti (driver 616.92; an AMD integrated GPU is also present, the NVIDIA card is selected), WinLibs GCC 15.3.0 (the docs pin 15.2.0), Release.
AnyPS5 main at a11c8f7. The runtime's libs match the build: after building the libs target, every .prx in the runtime was compared by hash.
Relinked with
--windows --windows-diagnostics --module-dir Media/Modules --module-dir Media/Plugins(no --to-intel), from a staging folder holding plain ELFs for eboot, sce_module, Media/Modules and Media/Plugins.How far it gets
Analysis
As described for Silksong in #726, the Media/Plugins modules are started with sceKernelLoadStartModule(path, 16, {16, 0x200, ...}), and the PSN entry refuses with this message when the argument is missing. The read at address 4 fits a field read through a null pointer. The faulting call comes from the game's managed code through libkernel (frames libkernel.prx+0x485ae and +0x45f2b, then Il2cppUserAssemblies). I have not traced how this title starts the module.
Expected: the plugin receives its start argument and the title continues, as Silksong does on current main with #846.
Related: #726, #846. Log attached (run.log, all-threads dump trimmed).
AI-assisted: yes (the write-up was drafted with an AI assistant; the runs and results are mine).
run.log
All reactions