Affiliate disclosure: This guide contains affiliate links. As an Amazon Associate, we earn from qualifying purchases at no extra cost to you. Learn more.
2026-09-19 · News and analysis
Affiliate disclosure: This guide contains affiliate links. As an Amazon Associate, we earn from qualifying purchases at no extra cost to you. Learn more.
Our own iPhone emulation guide says GameCube is still Android territory. That sentence needs two footnotes as of today, and they arrived within hours of each other.
iCube, the Provenance team's GameCube and Wii emulator for iOS and tvOS, rebuilt its jitless engine from the ground up. On the same day, the project got just in time compilation working on iOS 26 through a path nobody had activated before.
There is also a claim circulating that iCube now runs GameCube and Wii at 60fps with 2x upscaling. We could not find a source for that anywhere, and the project's own published numbers say something different. We will get to it, because the real figures are more interesting than the rumoured one.
What iCube Actually Is
Not a new project, and not a from-scratch emulator.
iCube is a fork of DolphiniOS, which is itself the iOS build of Dolphin. It was called DolphiniOS SwiftUI Edition until September 2025, when it was renamed. It covers iPhone, iPad, and Apple TV, and it is maintained by the Provenance team.
The goal, in the maintainer's own framing, is the best GameCube and Wii emulation possible on non-jailbroken iOS, where apps cannot allocate executable memory. That constraint drives every technical decision below.
- Platforms: iOS, iPadOS, tvOS
- Based on: Dolphin, via DolphiniOS
- Recommended hardware: A12 or newer, so iPhone XS and iPhone 11 upward, plus Apple TV 4K
- Install: sideload only. SideStore or AltStore for iOS, Sideloadly for tvOS, TrollStore, or a jailbroken package
- Cost: free, and the project states sideloaded and self-built copies include every paid feature at no cost
The Jitless Engine, and Why We Owe You a Correction
Two days ago, covering MeloCafe bringing a Wii U emulator to iPhone, we wrote that jitless is "a fallback that proves the port works, not a way to play."
That was fair for MeloCafe, whose developer described their own jitless demos as extremely slow. It is not a fair description of iCube, and we should separate the two.
In iCube, the jitless engine is not the fallback. It is the shipping default, called engine 5, and the project has poured a year of work into it specifically because most users will never have JIT available.
What went in this week reads like compiler work, because it is. The engine translates blocks of PowerPC code into a chain of small callbacks, and the recent changes cut the overhead of moving between them. Fused compare and branch pairs into single operations. Direct threaded dispatch, so common instructions skip decoding entirely. Tail calls between handlers instead of returning to a central loop each time, which took 58 handlers from sharing one branch to each having its own. Profile guided optimisation, so the build is tuned by recorded real-world runs.
There is also an inline cache on block links. When a block jumps somewhere it jumped last time, it skips the dispatcher completely. On Wind Waker that cache hits 92% of the time.
The project is equally blunt about what did not work. A second engine, engine 6, was built as an intermediate representation tier and turned out roughly 1.7 times slower. It has been relabelled "usually slower" in the interface, and the internal guidance is to stop investing in it. Emulator projects rarely publish their dead ends.
About That 60fps Claim
We went looking for it. The project website, the itch.io devlogs, every GitHub release, the website's own source repository, GBAtemp and Reddit. There is no published figure of 60fps at 2x resolution from anyone connected to iCube.
What the project does publish, in a performance document dated 17 September, is this:
| Game | Measured speed |
|---|---|
| Wind Waker, intro | 0.591x to 0.608x of real time |
| Chibi-Robo, intro | 0.473x of real time |
| Chibi-Robo, later scene | 0.528x of real time |
Those are fractions of full speed, not frame rates. Roughly six tenths of real time for Wind Waker, around half for Chibi-Robo.
The methodology is documented too, and it is stricter than most. Adaptive clock off, clocks at 100%, thermals at nominal, 30 second samples of the same scene, with a forced cool down between runs and alternating legs to control for heat drift. The document specifically warns that adaptive clock frame rates are meaningless because the learned clock persists across boots, and that three consecutive runs drift downward with heat even at nominal.
That is a project measuring itself honestly, and the numbers it gets are below full speed.
Two caveats in fairness to the claim. Those measurements predate the engine rebuild that shipped on 19 September, so they describe the older engine. And the document is an internal planning file rather than a public announcement, so it was never meant as a performance promise. But the project has published nothing since, and we are not going to invent a number to fill the gap.
The Bigger Story: JIT on iOS 26
This is the part with real consequences, and it got no coverage at all.
The short version of why it matters. An emulator gets its speed by translating console code into code your phone's chip can run, while the game is running. That needs memory that is both writable and executable, and iOS forbids that by design. We covered the mechanics in full when Madeira brought Windows games to a stock iPhone.
The documented exception is that iOS allows it when a debugger is attached. So iOS emulators attach a debugger to themselves, usually with StikDebug. MeloCafe does exactly this.
On iOS 26, Apple added the Trusted Execution Monitor, which changed how that works. iCube's commits from 19 September say JIT now works under it.
The interesting detail is that nothing had to be ported. The code was already there, inherited from upstream DolphiniOS. What was missing was activation: the handshake that requests an executable region only fired behind an environment variable nobody could set, and the app's own configuration was overriding it with an unproven alternative. Turning it on was the work.
The mechanism underneath is almost comically simple once described. On this Apple hardware, a page of memory becomes executable once a debugger has written to it. So authorising a JIT region is nothing more than one debugger write per 16KB page. The project notes that a 512MB region means 32,768 one-byte writes over USB, which tells you this is a workaround rather than a supported feature.
It applies to tvOS 26 as well, since Apple TV uses the same mechanism. And jitless stays the default for everyone without a debugger broker, which will be most people.
Installing It, Realistically
iCube is not on the App Store and cannot be. An app that attaches a debugger to itself will never pass review.
The current build is a rolling alpha, rebuilt on every push, which as of this morning meant a build from 10:22 UTC today. Four packages are offered: a standard .ipa for SideStore, AltStore, or Sideloadly, a TrollStore .tipa, and rootful and rootless jailbreak packages. For Apple TV, Sideloadly is the documented route.
A rolling alpha replaced on every commit is not a stable target. If you want something that stays put, use the tagged release rather than the alpha.
You supply your own games. iCube ships no game content, and you need discs you dumped yourself from GameCube or Wii media you own. Our GameCube and Wii emulation guide covers the formats.
A Warning About Lookalikes
Search any console name plus "emulator" on the App Store and you will find a wall of apps with generic names, stock icons, and five star reviews that read like they were generated. Most play nothing. Some are advertising wrappers.
There is a second version of this problem that the Provenance maintainer wrote about publicly in April. Their argument was that new iOS emulator projects were appearing with iCube's own optimisations inside them, down to similar function names and comments, rebranded and shipped without a single pull request back. Their frustration was less about licensing than about the collaboration drying up.
We are not naming or linking any of these apps, which is our standing policy. The practical advice is short. Get iCube from the project's GitHub releases or from icube-emu.com. If a GameCube emulator is sitting in the App Store working normally without a debugger attached, something in that picture is wrong.
This connects to a wider pattern we covered in emulator projects banning AI generated code.
What This Does Not Change
Android is still the stronger platform for GameCube. Dolphin on Android has a mature ARM64 JIT and years of tuning, and our Dolphin on Android guide still reflects the better route for most people. iCube is iOS and tvOS only. It is not competing for your Retroid.
The App Store position is unchanged. Nothing here makes a GameCube emulator approvable. Every route described above is sideloading.
No frame rate promises. If you want a guaranteed locked 60fps GameCube experience, a dedicated handheld running Dolphin remains the predictable answer. iCube is the interesting answer.
The Bottom Line
iCube shipped two things on 19 September. A jitless engine rebuilt with direct threaded dispatch, fused operations, and profile guided optimisation, and a working JIT path on iOS 26 and tvOS 26 for anyone able to attach a debugger.
The 60fps at 2x claim has no source we can find, and the project's own last published numbers are between 0.47x and 0.61x of real time on the previous engine. Those measurements are now out of date, and nothing has replaced them.
If you have an iPhone XS or newer and a disc you dumped yourself, it is worth trying. Just go in expecting an alpha, and do not expect a number nobody has published.
Frequently Asked Questions
Does iCube run GameCube games at full speed on an iPhone?
The project has not published benchmarks for the engine that shipped on 19 September. Its last published figures, from 17 September, measured Wind Waker at roughly 0.6x of real time and Chibi-Robo between 0.47x and 0.53x. A widely repeated claim of 60fps with 2x upscaling has no source we could find.
Is iCube on the App Store?
No, and it cannot be. iCube needs either a jitless interpreter or a debugger attached to itself for JIT, and an app that attaches a debugger to itself will not pass App Store review. Sideloading through SideStore, AltStore, Sideloadly, or TrollStore is the only route.
What does jitless mean, and why does iCube use it?
JIT translates console instructions into code your phone's chip can run, while the game runs, which needs memory that is both writable and executable. iOS forbids that. A jitless engine works around it by interpreting through pre-translated chains of small operations instead. iCube treats jitless as its shipping default because most users cannot get JIT.
Which iPhone do I need for iCube?
An A12 chip or newer is the project's recommendation, so iPhone XS, iPhone 11, or later. Apple TV 4K is also supported. The project publishes no per-device compatibility list.
Does iCube work on Apple TV?
Yes. tvOS is a supported target, installed with Sideloadly, and the iOS 26 JIT work applies to tvOS 26 as well since Apple TV uses the same mechanism.
Is iCube better than Dolphin on Android?
They are not comparable targets. Dolphin on Android has a mature ARM64 JIT and can use it freely, while iCube works inside iOS restrictions that make JIT conditional. For predictable GameCube performance, an Android handheld running Dolphin remains the stronger option.
What is TXM and why does it matter for JIT?
The Trusted Execution Monitor is the iOS 26 mechanism governing executable memory. Under it, a memory page becomes executable once a debugger has written to it, so authorising a JIT region amounts to one debugger write per 16KB page. iCube's 19 September commits made that handshake fire automatically when a debugger is attached.
Do I need my own GameCube discs?
Yes. iCube contains no game content and you supply dumps of discs you own. That is the same requirement as Dolphin on any other platform.
Is iCube a new emulator or a Dolphin fork?
A fork. iCube is built on DolphiniOS, which is the iOS build of Dolphin. It was renamed from DolphiniOS SwiftUI Edition in September 2025, and its own value is in the iOS specific work layered on top.
Related Reading
- How to Emulate Retro Games on an iPhone
- A Wii U Emulator Just Launched on iPhone. Getting It Running Is the Hard Part.
- Madeira Runs Windows Games on a Stock iPhone
- GameCube and Wii Emulation on Handhelds: What Actually Works in 2026
- Dolphin on Android: Best Settings and Requirements for Handhelds
- Best Handhelds for GameCube Emulation
- Emulator Projects Are Banning AI Generated Code
Written 19 September 2026. Build timestamps, release artifacts and commit messages come from the GitHub API for Provenance-Emu/iCube, retrieved 19 September 2026. Performance figures and engine details come from the project's own in-repository performance planning document dated 17 September 2026, which predates the engine rebuilt the same week. We ran iCube on no hardware and publish no frame rate figures of our own. The widely repeated 60fps at 2x resolution claim is not sourced to the project and we could not verify it.

