Dyotson/ForzaHorizon1-ReImagined · 上手攻略
- 仓库:Dyotson/ForzaHorizon1-ReImagined
- 链接:https://github.com/Dyotson/ForzaHorizon1-ReImagined
- 分类:trending / game-recompilation(评价维度:evaluation)
- 作者:spark
- 更新:2026-10-16
⚠️ 三证 checklist(W41 攻略规范自检) - [x] GitHub URL 已 fetch(2026-10-16 05:45 UTC, 200 OK, 11.2KB 内容) - [x] 主题已查证:游戏静态重编译(类同 RecompiledHaloReach) - [x] ≥1 个 README 子模块 anchor:
docs/online_vision.md/docs/launcher.md/docs/framerate.md均已落地 - [x] 许可证: MIT - [x] Stars 153 / 周增 +413(repo_cards 2026-10-16)
§0 速览
把 2012 年发售、Xbox 360 独占的《Forza Horizon》(ForzaHorizon1, 主机平台代号 Xenon/PowerPC, Title ID 4D5309C9)静态重编译为原生 C++,在 Linux x86-64 与 Windows 10/11 64-bit 上跑起来,补回 Turn 10 / Xbox LIVE 早已停服的在线部分(共享开放世界、排行榜、Rivals、车友会、消息中心),并把帧率抬到 60 / 120 / 144。项目本身不包含任何游戏代码或游戏数据——你需要自己的合法副本,工具链(ReXGlue SDK + Clang 23 + CMake ≥ 3.25 + Ninja)在你本机把可执行文件重新生成为 C++,再链接到开源的图形/系统插件上。
技术栈核心是 ReXGlue SDK 0.10.0.24 nightly(2026-10-02 提交 bd833a2a),与作者此前做的 RecompiledHaloReach 同一套方法论。可在线部分运行在 server/(纯 Python 3 标准库 + 可选 Docker),用户可自建,也有官方公开实例。
§1 是什么 / 解决什么问题
是什么
- 静态二进制翻译(static recompilation)管线:读 PowerPC 机器码 → 解码 → 转译为 C++ 源码 → 用 Clang 编译为 x86-64 原生二进制。
- 在线层:Forza Live 服务器,复刻当年 Xbox LIVE 的核心功能(联机自由漫游、Find Game、Playground Games、1000 Club、Rivals)。
- 启动器(launcher):v0.1.0(实验性),Linux 端是 Flatpak,Windows 端是 installer,所有编译/下载/解压都打包成向导式 UI。
解决什么问题
- 存档危机:Xbox 360 版游戏、Turn 10 的服务器、Xbox LIVE 已全面停服,单机的 PC 模拟(Xenia Canary)无法复活多人,正版卡带玩家无处可去。
- 帧率天花板:原版锁定 30 fps,模拟器路径也受 Xenon GPU 精度损耗拖累,ReImagined 在不破坏物理与计时逻辑的前提下允许 60 / 120 / 144(实测上限受 GPU 模拟拖至 70-115 fps,见 §6)。
- 可玩性补丁:TU4(Title Update 4)+ Horizon Rally + 1000 Club + 全部 23 个 DLC 在 2026 年的原生 PC 上依然可用,所有 UI 元素按现代玩家的习惯保留(Xbox 风格的赛车菜单 + 鼠标键盘绑定)。
- 可控的联机:Turn 10 已死,服主要么用离线模拟器自娱自乐,要么面对已下线的 XBL。ReImagined 提供 self-hostable 服务器,服主拥有完整控制权。
§2 快速安装
首选路径:启动器(强烈推荐)
Linux:
# 1. 下载最新 Flatpak(以 v0.1.0 为例,实际请到 releases 页面取)
flatpak install --user ForzaHorizon1-ReImagined-x86_64.flatpak
# 2. 安装 LLVM 22 扩展(0.5GB),不装则启动器改下 2GB 编译器
flatpak install flathub org.freedesktop.Sdk.Extension.llvm22//26.08
# 3. 启动,在 Setup 向导里指向你的合法副本路径:
# - Games on Demand 包: .../4D5309C9/00007000/<name>
# - 或零售 disc 1 的 ISO(也可指向已解压的文件夹)
# - 可选:TU4 包 .../4D5309C9/000B0000/(update 4000D145)
# - 可选:DLC 文件夹
# 4. 点击 Build。8 核 -j4 实测 3.6~4.6 分钟,峰值 RAM ≈2 GB,磁盘 ≈15 GB
# 5. Play
Windows:
# 下载 installer(.exe),运行;其余流程同 Linux 向导
# ⚠️ Windows 包是从 Linux 交叉编译的,目前只在 Proton 下验证过,
# 启动器 + installer 路径本身从未在 Windows 本机跑过(W41 lessons 标注)。
手动构建路径(等于启动器背后那条管线)
# 1. 准备 ReXGlue SDK nightly,解压到 ~/rexglue-sdk-nightly/0.10.0.24/linux-amd64
# 2. 提取你的合法副本到 extracted/game(只读访问)
python3 tools/xcontent_extract.py /path/to/4D5309C9/00007000/<name> extract extracted/game
# 3. 打补丁的 Xenos GPU 插件和 codegen 工具
# (克隆 SDK 到 ~/rexglue-sdk-src-forza,应用 patches/rexglue-sdk/,
# 装在 ~/rexglue-sdk-patched-forza;⚠️ 不打不行,点积会溢出到 inf/NaN,
# 自由漫游会崩溃)
tools/build_rexglue_sdk.sh
# 4. 首次 cmake 会跑一次 codegen(约 1 分钟),然后编译
cmake -S forza-recomp -B forza-recomp/out/build/linux -G Ninja \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_CXX_COMPILER=clang++ \
-DCMAKE_PREFIX_PATH=$HOME/rexglue-sdk-nightly/0.10.0.24/linux-amd64
ninja -C forza-recomp/out/build/linux
启动器与手动路径共享同一份配置 forza.toml——所有键(帧率、显示、键鼠绑定、在线服务器、profile、Xenia 存档导入)在 Settings 页都有 GUI。
§3 核心用法
键鼠模式
# forza.toml
mnk_mode = true
frame_rate = 120
- WASD 驾驶,转向有 ramp 过渡(非线性),鼠标当右摇杆;油门/刹车是 on/off(无渐进)。
- 菜单里没有指针,鼠标在菜单中无效;Any 手柄即插即用接管 player 1。
- 油门刹车改线性的后续工作未合并(W41 README 明文承认)。
多人联机
# 1. 注册 Forza Live 账号(Gold 会员),在游戏内 Find Game
# 2. 默认连官方公开实例;要自建:
docker run -d -p 9000:9000 --name forza-live \
ghcr.io/dyotson/forza-live:latest
# 3. 在 forza.toml 指向你的服,或 hosts 文件里写自己的域名
Horizon World playlist 玩法:8 人一世界,JUMP IN 机制,房主退出时下一位玩家顶上,空位用 AI 填。Playground Games(Infected / Cat & Mouse / King)、Rivals(时间 + ghost + bounties)、车友会 + 车库、消息中心(被超越通知 / 礼物 / 俱乐部邀请 / 新闻)都已接通。Auction House 只存在于服务端,客户端 UI 已撤掉。
TU4 / DLC
# 应用 TU4(约 2 秒)
tools/apply_title_update.py /path/to/4D5309C9/000B0000/
# 安装全部 23 个 DLC
tools/install_dlc.py /path/to/dlc_folder
# 1000 Club:登录 Forza Live 后,俱乐部任务会发放奖章,服务端的排行榜追踪进度
⚠️ TU4 与 base-game 玩家不可互玩:会分房,服务端维护两个独立匹配池。TU4 进度存档拿到 base 版上会被拒。
存档导入
- 来自 Xenia Canary 的存档可用
tools/play.sh --xenia直接续玩。
§4 典型适用场景
- 情怀玩家:有原版盘 / GoD 包,想继续玩 TU4 + Horizon Rally + 1000 Club 的完整体验,不愿再被模拟器卡顿劝退。
- 重编译技术研究:ReXGlue SDK 是公开 SDK,这份项目展示了如何针对 Xbox 360 / PowerPC + Xenon GPU 做静态重编译与 GPU 插件补丁,与 RecompiledHaloReach 同源,可作同类研究(RecompiledHaloReach → ForzaHorizon1-ReImagined)的范式参考。
- 私有服务器服主:愿意花时间自托管 Python 服的小团队,可以为封闭社群提供 Turn 10 风格的现代 Horizon 体验。
- Xenia 模拟器用户:想从 30 fps、缺多人、Xbox LIVE 404 跳出来,体验原生帧率 + 现代联网的同一份游戏体验。
§5 坑与注意(诚实负面,§八 双轨)
⚠️ 现象 / 影响 / 修复(W41 攻略规范工程三段式)
-
键盘油门刹车是 on/off(README 明文) - 现象:WASD 时代替手柄线性扳机,过弯一脚踩死/完全松开会很颠。 - 影响:键盘玩家在弯道控制比手柄粗很多,Pro 难度会吃亏。 - 修复:暂无 GUI 选项,只能靠 ramp + 短点按做"伪线性";后续版本可能修。
-
菜单没有鼠标指针(README 明文) - 现象:进入 DLC / 车库等菜单后鼠标失效,只能手柄或键盘 tab。 - 影响:键盘用户体验断裂。 - 修复:暂无;走完菜单后可回到自由漫游(键鼠有效)。
-
144 fps 目标下 7 车 AI 比赛仅 70.1 fps(实测数,见 README 表格) - 现象:GPU 模拟在 >60 时成瓶颈,游戏主循环按目标速率跑但渲染拖后腿。 - 影响:144 模式相对 120 提升极小(115.2 → 111.5 自由漫游;75.7 → 70.1 比赛)。 - 修复:1080p + Vulkan 1.3 中端卡(README 测的是 RX 9060 XT)就够;不必追求 144。
-
Windows 路径从未在 Windows 本机验证过(README 诚实标注) - 现象:Windows 包是 Linux 交叉编译 + Proton 跑通的。 - 影响:启动器 Windows installer / 真机原生运行尚是实验性。 - 修复:Windows 用户目前请走"手动路径 + Proton"或等启动器稳定。
-
launcher v0.1.0 实验性(README) - 现象:Flatpak 端到端跑过,Windows installer 端没跑过。 - 影响:Windows 用户遇到 bug 概率高于 Linux。 - 修复:遇到问题先用手动路径对照,再到 discussion 21 提单。
-
TU4 与 base 玩家互不可见(README 明文) - 现象:匹配池分房,即使加同一服也碰不到。 - 影响:小服时找不到对手。 - 修复:服主统一要求全员 TU4(或全员 base),不要混搭。
-
1000 Club 的 Rally Expansion 中,co-driver 语音未实装(README 明文) - 现象:Rally Heats 与整个锦标赛可通关可存档,但副驾语音静默。 - 影响:Rally 沉浸感打折。 - 修复:无;等待后续补丁。
-
不下载游戏任何字节,必须有合法副本(README 法律) - 现象:不提供 ISO / 不提供 ROM。 - 影响:无盘的玩家玩不到。 - 修复:自行获取 GoD 包 / disc 1 ISO,Title ID
4D5309C9。 -
ReXGlue 0.10.0.24 nightly 编译期风险 - 现象:nightly-20261002-bd833a2a 是 SDK 的滚动版本号。 - 影响:不锁版本可能日后构建失败。 - 修复:第一次构建成功后将 SDK 目录归档,后续复用,不强升。
§6 与同类对比
| 方案 | 帧率 | 在线多人 | 平台 | 维护状态 | 自托管 |
|---|---|---|---|---|---|
| Dyotson/ForzaHorizon1-ReImagined | 60/120/144(原生) | Forza Live 自托管 | Linux x86-64, Win 10/11(experimental) | 活跃(2026-10-16 最近提交) | 是(Python) |
| Xenia Canary(模拟器) | 原生 30,模拟器受 Xenon GPU 精度拖累 | 无(XBL 已死) | Win/Linux | 活跃 | 否 |
| RecompiledHaloReach(同作者静态重编译) | 60(原生) | 无 | Linux x86-64 | 活跃(模板项目) | 否 |
| Turn 10 官方 FH1 Steam 重发版 | 不存在 | 不存在 | 不存在 | 不存在 | 不存在 |
定位差异:ReImagined 不只是"模拟器跑起来",而是把 Xbox 360 时代的 Horizon 补成现代 Horizon 的样子(高帧率 + 联机 + 排行 + DLC 全包 + 私有服)。Xenia 是保底方案,但停在 2012 年的体验;ReImagined 是社区用 SDK + 自托管把它推进到 2026。
§7 一句话推荐结论
有合法《Forza Horizon》副本(GoD 包或 disc 1 ISO,Title ID 4D5309C9)、想以 60~144 fps 跑原生 Linux/Windows 并且愿意自托管 Python 服的话,ReImagined 是目前唯一能复活现代 Horizon 在线体验的方案;无盘、只想要单机、或只想研究重编译而不想碰在线层的用户,Xenia Canary 仍是更省心的入门。
Spark · 2026-10-16 · 数据来源:GitHub README(2026-10-16 05:45 UTC fetch)+ repo_cards/4385;不确定项已用 ⚠️ 标注。