copyright (c) 1999 Sam Pettus (aka "the Scribe"), all rights reserved
All copies must not be altered in any way, including but not limited
to reformatting and conversion to alternate document formats, without the
express consent of the author. The sole exception is for necessary
formatting changes that may be
required to adapt this document to suit your particular needs; however,
the complete original text must be retained in as
close a layout to the original as possible. For any questions
in this regard, please contact the author.
No copy may be reproduced in whole or in part within a for-profit commercial
publication or Internet site without the
express consent of the author. The author recognizes the right
of said vendors to reproduce limited portions of his work
under the "fair use" clause of the appropriate sections of U.S.
copyright law and the international
Berne Copyright Convention.
Any trademark to be found within this document is the exclusive property
of its respective owner,
and is reproduced here merely for reference.
Module One: The Emulator
Part 1 - The Basis for Emulation
INTRODUCTION
I've been involved with the emulation community
in one form or another since 1998. I first became aware of the concept
back in 1988 when I bought my beloved Amiga 2000 (R.I.P, old friend).
You see, there was this nifty accessory you could get from Commodore called
the PC Bridgeboard - a combination of hardware and software that would
allow you to run IBM PC software on a suitably equipped Amiga. "Cool!"
I thought, but I couldn't afford the price tag for either the XT or AT
model at the time.
I was bemoaning this fact to a fellow Amiga
user one day, and he merely shook his head. "You know," he said,
Commodore used to sell a piece of software for the old A1000 that would
let you run PC-XT software on an Amiga without the hardware."
"No way!?" I said, hardly believing my ears.
"Way," he replied, "and I've got it.
Come to my house this weekend and I'll give you a copy."
That was my first step into the wonderful
world of emulation. The program that my friend gave me was called
the PC Transformer, and it did indeed let you run PC-XT software on an
Amiga without special hardware. True, it was buggy as all out,
only supported text-based software, and had no support at all for hard
drives, but who wanted to play "Beemer" games on an Amiga anyway?
The business apps, such as WordPerfect 4.2 and Lotus 1-2-3,
were what mattered, and those were handled ably by that creaky old software
emulator.
It was several months later, sometime in mid-1989,
now having established myself as one of the Amiga gurus in my local area,
that I paid a visit to a nearby Commodore dealer to check out the Shadow
of the Beast demo yet again (helluva demo then, and still is now -
even under emulation). The owner of the place was quite excited.
"You've got to check this out!" he said, steering me and
my ol' Amiga hacking buddy Skerran to his display A2000. "Have
you heard of A-Max?"
"No," I said, feigning ignorance. Of
course I had, but I didn't know of anyone who had gone to the trouble of
buying it.
"Then watch this," he said as he turned on
his A2000, activated A-Max, and then inserted a MacOS System 6 disk
for bootup. Skerran almost fell over when he saw this, but I held
my tongue and watched. A short time later, we were looking at a blue-and-white
MacOS screen displayed on the store's interlaced A1084S monitor.
"Now it's a Macintosh," the store owner stated
proudly.
For those of you who might not remember, A-Max
was a combination hardware and software product along the same lines as
the PC Bridgeboard, except that it gave the Amiga the capability for near-perfect
Macintosh emulation. All you needed was the A-Max emulation
software, the A-Max adapter, a MacOS boot disk, and a set of Mac
BIOS chips. Apple was at that time dead set against any type of cloning
of their proprietary hardware, so the only way A-Max could remain
legal was to force its buyers to go to a licensed Apple vendor and order
a set of real Macintosh BIOS chips. These plugged into the adaptor,
and the A-Max software worked in conjunction with real Mac code
to reconfigure an Amiga into a pretty decent Mac clone. Yes, it was
a bit of a specialty product, it was pricey, and it really wasn't worth
the trouble if you were stuck with an interlaced monitor - but oh, was
it ever so neat!
Two months later I was in another state at
a meeting of several software pirate groups to shop the latest warez offerings
from the Amiga underground. I was on good terms with one of the better
groups in the area, and one of its members tossed me a white 3.5" disk.
"Have you heard of A-Max?" he said.
"Yeah," I replied, "but it's no good without
the Apple BIOS."
"Here's a cracked copy," he said, "and you
don't even need that f--kin' adaptor to run it."
He was right. After testing the disk
with the latest release of Steve Tibbet's VirusX (we had to be careful
even back then), I booted the thing up. Sure enough, there was A-Max
- running without the Mac BIOS! "How did they do it?" I asked.
"Easy," the hacker replied, "they just dumped
the BIOS and hard-wired it into the emulator. Now it can run all
by itself."
I thanked him for providing the copy, and
a week later was back at the Commodore dealer. I pointed to his dusty
display A500 off to one side - he rarely used it anymore since his A2000s
had arrived. "I can make A-Max run on that," I said.
"Not without the adaptor, and I'm not taking
it off the A2000," he replied.
"I don't need it," I answered. "Watch
and see." And with that, out came the little white disk.
About five minutes later, a glassy-eyed and
slack-jawed Commodore dealer was staring at a MacOS screen on his A500.
"How in the world did you do that?" he asked.
"This version doesn't need the adaptor," I
answered.
"Where did you get it?" he asked.
"Same place your techs get their stuff," I
shot back, winking as I did so.
"I see," he replied with a grin. "What
do I need to copy it?"
"Nothing special," I answered. "Project
D will work just fine."
"Here's a disk and my copy of Project D,"
he said, shoving them into my hands. "Go for it."
Emulation has come a long way since those initial
heady days on the Amiga (and the Atari ST and Mac - let's not forget their
contributions, either), but the basic premises and questions remain the
same. The recent attempt by Nintendo to formulate an official company
policy on emulation may have sparked a lot of ridicule, but was actually
a good thing to happen at this time. As emulation is now suffering
from something of a bad reputation in the public eye, perhaps it is time
to take a look back at where we've been, where we're going, and the legal
ramifications that are involved. The two stories above, which actually
happened to me in my younger, wilder days, serve to illustrate all of the
main questions concerning the so-called "legitimacy of emulation" and the
various questions that it poses.
I shall attempt in the ensuing series of discussions
to try and lay to rest some of the myths and half-truths that shroud the
emulation community within a grey legal haze. Rather than just tossing
out highly emotional statements as most users prefer to do (and of which
I have also been guilty in the past), I will be citing specific examples
from the history of the emulation community as well as related issues within
the computer industry as a whole. I will also cite specific provisions
of various laws, statutes, and regulations where applicable; and I will
also refer to several landmark court cases (i.e. "case law") regarding
the computer industry that have a direct impact on the emulation issue.
THE PURPOSE OF EMULATION
The first question one might ask is the most
obvious one: "Are emulators legal?" It depends on how
you ask the question - are you dealing with the concept of emulation as
a whole, or are you referring to the creation of an emulator? In
order to resolve this dilemna, let's take a look at the purpose of an emulator.
We will save the legal question concerning the creation of an emulator
for later.
What is an emulator? An emulator
is a creation intended to allow the use of programs designed for one type
of computer system on another system that is different in design from the
original system. Emulators can be pure hardware, pure software, or
a combination of both. In the two stories that I relate
from my past, the PC-Transformer would be considered a pure software emulator,
and both the PC-Bridgeboard and the unadulterated A-Max would be
considered emulators that employ a hardware-software combination in their
design. An example of a pure hardware emulator would be the Sega
Genesis/Megadrive's VDP mode 4 - this converts the console into a functional
Sega Master System emulator running entirely on its internal hardware,
and is activated via a special code received from the console's cartridge
port.
For those of you who are still new to the
emulation scene and don't have any idea what I'm talking about, let me
describe emulation another way. Many of you are using IBM PC compatible
computers running Microsoft Windows as its primary operating system.
Take a moment to look inside the Accessories folder. You'll see about
a dozen or so programs and directory entries, but the one I want you to
look at is named Calculator. Run it, and see what happens.
You should now have what looks like a little calculator on your screen
- not all that different from the little credit card sized ones they sell
on the J-hooks at your local grocery store. If you've got one handy,
go get it and set it beside your keyboard. Now, I
want you to work a few math problems on Calculator; if you've got the
real thing handy, then double-check your results with it. Neat, eh?
That's because Calculator "emulates" a real calculator - it allows you
to convienently work math problems without having to have a real calculator
handy, and it serves just as well as the real thing anytime you're sitting
at your computer. Since Calculator is a computer program that
does not require any kind of extra hardware (other than the computer itself),
it would be considered a pure software-based emulator.
This brings us to the underlying idea behind
an emulator - it is something designed to perform a task or series
of tasks that you couldn't otherwise do because they weren't intended for
your hardware. That's the core concept. You're not supposed
to be able to play Atari 2600 games on an Atari 5200, but you can with
the use of a special hardware-based adaptor that lets the 5200 support
2600 games. You're not supposed to be able to run Windows
software on a Macintosh, but SoftWindows makes it possible.
Speaking of my beloved old Amiga 2000, you're not supposed to be able to
run Amiga software on an IBM PC, but WinUAE and a legally purchased
copy of the Amiga Kickstart ROM image and AmigaDOS software makes that
possible. The concept is sound and has been employed by both vendors
and users in various ways. Emulation is a valid use for computer
hardware regardless of who you are.
THE BIRTH OF EMULATION
You may be surprised to learn that emulation
has been part of the personal computer industry almost since the day it
was started. It arose from the desire of both hardware vendors and
system users alike to run different kinds of computer software on only
one kind of system. Computers in those days were quite expensive,
so anything that would save a user from having to go out and buy a whole
new system was extremely desirable.
Credit for the birth of microcomputer emulation
must be grudgingly granted to those two favorite whipping boys of the industry
- Bill Gates and Microsoft. In 1980, Microsoft released its first
hardware product - the Z80 SoftCard for the Apple II personal
computer. This US$350 accessory was comprised of a plug-in card and
accompanying software that would allow Apple II users to run CP/M software
on their machines. Remember, these were the days before the arrival
of the IBM PC and MS-DOS. You couldn't do everything with software
alone, because the available technology was quite limited. CP/M,
invented by Gary Kildall, was the dominant operating system for business
computers prior to IBM's arrival on the scene, but it was incompatable
with the Apple II's MC6502 CPU. Microsoft's SoftCard had an on-board
Zilog Z80 CPU, which is what CP/M was designed to work with. The
Microsoft Z80 SoftCard allowed the Apple II to greatly expand its software
base and contributed to the success of that classic computer. As
for the SoftCard itself, it was the world's first hardware-software emulator.
CP/M would remain a viable operating system well into the late 1980s, and
products similar to the SoftCard subsequently appeared for other personal
computer systems of the day. The presence of these various CP/M emulators
meant that users didn't have to ditch their old software while learning
how to use the new computers, and this gave rise to the notion of an emulator
providing back-compatibility for older systems and software.
In 1982, computer chipmaker Intel announced
the release of the 80286 CPU. This was one of the company's first
true 16-bit processors intended for mass production and represented a quantum
leap forward in personal computer processing capability. All that
was well and good, except that Intel had a problem - almost all of the
software of the day was 8-bit in origin. Fortunately, these were
the early heady days for IBM, as its IBM 5150 (aka the IBM PC) had
taken the business computer market by storm. The IBM PC used the
16-bit 8086 as its CPU, but its system bus and software base were 8-bit
in nature. The PC clone makers, who were in the process of winning
the legal battle over the right to use the Phoenix reverse-engineered BIOS,
favored the compatable 8-bit 8088, which Intel had designed as a cheap
alternative to the 8086. With this in mind, Intel had devised a unique
solution to ensure that existing 8086/8088 software would work with the
80286. The Intel 80286 was designed to operate in either one of two
modes: standard mode, using a 16-bit data path and 16-bit
memory addressing; and real mode, using an 8-bit data path and 8-bit
memory addressing. In doing this, Intel had unintentionally created
the first pure hardware emulator, since the 80286's real mode almost
perfectly emulated the 8086 processor. Intel is another industry
"bad boy" that must be given credit for the birth of computer emulation
as we now know it, and 8086 "real mode" remains to this day part of every
Intel processor released intended for the PC compatible market.
Personal computer manufacturers weren't the
only ones toying with the idea of cross-platform support during those days.
At the 1983 Summer Consumer Electronics Show (CES), a company named Video
Technology demonstrated a home videogame console called the Laser 2001.
It would accept and play videogame cartridges designed for either the Atari
2600 or ColecoVision home videogame consoles. Atari had sued Coleco
the previous year for offering Atari 2600 support on their ColecoVision
console, but the courts ruled in favor of Coleco. The ColecoVision
console was actually a scaled-down Japanese MSX computer in disguise, and
its similar but more powerful hardware could easily support the simpler
Atari games without any trouble. Atari lost because its console technology
was too generic and could not be shown as being unique in any way. Coleco
could now legally market the first cross-platform videogame console,
and thanked Atari for their generosity the following year by marketing
the Gemini - a perfect clone (and perfectly legal) of the Atari 2600.
Atari later began implementing the same idea into its systems - the Atari
5200, successor to the Atari 2600, could play games for the older console
by means of its own special adaptor. Back to the subject, though
- the Laser 2001 was the videogame industry's first independendly developed
dual-system console, owing alliegance to neither Atari nor Coleco.
The idea that a user could do with videogame machines what was happening
with personal computers proved to be a long-lived memory that never died.
Meanwhile, in another booth, the Happy Home Computer Company of Taiwan
was eagerly demonstrating its MultiSystem microcomputer, which supported
both Apple II and IBM PC software. The seeds of computer emulation
were beginning to bear fruit.
It is perhaps fitting at this point to take
a brief aside and look at the last and most powerful of the 8-bit personal
computer systems, because it employed almost all of the concepts necessary
for true emulation. In 1985, Commodore Business Machines unveiled
the prototype for the Commodore 128 (C128)- the successor to the
venerable Commdore 64 (C64). The C128 was intended to be the
direct replacement for that hallowed machine (which sold more units than
any other single design of personal computer to this day), and as such
had to be fully compatable with the C64 software base. In addition,
C64 users had complained long and loud about the lack of applications software
for their machines, and many simply could not afford Commodore's add-on
CP/M kit. With this in mind, the C128 was designed from the onset
to have three different modes of operation: C64 back-compatability
mode, C128 native mode, and CP/M compatibility mode. The user could
reconfigure the machine for the desired mode by simply pressing a button
or booting from the appropriate floppy disk. The C128 and its cooler
sibling, the C128D, were only on the market for two years, but they were
eagerly snapped up by the Commodore user base. As a former C128D
owner, I can personally attest to the overall excellence of the machine,
and its triple-mode nature led me to expect such capability with future
systems that I considered for purchase in later years. It may have
been the last 8-bit computer, but it was the best - and it signaled that
the time for true emulation had arrived.
The threshold of modern emulation was crossed
in 1986 thanks largely to the arrival of one particular personal computer
- one that would forever change the industry in many ways. We're
still dealing with Commodore, but with an entirely different system - the
legendary Amiga personal computer, generally regarded as the most
powerful personal computer of its day and the world's first multimedia
computer. Like its precursors, the Apple Macintosh and
the Atari ST, it sported a GUI-based operating system and support
for 3.5" floppy drives. Unlike them, however, it was designed from
the start to be the ultimate hacker's and gamer's machine. Its true
multitasking operating system coupled with its 8 MHz Motorola 68000 and
a powerful personalized chipset (remember Paula, Agnus, and Denise?) meant
that it could run rings around any other personal computer then available,
hands down. In addition, it was unmatched with regards to its audiovisual
capabilites - it could generate 4096 simultaneous colors on-screen and
was
the world's first personal computer with on-board digital stereo sound
synthesis. It was so powerful, in fact, that Commodore really
didn't know what to do with it, but at least they had the good sense to
realize that it needed to be IBM compatable in order to stay alive
in a market dominated by PC clones. One of the very first accessories
offered for the Amiga was the PC Sidecar, a combination hardware/software
emulator that worked in conjunction with a 5 1/4" floppy drive to provide
full IBM compatability. This didn't sit too well with Atari, Commodore's
main competitor for the number two spot in the GUI-based PC wars (Apple
was unquestionably number one with the Mac). Its programmers devised
a piece of software called PC-Ditto for the Atari ST that allowed
it to use IBM software without any special hardware. PC-Ditto
was the world's first pure-software emulator, and Commodore promptly
responded with PC-Transformer. It also further enhanced
its hardware/software emulator by redesigning it for its new Amiga 2000
model, and the various PC Bridgeboards (and their third-party clones)
became some of the hottest-selling accessories made for that system.
The concept of emulation was turned on its
head in 1988 by a young man named Simon Douglas. He developed the
A-Max
Macintosh emulator for the Amiga, which Readysoft demonstrated at the World
of Commodore show in November of that year. Like the PC-Bridgeboard,
A-Max
was combination hardware/software emulator that required an actual piece
of the original system - in this case, a genuine Macintosh BIOS (two chips,
as I recall). The big difference between A-Max and the other
emulators that preceeded it is that
a proprietary system was being emulated
for the first time. There had never been a problem with CP/M
support, due to its widespread acceptance and lenient usage terms.
There was no problem with PC compatable systems ever since IBM had lost
the court battle over the Phoenix BIOS. But the Mac?! Everybody
knew how jealous Apple was of its little black-and-white computer, going
so far as to use every trick in the book (and then some) to ensure that
the Mac would not be cloned. Therefore, it did not surprise anybody
when Apple sued Readysoft the following year for intellectual property
infringement. The case went to the courts, and everybody held their
breath. When the smoke cleared, it was Readysoft who emerged the
victor. The courts had ruled that
A-Max was such a specialized
product that it did not represent a viable threat to Apple's market share.
The word began to spread - among the Amiga user community, whisped around
the PC clones in the businesses, and in front of the Macs at the local
schools. Emulation was now legal. There was no more
debating the matter. And as we wondered what system would be emulated
next, and as an indignant Apple flailed away at Microsoft in the courts
over the release of Microsoft Windows, we knew something special
had happened. Though we couldn't put a label on it at the time, the
Golden
Age of Emulation had begun.
THE REASONS FOR EMULATION
So why has the concept of emulation remained
with us? Four reasons. First, convienence. Remember
the example of Calculator? Beats digging in the ol' office desk for
the one that your secretary borrowed last week and never returned.
Second, back-compatablity. Assuming you have a need to keep
using an older piece of software, it sure is nice to have some kind of
setup that let you use the old stuff with newer hardware - that way you
can junk the old hardware and free up some space. Third, software
development. It's nice being able to develop for a custom system
using one that you already know how to use. Fourth, the old standby
of cross-platform support. It's a lot cheaper to buy just
one multipurpose computer system and different kinds of software to use
with it than buy different systems for different purposes and the software
to match. Emulation allows you to save your money by running software
on the system you have that may have been intended for use with a system
that you either do not have or cannot afford.
Need some examples of emulation in action?
Well, we've already got Microsoft Windows' Calculator as an example
of convienence. There are plenty of examples for back-compatability,
but I'll limit myself to three: the PowerBase Converter for the Sega
Genesis/MegaDrive; the "real 8086" mode of all Intel and Intel-derived
80286 processors and their descendants; and the famous "triple mode" operating
system feature of the venerable Commodore 128. As for software development,
the best example I know is Sega's TeraDrive, which was a specially modified
IBM PC-AT compatible with on-board Genesis/MegaDrive hardware produced
and distributed exclusively to game developers and the like. That
also serves as a good example of cross-platform support, since it allowed
the use of both IBM PC and Sega Genesis/MegaDrive software within the same
box.
With the various back-compatability and SDK
issues whizzing about in the minds of computer programmers, it was inevitable
that some bright young programmer would say to himself, "Screw the US$1000
or so for the SDK - I'm going to write my own." On the other side
of the fence, you have a passionate home console owner with a computer
background and no spares to be found in local stores to replace his worn-out
game carts due to the obsolesence of the console. "Forget that,"
he says, "I'll just write an emulator and dump the cart ROMs instead."
Bounce over to the frustrated personal computer user who has just learned
that the game he bought will not work on his new system because it was
designed to run on an older, now-obsolete model that is no longer in production.
"No way," he says, "If the store won't give me my money back, then I'll
find some way to run it anyway." Along those lines, dare we forget
the retrotechs - who just flat out love old computer stuff and will do
almost anything to keep it alive? "We're tired of hunting for out-of-production
parts," they say. "This neato
program will let me run this software on my newer systems." Or
what about the big computer game company who needs to find a way to make
its old games work with its soon-to-be-released system in order not to
lose a good-sized chunk of its customer base? "What old hardware?"
they say. "We'll just make a special chipset for our new console instead
so it will play those old games." Many faces, but the same set of
dice. Thus was the modern emulation community born.
INTROSPECTION
So now we're back where we started. "Are emulators legal?" The answer is a resounding "YES!" The concept of emulation is perfectly legal and one that has been exercised by vendors themselves for many years. The big question is whether or not it is legal for just anyone to create an emulator, and it is that issue that we shall address next.
REVIEW QUESTIONS
1. What is an emulator?
2. What are the three different kinds of emulator? Give examples of each from the text or provide ones on your own.
3. What desire of the fledgling personal computer industry gave rise to the concept of emulation?
4. Who was responsible for the first personal computer emulator? What was the product? What did it emulate?
5. How did the development of the Intel 80286 processor contribute to the birth of emulation?
6. In what ways did early did videogame consoles get involved with the birth of emulation?
7. What legal battle can be said to have "primed the pump"
for videogame emulation? How was this important? Why was
such a thing possible with a mere videogame
console?
8. What was the last and most powerful of the 8-bit personal computers? How did it contribute to emulation development?
9. Which personal computer is responsible more than any
other for the birth of emulation as it is generally accepted today?
Give some examples of accessories developed
for this machine that embodied the concept of emulation.
10. Who was responsible for the first pure software emulator? What was the product? What did it emulate?
11. What product changed the emulation industry forever? Why was
it so significant? Why did the legal challenge mounted
against it ultimately fail?
12. What are four reasons for creating an emulator? Give examples of each from the text or provide ones on your own.
13. Why would one might want to develop or obtain an emulator?
QUESTIONS TO PONDER
1. Can you describe some of the emulators that arose from
the legitimization of emulation? Who made them? What
systems do they emulate? Are each
of these considered legal products, as you understand them?
2. How did IBM's failure to stop the PC clone vendors contribute to the eventual rise of the emulation community?
3. Is emulation legal, at least from a vendor's perspective?
4. What are your thoughts as to the legality of a noncommercial (i.e. unlicensed or freeware) emulator?