Emulator of the HP 48GX, HP 49, and HP 40 (fork of https://www.hpcalc.org/details/4382) https://www.hpcalc.org/details/4382
Find a file
2024-10-08 13:02:42 +02:00
dist [saturn49g] typo 2024-10-07 09:19:10 +02:00
docs [build] clean libChf build, remove win32 from it too; refactor Makefiles 2024-09-19 15:18:53 +02:00
docs-4.1.1.1 shuffle files around to organize things properly 2024-03-21 11:19:55 +01:00
src remove libChf's ChfText 2024-10-08 13:02:42 +02:00
.clang-format copy .clang-format from x48ng and format all the code 2024-03-26 13:36:50 +01:00
.gitignore update gitignore; reorganize code in ui4x/ 2024-10-02 10:16:57 +02:00
COPYING new README.md and GPLv3-or-later 2024-03-21 12:46:02 +01:00
LICENSE new README.md and GPLv3-or-later 2024-03-21 12:46:02 +01:00
Makefile install screenshots 2024-10-07 14:07:34 +02:00
README.md title 2024-10-07 09:23:04 +02:00
saturn48gx.png add screenshots to README 2024-10-06 19:14:44 +02:00
saturn48sx.png add screenshots to README 2024-10-06 19:14:44 +02:00
saturn49g.png update 49g screenshot 2024-10-07 09:58:55 +02:00

Emulator of the HP 49G, HP 48 (GX & SX), and HP 40G

This is a fork of saturn v4.1.1.1 originally by Ivan Cibrario Bertolotti.

Original source are available at https://www.hpcalc.org/details/4382

The GUI has been replaced by a new one (taken from x48ng) in SDL2 and/or ncurses.

Screenshots

screenshot of saturn49g screenshot of saturn48gx screenshot of saturn48sx

Building

Dependencies:

  • SDL2
  • ncursesw
make

Installing

make install DESTDIR=/

Using

The main binary is dist/saturn with helpers/wrappers scripts available per model as:

  • dist/saturn48gx
  • dist/saturn48sx
  • dist/saturn49g
  • dist/saturn40g (not really functional (yet))

The local data are stored under $XDG_CONFIG_HOME/saturn<model>/.

The scripts will take care of creating $XDG_CONFIG_HOME/saturn<model>/, download an appropriate ROM from hpcalc.org and create RAM cards (for 48gx and 48sx models.)

Known bugs

  • some bugs in emulation:
    • 48gx: ON-D A can hang because it tries to write data in ROM space
    • 48gx: VERSION spouts messages in the console (hidden unless --verbose)
    • 49g: spouts messages in the console every second (hidden unless --verbose)
  • ncurses UI: becomes unresponsive (but still quits gracefully on F7)

Todo

  • fix emulation bugs
  • 49g: find a way to enable the bigger screen (131×80)
  • 40g: make emulation work