GameCube Networking
Have you ever sat down and looked at your GameCubes disc tray and wondered When will it play burned games? Im sure many of you have and that same group of you has dismissed that question with the answer: Never. And that, my friends, is true for the most part. In the last year, an initiative has started; just as it did for the PlayStation and Xbox. And that initiative, is known as Homebrew GameCube development.
Before I venture any further into this article, Ill give you a little rundown on what homebrew means:
Homebrew n.
An alcoholic beverage that is made at home.
Alright, so take that definition and replace the alcoholic beverage with GameCube
programs and in a nutshell youve got homebrew coding. In the following
sections I will provide a brief but informative overview of how piracy works
on the GameCube, why its possible and a quazi-chronological history of
its development.
The GameCube
Its no secret that the GameCube is the most secure console out there
when it comes to piracy. The discs are rumoured to be read in a reverse manner
(outside to in, instead of inside to out), the discs are specially sized, and
finally the disc tray itself is unable to hold discs larger than a GoD
(GameCube Optical Disc). Combine these elements with built in barcode detection,
and dummy files to throw off copying attempts, and youve got one tough console
to mess with.
When the GameCube was released, people immediately began trying to find ways to begin home development on the system, much of this research was in vain until Sega announced plans to bring Phantasy Star Online Episodes 1 & 2 to the GameCube. Nintendo released the Modem and Broadband Adaptors when PSO was released, and people quickly jumped on the chance to network their GameCube to a PC opening a whole new realm of access to the console.
Phantasy Star Online: An Orgy of Bits
If you dont know by now, you may be wondering why PSO was such a stepping
stone in terms of GameCube piracy. Why would a Sega game, of all games, be the
key? Well there is one very simple answer to a complex question: Network configurability.
Releasing PSO with the ability to configure every aspect of your network (IP address, Subnet Mask, Gateway, and DNS servers) was no doubt a risk Nintendo / Sega had to take. However, this was also essential to connecting the GameCube to the PC and not the Sega master server, as originally intended.
In a perfect world, a cable modem would be connected directly into your Broadband Adaptor, and it would auto detect your IP settings and connect to the Sega servers which works. The reason manual configuration was included was so you could connect to a LAN network, and use a shared internet connection meaning the GameCube was always meant to be connected to a PC workstation in the event this needed to be done. Its notable to mention that the recently released Phantasy Star Online III appears to only support WAN connections, and it seems Nintendo and Sega have corrected the piracy issue with this new release.
Establishing a Connection
When homebrew development began, a program was released (for the purposes of
this article, we will call it Program A) that could connect to the
GameCube and upload homebrewed code. Before Program A would work however,
the connection protocols and ports that the GameCube used had to be discovered.
There are commonly used ports and routines for this. In essence, networking
between a GameCube and a PC was born.
How were these homebrewed programs loaded? Whether it be from a buffer overflow (as common on the Xbox, which is how the homebrew front began there), or PSOs rumoured ability to accept executable code on each subsequent server connection, programs can be loaded once the system is fooled into connecting to your PC via Program A.
The obvious, but never admitted goal of the initial homebrew coders was to find a way to copy GameCube games, then reload those games without the use of the original disc. Thus, Programs B, C, and D were born. Program B was a simple disc browser allowing users to swap discs and browse a list of files located on a GameCube disc. Program C was also simple as it allowed the browsing, download, and subsequent upload of files from and to a GameCube memory card. Between the releases of Program C and D were the first releases of GameCube game images, no one knew for sure how these came about for quite some time, until Program D, which allowed the ability to stream all the data from a GameCube disc was released. The final program, E, was released soon after. This program allowed the loading of game images to the GameCube bringing about the beginning of the illegal side of homebrew coding.
The Evolution of a Revolution
As homebrewers got more and more into GameCube customization and exploitation,
all the previously mentioned programs were combined into one central GUI tool
(Graphical User Interface), as everything before was done through the command
prompt. The introduction of a central program (well call F)
allowed a standard (albeit amateur) user to illegally rip, and load GameCube games through
the PSO-Exploit.
An interesting tidbit with the GameCube is the region free play of PSO-Exploit games. If a Japanese or PAL version of a game is loaded, an NTSC GameCube will play them without problem and the game-saves from the other regions can also be saved on your NTSC formatted card. This occurs without any corruption errors as if they were the actual discs in the system.
Program F has since become upgraded to a point where games can be illegally ripped with the ease of clicking only one button. A database of settings for loading individual games has also been incorporated, ensuring the best possible results are displayed on your television screen. Furthermore, amateur piracy has been growing which has led to rumours that this is the very reason PSO 1 & 2 is no longer available. Or that the extremely limited supply of Broadband Adapters at retailers may be a direct result of this as well.
The list of tools for GameCube homebrewing are growing as well an NES emulator has been written allowing users to load up certain NES ROMs (only a certain type of mapper is compatible) the same way they would load a GameCube game via the PSO-Exploit. The NES games are loaded entirely in the GameCubes RAM and played internally on the 'Cube, whereas GameCube images are streamed from the PC as if it were one giant GoD.
Most notably however, is the rather new but evolving illegal Nintendo 64 emulation on the GameCube (games are also loaded entirely into memory, unfortunately imposing a size limit to the ROM). When Nintendo released the The Legend of Zelda: Ocarina of Time & Master Quest for the GameCube, a professional homebrewer sought out to isolate the loader for the games as it was widely believed that the games were simply being emulated onto the GameCube.
This was found to be true and after a few weeks, an N64 loader was released that supported a very small array of first generation games the only ones that worked were Nintendo made, as they all ran on similar engines. The working games of the initial release included Mario 64, Mario Kart 64, Ocarina of Time, and a few others like Pilot Wings and Mario Tennis. Since that release, it has evolved into supporting more and more games like Duke Nukem 64 and Super Smash Brothers. Apparently all of these N64 games run almost flawlessly, and save games are created on your memory card with each respective game name in the title area. Needless to say it has evolved quite a bit and shows no signs of slowing down. It is widely believed that the second Zelda Collectors disc, the one that includes Majoras Mask, will support an even wider array of N64 games due to the increased size of the Majoras Mask ROM.
Projects are in the works to illegally port SNES games to the GameCube (sources say Super Bomberman is currently the only working game, but suffers major slowdown and sound errors), and a GBA emulator is also being toyed with.
Thinking Outside the Cube
Now that the GameCube tools are evolving steadily, other utilities are being
created on the PC side of things. A GameCube image browser is available, allowing
you to pick out certain files and directories and load them on to your hard
drive. You want that intro movie from Jedi Outcast? No problem. A certain sound
file from Mario Sunshine? Theres a GameCube sound converter out there
for direct rips. Ever wanted to browse the internet with the PSO browser? Well
you can, and somewhat successfully as well.
Despite this, the games are far from perfect. Sometimes they load very slowly the videos are choppy, and the game play, while most of the time perfect, has occasional slowdowns and tends to lock up the Cube. Illegally ripping a game from a disc takes approximately an hour, and the file sizes are upwards of 1.4GB although there are tools to remove excess garbage data (mentioned earlier), they take time to apply.
The PC side of 'Cube development doesnt stop there. Recently, the same guys who got Linux running on the Xbox have also gotten it to boot on the GameCube with Ethernet capabilities - basic kernel booting and a NFS file structure with full Windows X support. Their future hopes are to support streaming media and a full O/S through a loadable image.
What it all Boils Down to
GameCube homebrewing
is more than just piracy in fact, piracy is a small but significant
part of the entire scene, creating a competition between pro-piracy versus pro-development.
While amateur users will simply want to use the method for illegally copying and loading
games, the enthusiasts and developers truly interested in the system will use
it to their benefit, programming and porting code to work on the GameCube console.
The development of open source projects on the GameCube is a first for Nintendo fans; allowing user created games to be run on the hardware without any physical modifications to the system itself, the PSO-Exploit may very well be beneficial to those parties who wish to further expand their knowledge of console programming.
The homebrew initiative on the GameCube is still in its infancy and this article will be updated when new developments and breakthroughs in legal homebrewing occur.
Revision History:
v1.1 March 8th 2004 Minor Edits - added Mario pirate caption (Thanks Brenden)
v1.0 March 7th 2004 First Published