mzzvxm/LARecomp

游戏

把自有的 Xbox 360《午夜俱乐部:洛杉矶》静态重编译成 Windows 原生程序,解决高帧率下物理错乱的问题。

201
17
C++
上线 7 个月

这是一个只服务单款游戏的静态重编译与帧率修复项目,不是通用模拟器。如果你手上已有《Midnight Club: Los Angeles》完整版光盘数据,并且想要原生 Windows 运行与正确的高帧率物理,它值得关注;但仓库本身不包含任何游戏数据。

解决什么问题

你想在现代 PC 上玩一款 Xbox 360 赛车游戏,又不想在输入与硬件之间夹一层运行时翻译。模拟器需要在运行中翻译 PowerPC 代码,而这款游戏的社区高帧率解锁方法往往让模拟速度翻倍,因为原版代码按固定 30 Hz 时间步长设计。LARecomp 改为把 default.xex 中的 PowerPC 代码提前翻译成原生 C++,由 ReXGlue 运行时接管文件 I/O、GPU 命令、音频与线程,最终得到一个可直接编译运行的 x86-64 Windows 版本。它能启动到菜单,自由漫游、比赛和存档读取都可用,目标是在 30、60、120、144 FPS 下行为一致。

有什么不同

核心机制是静态重编译而非解释执行:游戏代码被转成 C++ 源码,配合 ReXGlue SDK 编译,引擎补丁则通过 larecomp_config.toml 里的 [[midasm_hook]] 条目实现。因此高帧率修复不是简单加速,而是把实测帧时间喂给模拟层,让物理、追尾相机延迟和悬挂衰减保持与主机 30 FPS 曲线一致。README 还记录了工程细节:提高定时器分辨率并关闭 vsync 展示来改善帧节奏;以及 SDK 中 vblank 循环下溢导致的帧率崩溃(7 到 30 分钟后降到 10 FPS 以下),目前用文档中的变通参数规避,等待上游修复。

代价是这是一个需要构建与维护的项目。你需要 ReXGlue SDK、CMake、Clang 和 Ninja,外加自行提取的游戏数据;README 明确说明 MSVC 无法构建,并提醒非 Release 构建默认 trace 日志会拖慢游戏,必须把 REX_LOG_LEVEL 设为 warn。目前还遗留一个渲染问题:阴影与植被的抖动 alpha,原因尚未完全确定。

谁值得试

适合的人群:有 Windows x86-64 机器、持有完整版光盘合法副本,并且熟悉 CMake 与 C++、能照着项目说明自行构建。回报是一个原生版本,带游戏内设置菜单、从 Xenia 和 RPCS3 导入存档、自定义 MP3 电台、模组加载器,以及零售版区域锁掉的德语和意大利语翻译。

不适合的人群:想要下载即玩的人。仓库不含任何光盘数据,没有提取出的 default.xex 和 xarchive_*.rpf 就完全用不了。不愿意跟进 ReXGlue SDK 版本或帧率变通方案的人也应避开,因为构建绑定 SDK 0.10.0,vblank 问题只是被规避,并未根除。

使用条件与边界

搭建比普通游戏安装重得多:ReXGlue SDK 0.10.0、CMake 3.25+、来自 LLVM 或 Visual Studio 的 Clang(不能用 MSVC)、Ninja,以及自行提取的游戏数据。游戏数据目录必须含有 default.xex 和 xarchive_*.rpf 归档,查找顺序是 --game_data_root、MCLA_GAME_DATA 环境变量,再从可执行文件逐级向上搜索。构建是两条 CMake preset 命令,可执行文件位于 out/build/win-amd64-relwithdebinfo/。

长期维护成本也需要注意:项目绑定特定 SDK 版本,文档给出帧率崩溃的变通参数,并提醒必须降低日志级别才能流畅游玩。阴影与植被的抖动 alpha 被列为唯一剩下的渲染问题,原因尚未定位。项目不附带游戏本体,也未声明许可证。

HotRepo 点评

项目创建于 2026-02-28,当前 201 stars;HotRepo 最早的记录显示,截至 2026-10-25 的当周它位列 C++ 周榜第 3,一周 +58。样本只有两天,也没有日榜历史,因此无法据此判断热度能否持续。投入构建时间前,建议先核对 README 中的 SDK 版本与帧率变通方案是否匹配你的环境。

本文由 AI 根据项目 README 生成,更新于 2026年10月25日,以项目官方文档为准。