La sortie de la semaine dernière de la suite d'émulation Delta a finalement donné aux utilisateurs iOS un accès facile et sans chargement latéral à l'émulation de jeu Nintendo classique tout au long de l'ère Nintendo 64. Cependant, lorsqu'il s'agit d'émuler les consoles de salon ultérieures de Nintendo sur iOS, certaines restrictions techniques imposées par Apple rendent difficile l'obtention d'un émulateur fonctionnel sur l'App Store.
Dans un article de blog récentdéveloppeur DolphiniOS (et longue durée Changer pirate) OatmealDome explique comment un dauphin fourchette de code– qui porte les célèbres émulateurs GameCube et Wii sur le système d'exploitation des smartphones d'Apple – utilise la compilation juste à temps (JIT) pour traduire les instructions PowerPC de ces consoles rétro en code iOS compatible ARM. Mais celui d'Apple Règlements de l'App Store contre les applications qui « installent du code exécutable » (Section 3.3.1B) en général empêcher la recompilation JIT sur iOS, à quelques exceptions près telles que les navigateurs Web. Cette restriction peut avoir un raisonnement de sécurité valable derrière celamais cela peut également gêner les développeurs d'outils tels que les moteurs de navigateur tiers (sauf récemment dans l'UE).
Alors que les développeurs MacOS peuvent utiliser un droit explicite pour permettre la recompilation JIT dans une application, cette exception ne s'applique pas aux développeurs iOS. Et bien que les App Stores alternatifs et les applications téléchargées (y compris DolphiniOS) aient découvert divers façons pour permettre la compilation JIT sur les appareils iOS jailbreakés et d'origine, ces solutions de contournement peuvent devenir assez obscures et rompre occasionnellement avec les nouvelles versions d'iOS.
OatmealDome a demandé une exception aux restrictions JIT d'Apple dans le cadre du DMA européenmais « Apple a refusé la demande il y a quelques semaines ».
Pourquoi JIT est nécessaire
Les émulateurs GameCube et Wii comme Dolphin sont techniquement possibles sans recompilation JIT, bien sûr ; un simple interprète peut également traduire le code PowerPC sans avoir besoin d'une recompilation complète. Mais OatmealDome écrit que la surcharge de traitement impliquée signifie « malheureusement, l'interpréteur est plusieurs fois plus lent que le recompilateur JIT ». Pour preuve, OatmealDome a partagé vidéo d'émulation GameCube « interprétée » s'exécutant d'une manière injouable sur un iPhone 15 Pro Max et l'a comparée à images d'un exemple recompilé JIT qui s'exécute facilement à pleine vitesse.
« Bien que nous puissions soumettre DolphiniOS à l'App Store avec juste l'interprète, nous recevrions probablement des plaintes sans fin de la part des utilisateurs concernant les mauvaises performances », a écrit OatmealDome. « App Review pourrait également nous rejeter de toute façon parce que l'application est inutilisable. »
Les aficionados de l'émulation se souviendront peut-être également qu'une version Steam prévue de Dolphin a été retiré de cette vitrine après Nintendo a exprimé ses inquiétudes à Valve sur l'intégration par l'émulateur du Clé commune Wii. Cela signifie que toute version de Dolphin approuvée par l'App Store devra peut-être naviguer des eaux juridiques délicates en plus des restrictions techniques d'Apple.
Il convient également de mentionner que Ouverture récente de l'App Store d'Apple pour l'émulation de jeux ne mentionne spécifiquement que les « émulateurs de console de jeu rétro », sans clarifier une limite spécifique pour ce qui rend une console « rétro ». Sans trop entrer dans les mauvaises herbes ce débat sémantique controversénous soupçonnons fortement que la Wii, qui lancé il y a près de 18 anscorrespondrait même à la définition « rétro » la plus stricte qu'Apple pourrait vouloir appliquer.
Image de la liste par Dolphin Team