Repository navigation
Onimusha: Way of the Sword (PPSA27836) #5769
Replies: 3 comments
|
Progress on 2026-10-14:
AI-assisted (Claude Code). |
|
First screens. With #5861 and #5907 (checkerboard), #5555 (merged today: a 2D-array access on a 3D T#) and the earlier fixes listed here, the title presents frames. Windows 11, RTX 5070, warm shader cache: the health warning screen, then the initial settings screen (display language selection), steady at about 15 FPS. It sits there waiting for input. The first run after a rebuild spends about 5 minutes compiling roughly 18,000 shaders. The AI-assisted (Claude Code). |
|
Progress on 2026-10-15 (Windows 11, RTX 5070, warm shader cache). Base: How far it gets: language, EULA, brightness and gamma screens, the main menu, New Game, difficulty and the controller-layout choice. Confirming the layout starts the first scene load, which ends in The Performance on the menus: about 10 FPS, with the CPU as the bottleneck.
AI-assisted (Claude Code). |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Current status (2026-10-14)
Content version tested: 01.000.001 (base game, no patch), dumped from the user's own console.
eboot.binandsce_module/libc.prxunwrapped with #5588'stools/unwrap_self.py.AnyPS5 commit:
main0b97f8b plus the pull requests below.System tested: Windows 11 Pro (26200), AMD Ryzen 7 9800X3D, NVIDIA GeForce RTX 5070 (driver 617.42), 31 GB of RAM, WinLibs GCC 15.2.0 r7, Release.
Furthest point: shader preparation at boot, before the first frame; the window stays black.
Start-up stops, in order
app.exe+0xcc9fbafter twosceKernelDebugRaiseExceptioncalls): the title'smallocreturns NULL with the image above 1 TiB, as in PRAGMATA (PPSA02530 v01.200.000) on Windows: the title's libc rejects its allocator's mspace buffer in the ASLR-relocated image above 1 TiB, so the first malloc returns NULL and start-up faults #3043. Relinking with--windows-fixed-base 0x400000000, as oneandonlydean suggested in Onimusha WotS (PPSA27836) crashes at ELF entry point with NULL write (GDB backtrace attached) #5622, passes it. No code change.-MU9L6S3Fj4(sceHttp2WebSocketSetPingTimeout) inlibSceHttp2.prx, reported bytools/import_audit.py: the loader stops. feat(libSceHttp2): export sceHttp2WebSocketSetPingTimeout #5771 exports it as a throwing stub; it is not called during start-up.Unsupported memory protection bits: -14: the title maps direct memory withprot=0xf2and then callssceKernelMprotectwith0xfffffff2on the same range (APS5_TRACE_MEMORY=1):sys_mprotectdoes.sceConvertKeycodeGetCharacter: unsupported state 67108864: the same0x4000000that PRAGMATA passes (PRAGMATA (PPSA02530) calls sceConvertKeycodeGetCharacter with a second argument of 0x4000000, which throws "unsupported state 67108864" (follow-up to #5366) #5726). The title passes it as a constant while it builds a table of key names for keycodes 0 to 0x8F, and expects unshifted characters. fix(libSceConvertKeycode): ignore the state bit 0x4000000 RE Engine titles pass #5776 ignores that bit.GetImageResource dword 0 is not a valid runtime value; chain: ReadConstBuffer@pc=0x0000297c(...), the same message as Resident Evil Village's mesh program (Resident Evil Village (PPSA01556) #5169). fix(shader): capture image descriptors read from constant buffers at uniform offsets #5188 passes it.key * 0x30), the key loaded through areadfirstlaneinside a bit-mask loop; one program uses the same table T# for two image operations. fix(agc): accept bindless image tables with entries wider than 32 bytes #5620 (records wider than 32 bytes) and fix(shader): plan a table T# that several image operations share #5550 (a table T# shared by several image operations) pass these, both merged.static bindless image capacity exceeded, the same as PRAGMATA (PRAGMATA (PPSA02530): a shader with four bindless image tables and five direct images exceeds MaxImages 64 ("static bindless image capacity exceeded") #5720): a program needs more image slots thanMaxImages(64) with 16 slots per table. feat(recompiler): bindless image tables up to the device's sampled-image limit #1184 targets this limit but is parked for a redesign. RaisingMaxImagesandSampledHeapCapacityto 128 locally (not proposed) passes it.bindless image table has 32768 entries (0 materials), limit 16: a compute program keys its table through a material record read atreadfirstlane(i) << 6and masked with0x7fff. feat(shader): enumerate bindless material keys behind a mask or a shifted selector #5820 enumerates such keys.image_sample_l: measured on gfx1036 (the 2D-array sample reads as DIM 1D); fix(shader): read explicit-LOD and level-zero 2D-array samples through 1D T#s as measured #5841 gives it the 1D mode.[videoout] presentation failed: bindless image table has 32768 entries (0 materials): the title reaches its first presentation. A draw reads a T# from the 48-byte table at a key the SRT walk can evaluate, which fix(agc): accept bindless image tables with entries wider than 32 bytes #5620 plans as a bindless table; the fix suggested on fix(agc): accept bindless image tables with entries wider than 32 bytes #5620 passes it. Some material buffers then hold 512 records, aboveAPS5_BINDLESS_MATERIAL_SCAN's default of 256; with it set to 65536 the tables resolve (mode M, 1 keys).AGC graphics: nonstandard sample locations varying between pixels are unsupported, the checkerboard rendering Resident Evil Village (PPSA01556) #5169 also approximates locally. No open pull request.About 100 shaders log
could not be prepared at registration (its s_swappc_b64 at program counter 0x74 calls a computed target)before the stop.Pull requests
sceHttp2WebSocketSetPingTimeoutexportsceKernelMprotectwith undefined protection bitssceConvertKeycodeGetCharacterstate0x4000000Also merged on the local branch, with no stop of this title shown to depend on them: #5189, #5703, #5688, #4883, #5181, #5089 (from the Resident Evil Village list in #5169). #3965 conflicts with
mainin a relinker test and was left out.Local changes not proposed
MaxImagesandSampledHeapCapacityraised to 128 (stop 7).TryMakeTableImageleaves T#s with an evaluable key toGetHandle(stop 10, suggested on fix(agc): accept bindless image tables with entries wider than 32 bytes #5620).APS5_BINDLESS_MATERIAL_SCAN=65536.How it was run
relinker --windows --windows-fixed-base 0x400000000 --registry eboot.elf app.exe, the convertedlibc.prxinapp0/sce_module, the rest of the dump linked intoapp0.AI-assisted: yes (Claude Code ran the conversion, the runs and the analysis).
All reactions