The project's README from github.com/florinp93/hells-gate-recomp. As one markdown file: README.md.
Fan artwork by POOTERMAN (#12)
A static recompilation port of Dante's Inferno (Xbox 360) to native PC, built with the ReXGlue SDK.
ReXGlue converts Xbox 360 PowerPC XEX executables into portable C++ that runs natively on Windows (D3D12) and Linux (Vulkan) - no emulation, no JIT at runtime.
Transparency and integrity are important to this project. Artificial Intelligence (AI) tools were utilized as part of the development and maintenance workflow, strictly serving as an assistant to handle repetitive, time-consuming, and low-level tasks.
While AI accelerated the auxiliary workflow, all core architectural decisions, advanced problem-solving, code implementation, and final reviews were entirely human-driven. The AI served to eliminate friction, allowing focus on high-level logic and feature development.
.
├── CMakeLists.txt # Build config (SDK-managed, regenerate w/ rexglue init --force)
├── CMakePresets.json # Platform build presets (SDK-managed)
├── dantes_inferno_manifest.toml # ReXGlue project manifest (SDK-managed)
├── generated/
│ ├── rexglue.cmake # SDK boilerplate (auto-generated, DO NOT EDIT)
│ └── default/ # codegen output (gitignored, built on demand)
├── src/
│ ├── main.cpp # App entry point (SDK-managed)
│ └── dantes_inferno_app.h # App class - override hooks here (user-owned)
├── game/ # Extracted Xbox 360 game files (gitignored)
│ └── default.xex # <- entrypoint XEX goes here
├── metadata/ # Achievement icons / embedded metadata
├── thirdparty/
│ └── rexglue-sdk/ # ReXGlue SDK (cloned via setup script, gitignored)
├── docs/
│ └── rexglue_notes.md # ReXGlue workflow & command reference
├── setup.ps1 / setup.sh # Clone SDK + init submodules
└── .gitignore
.\setup.ps1
This clones the ReXGlue SDK (pinned to v0.10.0) into thirdparty/rexglue-sdk
and initializes its submodules.
Extract your ripped Xbox 360 ISO into game/. The entrypoint executable must be
at game/default.xex (the path set in dantes_inferno_manifest.toml). Keep the
original directory layout for all other assets.
Do not commit anything under
game/- it contains copyrighted assets used locally for recompilation only.
cmake --preset win-amd64-release -DREXSDK_DIR=thirdparty\rexglue-sdk
cmake --build out\build\win-amd64-release --target rexglue
Add the built rexglue.exe to your PATH (it lives under
thirdparty\rexglue-sdk\out\win-amd64\Release\).
Once game/default.xex exists, regenerate the SDK-managed scaffolding so it
carries the exact version/build stamp:
rexglue init --force --project_name dantes_inferno --project_root . --xex_path game\default.xex --game_root game
cmake --preset win-amd64-release -DREXSDK_DIR=thirdparty\rexglue-sdk
cmake --build out\build\win-amd64-release
The build automatically runs rexglue codegen (translating the XEX to C++) the
first time and whenever inputs change. Output: out\win-amd64\Release\dantes_inferno.exe.
.\out\win-amd64\Release\dantes_inferno.exe
# Useful flags:
# --log_level=trace verbose logging
# --log_file=run.log write logs to file
Override virtual hooks in src/dantes_inferno_app.h (e.g. OnPostSetup,
OnCreateDialogs, OnConfigurePaths). That file is user-owned and
preserved across rexglue init / rexglue migrate. See
docs/rexglue_notes.md for the full hook list and workflow reference.
This repository contains only port scaffolding and configuration. The ReXGlue
SDK is licensed under the BSD 3-Clause License (see thirdparty/rexglue-sdk/).
Dante's Inferno and all game assets are property of their respective rights
holders; nothing under game/ is distributed here.