Emulation Rambler


===========================================================================
                             Emulation Rambler
                            By:  Jason Compton 
===========================================================================

[This article was originally written a couple of weeks ago for Emuzine, an
all-platform online magazine which was to be dedicated to emulation.
Unfortunately, the magazine's publisher has backed out on the idea.  So
rather than let this article go to waste, I've decided to repurpose it a
bit.  Consider it a short reminder of where we are and what we've got in
terms of 8-bit emulation... -Jason]

Welcome, emulation fans!

While the recent flood of exciting emulators have been primarily for the
WinTel platform, (with a strong showing of portable Unix development as
well), the Amiga was perhaps the first computer with a strong base of
highly compatible emulators.

A note about the test system: Currently, the test system here is running

8-Bit Machine Emulation and the Amiga
-------------------------------------

Arguably the hottest craze right now in emulation is 8-bit computers: Apple
IIs, Atari 800s, Commodore 64s, you name it, if it was an 8-bit computer
platform of the 80s, odds are there's at least one good emulator out there
and a plethora of software for anybody willing to look hard enough.  The
Amiga is reasonably well endowed with 8-bit emulators, and is particularly
well off for C-64 and European 8-bit machine emulations (such as the
Spectrum and Amstrad CPC), owing a lot to the Amiga's strong European
popularity.  In no particular order and by no means a complete list, here's
some highlights of Amiga 8-bit emulation:

Apple II+ Emulators:  There's really only one high-class emulator for the
Apple II+, but it leaves very little to be desired.  Apple2000 was last
updated in 1994 by its author, Kevin Kralian, who has since gone on to
become a console game programmer at Acclaim and won industry accolades for
"Best 32X Game of the Year" a year or two back.

Apple2000 emulates a 48k Apple II+ with 16k "language" expansion card.
Standard Apple file images and DDD-compressed images are supported, as well
as memory snapshots.  The emulator mimics the Apple II+ display hardware
with extreme accuracy.  It also provides an annoyingly accurate rendition
of the Apple's internal speaker.  One or two virtual floppy drives may be
used, and the emulator comes with its own mock floppy ROM, only requiring
you to supply the actual Apple II+ ROM image.

High points: It's very fast, and luckily comes with speed control.  On my
system, "Ludicrous Speed" (no speed restriction) is far too fast.  Full
speed is attainable with a 68030/25 Mhz, an easy configuration to come by.

Low points: It doesn't support graphic board display (no huge loss since
the speed gain isn't needed, but inconvenient for graphic card users), and
does not have a full 6502 implementation, so undocumented opcodes cause
breaks to the debugger.

Apple II emulation fans will be interested to know that Jim Drew has been
promising a new Apple II emulator in "a few more weeks" for a few months
now.

Atari 800 Emulators: As for the Apple II+, we only really have one
emulator, the Amiga port of the Unix Atari800.  Unfortunately, unlike
Apple2000, Atari800 is coded almost entirely in C, and not very optimized
for the Amiga at that, so suffers from a lack of speed.  Hopefully, giving
it another chance will produce better results, and I'll share those when I
have a chance.

Similarly, Jim Drew is promising a new Atari 800 emulation to ship with the
aforementioned Apple II emulator.  Still no word on when it's really
coming, though.

Commodore 64 Emulators:  As I said, there's quite an assortment.

The earliest I know of was GO64!--very early, very primitive.  Following
that was The A64 Package, notable in the C64 serial interface box that came
with the package and allowed you to hook up virtually any real C64 device,
from a floppy drive to a hard drive or printer, to the Amiga and emulation,
and for its 6581.library which provided a full SID chip emulation, which is
now used by other emulators!

A64 tried very hard--it was pretty fast on low-spec Amigas, and could run
BASIC programs all day and even some games.  The best part about it was
that it would recompile C64 code into 680x0 code, which could be loaded in
and run on the emulator, greatly improving speed to the point that programs
were at several times their normal speed on a 68030/25 system.  But it was
ill-equipped to deal with things like D64 images and complex graphical
tricks.

A friend uses A64 to this very day for his C-64 development, since by
recompiling his assembler into 680x0 code he's able to code and test
programs far quicker by compiling them on the Amiga, then transferring them
back to the 64 for evaluation.

The modern crop of emulators consists of Frodo, MagiC64, and AXF-64.  In
rough terms, from left to right, they get faster and less compatible as you
go across.

Frodo is in simultaneous versions 2.4 and 4.0 for the Amiga.  2.4 is based
on the original Amiga-developed Frodo code, and provides a reliable but
resource-hungry C64 emulation which offers a full set of included ROMs (and
a modified Kernal ROM to provide keyboard shortcuts for many BASIC and DOS
operations), D64 support, SID emulation through one of two libraries (not
included, but easily found from other sources) or a simple SID card you can
build from the included schematics, and more.  As I say, though, Frodo is
slow.  To get a really faithful emulation, a system as good or better than
mine is highly recommended, otherwise you'll have to trade off video
refresh for speed.  Frodo also has joystick support and a built-in "freeze"
monitor, as A64 did.

Version 4.0 is based on the author's BeOS version of Frodo, and as such
does not accomodate all of the things V2.4 did.  For one thing, it only
opens in a Workbench window rather than a custom screen as 2.4 does, and it
does not support the 6581 or PlaySID libraries, only the SID card and the
new AHI audio standard.  However, it does offer things 2.4 does not, such
as REU support.  Frodo 4 is multiplatform, so you may want to check it out.

MagiC64 supports D64s and T64s, most of the niceties of Frodo, and is
often faster, although sometimes less accurate in replicating the 64 on
video tricks.  It supports the same two SID libraries as Frodo, has
included ROM emulation (instead of modified Commodore ROMs, as Frodo does.)

AXF-64 is the most "quick and dirty" of the lot.  You're on your own for
getting the ROMs (not difficult, and you can just use Frodo's anyway).
Unlike Frodo and MagiC64, there are no on-the-fly GUI configurable options,
you load up and you're on your way.  Disk images are not supported, but
sound library SID emulation is.  Reset is a questionable routine and
there's no way to hit "restore".  But it's coded for speed and may be worth
investigating if you're frustrated with Frodo or MagiC64.

Both Frodo and MagiC64 come with fairly complete documentation, AXF's is
less thorough but is sufficient for running the emulation.  Each has their
own keyboard layout, and I'd have to say I'm most comfortable with Frodo's.
AXF's is fairly close, and MagiC seems not to have its mind made up about
whether to follow C64 layout conventions or Amiga keycap conventions.


MSX Emulation: MSX emulation is one of the things that I think makes
emulation so great.  Not only does it give you access to software you never
thought you'd ever run again, but it gives you access to an entire computer
platform you might never have had a chance to see, EVER.  The MSX was a
Microsoft-inspired computer standard popular in Asia and Europe.  I'm no
fan of Microsoft but I do enjoy playing around with MSX titles, most of
which seem to be Japanese in origin.  Sony and friends all built MSX
machines and published software.

There are two major MSX emulators for the Amiga.  The first is fMSX 1.3,
based on Marat Fayzullin's Unix fMSX but heavily modified by Hans Guijt for
the Amiga.  fMSX multitasks, supports graphics boards, and runs at full
speed or better on 68040 or higher machines, and still is passable on
slower systems.  Hans keeps the software well up to date, and is pretty
responsive about making it better.

AmiMSX is a non-multitasking MSX emulation which may still have an edge in
MSX2 emulation and speed, due to its non-system friendly nature.  I've had
limited success with AmiMSX, since fMSX is a lot easier to use.


ZX Spectrum: God save me from yet another ZX Spectrum emulator!  There are
AT LEAST 4 or 5 of these out there, pretty similar when it comes to
compatibility (very high), typically differentiated by their speed, support
of image formats, and graphics board compatibility or support.  The
Spectrum was the first machine I felt about the way I feel about the
MSX--without the emulators, I might never have been able to use one.

My current favorite is ZXAM Spectrum.  It supports a wide variety of game
images, runs with good speed, and can be played in a Workbench window
instead of a custom screen, which is nice for those times where you want to
keep an eye on something else--a transfer, an IRC conversation, or the
like.

The original quality emulator is known simply as Spectrum 1.7.  Peter
McGavin proved it could be done, and quickly.  Even with a 68020, you can
get very good results thanks to his fast Z80 emulation.  Spectrum 1.7 is
aging and is not as friendly to graphic cards or image formats as other
emulators are.

Two newer emulators, Speccylator and Speculator (yes, they're different)
are vying for some respect.  Both are in the same league with ZXAM, but
have not supplanted it in my mind as of yet.


Vic 20 Emulation: The one Vic 20 emulation we have seems to have been done
as a throwaway project, but it does a pretty good job, all things
considered.  It's unfortunately not compatible with the newly release Vic
20 megademo, Veni Vidi Vic, as it seems to not identify itself as either
NTSC OR PAL.  But you can emulate memory expansion and run a variety of
cartridge ROMs on Vic-20, and at a very high rate of speed.


This is by no means a complete list--I haven't yet touched on CPC, Oric,
or BBC emulation, but those will have to wait for another time.

All emulators identified in this article can be found on Aminet, the
largest Amiga FTP network in the world, with more files than any other
computer FTP archive.

The primary Aminet site is ftp.wustl.edu, and the Emulation directory is
pub/aminet/misc/emu.

[Contents]

Amiga Report Main Page | Amiga Web Directory

HTML Conversion by AG2HTML.pl V2.951201, perl $RCSfile: perl.c,v $$Revision: 4.0.1.8 $$Date: 1993/02/05 19:39:30 $ Patch level: 36 & witbrock@cs.cmu.edu