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
Revision as of 14:28, 3 April 2015 by Ehm (talk | contribs) (Undo revision 279678 by Dga7696 (talk) Hardly.)
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


SourceIcon.png This game has uncompiled source code.
DevTextIcon.png This game has hidden development-related text.
GraphicsIcon.png This game has unused graphics.
SoundIcon.png This game has unused sounds.
TextIcon.png This game has unused text.


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.

Hmmm...
To do:
  • An unused map (specifically, animtest), which contains an early version of Thorntail Hollow.
  • Get all the unused graphics up here.
  • Get all the unused music and sounds up here.

Subpages

TextIcon.png
Dinosaur Planet Leftovers
Leftovers from the game that never was.
SoundIcon.png
Unused Voice Clips
Dialogue the player will never hear in the game.

Unused Graphics

Starfoxadv-splashscreen.png
splashScreen.BIN contains an early logo for the game.

Starfoxadv-debugfont.png
A debug font can be found in several of the texture files.

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.

"?BOSS"
"GALADON"

Galadon is probably an early name for either Galleon (the ship Scales rides on in the intro) or 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.

"?�?�?�?�?�?THE LIGHTFOOT TESTS"
"TOTEM POLE TEST"
"Activate all four Totem Poles| within the Lightfoot Village.| Beat Musclefoot's all time record| of 4m 30secs to pass the test"
"THE TEST OF STRENGTH"
"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 saved after saving a ThornTail's eggs. She doesn't say this.

Development Stuff

"?�?�?�?�?�?�?�?�?level"
"choose"
"select"
"map"
"rotate"
"zoom"
"confirm"
"exit"
"TM & ^ 2001 NINTENDO	#	RARE"
??
"?�?�?�?�?�?�?attack"
"lift"
"jump"
"throw"
"kick"
"fire"
"cancel"

Debugging menu leftovers.

"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."
"GO AWAY!!"

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

Early Credits List

"SOFTWARE DIRECTOR"
"PHIL TOSSELL"
"SOFTWARE ENGINEERS"
"NIK PALMER"
"NICK BURTON"
"PHIL WOODS"
"RAYMOND KERR"
"BRENDAN GUNN"
"ANDREW INNES"
"RICHARD GALE"
"ROB HARRISON"
"ART DIRECTORS"
"JOHNNI CHRISTENSEN"
"KEITH RABBETTE"
"KEVIN BAYLISS"
"3D ARTISTS"
"DEAN SMITH"
"FEARGAL PLANT"
"GAVIN FLINT"
"STUART HOGTON"
"MATTHEW GROVER"
"ANIMATION"
"NICK SOUTHAM"
"MICHAEL CAWOOD"
"DAVID McDERMOTT"
"AISLING DUDDY"
"GAME DESIGN"
"STEVE BRAND"
"SHAUN READ"
"MUSIC"
"DAVID WISE"
"SOUND FX"
"MARTIN PENNY"
"SPEECH ENGINEER"
"BEN CULLUM"
"EXECUTIVE PRODUCERS"
"JOEL HOCHBERG"
"CHRIS STAMPER"
"TIM STAMPER"
"GAME DIRECTOR"
"LEE SCHUNEMAN"

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!)

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
// ********************************************************************************

// TEXT_ERROR_CRITICAL
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[] = {
	&English_825_0,
	&English_825_1,
	&English_825_2,
};

// TEXT_ERROR_DISC_UNREADABLE
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[] = {
	&English_826_0,
	&English_826_1,
	&English_826_2,
};

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

// TEXT_CLOSE_DISC_COVER
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[] = {
	&English_828_0,
	&English_828_1,
	&English_828_2,
	&English_828_3,
};

// TEXT_INSERT_GAME_DISC
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[] = {
	&English_829_0,
	&English_829_1,
};

// TEXT_ERROR_WRONG_DISC
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[] = {
	&English_830_0,
	&English_830_1,
	&English_830_2,
	&English_830_3,
	&English_830_4,
	&English_830_5,
};

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



// ********************************************************************************
// *	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[] = {
	{
		TEXT_ERROR_CRITICAL, // (825)
		3,		// numPhrases
		129,		// window
		0,		// horizontalAlign
		0,		// verticalAlign
		LANGUAGE_ENGLISH,
		&English_825,	// strings table
	},
	{
		TEXT_ERROR_DISC_UNREADABLE, // (826)
		3,		// numPhrases
		129,		// window
		0,		// horizontalAlign
		0,		// verticalAlign
		LANGUAGE_ENGLISH,
		&English_826,	// strings table
	},
	{
		TEXT_READING_DISC, // (827)
		1,		// numPhrases
		129,		// window
		0,		// horizontalAlign
		0,		// verticalAlign
		LANGUAGE_ENGLISH,
		&English_827,	// strings table
	},
	{
		TEXT_CLOSE_DISC_COVER, // (828)
		4,		// numPhrases
		129,		// window
		0,		// horizontalAlign
		0,		// verticalAlign
		LANGUAGE_ENGLISH,
		&English_828,	// strings table
	},
	{
		TEXT_INSERT_GAME_DISC, // (829)
		2,		// numPhrases
		129,		// window
		0,		// horizontalAlign
		0,		// verticalAlign
		LANGUAGE_ENGLISH,
		&English_829,	// strings table
	},
	{
		TEXT_ERROR_WRONG_DISC, // (830)
		6,		// numPhrases
		129,		// window
		0,		// horizontalAlign
		0,		// verticalAlign
		LANGUAGE_ENGLISH,
		&English_830,	// strings table
	},
	{
		DiscOpenBootError_1381, // (1381)
		1,		// numPhrases
		147,		// window
		0,		// horizontalAlign
		0,		// verticalAlign
		LANGUAGE_ENGLISH,
		&English_1381,	// strings table
	},
};