Sega - MS/GG/MD/CD (Genesis Plus GX)¶
Genesis Plus GX is an open-source Sega 8/16 bit emulator developed by Eke-Eke which focuses on accuracy and portability. The source code, originally based on Genesis Plus 1.3 by Charles MacDonald, has been heavily modified & enhanced, with respect to initial goals and design, in order to improve the accuracy of emulation, implementing new features and adding support for extra peripherals, cartridge & systems hardware such as various lightguns, the FM Sound Unit and Lock-On cartridge technology.
Genesis Plus GX has 100% compatibility with Genesis / Mega Drive, Sega/Mega CD, Master System, Game Gear, SG-1000 & Pico released software (including all unlicensed or pirate known dumps), also emulating backwards compatibility modes when available.
Keep in mind that 32X games are not supported.
The Genesis Plus GX core has been authored by:
- Eke-Eke
- Charles McDonald
The Genesis Plus GX core is licensed under:
A summary of the licenses behind RetroArch and its cores can be found here.
BIOS¶
Required or optional firmware files go in the frontend's system directory:
Please note that BIOS choice isn't locked to any specific revisions.
BIOS files that are labeled (bootrom) and (lock-on) must have their corresponding core option ('System bootrom' core option or 'Cartridge lock-on' core option) configured correctly in order for them to be loaded.
Filename Description md5sum bios_MD.bin MegaDrive startup ROM (bootrom) - Optional 45e298905a08f9cfb38fd504cd6dbc84 bios_CD_E.bin MegaCD EU BIOS - Required for MegaCD EU games e66fa1dc5820d254611fdcdba0662372 bios_CD_U.bin SegaCD US BIOS - Required for SegaCD US games 854b9150240a198070150e4566ae1290 bios_CD_J.bin MegaCD JP BIOS - Required for MegaCD JP games 278a9397d192149e84e820ac621a8edd bios_E.sms MasterSystem EU BIOS (bootrom) - Optional 840481177270d5642a14ca71ee72844c bios_U.sms MasterSystem US BIOS (bootrom) - Optional 840481177270d5642a14ca71ee72844c bios_J.sms MasterSystem JP BIOS (bootrom) - Optional 24a519c53f67b00640d0048ef7089105 bios.gg GameGear BIOS (bootrom) - Optional 672e104c3be3a238301aceffc3b23fd6 sk.bin Sonic & Knuckles ROM (lock-on) - Optional 4ea493ea4e9f6c9ebfccbdb15110367e sk2chip.bin [Sonic & Knuckles UPMEM ROM]: Link 1; Link 2 (lock-on) - Optional b4e76e416b887f4e7413ba76fa735f16 areplay.bin Action Replay ROM (lock-on) - Optional a0028b3043f9d59ceeb03da5b073b30d ggenie.bin Game Genie ROM (lock-on) - Optional e8af7fe115a75c849f6aab3701e7799bExtensions¶
Content that can be loaded by the Genesis Plus GX core have the following file extensions:
RetroArch database(s) that are associated with the Genesis Plus GX core:
- Sega - Game Gear
- Sega - Master System - Mark III
- Sega - Mega-CD - Sega CD
- Sega - Mega Drive - Genesis
- Sega - PICO
- Sega - SG-1000
Features¶
Frontend-level settings or features that the Genesis Plus GX core respects:
Feature Supported Restart ✔ Saves ✔ States ✔ Rewind ✔ Netplay ✔ Core Options ✔ Memory Monitoring (achievements) ✔ RetroArch Cheats ✔ Native Cheats ✕ Controls ✔ Remapping ✔ Multi-Mouse ✔ Rumble ✕ Sensors ✕ Camera ✕ Location ✕ Subsystem ✕ Softpatching ✕ Disk Control ✔ Username ✕ Language ✔ Crop Overscan* ✕ LEDs ✔* Overscan cropping available via the 'Borders' core option instead of frontend-level settings
Directories¶
The Genesis Plus GX core's library name is 'Genesis Plus GX'
The Genesis Plus GX core saves/loads to/from these directories:
Frontend's Save directory
File Description *.srm MS/GG/MD/Pico/SG-1000 Cartridge backup save cart.brm Sega/Mega CD RAM Cart scd_U.brm Sega CD US Backup RAM - When the CD System BRAM core option is set to 'Per-BIOS' scd_E.brm Mega CD EU Backup RAM - When the CD System BRAM core option is set to 'Per-BIOS' scd_J.brm Mega CD JP Backup RAM - When the CD System BRAM core option is set to 'Per-BIOS' *.brm Sega CD/MegaCD Backup RAM - When the CD System BRAM core option is set to 'Per-Game'Frontend's State directory
File Description *.state# StateGeometry and timing¶
- The Genesis Plus GX core's provided FPS is dependent on the loaded content
- The Genesis Plus GX core's provided sample rate is 44100 Hz
- The Genesis Plus GX core's base width is dependent on the loaded content
- The Genesis Plus GX core's base height is dependent on the loaded content
- The Genesis Plus GX core's max width is dependent on the loaded content
- The Genesis Plus GX core's max height is dependent on the loaded content
- The Genesis Plus GX core's provided aspect ratio is dependent on the 'Core-provided aspect ratio' core option
Loading Sega CD games¶
When loading Sega CD games, Genesis Plus GX needs a cue-sheet that points to an image file. A cue sheet, or cue file, is a metadata file which describes how the tracks of a CD or DVD are laid out.
If you have e.g. foo.bin , you should create a text file and save it as foo.cue . If the Sega CD game is single-track, the cue file contents should look like this:
FILE "foo.bin" BINARY TRACK 01 MODE1/2352 INDEX 01 00:00:00After that, you can load the foo.cue file in RetroArch with the Genesis Plus GX core.
Certain Sega CD games are multi-track, so their .cue files might be more complicated.
Here's a cue file example done with Lunar - Eternal Blue (USA)
For Sega-CD games, ISO + WAV, BIN + CUE and ISO + OGG formats are supported; ISO + MP3 is not supported. Audio files must be in the 16-bit stereo 44100Hz format. If using a cue sheet, WAV or OGG tracks should be denoted as AUDIO.
When loading ISO + WAV or ISO + OGG format games, the core will attempt to load a cue named the same as the iso first. If one is not found, the following audio track naming formats are accepted for a data track of "game.iso":
- game02.ogg
- game 02.ogg
- game-02.ogg
- game - 02.ogg
- game_02.ogg
If foo is a multiple-disk Sega CD game, you should have .cue files for each one, e.g. foo (Disc 1).cue , foo (Disc 2).cue , foo (Disc 3).cue .
To take advantage of Genesis Plus GX's Disk Control feature for disk swapping, an index file (a m3u file) should be made.
Create a text file and save it as foo.m3u . Then enter your game's .cue files on it. The m3u file contents should look something like this:
foo (Disc 1).cue foo (Disc 2).cue foo (Disc 3).cueAfter that, you can load the foo.m3u file in RetroArch with the Genesis Plus GX core.
Here's a m3u example done with the Sega CD 32x version of Night Trap
Adding multi-track games to a RetroArch playlist is recommended. (Manually add an entry a playlist that points to foo.m3u )
Swapping Disks¶Disks can be swapped through Quick Menu -> Disk Control in RetroArch.
If not using .m3u files, .cue files must be manually selected via the Load New Disk legacy feature.
If using .m3u files, disks can be swapped by selecting Eject Disk, changing the Current Disk Index to your desired disk, and finally selecting Insert Disk.
CHD¶Alternatively to using cue sheets with .bin/.iso files, you can convert your Sega CD games to .chd (MAME Compressed Hunks of Data) to reduce file sizes and neaten up your game folder.
To convert content to CHD format, use the chdman tool found inside the latest MAME distribution and point it to a .cue file, like so:
chdman createcd --input foo.cue --output foo.chdFor multi-disc content, make an .m3u file that lists all the .chd files instead of .cue files (content must be added to playlists manually).
Playing with MD+ / MSU-MD modes¶
Comparable to how MSU-1 modifcations can enhance SNES games; Mega Drive Plus / Genesis Plus (MD+) and MSU-MD (Mega SD flash cartridge) patches can be used to add CD quality level of audio to certain Sega Genesis and Mega Drive games via the emulated Sega CD hardware and its CDDA track functionality.
Regarding Genesis Plus GX's implementation of MD+ mode operation, all CD overlay commands (incl. cue loop commands) described in MegaSD dev manual (see referenced PDF at the end of this section) are supported except the ones that deal with opening/reading files from SD card (starting from command 1Ch) but afaik no MD+ hacks use these commands so far.
Since there is no way to auto-detect a MD+ patched ROM, MegaSD add-on emulation needs to be enabled in core options (through the newly added "CD add-on" core option). However, when "CD add-on" core option is set to Auto, if a cue file with same basename as loaded ROM file is found in same directory AND that cue file contains MegaSD specific keywords ("REM LOOP xxx", "REM NOLOOP". ), MegaSD CD overlay emulation will be automatically enabled (instead of full Sega/Mega CD hardware emulation).
And by setting the "CD add-on" option to "None", Sega/Mega CD hardware emulation will be forced disabled, even if a cue file is found in loaded game directory or when the loaded game is known to have Sega/Mega CD support (like Pier Solar, Flux or Wonder Library). This emulates the behavior where there is no Sega/Mega CD unit attached.
Although no known games are using them, MegaSD extended SSF2 mapper and limited ROM write mapper (automatically enabled when respectively "SEGA SSF2" and "SEGA MEGASD" are found in loaded ROM header) are also emulated, according to the description in MegaSD dev manual. Note that MegaSD overlay will also automatically be enabled when these mappers are detected, no matter of the "CD Add-on" core option.
Please peruse the official MegaSD manual for further information: https://downloads.terraonion.com/public/MegaSD_DEV_Manual.pdf
Also, there's an useful reference wiki here for MSU-MD games/patches and its technical specifications here: https://arcadetv.github.io/msu-md-patches/
Make sure that your files match what's specified in your MD+/MSU-MD cue file!
Core options¶
The Genesis Plus GX core has the following options that can be tweaked from your frontend's core options menu or manually changed via core configuration files. Options are listed below in the following format:
Option Name [option_key]
To manually change an option, search for that option's key in the core configuration file you want to edit and set it to your desired setting value, enclosed in quotations. For example, if you had set the CD-DA Volume to 50% and wanted to revert it to 100%, you would change genesis_plus_gx_cdda_volume = "50" to genesis_plus_gx_cdda_volume = "100". Manually editing core configuration files is typically unnecessary unless your frontend does not have a method for toggling options.
The default setting for each option will be highlighted in bold. Settings with (Restart) means that core has to be shut down for the new setting to be applied on next launch.
System¶Configure base hardware selection / region / BIOS / Sega CD save file parameters.
System hardware [genesis_plus_gx_system_hw]
Runs loaded content with a specific emulated console.
- Auto [auto] Loads the game with the most appropriate system based on the loaded game's ROM information like its ROM type, product code/version, checksum, size and region code.
- SG-1000 [sg-1000 II] - Loads game with the SG-1000 console.
- SG-1000 II + RAM Ext. [sg-1000 II + ram ext.] - Loads game with the SG-1000 II console with a RAM extension adapter.
- Mark III [mark-III] - Loads game with the Mark III console
- Master System [master system] - Loads game with the Master System console
- Master System II [master system II] - Loads game with the Master System II console
- Game Gear [game gear] - Loads game with the Game Gear handheld console
- Mega Drive/Genesis [mega drive / genesis] - Loads game with the Mega Drive/Genesis console
System region [genesis_plus_gx_region_detect]
Specify which region the system is from. For consoles other than the Game Gear, PAL is 50hz while NTSC is 60hz. Games may run faster or slower than normal if the incorrect region is selected.
- Auto [auto] - Changes the system's region to whatever is most appropriate for the game which is based on the loaded game's ROM information like its ROM type, product code/version, checksum, size and region code.
- NTSC-U [ntsc-u] - Changes the system's region to NTSC-U.
- PAL [pal] - Changes the system's region to PAL.
- NTSC-J [ntsc-j] - Changes the system's region to NTSC-J.
System Boot ROM [genesis_plus_gx_bios] (disabled/enabled)
Use official BIOS/bootloader for emulated hardware, if present in RetroArch's system directory. Displays console-specific start-up sequence/animation, then runs loaded content. Look above at the BIOS section for supported BIOS types/files.
- Off [disabled] - Disables using the user supplied System Boot ROM.
- On [enabled] - Enables using the user supplied System Boot ROM.
CD System BRAM [genesis_plus_gx_system_bram]
When running Sega CD content, specifies whether to share a single save file between all games from a specific region (Per-BIOS) or to create a separate save file for each game (Per-Game). Note that the Sega CD has limited internal storage, sufficient only for a handful of titles. To avoid running out of space, the 'Per-Game' setting is recommended.
- Per-BIOS [per bios] - All games from a specific region share a single save file.
- Per-Game [per game] - Creates a separate save file for each game.
CD Backup Cart BRAM [genesis_plus_gx_cart_bram]
When running Sega CD content, specifies whether to share a single backup ram cart for all games (Per-Cart) or to create a separate backup ram cart for each game (Per-Game).
- Per-Cart [per cart] - All games share a single backup RAM cart.
- Per-Game [per game] - Creates a seperate backrup RAM cart for each game.
CD add-on (MD mode) (Requires Restart) [genesis_plus_gx_add_on]
Specify which add-on to use for CD audio playback with supported Mega Drive/Genesis games.
- Auto [auto] - Loads a CD game with the most appropriate CD add-on based on the loaded game's ROM information like its ROM type, product code/version, checksum, size and region code. (when "CD add-on" core option is set to Auto, if a cute file with same basename as loaded ROM file is found in same directory AND that cue file contains MegaSD specific keywords ("REM LOOP xxx", "REM NOLOOP". ), MegaSD CD overlay emulation will be automatically enabled (instead of full Sega/Mega CD hardware emulation))
- Sega/Mega CD [sega/mega cd] - Loads the game using the Sega/Mega CD add-on. (this can be useful for demos or homebrew games that want to use Mega CD extra hardware without necessarily having a loaded CD beforehand since it forces Sega/Mega CD hardware emulation when any MD game (