RPN 50g

HP calculator emulators compared

Emu48, x48, x48ng, x50ng, RPN 48, RPN 49G, RPN 50g: they all run Hewlett-Packard's own firmware, so the calculator you get is the real one. What separates them is the machine they emulate, the platform they run on, and how deep the emulation goes.

At a glance

EmulatorCalculatorsRuns onEngine
Emu48 HP 38G, 39G, 40G, 48SX, 48GX, 49G Windows (and an older Windows Mobile build) Saturn processor emulated in C, native
x48ng HP 48SX, 48GX Linux and the BSDs (X11, SDL, terminal) Saturn processor emulated in C, native; maintained fork of x48
x50ng HP 49g+, 50g Linux (GTK) ARM hardware emulated with QEMU; fork of x49gp
RPN 48 HP 48GX, 48SX iPhone, iPad, Mac, Windows Saturn processor emulated in C, native; clean-room core
RPN 49G HP 49G iPhone, iPad, Mac Saturn processor and the 49G's flash memory emulated in C, native; clean-room core (RPN 48's)
RPN 50g HP 49g+, 50g iPhone, iPad, Mac, Windows ARM920T and S3C2410 hardware emulated in C, native, without QEMU; clean-room core

All of them need an HP ROM image or firmware package, published with HP's permission on hpcalc.org; none of them ships HP software.

Saturn or hardware: what the engine changes

The HP 48SX and 48GX run a Saturn processor, HP's own 4-bit-nibble CPU. Emulating a 48 means interpreting Saturn instructions and modelling the display and keyboard around them — that is what Emu48, x48ng and RPN 48 all do, each with its own implementation. The HP 49G (1999) is still a Saturn machine, with 2 MB of flash memory in banks instead of expansion cards: Emu48 and RPN 49G emulate it.

The HP 49g+ and 50g are a different machine: an ARM system-on-chip (a Samsung S3C2410 around an ARM920T) running HP's firmware, which itself emulates a Saturn in software to keep the RPL world alive. A faithful 50g emulator therefore has to model ARM hardware. x50ng does it by building on QEMU; RPN 50g models the processor and its peripherals directly, in portable C.

That difference is the reason the 50g never appeared on a phone: QEMU relies on generating code at run time, which iOS does not allow. A hardware model written as an interpreter has no such constraint — it runs on an iPhone, an iPad, a Mac and a PC alike.

Coming from Emu48

Emu48 has been the reference on Windows for twenty-five years and is still maintained. It emulates more models than anything else, from the HP 38G to the 49G, and its KML skin format is a small ecosystem in itself. It is a Windows program: there is no Mac, iPhone or iPad build.

If that is where you are coming from, RPN 48 gives you the same two machines on Apple hardware: the same HP 48SX and 48GX ROMs from hpcalc.org, the same keys, the same menus, the same RPL. The skins are built from the classic Emu48 skin bitmaps, so the calculator looks like the one you know. What does not carry over is the KML machinery — RPN 48 has two fixed faces, the 48GX and the 48SX, and switches between them from the menu. For the HP 49G, RPN 49G does the same with HP's ROM 2.10, its flash memory kept from one session to the next.

Coming from x48, x48ng or x50ng

x48ng is the maintained descendant of x48, the X11 emulator that has been on Unix workstations since the early 1990s; it runs under X11, SDL, or even in a terminal. x50ng is its 50g counterpart, a maintained fork of x49gp built on QEMU. Both are Linux software, free and open source, and both are excellent on a desktop.

Away from a Linux desktop, RPN 48 and RPN 50g cover the same two machines on iPhone, iPad, Mac and Windows. They share no code with those projects: both cores were written from HP's documentation under the MIT licence. They were, however, checked against them — millions of instructions run side by side, comparing every register after every instruction, until the two agreed. Free software makes an excellent reference oracle.

HP 48, HP 49G or HP 50g: which do you want?

The HP 48GX (1993) and 48SX (1990) are the machines a generation of engineers learned on: RPN, RPL programming, units with dimensional analysis, symbolic algebra, a 131×64 display. Choose them for the feel of the original, for old programs, or to follow a course written for the 48. That is RPN 48.

The HP 49G (1999) brought the computer algebra system, the Equation Writer and algebraic entry to the Saturn machines, with a larger display and flash memory. Choose it for the CAS on the classic hardware, or for the calculator you had at school. That is RPN 49G.

The HP 50g (2006) and its 49g+ sibling are the last of the line and the most capable: a full computer algebra system, 2D and 3D plots, the equation library, an SD card slot, a much faster processor. Choose them to actually compute. That is RPN 50g.

The three apps keep each machine's memory separately, download their firmware from hpcalc.org on request, and read HP's manuals beside the calculator — see the manuals.

Frequently asked

Is there a version of Emu48 for Mac, iPhone or iPad?

No. Emu48 is a Windows program, with an older Windows Mobile build. On macOS, iPhone and iPad, RPN 48 emulates the same HP 48SX and HP 48GX and RPN 49G the same HP 49G, with the same HP ROMs.

Can I run x48 or x48ng outside Linux?

They are Unix programs with X11, SDL and terminal front-ends, built for Linux and the BSDs. On macOS, iPhone, iPad and Windows, RPN 48 emulates the same calculators.

Can I use the same ROM image?

Yes — they are HP's own images, the same files every emulator uses. RPN 48 and RPN 50g download the one you choose from hpcalc.org on first launch, after you confirm.

Do my HP 48 and HP 50g programs still run?

Yes. The emulated machine runs HP's original firmware, so User RPL and System RPL programs, libraries and directories behave as on the physical calculator.

Is there an Android version?

Not yet. RPN 48 and RPN 50g run on iPhone, iPad, Mac and Windows, RPN 49G on iPhone, iPad and Mac.