ReRevvedRecomp uses ReXGlue as its only runtime and GPU foundation. The
root CMake project consumes the installed package from the sibling
rexglue-sdk checkout. The driver never modifies that checkout.
The maintained fork adds the diagnostic trace and capture support used by this
title. Its exact repository, commit, and installed package version are pinned in
rexglue-sdk.lock.json.
The manifest pins the compatible SDK interface version and the xenos GPU
plugin.
The guest baseline is the retail default.xex at version 0.0.0.2 plus the
matching private/default.xexp title update. ReXGlue applies that patch during
code generation and launch, producing the maintained executable version
0.0.3.2 (game version 1.3, title ID 545407E5, media ID 7DC1293B). The
matching version 1.3 files under private/Resource/Common/ are also required.
All of these retail inputs remain ignored and are not distributed by this
repository.
The accepted package configures, generates guest code, and builds the Release
title. The deployment contains both rexruntime.dll and rexgpu-xenos.dll.
The supported launch uses the xenos plugin and the D3D12 ROV render-target
path. That path reaches a usable game menu. Some GFx-composed content, including
the title logo and some menu graphics, is absent. This is a runtime correctness
boundary, not a build failure.
The settled guest behavior belongs in scaleform-gfx.md.
The guest and ReXGlue both report a 1280x720 presentation. The front-buffer
texture is a tiled 1280x720 k_8_8_8_8 texture. An intermediate D3D viewport
may differ from scanout dimensions; the measured ReXGlue fetch remains
1280x720.
The title passes VdSwap a kernel-output command buffer. The kernel writes
fetch constant 0 and a PM4_XE_SWAP packet, and ReXGlue executes that packet.
The D3D12 path is:
- Copy-mode
IssueDrawcallsIssueCopy. - The render-target cache derives the resolve destination, copies EDRAM into shared memory, and marks the destination range as GPU-written.
- Shared-memory watches invalidate overlapping texture data.
RequestSwapTexturedecodes fetch constant 0 andLoadTextureDatarefreshes the tiled texture from shared memory.IssueSwapapplies the selected gamma ramp and submits the guest output to the presenter.
A GPU resolve must expose its destination to overlapping texture aliases. CPU
writeback is needed only when guest CPU code must read the result. ReXGlue's
graphics and VdSwap implementations retain their Xenia lineage.
The supported Windows build requires LLVM 18 or newer, Visual Studio 2022 Build Tools with the C++ workload and Windows SDK, CMake 3.25 or newer, Ninja, and Python 3.11 or newer. Keep the maintained SDK as a sibling checkout:
<workspace>/
|-- ReRevvedRecomp/
`-- rexglue-sdk/
cd <repo>; .\tools\rexglue.ps1 -SelfTest
cd <repo>; .\tools\rexglue.ps1 -Stage Codegen
cd <repo>; .\tools\rexglue.ps1 -Stage BuildThe driver roots operations at the repository, locates Visual Studio 2022,
checks the sibling checkout and installed package against the lock, and consumes
only that package. Generated guest code lives under generated/default/. Build
output, user data, caches, and logs are ignored.
A successful build proves compilation only. A runtime claim requires a captured
milestone or an owner-observed visible result. -ProbeSeconds <n> bounds a smoke
test. -Interactive waits for normal game exit.
- Keep the SDK as a sibling checkout, never a submodule.
- Update the SDK lock whenever the accepted fork commit changes.
- Keep
private/default.xex,private/default.xexp, and extracted version 1.3 assets ignored. - Begin visual validation with D3D12 ROV until another path is proven.
- Treat import coverage and code generation as feasibility signals, not runtime correctness.
- Preserve ReXGlue's BSD-3-Clause notices in combined distributions.