by David Sharp
Introduction
Computer emulation is where one computer is made to behave like or emulate another computer. In this way software for the emulated computer can be tested, used and developed without ever being used on the actual computer. This is a great help in developing software, particularly for video game consoles, but it also has its uses in the home.
People dislike having to continually upgrade there hardware, as although it gives the advantage of more speed, memory, storage, software etc. there is often problems when it comes to running older software. This can be a problem if for example you upgrade the computer with a like make, but is even more of a problem when the computer is a completely different system. This is where emulation steps in, to allow people to use software from other computers on the computer they own.
Commercial emulators for micro computers (home computers) tend to be developed for now outdated (and often far less powerful) systems, in order to allow the user to operate there old software, or play their old games. An example of this was the Acorn PC emulator that emulates an 8086 IBM PC compatible computer. This was an entirely software-based emulator that was very slow in comparison to PCs of the day. It would however run Word Perfect 5.0. Some of these emulators later became hardware based, as it was realised that a coprocessor of some kind would be needed to emulate the PC at a reasonable speed. This however upped the price by several hundred pounds.
A trend has grown up in recent years (and indeed months) for enthusiasts to write there own emulators. Veering away from the popular older systems such as the Spectrum and the BBC B which had already been well emulated by commercial markets, they turned to the game console. With no real operating system to speak of other than a bootstrap sequence, and an entirely single tasking system, these 'computers' were relatively easy to emulate as opposed to a Graphical user interface like Windows or RISC OS.
Information about these systems tended to be a little sketchy, the Japanese corporate giants Sega and Nintendo were more than reluctant to relinquish details of the Instruction set to enthusiasts. This would, after all, result in the generation of a large and freely available piracy market, that up till now had been very limited, with the Read Only Memory chips (ROMs) being expensive to duplicate. Nevertheless the information became available through limited manuals, and programmers began emulating the more simple consoles such as the Nintendo Entertainment System (NES), the Nintendo Gameboy with its simple and (reasonably) well documented Z80 chip, and the Sega Master System and Game Gear. These emulators were all for the 8 bit systems, that by the mid 1990s were become rather outdated. By this stage the home PCs with the new Intel Pentium chip were also powerful enough to consider emulating these simpler systems satisfactorily.
The problem was that for the home user to attain the software to run on these emulators, he would have to build himself a cartridge copier. This meant getting hold of the game cartridge (ROM) and building some sort of link up between his PC and the cartridge, and then writing the software to copy the cartridge. This was generally beyond all but the most technically minded home users, and was a large sticking point in the spread of console emulation, that is, until the World Wide Web.
With the exponential growth of the internet, all it takes is for a few people to be able to build a cartridge copier, and the resulting files can be placed on the web and spread around the world in a matter of hours. As other people catch on, the bug spreads and the ROM images become accessible everywhere.
In the last year or so, we have seen home PC emulation at near full speed of some 16 bit systems such as the Sega Megadrive (Genesis) and the Super Nintendo Entertainment System (SNES). The highly portable C language that many of the 8 bit emulators were written in has allowed them to be ported (transferred from one type of computer to another) easily to the Acorn, resulting in the emulators that are now available to us. Unfortunately, due to the lack of emulation programmers on the Acorn, we are unlikely to see emulators for the more powerful systems 16 bit systems. The reason for this, is that all these emulators are written in assembly in order to run at a reasonable speed, and this assembly for other systems, is not easily portable to the Acorn. Until some emulation programmers appear on the acorn scene, we are unlikely to get modern updates, as instead we rely on the distribution of emulator source codes from other systems.
I personally have a fairly basic knowledge of what goes into writing an emulator. Basically, by one method or another, the machine code instructions of the emulated processor must be read and then interpreted or converted so as to mimic their result on the host processor. Often blocks of memory need to be set aside, the screen display setup, key presses checked, and complete routines written to handle emulation of simple instructions and processes on the host computer, often in an almost virtual environment. There are 4 main ways to do this:-
The most common of these is interpretive emulation since it is by far the most simple, but unfortunately it is also the slowest. This is ok when the processor of the host machine is much faster than the emulated processor, but if you wish to emulate the latest hardware, such as a pentiumII, an N64 or a playstation, a different approach is needed.
The other method to speed these emulators up is to write them in pure assembly code since this is highly optimised. Unfortunately this is not as portable as the popular language C, so an emulator written in assembly will not be able to be ported to another platform. This porting has been a source of many of the emulators on the Acorn, and so should not be overlooked.
Things you should know
It is illegal to distribute or possess ROM images of software that you do not own the original cartridge for. I will therefore NOT supply anyone with ROM images, as I only retain the ones that I own the cartridge for, on my Master System, Game gear and Gameboy.
There is not and will not in the near future be a Sony Playstation emulator (actually I've heard one is in early stages of development on the PC), Sega Saturn, nor Nintendo64 emulator for the Acorn or even PC. If you want to get the most of the emulators that are currently available, you will probably need about 8Mb of memory and a Strong Arm RISC PC. Most however, will still run on slower machines, but you pay the penalty in emulation speed.
At the moment, there is a far better range of console emulators available for the PC, including the 16 bit systems already mentioned. If you have access to a PC I suggest you get hold of them as well.
These emulators are not perfect, some ROM images will not work, even if they are perfect copies of the original ROM. Some Cartridges will never be copied, as a result of unique chips stored inside the cartridge that cannot be copied with the rest of the image.
Battery backed memory that is used in some ROM cartridges may be supported by some emulators, but not all. I suggest that you read the documentation supplied with the emulator as I can provide no decent technical assistance.
The higher the number of bits a console has, the better the graphics, speed and visual ability of the console.
Don't moan to me that you can't find any ROM images, you can use a search engine can't you?!?!
DO NOT ASK ME FOR ROM IMAGES AS I WILL SEND YOUR EMAIL ADDRESS WITHOUT
REPLY TO A COPYRIGHT INFRINGEMENT AGENCY.
Terminology
Emulator - a piece of software (or hardware) that allows one computer to act like and run the same software as another.
ROM or ROM image - the name given to a file that is an exact copy or image of all the information on a console cartridge. This is then interpreted by the emulator and run, just as if on the console.
Porting/Ported - where a piece of software is transferred from one computer make to another eg. from a PC to an Acorn, and made to run on that new system as if it were written for it in the first place (ie. not under emulation).
Instruction set - the instructions that a computer chip understands and that must be understood by the emulator if it is to run the software of that computer chips system.
Cartridge/Cart - the piece of plastic that is plugged into many consoles eg. NES, SNES, Gameboy, SMS, GG, Megadrive. And contains the ROM chip, and the software on it.
Console - a computer without a keyboard, that comes instead with a joypad/stick or 2, and normally inputs software from a cartidge or CD-ROM.
Common Abbreviations
NES - Nintendo Entertainments System, Nintendos 8 bit video game
console.
SNES - Super Nintendo Entertainment System, Nintendos 16 bit video
game console.
GB - Gameboy, Nintendos hand held video game console
SMS - Sega Master System, Sega's 8 bit video game console.
GG - Game Gear, Sega's hand held video game console.
MD - MegaDrive otherwise known in USA as Genesis, Segas 16
bit video game console.
PCE - PC Engine, another 16 bit console.
emu - emulator (see above)
How best to use the Acorn Emulation Page
This page is only as good as you make it, actually that's a lie, it's only as good as I make it, but some help from those who read the page wouldn't go amiss. Considering I get several hundred hits every week, its surprising that I only get a few emails. If you have any ideas, information, screenshots, games that you think are good, know of any new emulators, problems or anything concerning emulation, tell me about it!
I advise you to check back fairly regularly to see the new information on the site (and increase my hit counter). If you can't be bothered, then there is a feature to allow you to receive an email automatically next time the page is updated, though this isn't especially reliable. If you don't want to do this, then please bookmark this site.
You might like to take a look at the Acorn Emulation Message Board, as it is the central location for messages on the Acorn, rather than just reading and posting to comp.sys.acorn.games, why not have a look here!
If you find any problems with the site, broken links, incorrect or outdated information, then you must tell me.
The site is best viewed with a frame capable browser such as ANT internet suite, or Netscape Navigator on the PC. I recommend that you don't use MS Internet Explorer as it uses unorthodox HTML tags! (ie. the page will look wonky). Unfortunately I am designing this site on a PC, and for use with Netscape Navigator, as that is where my internet connection is - sorry. If the pages look odd on your browser, do tell me and I'll try and fix it.