Sega Genesis Controller Repair

Leave a Comment
Sega Genesis Controller Repair

   Let's admit it, retro video game consoles and accessories are old; however, that doesn't make them not interesting from an electronics and software engineering standpoint! Although some retro video game consoles and accessories can be reproduced in newer forms for the fanboy (such as clone consoles and new video game controllers from aftermarket companies such as retro-bit), nothing beats the 100% compatibility and authenticity of original hardware and accessories. It is important to preserve the old hardware, reverse engineer and document the secrets and specs of the hardware for homebrew development and emulation, digitally backup the games for future generations to enjoy, and to take care of the hardware. Because once it is gone, it's gone.

   Although not hard to reproduce or to find new ones being produced, today we will be discussing how to repair and maintain your 1st-party Sega Genesis 3-button controller. This guide should carry over to 1st-party 6-button controllers, as well as for 3rd-party controllers with some variation. After playing on my ol' Genny with some friends a few weeks ago, I found some of the buttons on my pre-owned controllers I bought at the retro video game shop were becoming very unresponsive, if responsive at all, so I Googled how to fix the issues. It's a lot better to repair the hardware then to spend a few hard-earned dollars on new hardware, especially if on a budget!


   The most common problem with Sega controllers are the button contacts. These button contacts are similar in style to cheap calculator contacts or to microwave buttons. For the buttons on both of those devices, the button assembly consists of 5 main components:
  1. The physical button itself (usually with a label of what it does)
  2. The button contact (underneath the button itself)
  3. The PCB board with the electronics circuity
  4. The PCB contact
  5. Physical mechanism to retract the button to normally-opened position
   By pressing the physical button (component #1), the button contact (component #2) makes physical and electrical contact with the PCB board and the PCB contact (components #3 and #4). The physical mechanism (component #5, usually component #2 the rubber button contact) brings the button back to its normally-opened state after being pressed and released. The PCB contact is usually a yellow circle with electrical breaks in it. By pressing the button, the button contact (a black circle which has some type of electrically conductive material on it) closes the circuit at the yellow PCB contact, allowing the circuit on the controller and in the console to register a button press for an action in the game's code to occur. The problem with most pre-owned, 2nd-hand Genesis controllers is the dirtiness inside the controller, on those button contacts, and on the PCB contact. Depending on where and how the controller is stored, and after repeated button presses over the years, dirt can build up on those components, and reduce the button's ability to initiate electrical contact.


How to fix these issues

   To fix these issues, you will need to open up the controller and remove the dirt from components #2-4 above using rubbing alcohol. You will need the following

  • Appropriate sized Phillips screwdriver for the controller screws
  • Replacement screws (optional)
  • Dixie cup
  • Bottle of Rubbing alcohol (50%-70% strength recommended)
  • Q-Tips or Cotton swabs
  • Genesis game or Flashcart
  1. Remove the 6 screws from the bottom of the controller. Keep them handy. Optionally, if they are stripped, rusted, or in bad mechanical condition (like mine were), replace them with similar screws. Separate both halves of the controller

  2. Remove the screws holding the PCB to the controller. Replace if necessary and keep them handy. Carefully detach the PCB's DB9 wire from its notch on the top to remove the PCB.
  3. Push out the button assemblies and D-Pad assembly from the front of the controller. The D-Pad has a rubber mechanism which should also be removed. Remove the rubber button contacts from the switches, but remember which buttons they goto.

  4. Pour some rubbing alcohol solution into your Dixie cup.

  5. Using either your Q-tips or a cotton swap (I prefer a cotton swap), gently wet it with rubbing alcohol and rub it into the PCB contacts on the PCB. Dirt will be lifted onto the Q-tip/cotton swap. Repeat until clean and shiny. Use a dry Q-tip/cotton swab to soak up the leftover Q-tip solution on the PCB and wipe clean. Do the same for the black conductive material on the button contacts underneath the physical buttons, and for the rubber physical mechanism for the D-pad.

  6. Using the Q-tip/cotton swaps, clean up the insides of the controllers (mine were pretty dirty from the previous owner).
  7. Reassemble everything

  8. Lastly, plug the controller into your Sega Genesis, and play a game which utilizes all of the buttons. If you are awesome and already have a flashcart (such as the Everdrive MD), I strongly recommend looking for a ROM titled "Multitap - IO Sample Program (U) (Nov 28 1992)" "somewhere" on the interwebs. (El Google is your friend *wink*). This particular Sega program will diagnose controllers by showing button presses for 3-button and 6-button controllers, button presses and coordinates for the Mega/Sega Mouse, and various other Genesis peripherals.

   If you followed this guide (and did not break anything), your controllers should now be much more responsive in trigger button presses, making for a better gaming experience. Mine were quite unresponsive (some button were not even triggering), and this trick worked like a charm. If not, then there could be other issues with your controller (electrical shorts, loose solder joints, worn out rubber pieces for the buttons etc), which you should diagnose and repair/replace.

Happy retro gaming!


New blog domain!

Leave a Comment
New blog domain!

     On 02/25/15, EagleSoft Ltd moved its old Google Sites website to its permanent home with a custom domain. Although we originally wanted to also move this blog (formerly hosted at as a subdomain ("blog") under the domain, we had technical difficulties in doing this, and due to last year's monumental amount of development work, this task was backlogged. While configuring the domain settings today (due to an upcoming renewal/one-year-anniversary the domain for this new 2016 year next month), we tried the steps again, and finally got the subdomain setup!

So we are proud to introduce the new blog domain...
Update your bookmarks!

Enjoy the new, professional subdomain, and keep your eye for upcoming developments this new 2016 year!

The Year 2015 in Review

Leave a Comment
The Year 2015 in Review

     The year 2015 A.D. for EagleSoft Ltd was a great year! In approximate order, the following is the key events for EagleSoft Ltd in the past year.

     Unfortunately, due to bottlenecks and technical difficulties with the BASIC BEX compiler for Sega, the Ultra Air Hockey Sega/Retro port was moved from BEX to SGDK in Jan 20; this project is still ongoing, but the progress for the SGDK attempt is nearly caught up with the old BEX attempt. EagleSoft Ltd successfully finished and published to the EagleSoft Ltd website its first Unity3D video game, both a v1.0 and v1.1 version of Ultra Air Hockey DX around Jan/Feb 2015, and most importantly, purchased a Google Play License and published a Android port to the Google Play Store around summer 2015. This project was a group project started with a colleague for a Fall 2014 Fundamentals of Software Engineering college class. We also officially purchased and setup a domain for the website (formerly a stock Google Sites one) to on 02/25/2015. During March-April 2015, we published 0xdbin, a computer architecture number utility for a graded class project. Furthermore, key to retro development for the Sega Genesis/CD/32x, funded with a large refund check from my shrewd Uncle Sam, I purchased an EverDrive MD for my birthday, a flashcart that would allow me to test my homebrew projects and hacks On Real Hardware (TM), for debugging discrepancies and issues for the projects between emulators and Real Hardware. The purchase of this EverDrive MD finally finished a quest started in 2011 to assemble the ultimate, retro Sega gaming machine: a Sega Genesis CD 32x with EverDrive MD (and backwards compatible with Mark III SMS games, and some hacked Game Gear games converted to SMS format).

    During Summer 2015, we began work on a second Unity3D video game called StarEagle; however, it has been put on hold currently. Around late Summer 2015 to early Fall 2015, EagleSoft Ltd expanded its social networking presence to a FaceBook Group. During Fall 2015, as part of a graded IED project for college, I began work on finishing a colleague's Unity3D video game idea called Colonial Combat, with a newer project group. The project received an A. This project is currently ongoing now in our own leisure time outside of class. However, on 09/19/15, EagleSoft Ltd's primary development machine, the beloved HP ProBook 4540s, died; may she rest in piece. This laptop I received more or less for free, due to earning a one-time $1000 scholarship at the community college for usage on school supplies, and I greatly miss her. Currently, I am using a loaned laptop from the university for development and primary computing, but its rental is due on 01/15/16. At the same time of the development of Colonial Combat, I worked on finishing an old Fundamentals of Software Engineering Android app called The Equator from another project group for Distributed Systems class, by putting in internet database connectivity. This application was yet the hardest project I ever worked on, due to the old project using MIT App Inventor 2, and having to write very convoluted code to fetch the online database's data and cache it locally onto the device with a hackish local database.

     Finally, the year ended with a long-awaited release of Demo #3 of Sonic CD Breakout for SAGE (Sonic Amateur Games Expo) 2015; however, SAGE 2015 has been postponed until later in early 2016. I also finally earned my B.S. Software Engineering degree! Overall, EagleSoft Ltd accomplished much more than expected in the past year, and we plan on doing a lot more next year!


The Future

  EagleSoft Ltd accomplished creating plenty of software over the past year and in getting its online presence established. Of the highest priority right now, however, is generating funds for a new laptop and getting a job in my field! This current laptop is a rental from the university, which is due on 01/15/16. The important data from this rental and the dead one must be transferred to a permanent home in a new laptop, and time is of the essence. I already have a laptop picked out, but need to find way to fund acquiring this capital in time, due to lack of funds due to college costs last year.

   As for software engineering projects, in 2016, we at EagleSoft Ltd will continue to work on Colonial Combat and Ultra Air Hockey Retro development, both which currently have the highest priority in terms of software development. We may also get back into retro video game modifications (there is a project in the works, TBA, if the project is feasible) too. After those 3 projects, work on StarEagle will resume.

   As for other plans, EagleSoft Ltd is also considering creating live YouTube videos for video game reviews, electronics, and other nerdy stuff. Details TBA in the near future. For the future, we are also looking into homebrew developement for Dreamcast and the Atari XE(GS) consoles, as well as perhaps more Sega homebrew. (We do not have a Dreamcast yet, nor any means to run code on either console On Real Hardware. Also, research needs to be done on how to program both using high-level tools.)

Goodbye 2015, and welcome 2016!
(Hopefully 2016 will be better than 2015)

Copyright EagleSoft Ltd. Powered by Blogger.