Whether you're looking to relive the past or experience the origin of gaming you missed in your youth, your Windows, Mac, or Linux PC can take you back to Mario's salad days, the birth of the Final Fantasy series, and much more. Here's how to get started with retro game emulation and turn your computer into the ultimate retro arcade in just a few minutes.

While contemporary video games have come close to cinematic masterpieces, there's often nothing better than the fun and simplicity of retro classics. If you've never jumped into the world of emulation, this guide will take you through the very simple basics and have you up and running right away. We'll also take a quick look at ROM hacking so you can power up your emulation experience.

By the way, should you prefer to get this set up on your iPhone or Android instead, check out this guide.

Whether you're looking to relive the past or experience the origin of gaming you missed in…
Read more Read more

Before we get started, let's go over the basics. When you're talking about retro game emulation, you need two basics things: game ROMs and an emulator that can play them. A ROM is simply a copy of a game that exists as a file on your computer. An emulator is an application that's capable of playing that ROM file on your computer. Basically, you can think of a ROM as a virtual game cartridge and an emulator as a virtual console. Now that you know what you're dealing with, let's get started.

Get Your Emulators

Finding an emulator is pretty simple, but you may prefer some emulators over others. We're going to include our favorites for various platforms and, in some cases, a few alternatives if there's a good reason to check them out as well. After we get through our picks, we'll show you where to look for alternatives and additional console types so you can dig deeper if you want to. If you are looking at an emulator we didn't recommend, remember that accuracy, performance, cheat code support, game pad support, and cross-platform compatibility are all things you'll want to consider.

Nintendo Entertainment System (NES)

Nestopia is a popular NES emulator for Windows, Mac OS X, and Linux. It handles many games well and offers a good feature set, including cheat options. If you're looking for something with more advanced features, however, you'll want to check out FCEUX. It's especially handy if you're hacking ROMs as it comes with a built-in HEX editor.

Super Nintendo Entertainment System (SNES)

SNES9X is an excellent SNES emulator that's compatible with virtually every game you'd want to play and has a working port on almost every operating system. That doesn't mean just Windows, Mac OS X, and Linux, but also mobile operating systems like iOS and Android. It has a comprehensive feature set and a long development history, making it a seriously solid choice for SNES emulation. That said, it doesn't provide completely faithful emulation like bsnes (here's why). If you have trouble playing any games with SNES9X, the timing of games seems a little off, or something just isn't quite right, bsnes can probably handle it. It'll run on Windows, Mac OS X, and Linux, but it requires a pretty fast processor to work its magic.

Sega Consoles

Kega Fusion is an emulator for several Sega systems, including the Genesis, SegaCD, Game Gear, and more. It runs on Windows, Mac OS X, and Linux, and is pretty much the most comprehensive Sega game emulator option you have.

Sony Playstation

PCSX Reloaded is a fully-featured PS1 emulator that isn't perfect—like all PS1 emulators—but works pretty well. It's available for several operating systems, including Windows, Mac OS X, and Linux. If you're on Windows you might find you get better performance with ePSXe, but as it hasn't been updated in awhile it's not necessarily the best choice available. Either way, emulating a PS1 console requires a BIOS file (which you can obtain from your physical PS1 system or download online—but, legally, you're not supposed to do that) so make sure you have one.

This is obviously just a short list of the many emulators available to you, but if you want to take a deeper dive you'll find a comprehensive list over at Zophar's Domain (just look at the right-hand column). It includes other popular systems like Gameboy, Nintendo 64, Sega Saturn, and more.

Get Your ROMs

Before we start talking about downloadable ROMs, there are a few things you should know. First, there are two types of ROMs we're going to discuss: homebrew and official games. Homebrew ROMs are software created by individuals that are designed to run in a given emulator or on an actual retro gaming system. Official games are the cartridges you used to buy for your SNES, Sega Genenis, etc., after they've been converted into a digital file that you can play on your computer. The general rule of ethics when it comes to playing these official games is that you should own a real copy before downloading a ROM (or create your own, personal backup copy), but some companies (like Nintendo) believe this is actually not within your rights as a game owner. In this section we're going to point you to various resources for finding game ROMs. What you decide to do is entirely up to you.

Finding homebrew and game ROMs requires little more than a simple web search. If you're looking for Nintendo 64 ROMs, searching for "N64 ROMs" should turn up a variety of resources. You'll then be able to look through the site for the game you want and download it easily. Even though searching is simple, let's save you a little trouble. Here are some popular options for seeking out game ROMs:

EmuParadise provides game ROMs for virtually every console ever made, from the Bandai Wonderswan to the Sony Playstation 2. You generally have to click through a few screens to find a download link—which is sometimes not a link but a URL to a MegaUpload page—but the process always results in a download. If you download directly from the site rather than use MegaUpload, note that you'll only be able to download one file at a time.

Usenet, or the service everyone knows about that nobody is supposed to mention, is a decent source for game ROMs. If you've already set it up, just search a binary index site like NZBMatrix or Newzbin for what you want. Some index sites have search filters that will let you look for ROMs by console, but note that a lot of older consoles (e.g. SNES) probably won't have specific games posted. This is because the ROMs are pretty tiny and you're more likely to find large game packs. If you can't find what you're looking for specifically, just search generically for game ROMs and you may be able to find nearly everything you're looking for in a single download.

BitTorrent pretty much offers the same ROM selection as Usenet. A tracker like Demonoid or even The Pirate Bay should turn up game packs easily.

Once you've got your ROMs, it's time to start gaming.

Set Up Your Emulator and Start Playing Your Games

You've got your emulators and you've got your ROMs, but now what? Playing a game is as simple as opening a ROM in its respective emulator, but there are a few things you should know before you jump in for the first time.

Configure the Keyboard

Most game emulators assume you're going to use your computer's keyboard since it's the input device you have by default. That said, it also decides which keys do what and you won't necessarily know what those keys are. While you could just load a ROM and mash the keyboard until you figure it all out, look through your emulator's settings to find your input options. In SNES9X, for example, the Config menu contains an option called Configure Keyboard. That'll let you drag the buttons on the SNES controller to specific keys on a graphical representation of your keyboard. This is a pretty standard configuration method for most emulators.

Understand Saved States and Freezes

When you played cartridge-based games as they were originally intended, they used to contain space for saved games. Emulators work a little differently, as they create the same saved game data in a separate file. For example, SNES ROMs are generally given the .smc file extension, whereas saved games receive the .srm file extension. This is particularly handy because you can exchange game save files with others. What's even better, though, is the ability to use frozen game states. A staple of any retro game emulator is the ability to press a button and create a game freeze at any point in the game. You'll be able to unfreeze this state whenever you want, making it possible to save even if the game doesn't allow it. While game save files will be created whenever the game needs to record your progress, freeze files require you to interact with the emulator. Before you start playing your first game, be sure to locate the freeze and defrost options in your emulator. They're generally prominently feature in a menu and easy to find. Learn the keyboard shortcuts as you'll want to use them frequently to save your game. While saving in-game is also a good idea, you can create many more frozen states on your own and they often tend to be easier to port around.

Power Up Your Personal Arcade

Even though you're up and running, there's still more you can do to make your emulation experience better. Here are a few ways to take your personal arcade to the next level.

Use a Real Game Controller

They keyboard is fine, and better for some, but if you're really going for the classic experience you're going to want to use an actual game controller. It is possible to find USB knock-offs of classic controllers, but generally you'll find higher-quality options by buying the ones designed for computer gaming. Once you've got your controller, you should be able to configure it in your emulator just like your keyboard if it uses standard game pad input methods. Some controllers will have specific drivers that let you assign buttons to key presses. If this is the case, you won't need to configure your controller in the emulator but rather with its own software. Just make sure you map the buttons to the same keys you have set up in your emulator.

Cheat!

While it isn't always the case, many emulators provide emulated cheat systems as well. If you liked playing your games with the aid of a Game Genie or Game Shark, you still can with many emulators. Generally you'll see a dedicate cheat menu and entry system if your emulator has this common feature, so the only real obstacle is finding working cheat codes. What's pretty great is that the same sites you used back when you played the games with dedicated cheat hardware actually still exist and are good resources. The problem is that if you didn't create the ROM from your original copy of the game you won't necessarily know which codes will work. This means a lot of trial and error, but if you cheated back in the day you likely have developed that type of patience. If you don't know where to find cheat codes, here are some popular sources:

BSFree Code Archive contains about every code for every system and every game. It's archived the work of the Game Genie and Game Shark Code Creators Clubs and more.

GameGenie.com contains all the old Game Genie codes plus cheats/tips/tricks that can be performed without a(n emulated) cheat device.

GameFAQs is not only a great resource for finding walkthroughs for a particular game but also a resource for codes. It isn't code-focused or nearly as comprehensive as the previously mentioned sites, but you can sometimes find some good code compilations here (particularly for older games)

GameShark.com still keeps their code archive online for systems of the past, but you'll mainly find codes for newer consoles like the PS2 and GameCube.

The Code Hut is hosted on Angelfire, so you know it's an old school web site that's been around for awhile. It has over a decade of archived codes for older systems.

Emulators for the older retro systems, like NES, SNES, Sega Genesis, Gameboy, etc., will vary in how they accept codes. Because there were two primary competing cheat devices in the world at the time—the Game Genie and Pro Action Replay—some emulators implemented the format of one and not the other. That's fine because the codes just need conversion, which you can accomplish with utilities like http://www.gamewinners.com/device/misc/bl... and GGHex (Windows-only). You just need to check your emulator's documentation so you know which format it takes. Some will even take both and you won't have to do a thing.

Hack Your ROMs

When you want to go beyond playing your games, you can take the next step and hack them. However, hacking a game ROM can take several forms. Changing game graphics, editing levels, altering music, or adjusting character stats are all very different processes. It's an advanced task, but the basics aren't as complicated as you might think. We're only going to scratch the surface in this post, but if you're interested there will be some guides you can check out at the end. So, if ROM hacking is something you want to do, you'll first need to decide what you want to accomplish.

Editing character stats, for example, is something pretty easily accomplished in a HEX editor. Let's use Super Mario RPG as an example. If you want Mario to start off with a large amount of HP, FP, strength, defense, etc., you'd first need to start a new game and figure out what his starting starts are. These starting stats will be hard-coded into the game. You'll then need to convert his stats to HEX values (e.g. the number 100 is represented as 64 in HEX, and 255 is represented as FF) and then use the HEX editor to search your ROM for occurances of these stats. Let's say Mario's starting HP and maximum HP were 30 and his starting FP and maximum FP were 4. In theory you'd be looking for a string that looks like 1E1E1414 because that translates to 30, 30, 4, 4 (in this case). Not all games place their statistics in a logical order and it can sometimes be a challenge to find what you're looking for, but with a little trial and error you can alter your games in interesting ways with a few, tiny modifications. If you want to play around with HEX editing you can use any HEX editor you want (for the most part), but XVI32 (Windows) HEX Fiend (Mac OS X) are popular free options.

If you're interested in hacking something like the graphic sprites used in a particular game, however, HEX editing is obviously an awful way to go about it. You'll need specialized software, like Tile Layer Pro, to make meaningful changes. Generally if you're editing complex data you're going to need more complex software, but plenty is available. If you want to learn all about hacking your game ROMs, whether it's more about HEX editing or messing with audio visual data, check out Romhacking.net's start guide as well as the Romhacking.net Data Crystal Wiki for more specifics. Retro gaming is fun, but having your own, personalized ROM can make the experience even more appealing.

You can follow Adam Dachis, the author of this post, on Twitter
, Google+
, and Facebook
. Twitter's the best way to contact him, too.