搜索你想找的开源项目

输入名称、用途或关键词,也可粘贴 GitHub 仓库链接

分享到微信

当前解读页的微信分享二维码

用微信扫一扫打开,点击右上角「···」分享给朋友或朋友圈。

手机上可截屏后,在微信扫一扫中从相册识别二维码。

adriadam10/mkw-recomp

游戏

把《马力欧赛车世界》静态重编译为 Linux 和 Windows 原生 PC 程序,需自备游戏转储。

310
14
C
MIT
创建于 2 天前

项目介绍

mkw-recomp 把《马力欧赛车世界》(Nintendo Switch 2,版本 1.0.0)的 AArch64 代码提前翻译成 C,再编译成 x86-64 原生程序。它是重编译而不是模拟器:没有 CPU 解释器或 JIT。Switch 2 图形 API NVN2 在 Vulkan 之上按 API 层级重新实现,游戏的 SM86 着色器离线翻译为 SPIR-V,任天堂 SDK 函数按名称替换为本项目自己的实现。

仓库不包含任何游戏代码或资源,需要玩家从自己的主机转储正版游戏。首次启动时,启动器会在本机编译游戏,并下载 NVIDIA 的 nvdisasm 和 ptxas 以在本机生成着色器编码描述。

项目面向拥有该游戏、想在 Linux 或 Windows 上原生游玩的玩家,也适合想了解静态重编译实现方式的开发者。

快速使用

准备:从自己的 Switch 2 转储《马力欧赛车世界》1.0.0(exefs/ 和 romfs/,已解密)。需要约 30 GB 可用空间、支持 AVX2 的 x86-64 CPU、支持 Vulkan 1.3 的 GPU(推荐 VK_EXT_mesh_shader),建议 16 GB 内存。

  1. 从 Releases 下载对应系统的启动器:Linux 用 .AppImage(要求 glibc 2.31 或更新,如 Debian 11、Ubuntu 20.04、SteamOS),Windows 用 .zip 并解压到文件夹。
  2. Linux 上先 chmod +x AppImage 再运行;Windows 上运行 mkw.exe。
  3. 打开 Game files,指向游戏转储目录,点击 Prepare。首次设置会编译整个游戏并下载着色器工具(Linux 84 MB,Windows 126 MB),之后直接点击 Play 即可。

Linux 上启动器构建的游戏存放在 ~/.local/share/mkw-recomp。

从源码构建

构建环境为 Linux,依赖 uv、clang、lld、ninja、SDL3、Opus、libvpx、zstd、xxHash、Vulkan 头文件与 VMA 3.4.0,详见构建说明。把游戏转储放到 game/(game/exefs、game/romfs),或设置 MKW_GAME=<dir>,然后在仓库根目录执行:

uv run python recomp/gen.py --exefs game/exefs --out build/generated --jobs 8 --patches recomp/patches-mkw.txt
uv run tools/shaders/extract.py && uv run tools/shaders/translate.py
uv run tools/build/build.py
build/mkw

给 tools/build/build.py 加 --target windows 可用 llvm-mingw 构建 mkw.exe。翻译着色器需要从 nvdisasm 生成的 SM86 编码规范,仓库不附带,见着色器工具说明。所有生成物写入 build/。

使用约束

目前是早期版本:能在 Linux 和 Windows 上启动、播放片头、进入菜单并比赛,但模式、角色和车辆选择等部分菜单仍需完善。卡丁车阴影偶尔丢一帧,部分影片音频会中断,个别 AMD 驱动会导致 GPU 挂起,不支持在线对战。根据 2026-11-09 的测量,Radeon 660M 在 720p 下每帧 31-33 ms,GTX 1050 Ti 在 1080p 下每帧 42-45 ms。帧率设为 Automatic 时会在 60 和 30 之间切换,低于 60 fps 时比赛会慢动作,此时应在 Settings > Screen > Frame rate 中选择 30。60 fps 是路线图中的目标。

代码采用 MIT 许可证,第三方组件保留各自许可证。项目与任天堂无关,不包含游戏资源。

本文由 AI 根据项目 README 生成,更新于 ,以项目官方文档为准。

相关推荐

  1. sostenesfreitas/ocarina-recomp用自己拥有的游戏文件在本机重编译《时之笛》,生成不依赖模拟器的 Windows 原生程序,图形走 Vulkan。C974
  2. smm2recomp/smm2recomp用自备游戏转储把《超级马力欧创作家 2》静态重编译为各平台原生应用,附带离线关卡世界与 SMM1 玩法。Rust165
  3. c22dev/mush8在 Apple Silicon Mac 和 iPhone 上运行自备游戏文件的《马力欧卡丁车 8 豪华版》,支持局域网、在线和本地无线联机。Rust724
  4. andrewnakas/gtav-recomp用自己的 Xbox 360 版 GTA V 光盘,在本机重编译成 PC、Mac、iPhone 或 Android 原生版本。C++162
  5. Vnnc1/MK8-online实验性将《马力欧卡丁车 8 豪华版》4.0.1 静态重编译为 Windows 原生程序,带启动器、Vulkan 运行时和局域网房间。Python102