We just released a Feb. 5 '89 prototype of DuckTales for the NES!
If you'd like to support our preservation efforts (and this wasn't cheap), please consider donating or supporting us on Patreon. Thank you!

Star Fox Adventures

From The Cutting Room Floor
Jump to navigation Jump to search

Title Screen

Star Fox Adventures

Developer: Rare
Publisher: Nintendo
Platform: GameCube
Released in JP: September 27, 2002
Released in US: September 23, 2002
Released in EU: November 22, 2002
Released in AU: November 15, 2002

AreasIcon.png This game has unused areas.
SourceIcon.png This game has uncompiled source code.
DevTextIcon.png This game has hidden development-related text.
ObjectIcon.png This game has unused objects.
GraphicsIcon.png This game has unused graphics.
Sgf2-unusedicon1.png This game has unused abilities.
SoundIcon.png This game has unused sounds.
TextIcon.png This game has unused text.
DebugIcon.png This game has debugging material.
LevelSelectIcon.png This game has a hidden level select.
RegionIcon.png This game has regional differences.

ProtoIcon.png This game has a prototype article
BugsIcon.png This game has a bugs page
PrereleaseIcon.png This game has a prerelease article

Originally designed for the Nintendo 64 as Dinosaur Planet with no relation to the franchise, Star Fox Adventures was the last game made by Rare for a non-handheld Nintendo console and the only Rare game for the GameCube. It also has a somewhat divisive reaction, due to its departure from the Star Fox formula.

To do:
  • Get all the unused graphics up here.
  • Get all the unused music and sounds up here.


Dinosaur Planet Leftovers
Leftovers from the game that never was.
Unused Voice Clips
Dialogue the player will never hear in the game.
Unused Maps
Unused, deleted, and renamed maps.

Unused Graphics

splashScreen.BIN contains an early logo for the game.

A debug font can be found in several of the texture files.

This cube appears when an object can't be loaded. The rainbow texture likewise replaces any texture that can't be loaded; in version 1.01, it was changed to gray.

The HUD icon texture includes unused language icons for French, German, Italian, Spanish (Spain), and Japanese. Notably, there is no flag for English, and the French flag is rotated 180 degrees.

These graphics are used in the European version, which features a language selection in the Options menu, but there the French flag is oriented correctly and a UK flag is added for English.

(Source: Original TCRF research)

Unused Text

Inside GAMETEXT.bin is an early script for the game, with several differences from the final version and even including leftovers from when it was Dinosaur Planet.

"How about playing a little game?"
"The rules are simple... Choose how many Scarabs you wish to gamble."
"I will throw them into this cave and you have to collect them within my time limit."

Same as the final version, except "The rules are simple" was omitted.

"Okay,whats with all the noise?"
"I am here with the rest of Starfox Team,"
"We have come to save your planet."
"Queen calls out"
"Vesujo, ohw ehj Miyzh.Ho jicz ohw mho Jehd."
"SCALES Kuzt szojh.Ku Bawd Kuztem ICEMOUNTAIN."
"I am sorry lady, but I can not understand what you are saying."

An early version of Fox's introduction to Queen EarthWalker, most likely. The dialogue is very different, including a piece of dialogue written in some early form of Dino language.

"You're lucky it's a hot spring or you'd be frozen by now."
"Why you little ..."
"Hey, I wouldn't if I were you, my dad's a King EarthWalker and he'll bash you up!"
"I don't think he'll be doing any bashing, he's been captured."
"That's why I've been sent to rescue you!"
"He's been captured?"
"That's right! So stop moaning and let's get you back to your home!"

The last line was re-written to say "That's right! It was your mother that sent me to find you." and the cutscene was expanded so that Tricky and Fox talk about Queen EarthWalker's illness. Also, note the lack of Dino, making it likely that it's a Dinosaur Planet leftover.

"I cannot let you in yet."
"The Store Keeper has gone out to get supplies."

This never happens in the final game, as the shopkeeper is always within the store.

"They sent you to rescue me? ... Hmmpphh."
"The SharpClaws haven't fed me in days so I'm feeling a bit weak."
"If you bring me 12 Frost Weeds I'll be able to get myself out."
"Hurry boy, I'm starving in here!"

Garunda Te only needs three Frost Weeds to break free in the final game, although he doesn't mention how many of them are needed. The dialogue is also worded differently.

"Who are you?"
"My name is Fox, and this is the Crown Prince of the EarthWalkers."
"We have been sent by the SnowHorn Guardian to find the SpellStone."
"Do you know where it's hidden?"
"My name is Belina Te. The Guardian is my father."
"Did he send you to rescue me?"
"I'm sorry Belina, but he feels you have dishonoured the Guardians."
"We were only sent to find the SpellStone."
"The old fool. I had to save the tribe."
"If it wasn't for my father being a Guardian,"
"none of this would have happened in the first place!"

What's odd about this dialogue is that Garunda is still said to be a guardian, but the dialogue is otherwise similar to what's in the final game.

"To power the Jet Bike push forwards on the"
"CONTROL STICK to go faster."
"Pull back to slow down."
"Dodge left and right to avoid obstacles and beat"
"the SharpClaws!"

In the final game, there are no instructions as to how to use the jet bike.

",�t?QWake up!"
"Somebody coming."
"Here we go!"

This is the same dialogue used when first going to Moon Mt. Pass, but the last line was removed.


Galadon is probably an early name for Galdon.

"PGrab the key, but don't wake the Sharpclaw."

In the final game, Fox has to get his staff back rather than get a key.

"?If you find my children I will be so happy!"
"?If you find all four of my children you will be greatly rewarded.  Please hurry!"

The queen simply never says this.

"Activate all four Totem Poles| within the Lightfoot Village.| Beat Musclefoot's all time record| of 4m 30secs to pass the test"
"Rapidly press the A button| to compete against| the mighty Musclefoot.| Only the strongest can| push him into the pit!"

In the final game, the player is given 2:30 to complete the totem pole test (or the Tracking Test, as it's called in-game). The Test of Strength's descriptions are nearly the same as the final version, but it shows a graphic of the A button rather than simply putting it in text and MuscleFoot isn't described as "mighty".

"Thanks for saving my eggs. They will be ready to hatch soon."

Presumably said after saving a ThornTail's eggs. She doesn't say this.

Unused Help Texts

Forcing the PDA to be enabled before Fox becomes playable allows you to see unused Slippy's Advice text for Krazoa Palace, as well as the descriptions for the ThornTails in the area, which are simply blank.

StarFoxAdventuresNotDisplayed.png StarFoxAdventuresBlankDescription.png

Additionally, two help texts are defined for the end of the game, but never shown, since it's not possible to save after defeating the final boss.

  • Saved Dinosaur Planet
    • Andross!! He's back again, Fox! Shoot the weak points on the Krazoa Head, then when he turns around, take out his hands! Use your bombs to make him reveal his true form, then blast away at his brain! Keep your nerve, Fox, you're almost there.
  • Saved Dinosaur Planet
    • Back again, Fox!? Time to teach Andross another lesson. Have fun!
(Source: Original TCRF research)

Previously On

SFA previouslyOn.png

Gecko code 0411A348 38000002 will display an unused menu in place of the save file select. This menu seems to be incomplete, and probably would have just displayed the past few actions like the final save select menu does.

(Source: Original TCRF research)

E3 and Spaceworld 2001 World Map

アーウィンステージ ArWing Stage (Nintendo SpaceWorld 2001)
0000E7C8	level
0000E7CE	choose     
0000E7D5	select     
0000E7E0	rotate
0000E7E7	zoom
0000E7EC	confirm     
0000E7F4	exit     
0000E7F9	TM & (C) 2001 NINTENDO / RARE

(some of these are used on the world map screen in the final game, but not all.)

Alternate Languages

In the European version, you can select from English, French, Italian, Spanish, and German in the options menu. Although the US version doesn't have this option, it does still feature all five of these languages as well as Japanese. The Gecko code 043DC9E4 000000xx (1.00) or 043DD664 000000xx (1.01) will switch the language:

00    English
01    French
02    German
03    Italian
04    Japanese
05    Spanish

Alternatively, the following code will make the game act as if it's running on a Japanese console, which changes the language as well as the color of the Nintendo logo. This also causes the game to reject non-Japanese memory cards and offer to format them. (The middle option allows to continue without using a memory card.)

04242F20 38600001
04242F24 4E800020
(Source: Original TCRF research)

Unused Object Descriptions

The large mushrooms that emit toxic spores have a hint text that should appear in the PDA when set to Information mode: "MUSHGUS: Watch out for the deadly gas!" However, this text will not show up, because the mushrooms can't be interacted with (no heart/button icon appears above them).

In the kiosk demo version, the mushrooms can be interacted with, and the message can be seen.

(Source: Original TCRF research)

Unused Mechanics

Laser Spell

The Gecko code 042AB410 38000958 (US v1.0) will replace the Fire Blaster spell with an unused Rapid-Fire Laser spell. Its model is missing, so it appears as a large cube.

(Source: Original TCRF research)


In unknown circumstances, while climbing a ladder, the A button text on the HUD is set to "Rob" instead of "Slide". This text is otherwise unused, and is not displayed. This text is actually grouped with the pause menu options (Status, World Map, Advice...), suggesting it refers to the character ROB - the only crew member not to appear on the menu - rather than the act of robbery.

To do:
Find out what triggers this. Where can you climb a ladder with the A button not saying Slide?
(Source: Original TCRF research)

Loading Screen

If the game takes more than 10 seconds to load at startup, the text "Loading..." appears. However, this normally never happens. A Gecko code can force it to appear:

USA 1.00          04115E48 38000258
Japan 1.00        04115E68 38000258
USA/Japan 1.01    041160E4 38000258
Europe Kiosk      04122F28 38000258
Europe 1.00       04116264 38000258
Europe 1.01       04116274 38000258
(Source: Original TCRF research)

Unused Items

Bad Guy Alert

But how does it know?

This item would have been sold in the ThornTail Shop for 45, 47, or 50 scarabs, depending how generous the shopkeeper is feeling. It's set to never be available. According to some lines in the unused GAMETEXT.bin, this would have made the staff glow red when baddies are nearby. In the final game, Tricky alerts you to their presence instead; there seems to be no code left to make the staff glow red.

This item has a description that would show in the Status screen on the pause menu:

The Staff will glow red when a baddie is nearby.

As well as text that would appear when buying it:

  • This is the BAD GUY ALERT.
  • Your Staff will glow red...
  • ...whenever there is a baddie nearby.


Fox's PDA would have also been for sale, at a price of 18, 20, or 22 scarabs. It uses the same text as Bad Guy Alert. It's set to be available if you don't already have the PDA, but since Fox starts with it and never loses it, this can never happen.

Even if these items are forced to be available, they're nowhere to be found in the shop. The PDA has an object (SPPda), but forcing this object to appear just displays the placeholder cube and doesn't allow any interaction. There is no object associated with Bad Guy Alert.


I don't know either.

Two instances of an item labelled "Unknown" are present in the C menu, but set to never be visible. The icon resembles the "warp activator" seen in prerelease Dinosaur Planet footage, and indeed the "have used this item" flags for these two items are also the flags that enable certain warps.

One of these is actually given to you upon releasing the third Krazoa Spirit, but is immediately removed again.

Duplicate Items

Among the items that can appear in the C menu are a second Alpine Root (which doesn't display a count), and a total of five Fire SpellStones (of which only two are used).

(Source: Original TCRF research)

Fuel Cells

Although fuel cells are collected and used throughout the game, they are consumed automatically when you enter the Arwing. They appear in the inventory with the label "Use Fuel Cells", but there is no situation in which you can actually "use" them this way.

(Source: Original TCRF research)


Gecko code 0231b57c 00000002 will replace the "Call Tricky" menu item with an unused "Decoy" item, which seems to do nothing. (The text and icon are unchanged, but an unused voice clip will play, and Tricky won't be called.)

This command also has a description that would be shown in the Status screen on the pause menu:

With this command you can use Tricky as a decoy while you sneak around without getting noticed!
(Source: Original TCRF research)


Dinosaur Planet for the N64 used a "dynamically loaded library" (DLL) system to automatically load code into memory as needed and unload it when finished, to reduce memory consumption. The final game still technically uses this system, but since the GameCube has plenty of RAM (and discs are much slower than cartridges), all the code is kept in RAM at all times, and "loading" or "unloading" a DLL does not actually do anything other than change a reference counter. As a result, much of the code written after the switch to GameCube does not bother to "load" a DLL before using it.

The file DLLS.tab would have been used to look up code in the corresponding DLLS.bin file, which is still present in the Kiosk Demo disc, and contains code compiled for the N64.

(Source: Original TCRF research)

Unused Teleport Animation

Setting byte 8CA of the player state to 1 activates this unused teleport effect, which draws a plane in front of the player. It's quite imperfect, as it hides other objects as well, and the player's tail can poke through it.

To see it in action, use the following Gecko code on US V1.0 and press B:

283398d2 00000004
48000000 803428f8
58010000 000000b8
80000000 00000001
94010000 000008ca
e2000001 80000000
(Source: Original TCRF research)

Odd SharpClaw Disguise Behaviour

While not technically unused, the SharpClaw Disguise has a few effects that seem to be completely arbitrary, and would likely never be discovered by most players:

  • The gas in the CloudRunner Fortress Power Chamber will not hurt you. This does not apply to toxic gas elsewhere.
  • When rescuing the LightFoot at Cape Claw, one of the enemies will ignore you, but also be invincible until you remove the disguise.
  • Something relating to the rendering of transparent polygons.
  • Something relating to the first Water SpellStone.

Despite their obscurity, these effects are not bugs; in each case, the code specifically checks the "player disguised" flag.

To do:
Investigate the last two items.
(Source: Original TCRF research)

Extra WarpStone Destinations

Are you ready to crash?

In addition to Ice Mountain and Krazoa Palace, the WarpStone once had additional warp destinations that could be unlocked. By setting the appropriate Game Bits, the extra destinations can be unlocked:

GameBit Destination
0ABA Cape Claw
0ABD Ocean Force Point
0ABE LightFoot Village
0ABF Moon Mountain Pass
0AC0 Volcano Force Point
0AC1 Ice Mountain

After setting one or more of these bits, the player can choose a destination by selecting Ice Mountain, then after being asked if they're ready to warp, pressing up or down on the control stick before pressing A.

Unfortunately, this menu no longer works - selecting a destination will only crash the game, as the code responsible for warping you has been deleted. The menu is also invisible. It can be forced to appear with the code 023dd90c 00000100, but appears strangely - there is only one item (shown at double size, because it's actually the level name shown on screen when you enter the area) and it appears in the corner of the screen. (Other items' text isn't loaded on this map.)

The items also use a window type that isn't used elsewhere, which has its own background and border images that are missing from the final game.

Additionally, an earlier version of the WarpStone's text, which probably would have been used with this feature, is loaded in ThornTail Hollow and LightFoot Village; it contains six strings:

  • Krazoa
  • Warp
  • Shop
  • OK
  • Cancel
  • Change

Internally, LightFoot Village is called SwapCircle, ThornTail Hollow is called SwapHol, and an NPC refers to the shop as the WarpStone Shop.

(Source: Original TCRF research)

Unused Menu

DLL 0038 implements a strange, partially-deleted menu, that may have appeared either on the title screen or while talking to the WarpStone. Code 042C6E24 00000038 will make it replace the Options menu. This menu has two items:

  1. (Text ID 0) Attempts to load an animation, and crashes.
  2. (Text ID 1) Saves the game. (Doing this on the title screen will erase slot #1.)

Press A to select an option, or B to close the menu, which attempts to warp you to map 0 (which doesn't exist). Use up and down on the control stick to select an option.

This menu is strange in several ways:

  • The menu isn't initialized correctly, so opacity is left at 0%.
  • The text IDs are invalid. ID 0 is used for the save select screen; ID 1 seems to be nonexistent.
  • The options use text window A1; the highest valid window ID is 96.
  • The options are linked in an unusual way: the second option is above the first, and has no option linked to it. This means you must press Up to reach the second option, after which there's no way to get back to the first option.

Development Stuff

Debug Cheat Codes

Now look what you did.
Star Fox Adventures Chapter Select.png

Two cheat codes exist on the save file select screen. Both must be entered after selecting a file but before starting the game, and while holding Z. Each button must be pressed within 1/4 second of the last. If successful, a chime will sound.

Enable Debug Text

Press X, Y, X, Y, L (all the way down). This enables displaying error messages if the game crashes. Alternatively, use Action Replay/Gecko code 003DDA28 00000001. (The same code will work for both.)

Chapter Select

Press D-pad Down, D-pad Up, Y, Y, R (all the way down). Start the game, and you'll be able to choose a chapter to start from. Selecting a chapter will replace the selected save file with one from the disc (in path "/savegame/saveN.bin" where N is the chapter number). This will also change the name of the selected save file to "FOX". Alternatively, use the following Gecko/AR code and just press Z.

USA 1.00      04119D90 60000000
USA 1.01      0411A038 60000000
Europe 1.00   0411A26C 60000000
Europe 1.01   0411A2A0 60000000
Japan 1.00    04119DB0 60000000
Japan 1.01    0411A038 60000000

Selecting Chapter 1 will start a new game, just like selecting an empty save file normally. This, however, is a bug - save1.bin actually starts in the Walled City. This bug can be fixed with the code 0411AFA8 28050000 (USA v1.00), allowing this very unusual save file to be accessed. While the others seem to have been made by actually playing the game normally, in this one, Fox starts in the Walled City with no magic, 3 hearts, Tricky at his side but no commands, the Rock Candy, 3 GrubTub Fungus, and a couple spells, with a play time of 30 seconds. Krystal, on the other hand, has somehow last saved on the title screen map.

This feature has another minor bug: if you press B to back out of the chapter list and instead select a different save file, the chapter select will display, but with only the "Play Game" option.

(Source: Original TCRF research)

Debug log messages

The following Action Replay code will enable several debug print functions on USA v1.0:

04137948 4BF45D94
04148B78 4BF34B64
04148BC8 4BF34B14
042510CC 4BE2C610
04246E04 4BE368D8
0428F7DC 4BDEDF00

These messages can be seen in Dolphin's debug console. (You may have to add the symbol OSReport at address 8007D6DC for it to pick up the messages.)


Alternatively, this Gecko code will display them on-screen (assuming you used the "enable debug text" code):

c6148b78 80137948
c62510cc 80137948
c6246e04 80137948
c61378a8 80137948
c213798c 0000000d
91410024 7d6802a6
91610068 3c60803e
8063bc14 80810008
80a1000c 80c10010
80e10014 81010018
8121001c 81410020
81610024 3c008028
6000f688 7c0803a6
4e800021 3c80803e
80a4bc14 7ca51a14
38a50001 90a4bc14
80a10068 7ca803a6
60000000 00000000

Adding the line c6148bc8 80137948 will also display a ton of Tricky-related debug text. Adding c607d6dc 80137948 will display all OSReport messages, including those that weren't intended to show on-screen, which allows them to be seen on a real GameCube without any hardware modification.

(Source: Original TCRF research)

Lighting Debugger


The "directional light" object (internally named "LGTDirectio", ID 0079) has some leftover debug code attached. Pressing Z toggles the debug function on/off. When on, you can supposedly use the D-pad to adjust the light's color and direction. However, this function no longer actually affects the light. This function is always active when such a light is present, but you can't see what you're changing without having debug text enabled.

(Source: Original TCRF research)

Texture Refresh

At any time, you can press A on controller 3 to print some memory usage stats to the debug console, or B to trigger a texture refresh. However, the function that reads controller inputs only reads controller 1. The code 00014E73 00000004 will make it read all four controllers, enabling this function and possibly others.

(Source: Original TCRF research)

Debug Setup Objects

StarFoxAdventuresSetupObjects1.png StarFoxAdventuresSetupObjects2.png

These codes will make invisible scene setup objects visible.

Region Code for v1.00 Code for v1.01
Kiosk Demo
0402f438 5480003c
0402f43c 901e0044
0402f440 60000000
0402f444 60000000
0402D820 5480003C
0402D824 901E0044
0402D828 60000000
0402D82C 60000000
0402D918 5480003C
0402D91C 901E0044
0402D920 60000000
0402D924 60000000
0402D840 5480003C
0402D844 901E0044
0402D848 60000000
0402D84C 60000000
0402D918 5480003C
0402D91C 901E0044
0402D920 60000000
0402D924 60000000
0402D9B4 5480003C
0402D9B8 901E0044
0402D9BC 60000000
0402D9C0 60000000

(Source: Hugo Peters, Gilgamesh)

Map Debug

The Gecko code 003dcded 00000001 will display the player's map cell coordinates on the screen. At one point, this would have also enabled displaying additional map elements, similar to the debug setup objects above; however, the code that renders these elements has been deleted.

(Source: Original TCRF research)

Default GameText message

"Gametext requested is not there."
"Have you xdiffed gametext.spec with the sequence guy's gametext.spec?"
"This message is very long,"
"designed to annoy you"
"If you want this message to go then get the correct gametext"
"Look,         "
"pretty buttons"
"Still here?"
"I would of thought that you would have reset the subtitles by now."

An error message that would have been used whenever an incorrect string of text is referenced.

Early Credits List












Scattered throughout the file is a list of early credits, missing all of the publisher credits and being fairly unfinished.

(Source: Game Text Dump, Heck Yeah, Dinosaur Planet!)

Unused Files

A few files are left over and never accessed:

  • CACHEFONTSTAB.bin (0 bytes)
  • CACHEFONTSTEX.bin (0 bytes)
  • DLLS.tab
  • CHAPBITS.bin (almost entirely empty)
  • SPRITES.bin
  • SPRITES.tab
  • SPRTABLE.bin
  • VOXOBJ.bin (0 bytes)
  • VOXOBJ.tab (empty table)
  • modules (directory containing two test modules in a format not used by the game)
  • musyxbin (directory with two subdirectories, global and starfox, both empty)

Others are loaded, but don't appear to actually be used for anything:

  • FONTS.bin (font graphics, but not the ones used in-game)
  • LACTIONS.bin (the game reads it, but does nothing with the contents)
  • SAVEGAME.bin (vaguely resembles an actual save)
  • SAVEGAME.tab
  • SCREENS.bin (never loaded, but SCREENS.tab is, so maybe used somewhere?)
(Source: Original TCRF research)

Old Versions

Some files are older versions of others:

Used Unused Purpose Notes
CAMACTIO.bin CAMACTIONS.bin Scripted camera movements Various small differences
ENVFXACT.bin ENVFXACTIONS.bin Fog and environmental effects Various small differences
globalma.bin globalmap.bin Map connections Possibly different format or fewer entries
OBJECTS.bin OBJECTS.bin2 Object definitions Many differences; incompatible with final game
gametext/... GAMETEXT.[bin,tab] Dialogue strings Many unused strings, different file format
(Source: Original TCRF research)

Source Code

Inside the boot folder, there are some .c files for all the languages (except Japanese) with a '.new' extension added. Shown below is English.c.new. The other files are more or less the same, but with the strings translated.

  Project: Starfox Adventures on Dinosuar Planet - For GameCube
  File:    D:\binary/Boot/English.c.new
  Copyright 2001 Rare Ltd.  All rights reserved.

  These coded instructions, statements, and computer programs contain
  proprietary information of Rare Ltd, and are protected by Federal
  copyright law.  They may not be disclosed to third parties or copied
  or duplicated in any form, in whole or in part, without the prior
  written consent of Rare Ltd.

  This file is machine generated, edits will be lost!

// ********************************************************************************
// *	Includes
// ********************************************************************************
#include "GameTextData.h"

// ********************************************************************************
// *	Characters used by English text in Boot
// ********************************************************************************

typedef struct {
	UCS4		character;	// unicode number
	unsigned short	xpos;		// coordinate of leftmost texel in font bitmap
	unsigned short	ypos;		// coordinate of topmost texel in font bitmap
	signed char	left;		// spacing
	signed char	right;		// spacing
	signed char	top;		// spacing
	signed char	bottom;		// spacing
	unsigned char	width;		// size
	unsigned char	height;		// size
	unsigned char	font;		// Index into GameTextFonts[] in GameTextData.h
	unsigned char	texture;	// Index into Textures[] in the binary file
} characterStruct;

characterStruct Boot_English_characters[] = {
//	unicode	xpos	ypos	left	right	top	bottom	width	height	font	texture
	{65,	1,	1,	0,	1,	3,	4,	13,	14,	4,	0},	// latin capital letter a
	{110,	15,	1,	0,	1,	7,	4,	9,	10,	4,	0},	// latin small letter n
	{32,	25,	1,	6,	0,	15,	6,	0,	0,	4,	0},	// space
	{101,	26,	1,	0,	1,	6,	4,	10,	11,	4,	0},	// latin small letter e
	{114,	37,	1,	0,	1,	7,	4,	8,	10,	4,	0},	// latin small letter r
	{111,	46,	1,	0,	1,	7,	4,	10,	10,	4,	0},	// latin small letter o
	{104,	57,	1,	0,	1,	3,	4,	9,	14,	4,	0},	// latin small letter h
	{97,	67,	1,	0,	1,	6,	4,	9,	11,	4,	0},	// latin small letter a
	{115,	77,	1,	0,	1,	7,	4,	9,	10,	4,	0},	// latin small letter s
	{99,	87,	1,	0,	1,	6,	4,	9,	11,	4,	0},	// latin small letter c
	{117,	97,	1,	0,	1,	7,	4,	9,	10,	4,	0},	// latin small letter u
	{100,	107,	1,	0,	1,	3,	4,	9,	14,	4,	0},	// latin small letter d
	{46,	117,	1,	0,	1,	14,	4,	3,	3,	4,	0},	// full stop
	{84,	121,	1,	0,	1,	3,	4,	11,	14,	4,	0},	// latin capital letter t
	{116,	133,	1,	0,	1,	4,	4,	7,	13,	4,	0},	// latin small letter t
	{112,	141,	1,	0,	1,	7,	0,	9,	14,	4,	0},	// latin small letter p
	{119,	151,	1,	0,	1,	7,	4,	14,	10,	4,	0},	// latin small letter w
	{79,	166,	1,	0,	1,	3,	3,	12,	15,	4,	0},	// latin capital letter o
	{70,	179,	1,	0,	1,	3,	4,	10,	14,	4,	0},	// latin capital letter f
	{107,	190,	1,	0,	1,	3,	4,	9,	14,	4,	0},	// latin small letter k
	{78,	200,	1,	0,	1,	3,	4,	13,	14,	4,	0},	// latin capital letter n
	{73,	214,	1,	0,	1,	3,	4,	3,	14,	4,	0},	// latin capital letter i
	{69,	218,	1,	0,	1,	3,	4,	9,	14,	4,	0},	// latin capital letter e
	{68,	228,	1,	0,	1,	3,	4,	12,	14,	4,	0},	// latin capital letter d
	{71,	241,	1,	0,	1,	3,	4,	12,	14,	4,	0},	// latin capital letter g
	{77,	254,	1,	0,	1,	3,	4,	16,	14,	4,	0},	// latin capital letter m
	{67,	271,	1,	0,	1,	3,	4,	12,	14,	4,	0},	// latin capital letter c
	{85,	284,	1,	0,	1,	3,	4,	12,	14,	4,	0},	// latin capital letter u
	{66,	297,	1,	0,	1,	3,	4,	12,	14,	4,	0},	// latin capital letter b
	{105,	310,	1,	0,	1,	3,	4,	3,	14,	4,	0},	// latin small letter i
	{108,	314,	1,	0,	1,	3,	4,	3,	14,	4,	0},	// latin small letter l
	{102,	318,	1,	0,	1,	3,	4,	6,	14,	4,	0},	// latin small letter f
	{109,	325,	1,	0,	1,	6,	4,	15,	11,	4,	0},	// latin small letter m
	{98,	341,	1,	0,	1,	3,	4,	9,	14,	4,	0},	// latin small letter b
	{80,	351,	1,	0,	1,	3,	4,	11,	14,	4,	0},	// latin capital letter p
	{82,	363,	1,	0,	1,	3,	4,	11,	14,	4,	0},	// latin capital letter r
	{103,	375,	1,	0,	1,	6,	0,	9,	15,	4,	0},	// latin small letter g
	{118,	385,	1,	0,	1,	6,	4,	9,	11,	4,	0},	// latin small letter v
	{121,	395,	1,	0,	1,	7,	0,	9,	14,	4,	0},	// latin small letter y
	{44,	405,	1,	0,	1,	14,	2,	3,	5,	4,	0},	// comma
	{83,	409,	1,	0,	1,	3,	4,	11,	14,	4,	0},	// latin capital letter s
	{120,	421,	1,	0,	1,	7,	4,	9,	10,	4,	0},	// latin small letter x
	{76,	431,	1,	0,	1,	3,	4,	9,	14,	4,	0},	// latin capital letter l

// ********************************************************************************
// *	Strings used by English texts in Boot
// ********************************************************************************

static UTF8 English_825_0[] = {'A','n',' ','e','r','r','o','r',' ','h','a','s',' ','o','c','c','u','r','r','e','d','.',0};
static UTF8 English_825_1[] = {0};		// WARNING - empty string
static UTF8 English_825_2[] = {'T','u','r','n',' ','t','h','e',' ','p','o','w','e','r',' ','O','F','F',' ','a','n','d',' ','c','h','e','c','k',' ','t','h','e',' ','N','I','N','T','E','N','D','O',' ','G','A','M','E','C','U','B','E',' ','I','n','s','t','r','u','c','t','i','o','n',' ','B','o','o','k','l','e','t',' ','f','o','r',' ','f','u','r','t','h','e','r',' ','i','n','s','t','r','u','c','t','i','o','n','s','.',0};
static UTF8 *English_825[] = {

static UTF8 English_826_0[] = {'T','h','e',' ','G','a','m','e',' ','D','i','s','c',' ','c','o','u','l','d',' ','n','o','t',' ','b','e',' ','r','e','a','d','.',0};
static UTF8 English_826_1[] = {0};		// WARNING - empty string
static UTF8 English_826_2[] = {'P','l','e','a','s','e',' ','r','e','a','d',' ','t','h','e',' ','N','I','N','T','E','N','D','O',' ','G','A','M','E','C','U','B','E',' ','I','n','s','t','r','u','c','t','i','o','n',' ','B','o','o','k','l','e','t',' ','f','o','r',' ','m','o','r','e',' ','i','n','f','o','r','m','a','t','i','o','n','.',0};
static UTF8 *English_826[] = {

static UTF8 English_827_0[] = {'R','e','a','d','i','n','g',' ','d','i','s','c','.','.','.',0};
static UTF8 *English_827[] = {

static UTF8 English_828_0[] = {'T','h','e',' ','D','i','s','c',' ','C','o','v','e','r',' ','i','s',' ','o','p','e','n','.',0};
static UTF8 English_828_1[] = {0};		// WARNING - empty string
static UTF8 English_828_2[] = {'I','f',' ','y','o','u',' ','w','a','n','t',' ','t','o',' ','c','o','n','t','i','n','u','e',' ','t','h','e',' ','g','a','m','e',',',0};
static UTF8 English_828_3[] = {'p','l','e','a','s','e',' ','c','l','o','s','e',' ','t','h','e',' ','D','i','s','c',' ','C','o','v','e','r','.',0};
static UTF8 *English_828[] = {

static UTF8 English_829_0[] = {'P','l','e','a','s','e',' ','i','n','s','e','r','t',' ','a',0};
static UTF8 English_829_1[] = {'S','t','a','r',' ','F','o','x',' ','A','d','v','e','n','t','u','r','e','s',' ','G','a','m','e',' ','D','i','s','c','.',0};
static UTF8 *English_829[] = {

static UTF8 English_830_0[] = {'T','h','i','s',' ','i','s',' ','n','o','t',' ','t','h','e',0};
static UTF8 English_830_1[] = {'S','t','a','r',' ','F','o','x',' ','A','d','v','e','n','t','u','r','e','s',0};
static UTF8 English_830_2[] = {'G','a','m','e',' ','D','i','s','c','.',0};
static UTF8 English_830_3[] = {0};		// WARNING - empty string
static UTF8 English_830_4[] = {'P','l','e','a','s','e',' ','i','n','s','e','r','t',' ','a',0};
static UTF8 English_830_5[] = {'S','t','a','r',' ','F','o','x',' ','A','d','v','e','n','t','u','r','e','s',' ','G','a','m','e',' ','D','i','s','c','.',0};
static UTF8 *English_830[] = {

// DiscOpenBootError_1381
static UTF8 English_1381_0[] = {'L','o','a','d','i','n','g','.','.','.',0};
static UTF8 *English_1381[] = {

// ********************************************************************************
// *	English gametexts in Boot
// ********************************************************************************

typedef struct {
	unsigned short	identifier;	// which game text is this
	unsigned short	numPhrases;	// how many phrases this text has
	unsigned char	window;		// preferred window
	unsigned char	alignH;		// horizontal alignment
	unsigned char	alignV;		// vertical alignment
	unsigned char	language;	// LANGUAGE_xxx from GameTextData.h
	UTF8		**phrases;	// pointer to <numPhrases> pointers to localised strings
} gametextStruct;

gametextStruct Boot_English_texts[] = {
		3,		// numPhrases
		129,		// window
		0,		// horizontalAlign
		0,		// verticalAlign
		&English_825,	// strings table
		3,		// numPhrases
		129,		// window
		0,		// horizontalAlign
		0,		// verticalAlign
		&English_826,	// strings table
		1,		// numPhrases
		129,		// window
		0,		// horizontalAlign
		0,		// verticalAlign
		&English_827,	// strings table
		4,		// numPhrases
		129,		// window
		0,		// horizontalAlign
		0,		// verticalAlign
		&English_828,	// strings table
		2,		// numPhrases
		129,		// window
		0,		// horizontalAlign
		0,		// verticalAlign
		&English_829,	// strings table
		6,		// numPhrases
		129,		// window
		0,		// horizontalAlign
		0,		// verticalAlign
		&English_830,	// strings table
		DiscOpenBootError_1381, // (1381)
		1,		// numPhrases
		147,		// window
		0,		// horizontalAlign
		0,		// verticalAlign
		&English_1381,	// strings table

Another source file, audio/starfox.h.bak, contains lists of sound effect IDs, though they don't match up with the final version.

Debugging Text

MIDIWADLoadedCallback load error
WARNING:DVDCancelStreamAsync returned FALSE
curvesSetupMoveNetworkCurve: There must be at least four control points
curvesSetupMoveNetworkCurve: There must be a multiple of four control points for bezier or hermite curves
curvesMove: There must be at least four control points
curvesMove: There must be a multiple of four control points for bezier or hermite curves
VOXMAPS: route nodes list overflow
Childnode Null
overflow in 'genVoxelCircle'
VOXMAP: attempt to load invalid object voxmap '%d'
VOXMAP: Size overflow on object voxmap load->Ignoring defined voxmap
<voxLoadVoxMapActual>  Warning voxRomTab is NULL
VOXMAP: Size overflow on load->Ignoring defined voxmap
<voxLoadVoxMapActual>  Warning uncompressedSize is 0
WARNING: Voxmap has no mem available
<file empty!>
<no file!>
<%d's not in %s>
<%d, doesn't have phrase %d>
WARNING in mainSetBits: Bit %d can't be set to %d while a savegame is loading
audioQuit passed
GX flush passed
VIFlush passed
reset default
finished init
<mmShowInfoFBMemoryStore> failed to find store with requested handle in MMSTORE_ARRAY
thisStore 0x%8x
thisStore->handle %d
thisStore->size %d
thisStore->ptrStore 0x%8x
thisStore->ptrCurrent 0x%8x
end of this store array 0x%8x
<mmAllocateFromFBMemoryStore> failed to find store with requested handle in MMSTORE_ARRAY
<mmAllocateFromFBMemoryStore> available space in this store %d size wanted %d
<mmDestroyMemoryStore> failed to find store with requested handle in MMSTORE_ARRAY
<mmCreateMemoryStore> failed as size was %d
<mmCreateMemoryStore> failed as size %d was greater than MM_MAX_MEM_STORE_SIZE %d
<mmCreateMemoryStore> failed to allocate mmStore Object
<mmCreateMemoryStore> failed to allocate mmStore->ptrStore
<mmCreateMemoryStore> failed to find slot in MMSTORE_ARRAY
mem %dk/%dk %dk/%dk %dk/%dk %dk/%dk
slot %d/%d %d/%d %d/%d %d/%d
SPAWNED A SLOT NOT ALIGNED TO 32 slot->stack %d slot->loc 0x%x slot->size %d
ERROR<free> memory usage value corrupted
7: *** mm Error *** ---> stbf stack too deep!
5: *** mm Error *** ---> Can't free ram at this location: %x
6: *** mm Error *** ---> No match found for mmFree, %08x.
1: *** mm Error *** ---> '%s' No more slots available.  region %d used %d avail %d
ERROR<alloc> memory usage value corrupted
2: *** mm Error *** --->  '%s'
wantsize=%d largestsize=%d...
No suitble block found for allocation.
Warning: Model animation buffer overflow!! size=%d
<objSetupObject>  loading is locked can't setup objno %d
maptype %d
playerno %d
objFreeObjdef: Error!! (%d)
Tried to free non-existent object
Warning: Unknown object type '%d/%d romdefno %d', using DummyObject (128)
<objanim.c -- setBlendMove> WARNING tried to load anim -1 from cache modno %d
HIT VOLUMES: an object has too many hit spheres
hitstate frame=%f
objHitReact.c: sphere overflow! %d
objAddObjectType: Reached MAXTYPES!!
objmsg (%x): overflow in object %d defno=%d FROM: defno %d
<renderOpMatrix> ERROR CASE numMatrices = %d
Suspected graphics hang or infinite loop
GP status %d%d%d%d%d%d -->
GP hang due to XF stall bug.
GP hang due to unterminated primitive
GP hang due to illegal instruction.
GP appears to be not hung (waiting for input).
GP is in unknown state.
GP hang due to XF stall bug.
GP hang due to unterminated primitive.
GP hang due to illegal instruction.
thread: state=%d attr=%d suspend=%d
Failed to allocate memory->forcing texture free
^^^^^^^^^^^^^^^^  Restruct textures Running
^^^^^^^^^^^^^^^^  REREGION
texRestructRefs  No Space to ReRegion from 0x%x size %d!!!!
texRestructRefs   Optimal ReRegion from 0x%x to 0x%x size %d!!!!
^^^^^^^^^^^^^^^^  AFTER REREGION
texRestructRefs  No Space to Restructure from 0x%x size %d!!!!
texRestructRefs Wrong region from 0x%x to 0x%x size %d!!!!
texRestructRefs   SubOptimal Restructure from 0x%x to 0x%x size %d!!!!
texRestructRefs   Optimal Restructure from 0x%x to 0x%x size %d!!!!
texRestructRefs ReRegioned alloc can't get back into region 0 from 0x%x to 0x%x size %d!!!!
texRestructRefs   ReRegioned alloc Optimal Restructure from 0x%x to 0x%x size %d!!!!
^^^^^^^^^^^^^^^^  Restruct textures Finished passes %d
LOAD PASS: Level object
LOAD FAIL: Manual load
LOAD FAIL: Outside map x=%f y=%f z=%f
LOAD FAIL: No block
LOAD PASS: Block object
LOAD PASS: In range %f
LOAD FAIL: Out of range
TRACK ERROR: Global texanim overflow
trackLoadBlockEnd: track block overrun
track piLocked %x
cellx %i celly %i cellz %i
ObjSequence: max number of obj frees
SEQUENCE: Could not Find Object %i
<objLoadAnimdata>  Warning ACRomTab is NULL
!!! Error non-existant cloud id - %i - in snowFreeSnowCloud
!!! Error non-existant cloud id - %i - in snowPrintSnowCloud
!!! Error non-existant cloud id - %i - in snowReposSnowCloud
warning in newcloud dll no spare memory for light available
warning in newclouds dll no spare memory for clouds available
!!! Error non-existant cloud id - %i - in snowKillSnowCloud
Could not allocate memory for waterfx dll
<projgfx rayhit Do>No Longer supported
<projgfx setzscale Do>No Longer supported
<projgfx release Do>No Longer supported
Corner is too far out (%f)
Found new walk group patch from walkgroup %d
Error in isPointWithinPatchGroup
Unable to find exit point 0 on patch between walkgroup %d and %d
Unable to find exit point 1 on patch between walkgroup %d and %d
MAX_ROMCURVES exceeded!!
<projdummy Do>No Longer supported
<projmagicstream Do>No Longer supported
<projmagicemmit1 Do>No Longer supported
<projroombeam Do>No Longer supported
<projlightning1 Do>No Longer supported
<projlightning2 Do>No Longer supported
<projlightning3 Do>No Longer supported
<projlightning4 Do>No Longer supported
<projlightning5 Do>No Longer supported
<projlightning7 Do>No Longer supported
<projlightning6 Do>No Longer supported
<projenergise1 Do>No Longer supported
<projenergise2 Do>No Longer supported
<projrobotfire Do>No Longer supported
<projsquirt1 Do>No Longer supported
<projship1 Do>No Longer supported
<projwallpower Do>No Longer supported
<projquakeshock Do>No Longer supported
<projsunshock Do>No Longer supported
<projtesla Do>No Longer supported
<projcore1 Do>No Longer supported
<projcore2 Do>No Longer supported
<projcore3 Do>No Longer supported
<projdfp1r Do>No Longer supported
<camcontrol.c>  failed to load triggered camaction actionno %d
PATHCAM error: need at least two control points
^^^^^^^^^^^^^^^^  malloc for movie failed
^^^^^^^^^^^^^^^^  RESTRUCT for movie
n_attractmode.c Fail to prepare
PICMENU: tex overflow
UPLINK overflow=%d
DOWNLINK overflow=%d
LEFTLINK overflow=%d
RIGHTLINK overflow=%d
errorThreadFunc %x
System reset
Machine check
Performance monitor
System management interrupt
Memory Protection Error
Unknown error
Stack trace Stack %x; depth %d %08x %08x
General Purpose Registers %08x %08x %08x %08x
in water
out of water
Turning in water
Turning out of water
tricky wg %d->%d target wg %d, dest wg %d
tricky last walk group is zero. Has he been loaded within a walk group? %f %f %f
velbefore %f, vel now %f
target is within a walkGroup or its patch
target is not within a walkGroup or any patches
target is within patch group %d
Patch %d: Last xyz %f %f %f
Last Patch Point %f %f %f
Tricky is neither in a walkgroup or in a patch
tricky error, target patch %d, targetWalkGroup %d, trickyWalkGroup %d, tricky last walkGroup %d, tricky in patch %d
tricky error 2!!!!!
movement state is %d
walk wait
walk free
walk start patch
walk patch exit
walk end patch
walk to node %d %d
curve setup
walk nodes
Jump run up
Jump prep
Jump up run up
entered a non valid movementstate
error tricky should never stop when circling
sideCommandEnable warning: need to increase MAX_COMM_PRESENT
hits: %d %d %d %d %d %d %d %d   
Energy: %d/%d
find command used on the wrong object
PUSHPULL OBJECT: hitpoint overflow
vel %f, depth %f dot %f
newseqobj %d: need bit clear during sequence
newseqobj %d: used bit set during sequence
newseqobj %d: need bit clear before preempting sequence
newseqobj %d: used bit set before preempting sequence
newseqobj %d: about to prempt the sequence - objs %d
newseqobj %d: need bit clear after sequence
newseqobj %d: used bit set after sequence
newseqobj %d: need bit clear before sequence
newseqobj %d: used bit set before sequence
newseqobj %d: about to start the sequence
newseqobj %d: Need Bit %d, Used Bit %d
!!!!!!!!!!! TRIGGER %d  ident %d
Trigger [%d], Environment Effect, Action Num [%d], Range [%d]
^^^^^^^^^^^^^^^^LOAD %d
^^^^^^^^^^^^^^^^FREE %d
^^^^^^^^^^^^^^^^LEVELLOCKED level %d  bucket %d
^^^^^^^^^^^^^^^^LEVELUNLOCKED level %d  bucket %d
<DIMBoss.c> freeing assets for DIMBoss
<DIMBoss.c> loading assets for DIMTop
WARNING Water Spike [%d] as invalid xyzAnim ID
angle %d, obj-yaw %d
Thorntail entered an invalid state
<doorswitch Init>No Longer supported
<dfperchwitch Init>No Longer supported
Stack -------------------
%i : %s : Opand %i
HAS BALL : %x= %x
<textblock.c Init>No Longer supported
<laser.c Init>No Longer supported
<platform1 draw>No Longer supported
<platform1 control>No Longer supported
<platform1 Init>No Longer supported
Time %i : %i
Angle: %d
Colour: %d

Regional Differences

Dinosaur Language Cheat

In USA versions, the fourth Cheat Token can be redeemed to enable a "Dinosaur" selection in the Language menu, which converts some dialogue subtitles in the game into their cyphered dinosaur language equivalents, as heard in dialogue before Fox receives his translator from Slippy. The in-game audio remains in English. This feature was removed from international versions of the game, likely because it renders the game unplayable to any players who don't understand the English-language voiceover.

In European versions, a cryptic message about Fox's future replaces the cheat activation:

You are meant to be together. It was your destiny. Together as one, you will bring peace.