TouchHLE
TouchHLE est un émulateur HLE (High-Level Emulation) conçu pour exécuter des applications et jeux développés pour les iPhone et iPod touch sous iPhone OS 3.0. Il se concentre sur la compatibilité des titres mobiles, avec une priorité marquée pour les jeux, tout en reproduisant l’environnement original avec une approche logicielle optimisée.
Sur macOS, il fonctionne sur les processeurs Apple Silicon via Rosetta, offrant une solution accessible pour les utilisateurs équipés de matériel récent. Développé initialement par hikari-no-yume et maintenu par une communauté, il reste un outil orienté pratique, sans affiliation avec Apple. La compatibilité et les performances varient selon les applications, comme le précise sa base de données dédiée.
Dernière mise à jour :
Plateformes
Architecture
Mac OS X - macOS
64 bits
Téléchargement et liens
Historique des versions
v0.2.3
-
Amélioration majeure de la compatibilité : Prise en charge de plus de 300 applications mobiles (notées ≥ 3 étoiles sur l’AppDB), incluant des titres variés comme Dungeon Hunter, Resident Evil 4: Mobile Edition, Assassin’s Creed, FIFA 10, ou Battlefield: Bad Company 2, avec des contributions ciblées sur des jeux populaires et niche.
-
Nouveautés API critiques :
- Saisie textuelle native via clavier physique (Windows/macOS) ou clavier système (Android) pour
UITextField, améliorant l’ergonomie des jeux textuels ou de dialogue. - Transformations affines (rotation) pour Core Animation et UIKit, indispensable à des jeux comme Crusade of Destiny ou Nanosaur 2 (rotation d’éléments UI), bien que l’auto-rotation reste inexistante.
- Support partiel pour
UIScrollViewetUITextView, ainsi que pour des animations explicites en Core Animation. - Librairies dynamiques : Intégration de
libz(zlib) compilée depuis une source propre, et support des codecs audio ALAC et IMA ADPCM via Audio Toolbox.
- Saisie textuelle native via clavier physique (Windows/macOS) ou clavier système (Android) pour
-
Améliorations utilisateur :
- Options par défaut pour des jeux spécifiques, et fonction "Quick options" dans le sélecteur d’applications pour configurer rapidement des paramètres courants.
- Simulation du gyroscope via la souris (maintenir le bouton droit et déplacer le curseur), utile pour les jeux de tilt sans contrôleur physique.
-
Corrections techniques :
- Passage aux versions ARMv7 de libstdc++ et libgcc pour une meilleure stabilité sur architectures récentes.
- Support limité pour le multi-joueur local via Wi-Fi dans certains titres (ex : jeux de course ou de tir).
- Adaptation partielle aux changements de format binaire iPhone OS 3.1 (compatibilité non officielle avec ces anciennes versions).
Changelog complet
v0.2.2
-
Nouveautés majeures en compatibilité :
- Ajout du support pour 4 applications (Rayman 2, Tony Hawk’s Pro Skater 2, Earthworm Jim, Castle of Magic).
- Prise en charge des applications iPhone OS 3.0 (en plus des 2.x) :
- Gestion des fat binaries (ARMv6/ARMv7) sans crash, avec sélection automatique de la version la plus adaptée.
- Mise à jour des bibliothèques dynamiques ARMv6 (
libgcc,libstdc++) vers leurs versions iPhone OS 3.0.1. - Suppression des avertissements pour les apps ciblant iPhone OS 3.0 (seulement pour 3.1+ désormais).
-
Améliorations techniques :
- Support du format audio AAC-LC (conteneurs MPEG-4) via Audio Toolbox (solution temporaire, compatibilité variable).
- Contributions API étendues par plusieurs contributeurs (optimisations mineures).
-
Usabilité :
- Option
--button-to-touch=étendue pour mapper les boutons Start et LeftShoulder (en plus de A/B/X/Y et D-pad). - Ajustements des paramètres par défaut pour certains jeux.
- Option
Changelog complet
v0.2.1
-
Nouveautés majeures :
- Base de données collaborative de compatibilité : Remplacement de l’ancienne liste d’apps supportées par une base de données communautaire (appdb.touchhle.org).
- Support multi-touch : Ajout officiel pour une meilleure compatibilité avec les jeux utilisant plusieurs points de contact.
-
Améliorations de compatibilité :
- Ajout de 4 nouvelles applications fonctionnelles : Doom, Doom II RPG, I Love Katamari, et Wolfenstein RPG.
- Améliorations API : Contributions mineures pour renforcer la stabilité des apps existantes.
(Aucun changement spécifique à macOS ou Apple Silicon dans ce changelog.)
Changelog complet
v0.2.0
-
Nouveautés majeures :
- Support d’Android : première version fonctionnelle sur Android (uniquement pour architectures AArch64), portée par @ciciplusplus.
- Interface utilisateur améliorée : ajout d’un app picker graphique (grille d’icônes) pour sélectionner les applications, remplaçant les méthodes basiques précédentes.
- Prise en charge partielle de UIKit : implémentation de composants clés comme
UIImageView,UILabel,UIControl,UIButton, et gestion des hiérarchies de couches (layers) et d’animation. Permet désormais de faire tourner des apps non-games (au-delà des jeux OpenGL ES uniquement).
-
Corrections importantes :
- Fuite mémoire macOS corrigée : résolution d’une fuite allant jusqu’à 0,4 Mo/s sur macOS (liée à des optimisations graphiques).
- Polling des événements optimisé : évite désormais un sur-polling dépassant 120 Hz, améliorant les performances globales (impact subtil sur les apps existantes).
- Affichage des icônes d’apps : coins arrondis systématiques (même si l’icône PNG est carrée), conformément au comportement iOS.
-
Améliorations spécifiques macOS :
- Aucune mention de builds
.dmg, d’optimisations pour Apple Silicon (M1/M2/M3), ou de versions minimales de macOS dans ce changelog. Les corrections citées (fuite mémoire, optimisations graphiques) sont transverses mais incluent macOS parmi les systèmes testés.
- Aucune mention de builds
Changelog complet
v0.1.2
-
Améliorations majeures de compatibilité :
- Meilleure prise en charge des API
UIImage,CGImageetCGBitmapContext, permettant le chargement de textures depuis des fichiers PNG (ex. : code d’exemple d’Apple pourTexture2D). - Ajout du support du format MP3 dans Audio Toolbox (solution temporaire, résultats variables selon les apps).
- Meilleure prise en charge des API
-
Nouveaux titres supportés :
- Touch & Go LITE (en plus de Super Monkey Ball Lite, déjà fonctionnel).
-
Corrections critiques :
- Résolution d’un bug dans la bibliothèque stb_image causant l’échec de chargement de nombreux lancers d’applications (splash screens) et icônes.
-
Améliorations utilisateur :
- Avertissement automatique si une app nécessite une version plus récente d’iOS.
- Affichage des métadonnées du bundle (nom/version) lors du lancement, avec option
--infopour les consulter sans exécuter l’app. - Chargement des paramètres depuis des fichiers (fichiers
touchHLE_default_options.txtettouchHLE_options.txtpour les configurations par défaut ou personnalisées).
Note : Aucun changement spécifique à macOS ou Apple Silicon dans ce changelog.
Changelog complet
v0.1.1
-
Améliorations majeures de compatibilité API :
- Support étendu des opérations POSIX (lecture/écriture de fichiers), auparavant limité aux appels C basiques.
- Prise en charge basique des Audio Session Services et de
MPMoviePlayerController(sans implémentation vidéo réelle).
-
Nouveauté logicielle :
- Ajout du support pour Crash Bandicoot Nitro Kart 3D (version 1.0 uniquement).
-
Optimisations performance :
- Réécriture du système de limitation CPU pour un meilleur équilibre réactivité/consommation énergétique, avec des frames plus stables.
- Accès mémoire optimisé pour l’CPU émulé, améliorant les performances jusqu’à 25% dans certains cas.
-
Correction visuelle critique :
- Résolution d’un problème de gamma textuel (
UIStringDrawing) affectant l’affichage du menu des options dans Super Monkey Ball.
- Résolution d’un problème de gamma textuel (
-
Usabilité :
- Ouverture directe des fichiers .ipa (sans extraction préalable de l’
.app). - Nouveaux flags en ligne de commande (
--landscape-left,--landscape-right) pour définir l’orientation initiale. - Flexibilité accrue : l’argument
.ipa/bundle n’a plus besoin d’être le premier en CLI.
- Ouverture directe des fichiers .ipa (sans extraction préalable de l’
Changelog complet
v0.1.0
Aucun détail pour cette version.
Captures d'écran