Repository navigation
Resident Evil Village (PPSA01556) #5169
EagleBearerYS
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.
Current status (updated 2026-10-13, 20:25 PT)
Content version tested: 01.210.000
AnyPS5 commit: stock
mainstopped at the first frame until #4949 merged (2026-10-13); it hasn't been retested onmainsince. The furthest point is on a local integration branch:main18c438b (2026-10-13) plus the pull requests below and the local changes listed at the end.System tested: Windows 11 Home (26300), AMD Ryzen 9 5900HS, NVIDIA GeForce RTX 3070 Laptop GPU (8 GB), 16 GB of RAM with a 32-40 GB page file, WinLibs GCC 15.2.0 r7, Release.
Furthest point: In game (first player control)
What is shown
mainbefore fix(agc): start the sample location registers at their clear-state value #4949: it stopped about 20 s in, at the first presented frame, withmissing register in context bank at DWORD 0x2fe (766). Resident Evil 4 stopped the same way (Resident Evil 4 (PPSA07411): start-up needs a library named Party.prx; with the missing exports added it stops at sce::Json::InitParameter2::setSpecialFloatFormatType #2776).Current blockers
The blurred 3D scene (see Wrong output): the game can be played by input but not seen.
Speed in the first 3D scene:
The stop after the opening: on the move to the first playable scene, the Wwise thread
AK::EventManagerhit an access violation (0xc0000005) walking a list whose record has every qword shifted by 4 bytes. It happened in 2 of 2 runs before this PC's commit limit was raised, and in none of the runs that got past that point since. The cause isn't known.Shader preparation memory: preparing all the PSO cache's shaders at registration needs more commit than this PC had free, even with perf(shader): keep only evaluable branch conditions in resource plans #5181. Locally, preparing each shader at its first draw instead gets past it. That is an experiment, not proposed.
Checkerboard rendering: the scene load uses two-sample checkerboard rendering:
Both are approximated locally and not proposed.
Material textures chosen per lane: some mesh and vertex programs pick their T# in a waterfall loop keyed per lane. Bindless tables (16 slots, 32-byte records) cannot capture them. Locally they are planned as null images, which gives wrong output.
Pull requests
0x2fe)lowerOwnLaneBitsfrom its reviewmprotectapp.exe+0x69cb959after a frameless leaf's red zone was overwritten when a write fault was resumed (#361). #5052 frames none of this title's 3,036 red-zone leaves; #5640, on #5052, frames 2,132 of them, and no boot crashed in 12Also on the local branch: Celegans12's open tessellation PRs #4201 and #4222 (#4114 and #4163 are merged), #2589 (scheduling of shader preparation), #4693, and #4876 (merged).
Local changes not proposed
Shaders prepared at their first draw instead of at registration.
Per-lane T#s planned as null images.
The checkerboard approximations above.
feat(agc): sample depth plane arrays from a later base slice #1186's commit, adapted by hand to the current
DepthPlaneCopy.feat(agc): storage image access to depth planes through 2D array views #5003's later-slice view (a follow-up to feat(agc): storage image access to depth planes through 2D array views #5003 is being tried in its place).
Memory experiments for speed:
Together they took the title screen from about 0.3 to about 0.8 frames per second.
The Windows write collect skips the per-view check over ranges it already knows are clean. With every address-based build refreshing the 3 GiB of heap mirrors, that took the title screen from 0.82 to 0.92 frames per second in an A/B. perf(libc): walk shared views in order and remember collectable ranges in Windows write collects #5062 and perf(libc): walk shared views by iterator and remember clean pages per run in the write collect #3864 target the same lookups, and perf(libc): walk shared views in order and remember collectable ranges in Windows write collects #5062 is being compared.
How it was run
--windows --frame-red-zonefrom the dump's fake-signedeboot.binandsce_module/libc.prx, unwrapped. The.esbakcopies next to them hold the same segments.APS5_NO_GPL=1(pipeline libraries off) keeps about 2.5 GB less during the PSO cache build.All reactions