GameCube Optical Disc

From WiiLi

Jump to: navigation, search

The GameCube Optical Disc is a custom 8mm disc created for Nintendo by Matsushita. It is compatible with the Nintendo GameCube and the Wii. It uses MiniDVD technology which reads at a constant angular velocity (CAV) from edge to center. The capacity of the disc is 1.5 GB. The Wii Optical Disc, for comparison, has 4.7 GB of space.

Source: Wikipedia [1]

Contents

[edit] Wii Compatibility

The GameCube discs are fully compatible with the Wii, even the Action Replay disc. Since both the GameCube and the Wii use similar technologies, most of the GameCube technologies are assumed to be compatible.

[edit] Disc Structure

Source: gc-linux.org

Total capacity of disc data is 1,459,978,240 bytes (1.5 GB approximately). That's exactly 712,880 DVD raw sectors (each 2048 bytes).

start end size Description
0x00000000 0x0440 Disk header ("boot.bin")
0x00000440 0x2000 Disk header Information ("bi2.bin")
0x00002440 (0x2000 ?) Apploader ("appldr.bin")
FST ('fst.bin')

[edit] Disk Header

start end size Description
0x0000 0x0003 0x0004 Game Code

1 Console ID
2 Gamecode
1 Country Code

0x0004 0x0005 0x0002 Maker Code
0x0006 0x0001 Disk ID
0x0007 0x0001 Version
0x0008 0x0001 Audio Streaming
0x0009 0x0001 Stream Buffer Size
0x000a 0x001b 0x0012 unused (zeros)
0x001c 0x001f 0x0004 DVD Magic Word (0xc2339f3d)
0x0020 0x03ff 0x03e0 Game Name
0x0400 0x0403 0x0004 offset of debug monitor (dh.bin) ?
0x0404 0x0407 0x0004 addr (?) to load debug monitor ?
0x0408 0x041f 0x0018 unused (zeros)
0x0420 0x0423 0x0004 offset of main executable DOL (bootfile)
0x0424 0x0427 0x0004 offset of the FST ("fst.bin")
0x0428 0x042B 0x0004 size of FST
0x042C 0x042F 0x0004 maximum size of FST (usually its same as FST size) (*)
0x0430 0x0433 0x0004 user position (?)
0x0434 0x0437 0x0004 user length (?)
0x0438 0x043b 0x0004 (?)
0x043c 0x043f 0x0004 unused (zeros)

(*) multiple DVDs must use it, to properly reside all FSTs.

[edit] Disk Header Information

This is loaded to the address in 0x800000f4 when a disc is initialized by the IPL

offset size Description
0x0000 4 Debug-monitor Size
0x0004 4 Simulated Memory Size
0x0008 4 Argument offset
0x000c 4 Debug flag
0x0010 4 Track Location
0x0014 4 Track size
0x0018 4 Countrycode
0x001c 4 ?

[edit] Apploader

offset end size Description
0x0000 0x0009 Date (version) of the apploader in ASCII
0x000A 0x000F padding (0)
0x0010 0x0013 4 Apploader entrypoint
0x0014 0x0017 4 size of the apploader (32 bit) (usually 0x2000)
0x0018 0x001B 4 trailer size
0x0020 Apploader code (loaded to 0x81200000 in RAM)

[edit] Format of the FST

start end size Description
0x00 0x0c 0x0c Root Directory Entry
0x0c ... 0x0c more File- or Directory Entries
... ... ... String table

[edit] Format of a File Entry

start end size Description
0x00 1 flags; 0: file 1: directory
0x01 3 filename, offset into string table
0x04 4 file_offset or parent_offset (dir)
0x08 4 file_length or num_entries (root) or next_offset (dir)

[edit] Links

Personal tools
Online Casino - best online casino reviews.
Facebook Developers - facebook applications, facebook developers, facebook development, social network application development and viral widget social media strategy