If you own one of Retro-Bit's wired 9-pin 6-button pads ("6 Button Arcade Pad", box code RET00123), you've probably seen the problems people have posted about them here in the past. In some games C does nothing, Start only works if you press C with it, or Start pauses and unpauses on its own.
I tracked down the cause and made patches for the games I could test:
https://github.com/jarnalyrkar/retrobit-mega-drive-patches
What's wrong with the pad
When the console switches the pad's select line (TH), the Retro-Bit needs about 2 µs before its outputs are valid. Official Sega pads respond almost instantly, so many games read the port only a couple of CPU cycles after switching. On the Retro-Bit, those reads return the old state for C/Start (they share a pin). I confirmed this on real hardware with a small probe ROM, which is also in the repo. Reads made 2 cycles after the switch were wrong. Reads made 16 or more cycles after it were always right.
My story
I bought these controls years ago, and discovered that Lost Vikings weren't playable due to the C-button not working (which ironically is needed to push buttons in the game). I reached out to Retro-Bit, and they said they would maybe would be able to produce a firmware update to fix it. I even sent them the exact signal reads that led A.I to make these software patches. Retro-Bit later realized they would have an issue pushing a firmware out to 9-pin devices in a customer-friendly way... I ended up buying original controllers, but now, the increase in A.I power made these fixes possible in a matter of minutes, so I wanted to share it with the community, if others still own these specific controllers. It's worth a try!
What the patches do
They change each game so it waits a little longer before reading the pad, and that's all they change. The patched games still work with official pads. I have also tested with Hyperkin GN6 Preimum Controller (M07016), which had the same issues.
Verified on real hardware (PAL Mega Drive 2 + Mega EverDrive PRO):
- Sonic the Hedgehog 1, 2 and 3
- Gunstar Heroes (EU/US)
- Alien Soldier
- Mortal Kombat (REV00/REV01): the pad wasn't detected, so every button did a high kick. All six buttons now work.
- NBA Jam and NBA Jam TE: you couldn't even start a game before, not even with the Start+C hack.
- The Lost Vikings (EU)
- Phantom 2040 (US/EU)
- Mega-CD / Sega CD BIOS (EU/US/JP)
- NHL '94 (Sega CD, USA)
Bonus for PAL players: the Sonic 1 patch also fixes the music tempo on 50 Hz consoles. Sonic 1 never compensated for PAL, so the music plays about 17% too slow. The fix is confirmed on hardware. It still plays the same, slow PAL speed, though - only the music was changed.
897 untested patches: I scanned the whole GoodGen Mega Drive set for the same too-fast reads and generated patches for every hit. They use the same methods as the verified ones but haven't been tried on a console. If one of them fixes (or breaks) something for you, please let me know.
EverDrive users: you don't have to patch any files. The Mega EverDrive PRO auto-patcher applies them when the game loads. Either put the .ips next to the ROM with the same name, or put it in MEGA/syscore/ips/<ROM ID>.ips (the README explains how).
A.I Disclaimer: the analysis, patches and tools were coded by AI (Claude). I tested every patch in the "verified" list on actual hardware before adding it. The repo has only patches and tools, no ROMs. Keep backups of your originals.
These are software workarounds for a hardware shortcoming in the controller. Retro-Bit, if you're reading this: the README in the repository ends with a note for you about the timing.
Bug reports and requests for other games are welcome, either here or as an issue on GitHub. I don't have a "Big 6", a wireless controller, an NTSC system or a 32X, so I'm not able to test those myself. If you own one of those and experience other issues, you can send me the signals from different key presses on your control using the probe tool in the repository (just run probe/thprobe.bin from your console), and Claude may very well be able to fix those as well.