Awesome
CEmu
CEmu is a third-party TI-84 Plus CE / TI-83 Premium CE calculator emulator, focused on developer features.
CEmu works natively on Windows, macOS, and Linux. For performance and portability, the core is programmed in C and its customizable GUI in C++ with Qt.
<a href="https://i.imgur.com/6lMva88.png"><img src="https://i.imgur.com/6lMva88.png" /></a>
Note: CEmu is not a TI product nor is it TI-endorsed/affiliated. If you need an official TI CE emulator, TI-SmartView™ CE is for you.
Downloads
Official stable releases are available here: https://github.com/CE-Programming/CEmu/releases
Development builds are available on the auto-updating "nightly" pre-release.
Note that Release builds have an update checking feature, which is disabled in development builds.
Features
Standard features
- Built-in ROM dump wizard. CEmu does not rely on downloading an OS from TI's website nor does it have a custom boot/loader: 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" window option
- Screen capture, copy, and drag'n'drop (PNG)
- Screen recording (animated PNG)
- USB emulation for transfers (including for Apps and OSes)
- USB emulation for flash drive images and external devices (via libusb)
- Customizable keybindings with multiple presets
- Keypress recording and history
- Full screen modes (F11 key)
- Emulation states for efficient saving / restoring
- CE skins (colors like the real devices)
- Available in English, French, Spanish, Dutch, and Chinese
Developer features
- Main options available via CLI arguments
- IPC features when launching several CEmu processes
- Choice of ASIC / HW revision emulation (A, pre-I, M+...)
- Import/Export RAM, ROM, images...
- Custom display refresh rate, FPS indicator
- Custom emulation speed/throttling
- Rich text console for easier logging/debugging
- Code stepping, jumping...
- R/W/X breakpoints, watchpoints
- eZ80 disassembler (with equates support)
- Port monitor/editor
- General Timer monitor/editor
- Memory viewer/editor
- CPU state/registers viewer/editor
- LCD state/parameters viewer/editor
- Advanced LCD parameters emulation (gamma, response time, ...)
- Tracking of flash cache misses and average access time
- Memory visualizer (as fully customizable virtual LCDs)
- Stack viewer
- OP1-7 viewer
- FP and OP stacks viewer/editor
- Variable Allocation Table (VAT) viewer
- Variable list with preview and program launcher
- TI-Basic program viewer with syntax-highlight and reformatting
- TI-Basic program debugger with line-by-line stepping
- Recent files list with ability to quickly resend
- Cycle counter for benchmarking/profiling
- Emulation of DMA and SPI (for optimal accuracy)
- Misc. emulation (backlight, battery...)
- "Autotester" (automated unit testing, light scripting)
How to build
You can find information for building CEmu yourself from the source on this wiki page.
If you encounter any problems, feel free to open an issue!
Getting Help
You can join us on the CE Programming
Discord server in the #cemu-emulator
channel: Discord Chat Link.
If you prefer IRC, the chat is also bridged to the EFNet #cemu-dev
channel (you can use a web client like IRCCloud, if you don't want to use a local application).
Depending on how active the channel is you might not get a response.
In that case, post your questions here, and we will get back to you as soon as possible.
Contributing
You're welcome to report any bugs you may encounter, in addition to any feature requests you may have. 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.
We also welcome more translations. Qt Linguist is a great tool for that (here's a tutorial).
License
CEmu is licensed under the GPLv3.
Acknowledgements: Some CEmu parts are, directly, modified, or inspired, from z80e, Firebird, libtifiles, tivars_lib_cpp, KDMacTouchBar, and FatCow's "Farm-Fresh Web Icons".
The complete licensing information is available in the LICENSE file.