Repository navigation
Hollow Knight: Silksong (PPSA12544) #726
Replies: 6 comments
|
Progress update (2026-10-06): PPSA12544 now goes from the title through the intro cinematic into gameplay, with keyboard input, at 60 fps. New fixes:
Main open problem: storage-image results dropped by the keep-CPU-blocks rule (#865). It leaves menu glyphs boxed and, after a room transition, a dark foreground layer stuck on screen. Details and test results are in #865. |
|
Update: the stuck dark foreground layer is tied to 1920x1080 storage images. Writing back only those eagerly (a local switch, plus the 512x512 and 256x256 glyph images) lets the layer fade out after a room transition as it should, and fixes the boxed menu glyphs. It costs about a third of the frame rate (~42 fps instead of 60), so it is an interim setup, not a fix. Eager write-back of every image except the 1920x1080 ones does not help. No texture lookup reports a miss on those images, so the stale read must come through a path that does not call |
|
Update: #839 (AudioOut2 grain timing) is updated after review. It now has a CI test on the SDL disk audio driver ( |
|
Update (2026-10-11): Silksong is playable on plain
The post above is updated. |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Tested
relinker --windows --registry --module-dir Media/Modules --module-dir Media/Plugins app0/eboot.bin Silksong.exe(no--to-intel).eboot.bin,sce_module/*.prx,Media/Modules/*.prx,Media/Plugins/*.prx), unwrapped to plain ELF before relinking.Status
Playable at 60 fps on plain
main(a11c8f7), with no open pull requests, no local patches and no environment switches. The game boots, menus and their text render correctly, audio plays without crackle, keyboard input works, the intro cinematic plays, and a new game reaches gameplay with working room transitions.Correction (2026-10-06): an earlier version of this post, and a comment on #648, said the output looked correct. I had not checked it: every presented frame was black. The cause was draws skipped for
PA_SC_MODE_CNTL_1bit 17 (#840).Still needed beyond
mainNothing. #846 (
--module-dir) is merged. #425 is not needed on currentmain(see the stops table). The local stand-ins for #518's and #407's functions and the visible-keys workaround for blocker A are gone.Stops, in the order they were hit
All covered on current
main.Unsupported special symbol sectioninIl2cppUserAssemblies.prx(151SHN_ABSmarker symbols)Failed to load module ... libs\Il2cppUserAssemblies.prx(needed modules inMedia/Modules, outsidesce_module)sceKernelSyncOnAddressWait32/64dbOlWdppb4o(libSceAgc)libSceLibcInternalExtthread-exit functionssceVideoOutVrrPegToFixedRate,sceVideoOutVrrUnpegFromFixedRatesceKernelVirtualQueryreturnsEACCESinside a reserved rangeNH6xARDOVv8 not implemented(sceKernelGetOperationMode)sceUserServiceGetAgeLevel not implementedsceKernelIsStack not implementedvalidateOutputConfig: VIDEO_OUT_ERROR_UNSUPPORTED_OUTPUT_MODE(probe of0xd000000a), thensceVideoOutConfigureOutputthrowing instead of returningUNAVAILABLE_OUTPUT_MODEexpected JSON object in param.json(defaultLanguageinsidelocalizedParameters, onlyen-GB)VideoOut: DCC presentation is not implementedsceKernelCheckedReleaseDirectMemory not implementedil2cpp_set_find_plugin_callback:sceKernelLoadStartModule("/app0/Media/Modules/Il2CppUserAssemblies.prx")returned0x80020002sceKernelInstallExceptionHandler not implementedsceKernelRaiseException not implemented(Unity's GC stops threads with SIGUSR1; targets blocked in libkernel waits)DllNotFoundException: Unable to load DLL 'PSN'(native plugins inMedia/Plugins, loaded at run time)--module-dir Media/Plugins)Failed to load module ... libSceVrSetupDialog.prxand other plugin importsmainnowunresolved ELF import wTpfglkmv34(sceMsgDialogProgressBar*fromlibSceMsgDialog.native)SaveDataException(0x809F0005): the executable and the SaveData plugin both callsceSaveDataInitialize3sceImeKeyboardGetResourceId not implementedsceAppContentDownloadDataGetAvailableSpaceKb: the title declares no download datacompute shader ...: AGC graphics: unsupported descriptor role GdssceAgcDriverGetEqContextId not implementedVideoOut: display buffer ... reads mixed DCC keys ...at the first flipmainskipped draw: sample iteration, primitive discard or out-of-order rasterization is unsupported (register 0x293 = 0x06020000)JumpToTimesceKernelGetModuleInfoForUnwindreported noeh_frame_hdron Windows, so the title's own libc could not unwind any C++ (IL2CPP) exceptionsysret, which overwritesrcxsampling the stencil/depth plane of depth surface ... is not implementedmainwithout #425; likely #3277 (not traced)AGC driver: missing static shader ABI register 201at startup (shaders registered without their program address registers)Failed to load module ... Il2cppUserAssemblies.prxagain after #2708 limited the module search tosce_module/sce_modules/prx--module-dir Media/Modules)Notes
gc_stop_initinstalls a SIGUSR1 handler that readsuc_mcontext.mc_rsp(offset 0xf8 of the PS5ucontext) and raises SIGUSR1 on each thread to stop it for collection. Design: Exception handler delivery (sceKernelRaiseException, fault handlers) #727.Media/Pluginsmodules are loaded withsceKernelLoadStartModule(path, 16, {16, 0x200, ...}). Their module entry checks that argument and refuses withPSN is an old version that cannot be used by the current player runtimewhen it is missing, so the arguments must reachDT_INIT.agc_driverVulkan testsagc_driver_lds_atomics64andagc_driver_vopc_compare_tablefail on this host onmain. Moreagc_drivertests fail when run in parallel or while a title uses the GPU.Stack tried (2026-10-11)
mainata11c8f7fonly.All reactions