- 1 Overview
- 2 Features
- 3 Settings
- 4 Building the Board
- 5 XenoGC Clone
- 6 XenoGC Clone - ISP
- 7 Building a Low Cost Programmer
- 8 Programming Software
- 9 Source Code
A homebrew version (clone) of the XenoGC can be built with the same Atmega8L microcontroller and a few additional components.
The XenoGC Clone allows all the same features as the original XenoGC
* Direct boot of DVD+-RW media * Compatible with all regions & all versions * Region free loading * Super easy wireless install * No need to remove mainboard * PAL/NTSC region force * Installation control LEDs * Switchable read setting adjustment / error retry * Switchable audiofix * Extremely low cost (to build)
* DVD Disc upgradeable ( Requires Bootable Disc for Xeno DOL Flashing Utility ) * Network upgradeable ( Requires BBA Adapter and Xeno DOL Flashing Utility ) * SDcard upgradable ( Requires SD Gecko and Xeno DOL Flashing Utility ) * Serial/Parallel ISP upgradable ( Requires AVRdude or similar software and XenoGC Clone - ISP board version ) * Load ISO from Network ( Requires Third Party App ) * Backup Game via Network ( Requires Third Party App ) * Supports multi-game discs ( Game Compilations on One Disc ) * Supports Action Replay cheat codes ( Requires Action Replay Disc )
The XenoGC Clone allows the same settings as the original XenoGC
|[L button] Disable audiofix||Disable Native Audiofix to support modified backup images created for a BIOS which did not support Streaming Audio data.|
|[R button] Disable DREfix||Disable Native Disc Read Adjustment and Read Retries. Uses default read settings to scan a disc for read errors.|
|[X/Y button] Force NTSC/PAL||Force Region display mode regardless of the game region.|
|[START button] Miscellaneous Function||Version 1.01.V2 - Display Software Version, GC Revision, Drive Version, Special Message.|
|Version 1.03a.V1 - Display Software Version, GC Revision, Drive Version, Special Message|
|Version 1.04 - Multi-Game Shell Version 0.98b (PAL) (Not Multi-Disc Games)|
|Version 1.05 - Multi-Game Shell Version 1.05 (PAL) (Not Multi-Disc Games)|
|Status LEDs||Red LED is active during Drive Reset and delivery of Drive Code.|
|Green LED is activated after successful Drive Code execution.|
|NOTE: XenoGC 2.0 and Counterfeits might have Orange LED instead of Green.|
|NOTE: Check installation if no LED activity or constant Red LED.|
Building the Board
Multiple considerations must be taken into account prior to building a XenoGC Clone.
These considerations for choosing a board design include:
* Intended usage of the product ( standard user or developer/advanced tester ) * Limitation differences between the two boards regarding Firmware Update Methods * Target microcontroller type * User's own abilities or willingness to learn
A standard (typical) user can choose to build the basic XenoGC Clone board design which offers the same abilities as the original XenoGC. A developer or advanced tester may choose to build the basic Clone as well, but may benefit from the XenoGC Clone - ISP design which offers the additional ability to program the board via ISP serial/parallel programmer.
Since the XenoGC Clone is limited to the original design, the only method of updating firmware is to utilize a prepared Xeno DOL Flashing Utility which contains a firmware update. Like the XenoGC, the Clone will require a switch which sets the microcontroller into program mode by making contact between RESET and GND. Firmware Corruption Recovery Methods are limited to this board design and require the user to perform one of the following:
* Desolder the board and manually reprogram the microcontroller via Serial/Parallel ISP. * Utilize an Alternate DOL loading method to reprogram the chip via Xeno DOL Flasher Utility
To work around the limitation of recovery which most likely occurs during developing, a developer or advanced tester should choose to build the XenoGC Clone - ISP. This board design offers the flexibility to program the microcontroller utilizing the Xeno DOL Flashing Utility or ISP updates ( design compensates so ISP communicates without data conflict from port CN302 ). Like the XenoGC, the Clone - ISP will require a switch between RESET and GND only when updating via Xeno DOL Flashing Utility. For ISP updates, program mode is achieved when the ISP to connected to the microcontroller.
It should be noted that a blank Atmel chip cannot be programmed fully by the DOL Flashing Utility, however, as the .DOL will not program the 'fuses' of the Atmel chip. This means that the initial programming must be done via a PC-style programmer.
Atmega8 vs Atmega8L vs Atmega8A
Both the Atmega8 and Atmega8L can be used to create a fully functional XenoGC clone. The two versions of this microcontroller have a difference in power requirements and operational speed which do not interfere in the performance during code execution. Due to END OF LIFE of the Atmega8 and Atmega8L, Atmel created the Atmega8A as a direct drop in replacement. The Atmega8A (Farnell link) has also been observed to work with the provided firmware images.
Power requirements should be considered prior to the purchase, creation, and installation of a XenoGC clone. The Atmega8L can be powered directly with 3.3v from the serial debug port CN302, as per original XenoGC design. However, the Atmega8 requires a higher 4.5v - 5.5v voltage input which will have to be provided from elsewhere on the motherboard.
Atmega8L Manufacturer Flaw
Per Atmel datasheet, the original design of the XenoGC includes two 0.1uF capacitors: 1. between VCC and GND 2. between AVCC and GND
Testing of the Atmega8L DIP 28P3 package style microcontroller, there exists ~5 ohms difference between AVC and AVCC with continuity found between the pins. Whereas, the Atmega8 indicates a difference of ~550K ohms between AVC and AVCC with no continuity. Based on this data, the XenoGC Clone and XenoGC Clone - ISP board designs are presented for the use of an Atmega8L using only a single 0.1uF capacitor. If an Atmage8 is the target microcontroller, a second 0.1uF capacitor may be required (which is not displayed in the Clone schematics).
At 3.3v, the ATmega8L and the ATmega8A can run at 8 MHz, while at 5.0v, the ATmega8 and the ATmega8A can run at 16 MHz. However, this is not a concern since the XenoGC was based on the ATmega8L running at 8 MHz. Furthermore, no increase in performance has been noted during testing of the ATmega8L and the ATmega8 at their maximum speeds.
|ATMEGA8L||Speed (MHz)||Power Supply (V)||Code||Package|
|0 - 8||2.7 - 5.5||Atmega8L-8AU||TQFP 32A|
|Atmega8L-8MU||MLF (VQFN) 32M1-A|
|0 - 16||4.5 - 5.5||Atmega8-16AU||TQFP 32A|
|Atmega8-16MU||MLF (VQFN) 32M1-A|
|0 - 16||2.7 - 5.5||Atmega8A-AU||TQFP 32A|
|Atmega8A-MU||MLF (VQFN) 32M1-A|
Basic Clone of the original XenoGC. This design will function in all aspects to the original XenoGC. Firmware updates are limited to Xeno DOL Flasher Utility with a standard on/off switch between RESET and GND to set the microcontroller into program mode.
|1||1K ohm Resistor|
|2||220 ohm Resistor|
|Clone Pictorial Diagram|
|Clone Circuit Diagram|
Programming and Updating
Firmware updates can only be accomplished using a prepared Xeno DOL Flasher Utility with on-screen instructions. This method of firmware updating can be considered safe, however if a corrupted write occurs (ie, power loss) there exists only a few limited options for chip recovery which include one of the following methods:
* Desolder the board and manually reprogram the microcontroller via Serial/Parallel ISP. * Utilize an Alternate DOL loading method to reprogram the chip via Xeno DOL Flasher Utility.
XenoGC Clone - ISP
Same as the basic Clone with added ability to update firmware using both Xeno DOL Flasher Utility or Serial/Parallel ISP. This design will function in all aspects to the original XenoGC. A standard on/off switch between RESET and GND is required to set the microcontroller into program mode only when using Xeno DOL Flasher Utility.
|2||1K ohm Resistor|
|1||100 ohm Resistor|
|2||220 ohm Resistor|
|Clone ISP Pictorial Diagram|
|Clone ISP Circuit Diagram|
|XenoGC Clone with ISP headers (wired)|
|XenoGC Clone with ISP headers (wireless)|
Programming and Updating
Firmware updates can only be accomplished using a prepared Xeno DOL Flasher Utility with on-screen instructions or thru the use of a Serial/Parallel ISP and AVRdude (or similar software). This design offers the most flexible method for developers or advanced testers to quickly load and verify results of code changes while also offering the ability to recover the microcontroller due to unexpected code results.
Building a Low Cost Programmer
A low cost programmer is essential for everyone; standard users, advanced testers or developers. The most essential function of a programmer is to allow communication with the microcontroller's bootloader to write new code, set fuses, or recover from a corrupted flash. A programmer is easy to build, very low cost, and recommended for any and all who wish to build their own XenoGC Clone. Every programmer has a name (or Device type) which is required for the programming software to set the proper communication protocol.
Device Type: ponyser
|1||DB9 Serial Connector|
|2||4.7K ohm Resistor|
|1||10K ohm Resistor|
|1||15K ohm Resistor|
|2||5.1V Zener Diode|
|1||BC547 NPN Transistor|
|Serial Programmer Pictorial Diagram|
Device Type: sp12
|1||DB25 Parallel Connector|
|7||220 ohm Resistor|
|1||47 uF Capacitor|
|Parallel Programmer Pictorial Diagram|
Device Type: usbtiny
Note: required Avrdude 5.5 or greater.
Works with linux, mac, windows. Admin permissions may be required for linux/mac
Attiny2313-20mhz version only, 10mhz incompatible. Also, IC must be preprogrammed with USBtiny flash software. External 3.3v / 5v power recommended, USB may not provide adequate power.
|5||1.5K ohm resistors|
|2||27 ohm resistors|
|2||3.3v / 3.6v zener diode|
|1||usb connector female|
|USB Programmer Pictorial Diagram|
|USBtiny Programmer with optional onboard power supply|
The most convenient form of software updating is the Xeno DOL Flashing Utility.
However, utilizing a Serial/Parallel ISP is beneficial with software, such as AVRDUDE, which allows writing, reading, and erasing of the Flash, as well as, reading and setting fuses via command line function. AVRDUDE offers support for Serial, Parallel, and USB programmers.
Quick Programming Reference
|WRITE||/usr/bin/avrdude -p m8 -c ponyser -P /dev/ttyS0 -v -U flash:w:XenoAT.1.05.hex:i|
|SET FUSES||/usr/bin/avrdude -p m8 -c ponyser -P /dev/ttyS0 -v -U lfuse:w:0x84:m -U hfuse:w:0xD9:m|
|READ FUSES||/usr/bin/avrdude -p m8 -c ponyser -P /dev/ttyS0 -U hfuse:r:-:r -U lfuse:r:-:r|
Technical Note Regarding Fuse Settings
According to the ATMega8/8L's datasheet (Table 10. Pg 30,) enabling the "Brown Out Detection" (BOD) bit is recommended when using the internal 8Mhz oscillator at minimum startup time. The recommended lfuse setting is 0x84 (BOD enabled.) (Source)
In February 2011, the source code was made publicly available at GC-Forever
- Within the source code package are compiled .HEX files which can be used to program XenoGC/Atmega8 microcontroller with an ISP programmer. Additionally, xenoflasher.dol files are also included as a standalone method to natively program the XenoGC/Atmega8 using the existing Gamecube interface.
Included HEX & DOLS
|File Type||Location||Name||Status||Start Button Action||md5sum|
|HEX||Root Directory||XenoAT.1.05.hex||Works||PAL ONLY Shell||1381b07513bb22fd701245ad2457c23e|
|XenoGC 1.01.V2.hex||Works||NTSC/PAL Credits||a6ba8066467ef568c2f8f36c0ec97b89|
|XenoGC 1.04.hex||Works||PAL ONLY Shell||ea65af9e421a890fb980d564f3f88e9d|
|XenoAT.hex||Works||PAL ONLY Shell||1381b07513bb22fd701245ad2457c23e|
|XenoFlash DOL||Root Directory||xenoflash.1.05.dol||Works||3abe3ea0d60333d998b8e9730881dd76|
Developers, please feel free to contribute @ GoogleCode Project
1. Download and install verified working compiler - WinAVR 20050214
2. Edit Makefile as necessary to include your WinAVR Path
3. Open CMD prompt and change directory to YourLocation/XenoGC-Source/XenoAT
4. Type make
gcc 3.4 is recommended to compile the following source packages for both AVR and MN10200.
Note: Using newer versions of gcc may cause compile failures!!
avr-libc-1.2.3 binutils 2.15-3 gcc-2.95.3 gcc-3.4.3
to be continued...maybe (anyone got a MAC??)
|Installation||0 wires (optional 6 wires)|