Actions

Difference between revisions of "AGES"

From Sonic Retro

m (Text replace - 'Sega CD' to 'Mega CD')
Line 19: Line 19:
 
* GoodGen.DLL, Good32X.DLL, GoodSMS.DLL, and GoodGG.DLL support
 
* GoodGen.DLL, Good32X.DLL, GoodSMS.DLL, and GoodGG.DLL support
 
* Genesis Collective Offline Database support
 
* Genesis Collective Offline Database support
* Save State files (including Sega CD)
+
* Save State files (including Mega CD)
 
* Wave dumping
 
* Wave dumping
 
* Demo file record and playback
 
* Demo file record and playback
Line 41: Line 41:
 
* Genesis/32X Battery RAM saving and loading
 
* Genesis/32X Battery RAM saving and loading
  
===Sega CD===
+
===Mega CD===
 
* M68000 (custom)
 
* M68000 (custom)
 
* Most CDD and CDC functions
 
* Most CDD and CDC functions
* Direct CD-ROM support for Sega CD via ASPI
+
* Direct CD-ROM support for Mega CD via ASPI
* Sega CD music track playback (hardware and software methods available)
+
* Mega CD music track playback (hardware and software methods available)
* Sega CD PCM sound
+
* Mega CD PCM sound
* Sega CD Rotate/Scale graphics "layer"
+
* Mega CD Rotate/Scale graphics "layer"
* Sega CD internal backup RAM
+
* Mega CD internal backup RAM
* Sega CD RAM cartridges
+
* Mega CD RAM cartridges
 
* Disc swapping support (partial)
 
* Disc swapping support (partial)
  
Line 62: Line 62:
 
AGES is a Windows based emulator due to Quinntesson's 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 a Windows based emulator due to Quinntesson's 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 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.
+
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 be public. This means that trade-offs between speedier solo Genesis emulation and speedier full Genesis/Mega CD/32X emulation have favored the full Genesis/Mega 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==
 
==Purpose==
AGES is a learning project. Quinntesson 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. Quinntesson's 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, Quinntesson has migrated to NASM, the best available assembler for the Intel x86 family.
+
AGES is a learning project. Quinntesson chose to emulate the Genesis, Mega CD, and 32X because it was collectively unemulated and it is simple in some ways and yet, complex in others. The Genesis/Mega 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. Quinntesson's 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, Quinntesson has 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.
 
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.

Revision as of 02:23, 30 July 2009

AGES is a Sega Mega Drive/Genesis, Sega Mega CD, 32X, Master System and Game Gear emulator for Windows written by Quinntesson.

Features

General

  • Player 1 and player 2
  • 3 button and 6 button controllers (with 6-button timeout)
  • Sega Mega 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 Mega 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

Mega CD

  • M68000 (custom)
  • Most CDD and CDC functions
  • Direct CD-ROM support for Mega CD via ASPI
  • Mega CD music track playback (hardware and software methods available)
  • Mega CD PCM sound
  • Mega CD Rotate/Scale graphics "layer"
  • Mega CD internal backup RAM
  • Mega 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 Quinntesson's 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 be public. This means that trade-offs between speedier solo Genesis emulation and speedier full Genesis/Mega CD/32X emulation have favored the full Genesis/Mega 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. Quinntesson chose to emulate the Genesis, Mega CD, and 32X because it was collectively unemulated and it is simple in some ways and yet, complex in others. The Genesis/Mega 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. Quinntesson's 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, Quinntesson has 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.

Download

Download.svg Download AGES
File: Ages030a.7z (175 kB) (info)
Current version: 0.30a (2002/11/18)