Two weeks ago, Apple modified their App Store guidelines to allow retro game emulators in the App Store. This week, Delta, a multi-system emulator that was previously available via the AltStore, was released on the App Store, OatmealDome reported.
Since these events happened, we’ve been asked many times if we will submit DolphiniOS (our fork of Dolphin) to the App Store. Unfortunately, no.
Apple still does not allow us to use a vital technology that is necessary for Dolphin to run with good performance: JIT.
What is JIT?
The GameCube and Wii have a PowerPC-based CPU inside them. All modern Apple devices use an ARM-based CPU. It isn’t possible to directly run PowerPC code on an ARM CPU, and vice versa. Therefore, if we want to run a GameCube or Wii game on an iPhone, it is necessary to translate the game’s Power PC code to ARM so that the CPU can understand it.
Dolphin uses something called a Just-In-Time (JIT) decompiler to achieve this. Whenever the emulated console wants to run the game code, Dolphin will use its JIT to translate the PowerPC code to ARM, and then execute the results.
JIT on iOS
Unfortunately, Apple generally does not allow apps to use JIT recompilers on iOS. The only exceptions are Safari and alternate web browsers in Europe.
We submitted a DMA interoperability request to Apple for JIT support, but Apple denied the request a few weeks ago.
It’s hard to tell exactly why Apple is so hesitant to open up JIT support. It’s possible that they consider it to be a security risk.
9T05Mac reported Apple recently changed its policy to allow game emulators on the App Store. Delta, one of the essential emulation apps, skyrocketed to the top of the App Store overnight. Another popular emulator called DolphiniOS, however, is still facing a policy road block.
DolphiniOS explains in a blog post that Apple’s resistance to apps using JIT means the App Store is still out of reach for now.
Apple has already denied their request to use JIT, likely as a security precaution.
Tom’s Guide reported in the last week, the iOS world has shifted. Retro game emulators have started launching and actually sticking around thanks to an Apple policy change.
The launch and subsequent success of the Delta emulator have led people to wonder whether the beloved GameCube and Wii emulator DolphiniOS (a popular fork of Dolphin) could make its way to Apple’s mobile platform. Unfortunately, according to the app’s developer, it doesn’t look like it will happen.
Just-In-Time (JIT) is required to get around the PowerPC-based ARM-based CPU translation. Without it, it appears to be impossible to run DolphiniOS. Unless another developer can come up with a miraculous solution, it’s unlikely that we’ll see other GameCube or Wii emulators make their way to the app store.
In my opinion, it sounds like Apple is not interested in using JIT in its game emulators. That’s not good news for DolphiniOS and perhaps not good for other emulators using JIT.