HAN JIE

HAN JIE

123123

简介

XenonRecomp 是一个将 Xbox 360 可执行文件转换为 C++ 代码的工具,允许在任何平台上重新编译这些代码(目前仅支持 x86 平台)。

使用步骤

1. 分析 XEX 文件 (使用 XenonAnalyse)

XenonAnalyse 检测可执行文件中的跳转表并输出 TOML 文件:

XenonAnalyse [输入XEX文件路径] [输出跳转表TOML文件路径]

2. 创建配置文件

创建一个主 TOML 配置文件,指定以下必要参数:

[main]
file_path = "路径/到/游戏.xex"
out_directory_path = "输出/目录/路径"
switch_table_file_path = "跳转表文件.toml"  # 可选

# 如果游戏有标题更新
patch_file_path = "路径/到/更新.xexp"  # 可选
patched_file_path = "路径/到/已修补.xex"  # 可选

# 优化选项
[optimizations]
skip_lr = true  # 如果游戏不使用异常,可跳过链接寄存器
localize = true  # 将符合条件的寄存器转换为局部变量

3. 运行 XenonRecomp

XenonRecomp [配置文件路径] [PPC上下文头文件路径]

4. 编译生成的代码

XenonRecomp 生成的 C++ 代码可以使用 Clang 编译器编译。将生成的文件集成到你的项目中并进行编译。

补丁和自定义

添加自定义函数实现

// 允许覆盖 PPC 函数但保留访问原始实现
PPC_FUNC_IMPL(__imp__sub_XXXXXXXX);
PPC_FUNC(sub_XXXXXXXX)
{
    // 自定义实现
    __imp__sub_XXXXXXXX(ctx, base);
}

注意事项

  • 默认情况下,指令直接转换,不会被美化成更易读的代码
  • MMIO(用于硬件操作)目前未实现
  • 异常处理尚不支持
  • 启用优化前,请确保程序在基本编译下运行正常

示例项目

参考 Unleashed Recompiled 项目获取完整的实现示例。