【免费下载链接】Wiicompiled
Wiicompiled
WiiCompiled 是一个静态重编译(static recompilation)项目,它把《马里奥赛车 Wii》(Mario Kart Wii) 的 PowerPC 代码在运行前整体翻译成 C++ 并编译为原生 PC 可执行文件——运行时无模拟器、无解释器、无 JIT、无任何 PowerPC。更厉害的是,它还能把 Retro Rewind 这个经典 MKW 模组(Code.pul)作为独立的静态档案(profile)一起翻译,直接产出第二个原生可执行文件 🏁
⚠️ 重要前提:仓库和发布包里不含任何任天堂代码、素材或游戏数据,你必须拥有自己合法转储的PAL 版
RMCP01光盘镜像。整个翻译过程在你本机完成,数据不会被上传。
一、什么是静态重编译:和普通模拟器的区别
| 对比项 | 传统模拟器(如 Dolphin) | WiiCompiled 静态重编译 |
|---|---|---|
| PowerPC 指令 | 运行时解释或 JIT 翻译 | 安装时一次性翻译为原生 C++ |
| 运行时开销 | 有(模拟层始终存在) | 无(纯原生代码) |
| 物理精度 | 依赖模拟层实现 | 100% 与真机一致(幽灵记录可互相验证) |
| 帧率 | 受模拟循环影响 | 可解锁,120/144 Hz 显示器可插帧 |
翻译流程可以概括为一条流水线(详见 translator/README.md):
- 解析 DOL:解析 GameCube/Wii 的
main.dol,解码 PowerPC 指令; - IR/SSA 提升 + 类型推断:把汇编提升为中间表示并推断寄存器/变量类型;
- 输出 C++:每个可达函数都生成对应的 C++ 源码(外加 JSON 元数据);
- Clang 编译:把生成代码连同 runtime/ 运行时一起编译成单个可执行文件。
整个项目通过版本化的 YAML 清单描述游戏布局,翻译器本身不含任何游戏专属数据——MKW 的配置就是 projects/mkwii/recomp.yml 这份清单(包含入口点0x800060A4、main.dol与StaticR.rel的 SHA-256 校验钉、以及符号表 MAP.txt)。
二、装好就能玩的 6 大特性 🎮
- 解锁帧率 + 插帧:原版锁死 60 fps,运行时可在帧间生成插值帧,高刷屏下更顺滑(实验性特性);
- 任意宽高比:拖大窗口,摄像机实时自适应;
- 原生渲染:图形层基于 aurora(GameCube/Wii 源码级兼容层,底层是 WebGPU/Dawn,支持 D3D12、Vulkan、Metal);
- 高内部分辨率:数倍于主机的分辨率畅玩;
- 音乐闪避:你在别处放歌、看视频时,游戏音乐自动让路(可关);
- 游戏内设置栏:窗口聚焦时按F10,可调内部分辨率、FPS 计数器、四端口手柄映射、震动开关、音量等,全部即时写入
Config.toml并在下次启动恢复。
三、系统要求与准备清单
| 项目 | 要求 |
|---|---|
| 系统 | Windows 10/11 x64,或 macOS 14+ Apple Silicon,或 Linux x64/ARM64 |
| GPU | GTX 1650 / RX 6400 / Arc A310 及以上 |
| CPU | i5-8400 / Ryzen 5 2600(4c/6c,3.5GHz+)及以上 |
| 磁盘 | 安装期约 20 GB,最终成品约 5 GB |
| 游戏 | 自己转储的干净 PALRMCP01镜像,支持 ISO / GCM / GCZ / CISO / WBFS / WIA / RVZ |
注意:其他区服、打过补丁的可执行文件都会被直接拒绝——对错误的清单做翻译只会得到难调试的坏档。
四、最快上手方式:Wheel Wizard 一键安装
不想碰命令行?用模组管理器Wheel Wizard(它只是对本项目后端命令行的图形封装):
- 在 Wheel Wizard 设置中选择你的 PAL
RMCP01镜像; - 打开WiiCompiled (beta)开关;
- 回到首页点安装即可,安装、更新、启动都托管给它。
🛡️ 安全提醒:只从本项目官方 Releases 页面获取构建。通过 Discord 或随机下载站流传的安装包不要碰!
五、Retro Rewind:模组也能"静态编译"
Retro Rewind 是 ZPL 维护的经典 MKW 模组合集。在传统方案里,它以Code.pul(Kamek/Pulsar 补丁)的形式运行时打补丁;而在 WiiCompiled 里,它可以被做成自己的静态档案:
- Kamek/Pulsar 的模组代码与基础游戏一起被静态翻译,链接成一个独立的原生可执行文件
RetroRewind,而不是安装一堆运行时补丁; - 档案配置位于 projects/mkwii/recomp.yml 的
profiles.retro-rewind段:钉死Code.pul路径、模组基址0x81800000、链接基址,并启用 Retro-WFC 联机 payload; - 运行时由 retro_rewind_product.cpp 声明为独立产品
Retro Rewind; - 联机所需的 Retro-WFC payload 会先下载并做 RSA 签名验证(逻辑见 RetroWfcPayload.cs),校验不过就不许用。
也就是说:一个游戏 + 一个模组 = 两个独立原生 exe,模组补丁不再"运行时生效",而是和主程序一样被编译进二进制。
六、从源码编译:四步完成静态重编译 🔧
需要自备工具链:(.NET 8 SDK)、CMake ≥ 3.16 + Ninja、Clang/LLVM(官方构建使用 LLVM-MinGW,目标x86-64-v3;macOS 用 Apple Clang)。
先克隆仓库:
git clone https://gitcode.com/gh_mirrors/wi/Wiicompiled第 1 步:构建翻译器 CLI
dotnet build translator/Translator.sln -c Release翻译器自带的默认测试套件不需要任何游戏数据,可以先跑一遍确认环境没问题:
dotnet test translator/Translator.sln -c Release第 2 步:递归翻译整个 DOL(核心命令,输出 C++ 与元数据)
translator translate-recursive 0x800060A4 --project projects/mkwii/recomp.yml --outdir generated/functions第 3 步:生成数据初始化与构建分片
translator generate-data-init --project projects/mkwii/recomp.yml translator emit-build-shards --project projects/mkwii/recomp.yml若要一并编译 Retro Rewind,先执行translate-mod --profile retro-rewind把Code.pul静态翻译出来,再在emit-build-shards中带上--resolved-profile参数(完整参数对照 docs/building-macos.md 第五节)。
第 4 步:CMake + Ninja + Clang 编译成可执行文件
cmake -S runtime -B build -G Ninja -DCMAKE_BUILD_TYPE=Release cmake --build build --target WiiCompiled RetroRewind构建目标与平台约束在 runtime/CMakeLists.txt 中定义,仅支持 64 位 Clang 工具链与 Release 构建。
macOS (Apple Silicon) 用户有福了:仓库提供了完整的分步指南 docs/building-macos.md,涵盖 nodtool 解包光盘、校验main.dol/StaticR.rel的 SHA-256、翻译、CMake 编译直到写 Config.toml 并直接运行./build-macos/WiiCompiled的完整闭环,还有Launcher/local-build-macos.command一键脚本。
七、能用来移植其他游戏吗?
可以一半:翻译器对 DOL/REL 是通用的,projects/examples/generic-dol.yml 就是一份最小通用清单,指向任意合法 DOL 即可翻译。但一个能玩的移植还需要运行时——音频、输入、GX 图形、NAND 存储……MKW 的这套 runtime/ 才是大头。
八、常见问题 FAQ
为什么安装要那么久?因为项目不提供预编译好的翻译二进制。安装时必须在你的机器上对整盘游戏跑一遍静态重编译器 + C++ 编译,这是一次性成本。
物理引擎有多准?100%。幽灵(ghost)是基于输入序列的重放文件而非位置追踪,跨 Wii 真机 / Dolphin / WiiCompiled 的幽灵完全对得上,即物理逐帧一致。
崩了怎么办?错误被刻意设计得"响亮"而不静默吞掉。提交报告时请附上运行日志(Windows 位于%LOCALAPPDATA%\WiiCompiled\Logs)。
原版游戏 bug 会修吗?基础游戏不会——行为与真机一致是目标。Retro Rewind 本身就会修改部分基础游戏行为,属正常现象。
许可证?GNU GPLv3,使用它的任何 mkwii 发行版也必须 GPLv3。第三方组件清单见 THIRD-PARTY-NOTICES.md。
延伸阅读
- 静态重编译器完整文档:translator/README.md
- macOS 从零编译指南(含 Retro Rewind 与 Retro-WFC):docs/building-macos.md
- 图形兼容层 aurora:aurora-main/README.md
- MKW 项目清单与 Retro Rewind 档案:projects/mkwii/recomp.yml
从"运行时模拟"到"安装时编译",WiiCompiled 证明了:把一款完整 3D 赛车游戏连同它的热门模组整体静态编译成原生可执行文件,不只是极客的实验,而是已经可以上路的玩法。
【免费下载链接】Wiicompiled
Wiicompiled
相关推荐
StaticScript终极指南:如何将TypeScript编译为原生可执行文件
StaticScript终极指南:如何将TypeScript编译为原生可执行文件 StaticScript是一个革命性的开源项目,它以TypeScript作为前
CoreRT革命性AOT编译:如何将.NET Core应用编译成原生单文件可执行程序
CoreRT革命性AOT编译:如何将.NET Core应用编译成原生单文件可执行程序 CoreRT是.NET Core的AOT(提前编译)优化运行时,能够将托管
Prusa-Firmware-Buddy社区精选:用户分享的15个实用功能与隐藏技巧
Prusa Firmware Buddy社区精选:用户分享的15个实用功能与隐藏技巧 Prusa Firmware Buddy是一款为Original Prus
嵌入式物联网
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考