This repository tracks an experimental native PC bring-up of the Xbox 360 version of The Outfit using ReXGlue.
The goal is to make the game run as a native Windows application instead of through a full emulator. This is active reverse-engineering and runtime bring-up work, so the project is not ready for normal play yet.
AI used for decomp research purposes , ghirdra MCP and Documentation with human oversight
The port is currently in a playable state, but there are significant caveats to keep in mind:
- Launch Stability: Sometimes you need to keep trying to open the game before it successfully launches, but it will eventually launch.
- Loading Crashes: Sometimes after a level finishes loading and you hit play, the game crashes. However, if you start the game again, it will run fine.
- Performance: There are still ongoing performance issues that need to be addressed.
Recent comparison with Xenia Canary is useful: current Canary D3D12 and Vulkan builds survive the same gameplay area that older Xenia and this port can crash in. That makes Canary a helpful research reference, but this project remains ReXGlue-only.
- ReXGlue project files for The Outfit
- Manual function and switch-table configuration needed for the current build
- Focused local ReXGlue SDK patches stored as patch files
- Porting notes, address evidence, asset notes, and regression history
- Helper scripts for read-only PowerPC/XEX investigation
- A Visual Studio debug wrapper that launches the verified CMake build
This repository does not include the game.
Do not commit or upload:
- ISO files
- XEX files
- extracted game assets
- copyrighted game data
- generated ReXGlue output
- logs, screenshots, binaries, or local build output
The expected local game data path inside your clone is:
<repo>\assets\game_files
If you keep a local ISO beside the project, use:
<repo>\theoutfit.iso
Both are ignored and must remain local.
You need your own legally owned copy of the Xbox 360 game. If you keep a local ISO beside the project, You can find 'info' on the proper 'legally' obtained backup copy here and place it here:
<repo>\theoutfit.iso
Extract the ISO into the ignored game data folder:
<repo>\assets\game_files
This workspace has used extract-xiso for the local extraction. The exact command can vary by tool build, but the important result is that the extracted entrypoint exists here:
<repo>\assets\game_files\default.xex
Launch the port with that extracted folder as the game data root:
--game_data_root=<repo>\assets\game_filesKeep the ISO and extracted files out of Git. docs/asset_ledger.md records local hashes and evidence, but not game content.
This port expects a legally owned Xbox 360 copy of The Outfit extracted locally.
Known local ISO evidence used during development:
- File:
theoutfit.iso - SHA-256:
9112A8E01719FC52749D0A735CD0CF44CE11C9F575714F0467B4EE30F7F5353A - Extracted entrypoint:
assets/game_files/default.xex default.xexSHA-256:1BD7C232574681D51865C40383581F4157592991998BC6CE085E24CE38325654
The project does not host, link to, or endorse downloads of copyrighted game files.
| Path | Purpose |
|---|---|
TheOutFit_Port/ |
Main ReXGlue port project, manifest, config, source, and Visual Studio wrapper. |
TheOutFit_Port/config/manual_functions.toml |
Current manual function seeds and switch-table entries. |
docs/ |
Human-readable notes, ledgers, build history, and regression evidence. |
docs/rexglue_patches/ |
Local ReXGlue SDK patches used or investigated by this port. |
scripts/ |
Read-only helper scripts for research and verification. |
imgs/ |
Public README images. |
The verified Windows setup uses:
- Visual Studio 2022 Community or Build Tools
- LLVM / Clang
- CMake
- Ninja
- Python
- Git
- ReXGlue SDK checked out locally under
tools/rexglue-sdk
The exact commands and environment notes live in docs/toolchain.md.
In the commands below, replace <repo> with the folder where you cloned this repository.
Clone ReXGlue into the ignored tools/ folder:
cd /d <repo>
git clone --recursive https://github.com/rexglue/rexglue-sdk.git tools\rexglue-sdkApply the required local SDK patches from the ReXGlue checkout:
cd /d <repo>\tools\rexglue-sdk
git apply ..\..\docs\rexglue_patches\0001-use-manual-switch-tables-during-block-discovery.patch
git apply ..\..\docs\rexglue_patches\0002-tolerate-modifier-only-physical-protection.patchBuild and install the SDK from an x64 Visual Studio developer shell with LLVM/Clang available on PATH:
cmake --preset win-amd64
cmake --build --preset win-amd64-relwithdebinfo --target installOptional diagnostic patches are documented in docs/rexglue_patches/README.md. They are not required by default.
Before building the port, the extracted default.xex must exist here:
<repo>\assets\game_files\default.xex
The manifest already points at that file:
TheOutFit_Port\theoutfit_manifest.toml
Run codegen from the port directory:
cd /d <repo>\TheOutFit_Port
..\tools\rexglue-sdk\out\install\win-amd64\bin\rexglue.exe codegen .\theoutfit_manifest.tomlThis creates reproducible generated code under:
TheOutFit_Port\generated\default
That folder is ignored and should not be committed. Re-run codegen after changing the manifest, manual function config, switch-table config, or after replacing the extracted default.xex.
From the port directory, using an x64 Visual Studio developer shell with LLVM/Clang available on PATH:
cd /d <repo>\TheOutFit_Port
cmake --preset win-amd64-relwithdebinfo
cmake --build --preset win-amd64-relwithdebinfoThe executable is generated at:
TheOutFit_Port\out\build\win-amd64-relwithdebinfo\theoutfit.exe
Build output is ignored.
cd /d <repo>\TheOutFit_Port\out\build\win-amd64-relwithdebinfo
theoutfit.exeThe executable auto-detects extracted game files in game_files beside the executable, assets\game_files beside the executable, or the same folders in nearby parent directories. You can still override the detected path explicitly with --game_data_root=<path>.
For debugging, use trace logging:
theoutfit.exe --log_level=trace --log_noisy --log_flush_interval=1 --log_file=<repo>\docs\logs\runtime-smoke.logLogs are ignored and should not be uploaded.
Open:
TheOutFit_Port\TheOutFit_Debug.sln
This solution is a small wrapper around the verified CMake/Ninja/Clang build. It launches the RelWithDebInfo executable and uses the same automatic game-data folder detection as direct runs.
- ReXGlue version used locally:
0.8.0(commite8ce24f). - Current SDK Patches: There are currently NO custom patches applied to the SDK. The SDK repository was hard-reset to a clean
v0.8.0state. Previous required/diagnostic patches (0001through0008) are not currently applied.[!TIP] If problems occur, start by applying all non-diagnostic/DirectX patches (such as
0001and0002) to the SDK first before investigating further. - Generated ReXGlue code is reproducible and ignored at
TheOutFit_Port/generated/default. - Latest active investigation: Mitigating performance issues and random crashes during launch and level loading.
For details, see:
docs/regression_log.mddocs/toolchain.mddocs/address_ledger.mddocs/asset_ledger.mddocs/rexglue_patches/README.md
- Original game: The Outfit by Relic Entertainment, published by THQ.
- Recompilation/runtime framework: ReXGlue.
- Static analysis bridge: bethington/ghidra-mcp.
- Comparative emulator research: Xenia Canary.
- Community recomp references used for layout and documentation research only: TiP-Recomp, reNut, redahm, Re-Cherry, and NaughtyBear_ReStuff.
This repository does not include or distribute game content.
