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.
General
- Player 1 and player 2
- 3 button and 6 button controllers (with 6-button timeout)
- Sega mouse
- Sega Teamplayer Multitap
- Electronic Arts 4 Way Play
- Sega Menacer
- Konami Justifier
- Raster effects (palette changes *and* VDP configuration changes)
- BIN/GEN, SMD, MD, 32X, ISO, RAW/BIN, and CUE filetypes
- ZIP support for BIN/GEN, SMD, 32X, ISO, RAW/BIN, and CUE filetypes
- RAR support for BIN/GEN, SMD, 32X, ISO, RAW/BIN, and CUE filetypes
- Menus, dialog boxes, and error messages are fully translatable into other
languages
- IPS patch loading
- GoodGen.DLL, Good32X.DLL, GoodSMS.DLL, and GoodGG.DLL support
- Genesis Collective Offline Database support
- Save State files (including Sega CD)
- Wave dumping
- Demo file record and playback
- Command line support
- Full drag and drop support
- Serial EEPROM support
- Game Genie and .PAT file support
- Game specific INI for tweaking
- Automatic IPS patch file load (per-game basis)
- Network play via KailleraClient.DLL
- Fast-Forward button (sticky and press-and-hold methods available)
Genesis
- M68000 and Z80 (custom)
- Genesis YM2612+DAC sound (sans LFO, RS, DT, SSGEG, FB, stereo control) (custom)
- Genesis PSG sound (custom)
- Genesis VDP Shadow and Highlight effects
- Genesis VDP Sprite Masking, Sprite Collision, and Sprite Limiting
- Genesis VDP Interlace mode (sans window plane) with (both hi-res and alternating-lines methods available)
- Genecyst saved state loading
- Genesis/32X Battery RAM saving and loading
Sega CD
- M68000 (custom)
- Most CDD and CDC functions
- Direct CD-ROM support for Sega CD via ASPI
- Sega CD music track playback (hardware and software methods available)
- Sega CD PCM sound
- Sega CD Rotate/Scale graphics "layer"
- Sega CD internal backup RAM
- Sega CD RAM cartridges
- Disc swapping support (partial)
32X
- Master and Slave SH2s (custom)
- most SH2 peripherals
- All three 32X graphics modes
- 32X/Genesis layering (except mode 3)
- Dual frame buffer support
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 |