arcanite24/pinyon-shift · 上手攻略

  • 仓库:arcanite24/pinyon-shift
  • 链接:https://github.com/arcanite24/pinyon-shift
  • 分类:游戏逆向 / 静态重编译
  • 作者:Tom
  • 更新:2026-08-28

这是什么

Pinyon Shift 是一个将 Xbox 360 版《Forza Horizon》(2011)静态重编译为原生 Windows 可执行文件的开源项目。通过 ReXGlue 框架将 Xbox 360 二进制指令翻译为 x86-64 指令,使这款已经无法在原主机上游玩的老游戏可以在现代 Windows 10/11 PC 上运行。

项目目前处于公共预览阶段,功能不完整但已经可以实际驾驶车辆——README 原文用"early, imperfect, and surprisingly drivable"描述这种状态。

⚠️ 本项目不包含游戏本体、美术资源、生成代码或预编译程序。玩家必须自行持有原始光盘并 dump 为 ISO 镜像才能使用。


解决什么问题

《Forza Horizon》是 2011 年在 Xbox 360 平台发行的开放世界赛车游戏。2026 年的现实是:

  • 原版 Xbox 360 早已停产,硬件老化,光驱读盘能力下降
  • 微软从未官方移植该作至现代平台
  • 模拟器(如 Xenia)配置复杂,性能表现不一

Pinyon Shift 通过静态重编译而非动态模拟,直接把游戏逻辑编译为原生代码,性能潜力更大,且理论上画质/帧率不受模拟开销限制。


快速安装

前置要求

项目 要求
操作系统 Windows 10/11 x64
显卡 支持 DirectX 12
磁盘空间 约 25 GB 可用
网络 用于下载构建工具(约数 GB)
游戏镜像 仅支持 USA 零售基盘,序列号 MS-2505,Title ID 4D5309C6

⚠️ 目前不支持其他地区版本、标题更新或任何被修改过的镜像。镜像校验失败则直接拒绝,不提供下载或修复。

步骤一:下载启动器

从 GitHub Releases 页面下载 PinyonShift-Launcher.zip,解压到任意文件夹,运行 PinyonShift.Launcher.exe

⚠️ 启动器目前未代码签名,Windows Defender SmartScreen 会报警。仅从本仓库 Releases 页下载 ZIP,发布说明中有 SHA-256 校验值,请核验后再运行。

步骤二:准备原始 ISO

将自己持有的 Forza Horizon Xbox 360 原版光盘 dump 为 ISO 文件。支持的 exact size 和 SHA-256 在 config/supported-dumps.json 中有记录,必须完全匹配。

步骤三:通过启动器构建

  1. 运行 PinyonShift.Launcher.exe
  2. 选择你 dump 的 ISO 文件
  3. 点击 Verify & Build
  4. 首次构建耗时 20–60 分钟,需保持 Launcher 窗口打开
  5. 构建完成后自动进入游戏

核心用法

命令行构建(非 Launcher 方式)

如果你在仓库 checkout 中,可以直接用 PowerShell 脚本:

# 完整构建(需管理员权限安装 Build Tools 时)
.\tools\setup-preview.ps1 -IsoPath C:\path\to\your-disc.iso

# 仅验证 ISO 镜像
.\tools\setup-preview.ps1 -IsoPath C:\path\to\your-disc.iso -VerifyOnly

# 修改 host code 或 patches 后重新编译(不重新提取)
.\tools\build-preview.ps1

# 打包发布用 launcher 安装包
.\tools\package-launcher.ps1

启动游戏

.\tools\launch-preview.ps1

控制器

Xbox 360 版 Forza Horizon 原生支持手柄,Pinyon Shift 使用 SDL mappings:

  • 推荐:Xbox 控制器(原生支持)
  • 8BitDo Ultimate 2C Wired(2dc8:301d):内置 explicit mapping,插入即用
  • 其他手柄:确保 gamecontrollerdb.txtpinyon_shift.exe 同目录;关闭 Steam 或其他控制器映射软件后重试

⚠️ Xbox 菜单内不支持鼠标点击,使用手柄 A 键或空格键激活选中项。登录界面左键点击 = 手柄 A,会激活当前选中行。


技术架构(静态重编译原理)

原始 ISO(Xbox 360 格式)
  → setup-preview.ps1
      ① 验证 ISO hash/size
      ② 安装 Visual Studio Build Tools(如缺失)
      ③ 下载并打补丁 ReXGlue 源码
      ④ 提取 disc 内容
      ⑤ 生成翻译后的 x64 源码(.local/)
  → build-preview.ps1
      ⑥ CMake 编译 → out/build/win-amd64-release/pinyon_shift.exe

ReXGlue 是该项目依赖的静态重编译框架。整体流程是: 1. 读取原始 Xbox 360 二进制(Read-only,不修改 ISO) 2. 生成等效的 x64 C++ 代码(机器翻译,非模拟) 3. 本地编译为 Windows 原生 PE 文件

⚠️ 生成的所有翻译代码存于 .local/ 目录,不受 Git 管理。重新 clone 后需重新生成。


典型适用场景

  1. 收藏级玩家:持有原版光盘但没有可用 Xbox 360,想在现代 PC 保留游戏体验
  2. 逆向/重编译技术研究:学习静态重编译的实操案例(ReXGlue + Xbox 360 指令集翻译)
  3. Mod 准备:原生 Windows 程序更易于接驳调试工具和 modding 工具链
  4. 老游戏保真研究:对比模拟器方案与静态编译方案的画质/性能差异

坑与注意

⚠️ 版权与法律红线

  • 本项目不是游戏,也不包含游戏内容,只包含独立编写的源码、构建配置和补丁
  • Pinyon Shift 与微软 / Turn 10 Studios / Playground Games 无任何关联或授权
  • 项目采用 BSD 3-Clause License(仅限自主编写部分),第三方依赖各有其许可证
  • 详细法律说明见 docs/LEGAL.md
  • 请确保在持有原始光盘的前提下使用,仅供个人备份使用目的

⚠️ 构建失败常见原因

问题 解决方案
ISO hash/size 不匹配 确认是 USA 基盘且未做任何修改
Build Tools 安装后未重启 Windows 重启后再试
磁盘空间不足 25 GB 释放空间后重试
GPU 不支持 DirectX 12 更新显卡驱动或更换显卡
网络中断导致下载失败 重开 Launcher,自动续传(已下载文件 SHA-256 验证后复用)

⚠️ 控制器注意事项

  • Pinyon Shift 对控制器映射有定制需求,通用手柄需额外配置 gamecontrollerdb.txt
  • Steam 的控制器覆盖配置可能干扰 SDL mapping,游玩时建议关闭 Steam 或取消其手柄支持
  • 方向盘(如 Logitech G29)支持情况未测试,不保证可用

⚠️ 报告 Bug 的正确方式

  • 游戏异常退出时,Launcher 自动抓取诊断 ZIP(包含 crash ID / 运行时日志 / 系统信息)
  • 不要附赠游戏文件、生成代码或存档文件
  • 诊断 ZIP 中已过滤私人路径、内存 dump 和游戏内容,但仍含 crash 时的进程内存碎片,私下分享给 maintainer 即可,不要公开发布

与同类对比

项目 类型 支持游戏 平台 成熟度
Pinyon Shift 静态重编译 Forza Horizon (Xbox 360) Windows 预览阶段,可驾驶
Xenia 高等级模拟器 少数 Xbox 360 游戏 Windows (DX12/Vulkan) 较成熟
Cxbx-Reloaded 重编译 + 模拟混合 少量 Xbox 原创游戏 Windows 早期
Dolphin 模拟器 GameCube / Wii 跨平台 成熟
Falcon (XA2) 商业移植 Forza Horizon 2 (Xbox 360) Xbox One 官方

核心差异:Pinyon Shift 不是模拟,是真正的静态翻译,生成的原生 Windows PE 在 Windows 系统上以普通程序身份运行,不承担动态模拟的运行时开销。这是它与 Xenia 等模拟器最本质的区别。


一句话结论

如果你持有原版 Forza Horizon Xbox 360 光盘且有技术动手能力,Pinyon Shift 提供了目前唯一将这款游戏静态重编译为原生 Windows 程序的开放路径——早期不完美,但确实能开;对于逆向/重编译技术学习者,这也是一个值得研究的 ReXGlue 实操案例。


原始链接

  • GitHub: https://github.com/arcanite24/pinyon-shift
  • 构建文档: https://github.com/arcanite24/pinyon-shift/blob/main/docs/BUILDING.md
  • 故障排除: https://github.com/arcanite24/pinyon-shift/blob/main/docs/TROUBLESHOOTING.md
  • 法律说明: https://github.com/arcanite24/pinyon-shift/blob/main/docs/LEGAL.md