Browse by type
This project is a static recompilation of Daytona USA (Xbox 360 / XBLA, 2011) using ReXGlue. No copyrighted game files are included.
Building requires completing every step below in order. Skipping any step will cause the next one to fail.
git clone --recurse-submodules <this repo>game/ and run python3 scripts/extract_game.pycmake --preset linux-amd64 -S projectcmake --preset win-amd64 -S projectcmake --build project/out/build/linux-amd64 --config Release --target daytona_codegencmake --build project/out/build/win-amd64 --config Release --target daytona_codegencmake --build project/out/build/linux-amd64 --config Releasecmake --build project/out/build/win-amd64 --config ReleaseLD_LIBRARY_PATH="$PWD/thirdparty/rexglue-sdk/out/linux-amd64/Release" project/out/build/linux-amd64/Release/daytona --game_data_root="$PWD/extracted"project\out\build\win-amd64\Release\daytona.exe --game_data_root=extractedSee the sections below for details on each step and Windows equivalents.
libgtk-3-dev on Debian/Ubuntu, gtk3 on Arch)libx11-xcb-dev on Debian/Ubuntu, libx11 on Arch, libX11-devel on Fedora)config/ ReXGlue manifest/config files
ppc/ PPC metadata headers
project/ host project sources and CMake files
scripts/extract_game.py local STFS package extractor
thirdparty/rexglue-sdk required ReXGlue SDK submodule
The host project sources were copied from the running daytona_working tree,
including:
project/src/daytona_symbols.h
project/src/stubs.cpp
project/src/main.cpp
project/src/daytona_symbols.h is the full symbol map from the working version.
To regenerate codegen or run the project, provide your own legally obtained Daytona USA XBLA package in:
game/
The local package currently used with this tree is:
game/{game_file_with_id}
type: Microsoft Xbox 360 LIVE/STFS package, Arcade Title
title/media: XA-2845, media ID 3CA562D4
size: 240058368 bytes
sha256: db2381451a15a4e537154712213a0309e9ddc33d20bdc03421d80c9939893cef
Extract it from the repository root with:
python3 scripts/extract_game.py
The script extracts the STFS package into:
extracted/
and copies the executable required by ReXGlue to:
assets/default.xex
config/daytona_manifest.toml references that executable as:
../assets/default.xex
game/, extracted/, and assets/ are ignored by git because they contain copyrighted game files.
A successful extraction currently produces 162 files; the root default.xex should be detected by file as:
Microsoft Xbox 360 executable (XA-2845, media ID: 3CA562D4), all regions
This recompilation requires the daytonaxbla branch of the ReXGlue SDK — not the default branch. It is vendored as a git submodule at:
thirdparty/rexglue-sdk
After cloning this repository, initialize it with:
git submodule update --init --recursive
If git submodule status --recursive prints nothing even though .gitmodules
contains thirdparty/rexglue-sdk, the submodule was not recorded in the index.
Re-add it — the -b daytonaxbla flag is required:
git submodule add -b daytonaxbla https://github.com/Subarasheese/rexglue-sdk.git thirdparty/rexglue-sdk
git submodule update --init --recursive
The current submodule checkout used when this tree was prepared is:
82a88a385c456ccfd82eae2b320955d0f028d92d
CMake may warn that no v* tag is reachable from the SDK checkout and fall
back to 0.8.0.0-dev.unknown. That warning did not block configure, codegen, or
the Release build on this tree.
From the repository root:
Linux
cmake --preset linux-amd64 -S project
cmake --build project/out/build/linux-amd64 --config Release --target daytona_codegen
Windows
cmake --preset win-amd64 -S project
cmake --build project/out/build/win-amd64 --config Release --target daytona_codegen
That target uses the rex::rexglue executable built from thirdparty/rexglue-sdk.
The generated/ and config/generated/ directories are local codegen outputs and are intentionally ignored by Git.
Prerequisites: Complete Regenerate codegen first. The build requires generated headers such as
daytona_init.hthat do not exist in the repository.
Configure and build from the repository root.
Linux
cmake --preset linux-amd64 -S project
cmake --build project/out/build/linux-amd64 --config Release
Windows
cmake --preset win-amd64 -S project
cmake --build project/out/build/win-amd64 --config Release
Alternatively on either platform, cd project/ first and run the presets without the -S / path overrides:
# Linux
cd project
cmake --preset linux-amd64
cmake --build --preset linux-amd64-release
rem Windows
cd project
cmake --preset win-amd64
cmake --build --preset win-amd64-release
If configuration fails with a missing SDK message, run:
git submodule update --init --recursive
The Daytona target directly compiles SDK sources including rex_app.cpp, so it
needs two SDK include paths in project/CMakeLists.txt:
thirdparty/rexglue-sdk/thirdparty/imgui
project/out/build/<preset>/rexglue-sdk/include (linux-amd64 or win-amd64)
Without them, the Release build fails with missing imgui.h or
rex/version.h.
Provide the extracted game directory via --game_data_root.
Linux
The executable links against SDK shared libraries from the build output. Run it
with LD_LIBRARY_PATH:
LD_LIBRARY_PATH="$PWD/thirdparty/rexglue-sdk/out/linux-amd64/Release" \
project/out/build/linux-amd64/Release/daytona \
--game_data_root="$PWD/extracted"
For a short smoke test that does not leave the process running:
mkdir -p logs
timeout 20 env \
DISPLAY=:1 \
GDK_BACKEND=x11 \
LD_LIBRARY_PATH="$PWD/thirdparty/rexglue-sdk/out/linux-amd64/Release" \
project/out/build/linux-amd64/Release/daytona \
--game_data_root="$PWD/extracted" \
--log_file="$PWD/logs/daytona_run.log" \
--log_level=debug
If LD_LIBRARY_PATH is omitted, ldd project/out/build/linux-amd64/Release/daytona
shows librexruntime.so => not found and libTracyClient.so => not found.
Windows
The build step automatically copies runtime DLLs next to the executable, so no
PATH changes are needed. Run from the repository root:
project\out\build\win-amd64\Release\daytona.exe --game_data_root=extracted
logs/ and *.log are ignored so local runtime logs are not uploaded.
This has been confirmed to build and run from this checkout after building the Release preset.
During a working run, the log may still print repeated NtQueryInformationFile(XFileXctdCompressionInformation) unimplemented
messages and occasional Skipping Vulkan frame presentation due to async placeholder draw usage in this frame warnings.
If --game_data_root is omitted, startup exits immediately with:
[ERROR] --game_data_root was not provided.
| Feature | Status |
|---|---|
| Arbitrary resolution support (including ultrawide 21:9 and wider) | Planned |
| Keyboard control mapping | Planned |
| Android port | Planned |
| Native rendering (replace Xbox 360 GPU emulation with a native Vulkan/D3D12 backend) | Planned |
$ claude mcp add daytona-xbla-recomp \
-- python -m otcore.mcp_server <graph>