Introduction: Homemade GameCube Mod-Chip

About: I'm an Electrical Engineer working out of Northern California with a never ending interest in repairing and creating.

This do-it-yourself GameCube mod-chip is a great modification for your
Nintendo GameCube. The mod-chip allows your GameCube to read burned backups of games, so your original games can be preserved by protecting them from scratches. This instructable provides a detailed tutorial on the building, flashing (programming), and installation of the XenoGC 2.0 mod-chip clone as well as advice on adjusting the laser potentiometer to read burned backups of games.

An Atmel Atmega8L-8PU AVR is used to communicate with the GameCube's disk drive's debug port using SPI to bypass the drive’s security by entering a debug mode. The firmware for this mod-chip entitled “XenoGC 2.0” was released as open source for the public domain in 2011.

For more information regarding the details of the XenoGC 2.0 source code and original mod-chip, visit:

  • The GC-Forever forums’ original posting of the open source code: Here or Here

Disclaimer: This project includes disassembly of your GameCube and its disc drive. Improper adjustment of the laser potentiometer can lead to a decrease in the life of the laser. Piracy is illegal; do NOT illegally download copyrighted games.

The video above showcases a successful test of the mod-chip.

Last updated February, 2016.

Step 1: Parts

There are optional LEDs used on this
mod-chip to indicate whether the chip is communicating with the disc drive's service serial port correctly. Green means it is operating correctly; red means there is an error. They can be removed from the circuit, along with the resistors in series with them when the chip is installed into the GameCube, or they can be left in and located discretely on the back of the GameCube.

Shown in the images are schematics of the mod-chip with the required parts included. There are two versions: one with an ISP header (the connectors used for flashing the firmware onto the mod-chip) and one without (the “economy” version). The ISP header version will be built on a breadboard for flashing then replaced with the economy version before being installed into the GameCube.

The required parts are:

  • 1 GameCube with cables and controller
  • 1 Burned backup of a GameCube game
  • 1 Atmel Atmega8L-8PU
  • 1 0.1μF ceramic capacitor
  • 2 1KΩ resistors
  • 2 330Ω resistors
  • 1 100Ω resistor
  • 1 red LED
  • 1 green LED
  • 1 Breadboard (for flashing and testing the mod-chip)
  • 1 AVR ISP programmer or an Arduino and USB cable to use in place of a programmer
  • 1 computer for flashing the mod-chip
  • 22 AWG wire for use with the breadboard
  • 30 AWG wire (wire wrap) for making connections on the GameCube
  • 1 set of wire strippers
  • 1 soldering iron with solder
  • 1 multi-meter capable of reading impedance
  • Some electrical tape and double sided tape
  • 1 small philips screwdriver
  • 1 “Gamebit” screwdriver

If a Gamebit screwdriver is not available, a plastic Bic pen and a lighter or pocket torch can be used to make one as explained in step 5.

Required software:

Step 2: Preparing the Atmega8 for Flashing

Construct the circuit shown on the breadboard using 22 AWG wire for connections. However, do not connect the wires and resistors going to the GameCube (that means that R4 and R5 are not used). Connect the AVR ISP programmer to the ISP header in the circuit (J1). If you don't have an AVR ISP programmer, use an Arduino with a USB cable and follow the connection table below. Example code is included in the Arduino IDE that will allow the Arduino to act as a serial AVR ISP programmer.

Be sure to supply the breadboard with power and ground from the AVR ISP programmer or Arduino.

This is the connection table from the ArduinoISP example:

// pin name:    not-mega:         mega(1280 and 2560)
// slave reset: 10:               53 
// MOSI:        11:               51 
// MISO:        12:               50 
// SCK:         13:               52 //
// Put an LED (with resistor) on the following pins:
// 9: Heartbeat   - shows the programmer is running
// 8: Error       - Lights up if something goes wrong (use red if that makes sense)
// 7: Programming - In communication with the slave

For information regarding using an Arduino as an ISP programmer, visit

https://www.arduino.cc/en/Tutorial/ArduinoISP

or

https://web.archive.org/web/20160220102301/https:/...

Step 3: Flashing the Atmega8

In order to flash (program) the Atmega8 for the mod-chip, WinAVR must be installed (avrdude for Linux).

Extract the included file entitled ‘XenoGC-Source.zip’ and extract it’s content to a directory that is easy to navigate to in a command prompt. For example, use the root of your hard drive: ‘C:\’.

Be sure that the ISP programmer or Arduino is properly wired to the Atmega8 via the breadboard. Attach the programmer or Arduino to the computer’s USB port.

From a console (in Windows: press windows + R on the keyboard, type ‘cmd’, and
press enter), type the following command (depending on the programmer being used):

For Arduino as programmer:

avrdude -p m8 -b 19200 –B 4 -c avrisp -P COM1

Replace COM1 with the COM port your Arduino is associated with if necessary.

For an AVR ISP programmer, enter the necessary programmer type immediately after the ‘-c’ argument of the command. The ‘-b 19200’ and ‘-P COM1’ is not necessary for AVR ISP programmers other than serial based ones such as the Arduino. For example, using a USBasp ISP programmer, the command would be:

avrdude –p m8 –B 4 –c usbasp

Refer to the avrdude website for instructions on using your specific party ISP AVR programmer. https://web.archive.org/web/20160129180324/http://...

If the connection was successful, avrdude should echo the device signature of the Atmega8. The chip is now ready for flashing.

From the same console, change directory to the location of XenoAT.1.05.hex (included in zip file). Next, type the following command into the console:

For Arduino as programmer:

avrdude -p m8 -b 19200 -c avrisp -P COM1 -v -U flash:w:XenoAT.1.05.hex:i

For USBasp ISP programmer:

avrdude –p m8 –B 4 –c usbasp -v -U flash:w:XenoAT.1.05.hex:i

Avrdude will confirm that the chip was flashed successfully. Next, set the fuse bits with the following command:

For Arduino:

avrdude -p m8 -b 19200 -c avrisp -P COM1 -v -U lfuse:w:0xC4:m -U hfuse:w:0xD9:m

For USBasp ISP programmer:

avrdude –p m8 –B 4 –c usbasp -v -U lfuse:w:0xC4:m -U

This command configures the microcontroller (Atmega8) to internally oscillate at 8Mhz, rather than the default 1Mhz.

The mod-chip now is ready for construction.

For more information regarding AVR microcontroller programming, refer to Ladyada’s avrdude page:

https://web.archive.org/web/20151223010554/http://...

Step 4: Building the Chip

There are a multiple methods that may be implemented to construct the mod-chip; a PCB can be made and the components soldered to it, components can be soldered to a perf-board, or components can be connected via the point-to-point soldering method. The point-to-point soldering method is explained in this instructable.

The green and red LEDs and corresponding resistors are optional. They are used to show that the chip is operational. When the disc drive begins to read a disc, the red LED will be illuminated. If the chip communicates with the drive correctly, the red LED will go out and the green one will light up. If the LEDs are to be installed, a place to mount them on the GameCube is required. Taping the LEDs in the rear vent as shown in the video at the intro and final steps is suggested.

For this GameCube, the status LEDs and corresponding resistors are not used.

To solder the components using the point-to-point method, first wrap the leads of the 1KΩ resistor around pin one and the VCC pin of the Atmega8. Solder the leads, then cut off the excess leads of the resistor. Next, use a piece of wire or the trimmings of the resistor leads to solder a jumper between the AGND and GND pins using the same method used on the resistor. Then wrap, solder, and trim the excess leads of the 0.1μF capacitor to the GND and VCC pins of the Atmega8 as shown in the image. Lastly, strip and solder 4 to 5 inch long 30 AWG wire to pins 15, 17, 18, and 19 as well as the VCC and GND pins of the Atmega8 as shown in the image. Strip the other ends of the wires back about 1/8 of an inch.

Step 5: Opening the GameCube

To disassemble the GameCube, turn the GameCube upside down to reveal four screws: one in each corner. Notice that they are "game bit" screws. If a game bit screwdriver is available, remove the four screws and skip ahead to the next step.

If a game bit screw driver is not available, use a Bic pen by pulling it apart, removing the ink tip from the plastic tip, and replacing the plastic tip. Then melt the plastic tip with the lighter. Do not burn the plastic or let it ignite. Once the plastic tip is soft looking, firmly insert it into the screw hole against the screw head. Let it cool before removing it. After letting the plastic cool completely, the tip will be solid again. It should have the impression of the screw head and will be able to remove the screws. If it becomes stripped while screwing/unscrewing, re-melt the plastic by repeating this step.

Step 6: Opening the GameCube Cont.

Once the four screws beneath are removed, flip the GameCube over and remove the top by carefully lifting it straight up. Unsnap the back panel where the AV out and power jack are by prying the clips shown in the image. Unsnap the front faceplate using the same technique and carefully disconnect its ribbon cable. Using the Philips screwdriver, remove the screws holding the metal tabs on top of the memory card slots. Unplug, unscrew, and remove the fan/power-button assembly and remove the screws beneath it. Remove the rest of the screws shown in the following pictures.

After all the necessary screws have been removed, the top half of the GameCube can be lifted straight up to disconnect it from the bottom half. There will be a little resistance due to the disc drive connector.

Turn the top half upside-down and take out the six screws holding the cover down.

We now have access to the disc drive's debug port.

Step 7: Connecting the Mod-Chip

To connect the mod-chip to the GameCube, use the soldering iron to tin the six pads on the disc drive’s debug port with a small amount of solder. Carefully solder the wires from the constructed mod-chip according to the schematic. Ensure that no connections have been bridged by checking for continuity between adjacent pads by using the multi-meter in continuity mode. Next, use the electrical tape to hold the mod-chip’s wires in place to prevent the wires from being disconnected from the debug port’s pads. The mod-chip is now connected to the GameCube.

Step 8: Adjusting the Laser Potentiometer

Temporarily reattach the disc drive without screwing anything together. Allow the mod-chip to hang from the GameCube without its pins shorting against the GameCube’s chassis. Also, reattach the fan and power switch assembly and front panel. Connect the GameCube’s power supply, AV cable, and a controller. Insert a burned backup of a game. While holding down the "lid open" switches on the rear-right corner of the GameCube, power on the console and watch as the drive attempts to read the disc. If the drive fails to read the disc, it is because the laser is adjusted to use minimal power while still able to read GameCube discs. Due to variations in the burned discs from the licensed Nintendo game discs, the laser struggles to properly read the disc. The laser can be adjusted via the laser potentiometer or "pot".

WARNING: Over adjustment can occur in driving the laser with too much power. This can lead to a lower lifespan of the laser. If you are unsure about adjusting laser pots or have not adjusted laser pots before, it is recommended that research on GameCube laser pot adjustments is done before attempting this.

Power off and disassemble the GameCube until the laser potentiometer is exposed. The laser pot is located to the left of the disc drive’s debug port. Using the multi-meter in impedance mode, measure the set value of the laser pot by touching one lead against the top pin and the other to the bottom left pin as shown in the image. Typical values for the laser pot are around 200 Ohms, but it varies for each GameCube. Use a small screwdriver to lower the resistance by 10 Ohm increments, reassembling the GameCube just enough to test out the drive each time. Very small increments in pot adjustment will lead to vary large changes in resistance, so it helps to have a steady hand.

After the GameCube accepts the disc, test it out again by powering the GameCube on and off. Once the GameCube is consistently accepting the disc, the laser potentiometer will not require any further adjustment.

Step 9: Mounting the Chip

Wrap the mod-chip’s wires in tape every 1 ½ inches to keep them tidy. Then bend the wires into the shape shown in the image. Reattach and screw together the bottom panel of the disc drive assembly. Then cover the pins of the chip that make contact with the ribbon cable with electrical tape to avoid wearing through the insulation. Mount the chip to the panel with double sided tape. The mod-chip is now mounted to the GameCube.

Step 10: Customization and Reassembly

An optional modification to do before the GameCube is assembled is to replace the original orange power indicator for one of a different color. The owner of this GameCube wanted a blue LED. The larger LED required more current than the original one, so the 330 Ohm resistor was replaced with a 100 Ohm resistor.

Reverse the dis-assembly process to assemble the GameCube.

Never worry about scratching your priceless collection of GameCube games ever again!

Arduino Contest

Participated in the
Arduino Contest