HXEmu - Epson HX-20 Emulator


HXEmu is a free, open-source Epson HX-20 emulator written in C++ for Windows, Linux, BSD and Mac OS X. Although it's not fully functional, you can still grab the source code or a binary release to try it out.

The HX-20 needs to be initialized upon startup, the easiest way to do this is to hold down CTRL on your real keyboard and click the "É" button on the virtual keyboard. It'll prompt for a date and time (it doesn't matter what you specify) and then press ENTER. You should then be able to run BASIC.

Currently the RAM is not saved to disk, so any changes will be lost on exit.


Lots of updates [2022-11-21]

HXEmu has seen a lot of updates recently after a few years of hibernation, most notably an updated user interface that's been upgraded to SDL2, and the addition of (mostly empty) configuration screens for various features.

There's also been a fair bit of under-the-hood improvements, restructuring a large amount of code, adding support for multiple frontends (currently SDL2 and CLI), improving the SDL2 frontend widget interface and more.

New alpha release v0.1.10 [2022-11-05]

Binary releases are available for Linux x86_64 (Flatpak) and Windows 64-bit (ZIP/portable).

Downloads »

BASIC is functional [2019-08-18]

After some bug fixes in the I/O controller, BASIC can now be launched (after performing a device initialization of course)!

UI widgets, C++11 required [2015-01-16]

A basic UI widget system has been added to allow for controls (reset, power off, debugger, chip configuration, ...). With this addition, HXEmu now requires the compiler to support the C++11 standard as it uses std::function and std::bind for setting up callbacks. The compilation script has been updated to check if C++11 is supported.

Keyboard is now working, somewhat

Finally managed to get the keyboard input working, although it's a bit buggy at the moment. Also, trying to start BASIC causes it to overwrite large parts of the memory space with garbage and then trap on an illegal instruction.