CE-Programming/CEmu

C++ce-programming.github.io/CEmu/
macOSWindowsLinux

alternative to TI-SmartView

Third-party TI-84 Plus CE / TI-83 Premium CE emulator, focused on developer features

calculatorti-84-plus-ceti-83-premium-ceemulatorez80emulation
Star Growth
Stars
1.3k
Forks
90
Weekly Growth
+2
Issues
15
5001k
Dec 2015Jul 2019Feb 2023Sep 2026
README

CEmu Build Windows Build macOS Build Linux Build Status Discord Chat Link

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.

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)
  • Lua scripting with a script manager, autoload and CLI support, events, conditional breakpoints, zdis bindings, and deterministic-input/TAS helpers

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".
Lua scripting uses Sol2. The complete licensing information is available in the LICENSE file.

Related repositories
google-ai-edge/mediapipe

Cross-platform, customizable ML solutions for live and streaming media.

C++libraryApache License 2.0mediapipec-plus-plus
ai.google.dev/edge/mediapipe
36.9k6.2k
nikolaeu/numi

Beautiful calculator app for macOS, Linux & Windows

JavaScriptnpmcliMIT Licensecalculatornumi
numi.app
6.5k255
google/mtail

extract internal monitoring data from application logs for collection in a timeseries database

GoGo ModulesApache License 2.0monitoringlogs
4k392
sharkdp/insect

High precision scientific calculator with support for physical units

PureScriptcliMIT Licensecalculatorweb-app
numbat.dev
3.2k126
sharkdp/numbat

A statically typed programming language for scientific computations with first class support for physical dimensions and units

Rustcrates.ioApache License 2.0calculatorphysics
numbat.dev
2.7k115
miroiu/nodify

Highly performant and modular controls for node-based editors designed for data-binding and MVVM.

C#MIT Licensewpfnode-editor
miroiu.github.io/nodify
2k345
codeplea/tinyexpr

tiny recursive descent expression parser, compiler, and evaluation engine for math expressions

Clibraryzlib Licenseccalculator
codeplea.com/tinyexpr
1.9k310
PaddiM8/kalker

Scientific calculator with math syntax that supports user-defined variables and functions, complex numbers, and estimation of derivatives and integrals

Rustcrates.iocliMIT Licensecalculatorrust-crate
kalker.xyz
1.9k84
mikebryant/ac-nh-turnip-prices

Price calculator/predictor for Turnip prices

JavaScriptnpmappApache License 2.0turnip-pricespredictor
turnipprophet.io
1.6k246
clementwzk/OpenCalc

A simple and beautiful calculator for Android downloaded more than 300k times

KotlinappGNU General Public License v3.0androidapk
1.5k186
KnightOS/KnightOS

OS for z80 calculators

AssemblyOtherknightoscalculator
1.3k181
andrewagain/calculator

Simple calculator built with React

JavaScriptnpmMIT Licensereactcalculator
ahfarmer.github.io/calculator/
1.3k2.2k