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 可执行文件直接转译成能在 Windows(D3D12)和 Linux(Vulkan)上原生运行的 C++ 代码。
这是模拟器,还是真的转换了游戏代码?它不是模拟器——ReXGlue 执行静态重编译,把 Xbox 360 的 PowerPC XEX 可执行文件变成可移植的 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 构建系统,以及用于 Windows SDK 和 D3D12 头文件的 Visual Studio 2022。
用它必须拥有这份游戏吗?必须——你要把自己合法提取的 Xbox 360 Dante's Inferno ISO 放进 game/,因为仓库里不含任何游戏文件或素材,受版权保护的内容绝不能提交。
做好的移植版也能在 Linux 上运行吧,不只是 Windows?能——重编译完成后,移植版既能在 Windows 上通过 D3D12 运行,也能在 Linux 上通过 Vulkan 原生运行,尽管文档里的构建前提主要围绕 Windows/D3D12 工具链。
代码和游戏素材的许可情况是怎样的?本仓库只包含移植脚手架和配置;它依赖的 ReXGlue SDK 采用 BSD 3-Clause 许可证,而 Dante's Inferno 及其游戏素材仍归权利人所有,不在这里分发。
为什么用静态重编译,而不是 Xenia 这样的模拟器?静态重编译提前把原始的 Xbox 360 机器码转成原生 C++,避免了运行时 JIT/模拟的开销,还能对移植做更深入的原生级定制。
我可以自定义移植版的行为吗?可以——你可以在 src/dantesinfernoapp.h 里重写 OnPostSetup、OnCreateDialogs 和 OnConfigurePaths 这类虚拟钩子;这是用户自己的文件,通过 rexglue init/migrate 重新生成 SDK 内容时也会保留。
ReXGlue 到底是什么?ReXGlue 是执行静态重编译的底层 SDK,把 Xbox 360 的 XEX 可执行文件转译成可移植的 C++;它是一个独立的 BSD 3-Clause 许可项目,本移植把它锁定在 v0.10.0。
游戏的重编译代码是 AI 写的吗?不是——AI 只用于文档草稿、调研和日常 git 工作流任务;所有核心架构、实现和问题解决全部由人类完成。
Creator
florinp93
Size
6.9 MB
Stars
604
Age
1mo
Commits · 90 Days