Development:Star Fox 64
This page details development materials of Star Fox 64.
This page or section details content from the July 2020 Nintendo Leak. Check the July 2020 Nintendo Leak category for more pages also sourced from this material. |
This article is a work in progress. ...Well, all the articles here are, in a way. But this one moreso, and the article may contain incomplete information and editor's notes. |
On July 25, 2020, a large amount of internal data owned by Nintendo was leaked to the public, apparently originating from either iQue-owned servers or a backup of them. This was a result of an earlier server breach in 2018 which resulted in the leaking of other assets, including but not limited to the Spaceworld '97 and Spaceworld '99 demos of Pokémon Gold and Silver.
The July 2020 leaks included a portion of Star Fox 64's source code.
Contents
Sub-Pages
Graphics The Cosmic Crisis |
Audio Did you know Katt was voiced by a dude? |
Early Lylat Layout
Mockup
fox_map.c contains code for a different layout of the Lylat System map:
The above image is a mockup using the layout and names found in fox_map.c, and the assets found in assets\en\gfx\nigen_i\multigen\MAP. The only exceptions are Sectors Y and Z, and the Great Fox, which are from early screenshots. Space Armada and Colony appear to have no assets from this time.
Observations
- The map is organized so that no matter which path is taken, the player alternates between planet and space levels: Corneria -> Cornerian Orbit -> Planet -> Sector -> Planet -> Venomian Orbit -> Venom.
- Meteo was just called “Asteroid.” The normal route {warp zone?) led to Fortuna, while the Meteo Crusher may be responsible for Slippy crashing on Titania.
- Sector X’s alternate path likely led to Vulcain and other bioweapons instead of the warp gates. It is unlikely Spyborg would have swatted Slippy to Aquas.
- Bolse was just called "Colony."
- Solar was actually a Sun, and somehow had three exits.
- Fichina was indeed Fortuna.
- Space Armada is likely just Area 6, with "KT" standing for Kantai (armada). It is called a “satellite city.”
- Battleship would’ve had two exits, but the conditions are unknown.
- Sector Z is labeled “Hyperspace.” It was possibly turned into Sector X's warp zone later.
- Area 6 seems to refer to the missile ambush of the Great Fox, which was over Venom rather than in Sector Z.
- The white circle is named “MAP_PL_08,” which fox_map.c uses for Macbeth. Perhaps it’s just a placeholder, as Macbeth was one of the last two levels created.
- The pale planet (Fichina in the final game) is labeled Zoness, while the green planet is labeled Fortuna. At the time, Zoness started as a pristine resort world; its sprite seems to depict beaches and oceans. Fortuna may have been a jungle world similar to its SF1 and 2 incarnations; its green and blue sprite seems to depict islands.
- Katina is notably missing.
Level Difficulties
There was a section of the code that listed difficulty levels for each of the stages, independent of their route’s difficulty. They appear to line up with the above routes when arranged by said difficulty:
(Easy Route?)
- Meteo: 1
- Titania: 1
- Sector X: 2
- Aquas: 2
- Bolse: 2
(Normal Route?)
- Fortuna: 2
- Sector Y: 3
- Sun: 3? (no difficulty specified)
- Area 6: 3
(Hard Route?)
- Battleship: 2
- Zoness: 3
- Sector Z: 4 (Hyperspace - Sector X warp zone?)
- Macbeth: 4 (possibly Solar?)
- Missile Ambush: 4
Versus
nin files in assets\en\gfx\nigen_i\multigen\VS\VS are dated as old as May 23rd, 1996.
Missing Stage
Gaps in the source file numbering suggest there would have been a fourth versus stage. For instance, there is a missing level thumbnail:
- VTX_stage1.rgb (Corneria)
- VTX_stage2.rgb (Sector Z)
- VTX_stage3.rgb (doesn't exist)
- VTX_stage4.rgb (Katina)
And a missing english label:
- VTX_E22.rgba (Corneria)
- VTX_E23.rgba (Sector Z)
- VTX_E24.rgba (doesn't exist)
- VTX_E25.rgba (Katina)
It is not known where the missing stage would have taken place. Perhaps the likeliest candidates are Fortuna and Venom II, considering they are all-range mode, Star Wolf was intended to participate, there are several Venom-like prototype textures, and versus mode was used to test on-foot/pilot mode for the third Venom route. There appears to be code for the Blue Marine in all-range mode, so even Aquas/an underwater level is possible. In addition to the Venomian-like textures, VS_BG_02.rgb and VS_Ground_02.rgb resemble a nighttime city like Eladard from Star Fox 2.
Sector Z's thumbnail hardly resembles the actual Sector Z (the titular nebula is missing). In the code it is just referred to as "宇宙" (Space), and its background is simply named "VS_BGS.rgb," with S seeming to stand for space rather than sector. It's possible it was the thumbnail for a different space versus stage; perhaps Meteo.
Wolfen
In fox_vs.c, there are functions dedicated to Wolfen:
extern void wolf_damage_check( ENMS * ); //extern int wolf_yama_check( ENMS * ); /*------------------------------------------------ ----------------*/ /* Star Wolf Enm->fwork[?] */ #define WOLF_BASE_SPD 0 /* base speed */ #define WOLF_BASE_SPD_S 1 /* base speed target */ #define WOLF_TURN_SPD 2 /* turn speed */ #define WOLF_TURN_SPD_S 3 /* turn speed target */ #define WOLF_TARGET_X 4 #define WOLF_TARGET_Y 5 #define WOLF_TARGET_Z 6 #define QUICK_Z 7 /* quick Z rotation */ #define QUICK_Z_M 8 /* quick Z rotation direction */ #define BOOST_SPD 9 /* boost speed */ #define BOOST_SPD_S 10 /* boost speed target */ #define SHOCK_P 8 #define DAM_ZS 12 /* Damage rebound speed Z (for Wolf only) */ #define DAM_XS 13 /* Damage bounce speed X */ #define DAM_YS 14 /* Damage bounce speed Y */ /*------------------------------------------------ ----------------*/
This indicates either Star Wolf acted as computer players to fill in for human players, or Wolfen appeared in Time Trial as they did in Training Mode, rewarding more points when shot down.
Notably Star Wolf's object bank is loaded into Katina, which serves as the basis for one of the versus stages.
Blue Marine in All-Range Mode
fox_sabamarin.h contains the following function references:
void sub_360_move(PL *); void eye_set_sub_360(PL *); void sub_boost(PL *); void sub_brake(PL *); void sub_display(PL *); void bhome_move(BEEM *); void sub_wepon(PL *); void sub_fail(PL *); void sub_360_main(PL *); void set_obj_AC(void);
This suggests the developers experimented with using the Blue Marine in all-range mode. "Sabamarin" could be a scrapped stage initialed "SB," but the header file only contained references to all of Zoness' and Aquas' enemies. Aquas' anglerfish, however, was named "AC_SB_LANTERN," perhaps suggesting it started as an enemy for Sabamarin instead, but was salvaged for Aquas when the stage was scrapped. In another file, Zoness likewise had something named "ZO_SB_POINT."
Notably in Star Fox 2, Fortuna was an all-range mode stage where the player could transform into the walker and swim underwater. Fichina was originally Fortuna during development, while the snow theme came later.
Alternate Mission Briefings
The source code contains grayed out functionality for alternate mission briefings. Both Pepper and Fox's lines change depending on which stage the player came from, though the actual lines are unknown:
- Sector X: approaching from Katina or Fortuna
- Solar: Katina or Fortuna
- Sector Z: Zoness or Sector X
- Bolse: Titania, Macbeth, or Sector Z
- Area 6: Macbeth or Sector Z
- Macbeth: Sector X, Solar, or Zoness
- Katina: Meteo or Sector Y
This seems to cover every alternate path in the game. While the cue codes are in a similar range as the final mission briefings (01200-01500), many are in a different order than their final counterparts, and many are not on 10's.
Scrapped Levels
Battleship
The leak contains several references and assets belonging to a scrapped level named "Battleship."
fox_map.c describes it as a "giant battleship" and places it where Sector Y currently sits on the Lylat map (the hard path from Corneria). It specifies it has two branching paths, with the hard route leading to Zoness and the normal route leading to Fortuna. It also indicates its map icon model and textures are the "Groundship" ones below. Groundship may be a mistranslation of "Grand Ship," as they are spelled the same in Japanese.
According to fox_play.h, it was an all-range mode stage.
fox_boss.h has a function called "bs_ship0_move," meaning the titular battleship may not have been stationary.
Its enemy and map data are simply commented out of fox_Sdata.h, while its background and boss music point to Bolse's music in audio_game.h.
The earliest reference to the level is in MAP_Groundship.nin, which is dated April 26, 1996, right before E3 of that year. The latest reference is in audio_game.h which is dated March 15, 1997, only about a month away from the game's Japanese release.
bs.o
nshape\US contains an object file named bs.o with these textures. Some resemble textures belonging to the Arwing, prototype Meteo boss, Cornerian fighter, and space debris in other levels.
MAP_GroundshipTX01 and 02.rgb
assets\en\gfx\nigen_i\multigen\MAP contains two textures for the map icon.
MAP_Groundship.c
assets\en\gfx\nigen_i\multigen\MAP\MAP_GroundshipX4 contains its model for the map icon. The UVs and texture placements are guessed. The elevated bridge and two forward prongs resemble other battleships in the series.
Cattleya
Cattleya appears to be the name of a scrapped planet, though the name only shows up once in the entire leak. The file jyuza.h is internally labeled "カトレアボス" (Katorea Bosu), which means "Cattleya Boss." Besides references in the code, none of its assets were in the leak.
Several files use the initials "CL" to reference what appears to be the relevant stage, often labeling it a "colony." Given the developers' practice of naming a planet after its initials, they likely chose Cattleya to fit the letters CL (the initials for colony).
GNUmakefile in \Source groups CL with Zoness, Solar, and Sabamarin, all of which are planets with dynamic liquid surfaces. The same file likewise groups the Arwing stages and tank stages separately. This indicates the stage would have had a dynamic liquid surface, or at the very least a cutscene above the water (like Aquas).
Script-writer Mitsuhiro Takano mentioned there were multiple Blue Marine stages, and he lamented the fact that they had to cut them because they slowed the pace down.[1] It is possible Cattleya was one of these underwater levels.
fox_boss.h refers to CL's boss as "鯖" (saba), meaning "mackerel.” fox_jyuza.h refers to a "saba_snake." This suggests the boss would have been a giant fish or an eel.
fox_edisplay.h references "CL_SHIP0," "CL_SHIP1," and "fish00."
The fact that the only boss in jyuza.h (turret.h) was Cattleya's suggests the player may have fought the boss in a first-person turret mode like Starblade, setting it apart from Aquas.
fox_map.c places Colony between where Area 6 and Bolse currently sit on the Lylat Map, meaning it would have been the sixth normal route stage (there is no place for one in the final game). However, at one point it was scrapped, and its initials and map placement were given to Bolse and Area 6 one after the other. "Colony" was eventually used to refer to Bolse instead, so it's possible this placement merely belonged to Bolse at the time rather than Cattleya.
Star Blade
Several files reference a stage with the initials "SB." The level's header file, fox_sb_poly.h, is named "スター ブレード 擬き" (Sutā burēdo ki), meaning "Star Blade Imitation." Starblade is a 1991 space shooter arcade game that heavily influenced Star Fox 1.[2] Unlike Star Fox, the majority of the game takes place in first person view; the player aims while the game controls their ship's movement.
fox_play.h defines three scroll types for levels: corridor, all-range mode, and "JYUZA," or turret mode. It also defines five player modes, including ARWING, TANK, SUB, HUMAN, and P_JYUZA, described as turret mode. "SB" is listed with the other corridor stages, but it specifies that it's in "銃座モード" (jūza mōdo), or “turret mode.” This mode was likely meant to imitate Starblade.
The initials SB were later repurposed for Area 6 and its assets, possibly explaining the empty copy of Area 6 in the final ROM. fox_sb_poly.h mentions SB_gamen02 (which means “screen”), a boss core, a station, a missile, a battleship, and SB_BG_01 (the background). While many of these seem to belong to an Area 6-like stage, the screen stands out because the final radar map was not split into four quadrants, and Area 6 had no all-range mode section. fox_sabamarin.o also references a missing cursor (SB_Cursol_txt) the player likely would've aimed with.
At one point it seems to have replaced Cattleya. In an audio table file dated Saturday, March 15, 1997, SB's audio was changed to point to CL's audio instead. jyuza.h, or turret.h, is headed with "カトレアボス" (Katorea Bosu), the only reference to Cattleya in the leak. Perhaps the level was played in turret mode.
It is also worth noting that the mackerel boss, "saba," and the files named "sabamarin" share the initials SB, suggesting Starblade started as a scrapped water stage, or vice versa.
Third Venom Route
nshape\US contains three object files named bm.o, bm2.o, and bm03.o. Likewise, there are three corresponding header files such as fox_bm2_poly.h. In other source files, the initials for Venom (Benomu) are "BM" for Venom Easy, and "BM03" for Venom Hard, meaning bm2.o is likely the object file for a second, normal difficulty Venom route.
fox_map.c contains grayed-out code for drawing a third normal-difficulty/yellow line to Venom from a similarly-scrapped level: the sixth normal route stage. This would allow the player to finish the game three different ways, as in Star Fox 1.
This is supported by the interview in the official NCL player's guide. The developers said they worked on a third Venom route which the player would have taken on foot to fight Andross with a bazooka. They used Versus mode to test this, which explains the on-foot mode and early Venom prototype textures.[3]
This may also be the unused Venom 1 sub-section.
Missing Voice Lines
Judging by audio cue codes, two stages were scrapped or planned but never recorded. There is a gap between codes 11 and 14, leaving 12 and 13 missing. Though many instances of the rest of the cue codes exist (Developer dub, English voice folders and script, compiled object files, source code), 12 and 13 are skipped every time. Following the pattern established by the other cue codes and their matching stages, the missing levels appear to be Stage 6 Normal and Venom Normal (the footpath to Andross and bazooka fight):
Cue Code | Level |
---|---|
00 | Prologue |
01 | Briefings |
02 | Corneria |
03 | Meteo |
04 | Titania |
05 | Sector X |
06 | Zoness |
07 | Area 6 |
08 | Venom and Andross Easy |
09 | Fortuna |
10 | Solar |
11 | Bolse |
12 | Missing (Stage 6 Normal?) |
13 | Missing (Venom Normal?) |
14 | Sector Y |
15 | Aquas |
16 | Sector Z |
17 | Macbeth |
18 | Katina |
19 | Venom and Andross Hard |
20 | Common |
21 | Ending |
22 | Andross, Pepper's Invoice |
23 | Missing (ROB's Training) |
Development Initials
The developers used two letter initials to signify stages and assets. They appended them to the beginning of source files, and used them to refer to stages in the code. Much of the time, they appear to have chosen the initials based off general descriptors/nicknames for levels, then come up with science-fiction-sounding names that matched them. Often when they replaced a stage, rather than change every instance of the initials in the source files, they would instead reuse the initials for the new stage, which makes sorting out the scrapped stages very very very very very confusing. Below is a list of the initials and which stages/assets they referred to:
Initials |
---|
360 - All-Range Mode, Fortuna? |
A6 - Area 6, Missile Ambush |
AC - Aquas |
AND - Andross |
AS - Meteo (Asteroid) |
AT - Meteo Warp |
AW - Arwing |
BB - Golemech (Benomu Boss) |
BM - Venom (Benomu) |
BM1 - Venom Easy |
BM2 - Venom Normal |
BM03 - Venom Hard |
BO - Bolse, Benomu Orbital |
BS - Battleship |
CN - Corneria |
CL - Cattleya, Colony, Area 6 |
E1 - Planetery Enemies |
E2 - Space Enemies |
FO - Fortuna, Fichina |
KT - Area 6 (Space Armada/Kantai), Katina |
JT - UI |
MC - Macbeth |
NPC - Bill, Katt, Andross, Pepper, James |
TR - Training |
TR2 - Second training stage? |
SB - Starblade, Sabamarin, Area 6 |
SE - Sound Effects |
SN - Sun, Solar |
SA - Space Armada |
SO - Solar? (listed above SN, suggesting they're different) |
SW - Sector Y (Shogun Warrior?) |
SY - Sector Y |
SX - Sector X |
SS - Sector X Warp |
SZ - Sector Z |
SUB - Blue Marine |
TI - Titania |
TK - Landmaster (Tank) |
TT - Food (Texture Test) |
VO - Voice |
WP - Warp Zone |
WT - Wolf Team |
ZO - Zoness |
Stage Notes
Miscellaneous observations from the source files in the leak, taking into account prerelease footage, screenshots, and series history:
Fortuna
Infamously, Nintendo of America mislocalized Fichina as "Fortuna," the jungle/ocean planet from Star Fox 1 and 2. However, this may not be their fault. Through most of the source files, the developers themselves referred to the snow planet as "Fortuna" (フォーチュナ). By comparison, only a few later instances refer to it as "Fichina" (フィチナ). Likewise, the level's initials are "FO," not "FI."
The earliest footage from November '95 and May '96 shows Corneria City covered in snow by Granga. Snow particles can be seen as well, while they do not exist in the Fichina level. It seems unlikely they would have planned to have two snow stages, suggesting Fortuna would have been jungle.
fox_map.c indicates the green planet was Fortuna, while the pale planet is Zoness. Meteo's background in November '96 is a green planet, not a snowy one. Even the final Fichina planet sprite appears more yellowish than befitting a frozen planet, suggesting beaches and water rather than snow. Finally, many of the textures used in the level could instead resemble mist-covered jungle, similar to Fortuna's incarnation in Zero.
Solar
Nintendo of America interpreted Solar as a sun, while NCL later stated it was a molten planet. This is commonly believed to be a simple mistake because "hoshi" can mean both planet and star in Japanese, but this is not the case. Just like Fortuna, the developers did actually consider Solar a sun all through development. Most files label it "Sun" (太陽 Taiyō), while only a few later ones name it "Solar" (ソーラ Sōra). All of its associated assets are initialed "SN" for Sun.
Aquas
Aquas went through several name changes. At different times it was called "Aquarius" (アクエリアス Akueriasu), the astrological sign for the "water bearer" (and Coke's competitor to Pocari Sweat); "Aquaria" (アクエリア Akueria), more in line with other Lylat names; and "Aquarie" in MIDI files. It wasn't until late in development that the name "Aquas" (アクアス Akuasu) was finalized.
Macbeth
Macbeth is internally labeled a "missile base" in fox_map.c. While no longer a molten/hollow planet, this resembles its role in Star Fox 2. The train transports at least one copperhead missile, while the supply depot seems to house two other missile-like objects.
Missile Ambush
fox_map.c labels Area 6 both "defense satellite missile group" and "Great Fox." This means Area 6 was originally the name of the copperhead missile ambush of the Great Fox, while Sector Z and the Venomian fleet were different stages. The level took place over Venom as the sixth stage on the hard route, with Venom likely the background instead of the Z nebula.
Sector Z
In fox_map.c, Sector Z is labeled "hyperspace." It was not the missile ambush at this point. Sector X's warp zone was possibly developed for Sector Z instead, but later tacked onto the bioweapons factory in place of Vulcain. Notably, the psychedelic spinning pillars and squares resemble the ones in Star Fox 1's Sector Z.
Area 6
In fox_map.c, Stage 6 Normal is named "Space Armada" and initialed KT for Kantai (fleet). It is described as a "satellite city," perhaps in reference to the satellite-like weapons. It could also be a mismatch with Bolse. The stage appears to be one of the earliest developed (as its lines exist in the developers' dub). The file BOrbital.mid has versus music, while the versus MIDI has Area 6's music. This suggests Area 6 was originally named "Benomu Orbital," like the orbital fleet stages in SF1.
Bolse
Bolse is named "Colony" in fox_map.c, with only the initials "BO." Since it inherited Area 6's initials (BO), its name likely was invented to match them.