muguet README

The project's README from github.com/c22dev/muguet. As one markdown file: README.md.

Muguet

A native Mach-O iOS/macOS port of GTA V, with multiplayer

How does this work ?

this whole port relies on the WebAssembly compilation of the game. in a browser, that game.wasm runs inside the JS engine, behind WebGPU, Web Audio, web workers... Muguet throws that layer away and runs the same game.wasm as a regular native app, with wasmtime for the code and wgpu on Metal for the graphics

On macOS, the game code is compiled to native arm64 the first time you launch it, then cached. On iOS, we can't properly do that (i dont rlly want you to deal with the hassle of enabling JIT), so the game code is compiled when you build the app and baked into it

On top of that, Muguet adds a small UDP multiplayer (for other people who have the same port to play with you)

Game files

Because I care about me not getting sued, you will need your own copy as a .zip : the folder holding data/ and b/<build>/ (with game.wasm and shaders/)

It's basically the same source as the web port.

Muguet itself will then asks for that zip

Requirements

For iOS, also :

Building

macOS :

./make-app.sh

gives build/Muguet.app

iOS :

TEAM=<your team id> ./make-ios.sh game.zip --install

--ipa makes build/Muguet.ipa instead. With a free account, add FREE=1 (+ a BUNDLE_ID of your own)

Please install this app with AltStore. This probably won't work well with Sideloadly (or even SideStore, as per [this issue])(https://github.com/SideStore/SideStore/issues/1616)

The app also works with a paid developer account.

Multiplayer

One player hosts from the launcher (or runs muguet-server on any machine), the others join with that address. UDP port 47520

Limitations

Contributions are welcome !

muguet (c22dev/muguet)

Searching Database…

633 ·GitHub
这是什么?Muguet 是 GTA V 在 iOS 和 macOS 上的原生 Mach-O 移植版,并加入了多人游戏,它使用 wasmtime 和基于 Metal 的 wgpu 在浏览器之外运行游戏原始的 WebAssembly 代码,而不是依赖浏览器的 JS/WebGPU 技术栈。
这是浏览器套壳,还是真正的原生游戏?它是真正的原生应用:Muguet 抛弃了浏览器层(JS 引擎、WebGPU、Web Audio),以原生方式运行同一个 game.wasm,把其中的代码编译为原生 arm64(macOS 在启动时缓存,iOS 在构建时内置),用 wasmtime 执行代码,用基于 Metal 的 wgpu 进行渲染。
怎么构建和安装它?macOS 直接用 cargo build 构建,会直接输出 build/Muguet.app;iOS 则加上 --ipa 标志(免费开发者账号再加 FREE=1 和 BUNDLEID)得到 build/Muguet.ipa,然后用 AltStore 安装。
构建之前需要安装什么?需要一台运行 macOS 14 或更高版本的 Apple Silicon Mac、Xcode 26 或更高版本,以及 Rust 工具链;构建 iOS 版本还需要带 aarch64-apple-ios 目标的 rustup 工具链 1.98.1、xcodegen(通过 Homebrew 安装),以及一个 Apple 开发者账号。
有哪些已知的限制需要预期?小地图无法渲染,剧情任务仅支持单人,iOS 需要启用增大的内存限制 entitlement,通过 Sideloadly 或 SideStore 侧载可能效果不佳,因此推荐用 AltStore 安装。
它也能在 Intel Mac 上运行吗,还是只支持 Apple Silicon?只支持运行 macOS 14 或更高版本的 Apple Silicon Mac;没有提到对 Intel Mac 的支持。
我从哪里获取 GTA V 的游戏文件?你需要自备一份原始游戏数据的 .zip(包含 data/ 和 b/ 的文件夹,里面有 game.wasm 和 shaders/)——本质上和官方网页移植版使用的文件相同——Muguet 首次运行时会提示你选择这个 zip。
多人游戏实际上是怎么运作的?一名玩家通过启动器建立主机(或在任意机器上运行独立的 muguet-server 二进制文件),其他玩家使用该主机的地址通过 UDP 端口 47520 加入。
需要付费的 Apple 开发者账号吗?不需要,使用 FREE=1 和你自己的 BUNDLEID 构建时免费开发者账号也可以,不过需要借助 AltStore 才能把生成的 .ipa 装到 iOS 设备上。
iPhone 能流畅运行它吗?它需要 iOS 15 或更高版本的设备,README 建议约 8 GB 内存以获得流畅体验;你还必须启用增大的内存限制 entitlement。
Creator
c22dev
Size
1.3 MB
Stars
633
Age
7d
Commits · 90 Days