Bringing the past alive - Arcade & DOS Emulators |
Article is yet to be rated |
|
| Author:
| gmw
|
|
| Submitted: |
05-Dec-2005 20:34:59 |
| Imported From: |
zZine (original author: gmw)
|
| Remember the day when you got your brand new Nintendo Entertainment System, with Super Mario Bros. and Duck Hunt?
|
|
Remember when you would keep on playing even though you had things to do for school or chores at home (and you would get punished for not doing those things by not being allowed to play video games any more)? Ever thought about how nice it would be to play those classics again, like an Amiga game or King's Quest III for DOS?
Well, you can! The answer is emulation. Emulation lets you simulate almost ANY arcade console (and even entire operating systems) on a Windows machine. While there are emulators for *NIX systems, DOS, and even OS/2 and MAC, most of the current emulation software is written for Windows. Let's talk about emulators.
What is an Emulator?
The Church-Turing thesis insists that any possible calculation can be done by an algorithm running on ANY computer, provided that sufficient calculation time and storage space is available. This implies that you could simulate any operating environment within any other. Of course, in practical terms, it is not that easy. Apart from the calculation time and storage space problems, it can be very difficult to create an emulator in the first place. This is because the behavior of the system to be emulated is often not described enough and has to be determined by some other means (like reverse engineering) which makes flawless emulating software hard to create.
There are two possible structures for an emulation program: the first emulates an entire hardware architecture, which means that any single hardware device is simulated - CPU, GPU, sound card, and so forth. Additionally, an operating system (or at least a bootstrap sector and BIOS) has to be emulated for the hardware as well. With these requirements fulfilled, one will be able to run software designed for that specific hardware architecture (e.g., Game Boy Advance games). In this scenario, every system operation is calculated by the emulated devices themselves (so your "real" processor just calculates what the processor of the emulated system would calculate).
The second option is to install only a compatibility layer. This layer simply translates and transfers system calls from the emulated device to your host system; therefore the calculations are actually done by your real CPU. However, it can be a difficult (and sometimes impossible) task to assemble a translation tool.
Therefore, the first option is the most commonly used one. An emulation program is usually divided into modules, like the CPU emulator/simulator, memory subsystem and I/O system. Also, most emulators are open source.
What is an emulator for?
There are a wide range of emulated systems out there. You can find an emulator for nearly everything that is capable of being emulated: operating systems, arcade machines, gaming consoles, Palm Pilots, cellular phones, and even calculators. However, this article will only cover arcade, console/portable and DOS emulators.
Arcade Emulation
An arcade game is a machine, most certainly operated by coins, which you can find in various places of business, such as cinemas, pubs, restaurants or even video arcades. Usually, one arcade machine only contains one game, and the hardware is set up and laid out specifically for that one game. Arcade machines are often equipped with state of the art high-end graphics cards specially designed for the game's graphics demands, which makes it close to impossible to emulate new high-demand arcade games (this is in addition to the legal issues, which will be covered later). However, there are several emulators (like MAME, Raine or Sparcade) which are able to emulate older games, mostly from the late 80's and 90's. Their major benefit is that you don't need coins anymore, so it won't cost you a week's allowance to beat Contra ;).
Console & Portable Emulation
Consoles and portables were, and are, very popular systems to emulate. Almost any console and handheld in existence can be and has been emulated nowadays, with varying degrees of success. Clearly, most modern systems have no problems emulating an SNES, or something even older, like an NES or Sega Genesis. Also, almost any handheld can be emulated fairly well, apart from maybe the Nintendo DS and PSX Portable. However, when it comes to emulating modern consoles like the PS2 or XBox, success has been very limited. Since there is a lack of documentation on how exactly these machines perform their operations, the process of discovering how to emulate the system is completely trial and error, and it has become more and more difficult as technology has improved.
Older consoles were very limited in their processing power, so finding the "right" way of doing something correctly wasn't that hard. However, on new consoles, the possible displayed effects are not only hard to calculate, they are also very slow to do so. As a result, the "best" PSX2 emulator, for example, can only run at speeds up to 10% of the original PSX2, and most games run with huge graphical flaws, or simply not at all.
Depending on your hardware, the most advanced consoles that you can emulate almost perfectly are probably the PS1 and the N64. While the PSX emulator can either use the original CD-ROM (placed into the computer's CD-ROM drive) or load an image file from the hard drive into the emulator, the N64 needs the game's ROM (read-only-memory). Originally, a ROM was just another name for the game cartridge. Since these cartridges are fairly easy to copy, you can find a ROM image for almost every game somewhere on the Internet. This brings us to:
Legal Issues
The legality of arcade and console emulation can be tricky. First off, there is absolutely no problem with creating the emulator itself. You can just do it and nobody can do anything about it, at least as long as you stick to only emulating the hardware architecture. However, as soon as you need the BIOS for the emulated console, you may have a problem. Since the BIOS is copyrighted as the intellectual property of the respective owner, you can't legally "ship" it with your emulator; you have to leave it up to the user to "insert" the needed BIOS. This problem arises especially for the PS1; since it's still on store shelves with games sold for it, Sony takes a loss for every BIOS illegally downloaded by someone. You can download the emulator, but to legally use Sony's BIOS, you need to possess the original console, otherwise you are committing a crime by downloading the file. The aame applies to the PS2 and the XBox, but since one cannot really play any games with the currently available emulators, Sony and Microsoft most likely don't care (for the moment). When it comes down to emulation of older consoles and arcade machines, it's not legal, but since these products are neither manufactured nor sold anymore (except perhaps via eBay), most likely no one will get into any trouble for using these emulators. Sometimes, it is the only way to get a specific game that you want to play.
Considering the legal status of ROMs, the same logic could be applied to games: you probably won't get into trouble for downloading games for older consoles, but copying or downloading PS1, PS2, GameCube and XBox games may not be a good idea, unless you already have the original game. Furthermore, distributing ripped images of games is clearly illegal.
Advantages of Emulation:
There are a few major advantages to emulating an old arcade or console game instead of playing it on the original machine. First of all, most emulators support save states, which enables you to save your progress at any time during the game and load right back to that point. Considering that most console games have a checkpoint system, and older games have no save system at all, this is very handy. You may also freely configure your controls, enable cheats, record sounds out of the game or even play the game at higher resolutions than it was originally intended for. There are also special scaling modes which vastly improve the graphics of a game, like Eagle or 2xSal. These modes build up the low resolution graphics from games to much larger and detailed ones. This requires decent hardware, even for old systems like the NES, but games really benefit from it.
DOS Emulation
You cannot directly compare DOS emulation to "normal" emulation, since it's much more sophisticated. Because a DOS command line interpreter still exists in current versions of Windows, most of the approaches to DOS emulation tend to involve working out compatibility and speed issues. For example, a program called VDMS emulates a sound card and cuts down your machine speed while everything else is done by the native command line interpreter (and thereby done by your "real" CPU). Other programs may emulate old VESA-capable graphic cards, but they don't always work properly.
Therefore, the only way to correctly simulate DOS is to emulate an entire x86 machine, which is extremely hardware intensive. Considering that older consoles have CPUs that ran between 2-20 MHz (for example, the SNES CPU was 3.579545 MHz), a 16-bit GPU, and a MIDI sound card, an x86 emulator has to simulate a normal x86 processor, a math co-processor, a high resolution graphics card, and a more complex sound processor.
It is possible to emulate the command line and old games up to 1992 flawlessly and quickly even with quite outdated hardware. However, you really need a high-end machine (like a P4 3.6 HT and up) to be able to play "newer" DOS games glitch-free and with acceptable speed; especially with games that run under DOS protected mode (remember DOS4GW?). The two most powerful x86 emulators are Virtual Machine and DOSBox. The good thing about DOS emulation is that it is completely legal. Also, there is a wide range of so-called "abandonware", which means that the software has been released by the copyright owner and therefore may be freely obtained (e.g. GTA 1 by Rockstar Games). This supplies the emulation scene with a massive amount of free-to-use software, without having to fear any legal action. However, this is not the case with all old games; some of them are still under copyright.
Conclusion:
The emulation scene has grown into a massive community, sustaining a multitude of forum-based communities all around the world. Their habit of sticking with the classics has become a major trend for newer commercial games, and is not always acceptable to software developers. Tensions may arise in the future when modern personal computers are capable of emulating even high-end consoles. This may lead to some serious legal issues, like what has happened with the warez scene. The already widespread presence of illegal game copies and mod chips to enable consoles to run them wil continue to grow. Therefore, one cannot really say that emulation is a plus for the gaming industry; on the contrary, it's main function is to bring back some nice memories, or enable you to play a game you always wanted, but were never able to get.
References:
http://en.wikipedia.org/wiki/Emulator
http://en.wikipedia.org/wiki/Snes (for SNES CPU Speed)
A decent list of emulators for a wide range of systems can be found here:
http://en.wikipedia.org/wiki/List_of_emulators
A great place for abandonware:
http://www.the-underdogs.org/
Legal Roms:
http://www.pdroms.de/
Great DOS-Emulation Community:
http://vogons.zetafleet.com/
This article was originally published by CyberArmy.net in the CyberArmy Library.
|
|
You must be logged in to vote on an article
|
About Us | Privacy Policy | Mission Statement | Help
|