Il n'existe pas d'émulateurs sur iOS. Du moins, pas officiellement… Car il est toujours possible, au prix de quelques bidouilles n'impliquant pas de jailbreak, d'installer Delta ou DolphiniOS via la boutique alternative AltStore, qui autorise l'installation d'apps en sideloading (lire : AltStore, la boutique alternative à l'App Store sans jailbreak). C'est d'ailleurs par ce biais qu'il est possible de jailbreaker facilement un iPhone ou un iPad.
Mais il demeurait un écueil jusqu'à présent : les performances. Des jeux NES fonctionnent sans trop de heurts, mais dès qu'on commence à grimper les générations, l'expérience est de plus en plus dégradée. Les choses ont changé depuis la bêta 2 d'iOS 14.2, comme le montre la vidéo de Riley Testut, le développeur de Delta et d'AltStore, ci-dessus.
Apple a introduit avec cette version d'iOS la possibilité pour les développeurs d'utiliser la compilation Just-in-Time (JIT), une technique qui en substance, traduit le code ou une partie du code d'une application à la volée (un logiciel traditionnel est compilé avant l'exécution de son code). La compilation JIT n'est pas inédite dans iOS, elle est à l'œuvre dans Safari depuis de nombreuses années.
Pour utiliser cette technique de compilation à la volée, les développeurs d'émulateurs faisaient appel à des hacks, au prix de bugs et de performances en retrait par rapport à ce que peut offrir la puce d'un iPhone. Avec iOS 14.2, dont la version finale a conservé le JIT pour tous, Delta est en mesure d'émuler des consoles comme la GameCube, la PlayStation 2 ou encore la Wii à pleine puissance.
« Sans JIT, nous aurions dû attendre plusieurs années supplémentaires avant que le matériel soit capable de nous offrir les performances suffisantes », explique Riley à 9to5Mac. Au vu de sa présence dans la version finale d'iOS 14.2, tout indique qu'il s'agit d'une volonté d'Apple et non pas d'une erreur.
Néanmoins, cela ne signifie pas que des émulateurs trouveront une place dans l'App Store. La politique d'Apple en la matière ne change pas, c'est toujours niet. L'implémentation du JIT fonctionne avec les apps installées à partir de Xcode. C'est donc une fonction destinée aux développeurs pour déboguer un logiciel… et aussi pour les petits malins qui voudront profiter d'émulateurs plus puissants qu'actuellement.
Une nouvelle version d'AltStore, en bêta, intègre d'ores et déjà cette nouveauté ; elle sera disponible pour tous dans quelques temps. Les machines virtuelles d'UTM devraient également en profiter.