Mega Drive / Genesis controllers on Saturn

The sega development bulletins says that the saturn is compatible with genesis controllers.

Jacques from BlueRetro tested it in the bios:

The Saturn switched from the old DE-9 connector to a custom 9 pin connector. The interface remains the same, however. The Saturn BIOS actually support all the devices including the Genesis ones. Simply making a DE-9 to Saturn cable will allow using 3btns, 6btns (including extra btns), the mouse and even the Team Player multitap in the BIOS! All Saturn devices are supported too including keyboard and multitap.

I went a step further and tested it with a bunch of games.
And to my surprise some of them supported the device!

 
I wonder what happens if you connect a megadrive/megacd mouse, playing Virtua Cop with that baby size mouse would be fun ;)
 
Last edited:
According to Jacques the genesis and saturn mouse are the same device with just different connectors.
So support in games are the same.
I don't have a mouse to test :/
 
The lack of L/R shifts makes this of limited use.

By the way, prototype Saturn pads were simply 6-button Genesis pads but with an extra button hacked on them to act as the L shift.
 
I couldn't find a simple description of how to wire an adapter for this. For anyone else in the same situation - here are the pin numbers to wire an MD/SS controller adapter:

SMS Pinout
MD Pinout
SS Pinout
DE-9 Pin number
SS Pin number
Up​
Data 0​
Data 0​
1​
3​
Down​
Data 1​
Data 1​
2​
2​
Left​
Data 2​
Data 2​
3​
8​
Right​
Data 3​
Data 3​
4​
7​
Vcc​
Vcc​
Vcc​
5​
1​
TL​
Data 4​
+5v (Inp)​
6​
6​
TH​
Select​
Select 0​
7​
4​
GND​
Ground​
Ground​
8​
9​
TR​
Data 5​
Select 1​
9​
5​

I just tried MD->Saturn in the Saturn bios to check I have the pinout listed correctly - all good. I'll try Saturn Mouse -> MD when I get my hands on a SS mouse.

For Mega Drive plugs and ports, either use a MD controller extension cable - or just buy DB9 male connectors, and DB9 connector housings for the port end - a female DB9 connector will not plug in to the Megadrive controller ports properly.

Cheap 3rd party Saturn controllers (or just the cables) are the best for SS controller plugs. A Mayflash Sega Saturn USB adapter is probably the cheapest source of good Saturn ports :(. The SS controller extension cables widely available are apparently beyond awful!

Cable for both consoles should contain 9 wires and therefore be suitable for a MD/SS controller adapter, or get RS232 (Straight-through) cables if you want/need to buy something new.

If you are cutting existing MD/SS controller cables - don't forget to note which coloured wire is attached to which numbered pin :) And don't cut cables of official Sega stuff, that's lunacy!

Sources:
Interface Protocol of SEGA MegaDrive's 6-Button-Controller
Evolution of SEGA's IO Interface from SG-1000 to Saturn | Details | Hackaday.io
Sega Saturn Controller Data
 
Last edited:
Saturn mouse is technically an MD mouse. So it should work. But please report back when you test it :)
I tested a mega multitap and the saturn bios detected it.
 
Saturn mouse is technically an MD mouse. So it should work. But please report back when you test it :)

My Saturn Shuttle Mouse arrived - I can confirm it works on the Megadrive with an appropriate adapter. The combination of a Saturn mouse and DIY adapter could be a far cheaper option than buying a Megadrive mouse.

Note: It seems that games designed for the 2-button Sega Mouse use the Shuttle Mouse C button as the 2nd button.

My Saturn -> MD adapter:

IMG_20211101_204325.jpg

Note: this does not magically make a Saturn pad work with your favourite Megadrive game! Only the mouse will work natively, but homebrew could make use of a Saturn controller I believe (I don't know of any examples though).

Here's a little bit of info on wiring up this adapter...

If you remove a port from a Mayflash SS USB adapter like in this picture, you can rebuild it later:

IMG_20211101_185621.jpg


A bit of electrical tape gives a reasonably tidy single controller SS->USB adapter:
IMG_20211101_185343.jpg


Using a male DB9 connector to aid deciphering the pinout of the MD controller extension cable wires with a multimeter:

IMG_20211101_191221.jpg
 
You have access to a saturn arcade racer (racing wheel)?

It might be compatible with megadrive's Virtua Racing.

Look at this promo image for the game:
I do actually have an Arcade Racer!

I just tested it, and unfortunately Virtua Racing on Megadrive does not seem to be compatible with the Arcade Racer.

I tested EUROPE, USA, and JAPAN releases on a Mega Everdrive X7, as I have none of the original VR carts - so there is a potential possibility that something about my setup stops it working...
 
Hi, does anybody have any luck running MDPatcher? I tried it on both Windows 7 and 11 with all possible versions of .NET Runtime and the app just freezes when I click File → Open.

Update:
After a couple days of trying to rebuild the app from source and debugging I was finally able to make it work. It needed just a single line of code to properly fix it.
A fork of the project with fixes and a cli version of the app as a bonus is available here: https://github.com/konstantin-kelemen/MDPatcher
 
Last edited:
  • Like
Reactions: ROS
@RubyRoid The patched games works on real hardware?
I had to add a fix for it.

By the way I came to share my version then I see that you already found a solution.
I shared the app here on the resources page
 
@RubyRoid The patched games works on real hardware?
I had to add a fix for it.

By the way I came to share my version then I see that you already found a solution.
I shared the app here on the resources page
Hey, thanks for sharing your fixed version of the app!

I tested with Saturn Bomberman and it worked, but I see what you've done there with error_recalc. I didn't have such fix implemented but the drive did successfully correct the error while burning the image:
Code:
I 21:50:25 Verifying Track 1 of 30... (MODE1/2352, LBA: 0 - 60968)
W 21:50:41 Miscompare at LBA: 4148, Offset: 2064, File: \BOMSS\0KRNL.BIN
W 21:50:41 Device: 0x5D
W 21:50:41 Image File: 0xF0
W 21:50:41 Total Errors in Sector: 44
W 21:50:41 Note: The drive probably corrected the EDC Area because it's wrong in the image file.

I like your approach more so now I'm puzzled on whether or not should I keep my version of code.
 
I tested with Saturn Bomberman and it worked, but I see what you've done there with error_recalc. I didn't have such fix implemented but the drive did successfully correct the error while burning the image

Interesting! I could not get the games to work with a ODE (Fenrir). Had to fix the ecc data.

Your solution for it is more elegant. I had to redo it using winforms.
You could add the option to also use error_recalc. The CLI version is interesting for automation.
It checks if the exe exists and calls it.
Another change (not so important) was to change the "new line" text code from "\n" to "NewLine" that maps to what's used on the current OS (\r\n on windows).

I was thinking of porting it to Net Core in the future. And build it for win/linux/mac.
 
Interesting! I could not get the games to work with a ODE (Fenrir). Had to fix the ecc data.

Your solution for it is more elegant. I had to redo it using winforms.
You could add the option to also use error_recalc. The CLI version is interesting for automation.
It checks if the exe exists and calls it.
Another change (not so important) was to change the "new line" text code from "\n" to "NewLine" that maps to what's used on the current OS (\r\n on windows).

I was thinking of porting it to Net Core in the future. And build it for win/linux/mac.
Thanks, I'll try to add features you mentioned to the code. I'm not even close a .NET programmer and this was the first time I've ever compiled an exe with mono :laughing:

Buy the way, the CLI version is already working on Windows, Linux, and Mac since it doesn't use forms at all.
 
Back
Top