• Print

DGen/SDL 1.31


DGen/SDL is a free, open source emulator for Sega Genesis/Mega Drive systems. DGen was originally written by Dave, then ported to SDL by Joe Groff and Phil K. Hornung in 1998.

Unfortunately, the project was abandoned at least since 2005 and much of its history gone with its original home page.

In 2008, tamentis decided to try to relive DGen/SDL by registering this project on SourceForge and made the source code of the last official release (version 1.23) available through CVS. He also created DGen's logo.

In August 2011, suddenly remembering Streets of Rage, I struggled to find a Mega Drive (Genesis) emulator able to run it on my current setup (Linux/x86_64), as most of them either targeted Windows, were completely written in x86 assembly, or just didn't work for some reason.

Because DGen was my emulator of choice since 2002, I resolved to have a look at the code and make it 64‐bit‐safe myself (only one month later, I found out that some people on some forums already created patches for this purpose). After that and some additional bugfixing, I noticed that tamentis was looking for a new maintainer, so I offered my help along with a bunch of patches and got the position.

DGen isn't the best Mega Drive/Genesis emulator out there, but it works and it's probably the most portable. It's also perfect for command‐line freaks.


  • Game Genie/Hex codes support
  • PAL/NTSC, fullscreen modes
  • Joypad / joystick support
  • OpenGL textured video output
  • Portable (64‐bit, endian safe), runs in Windows using MinGW
  • Screenshots, demos recording and playback
  • Musashi and StarScream (x86‐only) CPU cores
  • CZ80 and MZ80 (generic and x86‐only versions)
  • 16‐bit, 8000 to 48000Hz sound output
  • Support for 8, 15, 16, 24 and 32 bpp modes
  • Archived/compressed ROMs support
  • M68K debugger (contributed by Edd Barrett)
  • hqx and scale2x scaling filters


It's been a while! Here's the changelog since v1.30.

  • Joystick axes can now be configured for controllers with more than two. They can also be reversed.
  • Implemented command "calibrate_js" to configure joystick buttons interactively.
  • Fixed a bug in the debugger prompt handler.
  • Implemented FM2612 debugging support.
  • Refactored SDL keyboard handling.
  • Removed Linux-specific joystick code which no one uses (not even in Linux, where the SDL version has always been preferred).
  • Implemented the ability to bind arbitrary commands to joystick buttons. This makes DGen fully controllable from a joystick/joypad.
  • Implemented proper sprite masking. This fixes annoying priority glitches in a number of games.
  • Fixed half-submitted commands support in the VDP. This finally fixes the mangled EA logo.
  • Some code refactoring and documentation.
  • Improved region settings. The single "region" variable can be used to switch interactively from one region settings to another (identifier, resolution, PAL/NTSC mode and frame rate).
  • Improved region auto detection with the ability to specify a preference order ("str_region_order" variable).
  • Fixed other miscellaneous bugs (NASM on non-x86 targets, uninitialized variables, other warnings and errors).






blog comments powered by Disqus