Showing posts with label emulators. Show all posts
Showing posts with label emulators. Show all posts

05 April 2004

CVG 101: Em-yoo-lay-shun? (originally for Classic Gamer Magazine)

[Classic Gamer Magazine introduction. This article was originally published in CGM volume 2, #1 (April 2004). This is the article as I submitted it and does not exactly match what was published.]

If you’re a classic gamer and are on the Internet, odds are you've at least heard of emulation and emulators. You may even have a hard drive full of ROMs and a computer desktop full of emulator icons at home. If that’s the case, you might as well go read this issue's “MAMExposed” by Scott Marriott. If you're the one saying, “what's a ROM?” (Yes, you! The one in the back!), keep reading.

An emulator is simply a program that lets one computer imitate a different computer. When I say “computer,” I mean it in almost the most generic sense. In this case, an electronic device that uses microprocessors to, er, compute. For example, there are emulators that let your Apple Macintosh act like a PC, your PC pretend it's a Sony PlayStation, and your PlayStation think it's an Intellivision. (And for some real fun, try running the Intellivision emulator on your PlayStation emulator on your PC emulator on your Mac.) Sounds simple enough, right? “So,” you ask, “how do they work?” I wish you hadn't asked that.

Creating an emulator is not a simple task. It takes a lot of technical know-how and programming skills. It's really more complicated that I can explain in this limited space, but let's see if I can cover the basics. Since this is Classic Gamer Magazine, we’ll limit our discussion to home video game consoles and coin-operated arcade video games. For all video games, there are four primary areas to consider: video, audio, controls, and central processing unit(s). These are collectively known as the hardware.

The CPU emulation is really the heart of an emulator. It's the CPU that runs the program that is the game, whether the game is contained in a chip on a cartridge (as in home consoles) or on several chips soldered to a printed circuit board (PCB) (as in arcade games). In order for an emulator to run a game, you have to make your computer processor run as if it were the console's or coin-op's CPU.

In addition to the CPU, there are probably other processors that handle the video, audio, and controls. When the emulator programmer creates these components, he must not only have them imitate the original hardware, but translate their input or output to the emulator's host system. For example, you can't hook up your Atari 2600 directly to your PC monitor. They simply aren't compatible. Similarly, your sound card isn't a TV speaker and there's nowhere to plug in the joystick. So the emulator has to convert what was once a TV (or arcade monitor) signal into something your video and sound cards can understand. Likewise, it has to convert certain presses of the keyboard into something that appears to the emulated CPU like pressing the joystick and buttons.

So, to reiterate, an emulator is a computer program that imitates the hardware of another computer. Now, when it comes to computers, where there's hardware, software usually isn't too far behind. In the case of video games, it's the game itself that is the software. When you plug a cartridge into your ColecoVision, you're actually connecting a Read Only Memory (ROM) chip to the CPU. When you turn the console on, the CPU then executes (runs) the code found in the ROM chip (or just ROM for short). Similarly, when you turn on an arcade game, the CPU reads the software in the ROM chips connected to it.

Now, most people don't have the hardware to connect a cartridge to their computer. This is where ROM images (or, again, just ROMs for short) come in. It is possible to buy or even make the proper cables and/or hardware to connect a cartridge or arcade game ROM chip to a computer. Then you can use special software to copy the software contained in the ROM to a file on your computer. This file is called a ROM image. The ROM image (or, say it with me, ROM for short) is identical to the code that the console or arcade game runs. Thus, when used in conjunction with a good emulator, you can get an experience that's almost just like playing the actual console or arcade game.

You might be wondering why you didn't hear about emulation until recently. [Author’s note: “recent” is a relative term here. This article was originally written for the non-existent seventh issue of CGM back in 2001.] This time, I’m glad you asked. The primary reason is that computer processors have only recently gotten fast enough to handle emulating other systems. There's a lot of overhead in getting one computer processor to emulate another. It wasn't until the mid-1990s that personal computers had the power to emulate a 1MHz CPU! And then programming an emulator generally required using assembly language. Assembly language is a very low-level language for directly programming a computer. It's basically only a couple steps removed from the actual zeroes and ones your computer uses. The advantage is, because you're practically talking the language of the computer, programs written in assembly are (generally) very fast. But because it's so rudimentary, few people take the time to learn it. Thus, there were few people that had both the interest and the ability to write emulators.

By the late 1990s, computers were powerful enough to handle emulators written in higher-level languages like C. A program written in a language like C is converted down to assembly language by what's called a compiler. But even the best compiler isn't going to create an assembly language program as efficient as that written by hand. (At least that written by the hand of an experienced assembly language programmer.) Thus, such programs run slower. This has been made up for in processor speed.

To give some early history, Digital Eclipse released their Williams Digital Arcade series for the Macintosh in 1994. The games of the series were Defender, Joust, and Robotron: 2084. These were the world's first commercially released arcade game emulators. The following year, Activision published their first Atari 2600 Action Pack, which was an Atari 2600 emulator accompanied by 15 games. This was the first commercially released home video game console emulator. These two programs, along with several independent efforts that happened to be taking place about the same time, started the emulator revolution. At the same time, the Internet was starting to really take off. This allowed programmers to better share their works and communicate with each other to compare notes.

It also made it easier for those few with the ability to make ROM images to share them with others. This brings us to a legal technicality. While there is (generally), nothing illegal about creating or using an emulator, most of the games they run are still the property of the companies and individuals who created them. Their copyrights won't expire for many years yet, and some companies are intent on defending them, as is their right under the law. Thus I feel I must point out that it is illegal to download ROMs from the Internet, particularly if you don't own the actual game.

The laws regarding “backing up” software muddy the issue some. Technically, the owner is supposed to back up his own software. However, since all copies are identical, once you've downloaded a copy, how could anyone tell that you hadn't done it yourself? Second, there are some questions as to whether laws allowing the backing up of software apply to software distributed on a robust medium like a cartridge. As best I know, these particular issues have not been tried in court because the companies that own the games don't generally go after the emulator users; they target those that distribute the ROMs on a large scale. Beyond the legal issues are the ethical ones, which I don't have nearly the space to go into here. Suffice it to say, you'll have to sort out for yourself whether breaking these laws is actually harming anyone or not. It's not an easy question to answer.

Regardless of your answer, today you can find an emulator for practically any home console or computer that was popular in its day. And even some that weren't so popular. You can also find emulators for thousands of arcade games. By far, the most popular is the Multiple Arcade Machine Emulator or MAME (www.mame.net), which currently emulates over 2600 unique games. Can you imagine an arcade with 2600 different games??? Well, thanks to emulation, you don't have to imagine it. You can have it in your home, filling up your computer's hard drive.

Postscript (12 June 2013)

This article was originally written for Classic Gamer Magazine volume 1, #7 in 2001. Yes, the one time I managed to get an article written on time — or was it even ahead of time? — the magazine folded. Unfortunately, CGM wasn't the only one.  Syzygy and GameGo also disappeared about the same time. At first, CGM publisher Cav planned to publish the seventh issue on CD-ROM, but four months later, he realized that even that was to expensive a venture. So he planned to use our articles on the Classic Gamer web site to maintain interest until he could figure out what to do. Finally, in 2004, CGM was re-launched with volume 2 as a PDF document and this article saw "print." By then, however, I had other commitments and didn't write any further articles.  (See the "Remembering CVG 101 and Classic Gamer Magazine" entry for more information on the magazine.)

That note about the article being written in 2001 was not included and that part was re-written, possibly not by me. Also, Scott Marriott's column was renamed to MAMEusements and my article edited to reflect that.

18 July 1997

Is It Live or Is It Emulated? - Part 2: Commercial and Upcoming Emulators (originally for Suite 101)

[Suite 101 articles introduction]

Last time I talked about shareware and freeware console emulators you could download from the Internet. This time I'm going to discuss commercial emulators available in stores and those that are still under development. The advantages of commercial emulators are primarily support and games. Commercial products have an entire company's support line open to answer any questions or problems you might have. Commercial emulators also come with a selection of games, so you don't have the legal or moral conflicts of using illegal ROM images.

The first commercial emulator was Activision's Atari 2600 Action Packs. It was actually the first ever, full Atari 2600 emulator. There have been three Action Packs released, each with 15 games included. The first two Action Packs were for Microsoft Windows 3.x. Later, versions were released for the Macintosh and Windows 95. The third Action Pack was released briefly for Windows 95. Unlike the first two, which only contained titles written by Activision, the third Pack had a few games Activision licensed from Atari (notably Yars' Revenge and Combat). (Actually, the second Pack contained Atlantis, a game by Imagic. Activision had bought all the 2600 titles produced by Imagic and Absolute some time after the 1984 video game crash.) Apparently the Action Packs have not sold as well as Activision thought they would, so it doesn't look like there will be any more. The third Pack was actually recalled. If you're industrious, you might still find the first two with all three versions (Windows 3.x, Windows 95, and Macintosh) in a single package.

Currently, the only other commercial emulator is the Personal Arcade, a Colecovision emulator by Telegames. It is for Windows 95 only. So far only one volume containing ten games, few of which are among the best known titles, has been released. Unlike Activision, Telegames has a free sample version of their emulator available for download.

Don't despair because of the lack of commercial emulators. There are more on the way! Perhaps the best recent news on the emulator front is the upcoming Intellivision emulator. The Blue Sky Rangers have formed a new company, Intellivision Productions Inc., and bought the rights to the Intellivision system and games. Although they currently do not have a publisher, the Blue Sky Rangers are hoping to release a CD with the emulator and a complete catalog of Intellivision games, including some unreleased ones that were in development but never marketed, in the fall of 1997. You can get a demo copy now that allows you to play Astrosmash on your PC. The final emulator package should also be available for the Macintosh.

Another emulator under development is an Atari 2600 emulator created by the Cyberpunks, a group of 2600 enthusiasts who coordinate via the Internet. Their emulator will include full emulation of the Starpath Supercharger, a very nice peripheral for the 2600. (See the above link for a full description.) They are currently negotiating with Atari and Activision. If things go as they plan, they will use Activision as their publisher (thus probably officially bringing and end to the Action Packs) and the CD will contain the complete Atari, Activision, and Starpath catalogs, including some unreleased games.

There's no telling what other emulators might be in development, either commercially or just has hobby projects by individual programmers. I have heard rumors of a Magnavox Odyssey² emulator for the PC and a Vectrex emulator for Macs. In any case, there has been a large surge in emulating classic video game consoles now that today's personal computers are up to the task. Expect it to continue for a few years to come.

Copyright 1997, i5ive communications inc. Used with permission.

[2013-04-28: Needless to say, you can't buy any of these any more.  Although you can still get the Intellivision emulator sequel, Intellivision Rocks, from the Blue Sky Rangers.  And sadly, the Cyperpunks project never made it to market.]

04 July 1997

Is It Live or Is It Emulated? - Part 1: Shareware and Freeware Emulators (originally for Suite 101)


Being a classic home video game enthusiast doesn't just mean seeing how many Atari 2600 cartridges you can amass. It can also mean just playing and enjoying the games of yesteryear, back when game play came first, not fancy graphics and sounds. Not everyone has the space, money, time or luck to collect all the games they’d like to play. That’s where emulators come in.

An emulator is a program that replicates one processor, computer, or system on another. The system that runs the emulator usually must be more powerful than the original system. Believe it or not, only recently have personal computers become powerful enough to emulate the video game consoles of the 1970s and 1980s. Most of the emulators I'll discuss require a 486 processor at minimum. This time, I'll cover shareware and freeware emulators available on the Internet. Freeware refers to software that you can obtain at no cost. Shareware is software you can download and try before you pay for it. Next time, I'll cover commercial emulators available in stores.

Note that all emulators require you have copies of the game cartridges (called ROM images) on your computer in order to play the games. It is illegal to own a copy of a commercial game you do not have in actual cartridge (or other original) format. I am not even entirely sure of the legality of having ROM images of games you do own. Although there are many Internet sites to get ROM images, I will not discuss them here nor in e-mail, so please don't bother to ask. This does not apply to the new shareware and freeware games I have discussed in a previous article.

The most popular classic system, the Atari 2600, has also spawned the most emulators. Probably the most complete one is PC Atari, which runs under MS-DOS. One of the nicer features is a built-in front-end, which makes selecting the game you want to play easier. Most other emulators require you to specify the ROM image on the command line when you invoke it. This includes Stella, another fairly complete emulator which runs on UNIX, MS-DOS, Windows 95/NT (although the latest version isn't available for Windows yet), OS/2, and Power Macs. One feature Stella has that PC Atari lacks, however, is support for Supercharger games. Stella, like PC Atari, is still being updated with new features. Some other Atari 2600 emulators are Virtual 2600, which has versions that run on UNIX, MS-DOS, Amiga platforms, and A26 and VCS 2600, both for MS-DOS.

There are three Atari 5200 emulators. One of the oldest is Rainbow, which began as an Atari 400/800 computer emulator on the Macintosh. (The Atari 5200 is actually an Atari 800-type computer with some modifications.) There is now a version for Windows 95 and NT as well. The other two emulators are both for DOS and are called Pokey, which also emulates Atari computers, and Virtual Super System (VSS).

Marat Fayzullin is, as far as I know, the only person to write a Colecovision emulator. It is called simply ColEm. There are versions for MS-DOS, Macs, UNIX, Windows, and OS/2, although not all are up to date. The emulator is fairly complete, so Mr. Fayzullin has not made any updates since 1996. There is also only one Vectrex Emulator. It is called DVE, which stands for DOS Vectrex Emulator. It is also mostly complete and has not been updated recently. Note that what I said about copying ROM images does not apply to the Vectrex because the copyright holder has released them for copying for non-profit purposes.

If you get tired of having to remember funny file names for different cartridges, you might try a front-end program that lets you pick cartridges from a menu. One I have used with DVE is Console Menu, which can be used with several different emulators.

Copyright 1997 i5ive communications inc. Used with permission.

[April 28, 2013: PC Atari Emulator is still available and now has a Windows version. Stella, however, is probably the dominant Atari 2600 emulator now. Virtual 2600 is available, but no longer being maintained. Official sites for A26 and VCS 2600 no longer seem to exist.

Rainbow is still available.  Pokey doesn't seem to be.  VSS is, but looks to not be maintained.

ColEm is still around.  DVE can be found, but doesn't seem to have a site of its own.  ParaJVE, a Vectrex emulator written in Java became a DVE competitor.

However, pretty much all these systems are now emulated by one emulator called MESS (Multi Emulator Super System).]