NEC PC-8800 8-bit emulator xm8 for Fedora Linux

It is now November 10th, 2018. Back in early July 2018, I tried to get NEC PC-8800 emulation working on Fedora Linux. For some reason, the project was not a success. Maybe I found only an emulator that was not available as source code, or perhaps I had problems finding the system ROMs. I just cannot remember, but I do have a vague recollection that I got something running even though it did not work too well.

Note that despite the name "PC-8800", these machines are not really traditional IBM PC clones at all. According to my understanding, PC-8800 series were advanced 8-bit machines based on Zilog Z80 CPUs. Compared to other 8-bit computers of the 1980s, NEC PC-8800 had better graphics and they sold well in Japan. However, in other parts of the world such as USA, Australia and Europe, PC-8800 is not that well-known.

In any case, yesterday I asked for help from a Finnish IT professional who is also active in the retrocomputing circles. I wondered whether he knew any emulators that would work on Linux. Sure enough he quickly pointed me to a Japanese site so that I could try xm8 emulator.

After some struggling, I got xm8 to compile on Fedora Linux 28. This code is C++ and on Fedora, the newest g++ using -Wall compiler option will not accept the code. It contains numerous small errors, one of which I had the patience to fix correctly - or at any rate, I believe my fix is okay - it is just a conversion from uint8 to int8 so that integer value -1 does not cause undefined behaviour or halt the compilation.

The rest of the compilation errors I "fixed" just by adding -Wno-sign-compare -Wno-write-strings -Wno-narrowing to the Makefile. Of course I know that this is not the right way to do it, but see /opt/xm8/doc/README-Fedora.txt for the rest of the details and rationale.

Basically, I must confess that I was just too lazy and busy with other things to be bothered. Please accept my apologies for that. The good thing is that we are talking about only a PC-8800 emulator here, not some critical server code that could put people's lives in danger when not working properly.

The binary executable /opt/xm8/bin/xm8 seems to work, but all I can say is that I got Archon working and my Logitech Rumblepad USB-controller was automatically recognized. I tried some other game first (filename Zoom in Space (1983)(Riverhill).d88 having SHA1 hash 29f47eac21558c3e955b95ed19681c5deda74189), and it kind of worked, but not totally - the fault could have been in the disk image, not in xm8. Or maybe I did know how to load it properly? I do not know anything about these machines!

The second game I tried was Archon. With it, the graphics looked all right, the sound was fine, my USB-controller worked out of the box, so I guess this xm8 is in a pretty good shape. I could actually start the game by pressing button and I successfully moved one of those characters on the board. This means that xm8 cannot be totally broken on Fedora even though I told g++ to ignore several errors during the C++ compilation phase.

Obtaining the PC-8800 system ROMs was a very painful, annoying and time-consuming task. Luckily I got help from a friendly dude who wants remain totally anonymous to avoid persecution - but I shall refer to him using a fake name Andy Page from now on. I just got his permission to invent a suitable alias for him, so many thanks to Andy for his valuable help.

I must honestly tell you that after having spent several hours searching for those damned system ROMs in vain, I was almost going crazy. Wasting one's time like that is no fun at all and it prevents you from advancing other, more important tasks.

In order to make these things a bit easier for other retrocomputing fans out there, the NEC PC-8800 system ROMs are available from here along with the xm8 emulator. So there is no need for you to go to those horrible, ad-filled, stupid sites that are trying make money by luring gamers there! Those bastards have banners and ads there, they want to make money by fooling people and that is simply disgusting.

To be clear, I make no money from running my site at all. On the contrary, I pay for others for hosting and having a dedicated virtual machine. I have no problem with that and having ads and pop-ups is out of the question. It is never to going to happen, you can be sure about that.

Here are the RPMs for Fedora Linux. Make sure to get xm8-system-roms RPM too, it is essential for the xm8 emulator to work.

I installed the RPM packages using sudo rpm -Uvh <package> command directly, because I knew I already had all the library dependencies satisfied. But to pull in SDL2 development headers and the SDL2 shared library itself, you should probably do:

sudo dnf -y install xm8-1.70-kk1.x86_64.rpm
sudo dnf -y install xm8-system-roms-1.0.0-1.noarch.rpm

For testing purposes and amusement you need a game, so here is one classic for you:

After downloading, uncompress archon.d88.gz with:

gunzip archon.d88.gz

Note that a command such as /opt/xm8/bin/xm8 /path/to/archon.d88 does not work with xm8. It will not automatically load and run disk images. So launch the emulator from the shell without arguments, using a terminal, and put it into background like this:

/opt/xm8/bin/xm8 &

After that, you can make xm8 screen bigger from the Video Options GUI menu:

xm8 01

Then choose Drive 1 and Open and navigate to the directory containing your disk images like archon.d88. Select the file, and press ESC a few times. If I remember right, that is enough to start loading the game. But I know absolutely nothing about how to use these fine NEC PC-8800 computers, I just did a quick test that Archon loaded and I could play it using my USB controller, that is it.

Also note that Archon will not load immediately, you have to wait for a while patiently. Here is the loading screen:

xm8 02

Have fun!

Kalevi Kolttonen <>

PS. If you have a good, working Boulder Dash disk image suitable for NEC PC-8800 machines, please send it to me via email. I absolutely need to try it out using xm8. I already have lots of games, but the Boulder Dash PC-8801 port is missing, and as it happens, that is the game I am most interested in. It appears to me that it is very difficult to find, or am I mistaken here? Was it perhaps more common in Japan? Thanks for your help!

I do have the original NEC PC-8801 Boulder Dash physical floppy disk (complete in box, "CIB"), and depending on how things turn out, it could be possible to dump the data from it and store it as a regular file. However, I have no expertise, hardware equipment or required software to do that.

We must rely on software preservation gurus out there - maybe they can do it? Nevertheless, the task probably will not be easy. I was told that before dumping, they may have to do some complicated things to figure out the exact PC-8800 floppy disk format and so on. In other words, you cannot just insert the floppy into a disk drive and expect to have a working dump happening by itself. It is considerably more complicated than that.