kidoz/cxbx

GitHub: kidoz/cxbx

CXBX 是一款面向 32 位 Windows 平台的初代 Xbox HLE 模拟器,通过 API 桥接而非 CPU 全量解释来实现原版游戏的运行与调试。

Stars: 2 | Forks: 1

CXBX icon

# CXBX [![License: GPL-2.0-or-later](https://img.shields.io/badge/license-GPL--2.0--or--later-blue.svg)](LICENSE) [![Build system: Meson](https://img.shields.io/badge/build-Meson-00ADD8.svg)](https://mesonbuild.com/) [![C](https://img.shields.io/badge/C-C11-555555.svg)](meson.build) [![C++](https://img.shields.io/badge/C%2B%2B-17-00599C.svg)](meson.build) [![Target](https://img.shields.io/badge/target-Win32%20x86-lightgrey.svg)](cross/i686-windows-clang.ini) CXBX 是一款经典的初代 Xbox 模拟器。此代码树包含模拟器、 Win32 启动器/运行时代码、内置的 open-xdk 支持库,以及一个 现代化的基于 Meson 的构建/移植工作区。 这是经典的 caustik CXBX 代码库,而不是 Cxbx-Reloaded。目前它正作为 一个 32 位 Windows/x86 HLE 模拟器被推进,具备可重现的 构建文件、结构化的调试跟踪以及一个模拟器一致性测试套件。 当前活跃的开发者和维护者:Aleksandr Pavlov 。 ## 截图 CXBX emulating Dolphin demos CXBX emulating NestopiaX 1.3 CXBX emulating Turok: Evolution ## 当前状态 本仓库用于开发和模拟器的推进。它不是一个完善的 最终用户发布版本。 - 构建系统:仅限 Meson。 - 主要目标:32 位 Windows (`i686-pc-windows-msvc`),使用 clang/lld 工具链。 - 模拟模型:HLE 加载器/API 桥接;客户机 x86 代码直接在宿主机 CPU 上运行。 - 图形:Direct3D HLE 外加部分寄存器级的 NV2A 模型,用于 MMIO/RAMIN/PFIFO/PGRAPH 方法路径。这不是完整的 NV2A 光栅化。 - 调试:结构化的 `Emu`、`KTRACE|`、`NV2A|` 和一致性跟踪路径。 - 一致性:树内探测套件目前跟踪 CPU、内存、文件 I/O、内核、图形和 NV2A 的行为。 已知正在进行的活跃工作包括源码可移植性、x86 内联汇编/工具链 兼容性、内核导出覆盖率、连续内存行为和图形 推进。 ## CXBX 的工作原理 CXBX 是一个 HLE 模拟器: 1. 它加载一个 Xbox 可执行文件 (`.xbe`)。 2. 它映射客户机镜像并准备内核 thunk 表。 3. 它使用 OOVPA 签名识别 XDK 库函数。 4. 它将定位到的客户机函数 patch 为跳转到宿主机的实现。 5. 客户机 x86 代码在宿主机 CPU 上原生运行。 这使得大多数故障都是 API 边界故障,而不是 CPU 解释器 故障。典型的调试目标是缺失的 XDK 签名、错误的 HLE 实现、未实现的内核序号、FS 段状态以及 GPU MMIO 状态。 ## 快速上手 ### 前置条件 - **clang/LLVM** (clang、lld、llvm-lib、llvm-dlltool) — 主要的工具链。 在 Windows 上,通过 `scoop install llvm` 安装或从 llvm.org 下载。 - **Meson ≥ 0.56** 和 **Ninja** — `pip install meson ninja` 或 `scoop install meson ninja`。 - **Python 3.13+** 配合 **uv** 用于一致性套件和 OOVPA 工具: `pip install uv`。 - **just** (命令运行器) — 可选,但推荐: `scoop install just`。 - **Xbox XDK** (仅在针对 原始 SDK 库构建一致性探测时需要)。使用合法获取并在本地配置的 SDK 安装。 ### 一次性设置 模拟器是 32 位 x86 的,必须使用提供的交叉 文件进行配置。`build-min` 是由 `justfile`、 一致性运行器和文档使用的规范构建目录: ``` just init # uv sync --dev (Python tooling) meson setup build-min --cross-file cross/i686-windows-clang.ini ``` ### 构建 ``` just build # meson compile -C build-min ``` 构建选项(在设置时通过 `-D
标签:C, C++, HLE, Xbox, 数据擦除, 游戏, 逆向工具, 预握手