JABAWAPE - Just Another Beginner's Attempt to Write A Phoenix Emulator
I began writing my Phoenix emulator, later dubbed "JABAWAPE" in late 1998 and stopped working on it in Early 1999. Shortly after getting it to work reasonably well, I released it, including source code, on a now defunct website called "EMUL8", which ran a mailinglist and had a webpage section devoted to various smallish open source and group-effort emulation progects. The first version released on this website I called "1.0". I believe a version "2.0" was also posted there, as well as a later version which was modified/improved by another person (Thomas Strathaman, if I remember correctly). I also created a version "2.1" and "3.0" which were never posted to EMUL8, but is now available here.
JABAWAPE grew directly out of my efforts to learn to program in C, specifically to program a Phoenix emulator beginning by following the directions in the excellent "AEHOWTO.txt" document (which can be found various places around the 'net). There is a "Step-by-step" section, which I managed to successfully follow, and get a working text-output Phoenix emulator. I added some "features" and improvments before I decided to convert it to real graphics. I used the common Allegro library for graphics, input, and a poor attempt at sound. Early versions used Marat Fayzullin's Z80 CPU emulator. Later, I changed over to Marcel de Kogel's Z80Em. Later still (in v3.0), I modified JABAWAPE to use Neil Bradly's 100% assembly Multi-Z80 CPU emulator.
JABAWAPE has been ported to other platforms by other people:
"Boris" ported it to a WinCE handheld (Compaq Aero)
"PointBlank" ported it to to Sega Dreamcast as DCPhoenix
JABAWAPE we written to be easy to understand and hopefully fairly easy to port (except the last version, which used an asm cpu core). Feel free to play with it, tweak it, compile your own modifications of it, or port it to whatever you want :) I appreciate if you'd let me know if you decide to release a port of JABAWAPE for public consumption.
I managed to save quite a few "versions" along the way. Some are executable-only, others source-only, and others I have matching source and executables. I will be adding them, and some screenshots, to this page... eventually.
v0.01 - the oldest version I kept, the source code for this version was lost :(
v0.xx - the earliest version for which I still have the source code
v1.0 - the first "released" version
v2.0 - converted to use Z80Em
v2.1 - the last portable (i.e. all C) version
v3.0 - converted to use MZ80 (x86 asm)