Repository navigation
Hollow Knight: Silksong (PPSA12544) #726
Replies: 4 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 ( |
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
--windows --module-dir Media/Plugins(no--to-intel). Built with WinLibs GCC 15.2.0 r7.eboot.bin,sce_module/*.prx,Media/Modules/*.prx,Media/Plugins/*.prx), unwrapped to plain ELF before relinking.Status
Playable at 60 fps. On the stack below, the game boots. Menus, audio (no crackle) and keyboard input work. The intro cinematic plays, a new game reaches gameplay, and room transitions work.
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
mainDllNotFoundException: Unable to load DLL 'PSN': plugins inMedia/Pluginsare loaded at run time with start argumentsVideoOut: display buffer ... reads mixed DCC keys ...at the first flip: the non-uncompressed keys lie in the padding rows past 1080 (data in #648). My build still classifies only the visible part of the keys. Not rechecked on currentmain.Stops, in the order they were hit
All merged unless marked.
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)Failed to load module ... libSceVrSetupDialog.prxand other plugin importsunresolved 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 implementedmainskipped 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 implementedNotes
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-08)
mainate76c70f6(2026-10-06), plus pull requests that were open then and are now merged (#285, #369, #696, #700, #702, #709, #721, #724, #734, #760, #763, #839, #840, #841, #842, #844, #893, #903, #904, #1387). Open pull requests: #846 (with #716), #425, #374. Local: stand-ins for #518's and #407's functions, the visible-keys classification for blocker A, and eager write-back of the glyph images.All reactions