Repository navigation
Gang Beasts (CUSA04865) #7941
Replies: 6 comments 1 reply
|
Where
The names include Each image places all of its data, not only its code, in the executable segment. For
Only the module's C functions (0x2ddf300..0x2ddf7ed, at the end of the segment) have FDEs, so the whole segment is scanned as code. Three stops follow from that:
Rule tested (on a scan-only copy whose data bytes were replaced with
The 78 blocks cover 0xf0..0x2ddf2f8 with no gap larger than 16 bytes and no overlap. All 79,477 PLT entries in them have the 10-byte form. 0x0..0xf0 is the module's C init function, which has no FDE either, so the rule only marks positively identified data. With every data range masked, conversion of the whole title completes: the executable and all 18 modules, including What a relinker change would need: recognise the A smaller point: the syscall stop names the executable ( AI-assisted: yes (Claude Code) |
|
First run: the title starts, opens its window and stops in GPU set-up Setup, all local:
Loader
The Hmd, VrTracker, Camera, Move and SocialScreen imports come from the title's own Run, with throwing stubs for those 233 imports (local only, not for a PR)
Measured on a PS4 (firmware 10.71, base model) with a probe module loaded into a running homebrew app. The system libraries were loaded from
Furthest point is now Stops before the first frame, with local stubs. Next is the PS4 GPU set-up in #6977. AI-assisted: yes (Claude Code) |
|
Progress: Gang Beasts (CUSA04865) reaches its main menu on top of #6977 Setup: eboot converted with the main relinker plus the Mono AOT data-range fix (local branch, PR pending), run with the #6977 libraries plus local changes. Everything below is on a local branch; what looks generic is listed as a PR candidate. Stops passed since the last update, in order
State
Measurements on the PS4 (FW 10.71) used above: |
|
Progress: Gang Beasts plays a full round on top of #6977 Everything below runs on a local branch on top of #6977. The last update ended at the main menu. 1. The GPU trailing the title After the menu, about half the runs stopped on Past the menu the same lag showed up as draws with foreign descriptors: an S# slot holding T# words, a V# slot holding an S#, a sampler that reads as unnormalized with clamp mode 7. With each Gnm submission waiting for the work already queued, none of this happens, in runs of up to ten minutes through the menus, character select, loading and a full match, at the same menu frame rate. The title paces itself on flip events and on labels it embeds in its command buffers, and that pacing assumes the GPU stays close behind the command processor, as it does on the console. Get-fix#3 offers three commits for #6977's branch: the submission wait as an opt-in knob ( 2. A label can become visible before a copied buffer's write-back (AGC, not PS4-specific) While reading the driver for (1): a written buffer that the device holds as a CPU copy gets its results back to guest memory when its batch is reaped, but a label recorded after the dispatch is stored on the GPU first. A title that polls the label and rewrites the region loses its bytes to the late write-back. #8180 drains such a label so the write-back runs first; a new execution test fails without it. This was not the cause of (1), since no CPU store path wrote the clobbered dword in the traced runs, but it is a real ordering hole. 3. The level load that never finished With (1) handled, the match still did not start: every thread idle, the loading icon spinning. The title calls 4. Into the match Two more gaps on the way, both covered elsewhere: GCN State
|
Update 2026-10-22: the title on the upstream PR stack over
|
|
Follow-up to the update above: the Get-fix#1 commits it names are now open upstream as @savvaniss's pull requests, so the list of what the title still needs reads:
Open pull requests the title needs: #9430, #9431, #9432, #9671-#9676, #9889, #9891 and #6948. AI-assisted: yes (Claude Code) 🤖 Generated with Claude Code |
Uh oh!
There was an error while loading. Please reload this page.
Existing thread
Title
Gang Beasts (CUSA04865)
Content version tested
01.00 (base game, no patch)
AnyPS5 commit
maina4440ed with #6684 and #7660 merged on top, plus the guest TLS relocation fix from #6977 (3b158c1, adapted to the currentGuestImageReader.cpp). #6618 is not included: it conflicts with currentmain.System tested
Windows 11 Pro 10.0.26200, WinLibs GCC 15.2.0 r7. Relinker-only build; the converted executable was not run.
Furthest point
Does not convert
What is shown
Conversion only. Unity title on the Mono scripting backend:
Media/Modules/holdsmono-ps4.prxandMonoAssembliesPS4.prx, andMedia/Plugins/holds 5 Unity plugins.eboot.bin(2120 NID references), all 11 modules insce_module/(includinglibc.prxandlibSceFios2.prx) and the 5 plugins inMedia/Plugins/convert.libSceFios2.prxneeds the TLS relocation fix from feat: run PS4 games on the AGC driver — Limbo (CUSA01664) in game (integration branch) #6977. Without it, conversion stops withInvalid guest TLS relocation.mono-ps4.prxconverts.MonoAssembliesPS4.prxstops conversion (see Current blocker).Current blocker
The offset is in
Media/Modules/MonoAssembliesPS4.prx, the Mono AOT image. Its executable segment runs from 0x0 to 0x2ddf930, but.eh_frame_hdrlists only 3 FDEs, all at the end of that segment: 0x2ddf300..0x2ddf7a5, 0x2ddf7b0..0x2ddf7db and 0x2ddf7e0..0x2ddf7ed. The AOT-compiled methods have no DWARF unwind entries. Unwind ranges therefore cannot bound the code, and the data inside the executable segment is scanned as instructions. The bytes around 0x129f1c (09052a00f8040000000028010f05c400) look like table data. The executable segment contains 4360F 05byte pairs in total.Needed: a way to bound the code of a Mono AOT module, or to tell its data from its code. Open pull requests still needed: #6684, #7660 and the TLS fix in #6977. #6977 is also needed to run the title.
How it was run
From the dump folder (Itemzflow dump;
eboot.binand all modules were already decrypted ELF files):Without
--module-dir Media/Modules, conversion completes: the executable and 16 modules are written.AI-assisted: yes (Claude Code)
All reactions