< Back to index

Gamecube Linux is a project to port GNU/Linux to the Nintendo GameCube, after a similar port was developed for the Xbox. The Gamecube was arguably a less attractive system to port Linux to since it not only lacked an on-board ethernet port and internal hard drive, but also an optical drive natively capable of reading DVDs.

Gamecube Linux also recognizes SD/MMC cards and is able to use them normally.

Development


Development began with the release of a code loading method based on a hack for the game Phantasy Star Online. Upon going online PSO would contact a Sega server. By using a Domain Name System server, it was possible to make the Sega server's domain name resolve to a computer on an internal network and upload code to the Gamecube using a program such as PSOload or PSUL (Later editions of PSOload had a DNS server built in).

Challenges


Numerous programs were written for the platform of varying quality. Emulators for systems such as the Super Nintendo were produced, including all of the technical difficulties involved. Emulators for other platforms used code from Nintendo games creating copyright conflicts.

Piracy was also widespread, since the PSO exploit could be used to stream games both to and from the Gamecube, which proponents would argue was for backup and archival purposes. However, the games ripped this way were notoriously unreliable, and in the end numerous release groups dumped games using PC DVD drives with modified firmware. Those using the streaming function encountered a technical issue with the ethernet adapter throttled its function to 10Mbit, resulting in laggy gameplay and music. Improvements allowed the adapter to be set to 100Mbit, but due to hardware limitations this speed was never achieved.

Modchip Influence


The kernels produced by the GameCube linux project originally booted their rootfs over nfs, though this was later extended to allow booting over nbd. Ironically, however, one of the major developments came about due to piracy. A modchip called the "Viper" was released, quickly followed by a BIOS from another team, who were unaffiliated to the Viper team and yet were able to encrypt the BIOS specially for the modchip, which permitted the booting of pirate games from standard DVDs. (The GameCube could only read the first 1.4GB, but due to the fact that the original games were produced on these discs, that was sufficient). However, after the reverse engineering work by the 'utopia' group, an asm recode of the trick used by the cobra BIOS was released. Essentially, a debug command is sent to the GameCube's DVD drive which allowed its firmware to be rewritten in memory (in this case in order to allow it to read from a standard DVD+/-R). However, as soon as the drive is again reset, these changes are lost, meaning one had to use either the cobra BIOS or the asm recode booted via Phantasy Star Online every time.

These debug commands were implemented in the Gamecube Linux kernel as the 'cactus firmware extension'. Essentially, this allowed GameCube Linux to read the first 1.4GB of any standard DVD disc. However, the Gamecube's laser is fairly picky resulting in some disc read errors. Nevertheless, this opened some very interesting opportunities. For example a completely standalone Media Player Frontend ("MFE") distro was produced - a fully functioning Linux distribution booting entirely without a network.
This entry uses material from from Wikipedia, the leading user-contributed encyclopedia. It is licensed under the GNU Free Documentation License. Disclaimer.