# Table of Contents - [ Yet Another Gamecube Documentation](#-yet-another-gamecube-documentation) --- # Yet Another Gamecube Documentation Yet Another Gamecube Documentation **last modified: Sat, 23 Dec 2006 22:50:31** Yet Another Gamecube Documentation (but one that's worth printing) ==================================================================== ![images/yagcd_logo.png](https://www.gc-forever.com/yagcd/yagcd_logo.png)   this is the result of myself pasting together various freely available documents aswell as adding some of my own findings. have fun... additions and corrections welcome :) **THIS IS WORK IN PROGRESS! INFORMATION CONTAINED IN THIS DOCUMENT MAY BE MISSING, INCOMPLETE OR EVEN PLAIN WRONG! NO F\*\*\*\*N' WARRANTY IMPLIED**! **IF THE USE OF THE INFORMATION CONTAINED HERE RESULTS IN ULTRA REALISTIC SMOKE EFFECTS, BRAIN DAMAGE OR LOSS OF PHYSICAL AND/OR MENTAL HEALTH PLEASE DON'T COME BACK AND SAY YOU HAVEN'T BEEN WARNED! YOU SHOULDN'T BE USING THIS IN THE FIRST PLACE!** groepaz/hitmen (groepaz@gmx.net) Hitmen-Console [http://www.hitmen-console.org](http://www.hitmen-console.org/) Contents -------- * [1 Introductional Rant](https://www.gc-forever.com/yagcd/chap1.html#sec1) * [1.1 Things that are in this document](https://www.gc-forever.com/yagcd/chap1.html#sec1.1) * [1.2 Things that are not in this document](https://www.gc-forever.com/yagcd/chap1.html#sec1.2) * [1.3 Conventions](https://www.gc-forever.com/yagcd/chap1.html#sec1.3) * [1.4 legal Babble](https://www.gc-forever.com/yagcd/chap1.html#sec1.4) * [2 Gamecube Hardware Introduction](https://www.gc-forever.com/yagcd/chap2.html#sec2) * [2.1 enhanced PowerPC 750 Specification](https://www.gc-forever.com/yagcd/chap2.html#sec2.1) * [2.2 Consumer Units](https://www.gc-forever.com/yagcd/chap2.html#sec2.2) * [2.2.1 Nintendo](https://www.gc-forever.com/yagcd/chap2.html#sec2.2.1) * [2.2.2 Panasonic Q](https://www.gc-forever.com/yagcd/chap2.html#sec2.2.2) * [2.3 Development Units](https://www.gc-forever.com/yagcd/chap2.html#sec2.3) * [2.4 Hardware Parts List](https://www.gc-forever.com/yagcd/chap2.html#sec2.4) * [2.4.1 Connectors](https://www.gc-forever.com/yagcd/chap2.html#sec2.4.1) * [2.4.2 Semi-Conductors](https://www.gc-forever.com/yagcd/chap2.html#sec2.4.2) * [2.5 Details on the motherboard buses](https://www.gc-forever.com/yagcd/chap2.html#sec2.5) * [2.6 Details on the Macronix (MX) Chips](https://www.gc-forever.com/yagcd/chap2.html#sec2.6) * [2.7 DVD Protection](https://www.gc-forever.com/yagcd/chap2.html#sec2.7) * [2.7.1 Filesystem](https://www.gc-forever.com/yagcd/chap2.html#sec2.7.1) * [2.7.2 Barcode](https://www.gc-forever.com/yagcd/chap2.html#sec2.7.2) * [2.7.3 Encryption](https://www.gc-forever.com/yagcd/chap2.html#sec2.7.3) * [2.8 IPL/BIOS Encryption](https://www.gc-forever.com/yagcd/chap2.html#sec2.8) * [2.8.1 Flipper decryption logic bug](https://www.gc-forever.com/yagcd/chap2.html#sec2.8.1) * [2.8.2 Cyphertext algorithm](https://www.gc-forever.com/yagcd/chap2.html#sec2.8.2) * [2.8.3 replacing the IPL](https://www.gc-forever.com/yagcd/chap2.html#sec2.8.3) * [3 Gekko CPU Overview](https://www.gc-forever.com/yagcd/chap3.html#sec3) * [3.1 Registers](https://www.gc-forever.com/yagcd/chap3.html#sec3.1) * [3.2 Calling conventions](https://www.gc-forever.com/yagcd/chap3.html#sec3.2) * [3.3 PPC Instructions](https://www.gc-forever.com/yagcd/chap3.html#sec3.3) * [3.3.1 Integer Instructions](https://www.gc-forever.com/yagcd/chap3.html#sec3.3.1) * [3.3.2 Floating-Point Instructions](https://www.gc-forever.com/yagcd/chap3.html#sec3.3.2) * [3.3.3 Integer Load and Store Instructions](https://www.gc-forever.com/yagcd/chap3.html#sec3.3.3) * [3.3.4 Floating-Point Load and Store Instructions](https://www.gc-forever.com/yagcd/chap3.html#sec3.3.4) * [3.3.5 Branch Instructions](https://www.gc-forever.com/yagcd/chap3.html#sec3.3.5) * [3.3.6 Condition Register Logical Instructions](https://www.gc-forever.com/yagcd/chap3.html#sec3.3.6) * [3.3.7 Misc Instructions](https://www.gc-forever.com/yagcd/chap3.html#sec3.3.7) * [3.4 additional Gekko Instructions](https://www.gc-forever.com/yagcd/chap3.html#sec3.4) * [3.4.1 FPR format in paired-single mode](https://www.gc-forever.com/yagcd/chap3.html#sec3.4.1) * [3.4.2 Arithmetic Instructions](https://www.gc-forever.com/yagcd/chap3.html#sec3.4.2) * [3.4.3 Load and Store Instructions](https://www.gc-forever.com/yagcd/chap3.html#sec3.4.3) * [3.4.4 modified floating point instructions](https://www.gc-forever.com/yagcd/chap3.html#sec3.4.4) * [3.5 Programming Tips and additional information](https://www.gc-forever.com/yagcd/chap3.html#sec3.5) * [3.5.1 Machine State Register](https://www.gc-forever.com/yagcd/chap3.html#sec3.5.1) * [3.5.2 Caches](https://www.gc-forever.com/yagcd/chap3.html#sec3.5.2) * [3.5.3 branch unit](https://www.gc-forever.com/yagcd/chap3.html#sec3.5.3) * [4 Memory Map](https://www.gc-forever.com/yagcd/chap4.html#sec4) * [4.1 Overview](https://www.gc-forever.com/yagcd/chap4.html#sec4.1) * [4.2 RAM usage](https://www.gc-forever.com/yagcd/chap4.html#sec4.2) * [4.2.1 Dolphin-OS globals](https://www.gc-forever.com/yagcd/chap4.html#sec4.2.1) * [4.2.2 Exception Handlers](https://www.gc-forever.com/yagcd/chap4.html#sec4.2.2) * [4.2.3 Dolphin-OS globals](https://www.gc-forever.com/yagcd/chap4.html#sec4.2.3) * [4.2.4 User Memory](https://www.gc-forever.com/yagcd/chap4.html#sec4.2.4) * [5 Hardware Registers](https://www.gc-forever.com/yagcd/chap5.html#sec5) * [5.1 CP - Command Processor](https://www.gc-forever.com/yagcd/chap5.html#sec5.1) * [5.1.1 Token register](https://www.gc-forever.com/yagcd/chap5.html#sec5.1.1) * [5.2 PE - Pixel Engine](https://www.gc-forever.com/yagcd/chap5.html#sec5.2) * [5.3 VI - Video Interface](https://www.gc-forever.com/yagcd/chap5.html#sec5.3) * [5.3.1 Video Modes](https://www.gc-forever.com/yagcd/chap5.html#sec5.3.1) * [5.4 PI - Processor Interface](https://www.gc-forever.com/yagcd/chap5.html#sec5.4) * [5.4.1 Operation](https://www.gc-forever.com/yagcd/chap5.html#sec5.4.1) * [5.5 MI - Memory Interface](https://www.gc-forever.com/yagcd/chap5.html#sec5.5) * [5.6 DSP - Digital Signal Processor Interface](https://www.gc-forever.com/yagcd/chap5.html#sec5.6) * [5.6.1 internal DSP Registers](https://www.gc-forever.com/yagcd/chap5.html#sec5.6.1) * [5.6.2 Operation](https://www.gc-forever.com/yagcd/chap5.html#sec5.6.2) * [5.7 DI - DVD Interface](https://www.gc-forever.com/yagcd/chap5.html#sec5.7) * [5.7.1 Drive Commands](https://www.gc-forever.com/yagcd/chap5.html#sec5.7.1) * [5.7.2 Drive Debug Commands](https://www.gc-forever.com/yagcd/chap5.html#sec5.7.2) * [5.7.3 Operation](https://www.gc-forever.com/yagcd/chap5.html#sec5.7.3) * [5.7.4 DVD-ROM Subsystem](https://www.gc-forever.com/yagcd/chap5.html#sec5.7.4) * [5.8 SI - Serial Interface](https://www.gc-forever.com/yagcd/chap5.html#sec5.8) * [5.8.1 Operation](https://www.gc-forever.com/yagcd/chap5.html#sec5.8.1) * [5.9 EXI - External Interface](https://www.gc-forever.com/yagcd/chap5.html#sec5.9) * [5.9.1 Operation](https://www.gc-forever.com/yagcd/chap5.html#sec5.9.1) * [5.10 AI - Audio Streaming Interface](https://www.gc-forever.com/yagcd/chap5.html#sec5.10) * [5.11 GX FIFO (Graphic display lists)](https://www.gc-forever.com/yagcd/chap5.html#sec5.11) * [5.11.1 internal BP registers](https://www.gc-forever.com/yagcd/chap5.html#sec5.11.1) * [5.11.2 internal CP Registers](https://www.gc-forever.com/yagcd/chap5.html#sec5.11.2) * [5.11.3 internal XF Memory](https://www.gc-forever.com/yagcd/chap5.html#sec5.11.3) * [5.11.4 internal XF Registers](https://www.gc-forever.com/yagcd/chap5.html#sec5.11.4) * [5.11.5 GP packet description](https://www.gc-forever.com/yagcd/chap5.html#sec5.11.5) * [6 Exception and Interrupt Processing](https://www.gc-forever.com/yagcd/chap6.html#sec6) * [6.1 Hardware Exception Sources](https://www.gc-forever.com/yagcd/chap6.html#sec6.1) * [6.1.1 System Reset Interrupt](https://www.gc-forever.com/yagcd/chap6.html#sec6.1.1) * [6.1.2 Machine Check Interrupt](https://www.gc-forever.com/yagcd/chap6.html#sec6.1.2) * [6.1.3 DSI Interrupt](https://www.gc-forever.com/yagcd/chap6.html#sec6.1.3) * [6.1.4 ISI Interrupt](https://www.gc-forever.com/yagcd/chap6.html#sec6.1.4) * [6.1.5 External Interrupt](https://www.gc-forever.com/yagcd/chap6.html#sec6.1.5) * [6.1.6 Alignment Interrupt](https://www.gc-forever.com/yagcd/chap6.html#sec6.1.6) * [6.1.7 Program Interrupt](https://www.gc-forever.com/yagcd/chap6.html#sec6.1.7) * [6.1.8 FP unavailable Interrupt](https://www.gc-forever.com/yagcd/chap6.html#sec6.1.8) * [6.1.9 Decrementer Interrupt](https://www.gc-forever.com/yagcd/chap6.html#sec6.1.9) * [6.1.10 System Call Interrupt](https://www.gc-forever.com/yagcd/chap6.html#sec6.1.10) * [6.1.11 Trace Interrupt](https://www.gc-forever.com/yagcd/chap6.html#sec6.1.11) * [6.1.12 Performance Monitor Interrupt](https://www.gc-forever.com/yagcd/chap6.html#sec6.1.12) * [6.1.13 IABR Interrupt](https://www.gc-forever.com/yagcd/chap6.html#sec6.1.13) * [6.1.14 Thermal Interrupt](https://www.gc-forever.com/yagcd/chap6.html#sec6.1.14) * [6.2 External Interrupt Sources](https://www.gc-forever.com/yagcd/chap6.html#sec6.2) * [6.2.1 HSP - High Speed Port](https://www.gc-forever.com/yagcd/chap6.html#sec6.2.1) * [6.2.2 Debug](https://www.gc-forever.com/yagcd/chap6.html#sec6.2.2) * [6.2.3 CP - Command Processor](https://www.gc-forever.com/yagcd/chap6.html#sec6.2.3) * [6.2.4 PE - Pixel Engine Finished](https://www.gc-forever.com/yagcd/chap6.html#sec6.2.4) * [6.2.5 PE - Pixel Engine Token](https://www.gc-forever.com/yagcd/chap6.html#sec6.2.5) * [6.2.6 VI - Video Interface](https://www.gc-forever.com/yagcd/chap6.html#sec6.2.6) * [6.2.7 Memory Interface](https://www.gc-forever.com/yagcd/chap6.html#sec6.2.7) * [6.2.8 DSP Interface](https://www.gc-forever.com/yagcd/chap6.html#sec6.2.8) * [6.2.9 Audio Streaming Interface](https://www.gc-forever.com/yagcd/chap6.html#sec6.2.9) * [6.2.10 EXI](https://www.gc-forever.com/yagcd/chap6.html#sec6.2.10) * [6.2.11 Serial Interface](https://www.gc-forever.com/yagcd/chap6.html#sec6.2.11) * [6.2.12 DVD Interface](https://www.gc-forever.com/yagcd/chap6.html#sec6.2.12) * [6.2.13 Reset Button](https://www.gc-forever.com/yagcd/chap6.html#sec6.2.13) * [6.2.14 Error](https://www.gc-forever.com/yagcd/chap6.html#sec6.2.14) * [7 Video Processing](https://www.gc-forever.com/yagcd/chap7.html#sec7) * [7.1 Used VI terms](https://www.gc-forever.com/yagcd/chap7.html#sec7.1) * [7.2 init VI](https://www.gc-forever.com/yagcd/chap7.html#sec7.2) * [7.2.1 Videomodes](https://www.gc-forever.com/yagcd/chap7.html#sec7.2.1) * [7.3 render to XFB](https://www.gc-forever.com/yagcd/chap7.html#sec7.3) * [7.4 vertical retrace](https://www.gc-forever.com/yagcd/chap7.html#sec7.4) * [7.5 set XFB Address](https://www.gc-forever.com/yagcd/chap7.html#sec7.5) * [8 3D Graphics Processing](https://www.gc-forever.com/yagcd/chap8.html#sec8) * [8.1 basic operations](https://www.gc-forever.com/yagcd/chap8.html#sec8.1) * [8.1.1 load BP Register](https://www.gc-forever.com/yagcd/chap8.html#sec8.1.1) * [8.1.2 load CP Register](https://www.gc-forever.com/yagcd/chap8.html#sec8.1.2) * [8.1.3 load XF Register](https://www.gc-forever.com/yagcd/chap8.html#sec8.1.3) * [8.1.4 load XF Register Indexed](https://www.gc-forever.com/yagcd/chap8.html#sec8.1.4) * [8.2 example processing loop](https://www.gc-forever.com/yagcd/chap8.html#sec8.2) * [8.2.1 init GX](https://www.gc-forever.com/yagcd/chap8.html#sec8.2.1) * [8.2.2 begin frame](https://www.gc-forever.com/yagcd/chap8.html#sec8.2.2) * [8.2.3 draw frame](https://www.gc-forever.com/yagcd/chap8.html#sec8.2.3) * [8.2.4 end frame](https://www.gc-forever.com/yagcd/chap8.html#sec8.2.4) * [8.2.5 close GX](https://www.gc-forever.com/yagcd/chap8.html#sec8.2.5) * [9 Joy-Bus Devices](https://www.gc-forever.com/yagcd/chap9.html#sec9) * [9.1 ID and Device List](https://www.gc-forever.com/yagcd/chap9.html#sec9.1) * [9.2 standard Controller](https://www.gc-forever.com/yagcd/chap9.html#sec9.2) * [9.2.1 Init](https://www.gc-forever.com/yagcd/chap9.html#sec9.2.1) * [9.2.2 Read Controller Status](https://www.gc-forever.com/yagcd/chap9.html#sec9.2.2) * [9.2.3 rumble Motor On](https://www.gc-forever.com/yagcd/chap9.html#sec9.2.3) * [9.2.4 rumble Motor Off](https://www.gc-forever.com/yagcd/chap9.html#sec9.2.4) * [9.3 Keyboard](https://www.gc-forever.com/yagcd/chap9.html#sec9.3) * [9.3.1 Types](https://www.gc-forever.com/yagcd/chap9.html#sec9.3.1) * [9.3.2 Scancodes](https://www.gc-forever.com/yagcd/chap9.html#sec9.3.2) * [9.3.3 Init](https://www.gc-forever.com/yagcd/chap9.html#sec9.3.3) * [9.3.4 Read Keyboard](https://www.gc-forever.com/yagcd/chap9.html#sec9.3.4) * [9.4 GBA](https://www.gc-forever.com/yagcd/chap9.html#sec9.4) * [9.5 Wavebird](https://www.gc-forever.com/yagcd/chap9.html#sec9.5) * [9.6 steering wheel](https://www.gc-forever.com/yagcd/chap9.html#sec9.6) * [9.7 DKongas](https://www.gc-forever.com/yagcd/chap9.html#sec9.7) * [9.7.1 Read Controller Status](https://www.gc-forever.com/yagcd/chap9.html#sec9.7.1) * [9.8 Resident Evil4 Chainsaw](https://www.gc-forever.com/yagcd/chap9.html#sec9.8) * [10 EXI Devices](https://www.gc-forever.com/yagcd/chap10.html#sec10) * [10.1 EXI Channel and Device List](https://www.gc-forever.com/yagcd/chap10.html#sec10.1) * [10.2 Retrieving the ID of an EXI Device](https://www.gc-forever.com/yagcd/chap10.html#sec10.2) * [10.3 Mask ROM](https://www.gc-forever.com/yagcd/chap10.html#sec10.3) * [10.3.1 Memory Map (Europe/PAL)](https://www.gc-forever.com/yagcd/chap10.html#sec10.3.1) * [10.3.2 Memory Map (USA/NTSC)](https://www.gc-forever.com/yagcd/chap10.html#sec10.3.2) * [10.3.3 Memory Map (Japenese/NTSC)](https://www.gc-forever.com/yagcd/chap10.html#sec10.3.3) * [10.3.4 Memory Map (Japenese/NTSC - Panasonic Q)](https://www.gc-forever.com/yagcd/chap10.html#sec10.3.4) * [10.3.5 Font Encoding](https://www.gc-forever.com/yagcd/chap10.html#sec10.3.5) * [10.3.6 Font Layout](https://www.gc-forever.com/yagcd/chap10.html#sec10.3.6) * [10.3.7 Operation](https://www.gc-forever.com/yagcd/chap10.html#sec10.3.7) * [10.4 RTC (Real-Time Clock)](https://www.gc-forever.com/yagcd/chap10.html#sec10.4) * [10.4.1 Operation](https://www.gc-forever.com/yagcd/chap10.html#sec10.4.1) * [10.5 SRAM](https://www.gc-forever.com/yagcd/chap10.html#sec10.5) * [10.5.1 Memory Map](https://www.gc-forever.com/yagcd/chap10.html#sec10.5.1) * [10.5.2 Operation](https://www.gc-forever.com/yagcd/chap10.html#sec10.5.2) * [10.5.3 Checksums](https://www.gc-forever.com/yagcd/chap10.html#sec10.5.3) * [10.6 AD16](https://www.gc-forever.com/yagcd/chap10.html#sec10.6) * [10.6.1 Operation](https://www.gc-forever.com/yagcd/chap10.html#sec10.6.1) * [10.6.2 Trace-Step Values](https://www.gc-forever.com/yagcd/chap10.html#sec10.6.2) * [10.7 Memory Cards](https://www.gc-forever.com/yagcd/chap10.html#sec10.7) * [10.7.1 Commands](https://www.gc-forever.com/yagcd/chap10.html#sec10.7.1) * [10.7.2 Operation](https://www.gc-forever.com/yagcd/chap10.html#sec10.7.2) * [10.8 Ethernet Adapter](https://www.gc-forever.com/yagcd/chap10.html#sec10.8) * [10.8.1 registers](https://www.gc-forever.com/yagcd/chap10.html#sec10.8.1) * [10.8.2 command-registers](https://www.gc-forever.com/yagcd/chap10.html#sec10.8.2) * [10.8.3 Operation](https://www.gc-forever.com/yagcd/chap10.html#sec10.8.3) * [10.9 UART](https://www.gc-forever.com/yagcd/chap10.html#sec10.9) * [10.10 SD Cards](https://www.gc-forever.com/yagcd/chap10.html#sec10.10) * [10.11 Viper 'Modchip'](https://www.gc-forever.com/yagcd/chap10.html#sec10.11) * [10.12 Ripper III GC 'Modchip'](https://www.gc-forever.com/yagcd/chap10.html#sec10.12) * [10.13 Qoob 'Modchip'](https://www.gc-forever.com/yagcd/chap10.html#sec10.13) * [10.14 NinjaMOD 'Modchip'](https://www.gc-forever.com/yagcd/chap10.html#sec10.14) * [10.15 Mario Party Microphone](https://www.gc-forever.com/yagcd/chap10.html#sec10.15) * [11 HSP Devices](https://www.gc-forever.com/yagcd/chap11.html#sec11) * [11.1 GB Player](https://www.gc-forever.com/yagcd/chap11.html#sec11.1) * [12 Memory Card Structure](https://www.gc-forever.com/yagcd/chap12.html#sec12) * [12.1 Overview](https://www.gc-forever.com/yagcd/chap12.html#sec12.1) * [12.2 Header](https://www.gc-forever.com/yagcd/chap12.html#sec12.2) * [12.3 Directory](https://www.gc-forever.com/yagcd/chap12.html#sec12.3) * [12.3.1 Directory Entries](https://www.gc-forever.com/yagcd/chap12.html#sec12.3.1) * [12.4 Block Allocation Map](https://www.gc-forever.com/yagcd/chap12.html#sec12.4) * [12.5 Checksums](https://www.gc-forever.com/yagcd/chap12.html#sec12.5) * [13 DVD Structure](https://www.gc-forever.com/yagcd/chap13.html#sec13) * [13.1 Disk header](https://www.gc-forever.com/yagcd/chap13.html#sec13.1) * [13.2 Disk header Information](https://www.gc-forever.com/yagcd/chap13.html#sec13.2) * [13.3 Apploader](https://www.gc-forever.com/yagcd/chap13.html#sec13.3) * [13.4 Format of the FST](https://www.gc-forever.com/yagcd/chap13.html#sec13.4) * [13.4.1 Format of a File Entry](https://www.gc-forever.com/yagcd/chap13.html#sec13.4.1) * [14 general File Formats](https://www.gc-forever.com/yagcd/chap14.html#sec14) * [14.1 BNR (Banner file format)](https://www.gc-forever.com/yagcd/chap14.html#sec14.1) * [14.2 DOL (Gamecube Executable)](https://www.gc-forever.com/yagcd/chap14.html#sec14.2) * [14.3 ELF (Executable and linkable Format)](https://www.gc-forever.com/yagcd/chap14.html#sec14.3) * [14.4 GCB (QOOB Flash Files)](https://www.gc-forever.com/yagcd/chap14.html#sec14.4) * [14.5 GCM (Gamecube Disc Image)](https://www.gc-forever.com/yagcd/chap14.html#sec14.5) * [14.6 GCI (Gamecube Game Save)](https://www.gc-forever.com/yagcd/chap14.html#sec14.6) * [14.7 GCP (Gamecube Memorycard Image)](https://www.gc-forever.com/yagcd/chap14.html#sec14.7) * [14.8 TGC](https://www.gc-forever.com/yagcd/chap14.html#sec14.8) * [14.8.1 Header](https://www.gc-forever.com/yagcd/chap14.html#sec14.8.1) * [14.8.2 embedded GCM](https://www.gc-forever.com/yagcd/chap14.html#sec14.8.2) * [14.9 VGC (Viper Flash Files)](https://www.gc-forever.com/yagcd/chap14.html#sec14.9) * [15 Game File Formats](https://www.gc-forever.com/yagcd/chap15.html#sec15) * [15.1 AFC (audio stream)](https://www.gc-forever.com/yagcd/chap15.html#sec15.1) * [15.2 AST (audio stream)](https://www.gc-forever.com/yagcd/chap15.html#sec15.2) * [15.3 ARC (RARC Archive)](https://www.gc-forever.com/yagcd/chap15.html#sec15.3) * [15.3.1 Header](https://www.gc-forever.com/yagcd/chap15.html#sec15.3.1) * [15.3.2 Nodes](https://www.gc-forever.com/yagcd/chap15.html#sec15.3.2) * [15.3.3 File Entries](https://www.gc-forever.com/yagcd/chap15.html#sec15.3.3) * [15.4 ARC (audio stuff)](https://www.gc-forever.com/yagcd/chap15.html#sec15.4) * [15.5 ASN](https://www.gc-forever.com/yagcd/chap15.html#sec15.5) * [15.6 AW ("audio wave"?)](https://www.gc-forever.com/yagcd/chap15.html#sec15.6) * [15.7 BAS ("audio script" ?)](https://www.gc-forever.com/yagcd/chap15.html#sec15.7) * [15.8 BCA](https://www.gc-forever.com/yagcd/chap15.html#sec15.8) * [15.9 BCK (animation of a .bmd skeleton)](https://www.gc-forever.com/yagcd/chap15.html#sec15.9) * [15.10 BDL](https://www.gc-forever.com/yagcd/chap15.html#sec15.10) * [15.11 BFN (font)](https://www.gc-forever.com/yagcd/chap15.html#sec15.11) * [15.12 BIN (binary file)](https://www.gc-forever.com/yagcd/chap15.html#sec15.12) * [15.13 BLO (screen layout for dialog screens)](https://www.gc-forever.com/yagcd/chap15.html#sec15.13) * [15.14 BMD (3d model with texture and skeleton)](https://www.gc-forever.com/yagcd/chap15.html#sec15.14) * [15.15 BMG](https://www.gc-forever.com/yagcd/chap15.html#sec15.15) * [15.16 BMP (window bitmap (!))](https://www.gc-forever.com/yagcd/chap15.html#sec15.16) * [15.17 BMT](https://www.gc-forever.com/yagcd/chap15.html#sec15.17) * [15.18 BCK ("Pack" file)](https://www.gc-forever.com/yagcd/chap15.html#sec15.18) * [15.19 BRK](https://www.gc-forever.com/yagcd/chap15.html#sec15.19) * [15.20 BTI](https://www.gc-forever.com/yagcd/chap15.html#sec15.20) * [15.20.1 Texture Header](https://www.gc-forever.com/yagcd/chap15.html#sec15.20.1) * [15.21 BTP](https://www.gc-forever.com/yagcd/chap15.html#sec15.21) * [15.22 BTK](https://www.gc-forever.com/yagcd/chap15.html#sec15.22) * [15.23 COL (collision triangles)](https://www.gc-forever.com/yagcd/chap15.html#sec15.23) * [15.24 DZB](https://www.gc-forever.com/yagcd/chap15.html#sec15.24) * [15.25 H4M](https://www.gc-forever.com/yagcd/chap15.html#sec15.25) * [15.26 JPA (particle data)](https://www.gc-forever.com/yagcd/chap15.html#sec15.26) * [15.27 JPC](https://www.gc-forever.com/yagcd/chap15.html#sec15.27) * [15.28 MTH ('Mute thp?')](https://www.gc-forever.com/yagcd/chap15.html#sec15.28) * [15.29 PAD](https://www.gc-forever.com/yagcd/chap15.html#sec15.29) * [15.30 PRM ('Parameters?')](https://www.gc-forever.com/yagcd/chap15.html#sec15.30) * [15.31 REL (relocatable module)](https://www.gc-forever.com/yagcd/chap15.html#sec15.31) * [15.32 SB](https://www.gc-forever.com/yagcd/chap15.html#sec15.32) * [15.33 SZS (packed RARC Archive)](https://www.gc-forever.com/yagcd/chap15.html#sec15.33) * [15.34 THP (video format)](https://www.gc-forever.com/yagcd/chap15.html#sec15.34) * [15.34.1 Header data](https://www.gc-forever.com/yagcd/chap15.html#sec15.34.1) * [15.34.2 Components structure](https://www.gc-forever.com/yagcd/chap15.html#sec15.34.2) * [15.34.3 VideoInfo Structure](https://www.gc-forever.com/yagcd/chap15.html#sec15.34.3) * [15.34.4 AudioInfo Structure](https://www.gc-forever.com/yagcd/chap15.html#sec15.34.4) * [15.34.5 Frame data](https://www.gc-forever.com/yagcd/chap15.html#sec15.34.5) * [15.34.6 Video Frames](https://www.gc-forever.com/yagcd/chap15.html#sec15.34.6) * [15.34.7 Audio Frames](https://www.gc-forever.com/yagcd/chap15.html#sec15.34.7) * [15.35 TPL (Texture Palette)](https://www.gc-forever.com/yagcd/chap15.html#sec15.35) * [15.36 YMP (height map)](https://www.gc-forever.com/yagcd/chap15.html#sec15.36) * [16 Compression Formats](https://www.gc-forever.com/yagcd/chap16.html#sec16) * [16.1 Yay0](https://www.gc-forever.com/yagcd/chap16.html#sec16.1) * [16.1.1 compression](https://www.gc-forever.com/yagcd/chap16.html#sec16.1.1) * [16.1.2 de-compression Code](https://www.gc-forever.com/yagcd/chap16.html#sec16.1.2) * [16.1.3 Font Data](https://www.gc-forever.com/yagcd/chap16.html#sec16.1.3) * [16.2 Yaz0](https://www.gc-forever.com/yagcd/chap16.html#sec16.2) * [16.2.1 de-compression Code](https://www.gc-forever.com/yagcd/chap16.html#sec16.2.1) * [17 Graphic Formats](https://www.gc-forever.com/yagcd/chap17.html#sec17) * [17.1 YCbYCr](https://www.gc-forever.com/yagcd/chap17.html#sec17.1) * [17.2 I4 (4bit indexed)](https://www.gc-forever.com/yagcd/chap17.html#sec17.2) * [17.3 IA4 (4bit indexed with alpha)](https://www.gc-forever.com/yagcd/chap17.html#sec17.3) * [17.4 I8 (8bit indexed)](https://www.gc-forever.com/yagcd/chap17.html#sec17.4) * [17.5 IA8 (8bit indexed with alpha)](https://www.gc-forever.com/yagcd/chap17.html#sec17.5) * [17.6 CI4 (compressed 4bit indexed)](https://www.gc-forever.com/yagcd/chap17.html#sec17.6) * [17.7 CIA4 (compressed 4bit indexed with alpha)](https://www.gc-forever.com/yagcd/chap17.html#sec17.7) * [17.8 CI8 (compressed 8bit indexed)](https://www.gc-forever.com/yagcd/chap17.html#sec17.8) * [17.9 CIA8 (compressed 8bit indexed with alpha)](https://www.gc-forever.com/yagcd/chap17.html#sec17.9) * [17.10 RGB4A3](https://www.gc-forever.com/yagcd/chap17.html#sec17.10) * [17.10.1 RGB4A3 Pixel Format](https://www.gc-forever.com/yagcd/chap17.html#sec17.10.1) * [17.11 RGB5A1](https://www.gc-forever.com/yagcd/chap17.html#sec17.11) * [17.11.1 RGB5A1 Pixel Format](https://www.gc-forever.com/yagcd/chap17.html#sec17.11.1) * [17.12 RGB565](https://www.gc-forever.com/yagcd/chap17.html#sec17.12) * [17.12.1 RGB565 Pixel Format](https://www.gc-forever.com/yagcd/chap17.html#sec17.12.1) * [17.13 RGBA8](https://www.gc-forever.com/yagcd/chap17.html#sec17.13) * [17.13.1 RGBA8 Pixel Format](https://www.gc-forever.com/yagcd/chap17.html#sec17.13.1) * [17.14 S3TC](https://www.gc-forever.com/yagcd/chap17.html#sec17.14) * [17.14.1 CMPR](https://www.gc-forever.com/yagcd/chap17.html#sec17.14.1) * [18 Appendix](https://www.gc-forever.com/yagcd/chap18.html#sec18) * [18.1 GCC Quick How To](https://www.gc-forever.com/yagcd/chap18.html#sec18.1) * [18.1.1 compile ASM to object:](https://www.gc-forever.com/yagcd/chap18.html#sec18.1.1) * [18.1.2 compile C to object:](https://www.gc-forever.com/yagcd/chap18.html#sec18.1.2) * [18.1.3 compile C++ to object:](https://www.gc-forever.com/yagcd/chap18.html#sec18.1.3) * [18.1.4 link objects](https://www.gc-forever.com/yagcd/chap18.html#sec18.1.4) * [18.1.5 remove unneeded sections (debug info etc) from object](https://www.gc-forever.com/yagcd/chap18.html#sec18.1.5) * [18.1.6 convert object to plain binary](https://www.gc-forever.com/yagcd/chap18.html#sec18.1.6) * [18.1.7 convert absolute address into filename/line number/function](https://www.gc-forever.com/yagcd/chap18.html#sec18.1.7) * [18.1.8 Building a Crosscompiler](https://www.gc-forever.com/yagcd/chap18.html#sec18.1.8) * [18.1.9 Linker Script](https://www.gc-forever.com/yagcd/chap18.html#sec18.1.9) * [18.1.10 Startup Code](https://www.gc-forever.com/yagcd/chap18.html#sec18.1.10) * [18.2 Boot Process Details](https://www.gc-forever.com/yagcd/chap18.html#sec18.2) * [18.2.1 BS - Bootstrap 1](https://www.gc-forever.com/yagcd/chap18.html#sec18.2.1) * [18.2.2 BS2 - Bootstrap 2](https://www.gc-forever.com/yagcd/chap18.html#sec18.2.2) * [18.2.3 Apploader](https://www.gc-forever.com/yagcd/chap18.html#sec18.2.3) * [18.2.4 Main DOL executable](https://www.gc-forever.com/yagcd/chap18.html#sec18.2.4) * [18.3 Game and Maker Codes](https://www.gc-forever.com/yagcd/chap18.html#sec18.3) * [18.3.1 Gamecodes](https://www.gc-forever.com/yagcd/chap18.html#sec18.3.1) * [18.3.2 Game Serial ID](https://www.gc-forever.com/yagcd/chap18.html#sec18.3.2) * [18.3.3 Makercodes](https://www.gc-forever.com/yagcd/chap18.html#sec18.3.3) * [18.4 Macronix Chip IDs](https://www.gc-forever.com/yagcd/chap18.html#sec18.4) * [18.5 chip simelarities](https://www.gc-forever.com/yagcd/chap18.html#sec18.5) * [18.6 Easter Eggs](https://www.gc-forever.com/yagcd/chap18.html#sec18.6) * [18.7 Terms and Acronyms](https://www.gc-forever.com/yagcd/chap18.html#sec18.7) * [19 References](https://www.gc-forever.com/yagcd/chap19.html#sec19) * [19.1 Sources](https://www.gc-forever.com/yagcd/chap19.html#sec19.1) * [20 Credits](https://www.gc-forever.com/yagcd/chap20.html#sec20) [index](https://www.gc-forever.com/yagcd/index.html#idx1) ---