the cutting room mirror

GameCube

This article has a talk page!
view on tcrf.net

There is a copyright string header in the IPL ROM. ArtX was the company that developed the GameCube's GPU. They were bought out by ATI in 2000.

Note that in the below table, PAL v1.1 uses "MPAL" in the version string due to only being shipped on systems in Brazil, which uses the 60Hz PAL-M format.

Version

Text

NTSC v1.0

(C) 1999-2001 Nintendo. All rights reserved.(C) 1999 ArtX Inc. All rights reserved.

NTSC v1.1

(C) 1999-2001 Nintendo. All rights reserved.(C) 1999 ArtX Inc. All rights reserved.NTSC Revision 1.1

NTSC v1.2

(C) 1999-2003 Nintendo. All rights reserved.(C) 1999 ArtX Inc. All rights reserved.NTSC Revision 1.2

PAL v1.0

(C) 1999-2001 Nintendo. All rights reserved.(C) 1999 ArtX Inc. All rights reserved.PAL Revision 1.0

PAL v1.1

(C) 1999-2001 Nintendo. All rights reserved.(C) 1999 ArtX Inc. All rights reserved.MPAL Revision 1.1

PAL v1.2

(C) 1999-2003 Nintendo. All rights reserved.(C) 1999 ArtX Inc. All rights reserved.PAL Revision 1.2

Unused Graphics#

Please elaborate.
Having more detail is always a good thing.

Gcn-kirby-Icon-32.png

An unused icon texture exists in the BIOS as a dummy icon for Memory Card save data, a small render of Kirby that was used on the Japanese website for Kirby 64: The Crystal Shards.

Unused SDK Support#

Nintendo 64 Accessories#

As the GameCube's JoyBus Protocol is an incremental upgrade over the N64's (as the SNES is with regards to the NES), it is theoretically possible for one console to drive the other's accessories if the software is designed to do so. While unimplemented in any commercial release, the SDK has strings that reference all of the known official N64 peripherals, including obscure ones such as the 64DD's keyboard and mouse. Chunks of text containing these strings can be found in various games, including Wario World, while GameCube Service Disc v1.0/03 can detect N64 controllers.

(Source: 1, 2)

Memory Card 2043#

The system supports Memory Cards of sizes up to 2,043 blocks (128 Mb), though for whatever reason Nintendo never released one with a capacity higher than 1,019 blocks (64 Mb). Third-party companies such as Mad Catz have released unofficial Memory Cards that utilize the 2,043-block maximum, and Nintendo's DOT-005 Memory Card Emulator developer tool is capable of emulating Memory Cards as high as 4,091 blocks (256 Mb). Games may also recognize Memory Cards of sizes 123 and 507 blocks, in addition to the official size capacities of 59, 251, and 1,019 blocks.

Blocks

Size

Usable

Total

Bits

59

64

4 Mb

123

128

8 Mb

251

256

16 Mb

507

512

32 Mb

1019

1024

64 Mb

2043

2048

128 Mb

4091

4096

256 Mb

Logo Reflection#

The reflection map on the GameCube logo is a higher-resolution version of the reflection map used in The Legend of Zelda: Ocarina of Time and Majora's Mask for the N64 logo and shiny items:

Ocarina of Time/Majora's Mask

GameCube Menu

Alternate Music#

If you hold Z on one or four controllers while turning on the GameCube, the music that plays during the logo animation will be different.

Audio

Description

Standard startup sound.

Startup sound when Z is held on one controller. This is referred to as "baby" in the source code.

Startup sound when Z is held on all four controllers. This is referred to as "歌舞伎" (kabuki) in the source code.

This page or section needs more audio.
There's a whole lotta words here, but not enough audio. Please fix this.
Specifically: Get audio rips of the network configuration menu theme.

The main menu ambience doesn't sound like much at first listen. However, if it is sped up by 19× it becomes clear that it's the Famicom Disk System's startup fanfare slowed down.

FDS

GameCube (sped up)

(Source: ABoredGameDev)

The network configuration menu from the console's SDK features a similar Easter egg. Speeding its own ambient background music up by 19× reveals that it's a slowed-down rendition of the Famicom Disk Writer theme. This one's much easier to miss, given that only one GameCube game ever made use of the menu (the other four online-compatible games had bespoke configuration menus built in).

(Source: Maxwell Yezpitelok)

Jac/AI/Heap::
OSAlloc
Jac/Alloc2:: Request SIZE %d
Jac/AI/Init::
MONO-MIX
MONO(W)-MIX
ArAlloc:: %x %x %x
/audiorom.img
Jac/ARAM/DVD:: audiorom.img
Jac/ARAM/DVD:: audiorom.img(サイズ %xh bytes)
Jac/ARAM/Init:: ARAMDMA
Jac/ARAM/Init:: ARAM
DSPSync:: SendMiss
UPDATE-DAC
Miss Send AudioSync
Jac/Thread/Proc::
Jac/thread/DSPSync::
Jac/Thread/Init::
Jac/Thread/Init:: —\–
Message Full
Jac/NEOS:: NEOS
Jac/NEOS::
/audiorom.img
Jac/NEOS:: CPU
Jac/NEOS:: audiorom.img
Jac/NEOS::CPU
NEOS THREAD
DSP-MAIN
SFR-UPDATE
Jac/DVDT::DVDThread Paused!
Jac/DVDT::DVDThread UnPaused!
Jac/DVDT::DVD
Jac/DVDT::
Jac/DVDT::DVD.¨ARAM ([%s] %d bytes)
Jac/DVDT::          Finish (%d msec)
Jac/DVDT :: Registered file %s, (No.%d ID.%d )
Jac/DVDT :: Cannot find file to regist %s
SUPERDMA
FastCopy
SLOWCOPY
DSPInit(): MXIC Boot failed
DSP Err:not received mail (to DSP) is remained
DSP Err:not received mail (from DSP) is remained
Error: DSP now in framework
Parameter Input : %8x
PARAM[%d] = %x[h]
Output Buffer : %8x
DECODE BEFORE[%d] = %x[h]
DECODE AFTER[%d] = %x[h]
Do CARD Task
CARD Task Finish
Do AGB Task
AGB Task Finish
Audio Error:: DSP_SECURITY_CALLBACK is NULL
dsp_cardunlock.c
Failed assertion 0 <= chan && chan < 2
Rel.Jc (%x) Have DSPch  %x
DSPch Sign/Stat/CB is %x, %x, %x
Error: No Member
ROOTJC Error
ROOTJC Error2
Jcs %x : Allocate %d Channels
PHY. %x Log->phy. %x
Log. %x phy->log. %x
Log->phy->log  %x
Cut
DSPSTOP (JC= %x)
-->call %8x
Jesus/DrvIF/CommonCB:: Error: Cut
--------FORCESTOP
(PHY.%x ) (JC =%x)
Jesus/DrvIF/Callback::
Jesus/DRVINT:
FINISH
Error:
UPDATECALL
NULL
(JC %x)
Jesus/DrvIF/Stop::
----
-----------------:
Jesus/DrvIF/Play::
Jesus/DrvIF::
relwait
Ch%dINIT %d:CUR %x
Jesus/DSP-Interface::
Jesus/DspIF::
Bad INST Program Change %d
Bad PERC Program Change %d
Janus/BankDrv:: Warning: No Key-Map
Janus/BankDrv:: Warning:Velocity-Map (%d is Upper %d)
Error: No V-Map Error
Error: NULL Command Pointer (cmd. %x )
SEQP %x  Access Offset %d
Jam/Seq :: Error Note %d
Jam/main :: r-noteoff error
Jam/seq :: Sequence Error occerd
I try to continue
##########Error:: Track %d ‚
Jam/setup:: Error : Cannot back sequence structure %x
Jam/Setup::RootSeq
Jam/Setup:: Error : RootSeq
(DeAlloc)
Parent_Relation %d
Error:: No FAT Memory
Jam/Seq::ROOT
Jam/Seq::SEQP
StartSeq:
Jam/Track/Init/Warn::
(%s) ofs %d size %d
Janus/BANK/Init:: Virtual
Janus/BANK/Init::
Janus/Wave/Init::
iplrom.com
Test::DVD Bank&Wave Read
----
----
Reset-ReEntry
Remain Chan. %d
ipl_0.aw
Inf
NaN
BS2 ERROR >>> SHOULD NEVER REACH HERE
appLoaderLength
0x%x
appLoaderFunc1
0x%x
Apploader Initialized
Addr [0x%x] length [0x%x] offset [0x%x]
/opening.bnr
BS2Mach.c
BS2 ERROR >>> Banner buffer address is not set
BS2 ERROR >>> Banner buffer length (0x%08x) is not enough
BS2 ERROR >>> UNKNOWN STATE
DEMOInit: invalid TV format
not support field rendering
gMRbuild.c
ERROR: This renderer ONLY supports J3DBinary1.5
gMRshape.c
ERROR: This renderer doesn't support Enveloped Model

Unused Text#

Present at 0x7FFC6 in the IPL ROM is some text that was used to test the Game Play section of the menu.

pokemon kingin
2000
@NINTENDO
The new PokeMon Stadium!!!

"pokemon kingin" refers to the game released internationally as Pokémon Stadium 2.

The leaked source code confirms that it was used for the Game Play section in a C header file named 2d_gameplay_2_English.h:

#define MSG_G901    8 // [titl] pokemonkingin
#define MSG_G902    9 // [makr] 2000@NINTENDO
#define MSG_G903    10 // [info] ThenewPokeMonStadium!!!

Revisional Differences#

Hardware#

The DOL-001 received a minor revision that removed the connector for Serial Port 2, which never received any official, non-developer use.

Later, the DOL-101 removed the proprietary Digital AV Out connector as well as interchangeable "jewels" (the round logo plates on top of the disc cover). Curiously, the console's digital audio output went officially unused. The first-party component/d-terminal cables only provide video (a secondary AV cable is required for audio).

Software#

v1.0

v1.1

GCN-gameplay1.0.png
GCN-pressstart1.0.png

GCN-gameplay1.1.png
GCN-pressstart1.1.png

The rotating cubes and "PRESS START" in the Game Play section of the menu were changed from pink to purple.

v1.0

v1.1

The background ambiance in v1.1 was slightly altered to omit the fade in/out effect on each note.

Regional Differences#

Language Select#

European revisions of the BIOS boast an additional option in the System Settings submenu, allowing the user to change the language to one of six commonly spoken European languages. It is notably absent in the North American BIOS, even though languages such as Spanish and French are also widely spoken in the Americas.

Europe

US

Despite this, internally, NTSC-U/NTSC-J BIOS versions support both the English and Japanese operating environments. Several NTSC devkit models feature a region toggle switch that was omitted from retail consoles.

Brazilian NBA Courtside 2002 Patch#

In the Brazil-exclusive PAL-M GameCube, upon starting a game the IPL will check to see if the inserted game has the ID "GNBE", which is the ID of NBA Courtside 2002. If the check returns true (i.e. the game has the ID GNBE), a special patch will be applied that prevents a crash only found when playing said game on a Brazilian GameCube: during the game's start-up sequence, it attempts to access GPR30, which results in a DSI exception on a Brazilian GameCube due to being set to address zero (the standard practice for all other GameCube and Wii games). As the patch simply copies the contents of the stack pointer over to GPR30 prior to launching the executable, the game presumably used register 30 as a stack pointer as well.

(Source: ecumber05)

(Explanation: Original TCRF research)