Author Topic: CEmu - A CE Emulator  (Read 9982 times)

0 Members and 1 Guest are viewing this topic.

Offline MateoConLechuga

  • LV1 Newcomer (Next: 20)
  • *
  • Posts: 5
  • Rating: +1/-0
    • View Profile
CEmu - A CE Emulator
« on: December 30, 2015, 12:04:18 pm »

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 all of TI’s CE OS's, browse around, execute self test successfully, and run programs.
  • Portable GUI written in C++ using Qt (making it run on Windows, Mac OS X, Linux, Android, and iOS!)
  • 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)
  • Simple 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 on Mac OS X looks like:

Of course, using the docking system, all windows are completely resizeable, movable, and translatable.

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 : Soon ! There is no binaries to download yet, you'll have to be a little more patient ;)
Source code on GitHub : https://github.com/MateoConLechuga/CEmu

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

Merry (belated) Christmas! :)

Offline TIfanx1999

  • ಠ_ಠ ( ͡° ͜ʖ ͡°)
  • CoT Emeritus
  • LV13 Extreme Addict (Next: 9001)
  • *
  • Posts: 6173
  • Rating: +191/-9
    • View Profile
Re: CEmu - A CE Emulator
« Reply #1 on: December 30, 2015, 02:32:26 pm »
That's fantastic! Great work @MateoConLechuga @jacobly and everyone else!

Offline Eeems

  • Mr. Dictator
  • Administrator
  • LV13 Extreme Addict (Next: 9001)
  • *************
  • Posts: 6266
  • Rating: +318/-36
  • little oof
    • View Profile
    • Eeems
Re: CEmu - A CE Emulator
« Reply #2 on: December 30, 2015, 03:47:49 pm »
If anybody wants to test on windows but doesn't want to try to get it to build let me know. I've been able to get it to build.
/e

Offline MateoConLechuga

  • LV1 Newcomer (Next: 20)
  • *
  • Posts: 5
  • Rating: +1/-0
    • View Profile
Re: CEmu - A CE Emulator
« Reply #3 on: January 03, 2016, 10:10:28 pm »
Update: Some hacky file transfer has been implemented recently, so you can now send all file types except for TI apps and OS. Here's a gif of PacMan. I would really appreciate any help at all on making the disassembler (which is already prepared), and other parts and pieces of the debugger. Thanks to anyone who can lend a hand, and enjoy! :) Breakpoints on read/write/exec are also complete.


Offline TIfanx1999

  • ಠ_ಠ ( ͡° ͜ʖ ͡°)
  • CoT Emeritus
  • LV13 Extreme Addict (Next: 9001)
  • *
  • Posts: 6173
  • Rating: +191/-9
    • View Profile
Re: CEmu - A CE Emulator
« Reply #4 on: January 03, 2016, 10:34:24 pm »
That's fantastic! Great work!

Offline pimathbrainiac

  • Occasionally I make projects
  • Members
  • LV10 31337 u53r (Next: 2000)
  • **********
  • Posts: 1731
  • Rating: +136/-23
  • dagaem
    • View Profile
Re: CEmu - A CE Emulator
« Reply #5 on: January 04, 2016, 01:56:15 pm »
I got some win32 nightly builds up and running on my server: http://pimathbrainiac.me/CEmu/
I am Bach.

Offline jacobly

  • LV5 Advanced (Next: 300)
  • *****
  • Posts: 205
  • Rating: +161/-1
    • View Profile
Re: CEmu - A CE Emulator
« Reply #6 on: September 28, 2016, 03:15:38 pm »
Now that pimath's server is down, I created a buildbot for my server so there are now windows CEmu builds for 32-bit and 64-bit which are updated every time someone commits.