The project's README from github.com/c22dev/muguet. As one markdown file: README.md.
A native Mach-O iOS/macOS port of GTA V, with multiplayer
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)
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
For iOS, also :
rustup with rustup toolchain install 1.98.1 and rustup target add aarch64-apple-ios --toolchain 1.98.1xcodegen (brew install xcodegen)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.
One player hosts from the launcher (or runs muguet-server on any machine), the others join with that address. UDP port 47520
Contributions are welcome !