Old Schoold by Harri Kauhanen

Sega Mega Drive (Genesis) [RetroPie series]

An image for Sega Mega Drive (Genesis) [RetroPie series]

Evan-Amos via Wikipedia

Here are my Sega Mega Drive specific notes of my RetroPie system. Mega Drive (Genesis at the US) emulator runs on RetroArch, so you may want to check out common RetroArch stuff I posted separately.

Games

Controllers

Using Sega Mega Drive controller via Bliss-Box 4-Play

The configuration at /opt/retropie/configs/megadrive/retroarch.cfg:

# Settings made here will only override settings in the global retroarch.cfg
# if placed above the #include line

input_remapping_directory = "/opt/retropie/configs/megadrive/"

input_joypad_driver = "linuxraw"
input_player1_joypad_index = 0
input_player2_joypad_index = 1

# Player 1: Mega Drive Controller on Bliss-Box 4-Play port 1

input_player1_y_btn = 1 # A
input_player1_b_btn = 2 # B
input_player1_a_btn = 10 # C
input_player1_l_btn = 3 # X
input_player1_x_btn = 4 # Y
input_player1_r_btn = 9 # Z
input_player1_start_btn = 6 # Start
input_player1_select_btn = 5 # Mode
input_player1_up_axis = -1 # D-Pad up
input_player1_down_axis = +1 # D-Pad down
input_player1_left_axis = -0 # D-Pad left
input_player1_right_axis = +0 # D-Pad right

# Player 2: Mega Drive Controller on Bliss-Box 4-Play port 2

input_player2_y_btn = 1 # A
input_player2_b_btn = 2 # B
input_player2_a_btn = 10 # C
input_player2_l_btn = 3 # X
input_player2_x_btn = 4 # Y
input_player2_r_btn = 9 # Z
input_player2_start_btn = 6 # Start
input_player2_select_btn = 5 # Mode
input_player2_up_axis = -1 # D-Pad up
input_player2_down_axis = +1 # D-Pad down
input_player2_left_axis = -0 # D-Pad left
input_player2_right_axis = +0 # D-Pad right

# Hot keys etc.

input_enable_hotkey_btn = 5
input_exit_emulator_btn = 6

#include "/opt/retropie/configs/all/retroarch.cfg"

For games supporting 6-buttons (e.g. Mortal Kombat) I add a game-specific configuration. The configuration e.g. at /home/pi/RetroPie/roms/megadrive/Mortal Kombat 2.md.cfg:

input_libretro_device_p1 = "513" # Will be recognized as 6-button Mega Drive pad
input_libretro_device_p2 = "513"

For games supporting 4 players (e.g. NHL ‘94) I use PlayStation controllers for players 3 and 4 and a game-specific configuration is again needed. The configuration e.g. at /home/pi/RetroPie/roms/megadrive/NHL '94.md.cfg:

# NOTE! This config seems not to work yet correctly

input_player3_joypad_index = 2
input_player4_joypad_index = 3
input_libretro_device_p2 = "1025" # This SHOULD make it 'EA 4 way play',
                                  # but causes "direction up stuck"

# Player 3: SNES Controller on Bliss-Box 4-Play port 3

input_player3_a_btn = 4
input_player3_b_btn = 2
input_player3_x_btn = 3
input_player3_y_btn = 1
input_player3_l_btn = 7
input_player3_r_btn = 8
input_player3_select_btn = 5
input_player3_start_btn = 6
input_player3_up_axis = -1
input_player3_down_axis = +1
input_player3_left_axis = -0
input_player3_right_axis = +0

# Player 4: SNES Controller on Bliss-Box 4-Play port 4

input_player4_a_btn = 4
input_player4_b_btn = 2
input_player4_x_btn = 3
input_player4_y_btn = 1
input_player4_l_btn = 7
input_player4_r_btn = 8
input_player4_select_btn = 5
input_player4_start_btn = 6
input_player4_up_axis = -1
input_player4_down_axis = +1
input_player4_left_axis = -0
input_player4_right_axis = +0

Using Mega Drive controllers via Retro-Bit adapter

I have the pair of 6-button Megadrive controllers connected to Pi.

Sega Mega Drive Controller

Evan-Amos via Wikipedia

For games supporting more than two simultaneous players, Playstation 3 controllers could be used as controller 3 and 4 (unfortunately four controllers support does not yet work in my system).

 PS3 Controller

Evan-Amos via Wikipedia

PS3Mega Drive
A
XB
OC
L1X
Y
R1Z
STARTSTART
SELECTMODE
D-PADD-PAD

The support for six button controller needs some work:

  • Hints from Libretro PicoDrive guide
  • Testing e.g. with jstest /dev/input/js0
  • sudo nano /opt/retropie/configs/all/retroarch-core-options.cfg

picodrive_input1 = “6 button pad” # from “3 button pad” picodrive_input2 = “6 button pad”

  • Test with 6-button game, such as Mortal Combat II

Support for four controllers does not yet work for me. It should be possible, though.

# In theory this should support 4 controllers, but does not currently
# work (might require lr-genesis-plus-gx) and might confuse "normal" games.
#

input_libretro_device_p2 = "1025" # Support 4 controllers...

The configuration at `/opt/retropie/configs/megadrive/retroarch.cfg`:

input_player1_joypad_index = 1 # RetroBitGenesisUSB-controller 1
input_player2_joypad_index = 1 # RetroBitGenesisUSB-controller 2
input_player3_joypad_index = 2 # PS3-controller 1
input_player4_joypad_index = 3 # PS3-controller 2

#
# RetroBitGenesisUSB
# ==================
#
# Joypad 1
# --------
#
# X = 3 Y = 4 Z = 5
# A = 0 B = 1 C = 2
#
# START = 6
# MODE = 7
#
#
# U = -1
# L = -0 R = +0
# D = +1
#
#
# Joypad 2
# --------
#
# X = 11 Y = 12 Z = 13
# A = 8 B = 9 C = 10
#
# START = 14
# MODE = 15
#
#
# U = -3
# L = -2 R = +2
# D = +3
#

# Player 1: RetroBitGenesisUSB-controller 1

input_player1_y_btn = 0 # A
input_player1_b_btn = 1 # B
input_player1_a_btn = 2 # C
input_player1_l_btn = 3 # X
input_player1_x_btn = 4 # Y
input_player1_r_btn = 5 # Z
input_player1_start_btn = 6
input_player1_select_btn = 7 # MODE
input_player1_left_axis = -0
input_player1_right_axis = +0
input_player1_up_axis = -1
input_player1_down_axis = +1

# Player 2: RetroBitGenesisUSB-controller 2

input_player2_y_btn = 8 # A
input_player2_b_btn = 9 # B
input_player2_a_btn = 10 # C
input_player2_l_btn = 11 # X
input_player2_x_btn = 12 # Y
input_player2_r_btn = 13 # Z
input_player2_start_btn = 14
input_player2_select_btn = 15 # MODE
input_player2_left_axis = -2
input_player2_right_axis = +2
input_player2_up_axis = -3
input_player2_down_axis = +3

# Player 3: PS3-controller 1

input_player3_y_btn = 15 # A
input_player3_b_btn = 14 # B
input_player3_a_btn = 13 # C
input_player3_l_btn = 10 # X
input_player3_x_btn = 1 # Y
input_player3_r_btn = 11 # Z
input_player3_start_btn = 3
input_player3_select_btn = 0 # MODE
input_player3_up_btn = 4
input_player3_down_btn = 6
input_player3_left_btn = 7
input_player3_right_btn = 5

# Player 4: PS3-controller 2

input_player4_y_btn = 15 # A
input_player4_b_btn = 14 # B
input_player4_a_btn = 13 # C
input_player4_l_btn = 10 # X
input_player4_x_btn = 1 # Y
input_player4_r_btn = 11 # Z
input_player4_start_btn = 3
input_player4_select_btn = 0 # MODE
input_player4_up_btn = 4
input_player4_down_btn = 6
input_player4_left_btn = 7
input_player4_right_btn = 5

# Hotkeys
#

#input_enable_hotkey_btn = 7
#input_exit_emulator_btn = 6
#input_save_state_btn = 5