JohnnyGil's Emulation Page
What's emulation | Genesis emulation | SNES emulation | Links

What's emulation?

Emulation consists in allowing a machine (e.g. a PC) to run a program that was not designed for it. Namely, it is expecting different general / video / audio chipsets, different clock speeds, different I/O systems and protocols, in general, different hardware. You do this with an emulator, that executes the program in a virtual machine, behaving as much as possible as the real thing. It has to have a virtual processor, compatible with the necessary instruction and register sets, several other virtual chipsets, to support things like sound and video, and all the thingies that join them together and make them work. This virtual machine's output is then converted to the required form so that it can do something on the PC.
The problem is all this usually has to be done by the PC's CPU, so emulating reasonably advanced machines can be extremely processor-intensive. For instance, in a ZX Spectrum emulator, a modest computer, with only one major processing component, the Zilog Z80A CPU, the PC actually has to be delayed to get an accurate emulation speed. If you try to emulate a Sega Genesis* or SNES, the emulator usually wants as much processing power as possible (the Genesis uses the Z80A too, but only as a sound processor; there are several other chips that need to be emulated). Emulating a Sega Saturn or a Sony Playstation is, I believe, impossible for now, due to the huge complexity of these machines, although a couple of Playstation emulators are being developed. Don't dream of a N64 emulator, either.

* The Sega Genesis is called Sega Megadrive in some countries (like mine)


Sega Genesis emulation

The Sega Genesis has several important chips in it, in order to process sound, video and any generic instructions it needs to execute. I'm not an expert in its structure, but I've come to learn that all its I/O systems are highly game-oriented (as you would expect from a games console). It has hardware support for multiple plains, sprite management and a few video special FX. It has digital audio (managed by the Z80) and FM synthesized audio (the YM2612 handles this), and its generic instruction processor is a Motorola 68000. Despite this complexity, fast, reliable emulation is possible, as is proved by the current choice of emulators:

Steve Snake's KGen

I'm impressed with this emulator. It is fast as hell, apparently 100% written in Assembler (ASM rules!). The sound emulation (DAC+FM) is just about perfect, with the FM part being far superior to Genecyst's, because it is software-emulated, instead of being Yamaha OPL based. It is still in a beta stage and doesn't have all the bits and bolts that Genecyst uses to attract its users, but I already prefer KGen to Genecyst. KGen has been working fine with the games I've tried it with. With the latest version, even DragonBall Z is working properly. KGen is just about the only emulator I use... A MMX optimized version is planned after all the major features are implemented (goody!).

Bloodlust Software's Genecyst

This Genesis emulator still beats KGen in its GUI, although KGen is getting better. It emulates all the major Genesis features and its FM audio is emulated through a PC's OPL chip, which doesn't allow a perfect replica of the original FM sound and leads to a certain FM / DAC lack of synchronization. It is fast, but not as fast as KGen, but its compatibility list still is larger than KGen's (I think). It's been around for a while, unlike KGen, and its development is in its final stage, I believe.

My advice

Thankfully, both KGen and Genecyst are free, so my advice is: get both. They're not that big, in terms of disk space :) . Afterwards, use KGen for most games and when you find one that doesn't work, use Genecyst (and suffer while hearing OPL music). It's that simple. It's not like we're talking about a huge financial investment...


Super Nintendo Entertainment System emulation

The SNES games console is technically superior to Sega Genesis, but showed up some time later, so Genesis had time to gather a large number of faithful supporters and an impressive range of games. The technical complexity of this machine makes it quite difficult to emulate. Its main processor is the Motorola 65816 and it doesn't use FM synthesis like Genesis. All the audio is DSP managed, instead. It has several DMA channels, a relatively endless palette of graphic modes and options and many visual special effects concerning transparencies between image plains and some other good-looking stuff. Most of these video FX aren't yet emulated, which can be quite annoying when games expect them to (the only option is to shut down individual plains, so that we can see as clearly as possible: try Zelda to see what I mean). I use two emulators, both of which have sound emulation (this may sound weird, but I'd rather have sound than full speed):

SNES9x

The best emulator currently available. Its sound emulation is quite good, it's fast (especially with sound turned off) and accurate and it has been ported to several platforms, including DOS, Windows 95 and Linux. Several visual tricks are emulated (no transparencies yet, though...) and it has a large range of options to suit almost any game. The emulation code in the DOS and Linux version is written in Assembler and these are the ports I recommend.

ESNES

This emulator is now being rewritten to include an Assembler emulation core, which doesn't support everything the C written routines do. Its sound support is about as good as SNES9x's and it is reasonably fast (the Assembler emulation is faster, but buggy, for now). It's approaching its competitor's quality, but it still lacks a few features, like window support and screen addition / subtraction. And, of course, all those hi-tech visuals like transparencies (I just love transparencies...).

My advice

Again, both emulators are free, so it doesn't hurt to have both. Yet SNES9x is clearly superior and this is the emulator I use almost every time. I'm watching closely as ESNES evolves, though. That Assembler code sure is fast... when the sprites aren't scrambled.


Links

Here's a few emulation links I've collected over time:
 
The Dump 250.000 hits can't be wrong. A large collection of ROMs (over 250, just for Genesis), direct downloading of emulators and some other useful sections make this the ultimate ROM site for Genesis and TG-16.
Site of the North Star This site introduced me to the world of emulation. It covers all the major emulated machines, with a guide to emulators and ROM sites. A great place to get started.
Dave's Video Game Classics This page covers any emulated console or computer I can think of (and some I've never even heard about...). Get the emulators and get ROMs to play with.
Lazarus A great Amiga emulation site. Lots of disk images and neatly organized resources.
Henrik Lindgren's emulator-page A good emulation page, covering several emulated machines (well, just about every emulated games console). It will have ROMs soon (then again, what is soon?).
Snake's Pit: KGEN From this page you can download the most recent version of the great KGEN Sega Genesis emulator. It has recently been off-line, so I can't guarantee anything.
Snes9X: Beyond Limits This is the homepage for the excellent Snes9X emulator. You can download the most recent releases of all the Snes9X ports (and there are lots of them).
ESNES Get the ESNES emulator here.

 
Liszt's 2nd. Hungarian Rhapsody
Home