Unfortunately life took over in the last few months and I haven’t been able to keep up with the speed of changes of PiStorm to relay them to you in a weekly format. I have, however, been playing with Emu68 on PiStorm over Christmas. It is a project that has come a long way so I figured I should explain what it is and what is new in it.
PiStorm is a combination of hardware and software. The stock software is based on the Musashi 68000 emulator with a bunch of enhancements to add RTG graphics, virtual SCSI support, etc… Then one day along came the Emu68 project which could replace Musashi on PiStorm.
Emu68 is the brainchild of Michal Schulz and works a little differently. A table of differences is below:
|Emulator Type||Interpretation||Just-In-Time (JIT)|
|OS Layer||Linux||Bare Metal|
|Features||RTG, virtual SCSI (file based), networking, file transfer, Fast RAM, ROM files, CLI and GUI dynamic configuration||RTG, virtual SCSI (partition based), Fast RAM, ROM files|
Key things here are the first two. An interpreter based emulator will look at the 68000 instruction, figure out what the equivalent native instructions are, usually using large look-up tables, and will execute those. A JIT based will compile in real-time the 68000 code into native code to be executed, caching the compilation units as needed. In general JIT based emulators are typically a lot faster.
Emu68 is relatively simple to install as it doesn’t use an operating system, it instead is a “bare metal” application that runs directly on the Pi. This gives it full control of the Pi and also helps improve the performance. Instructions on how to set up Emu68 for PiStorm can be found here. This geared towards Windows users, but the equivalent in macOS and Linux is not too difficult to do.
There are also instructions available to enable to new RTG graphics. I recommend using Aminet’s P96 software for this as the Individual Computers version was not working for me with Emu68 and Amiga OS 3.2.1.
Just how fast is it? The first screenshot is Emu68 (release builds, debug builds are roughly 1/4 speed), the second is Musashi.
Emu68 defaults to 68040 and my Musashi setup is using 68020, but this doesn’t really matter as both will emulate at the fastest speed possible. It only makes a difference for the additional instructions of the CPU.
Also, below is ADoom running using the Amiga’s own OCS graphics hardware, for comparison I’d expect about 9FPS peak from Musashi:
There are still bugs in Emu68 and if you are looking for cycle accuracy, you probably won’t get that from a JIT based emulator. It is also more difficult to add features that interface to hardware because bare metal drivers need to be written for the hardware. The virtual SCSI and RTG graphics are relatively new, and networking is likely a long way off.
But this is an incredibly fast CPU emulator and now the default in my PiStorm system. If you want a fast cheap CPU accelerator for your Amiga whilst retaining the original hardware, this may be what you are looking for.
Four months ago, Emu68 wouldn’t even boot Kickstart properly on PiStorm. There has been incredible progress by Michal and a group of volunteers since then to make it possible for this to be a daily-driver CPU. I am a Patreon of this project and I have donated an RGBtoHDMI board to Michal to help his efforts. Every little contribution helps this project, whether it be financial, testing, bug reporting, etc… So anyone with a PiStorm can help.
My hardware test setup for this blog post can be seen below, an Amiga 500 Plus with a PiStorm and a prototype RGBtoHDMI, left monitor is RTG and right monitor is Amiga’s RGB.