Ouvrir le menu principal

iGeneration

Recherche

L'ouverture de l'iPhone en Europe ne profitera pas à Dolphin et à certains émulateurs

Pierre Dandumont

Monday 12 February 2024 à 18:45 • 46

iOS

Si certains attendent l'arrivée d'iOS 17.4 de pied ferme pour pouvoir profiter facilement d'émulateurs sur un iPhone, ils vont devoir tempérer leurs attentes : le fonctionnement de certains émulateurs (comme Dolphin, qui simule le GameCube et la Wii) pourrait empêcher leur arrivée sur les iPhone, même avec l'ouverture prônée par l'Union européenne.

Le problème serait différent de ce qui a bloqué l'arrivée de Dolphin sur Steam et — surtout — il pourrait toucher de nombreux émulateurs. En effet, les règles techniques d'iOS — toujours de la partie, même après l'ouverture liée au DMA — empêchent l'utilisation de compilation à la volée (JIT, pour Just-In-Time compilation) pour les applications, sauf s'il s'agit d'un navigateur. Et de nombreux émulateurs, dont Dolphin, intègrent cette solution. C'est une crainte qui a été mise en avant par le compte officiel de la version iOS sur X.

Pour le moment, pas de Zelda sur iPhone.

Nous allons tenter de faire une explication simple1 : une des fonctions de base d'un émulateur est de lire du code qui a été pensé pour un jeu d'instructions précis (par exemple du code PowerPC2 dans le cas de Dolphin) et de l'exécuter sur un autre jeu d'instructions (ARM64 pour les iPhone). La solution de base consiste à interpréter le code, c'est-à-dire traiter chaque instruction une à une. C'est une solution efficace, mais qui a le défaut d'être lente. Et quand vous voulez émuler une console du milieu des années 2000 sur un smartphone, vous ne pouvez pas vous permettre d'être lent.

Avec la compilation à la volée, le fonctionnement est le même que pour Rosetta 2 : le code est converti au lancement (et mis en cache) avant l'exécution, pour obtenir un résultat bien plus efficace3. Mais cette solution pose un problème : elle consiste littéralement à créer du code natif. Pour Apple, qui met en avant la sécurité des iPhone, c'est un énorme problème : il est impossible de vérifier que le code en question n'est pas malicieux et donc d'effectuer les tests de sécurité.

La notarisation sera bien obligatoire pour les applications iOS

La notarisation sera bien obligatoire pour les applications iOS

Dans la pratique, c'est assez simple : les applications iOS (au sens large) ne peuvent tout simplement pas effectuer de compilation JIT pour cette raison. La seule exception vient des navigateurs, qui peuvent le faire pour le code JavaScript, avec de très grosses limites, mais Dolphin (ou n'importe quel autre émulateur) n'est pas un navigateur. La version compilable de Dolphin pour iOS souffre déjà du même problème : si vous n'avez pas un iPhone jailbreaké, vous ne pouvez pas profiter du JIT.

Dans la pratique, Dolphin ne devrait pas être la seule application touchée : de nombreux émulateurs reposent sur des solutions qui passent par de la compilation à la volée. Ce n'est pour autant pas systématique, ni totalement bloquant : il est toujours possible de passer par un interpréteur classique, même pour Dolphin. Le problème principal, c'est que les performances sont beaucoup plus faibles, et si nous devons rester dans le cas des consoles Nintendo, il est envisageable d'émuler le (presque) 6502 à 1,66 MHz de la NES ou le (presque) 65C816 à 3,5 MHz de la Super NES, mais pas réellement le PowerPC G3 à 486 MHz ou 729 MHz du GameCube et de la Wii, tout du moins pas avec des performances décentes. Mais compte tenu des implications liées à la sécurité, Apple ne devrait pas lâcher la bride sur ce point.

Ouverture de l’iPhone en Europe : Apple dévoile sous la contrainte un plan historique

Ouverture de l’iPhone en Europe : Apple dévoile sous la contrainte un plan historique


  1. Si vous aimez les explications compliquées, le blog des développeurs est une mine d'or.  ↩︎

  2. GameCube et Wii partagent le même CPU, un PowerPC G3. Oui, le même que celui des iMac.  ↩︎

  3. Ce n'est pas une science exacte : certains titres fonctionnent mal avec l'émulation JIT.  ↩︎

Rejoignez le Club iGen

Soutenez le travail d'une rédaction indépendante.

Rejoignez la plus grande communauté Apple francophone !

S'abonner

iOS 18 : les accessoires tiers peuvent se jumeler presque aussi simplement que des AirPods

10:00

• 11


Freeform se met en scène avec iPadOS 18

05/10/2024 à 10:00

• 6


Amazon : des promos sur la gamme Echo, le Kindle Scribe et un pack Eero Wi-Fi 6e à 215 €

05/10/2024 à 09:35

• 7


Un incident sur Youtube bannit des utilisateurs par erreur

04/10/2024 à 21:45

• 15


Google tue dans l’œuf le projet d’OS complet sur Android

04/10/2024 à 21:15

• 18


100 milliards de Go, c'est la quantité de données transférées sur les réseaux mobiles aux USA en 2023

04/10/2024 à 19:15

• 23


Installer GNU/Linux sur de vieux iPhone et iPad devient possible

04/10/2024 à 17:30

• 9


Une bidouille pour ajouter deux cartes SIM dans un iPhone uniquement eSIM

04/10/2024 à 16:00

• 14


Pebblebee lance des traqueurs universels… qui ne se connectent qu'à un réseau à la fois

04/10/2024 à 13:30

• 11


Arnaque à la réparation, quatre ans de prison

04/10/2024 à 12:00

• 14


iPhone 16 Pro (Max) : état des stocks ! 🆕

04/10/2024 à 11:40

• 86


iPhone SE 4 : le design du 14, l’appareil photo du 15, la puce du 16 et le premier modem d’Apple

04/10/2024 à 08:12

• 40


Des correctifs importants dans iOS/iPadOS 18.0.1, watchOS 11.0.1 et visionOS 2.0.1

04/10/2024 à 07:16

• 40


Promo : iPad 10 (2022) à 310 € et iPad Air M2 à 700 € !

03/10/2024 à 23:44

• 12


Foot sur Canal+, quand la 4K n’en n'est pas...

03/10/2024 à 22:15

• 41


Assistant : Gemini Live va bientôt parler français

03/10/2024 à 21:30

• 22