CEmu

Émulateur v2.0

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

Téléphone mobile / Autres

Architecture

Mac OS X - macOS Mac OS X - macOS Intel x86 Intel x86 Apple Silicon Apple Silicon 64 bits 64 bits

Téléchargement et liens

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 .dmg dé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.
Changelog complet
After many years and around 450 commits, it's finally here... CEmu is more accurate and more powerful than ever before :) ![cemu_v2_bento](https://github.com/user-attachments/assets/4fa69188-8937-4489-af1b-801658cc0719) ### Downloads: - **Windows (64-bit)**: [Qt6](https://github.com/CE-Programming/CEmu/releases/download/v2.0/CEmu-v2.0_win64_Qt6.exe) (recommended for Win10+) ; [Qt5](https://github.com/CE-Programming/CEmu/releases/download/v2.0/CEmu-v2.0_win64_Qt5.exe) (Win7+) - **Windows (32-bit)**: [Qt5](https://github.com/CE-Programming/CEmu/releases/download/v2.0/CEmu-v2.0_win32_Qt5.exe) (for older PCs) - **macOS (64-bit)**: [Qt6 arm](https://github.com/CE-Programming/CEmu/releases/download/v2.0/CEmu-v2.0_macOS_Qt6_arm.dmg) / [Qt6 intel](https://github.com/CE-Programming/CEmu/releases/download/v2.0/CEmu-v2.0_macOS_Qt6_intel.dmg) ; [Qt5 intel](https://github.com/CE-Programming/CEmu/releases/download/v2.0/CEmu-v2.0_macOS_Qt5_intel.dmg) (12.7+) - **Linux (64-bit, glibc 2.29+)**: [Qt6 shared libs](https://github.com/CE-Programming/CEmu/releases/download/v2.0/CEmu-v2.0_linux_Qt6-dynamic.zip) ; [Qt6 static libs](https://github.com/CE-Programming/CEmu/releases/download/v2.0/CEmu-v2.0_linux_Qt6-static.zip) _All binaries are provided by our [CI (GitHub Actions)](https://github.com/CE-Programming/CEmu/actions). Packages for various Linux distros are [available from OBS](https://software.opensuse.org/download.html?project=home%3Aadriweb%3ACEmu&package=cemu)._ ## What changed Note that this summary is a mixed bag of new features since the latest release, as well as fixes to things added since then, as a lot of you were (rightfully) using [nightly builds](https://github.com/CE-Programming/CEmu/releases/nightly). ### Core: * Support for real host->emu transfers (USB emulation), by @jacobly0. i.e. you can now transfer Apps and OSes normally * Support for rev M+ hardware _(excluding Python coprocessor)_, by @jacobly0 and @calc84maniac. * Major LCD emulation improvements, by @calc84maniac. * Major watchdog timer rewrite based on hardware research, by @calc84maniac. * Prepare future Python-related features, by @jacobly0 and @calc84maniac (SPI, UART...) * Big endian support, by @calc84maniac * Make keypress emulation thread-safe, by @calc84maniac * Lots of other misc. fixes and improvements (timing, accuracy, performance, rst/trap edge cases...) ### GUI: * Proper dark mode support (be sure to use Qt6 builds) * Improved display of emulation speed and screen refresh rate * Screenshots/recordings now have correct screen brightness * Fix fullscreen mode when using multiple monitors * Add upscale method and fullscreen aspect ratio settings * Add vertical printing to Keypress History * Add calculator skins for newer models, and some new color variants * Add some debugging features for TI-Basic (step-by-step execution, live variable preview etc.) * Fix name of a few OS variables in some cases (some were labeled `Ans`, formula lists support...) * Fix crash upon trying to export natural keymap (you can't) * Fix byte display order in disassembler for index bit instructions * Fix R register in debugger. * Deduplicate imported equates in the debugger * Add/improve variable content preview (tivars_lib_cpp updates) * Add disassembler option for tabs between the opcode and operands * Fix "Pause emulation" preventing CEmu from closing * Add SmartPad keymap (for use with the calc app) * Add `screenshot` IPC command/option * macOS: fix screenshot drag'n'drop * Add `--reset` CLI option to clear the config * New/improved translations by @Stephan-P (NL), @wolfarmoon (ES), @Jerry23011+@LifeEmu (CN) * Better version update check * Lots of various fixes ### CI / Build: @calc84maniac and @adriweb have been improving the build system and CI workflows: * Move the CI to GitHub actions (now provide builds for all three OSes) * macOS: native builds available for both Intel and Apple Silicon * macOS: the builds are now codesigned and notarized automatically * Take care of some LTO issues * Update to latest Qt5 and Qt6 * CMake support (with vcpkg integration) **Full Changelog**: https://github.com/CE-Programming/CEmu/compare/v1.3...v2.0 By the way, here is what TI-Basic debugging looks like, along with a short animation of live variable view while debugging: [![TI-Basic debugging](https://i.imgur.com/lO0XoaEm.png)](https://i.imgur.com/lO0XoaE.png) [![live variable view basic debugging](https://github.com/user-attachments/assets/d9dcaed7-1c89-4573-9a83-6e0a5c16847d)](https://i.imgur.com/2JtEDXq.mp4) ❤️ We thank all of our contributors, and you, users, as well - **Enjoy the new release!**
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
> **Warning** This stable release is rather old now, but CEmu is far from dead, we just don't make releases often - if you want to try the latest features, check out the [nightly](https://github.com/CE-Programming/CEmu/releases/tag/nightly)! ______________________ Here's the long-awaited release, filled with new somewhat-minor features, improvements, and bugfixes! Fun fact: did you know that we recently went over 211 commits? 🤓 Note that v1.3 should be last release before any new major one *(planned to be v2.0 with source-level debugging, for C and TI-Basic code, [no kidding](https://gfycat.com/anxioussevereastarte-debugging-ti-basic-cemu-live)!)* ## Additions * New "natural" keymap (accents, symbols etc. from your computer) * Custom keymap support (choose your own keybindings) * New simple and light GUI in SDL * New core "run API" making deterministic execution possible * New grid option and config GUI for memory visualizers (#308) * Visual indicator of console/dock output (#313) * New command-line options: * Full-screen modes (`--fullscreen`) * Program to launch (`--launch`) [![Memory visualizer configuration](https://i.imgur.com/L5Kml5m.jpg)](https://i.imgur.com/0HzMnG2.png) ## GUI and core improvements * The core loop is now faster * Better Flash emulation (more modes handled, improved protections) * Allow changing of clock rate * Table widgets are now draggable * Reset the calc if the flash wait states are 0 * Better LCD state saving and restoring and improved event handling * Cleaned-up core codestyle and made it C89-compatible * Improved recent variables view * Overhauled break/watch/port (reordering, ranges support...) [![Watchpoints with ranges](https://i.imgur.com/5qRhpce.jpg)](https://i.imgur.com/g7SFtUF.jpg) ## Other improvements * Autotester inside the emu thread and deterministic (#178) * Various performance and stability improvements * Use the new value for the maximum appvar size in the dumper * On MacBook Pro machines with Touch Bar, display some shortcuts * Updated tivars_lib from upstream: * Code cleanup and potential crash fixes * More format checks * Only reindent tokenized variables * Fix appvar preview in hex (#312) * Support Python AppVars format [![MacBook Pro Touch Bar support](https://i.imgur.com/mszmV5u.jpg)](https://i.imgur.com/gqXAKOv.jpg) [![Python AppVars support](https://i.imgur.com/QOfGCdA.jpg)](https://i.imgur.com/RTEwcND.jpg) ## Bug fixes * Fix held keys detection on boot * Fix actual FPS display * Fix drawing of off LCD * Fix screen breakage when resetting calculator * Fix address clicking in memory visualizers (#308) * Fix breakage caused by showing too many errors simultaneously (#317) * Hack around a libpng-apng bug (1-row frames) * Disable launch button while an autotest is running * Fix forgotten prettification of protected-programs in the viewer * Avoid creating useless temp files when clicking the screen ## Build-related improvements * Qt version updated (5.12, 5.13) * Fix some missing icon resources * Fix Emscripten build and runtime * More travis cleanup and minor improvements * Linux builds on OBS are now available for even more distributions and versions! *(Note that this will be the last release supporting versions having "old" Qt)*
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
## Additions * You can now toggle highlighting/wrapping/formatting in the variable previewer * Support for the "temporary equation" var format has been added to the var list/previewer (#287) * RAM can now be imported/exported as well * New button to directly take a screenshot into the clipboard (#291) * You can now drag'n'drop from the LCD to somewhere else to export a screenshot (#290) * Core: implemented SPI write memory. ## GUI improvements * The variable list's previewer uses @jacobly0's TI-like font * The scroll position is kept as much as possible in the variable previewer * Much better handling of touch-enabled laptop displays (#282) * The keypad history window is now a dock, solving some minor issues (#301) * On macOS, if you build with Qt 5.12+, Xcode 10 and a 10.14 SDK, dark mode is supported ([watch out](https://github.com/CE-Programming/CEmu/issues/300)) ## Other improvements * Core: better random-read performance (unmapped areas...) * TI-Bundle support has been fully reworked to be much simpler * The autotester can now handle the new libs group format * The autotester, when in debug mode, dumps memory upon failure * Misc. GUI code cleanup ## Bug fixes * Added some missing tokens to the TI-Basic syntax highlighter * Cleaned up threading code and fixed race condition causing random emulation perma-freezes * Fixed docks possibly growing/moving a bit after reopening CEmu (#288) ## Build-related improvements * For Windows, the MSVC builds (AppVeyor) now use Qt 5.11, and MinGW builds (Jacobly) Qt 5.12 * For macOS, builds now use Qt 5.12 * Travis and AppVeyor CI build processes got simplified and are now faster * Linux builds on OBS now also have binaries for Fedora 29 and Ubuntu 18.10

Captures d'écran

Toutes sortes de fenêtre dans CEmu (Ti84/Ti86)