Page 1 of 18

CEmu : Un émulateur TI-83 Premium CE / TI-84 Plus CE !

Unread postPosted: 30 Dec 2015, 09:42
by MateoConLechuga
Français - English

CEmu: what is it?
To sum up: a portable and open-source TI-84 Plus CE and TI-83 Premium CE emulator.

The 84+CE and 83PCE (TI-eZ80 series) hit the market over half a year ago. However, there was no third-party emulator, and the official emulator in TI-SmartView CE does not provide the features most community programmers have come to expect from well-behaved emulators: an accurate emulation core, a debugger with a way to inspect and modify registers and memory, a disassembler, etc. Teachers, who are SmartView's main target audience, hardly need such features.
The lack of a proper emulator is a significant roadblock to making TI-eZ80 native code programming popular in the community, which is a shame because the platform is a great improvement over the 84+CSE: faster CPU, more RAM, etc. Therefore, for the community’s sake, such a situation shouldn’t last for long - hence, the making of an emulator ;)

CEmu is open source (and even free software, under the GPLv3), like nearly all community-made emulators, and made in C/C++. A native code emulator makes perfect sense for both efficiency and versatility; in the longer term, retargeting the code at browsers (JavaScript, WebAssembly) is possible nowadays, thanks to Emscripten.


The team behind CEmu
Matt “MateoConLechuga” Waltz started the project and remains the main contributor.
More recently, Jacob "jacobly" Young was invited to join the fun, and he has so far worked quite a bit on improving the CPU and ASIC core (as well as integration thereof with the UI), mainly.
The CEmu code base leverages both Firebird (TI-Nspire emulator) and z80e (TI-Z80 emulator for KnightOS, and to which jacobly is a contributor) open-source projects.
There are also other contributions, from non-TI-(e)Z80 experts: Adrien “Adriweb” Bertrand, Lionel Debroux, Fabian “Vogtinator” Vogt.
And in the future… well, potentially anyone with sufficient knowledge, that’s precisely part of the power of open source :)

If you want to chat, we're on IRC (EFNet), on channels such as #ez80-dev and #cemu-dev :)


Features
  • Portable emulation core written in C
  • Decent emulation accuracy yielding the ability to boot TI’s 5.1 OS, browse around it, execute self test successfully, and more
  • Portable GUI written in C++ using Qt (making it run natively on Windows, Mac OS X, and Linux !)
  • Docks/Tabs-based graphical UI (which you are able to customize)
  • Integrated setup wizard with ROM dumper for your calculator (there’s another one in TILP beta)
  • Debugger (read CPU registers, flags, ASIC state) and port monitor/writer
  • Animated (GIF) and still (PNG) screenshots

What it looks like
Here is what a recent build looks like (edited for late 2016 update)


Short-term todo list
  • Continue implementing the ASIC emulation core: remaining devices/ports, etc.
  • Implement file transfers (implementing USB is not an easy task, so that will probably take a while)
  • Make the debugger more useful: disassembly view, stepping, breakpoints…
  • Finish 83PCE support (e.g. keypad and skin - emulating the 83PCE already works)
  • Test the emulator and hunt bugs, even more!


In the future…
  • Provide more translations (for now, it's available in English and French). If you want to help, tell us, or send patches / pull requests!
  • Make a web-based version of CEmu, like there’s a web-based version of z80e for trying out KnightOS. Compiling the CEmu core to JavaScript (and later WebAssembly), using Emscripten, is already known to work: Adriweb has been able to get an Emscriptened CEmu core to boot a ROM and get to the home screen (confirmed by dumping the LCD buffer) :)
  • Think about CEmu's core’s integration on third-party projects, like TI-Planet's Project Builder - for instance, in C projects, in order to directly test the program, and eventually (if someone has enough time…) have live source-level debugging!
  • Look at this gdb-z80 project (code from 2011...); try to see if it can be updated for eZ80, and used with a CEmu GDB stub. Mainlining such code is highly preferable.
  • ...


Conclusion
To sum up: CEmu is the community's open-source, native, portable, TI-84 Plus CE / TI-83 Premium CE emulator, that has been developed over the past few weeks, and of course, still is currently under development.
We all hope you'll enjoy it :)

Download : archives_voir.php?id=133742
Source code on GitHub : https://github.com/CE-Programming/CEmu/

In the meantime, you can simply build one yourself from the source code (instructions here)

Merry (belated) Christmas! :)
CEmu: qu’est-ce que c’est ?
En résumé: Un émulateur portable et open source de TI-84 Plus CE et TI-83 Premium CE.

Les 83PCE et 84+CE (famille TI-eZ80) sont arrivées sur le marché il y a plus de 6 mois. Cependant, il n’y avait pas d’émulateur réalisé par des tierces parties, et l’émulateur officiel dans TI-SmartView CE ne fournit pas les fonctionnalités que la plupart des programmeurs de la communauté attend maintenant d’un émulateur convenable: un coeur fidèle d’émulation, un debugger permettant d’inspecter et de modifier les registres et la mémoire, un désassembleur, etc. Les enseignants, qui sont la principale cible du SmartView, ont rarement besoin de telles fonctionnalités.
L’absence d’un émulateur convenable rend difficile la popularisation de la programmation en code natif pour TI-eZ80, ce qui est fort dommage, car la plate-forme est une grosse amélioration par rapport à la 84+CSE: un CPU plus rapide, plus de mémoire, etc. Par conséquent, pour le bien de la communauté, cette situation ne doit pas durer longtemps - et c’est pour ça qu’un émulateur est en train d’être réalisé ;)

CEmu est un logiciel ouvert (et même libre, sous la GPLv3), comme presque tous les émulateurs de la communauté, écrit en C/C++. Un émulateur en code natif est une très bonne chose pour l’efficacité et la flexibilité; à plus long terme, cibler les navigateurs (JavaScript, WebAssembly) est possible de nos jours, grâce à Emscripten.


L’équipe de CEmu
Matt “MateoConLechuga” Waltz a démarré le projet et reste le principal contributeur.
Plus récemment, Jacob "jacobly" Young a été invité à se joindre à l’équipe, et il a pas mal travaillé sur l’amélioration du CPU et de l’ASIC (et leur intégration avec l’interface utilisateur), principalement.
Le code de CEmu tire parti des projets open source Firebird (émulateur de TI-Nspire) et de z80e (émulateur de TI-Z80 emulator pour KnightOS, auquel jacobly contribue).
Il y a également d’autres contributions de personnes non-expertes en TI-(e)Z80: Adrien “Adriweb” Bertrand, Lionel Debroux, Fabian “Vogtinator” Vogt.
Et dans le futur… eh bien, potentiellement n’importe qui qui possède suffisamment de connaissances, ça fait précisément partie de la puissance de l’open source :)

Si vous voulez discuter, nous sommes sur IRC (EFNet), sur des channels comme #ez80-dev et #cemu-dev :)


Fonctionnalités
  • Coeur d’émulation portable écrit en C
  • Précision d’émulation acceptable, permettant de booter l’OS 5.1 de TI et de naviguer dedans, d’exécuter le self test avec succès, et davantage
  • Interface utilisateur graphique portable GUI écrite en C++ avec Qt (permettant de tourner nativement sous Windows, Mac OS X, et Linux !)
  • Utilisation de docks et onglets (paramétrables) dans l’interface utilisateur
  • Assistant de paramétrage avec un ROM dumper pour la calculatrice (il en existe un autre dans TILP beta)
  • Debugger (lecture des registres CPUs, flags, ports de l’ASIC) et port monitor/writer
  • Capture d'écran animée (GIF) et statique (PNG)


A quoi ça ressemble
Voici des captures d’une build récente (update 2016):



Todo list à court terme
  • Continuer l’implémentation du coeur de l’ASIC: émuler les périphériques / ports manquants, etc.
  • Implémenter les transferts de fichiers (implémenter l’USB n’est pas une tâche facile, donc ça va probablement prendre un moment)
  • Rendre le debugger plus utile: désassembleur, pas à pas, breakpoints…
  • Finir la gestion des 83PCE (par exemple clavier et skin - l’émulation de la 83PCE fonctionne déjà)
  • Tester encore plus l’émulateur et chasser les bugs !


Dans le futur…
  • Fournir plus de traductions (pour l’instant, il est disponible en anglais et en français). Si vous voulez aider, dites-le nous, ou envoyez des patches / pull requests !
  • Faire une version Web de CEmu, comme il y a une version Web de z80e pour essayer KnightOS. On sait déjà que compiler le coeur de CEmu en JavaScript (et plus tard WebAssembly), avec Emscripten, fonctionne: Adriweb a pu faire booter une ROM au coeur Emscripten-isé, jusqu’à l’écran home (confirmé en dumpant le buffer écran) :)
  • Réfléchir à l’intégration du coeur de CEmu dans d’autres projets, comme le Project Builder TI-Planet - par exemple, dans les projets C, pour permettre le test direct du programme, et peut-être un jour (si quelqu’un a le temps…) le debug en temps réel avec les sources !
  • Examiner ce projet gdb-z80 (code de 2011...) ; voir s’il peut être mis à jour pour l’eZ80, et utilisé avec un stub GDB CEmu. Il est nettement préférable de contribuer un tel code à GDB upstream.
  • ...

Conclusion
En résumé: CEmu est l’émulateur communautaire open source, natif, portable de TI-84 Plus CE / TI-83 Premium CE, qui a été développé au cours des dernières semaines, et est bien sûr toujours en développement.
Nous espérons tous que vous l’apprécierez :)

Téléchargement : archives_voir.php?id=133742
Code source sur GitHub : https://github.com/CE-Programming/CEmu/

En attendant, vous pouvez simplement compiler le code source vous-mêmes, en utilisant les SDKs Qt (instructions ici)

Et puis joyeux Noël en retard ! :)

Re: CEmu

Unread postPosted: 30 Dec 2015, 09:54
by critor
En un mot, félicitations ! :bj:

Re: CEmu : Un émulateur TI-83 Premium CE / TI-84 Plus CE !

Unread postPosted: 30 Dec 2015, 09:55
by Adriweb
Bien que j'aie un petit peu participé au développement, je peux enfin le dire publiquement: Félicitations, particulièrement à Mateo et Jacobly :D
Even though I was a little bit involved in the dev too, congratulations, especially to Mateo and Jacobly :D

Re: CEmu : Un émulateur TI-83 Premium CE / TI-84 Plus CE !

Unread postPosted: 30 Dec 2015, 09:55
by Hayleia
Great news here, and just in time since I recently got my CE and was about to waste a Smartview license :D

Re: CEmu

Unread postPosted: 30 Dec 2015, 09:58
by Epharius
Bravo et merci (à tous les contributeurs) d'avoir pris l'initiative de faire un émulateur pour Ti-84+CE ! Depuis que j'avais découvert le "pas pratique" de Ti SmartView je ne testais plus que sur ma calculatrice. J'avais le droit à de beaux bugs mais à la fin ça devenait inquiétant d'avoir la luminosité qui augmentait toute seule en donnant une impression d'écrasement de pixels...

J'aurais aimé vous aider mais je ne m'y connais absolument pas en émulateur. Je serai sûrement l'un des "petits contributeurs" qui aide à l'occasion ;)

Bref, bonne chance pour la suite, je suivrai de près le projet !

Re: CEmu : Un émulateur TI-83 Premium CE / TI-84 Plus CE !

Unread postPosted: 30 Dec 2015, 10:00
by Wistaro
Bravo !
Ça tombe pile au moment où ma licence gratuite du logiciel Smartview se termine :bj:
Je vais pouvoir continuer à bosser sur mes projets :)

Super surprise pour cette fin d'année :D

Re: CEmu : Un émulateur TI-83 Premium CE / TI-84 Plus CE !

Unread postPosted: 30 Dec 2015, 10:13
by critor
En plein de mots maintenant...


Enfin un émulateur eZ80 utilisable pour le développement ! :bj:
(Le SmartView n'est pas fidèle et ne permet pas de lancer Androides/Crystann/Mandragore par exemple... sans compter sa lenteur plus qu'énervante...)

Et de plus un émulateur eZ80 libre, ce qui nous évitera d'être à la merci des disponibilités ou du bon vouloir de l'auteur comme pour les émulateurs z80 ! :bj:
(WabbitEmu non mis à jour avec le support TI-82 Advanced bien que toutes les informations techniques ont été communiquées par courriel depuis plusieurs mois sans aucune réponse et donc probablement encore moins près d'émuler les modèles CE, jsTiFied interdisant sans raison dans sa licence l'utilisation de son code Javascript sur un autre site que Cemetech, VirtualTI mort à cause de la fermeture du code face au travail énorme qu'il y avait à faire face aux nouveaux modèles Flash, TI8XEmu non maintenable l'auteur n'ayant jamais partagé le code du cœur de l'émulateur malgré ses promesses et ne répondant plus aux courriels...)

Merci donc pour votre bel altruisme et pour ce superbe outil visant l'intérêt général. :)
En un mot, félicitations ! :#tritop#:


Du chemin reste toutefois encore à parcourir rapidement avant d'être utilisable facilement par tous, et donc avant de s'imposer en tant que référence :
  • avoir un dumper facile d'utilisation pour la ROM (via TiLP ?)
  • être capable de charger des programmes comme avec le SmartView
  • avoir des binaires directement utilisables pour les utilisateurs de Windows
  • avoir une version en ligne

Re: CEmu : Un émulateur TI-83 Premium CE / TI-84 Plus CE !

Unread postPosted: 30 Dec 2015, 10:22
by Adriweb
critor wrote:Du chemin reste toutefois encore à parcourir rapidement avant d'être utilisable facilement par tous, et donc avant de s'imposer en tant que référence :
avoir un dumper facile d'utilisation pour la ROM (via TiLP ?)

Il y a un dumper intégré a l'émulateur, et TILP a par ailleurs été mis a jour avec un dumper aussi.

critor wrote:être capable de charger des programmes comme avec le SmartView

En effet, et ça va devenir la priorité j'imagine rapidement, mais c'est vraiment pas évident :P

critor wrote:avoir des binaires directement utilisables pour les utilisateurs de Windows

Même pour les autres plateformes, en fait, comme le fait Firebird lors d'une release.
Mais le code bouge encore tellement en ce moment, qu'une build sera prévue des que ce sera un poil plus stable :)

critor wrote:avoir une version en ligne

Ouai, et c'est un boulot non négligeable, même si on sait que c'est possible puisque ma build emscripten du coeur a fonctionné :)

Re: CEmu : Un émulateur TI-83 Premium CE / TI-84 Plus CE !

Unread postPosted: 30 Dec 2015, 17:02
by GalacticPirate
Que dire, en un mot, E-xce-llent ! Bravo MateoConLechuga ! :bj: :#tritop#:

Re: CEmu : Un émulateur TI-83 Premium CE / TI-84 Plus CE !

Unread postPosted: 03 Jan 2016, 08:48
by Lionel Debroux
Mateo indique qu'un gros hack pour le transfert de fichiers a récemment été implémenté (NdT: principalement par lui), ce qui permet d'envoyer tous les types de fichiers normaux à l'émulateur - c'est à dire, ni les FlashApps, ni les OS (NdT: qui utilisent un protocole et des couches différentes).
Mateo cherche de l'aide pour implémenter le désassembleur (le travail est déjà préparé), et d'autres morceaux du debugger :)

Un petit screenshot animé de son PacMan:
Image