* WalrusIRC

You need to have 5 posts and not be part of restricted usergroups in order to use the WalrusIRC embedded shoutbox. However, you can also access our IRC channel called #CodeWalrus via EFnet.

Author Topic: CEmu  (Read 28710 times)

0 Members and 1 Guest are viewing this topic.

Offline MateoConLechuga

  • Full User
  • Join Date: Jan 2015
  • Location:
  • Posts: 231
  • Post Rating Ratio: +21/-1
CEmu
« on: December 30, 2015, 08:39:56 am »
Hello everyone. :) Early last month I started work on a CE calculator emulator, and it has now progressed to a nice development stage. Jacobly, Adriweb, and Lionel were very helpful along the way, and fixed a lot of the bugs I always seemed to make, and of course did an amazing job at implementing a lot of the more wild things. But now it is in working stages; support for ROM dumping from a real calculator is supported, it can boot and operate exactly like a normal TI-OS, except for file transfers, which requires emulating USB, which will take some time. There is no release yet; only a source release (which you can build yourself and play with if you so desire), and if you have sufficient knowledge in anything you feel could help out, feel free to send a pull request my way or ask nicely and I can add you as a collaborator. :) Rather than talk some more about it; Adriweb came up with a nice article that will explain a lot, I hope. Still a lot to do, but yay.

So, give it a test drive, and report any bugs/features/comments that you have or would like implemented, and they will be added to the todo list. Enjoy. :)

It has its own ROM dumping method, much like the rom8x of days past, but now a nice GUI to tell you everything. And a progress bar. Those are cool. Of course, Lionel and jacobly added ROM dumping support to TILP here.

Source code on GitHub : https://github.com/MateoConLechuga/CEmu

Code: [Select]
Cross news post:
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 Snektron

  • Lvl 69 Russian Snake
  • CodeWalrus Staff
  • Super User
  • Topic Management
  • Join Date: Dec 2014
  • Location: Netherlands
  • Posts: 3165
  • Post Rating Ratio: +32/-0
  • SSSssssss.....
    • RobinDeWalvis
    • Kzyrox
    • RobinDeWalvis
    • quantuminfinity
  • Gender: Male
Re: CEmu
« Reply #1 on: December 30, 2015, 09:03:49 am »
whoa, thats really awesome :D Nice job you did there :)
  • Calculators owned: TI-84+
Legends say if you spam more than DJ Omnimaga, you will become a walrus...


Offline Adriweb

  • Full User
  • Join Date: Jan 2015
  • Location: France & Canada
  • Posts: 423
  • Post Rating Ratio: +7/-1
    • Adriweb
    • @Adriweb
    • Adriweb
    • @UC-UIrbk5SuaUCvnV6SQvt-Q
    • /u/Adriweb
    • Adriweb
    • TI-Planet.org
  • Gender: Male
Re: CEmu
« Reply #2 on: December 30, 2015, 09:30:50 am »
Even though I was a little bit involved in the dev too, congratulations, especially to Mateo and Jacobly :D
  • Calculators owned: TI-Nspire CX CAS, TI-Nspire CX, TI-Nspire CAS (x3), TI-Nspire (x2), TI-Nspire CM-C CAS, TI-Nspire CAS+, TI-80, TI-82 Stats.fr, TI-82 Plus, TI-83 Plus, TI-83 Plus.fr USB, TI-84+, TI-84+ Pocket SE, TI-84+ C Silver Edition, TI-84 Plus CE, TI-89 Titanium, TI-86, TI-Voyage 200, TI-Collège Plus, TI-Collège Plus Solaire, 3 HP, some Casios
Co-founder & co-administrator of TI-Planet and Inspired-Lua

Offline Streetwalrus

  • Professional slacker
  • Super User
  • Original 5
  • Join Date: Nov 2014
  • Location: Israel
  • Posts: 2903
  • Post Rating Ratio: +20/-0
  • ƎW∀⅁ ƎH⊥
  • Gender: Male
Re: CEmu
« Reply #3 on: December 30, 2015, 09:37:02 am »
Good job on this one guys. :D
Now @DJ Omnimaga can't complain anymore : P

By the way regarding licensing, the MIT license requires you to include the full copyright line like so for z80e code: "Copyright (c) 2014 The KnightOS Group", not sure how the GPL works for Firebird/libti* code but I think "many thanks" is not enough from a legal point of view.
I don't want you guys to get in trouble (even though I don't think the original authors would bother taking legal action against you for this).
« Last Edit: December 30, 2015, 09:51:20 am by Streetwalrus »
  • Calculators owned: TI-80, HP 40G, TI-84 Plus rev G (yay 128k RAM), TI-83 Plus Silver Edition (broken LCD), TI-82 Stats.fr (black), TI-Nspire CX rev C (yay Nlaunchy), TI-83+ SE ViewScreen



Offline Adriweb

  • Full User
  • Join Date: Jan 2015
  • Location: France & Canada
  • Posts: 423
  • Post Rating Ratio: +7/-1
    • Adriweb
    • @Adriweb
    • Adriweb
    • @UC-UIrbk5SuaUCvnV6SQvt-Q
    • /u/Adriweb
    • Adriweb
    • TI-Planet.org
  • Gender: Male
Re: CEmu
« Reply #4 on: December 30, 2015, 10:15:34 am »
By the way regarding licensing, the MIT license requires you to include the full copyright line like so for z80e code: "Copyright (c) 2014 The KnightOS Group", not sure how the GPL works for Firebird/libti* code but I think "many thanks" is not enough from a legal point of view.
I don't want you guys to get in trouble (even though I don't think the original authors would bother taking legal action against you for this).
Yep, apparently we forgot to do the proper required acks. Should be fixed in a few minutes :)

Edit: well, IANAL but with this commit, it's probably better. it's open to PRs anyway, so anyone who can do better, well, just propose the change :)
« Last Edit: December 30, 2015, 10:34:07 am by Adriweb »
  • Calculators owned: TI-Nspire CX CAS, TI-Nspire CX, TI-Nspire CAS (x3), TI-Nspire (x2), TI-Nspire CM-C CAS, TI-Nspire CAS+, TI-80, TI-82 Stats.fr, TI-82 Plus, TI-83 Plus, TI-83 Plus.fr USB, TI-84+, TI-84+ Pocket SE, TI-84+ C Silver Edition, TI-84 Plus CE, TI-89 Titanium, TI-86, TI-Voyage 200, TI-Collège Plus, TI-Collège Plus Solaire, 3 HP, some Casios
Co-founder & co-administrator of TI-Planet and Inspired-Lua

Offline Streetwalrus

  • Professional slacker
  • Super User
  • Original 5
  • Join Date: Nov 2014
  • Location: Israel
  • Posts: 2903
  • Post Rating Ratio: +20/-0
  • ƎW∀⅁ ƎH⊥
  • Gender: Male
Re: CEmu
« Reply #5 on: December 30, 2015, 10:48:49 am »
Cool. I'm not a lawyer either but this should clarify things. I know that re-licensing MIT code to GPL is ok since the former is a permissive license though.
  • Calculators owned: TI-80, HP 40G, TI-84 Plus rev G (yay 128k RAM), TI-83 Plus Silver Edition (broken LCD), TI-82 Stats.fr (black), TI-Nspire CX rev C (yay Nlaunchy), TI-83+ SE ViewScreen



Offline SirCmpwn

  • Full User
  • Join Date: Mar 2015
  • Location:
  • Posts: 81
  • Post Rating Ratio: +1/-0
Re: CEmu
« Reply #6 on: December 30, 2015, 01:34:39 pm »
Nice work! I looked through the code, though, and the licensing issues are still not quite right. In the readme, it says that the code is "inspired" by z80e, which seems to be untrue - this looks like you started with a copy of the z80e code and modified it, so you need to avoid implying that it's an original creation that was "inspired" by the z80e code. You should copy and paste all of the licenses into your LICENSE file and include a summary of what code came from which project. Check this out for an example:

https://github.com/KnightOS/libc/blob/master/LICENSE

Also, if you're interested in contributing your improvements to CE support in z80e upstream, then it'd be nice if you called out what portions of the code are GPL'd and what portions are MIT licensed, so that we know what we can integrate upstream.

Offline Adriweb

  • Full User
  • Join Date: Jan 2015
  • Location: France & Canada
  • Posts: 423
  • Post Rating Ratio: +7/-1
    • Adriweb
    • @Adriweb
    • Adriweb
    • @UC-UIrbk5SuaUCvnV6SQvt-Q
    • /u/Adriweb
    • Adriweb
    • TI-Planet.org
  • Gender: Male
Re: CEmu
« Reply #7 on: December 30, 2015, 02:39:02 pm »
Well I haven't myself contributed to the core, so I wouldn't know all the details (nor how compatible it would be for merging some things upstream), but yes, some parts are directly taken from z80e and Firebird.
If it's just a phrasing issue and a matter of copying the proper license text, though, this can be fixed quickly.

Edit : proper license copies in appropriate files now done, by mateo in this commit.
« Last Edit: December 30, 2015, 05:58:19 pm by Adriweb »
  • Calculators owned: TI-Nspire CX CAS, TI-Nspire CX, TI-Nspire CAS (x3), TI-Nspire (x2), TI-Nspire CM-C CAS, TI-Nspire CAS+, TI-80, TI-82 Stats.fr, TI-82 Plus, TI-83 Plus, TI-83 Plus.fr USB, TI-84+, TI-84+ Pocket SE, TI-84+ C Silver Edition, TI-84 Plus CE, TI-89 Titanium, TI-86, TI-Voyage 200, TI-Collège Plus, TI-Collège Plus Solaire, 3 HP, some Casios
Co-founder & co-administrator of TI-Planet and Inspired-Lua

Offline Lionel Debroux

  • Full User
  • Join Date: Jan 2015
  • Location:
  • Posts: 224
  • Post Rating Ratio: +11/-0
    • debrouxl
    • 58/5891
Re: CEmu
« Reply #8 on: December 30, 2015, 05:56:19 pm »
The project uses GPLv3 code; everything is built by the same Makefile and linked together statically.
Member of the TI-Chess Team.
Co-maintainer of GCC4TI (GCC4TI online documentation), TIEmu and TILP.
Co-admin of TI-Planet.

Online xlibman

  • Omni founder & CW co-founder
  • Super User
  • Original 5
  • CodeWalrus Supporter
  • *
  • Join Date: Nov 2014
  • Location: Quebec, Canada
  • Posts: 18789
  • Post Rating Ratio: +97/-4
    • dj_omnimaga
    • DJOmnimaga.music
    • @DJOmnimaga
    • dj_omnimaga
    • @DJOmnimaga
    • /u/DJ_Omnimaga
    • DJOmnimaga
    • 112/11286
    • @djomnimaga
    • @DJOmnimaga
    • DJ Omnimaga music store
  • Gender: Male
Re: CEmu
« Reply #9 on: December 30, 2015, 10:35:33 pm »
Awesome news Mateo and great job to everyone who participated to the development of this emulator. Not to mention that it's open-source, so people will still be able to maintain it even when the original authors are inactive. :)

Thanks for the cross-post as well. Hopefully when this emulator will have full file transfer support (unless it does already?) it will kickstart CE development (a lot of people were not interested because there was no emulator available) :)
  • Calculators owned: TI-57, 73, TI-80 (broken), TI-81, TI-82, TI-83, TI-83+ (broken), TI-83+ (broken), TI-83+SE (broken), TI-84+, TI-84+CSE, TI-84+CE, TI-85, TI-86, TI-89T, TI-92, TI-Nspire, TI-Nspire CX (semi-broken), HP 39gII, HP Prime, Casio fx-7000G, fx-7400G+, fx-7700GE, fx-9750G+, fx-9750GII, fx-9860G, cfx-9850G, FX-1.0+, fx-CG10, fx-CP400
  • Consoles, mobile devices and vintage computers owned: Samsung i5510, Nexus 5, Atari 2600, Lynx, SMS, Game Gear, Genesis, Dreamcast, NES, SNES, N64, GCN, Wii, Wii U, GBA, DS, 3DS, PS2, PS3, PS4, PSP, PSVita, XBox 360, XBOne

Bandcamp|Reverbnation|Facebook|Youtube|Twitter
Retired Omnimaga admin (2001-11) and editor (2012-14)

Offline Juju

  • aka Yuki Kagayaki aka J̵̭͕͇ù̞̭̝̯̦j̴̭̙̗͖͡ù͏͓̲̕
  • CodeWalrus Staff
  • Super User
  • Server Maintenance
  • Moderator
  • Forum Maintenance
  • Original 5
  • CodeWalrus Supporter
  • *
  • Join Date: Nov 2014
  • Location: Inside a walrus
  • Posts: 3098
  • Post Rating Ratio: +30/-2
  • Couch potato
    • jul.savard
    • juju2143
    • @juju2143
    • juju2143
    • @julosoft
    • juju-kun
    • /u/juju2143
    • juju2143
    • @juju2143
    • Juju's shed
  • Gender: Female
  • WalriiPoints: 99999
Re: CEmu
« Reply #10 on: December 31, 2015, 07:42:46 am »
Looks interesting. Fun fact, if you have Arch Linux, you should be able to get cemu-git from the AUR.
  • Calculators owned: TI-83+ (dead?), Casio Prizm (also dead???)
  • Consoles, mobile devices and vintage computers owned: A lot
On semi-hiatus until who knows when. CODEWALRUS 2.0 COMING SOON
YUKI-CHAAAANNNN
In the beginning there was walrii. In the end there will be walrii. All hail our supreme leader :walrii: --Snektron

if you wanna throw money at me and/or CodeWalrus monthly it's here

Online xlibman

  • Omni founder & CW co-founder
  • Super User
  • Original 5
  • CodeWalrus Supporter
  • *
  • Join Date: Nov 2014
  • Location: Quebec, Canada
  • Posts: 18789
  • Post Rating Ratio: +97/-4
    • dj_omnimaga
    • DJOmnimaga.music
    • @DJOmnimaga
    • dj_omnimaga
    • @DJOmnimaga
    • /u/DJ_Omnimaga
    • DJOmnimaga
    • 112/11286
    • @djomnimaga
    • @DJOmnimaga
    • DJ Omnimaga music store
  • Gender: Male
Re: CEmu
« Reply #11 on: December 31, 2015, 08:45:37 am »
That reminds me, while there are no binaries available yet, can compiling the source allow us to run the emulator on Windows immediately?
  • Calculators owned: TI-57, 73, TI-80 (broken), TI-81, TI-82, TI-83, TI-83+ (broken), TI-83+ (broken), TI-83+SE (broken), TI-84+, TI-84+CSE, TI-84+CE, TI-85, TI-86, TI-89T, TI-92, TI-Nspire, TI-Nspire CX (semi-broken), HP 39gII, HP Prime, Casio fx-7000G, fx-7400G+, fx-7700GE, fx-9750G+, fx-9750GII, fx-9860G, cfx-9850G, FX-1.0+, fx-CG10, fx-CP400
  • Consoles, mobile devices and vintage computers owned: Samsung i5510, Nexus 5, Atari 2600, Lynx, SMS, Game Gear, Genesis, Dreamcast, NES, SNES, N64, GCN, Wii, Wii U, GBA, DS, 3DS, PS2, PS3, PS4, PSP, PSVita, XBox 360, XBOne

Bandcamp|Reverbnation|Facebook|Youtube|Twitter
Retired Omnimaga admin (2001-11) and editor (2012-14)

Offline Snektron

  • Lvl 69 Russian Snake
  • CodeWalrus Staff
  • Super User
  • Topic Management
  • Join Date: Dec 2014
  • Location: Netherlands
  • Posts: 3165
  • Post Rating Ratio: +32/-0
  • SSSssssss.....
    • RobinDeWalvis
    • Kzyrox
    • RobinDeWalvis
    • quantuminfinity
  • Gender: Male
Re: CEmu
« Reply #12 on: December 31, 2015, 09:10:07 am »
i had a quick try at it but it couldn't find my compilers, though it vould find the debuggers.
  • Calculators owned: TI-84+
Legends say if you spam more than DJ Omnimaga, you will become a walrus...


Offline Lionel Debroux

  • Full User
  • Join Date: Jan 2015
  • Location:
  • Posts: 224
  • Post Rating Ratio: +11/-0
    • debrouxl
    • 58/5891
Re: CEmu
« Reply #13 on: December 31, 2015, 09:19:01 am »
Quote
can compiling the source allow us to run the emulator on Windows immediately?
Yup, the MinGW-based Qt SDK works. Support for older, broken versions of MSVC is in progress.
Member of the TI-Chess Team.
Co-maintainer of GCC4TI (GCC4TI online documentation), TIEmu and TILP.
Co-admin of TI-Planet.

Online xlibman

  • Omni founder & CW co-founder
  • Super User
  • Original 5
  • CodeWalrus Supporter
  • *
  • Join Date: Nov 2014
  • Location: Quebec, Canada
  • Posts: 18789
  • Post Rating Ratio: +97/-4
    • dj_omnimaga
    • DJOmnimaga.music
    • @DJOmnimaga
    • dj_omnimaga
    • @DJOmnimaga
    • /u/DJ_Omnimaga
    • DJOmnimaga
    • 112/11286
    • @djomnimaga
    • @DJOmnimaga
    • DJ Omnimaga music store
  • Gender: Male
Re: CEmu
« Reply #14 on: December 31, 2015, 09:26:06 am »
Ah that's good then. :) I don't need it immediately but if I start coding again soon then it could be handy :) (if I manage to compile it, that is :P)
  • Calculators owned: TI-57, 73, TI-80 (broken), TI-81, TI-82, TI-83, TI-83+ (broken), TI-83+ (broken), TI-83+SE (broken), TI-84+, TI-84+CSE, TI-84+CE, TI-85, TI-86, TI-89T, TI-92, TI-Nspire, TI-Nspire CX (semi-broken), HP 39gII, HP Prime, Casio fx-7000G, fx-7400G+, fx-7700GE, fx-9750G+, fx-9750GII, fx-9860G, cfx-9850G, FX-1.0+, fx-CG10, fx-CP400
  • Consoles, mobile devices and vintage computers owned: Samsung i5510, Nexus 5, Atari 2600, Lynx, SMS, Game Gear, Genesis, Dreamcast, NES, SNES, N64, GCN, Wii, Wii U, GBA, DS, 3DS, PS2, PS3, PS4, PSP, PSVita, XBox 360, XBOne

Bandcamp|Reverbnation|Facebook|Youtube|Twitter
Retired Omnimaga admin (2001-11) and editor (2012-14)

 


You can also use the following HTML or bulletin board code to share it on your page or forum signature!


Also do not forget to check our affiliates below.
Planet Casio TI-Planet Calc.news BroniesQC BosaikNet Velocity Games