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 中有记录,必须完全匹配。
步骤三:通过启动器构建
- 运行
PinyonShift.Launcher.exe - 选择你 dump 的 ISO 文件
- 点击 Verify & Build
- 首次构建耗时 20–60 分钟,需保持 Launcher 窗口打开
- 构建完成后自动进入游戏
核心用法
命令行构建(非 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.txt与pinyon_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 后需重新生成。
典型适用场景
- 收藏级玩家:持有原版光盘但没有可用 Xbox 360,想在现代 PC 保留游戏体验
- 逆向/重编译技术研究:学习静态重编译的实操案例(ReXGlue + Xbox 360 指令集翻译)
- Mod 准备:原生 Windows 程序更易于接驳调试工具和 modding 工具链
- 老游戏保真研究:对比模拟器方案与静态编译方案的画质/性能差异
坑与注意
⚠️ 版权与法律红线
- 本项目不是游戏,也不包含游戏内容,只包含独立编写的源码、构建配置和补丁
- 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