You may know some unofficial iOS apps that offer some kind of emulation. These apps run based on hacks and exploits, which reduces performance considerably — but that’s about to change. Apple has silently introduced support for Just-In-Time (JIT) compilation on iOS 14.2, which will allow emulation apps to run at full speed on the iPhone and iPad.
Riley Testut, the developer behind AltStore, shared with 9to5Mac more details about how this change will impact these unofficial apps that offer console and virtual machine emulation. But first, let me briefly explain what JIT is and how it works on iOS.
JIT, or Just-In-Time compilation, is a way to run software that will be compiled during its execution, while a traditional software is fully compiled before it is executed. With JIT, the source code is translated into the machine’s native code in real time.
Apple has never offered official support for JIT compilation on iOS, but some developers have found ways to run it with hacks, which came with the cost of having several bugs and low performance. These exploits, however, have been completely removed on iOS 14. At least until now.
As described by Testut, Apple has added support for JIT compilation in iOS 14.2 beta 2 — but this has never been publicly mentioned by the company. The support was maintained throughout the betas and was kept in the final release. The developer believes this is an official implementation rather than a mistake by Apple, but there’s no way to confirm this for now.
With JIT compilation support on iOS 14.2, emulation apps can now run at full speed without hacks, jailbreak, and other compromises.
For example, with JIT Delta could in theory emulate more powerful systems such as PS2, GameCube, and Wii; without JIT, we’d need to wait several more years before the hardware was capable of that. At first I was skeptical, but am now leaning more towards thinking this was an intentional change.
However, that doesn’t mean you’ll see emulation apps in the App Store, or even any other app using JIT. Testut told us that the current implementation works only for sideloaded apps, which are usually installed through Xcode and other developer tools instead of the App Store. In other words, this is a feature intended for developers with debugging purposes.
I doubt limiting JIT to just sideloaded apps was the intention behind this (and more likely is tied to the need for apps to run unsigned code when debugging with Xcode), but I’d be curious to see if this restriction remains long-term.
But if you have AltStore, you’ll soon be able to enjoy apps like UTM, which offers virtual machines on iOS, and DolphiniOS, which is basically a GameCube and Wii emulator for iPhone and iPad, running at maximum performance.
In the video below, you can see how smooth DolphiniOS runs on iOS 14.2 without jailbreak using the native JIT implementation: