# Cars — Xbox 360 ReXGlue Recompilation Experimental native recompilation bring-up for the Xbox 360 version of **Cars**, built around ReXGlue 0.10. The repository contains the title-specific ReXGlue manifest, host application, build/runtime tooling and analysis notes. It does **not** contain the game executable or retail assets. > **Project status:** the current bring-up reaches rendered guest output and > controller input paths, but this is not yet a finished PC port. ## Current target | Field | Value | |---|---| | Title ID | `0x545107EA` | | Media ID | `0x5A9FC4C4` | | Internal module | `CarsX360_release_ltcg.exe` | | Image base | `0x82000000` | | Entrypoint | `0x8210D438` | | Expected XEX | `game/Default.xex` | | SHA-256 | `558372f9c68334cec6ed29a4416163eec896d5c7e6fe4cb93d2079a8f9cdd716` | | ReXGlue baseline | `0.10.0-dev.g398e2ba` | ## Requirements The Linux workflow expects a recent 64-bit Linux environment with: - CMake 3.25 or newer - Ninja - Clang 18 or newer - Git - Python 3 - Vulkan and the host window/input runtime libraries required by ReXGlue `build.sh` detects Arch Linux, Debian/Ubuntu and Fedora-family systems. Missing packages are never installed without explicit authorization. ## Game setup Copy your own supported game extraction into `game/`. Codegen requires: ```text game/Default.xex ``` The launcher also expects the original `AppStart/`, `Audio/`, `Res/` and `Shaders/` directories. See [`game/README.md`](game/README.md) for details. ## Build From the repository root: ```bash ./build.sh --bootstrap-sdk ``` This bootstraps the pinned ReXGlue SDK under `.deps/`, runs stamp-aware codegen and builds the project under `recomp/out/`. If ReXGlue is already installed: ```bash ./build.sh --sdk-prefix /path/to/rexglue/prefix ``` Useful variants: ```bash ./build.sh --debug ./build.sh --release ./build.sh --clean ./build.sh --check ./build.sh --jobs 8 ``` The default configuration is `RelWithDebInfo`. ## Run With the complete extracted game tree under `game/`: ```bash ./run.sh ``` The current Vulkan compatibility baseline intentionally forces: ```text --render_target_path_vulkan=fsi --readback_resolve=full ``` These options currently provide the reliable 3D path for this bring-up, but can be substantially slower than the faster render-target paths. They are kept in `run.sh` so the default command starts from the known-working graphics path. Additional ReXGlue arguments can still be passed after `--`. Examples: ```bash ./run.sh --debug ./run.sh --gdb ./run.sh -- --fullscreen --resolution=720p ./test-boot.sh --timeout 20 -- --debug ./gdb.sh ``` ## Repository layout ```text Cars-X360-ReXGlue/ ├── build.sh # dependency, SDK, codegen and build orchestration ├── run.sh # staged runtime launcher ├── test-boot.sh # bounded boot smoke test ├── gdb.sh # guest invalid-function diagnostics ├── recomp/ │ ├── cars_x360_manifest.toml # title-specific ReXGlue manifest │ ├── CMakeLists.txt │ ├── CMakePresets.json │ ├── src/ # host application integration │ └── generated/ # small ReXGlue CMake scaffold only ├── analysis/ # static XEX metadata ├── docs/ # runtime/import status ├── notes/ # bring-up methodology ├── tools/ # local XEX inspection helper ├── game/ # user-supplied retail files; ignored by Git └── logs/ # local diagnostics; ignored by Git ``` ## Development rules Title-specific function boundaries must be derived from the exact supported XEX. Keep generated PPC translation units out of version control. Prefer narrow, evidence-backed manifest boundaries and host-side fixes over broad stubs that hide missing behavior. ## License Original project code is licensed under **GPL-3.0-only**. ReXGlue and upstream components retain their own licenses; see [`THIRD_PARTY_NOTICES.md`](THIRD_PARTY_NOTICES.md). No retail Cars executable, assets, encryption keys or other proprietary game content are included or licensed by this repository.