Inspiration

I like playing video games, sometimes my controllers break so I fixed them, then people asked me to fix their controllers and add mods onto them and now I like to repair and mod controllers

What it does

This is homebrew for the Wii, this software can run on a modded Wii. First piece of software allows the Wii to act as an oscilloscope reading the voltage values of the main joystick. This is used to help identify potentiometer drift, which is when the potentiometer no longer reads accurately and the controller moves on it's own in a game. It can also be used for identifying Snapback, which is when you quickly flick a joystick and on its way back it moved to the other size and can cause an input in the opposite direction. If you were to hook up some kind of low voltage low frequency signal you could use it as a oscilloscope for other electronics, not sure why you would want to but the option is there.

The next piece of software has the user flick the joystick and calculates what value of capacitor you need to remove snapback. the Snapback is essentially a short voltage spike, and using a correctly valued capacitor can bring this below the deadzone of a controller, a deadzone being the area where the values are not read. It calculates a value between .22uf to 1uf, with a good controller being listed and not needing the mod. This takes out the guesswork and expensive equipment needed to find the correct capacitor.

the Third piece of software gives a graphical indication of where shield drop values are compared to the controllers values. Shield drop is a technique in smash melee but to do it consistently you need a controller with angles that let you easily hit the float values needed to do it, they few controllers have it so people can file at the plastic to make it for their controllers. This software helps people more accurately file away their controllers without messing up and wasting a controller shell.

The last piece of software is a button tester, it tests most of the button inputs and shows that they are all working correctly, not much to say about this one.

I also designed a pcb meant to have user adjustable capacitors with dip switches, as well as a reactive led mod to show that the information you get from my program are applicable to the modification or repair of the hardware.

How I built it

I spent the whole day before setting up my IDE and getting my one library that i could get to load. It took me a long time to figure out how to make a graph without any libraries or functions to help me, i ended up using a draw rectangle to make pixels, and I have those pixels map out the potentiometer values on the y axis, and 60 times a second it moves the x value to a different position so it can write there allowing for a 10 second sample with a resolution of 60hz.

the capacitor mod i took a large amount of controllers and gathered the snapback values before hand and found what capacitor it needed to reduce these to under 20. The user is instructed to flick the controller left 10 times and then down 10 times, it finds the worst spike in value and it will check the data i collected as to what capacitor value should resolve the snapback and tells the user to use that value capacitor.

The third one was made using sprites and drawRectangle and drawCircle functions included with the library i was using, it has one large sprite representing the gate of the controller, it has two drawCircles and a Rectangle representing the area of values needed to get a shield drop, and a circle showing where the users joystick is currently, you can compare your location to where it has to be for consistent shield drops and indicates which way to file to react that value. I have a controller i shield drop notched using an older method so i was able to gather what value it had to be and map it to my sprite+circle and rectangle.

Last one I had to read through example files as there was no documentation online for how to read all the buttons. There are multiple sprites that get overlayed if a button is pressed lighting up the area of a sprite of a controller indicating that it was being pressed.

Challenges I ran into

Very little documentation, somewhere around 30 libraries total exist for this platform and many of them don't work or I could no get them to work.

Accomplishments that I'm proud of

Implementing my own graphical user interface without any libraries to help me. implementing a graph/oscilloscope despite not having a library for that and not having any draw lines to connect points collecting data values and applying them for use in calculating capacitor values needed to reduce snapback'

What I learned

I learned a bit about how awful support is for homebrew and how self reliant must be in this community especially in a timeline so short that you can't communicate with other homebrew creators.

What's next for GCC Repair Utilities

Open source and sharing it with the modding and repair community

Built With

  • c
  • devkitpro
  • mllib
  • powerpc
Share this project:

Updates