XenonRecomp logo

XenonRecomp

by hedge-dev

XenonRecomp is a tool that converts Xbox 360 executables into C++ code, which can then be recompiled for any platform. Currently, it only supports x86 platforms due to the use of x86 intrinsics.

View on GitHub

Last updated: N/A

What is XenonRecomp?

XenonRecomp is a tool designed to convert Xbox 360 executables (XEX files) into C++ source code. This C++ code can then be recompiled for different platforms, enabling the execution of Xbox 360 code on other systems. It utilizes x86 intrinsics and focuses on direct instruction conversion, making the output less human-readable but functional.

How to use XenonRecomp?

The tool consists of two main components: XenonAnalyse and XenonRecomp. XenonAnalyse is used to analyze the XEX file and generate a TOML file containing jump table information. XenonRecomp then uses this TOML file, along with a configuration TOML file and the ppc_context.h header file, to perform the recompilation. The configuration TOML file specifies various settings, including file paths, optimization options, and addresses of specific functions. The output is C++ code representing the recompiled Xbox 360 executable.

Key features of XenonRecomp

  • Converts Xbox 360 executables to C++ code

  • Supports x86 platforms

  • Includes XenonAnalyse for jump table detection

  • Offers various optimization options

  • Provides mid-asm hook functionality for custom code injection

  • Supports explicit function boundary definition

Use cases of XenonRecomp

  • Reverse engineering Xbox 360 games

  • Porting Xbox 360 games to other platforms

  • Analyzing Xbox 360 game code

  • Creating custom patches and modifications for Xbox 360 games

FAQ from XenonRecomp

What platforms are supported?

Currently, only x86 platforms are supported due to the use of x86 intrinsics.

Is the output code human-readable?

The output code is not very human-readable as the instructions are directly converted without any effort to make them resemble decompiled code.

What is XenonAnalyse used for?

XenonAnalyse is used to detect jump tables in the XEX file and generate a TOML file containing this information, which is then used by XenonRecomp.

How are jump tables handled?

Jump tables are detected statically using XenonAnalyse, and the recompiler generates real switch cases for these jump tables based on the information in the TOML file.

What are mid-asm hooks?

Mid-asm hooks allow users to insert custom function calls directly into the translated C++ code at specific instruction addresses, enabling custom code injection and modification.