Overview
If you have a Sega Genesis Mini 3-Button controller and want to use with Sonic Mania, it will not work by default. This guide will help with that.
The Fix
0. Close Steam, and ensure it’s closed by going to Task Manager and looking if steam.exe or related executables are still running.
1. Go to Steamconfig and open config.vdf in a text editor (preferably Notepad++ on Windows)
2. Find “SDL_GamepadBind”; after that string, you’ll likely see a series of lines comprised of a set of long numbers followed by a controller name and button mappings.
3. Paste the following as an entry in this list (or if no entries already exist, add it alone with quotation marks on both ends):
03000000a30c00002500000000000000,Genesis 3 Button Controller,a:b2,y:b5,b:b1,start:b9,leftx:a0,lefty:a4,
Here’s an example of how my config file looks:
“SDL_GamepadBind” “03000000790000001100000000000000,dev:xb1:USB Gamepad ,platform:Windows,a:b1,b:b2,y:b3,x:,start:b9,back:b8,leftshoulder:b4,rightshoulder:b5,dpup:,dpleft:,dpdown:a4,dpright:a3,
03000000100800000100000000000000,PS1 Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a3,righty:a2,start:b9,x:b3,y:b0,
030000000d0f0000c100000000000000,Horipad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,
030000005e0400008e02000000007801,XInput Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,
03000000790000004318000000000000,Nintendo GameCube Controller,a:b1,b:b2,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:a4,rightx:a5,righty:a2,start:b9,x:b0,y:b3,hint:SDL_GAMECONTROLLER_USE_BUTTON_LABELS:=1,
03000000a30c00002500000000000000,Genesis 3 Button Controller,a:b2,y:b5,b:b1,start:b9,leftx:a0,lefty:a4,”
5. Set config.vdf to read only.
6. Relaunch Steam, and launch Sonic Mania to test it out.
7. Close Steam again.
8. Set config.vdf to be writable again. (This is so you can add more controllers later and change things within the Steam Controller Configurator)
The Buttons
a:b2,y:b5,b:b1,start:b9,leftx:a0,lefty:a4,
Xbox A = Genesis A
Xbox B = Genesis B
Xbox Y = Genesis C
This config leaves out the X button, which is only used in menus. In order to do things in the menus that normally require the X button, like deleting saves, press one of the arrow keys on your keyboard and the button prompts will change to show your keyboard bindings for the same actions.
Notes
This adds your Sega Genesis Mini 3-Button controller to be available in all Steam games. However, you’ll probably have to change the buttons for certain games. Here’s a list of what Genesis buttons correspond to which Xbox buttons:
Genesis – Steam button number (these don’t correspond to HID button numbers you see in Windows USB controller setup)
Start – b9
A – b2
B – b1
C – b5
Troubleshooting:
You may need to enter Big Picture Mode initially for this to work. I didn’t need to do this (and can’t remember ever using Big Picture Mode on my current install of Windows), but user Captain Hammer left a comment saying he did.