CEmu
CEmu est un émulateur spécialisé pour les calculatrices Texas Instruments TI-84 Plus CE et TI-83 Premium CE, conçu principalement pour les développeurs. Développé en C/C++ avec une interface graphique Qt, il offre une emulation précise et performante, compatible avec macOS (y compris les modèles récents avec Apple Silicon). Son architecture cross-platform permet aussi de fonctionner sous Windows et Linux.
L’outil se distingue par ses fonctionnalités avancées : débogage en temps réel (points d’arrêt, décompilation eZ80), gestion des périphériques (RAM, ROM, ports), et outils de profiling. Il inclut aussi des options pratiques pour les utilisateurs (copie d’écran, enregistrement, personnalisation des touches). Bien que centré sur le développement, il reste accessible pour une utilisation classique.
Dernière mise à jour :
Plateformes
Architecture
Mac OS X - macOS
Apple Silicon
64 bits
Téléchargement et liens
- Télécharger CEmu
- Site officiel
- Code source
-
brew install --cask cemu
Historique des versions
v2.0
-
Nouveautés majeures :
- Ajout du support des transfers USB host→émulateur (transfert d’Apps et d’OS depuis l’hôte vers l’émulateur).
- Prise en charge complète du matériel rev M+ (sauf coprocesseur Python).
- Améliorations majeures de l’émulation LCD et du watchdog timer (basées sur des recherches matérielles).
- Préparation des fonctionnalités futures liées au Python (SPI, UART, etc.).
- Support du big-endian et amélioration de la gestion des interruptions (RST/trap).
-
Corrections critiques :
- Correction du crash lors de la tentative d’export d’une carte de touches "natural" (impossible par conception).
- Fix de l’affichage des registres R dans le débogueur et des instructions index bit dans le désassembleur.
- Suppression des doublons dans les équates importées du débogueur.
- Correction du mode plein écran sur plusieurs écrans (macOS inclus).
-
Améliorations spécifiques macOS :
- Builds natifs pour Apple Silicon (M1/M2/M3) et Intel (fichiers
.dmgdédiés). - Codesignage et notarisation automatiques des binaires macOS (via GitHub Actions).
- Correction du glisser-déposer des captures d’écran (drag'n'drop).
- macOS minimum requis : 12.7+ pour les builds Qt5 Intel (Qt6 recommandé pour les fonctionnalités modernes).
- Support de CMake avec intégration vcpkg pour les compilations locales.
- Builds natifs pour Apple Silicon (M1/M2/M3) et Intel (fichiers
Changelog complet
v1.3
-
Nouveautés majeures :
- Ajout d’un clavier personnalisable (clavier "naturel" avec accents/symboles et configuration libre des touches).
- Introduction d’une API "run" permettant une exécution déterministe (utile pour les tests automatisés).
- Interface utilisateur légère en SDL (remplaçant partiellement l’ancienne, plus lourde).
- Visualisation améliorée de la mémoire (grilles configurables, clics sur les adresses, affichage des états du dock/console).
-
Corrections critiques :
- Fix des détections de touches maintenues au démarrage (problème de boot).
- Correction des affichages FPS erronés et des distorsions d’écran (LCD hors limites).
- Résolution des plantages liés à l’affichage simultané de multiples erreurs.
- Stabilisation des sauvegardes/restitutions d’état de l’écran LCD et gestion des événements.
-
Améliorations spécifiques à macOS :
- Support des Touch Bar sur MacBook Pro (affichage de raccourcis utiles).
- Prise en charge des AppVars au format Python (pour les calculatrices TI).
- Correction du prévisualisateur hexadécimal des AppVars (bug #312).
-
Note technique :
- Version Qt mise à jour (5.12/5.13, dernière compatible avec cette release).
- Aucun changement majeur pour les builds macOS (pas de support Apple Silicon ni de modification des prérequis macOS).
Changelog complet
v1.2
-
Améliorations majeures pour l'utilisateur :
- Ajout d'un bouton pour copier directement une capture d'écran dans le presse-papiers.
- Possibilité de glisser-déposer une image depuis l'écran LCD vers un autre emplacement pour l'exporter.
-
Corrections critiques :
- Correction d'une race condition dans le code multithreadé, évitant les blocages aléatoires de l'émulation.
- Ajout de tokens manquants dans le surlignage syntaxique TI-Basic.
-
Spécificités macOS :
- Support du mode sombre sur macOS (si compilé avec Qt 5.12+, Xcode 10 et SDK 10.14, avec une mise en garde sur certains comportements).
- Utilisation de Qt 5.12 pour les builds macOS.
-
Améliorations techniques :
- Réécriture complète du support TI-Bundle pour une configuration simplifiée.
- Optimisation des performances en lecture aléatoire de mémoire (zones non mappées).
- Mise à jour du système de test automatique (autotester) pour gérer un nouveau format de groupes de bibliothèques et déboguer via des dumps mémoire en cas d'échec.
Changelog complet
v1.1.1
- Correction d’un problème critique sur certaines builds Windows concernant la vérification des mises à jour (impactant potentiellement l’auto-update).
- Correction d’une faute de frappe dans le message de bienvenue (sans incidence fonctionnelle majeure).
Changelog complet
v1.1
-
Nouveautés majeures :
- Ajout d’un mode plein écran (clé F11), ainsi que d’un redistribution forcée des panneaux par double-clic sur leurs bords.
- Intégration d’un éditeur/visualiseur des piles FP/OP (nouveau panneau) pour le débogage en mode OS standard.
- Support des fichiers bundle (.b83/.b84) pour le transfert de données.
- Affichage amélioré des messages dans la console (types et couleurs configurables).
- Syntaxe highlighting TI-Basic dans le visualiseur de variables et support de la commande
GetStringInput($).
-
Corrections critiques :
- Gestion des ROM invalides (ex. ROM non-CE) avec un message d’erreur clair.
- Correction des problèmes de permissions en mode portable (notamment sur macOS, avec fallback automatique).
- Stabilisation des fenêtres flottantes (comportement et apparence par défaut).
- Fixe les erreurs de déclenchement d’interruptions liées à des conditions spécifiques de l’écran LCD (SPI).
- Correction des problèmes de threading et des bugs liés à l’enregistrement d’écran (vitesse incorrecte).
-
Améliorations spécifiques à macOS :
- Compatibilité portable renforcée sur macOS (chemins et gestion des paramètres corrigés).
- Option de regroupement dans le Dock rendue togglable via les paramètres.
- Migration automatique des paramètres entre versions, avec vérification des droits d’écriture du dossier de configuration.
-
Autres améliorations techniques :
- Remplacement du désassembleur par une version réécrite (
zdis), ainsi que du code de la console et du visualiseur mémoire (plus performants et concis). - Débogage amélioré (étapes, points d’arrêt, prévisualisation des variables).
- Précision accrue du scan du clavier OS (comportement plus fidèle au matériel).
- Remplacement du désassembleur par une version réécrite (
Changelog complet
v1.0
-
Nouveautés majeures pour les développeurs :
- Ajout d’un autotester (testeur automatisé) pour des tests unitaires et un léger scripting, utile pour valider des programmes ou des comportements spécifiques.
- DMA et SPI émulés pour une meilleure précision matérielle (compatibilité avec les révisions matérielles pré-I et IM 2).
- Interface de programmation entre processus (IPC) pour gérer plusieurs instances simultanément (ex : synchronisation de données entre émulateurs).
-
Fonctionnalités techniques avancées :
- Débogueur complet avec :
- Points d’arrêt (R/W/X) et watchpoints,
- Décompilation eZ80 (avec support des équates),
- Moniteurs/éditeurs pour les ports, timers, mémoire, CPU (état/registres), LCD, et table d’allocation des variables (VAT).
- Visualisation mémoire sous forme de LCD virtuels personnalisables.
- Cycle counter intégré pour le benchmarking/profiling des performances.
- Débogueur complet avec :
-
Améliorations utilisateur :
- Sauvegarde/réinitialisation d’états d’émulation pour une reprise rapide.
- Capture d’écran (PNG) et enregistrement vidéo (GIF animé) du calculateur.
- Envoi/reception de fichiers (hors applications/OS) via l’interface.
-
Personnalisation poussée :
- Thèmes "CE skins" (couleurs identiques aux appareils réels).
- Présets de raccourcis clavier et historique des frappes enregistrées.
- Taux de rafraîchissement LCD et FPS ajustables manuellement.
(Aucune mention spécifique à macOS ou Apple Silicon dans ce changelog.)
Changelog complet
Captures d'écran