CEmu is a third-party TI-84 Plus CE / TI-83 Premium CE calculator emulator, especially focused on developer features.
It has a very customizable user interface to fit the needs of different use cases.
Here are three setup examples of CEmu running on Mac OS X:
Minimalistic | Bigger keypad and screen | With many debugging features |
---|---|---|
With a core made in C and GUI in C++ with Qt, it works natively on many platforms.
In fact, the core has even been succesfully tested (proof-of-concepts) on web-browsers (JavaScript via Emscripten), the TI-Nspire CX (Ndless SDK), and the Apple Watch.
- Built-in ROM dumper wizard. CEmu does not rely on downloading an OS from TI's website nor does it have a custom boot/loader, so a ROM from your own calculator is required. CEmu makes it very easy to get it.
- Accurate and fast emulation (you can also customize the speed and even toggle throttling)
- Resizable calculator screen
- "Always-on-top" option
- Screen capture (PNG, GIF)
- Screen recording (animated GIF)
- File sending/receiving (partial, WIP)
- Custom display refresh rate
- Custom emulation speed/throttling
- Code stepping, jumping...
- R/W/X breakpoints
- eZ80 disassembler
- Port monitor/editor
- Memory viewer/editor
- CPU state/registers viewer/editor
- LCD state/config. viewer/editor
- Stack viewer
- OP1-6 viewer
- VAT viewer
- Misc. emulation (backlight, battery...)
No stable binaries yet as the code keeps changing these days! When available, they'll be here, though: https://github.com/MateoConLechuga/CEmu/releases
Nightly win32 binaries available here (hosted by pimathbrainiac): http://pimathbrainiac.me/CEmu/
Note that Release builds have an update checking feature, which is disabled in development builds.
After downloading the source (you can clone the repo or just get the zip):
- Get the latest Qt5 SDK for your OS.
- On Windows, if you are building with Visual Studio, you must use
Visual Studio 2015 or newer. You also must download a Qt build that
is compatible with Visual Studio 2015 or newer.
- If you don't have Visual Studio 2015 installed, we recommend installing Visual Studio 2015 Community.
- Qt v5.6 is the only version of Qt (at the moment) that supports
VS2015.
- You can download the beta version of Qt v5.6 here.
- Direct download links for Qt v5.6 (VS2015): MSVC 2015 x86 and MSVC 2015 x64
- Note that the latest Qt v5.6 beta has a bug where the version of MSVC is incorrect. (It is displayed as 2013 or older.) This is simply a display bug. To ensure that you are using MSVC 2015, check the actual compiler version and ensure that it is 14.0 or newer.
- Now you have two options:
- Open the .pro file with Qt Creator, set it up (default project settings should be fine), and hit Build
- In a shell, cd to the project folder and type
qmake -r CEmu.pro; make
Note: Debugging support is somewhat core-related but is only built conditionally (since embedded targets probably won't need it). To enable it, define DEBUG_SUPPORT
. The Qt GUI does this in the .pro file.
You're welcome to report any bugs you may encounter, and if you want to help, tell us, or send patches / pull requests! If you'd like to contribute code, please consider using Artistic Style with the settings specified in the .astylerc
file to format your code. Qt Creator can format code with Artistic Style with minimal setup.
- Implement unknown port range (0xDXXX)
- Implement USB (0xDXXX appears to be a part of this as well)
- Add more flash handlers
- More robust and complete variable transfer (Calc <-> Computer). Related to USB emulation.
- Integrate some TypeHandlers functions from tivars_lib_cpp to read variables' content.
- .lst parsing
- Functions profiling (call count, time spent...)
- Interfacing with bootcode functions such as
printf
(to print to the console)
- Implement 83PCE/84+CE differences (2 keypad setups, "skins", etc.)
- 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
- 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 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.
- More translations (for now, it's available in English, French, and Spanish). Qt Linguist is a great tool for that (here's a tutorial). We welcome Pull Requests :)
- ASM instructions inline/hover help?
- ...
CEmu is licensed under the GPLv3.
Acknowledgements: Some CEmu parts are, directly, modified, or inspired, from z80e, Firebird, and QHexEdit2. The complete licensing information is available in the LICENSE file.