Generator is a dynamic-recompiling(-ish) emulator for the Sega Genesis video game system written primarily by James Ponder. Originally targeted at Windows, Christien Bierre created a Linux port of the emulator, which provides frontends for SDL and Gtk (and apparently svgalib, allegro, and tcltk as well), and supports all the usual features you’d expect: sound, joystick support, fullscreen with XVideo, etc. In my case, I use it as part of my MythTV project, and it works great.

However, the code is old. The main Generator codebase was updated in 2004 and hasn’t been publically updated since (as far as I can tell, anyway). So, while it works extremely well, there is certainly room for some improvement. Thus, I’ve taken the opportunity to hack in some things which I personally find useful, particularly when using Generator as part of an HTPC environment. Hopefully they can be useful to others, as well.

Patches

All my changes are currently being distributed as patches against the original Linux source code provided on Christien’s website. Note, unless otherwise stated, you should assume these changes only work when using the SDL interface.

  • generator_genie.pat - Support for the Game Genie ROM. This patch adds the ‘-g ' flag, which causes the Game Genie ROM to be loaded before the actual game ROM. Any codes entered will then be applied to the actual game ROM after the Start button is pressed.

  • generator_joyfix.pat - Minor patch which fixes a bug in Generator SDL where, if only one joystick is present, the joystick subsystem isn’t initialized.

TODO

  1. Implement keymap file, to allow easy remapping of joystick buttons and keyboard keys.
  2. Implement a simple in-game menuing interface (ala MAME), and make it useful with a remote control.
  3. Add 6-button controller support.