Back to MCP directory
publicPublicdnsLocal runtime

HAN JIE

XenonRecomp是一个将Xbox 360可执行文件转换为C++代码的工具,支持跨平台重新编译,目前仅支持x86架构。该项目受N64 Recompiled启发,专注于指令转换、内存处理、优化和补丁机制,但不提供运行时实现。

article

README

🚀 XenonRecomp 编译器文档

XenonRecomp 是一款专门用于将 PowerPC(PPC)汇编代码转换为 C++ 的工具,在游戏模拟器开发领域发挥着重要作用。本文档将详细阐述 XenonRecomp 的使用方法和配置要点,涵盖其功能特性、输入输出格式、配置选项以及测试方式等内容。

🚀 快速开始

编译要求

项目要求 CMake 3.20 或更高版本和 Clang 18 或更高版本。由于仓库包含子模块,确保使用 git clone --recursive 进行克隆。

仅推荐使用 Clang 编译器进行开发,因为项目依赖于 Clang 的特定特性。在 Windows 上,可以使用 clang-cl 工具链,并通过 Visual Studio 的 CMake 集成进行开发。

测试转换

XenonRecomp 可以处理 Xenia 项目的 PPC 测试并生成相应的 C++ 文件。通过以下命令进行转换:

XenonRecomp [输入测试目录路径] [输入 PPC 上下文头文件路径] [输出目录路径]

生成的文件可以在 src/xenia/cpu/ppc/testing/bin 目录中找到。

✨ 主要特性

1. 中断处理

config.toml 配置文件中,用户可以定义需要跳过的代码段:

# 禁用中断处理的汇编代码转换为 C++
skip_assembler = ["Altivec"]

2. 调试钩子

通过 config.toml 配置文件,用户可以插入自定义调试钩子:

[[debug_hook]]
name = "调试钩子示例"
address = 0x12345678
registers = ["r0", "r1"]

3. 自定义转换规则

rules.toml 文件中,用户可以自定义汇编指令到 C++ 的转换规则:

# 示例:将 PPC 指令 'add' 转换为 C++ 表达式 'r0 = r1 + r2'
[add]
cpp = "r0 = r1 + r2;"

📦 安装指南

此文档未提及具体安装步骤,若有需要可根据编译要求进行环境搭建。

📚 详细文档

输入输出格式

输入格式

XenonRecomp 接受以下输入:

  • PPC 汇编代码文件:包含需要转换的 PPC 汇编指令。
  • 上下文头文件:定义了汇编代码中使用的寄存器和其他上下文信息。

输出格式

转换后的 C++ 文件,其中包含了将汇编指令转换为 C++ 代码后的结果。输出文件的位置由用户指定。

配置选项

XenonRecomp 提供以下配置选项:

  • 输入目录:指定包含 PPC 汇编代码和上下文头文件的目录路径。
  • 输出目录:指定生成转换后 C++ 文件的目标位置。
  • 调试模式:启用调试信息,便于调试和排错。

📄 许可证

此文档未提及许可证信息。

🔗 特别感谢

本项目得以实现离不开 Xenia 模拟器的 PPC 代码转换器的参考。项目还使用了来自 Xenia Canary 的补丁来处理 XEX 二进制文件。

help

Runtime guide

cloud

Hosted runtime

Hosted servers run from a provider-managed environment. You usually connect the MCP client to the hosted endpoint or follow the provider's authorization flow, without keeping a local process alive

  1. Open provider connection page
  2. Authorize or copy endpoint
  3. Connect from your MCP client
terminal

Local runtime / other methods

Local servers run on your own machine or infrastructure. You normally copy the server_config into your MCP client, install the required package, and provide env variables from env_schema when needed

  1. Copy server_config
  2. Install required package
  3. Fill env variables and restart client