[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$f1uo0bm9d34n0r":3},{"code":4,"message":5,"data":6,"timestamp":32},10000,"success",{"full_name":7,"position":8,"description":9,"language":10,"stars":11,"forks":12,"stars_gained":13,"age_days":14,"hn_threads":15,"one_liner":22,"summary_md":23,"topic":24,"github_topics":27,"license":28,"homepage":29,"updated_at":30,"history":31},"c22dev\u002Fmuguet",17,"A native Mach-O port for iOS\u002FmacOS of GTA V, with multiplayer","Rust",738,233,51,14,[16],{"id":17,"title":18,"points":19,"comments":20,"posted_at":21},50031249,"GTA V Running on iOS",3,1,"2026-10-10","Run GTA V's web build as a native Apple Silicon app on macOS and iOS, with small-scale UDP multiplayer.","Muguet is for people who own a legitimate GTA V copy distributed as the web-build folder and want to play it on a Mac or iPhone without a browser. Expect a source-build project, not a downloadable app: compile time and platform caveats are part of the deal.\n\n## The problem\n\nYou want to play the game on Apple hardware, but the available path is the WebAssembly build running inside a browser, with the JS engine, WebGPU and Web Audio layers between you and the game. That setup is workable on a desktop but awkward on iOS, and you do not get an ordinary app window or a simple way to play with others on the same port. Muguet replaces the browser shell: you point it at your own game files zip, and it runs the same `game.wasm` as a native app, with wasmtime for the code and wgpu on Metal for graphics. The result is a Mac app or an iOS IPA that takes your files and starts the game, plus a launcher that can host or join a UDP session.\n\n## What's different\n\nThe interesting mechanism is the reuse of the web port's `game.wasm` rather than a reimplementation. On macOS the game code is compiled to native arm64 the first time you launch and then cached; on iOS, where enabling JIT is awkward, the code is compiled at build time and baked into the app. That split explains why the two platforms feel different to set up: the Mac build shifts work to first launch, while the iOS build does it once during your build and cannot skip it. A small custom UDP layer, port 47520, adds multiplayer between people running the same port, hosted from the launcher or by a separate `muguet-server` on any machine.\n\nThe trade-off is that this is still the browser port's content underneath, with its file layout and limitations. The project asks you to supply your own copy as a zip containing `data\u002F` and `b\u002F\u003Cbuild>\u002F`; it does not ship game assets. Story missions remain single player only, so the multiplayer is for free-roam-style sessions rather than the campaign.\n\n## Who should try it\n\nA good fit is an Apple Silicon Mac owner who already has the web build's files, is comfortable with a Rust and Xcode toolchain, and wants a native-feeling app plus a way to play with a friend on the same port. The documented `build.sh` path, which fetches the source into `\u002Ftmp\u002Fmuguet` and walks through Mac or iOS output, lowers the entry cost for that user. An iOS user with a free Apple developer account and a device on iOS 15 or later, ideally 8 GB of RAM, is the second realistic audience, though they should expect signing and install friction.\n\nA poor fit is someone who wants to install and play in a few minutes, or who does not already own the required game files; there is no bundled copy and no prebuilt app mentioned. Someone on Intel Macs or older macOS is also outside the stated requirements: macOS 14 or later and Apple Silicon are required, so the project is not a general Mac port.\n\n## Requirements and limitations\n\nThe Mac path requires an Apple Silicon machine, macOS 14 or later, the Rust toolchain and Xcode 26 or later. The iOS path adds a specific Rust toolchain and the `aarch64-apple-ios` target, `xcodegen`, an Apple developer account (a free one is documented, with `FREE=1` and your own `BUNDLE_ID`), and a device on iOS 15 or later. For an on-device build, the game code is compiled during the build, so the toolchain must be set up exactly rather than fixed later at runtime.\n\nOngoing use has its own upkeep: iOS needs the increased memory limit entitlement, and the README recommends installing with AltStore and warns that SideStore and Sideloadly may not work well. Multiplayer needs UDP port 47520 reachable between host and clients, and the host can be the launcher or a separate server. The project is GPL-3.0 and the README notes that builds require your own game files; [build instructions](https:\u002F\u002Fgithub.com\u002Fc22dev\u002Fmuguet\u002Fblob\u002Fmain\u002FREADME.md) are the place to check the exact commands and signing details.\n\n## HotRepo's take\n\nHotRepo's only recorded observation is a 2026-10-24 snapshot on the NEW-REPOSITORY board for Rust, where the repository had 738 total stars and ranked #17; that is not a daily-growth measurement, and the 14-day-old project has no comparable board history. With a single snapshot, persistence of interest cannot yet be judged. For a decision, verify the exact game-file zip layout and the iOS signing path before committing to a build, since those are the steps most likely to stop an otherwise willing user.",{"slug":25,"name":26},"games","Games",[],"GPL-3.0",null,"2026-10-25T03:23:15Z",[],1792915088]