About AGES


| Home | About | Download | Forum | Contributing | Compatiblity | AGES FAQ | Links | Contact |

About AGES:

AGES is a Genesis/Sega CD/32X/SMS/Game Gear emulator for Windows written by Quinntesson. The features are listed below. The features written in beige are totally unique to AGES. No other emulator has them.

Internals:

AGES is a Windows based emulator due to my (lack of) enthusiasm for DOS protected mode programming. The Windows part of AGES is written in C++ and amounts to very little of the actual code. The majority of AGES is written in assembly. This allows the necessary degree of program flow control, which C++ simply can not provide.

AGES is programmed with the design goal of optimum speed in mind. Portabilty, and/or educational value to others are not even considerations, thus, source code isn't and won't soon be public. This means that trade-offs between speedier solo Genesis emulation and speedier full Genesis/Sega CD/32X emulation have favored the full Genesis/Sega CD/32X. It also, more generally, means that trade-offs between speed and memory usage have favored speed. Trade-offs between execuatble size and start-up time have favored executable size. Trade-offs between accuracy of emulation and speed have favored accuracy.

Purpose:

AGES is a learning project. I chose to emulate the Genesis, Sega CD, and 32X because it was collectively unemulated and it is simple in some ways and yet, complex in others. The Genesis/Sega CD/32X combo has elements from older "low-level-complex" and modern "high-level-complex" hardware design styles. Having memory mapped IO, multiple processors (with various data bus sizes and speeds) some CISC and others RISC, and several custom chips, the system is quite a challenge. My endeavour has already resulted in greatly expanding my knowledge of several areas such as various assembly languages, protected mode programming, Windows programming, and Pentium & Pentium Pro & MMX optimizations. Furthermore, I have migrated to NASM, the best available assembler for the Intel x86 family.

AGES is for preservation. An emulator is a far more tidy package than an old dusty (and probably non-functioning) video game console with a mess of wires (some of which are probably missing) and a box of cartridges.

Many thanks:

AGES could not have existed without the help of numerous individuals; some total strangers, others members of my family. I would like to thank all of those individuals who have aided me, whether by inspiration, publication of required technical documents or sample source code, direct outright programming help, or served as a colleague available to discuss advanced emulator theory with me and co-develop new ideas and algorithms.

| Home | About | Download | Forum | Contributing | Compatiblity | AGES FAQ | Links | Contact |