hells-gate-recomp README

The project's README from github.com/florinp93/hells-gate-recomp. As one markdown file: README.md.

Dante's Inferno - Xbox 360 to PC Port (ReXGlue)

Dante's Inferno - Fan Artwork

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.

Ko-fi Discord Other Projects

🤖 AI Usage Disclosure

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.

How AI Was Used:

Human Oversight:

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.

Project layout

.
├── 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

Prerequisites

Getting started

1. Set up the SDK

.\setup.ps1

This clones the ReXGlue SDK (pinned to v0.10.0) into thirdparty/rexglue-sdk and initializes its submodules.

2. Provide the game files

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.

3. Build the SDK CLI (one time)

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\).

4. Regenerate SDK-managed files

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

5. Configure & build the port

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.

6. Run

.\out\win-amd64\Release\dantes_inferno.exe
# Useful flags:
#   --log_level=trace     verbose logging
#   --log_file=run.log    write logs to file

Customizing the port

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.

License

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.

hells-gate-recomp (florinp93/hells-gate-recomp)

Searching Database…

Что это?Это порт со статической рекопмиляцией, который переносит Xbox 360-версию Dante's Inferno на нативный PC, используя ReXGlue SDK для прямого перевода исходного исполняемого файла PowerPC XEX в код на C++, который нативно работает на Windows (D3D12) и Linux (Vulkan).
Это эмулятор или код игры реально конвертируется?Это не эмулятор — ReXGlue выполняет статическую рекопмиляцию, превращая исполняемый файл PowerPC XEX от Xbox 360 в переносимый C++, который компилируется в настоящий нативный исполняемый файл, без слоя эмуляции или JIT во время выполнения.
Как собрать и запустить порт?Клонируйте зафиксированный ReXGlue SDK (v0.10.0) в thirdparty/rexglue-sdk, один раз соберите SDK CLI, положите собственный снятый образ Xbox 360 ISO в game/ (точка входа в game/default.xex), перегенерируйте управляемые SDK каркасные файлы, затем сконфигурируйте и соберите — сборка автоматически запускает rexglue codegen, чтобы перевести XEX в C++, и создаёт out\win-amd64\Release\dantesinferno.exe.
Что нужно установить перед сборкой?Windows 10/11 x64, Clang 18+ (LLVM/Clang), CMake 3.25+, система сборки Ninja и Visual Studio 2022 для Windows SDK и заголовков D3D12.
Нужно ли владеть игрой, чтобы этим пользоваться?Да — вы должны извлечь в game/ собственный законно снятый образ Xbox 360 ISO Dante's Inferno, поскольку репозиторий не содержит игровых файлов или ассетов, а защищённый авторским правом контент нельзя коммитить никогда.
Готовый порт может работать и на Linux, а не только на Windows?Да — после рекопмиляции порт нативно работает на Linux через Vulkan так же, как на Windows через D3D12, хотя документированные требования к сборке касаются инструментария Windows/D3D12.
Как обстоят дела с лицензированием кода и игровых ассетов?Этот репозиторий содержит только каркас порта и конфигурацию; ReXGlue SDK, от которого он зависит, лицензирован под BSD 3-Clause, а Dante's Inferno и его игровые ассеты остаются собственностью правообладателей и здесь не распространяются.
Зачем использовать статическую рекопмиляцию вместо эмулятора вроде Xenia?Статическая рекопмиляция заранее преобразует исходный машинный код Xbox 360 в нативный C++, избавляя от накладных расходов JIT/эмуляции во время выполнения и позволяя более глубокую настройку порта на нативном уровне.
Можно настроить поведение порта?Да — можно переопределить виртуальные хуки вроде OnPostSetup, OnCreateDialogs и OnConfigurePaths в src/dantesinfernoapp.h — файле, принадлежащем пользователю и переживающем перегенерацию SDK через rexglue init/migrate.
Что такое ReXGlue?ReXGlue — это лежащий в основе SDK, выполняющий статическую рекопмиляцию и переводящий исполняемые файлы XEX от Xbox 360 в переносимый C++; это отдельный проект под лицензией BSD 3-Clause, зафиксированный на v0.10.0 для этого порта.
ИИ написал рекопмилированный код игры?Нет — ИИ использовался только для черновиков документации, исследований и рутинных задач git-процессов, тогда как вся ключевая архитектура, реализация и решение проблем выполнены целиком людьми.
Creator
florinp93
Size
6.9 MB
Stars
540
Age
1mo
Commits · 90 Days