USB Gecko GameCube Review


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.

    GameCube Homebrew
    GCOM gcom v2.4
    yes
    Genesis Plus! genplus-dollz.dol
    yes
    GNUBOYGX gnuboyGX.dol
    yes
    HugoGC hugogc.dol
    yes
    Mplayer Front End mfe-distro-1.0.tar.bz2
    yes
    NeoPop neopop.dol
    yes
    USB Gecko v0.52 Loader ngecko052.dol
    no
    Open Tyrian GC openTyrianGC
    no
    sd-boot v0.3 sdboot(slotA)-lz.dol
    yes
    SMS Plus smsplus.dol
    yes
    SNES9XGX snes9xGx201b8-sdslota.dol
    yes
    StellaGC stellagc.dol
    no
    GC-Linux zImage.nbdc6.dol
    yes


    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 ]=-



    designed by raz-- || filled by brakken