USB Sega Genesis Controller with Emulator

USB Sega Controller

I wanted to build a Sega Genesis Emulator System complete with onboard games, all shoved inside of a Genesis controller.  Think of it as a mobile Sega Genesis.  However, I also wanted the emulator to auto launch when the controller was plugged into any Windows based machine.  This way, it would hopefully feel like the controller was supposed to behave that way.  I really didn’t want it to look or feel like some half baked hack/mod.  For that reason, the wife loves using this.  Sega Genesis was “her” system back in the day, and now she can bring it on the road with her and use it on her company issued laptop without having to install an emulator (which would be a big no no anyway).  Note: This mod could be adapted for any other USB controller or emulator.

After some tweaking and trial and error I was successful.  Below are the instructions, parts needed, as well as some diagrams.  Unfortunately I did not take a lot pictures during the build process, but honestly that was the easy part to figure out.  The auto launching however proved to be more difficult.

On an up to date Windows XP or newer system, this former trivial task was disabled for security reasons (source).  However, some commercial USB drives still have this capability (i.e. SanDisk U3) and I needed to learn how they were still able to do this.  Long story short, these drives typically implement two partitions.  One that is a mass storage device, the section you store your files, and the second is one that contains the auto launched software.  This second partition has a CDFS file system, which more or less tricks the computer into thinking that the drive is actually a CD (which still allows autorun.inf files on updated versions of Windows).

Disclaimer

ROMs can be found all over the internet and this post will not be getting into where you can find them or the legality of downloading them.  I will also not be explaining how to rip them from existing cartridges.  You should check the legality of ROMs and emulators where you live.  Download at your own risk.

Downloads

  1. Kega – Sega Genesis Emulator: Download
  2. Phison MPALL v3.60.0B (This will vary with USB drive): Download
  3. ImgBurn: Download

Shopping List

  1. USB Sega Genesis Controller: I got mine on ebay
  2. Small 2 port USB hub: Plugable USB 2.0 2 Port Hub
  3. USB drive capable CDFS partitions: Kingston Digital 8 GB Datatraveler DT101G2/8GBZET

Tools

  1. Wire stripper
  2. Wire cutter
  3. Soldering Iron (and solder)
  4. Solder wick
  5. Electrical Tape
  6. Shrink tubing (*optional)

Configure USB Drive

Setup USB Drive File Structure

Create a working folder (I called mine sega) on your desktop to compile all of the required files.

Extract the downloaded Kega emulator and put the files in /sega/kega/.

Find an icon that you want to use for the drive.  I found a genesis.ico file that looks like a genesis console.  Put this in /sega/kega/ and call it genesis.ico.

Create an autorun.inf file in /sega/ with your preffered text editor (notepad will work fine).

[autorun]
open=kega\fusion.exe
icon=kega\genesis.ico,0
label=Sega Genesis

Setup Kega for use with USB Controller

Plug in USB controller and USB drive into USB hub.  Plug USB hub into your computer.

Wait for drivers to be found and installed.

Launch /sega/kega/fusion.exe. (If you have video problems like I did, force video compatibility mode).  Edit /sega/kega/fusion.ini and set ForceCompatibleGFX=1.  Relaunch /sega/kega/fusion.exe.

Go to Options>Set Config>Controllers and change
Port 1: 3 Btn Pad
Use: 3. playsega controller
You can also customize the other settings, based on your personal preference.

You can now unplug the drive, hub, and controller.

Create ISO

Launch ImgBurn and click Create image file from files/folders.

Click Browse for a file… and select /sega/autorun.inf.

Click Browse for a folder…. and select /sega/kega.

Click Labels and enter SEGA for ISO9660 and UDF.

Under Destination, click Browse for a file… and enter /sega/sega.iso.

Setup USB Drive Partitions

Note: Some of these settings are specific to the chip in the USB drive (ChipGenius will help you identify the proper values if you use a different USB drive).

Extract Phison MPALL v3.60.0B.

Launch MPALL_F1_8400_v360_0B.exe and click setting.  Select Advance Setting and New Setting.

Phison Settings

IC_FW
Solution: USB 2.0
Controller: PS2251-67    <= Note: This is specific to the USB drive
FC1-FC2 0xFF-: 01

Flash Setting
Flash: Auto Detect
Preformat: Check Preformat
Timing: Default

Partition Setting
CDROM Size: 700 MB
No. of Partition: 2
Partition 1: CD-Rom
CD-Rom Image: Select ISO created above
Partition 2: Removable Disk
File SystemFAT32
Secure LabelSEGA

Drive Info
VID: 0930    <= Note: This is specific to the USB drive
PID: 6545    <= Note: This is specific to the USB drive

Everything else, you can keep the same.

Click Save As and save as MP_sega.ini in the Phision directory.

Insert USB drive.

From drop down menu on the main screen of Phison, select MP_sega.ini.  If you do not see MP_sega.ini, restart Phision.

Click Update, then the number that corresponds with the USB drive.

Click Start to start partitioning and writing of ISO to the drive.  Phison is kinda finicky.  If it fails, try again.  You may need to restart Phision, or restart your computer, or try another computer.

Once successful, you can unplug the drive and plug it back in.  Kega should auto launch.  If it does not, check out My Computer and see if you see the two partitions (one that contains Kega).  If you do not, try writing the iso with Phision again.  If you do see them, you may have disabled auto launching of CDs in windows, you will need to re-enable it for this to work.

Plug in USB controller and USB drive into the USB hub.  Plug USB hub into your computer.  Test to make sure Kega auto launches.

If all is working, time to disconnect everything and squeeze everything inside of the controller.

Wiring the Controller

USB SchematicBlock Diagram

USB hub

Open up the USB hub and remove the USB connector (this requires some patience as the connector shield is also soldered to the board.

USB Hub InternalsInside of the USB Hub

Now for quick explanation of the USB setup.  Each port on the hub has a row of 4 connections (+5V, -Data, +Data, GND) that you will need to attach wires  to.  Standard USB wiring is red wire for +5V, white wire for -Data, green wire for +Data, and black wire for ground.  These wires will connect to the USB drive and to the USB controller.  You will need roughly 5-6 inches for each of the four wires.

USB PinoutUSB Connector Pinout

Remove the USB cable, but be sure to note which wire went to which spot.  Later on, we will be attaching the white cable from the PlaySega controller in its place.

USB Drive

Carefully crack open the USB drive so all that remains is a small black board.

Solder four wires from the USB drive to one of the USB hubs ports.  I recommend reusing a piece of the wire that you removed from the USB hub, that way you can ensure the correct gauge and colors.

Wrap drive completely in electrical tape to prevent shorts.

USB Controller

Open up the controller.

Inside of USB ControllerInside of controller

Cut the USB cable, make sure you have enough wire left to splice in longer wires; about an inch from the connector proved to be sufficient for me.

Spliced these wires with a piece of the remaining wire from the hub (wrap each splice with electrical tape or shrink tubing to avoid shorts).  Connect this to the remaining USB hub port.

Attach the USB cable (the white one that you cut from the controller) to the USB hub’s input.

Wrap the entire USB hub in electrical tape to prevent shorts and to provide strain relief.

Now is the fun part, try to fit the three boards into the controllers case.  I found that the hub fits best towards the top and the drive towards the bottom of the D-pad.

USB Circuit Board PlacementRough placement of PCBs

You may want to tack the wires down with some electrical tape.  This will make it easier to put the cover back on,

Align the back cover, make sure the boards all clear the screw holes and that the USB cable is properly aligned on the strain relief.  Now screw the controller back together.

Now you are free to test out the controller.  If all went well, when plugged in, Kega will auto start and you will be able to select a ROM.

On a side note, with this setup, you will have an empty partition on the USB drive.  You can use this space for all of your ROMs as well as your game saves.

Enjoy!

Comments are closed.