Muffin
Wii U emulation on iOS — in the open.
🧁Install
Two sources, because the two install paths need different builds. Pick the one that matches how you sideload.
iPhone and iPad, iOS 15 or later. Landscape.
SideStore / AltStore / LiveContainer
These re-sign with your own Apple ID at install, so they take the standard unsigned build.
https://kiddreads.github.io/cemu-ios-muffin/apps.jsonTrollStore / jailbroken
Takes the ad-hoc signed build, with the JIT entitlements actually embedded — which is what lets the recompiler get executable memory. A SideStore re-sign would strip them, which is why this is a separate source. The interpreter needs none of this, and it is what every confirmed run so far has used.
https://kiddreads.github.io/cemu-ios-muffin/trollstore.jsonOr grab Cemu-fakesigned.ipa directly from Releases.
Which file is which? Cemu.ipa is unsigned on purpose.
Cemu-fakesigned.ipa is ad-hoc signed. Ad-hoc signing has no certificate and no
team ID, so most tools describe it as “not signed” — that is what fake-signing is,
not a fault. To tell them apart: codesign -dv Payload/Cemu.app reports
Signature=adhoc for the fake-signed one.
🎮Status
A retail Wii U game runs end to end, at playable speed, rendering correctly, on
real hardware. FAST Racing NEO on an iPad Pro A12Z (iPad8,11,
iOS 26.6.1) — installed, launched, played.
It does that on the interpreter. The recompiler exists in the codebase, but its capability probe has never succeeded on iOS, so it has never executed a single instruction. Every guest instruction anyone has run — including that playthrough — has gone through pure PowerPC interpretation, measured at 50–190 MIPS.
🖥️Under the hood
The renderer is Metal. GPUs without mesh shader support — the A12Z and similar — emulate geometry shaders and RECTS primitives with compute passes instead. The same GPUs don't decode BC textures in hardware, so BC1–BC5 textures are decompressed on the CPU using NEON.
The interpreter runs from a predecoded instruction cache rather than re-decoding each instruction on every pass.
🎨Themes
31 app icons, each with a matching colour theme. Three are premium, unlocked by code.
⬜Not yet confirmed
- Audio — the backend initialises, but no sound has been confirmed on a device.
- Controller input — works at a basic level; not tested systematically beyond that.
- The recompiler — untested, because it has never run.
- Compatibility — unmeasured beyond the one confirmed game.
📖Read the project
- ARCHITECTURE.md — how the SwiftUI shell drives the Cemu core
- STATUS.md — detailed subsystem status
- ROADMAP.md — planned work
- log.md — the development journal
- The on-screen pad — measured off real GamePad hardware
⚖️Games & license
Bring your own. No copyrighted content is distributed here — not games, not system files, not keys. Muffin is a port of Cemu, the excellent Wii U emulator this project ports to iOS, licensed under MPL 2.0.