
Written by Brakken
April 2008
Introduction
Developing for the Nintendo GameCube™ or Nintendo Wii™ can be a daunting task. One annoying aspect of the development
process is how you get your code loaded on your video gaming console. In the past developers had to depend on a
combination of sorts to get their programs with the two most popular methods being the use of the SD Gecko and the
GameCube's Broad Band Adapter (BBA). Up until the Viper GC Extreme there was no simple solution for sending code
to your console without an involved process. This factor, including others, made it a difficult process to develop
for the GameCube.
The USB Gecko is a small device that fits inside of the GameCube's Memory Card Slot B and is equip with an on-board
USB v2.0 port. Using the USB Gecko's software you can easily send your code to either the Nintendo GameCube or Wii
in real time. This feature cuts down on the loading processes mentioned above. All that is required to send the code
over is plug the device in and send it.
The USB Gecko also features remote debugging features such as letting developers set breakpoints and inject code into
their application while they are running. The USB Gecko has been developed to make life a lot easier when creating
your own homebrew for the Nintendo GameCube or Wii. So let's put it through some tests and see how this device really
stacks up.
Features
Upload and Execute files (DOL and Bin format)
Extract Wii and GameCube media at high speeds
Backup and Restore game save to and from the PC
Access low level functions including Bios, SRAM and firmware
Free open source libraries, source code examples
On board flash memory for storing data and firmwares
Free updates and legal download forever!
Support forum - Get free support from other users
Works on all regions!
Remote Debugging capabilities including memory dumping, editing, all in realtime
Easy to entergrate with free software libaries like (LibOGC) (Example code included)
Contents
High Speed USB 2.0 Gecko Device
CD-ROM
USB 2.0 Cable
Requirements
PC with one free USB v2.0 Port (v2.0 is Required)
Internet Connection for downloads / manuals / forums
At least 10MB of hard drive space
Windows XP, Windows XP x64, Windows Vista, Windows Vista x64, Windows 2000, Windows Server 2003 or Windows Server 2003 x64
Test Enviroment
Windows XP SP2
USB v2.0 Ports
GameCube (DOL-001/USA)
XenoGC v2.0
Broad Band Adapater (BBA)
Game - Legend of Zelda: Wind Waker
Game - Legend of Zelda: Collector's Edition
Game - Legend of Zelda: Twilight Princess
Game - StarFox Assault
Installation
Installation of the USB Gecko is pretty straight forward. The CD-ROM that comes with the device has a readme file on
it which directs you to the PDF manual. Just in case you don't have Abode's Acrobat Reader™ installed it comes with
a version of it also. The manual will guide you through the manual installation of the drivers which are also located
on the CD-ROM.
If for some reason you plug in the USB Gecko and it doesn't ask you for a driver then you've got something
else installed and Windows thinks the USB Gecko is that device. To remedy this there is a driver removal tool contained
on the CD-ROM which will remove any previous drivers. In my case I had the Memor32™ drivers installed so I had to remove
them before I could install the drivers for the USB Gecko.
The main core of the USB Gecko is it's DOL (GameCube executable) based Loader. Once you have the drivers setup you'll
have to run the DOL file. Running DOL files requires a GameCube or Nintendo Wii that can boot homebrew. There are various
ways to do this on both systems. If you would like to learn more about booting DOL files please refer to either the
Mod That Cube -FAQ- or the Mod ya' Wii FAQ.
There are some alternatives on how to boot the Loader. On the USB Gecko's website you can find bootable ISO images which
will automatically load the Loader for USA, PAL and JAP consoles. These pre-made images come in handy if you wish to
boot the loader from disc. You can always create your own bootable image if you wish.
Usage
Once you load the Loader it will start and display a logo on screen with a "Waiting for PC Command" prompt. Mind
you that you must have the Loader in Slot 2 - not Slot 1 (or it won't find it). I belive it would optimal for it to
support both memory card slots, but having it in Slot 1 will still allow you to use SD Load which is another application
that will load DOL files from the SD Gecko device (which requires it to be in Slot 1). If booted from DVD the drive will
stop spinning allowing you to remove the disc from the GameCube.
File, USB, Connect, Wii Mode Tools, GameCube Mode Tools, Start Game, Remote Debugger, Trainer, Screen Grabber, Firmware
and Help. These are the menu options presented to you when you're in the new USB Client v1.0 software. File will let
you quit the program and USB is used to connect to the USB Gecko. Trainer and Firmware are currently not aviable with
the current version of the USB Client. Help will display a small about screen.
Once connected the USB Client stays connected to the USB Gecko regardless if the GameCube is turned on or off. The only
thing that breaks this connection is if you boot a DOL, ELF or game. Unless you boot a game or homebrew you can
navigate and perform the other various functions without having to restart the GameCube. Although, some of the functions
are still not implemented, but appear in this version of the USB Client.
Usage - Homebrew
Under the GameCube Mode Tools you'll find a set of options and one of them is the Executable File Loader which will
bring up the Gecko Executable File Loader screen. This will allow you to stream either DOL or ELF format Nintendo GameCube
or Wii homebrew. Once streamed over the homebrew is executed. I tested a handful of homebrew titles and most of them
worked. However, due to the nany variations on how homebrew is executed some of them either required additional
resources before working or did not work at all.
MFE (Mplayer Front End) booted, but required a disc with it's included filesystem along with any multimedia files you
wish to view present. MFE will allow you to play videos, music and movies. It's built around Mplayer so it supports
a very large variety of multimedia formats.
Neither Open Tyrian GC or SteallGC would boot. Both of these homebrew titles require resource files stored on a SD Card
inserted into the GameCube using a SD Gecko or similiar device. Even with the SD Card present with the required resource
files intact both of these fine homebrew applications failed to boot. Although, sd-boot worked fine which also requires
a SD Card.
Usage - Memory Card Tool
One of the most useful features for the general public would be the USB Gecko's ability to handle save game data using
it's Memory Card Tool. With this tool you can backup your save game data from a GameCube Memory Card to your PC for
archival/safe keeping purposes. Once you run the tool you can list the contents of the memory card. Once listed you can
either save a save game onto your PC (GCI format) or delete a save from the memory card. Additionally, you can transfer
save games in either GCI or GameShark™ format save games. Thousands of GameShark save game files can be found on the
Internet leaving you cheaters out there with a great way to think you've beaten a game.
Usage - Remote Debugging
Using the Low Level Tool option you're brought to the Gecko GameCube Low Level Tools screen. Using these tools you can
dump your GameCube's SRAM, BIOS, Drive Firmware, Drive IRAM and Drive ERAM. Dumping the SRAM created a 64kb file. As
the GameCube has a lot more SRAM then 64kb I'm not sure what it actually dumped. Dumping the BIOS resulted in a 2,048KB
file. I'm sure having a copy of your GameCube's BIOS could come in handy as some emulators may require the use of it.
Trying to dump the Drive Firmware, IRAM and ERAM produced an error stating "Error reading response from console. Please
check connection and retry". After closing the Low Level Tool and trying another option I could still communicate with
the USB Gecko. It seems these options are either not implemented or that they do not work with my configuration.
One of the major tools included in the USB Client is the Remote Debugger. Using this you can use various functions to
find bugs and squash them in your applications and also perform operations on retail games. To make use of this feature
you must "Hook" a game before it boots. This hook is required to be set it place for all of the debugging options to
work.
The Gecko Game Hook Launcher presents you with four options to boot your media and three of them will hook them using
different methods. Although, the methods vary for increased compatibility the results of your debugging will not change
when you use a different hook method. You can try to hook your games using the Pad Read Hook, Verticle Blank Wait Hook
and Verticle Blank Set Next Hook methods or you can boot your game normally using No Hooks. Out of them games I tested
none of the originals or backups of them would hook using the three methods. Due to this fact I was unable to review
the remote debugging features of the USB Gecko.
Remote Debugging Features
Due to the fact I am not a programmer nor familiar with the development process of applications for computers, let
alone video game consoles I will not be able to cover the functionality of the Remote Debugger or any other development
tools included in the USB Client software. Even if I was familiar with homebrew programming I still would be unable
to test these features due to the fact I cannot hook a game. Below you can find screen shots of various developer
features.
Usage - DVD Extractor
The DVD Extractor (we're still under the GameCube mode tools) allows you to create a backup of your original GameCube
or Wii games for presevation purposes. You can dump GameCube, Wii Single Layer and Wii Dual Layer games using this
tool. I was able to backup each GameCube game successfully and it created an image with the normal GameCube filesize
(not shrunk). Each backup failed to boot with or without the USB Gecko. They did however boot fine using sd-boot or
a PC based emulator. Again, I'm not sure if it's my setup causing the problems, but they all failed to boot after
multiple attempts. Backups did work fine when created using another process unrelated to the USB Gecko.
Usage - Screenshots
Wouldn't it be great to be able to take screenshots of your homebrew or normal game acheivements? I believe in general
being able to take screen shots of such material to be a very useful asset for your average gamer, developer or news
site. Sadly, to take a screenshot you must first hook the game or self booting homebrew application you wish to take
pictures of. Due to the fact I was unable to hook any of my games I was unable to take any screenshots using the
Screen Grabber.
Conclusion
Due to the fact that my setup wasn't compatible with Hooking games I was unable to test the majority of the development
functionality. Solely blaming the product for not being compatible with my setup wouldn't be fair. This is due to the
fact that I have been having general problems with homebrew applications using the Xeno GC v2.0. However, the parts
of the program that I could access worked as expected.
Additionally, the author of the USB Gecko who goes by the name "Nuke" had just re-written the USB Client and Loader
from scratch after having issues with some of LibOGC's features. This actually increased the compatibility of the USB
Gecko's functions with my particular setup from v0.1x - v0.5x. Nuke is very commited to the development of the USB
Gecko and is working hard at getting everything working okay. He's an active member in the community so I'm sure, in
time, the bugs will be sorted out.
One must also face the fact that the GameCube's lifespan is over and new homebrew will most likely be created for the
Nintendo Wii. In the future I plan to do a review of the USB Gecko with a Nintendo Wii. There are some differences, but
the USB Client supports the Nintendo Wii including sending ELF (Nintendo Wii Executable Files) homebrew and there are
also third party applications for the USB Gecko. The USB Gecko is also supported by the homebrew community and is worth
investing in - even if you have to buy two long USB cables and use a powered HUB to make it reach your console.
Negatives
Requires a Way to Boot Homebrew (Soft or Hard Mod)
Unable to Hook Games
Unable to Access Development Functions
Backups Fail to Boot When Burnt
USB Client Should Have a Help File
USB Client Freezes When Streaming Large DOL Files
Positives
USB Client Simple to Use
High Speed USB v2.0 Connection
Plug n' Play Installation
Constant Updates
Support from the Homebrew Community
 |
| | |
Supplement - A Look at the USB Gecko by tehpola (WiiN64 Author)
I got my USB Gecko pretty soon after it came out, and at the time there wasn't any Linux/Mac OS X support, and unfortunately those are the only operating systems I run. However, although us *nix users haven't gotten official support from Nuke (I believe he has some technical issues making an API that works how he wants on all the major platforms), once you get your Gecko set up and have some tools to work with, you can use it however you can program it. In OS X, I got it working by simply installing the FTDI COM driver at http://www.ftdichip.com/Drivers/VCP.htm and in Ubuntu I just had to remove the brltty package as it took control of the Gecko as soon as it was plugged in. From then on, you can access the USB Gecko as a serial device (for me: /dev/ttyUSB0 in Linux and /dev/tty.usbserial-GECKUSB0 in OS X). Besides being able to use it as a loader using geckloader (by dhewg, which works great and is very convenient), I've used the Gecko to:
* Send debug messages from my emulator on the Wii to my computer
* Debug my emulator using gdb (which is much more stable than BBA)
* Manage the Wii's filesystem remotely via a shell on my PC
The USB Gecko is well supported in libogc and using dhewg's gecko.c/.h from geckoloader, you can have a platform independent interface with the Gecko from the PC using it as a serial device. Overall, the *nix support for the USB Gecko is not 100% yet (we don't have a nice package like the Windows USB Gecko suite), but for developers, the USB Gecko is still a must have even for users without Windows because it makes debugging easy. For end users, there's still geckoloader and wiifuse (by dhweg), but it might not be everything you're looking for that you would get with the official tools for Windows.
| | |
|
 |
Links
USB Gecko Website
Adictron - Trusted Reseller

-=[ USB Gecko GameCube Review Discussion Thread ]=-