If you appreciate the work done within the wiki, please consider supporting The Cutting Room Floor on Patreon. Thanks for all your support!
Spyro: Enter the Dragonfly
Spyro: Enter the Dragonfly |
---|
Developers: Equinoxe[1],
Check Six Studios[1] This game has unused areas. This game has a prototype article This game has a prerelease article |
This page sucks. If you could make it suck less, that would be awesome. Specifically: This page is still a mess of words and unsourced info. |
To do:
|
Spyro: Enter the Dragonfly is not only the first home-console Spyro game developed by a studio other than Insomniac Games, but also the only game developed by both Check Six and Equinoxe. It had several major issues during development before its release in 2002.[1] The game is notorious for its many bugs, including one that allows you to skip the entire game and go directly to the final boss.
Contents
Sub-Pages
Prototype Info |
Prerelease Info |
Unused Dialogue |
Debug Menus
The game has multiple debug menus, as shown below.
Cheat Menu
This menu contains some cheats for navigating the level. Use the following code(s) to access them through the pause menu.
Version | Code | Notes |
---|---|---|
PS2 (USA) | 002C73A8 000000?? | Changes the pause menu into the debug menu. |
PS2 (USA) | 202C7A94 00000000 | Enables the Level Select menu after the press start screen. |
For the PS2 version, replace ?? with one of the following:
2D = Cheat Menu 23 = Level Select Menu
Cheat | Effect |
---|---|
Fly Cheat | Allows you to fly anywhere, like in the speedway minigames. |
Return to Start | Resets your position to the starting position of the level. |
User Camera Mode | Doesn't appear to do anything. Displays as "User C" on PS2. |
Back | Takes you to the pause screen. Is invisible, but still functional on PS2. |
Level Select
Allows you to select any level in the game, including demos and end credits.
Stills
Levels with the prefix "STILL" are still images from various loading screens. Curiously, the still paired with "DEMO 3 - CCC PLATFORM" is an image of Cloud 9.
The start menu behaves slightly differently while on these levels; menu sounds do not play and button icons do not render. The Atlas option simply closes the menu, and choosing Exit Level causes the game to softlock. Choosing Quit Game functions normally.
Movies
Levels with the prefix "MOVIE" are cutscenes. The intro and outro cutscenes are split in two, and playing the first cutscene of a pair will automatically follow up with the second. Playing the outro cutscene will also trigger the credits once the outro completes.
Secret Credits
On the first page of the Atlas, press Circle, D-Pad Up, Circle, Circle, D-Pad Up. This will reveal the secret credits in the back of the Atlas, which includes a list of people who left the development team before the game was finished.
Leftover MAP Files
Present in the root directory of the PS2 version is a leftover linker address map (with the same name as the executable) that contains some original sources.
Download SLUS_203.15.MAP Linker Address Map
File: Spyro ETD NTSC-U PS2 Map.7z (653 KB) (info)
|
Early Level Data
Dragonfly Dojo
The level "Dragonfly Dojo" had several name changes and redesigns throughout development. Trees found in the hub refer to a level called "Sparx Pond" which actually turns out to be the original name for Dragonfly Dojo.[2] There are some remnants from this design phase, such as the letters "SP" in the name of textures for sand, palm trees, and leaves.
Luau Island
The level "Luau Island" was originally called "Dragon Keys" as evidenced by an early piece of the script where an NPC asks Spyro to obtain a Rubber Ducky from Dragon Keys. Also, this level was supposed to have a Dragonfly Chest as shown by the chest in Monkey Monastery with "Luau Island" in its name. The appearance of that chest is identical to how it would look in Luau Island.
Monkey Monastery
This level underwent multiple large revisions. The earliest mention of this level is in some unused text in the pre-release, which refers to the level as "Monkey Monk Mountains", whereas in early Atlas text it's called "Monkey Monk Monastery". This name is also seen in most of the final game's code, where it is abbreviated "MMM". These changes could have been made either to make the name closer to the series tradition of two-word level names, or just to make the name less repetitive.
#Monkey Monk Monastery {0.1 0.48 Text 364 24} {0.9 0.48 PageLink 11} Page 11 { #Monkey Monk Monastery {0.1 0.1 Text 364 24} {0.5 0.4 Image "icon_at_mmm.mrb" 22} {0.1 0.8 LevelField 1 Completion } }
Code for the Atlas entry referring to the level as Monkey Monk Monastery.
Unused Textures
Some unused textures can be found within the game's levels.
A couple of basic patterns.
Unused textures for Ripto.
Unused 3D Text Characters
A-L | M-Z |
---|---|
A complete alphabet of 3D letters is fully modeled. Some of them are not seen in the final game.
Models for just about every symbol on a standard keyboard are also present. The only ones used in-game are .
and :
for the timers.
There are models for the buttons on a PlayStation controller, but only the Triangle one is used (and with a different design than the others). All four models are also present in the GameCube version.
Unused Sounds
Early Breath Sounds
Earlier versions of the breath sounds, which were redone in part to remove significant crackling.
Flame Breath
Early | Final | ||
---|---|---|---|
File Name | Audio | File Name | Audio |
BRTH04.wav | ssflame1.wav |
Ice Breath
Early | Final | ||
---|---|---|---|
File Name | Audio | File Name | Audio |
BRTH02.wav | Spybreathredowin |
Electric Breath
Early | Final | ||
---|---|---|---|
File Name | Audio | File Name | Audio |
BRTH01.wav | Spybreathredoele |
Unused Music
Mid-Flute
Most likely would have been the main theme for Enchanted Forest, considering its place on the audio CD.
Andes
Likely intended for a Speedway minigame within Enchanted Forest, considering its BPM and place on the audio CD.
Songa
Most likely supposed to be used for the other minigame in Enchanted Forest.
Pirates
Pirates can be heard playing within two unused clips as well as within a short unused 25-second audio file in the final game. This track would've been part of a removed level known as "Cutthroat Cove" due to the name "Pirates" matching the theme of the level. Although the full song wasn't included in the final game or the game's soundtrack, it was made available with the other unused tracks by Mr. FO1's YouTube post.
SpyroBugs.xls
Exclusive to the GameCube version: a list of bugs that were apparently going to be fixed.
Date | Assigned To | Description | Reported By | Priority | Status | Comments |
---|---|---|---|---|---|---|
5/22/2001 | Jimmy | Real time Shadows to be implemented | Joel | 1 | Open | Currently working on it |
5/22/2001 | Jimmy | Rotate Scaled sprites to be reimplemented | Joel | 1 | Open | |
7/17/2001 | Warren | In monkey monk when spyro jumps of a ledge, allot of times he does not glide | Alex |
Development Text
!!clean.bat
Present exclusively in the GameCube version in the root directory:
del *.hdl del *final.txt del *initial.txt
atlas.txt
A .txt file - named "atlas.txt" in the GameCube version - contains a bit of info regarding the game.
# You should have at least 4 pages, and an even number of them. # Every page should only be linked-to once, because the linking # page will be used as the return page. # Each tag number should be unique when it is used to indicate # the color of the text to be displayed (Text, Goal, Image). # For a text to highlight, when it is an option, make its flag the Pagelink number # For a text to be bigger, make its flag 0 # For a text to be smaller, make its flag 99 # Level links will be activated only upon a certain code-activated flag # Color? Greyed, highligted, darkened # Flags (Atlas specific) # { x y tag-type ... } # HUD Images # types : 1/Gem 2/Dfly 3/fire 4/ice 5/lightning 6/bubble # { x y HUDImage type <scale> } # Dragonfly linked to a collection flag 0 200 # { 0.3 0.61 HUDImage 0 0 200 0.1 } # IMPORTANT NOTE ABOUT LEVEL INDICES # I know that you can specify level text files in the level definitions # but please don't change the corresponding levels, because it is now # hardcoded in the system that level 0 through 7 are the game levels # and level 8 is the hub, and if you change that, stuff is gonna go # haywire.
The rest of the file is miscellaneous code.
Error Messages
A variety of colorful messages can be seen inside start.dol. Many of these are also found in the PS2 version:
c6Texture::PreLoadTextures() Oh crap! I forgot to set that pointer to the sublevel memory context. c6Texture::PreLoadTextures() Crucify the programmer the screwed this up. c6Texture::PreLoadTextures() You broke my code. You suck. Hey! Your %s and PXTs dont match! You're gonna get hosed if you try to use this texture RESOLVED TEXTURE %d (fileid=%d) c6Texture::LoadPlatformTexture() ERROR: Unsupported filesystem. You must choose a file system before you load textures. c6Texture::ResolveTextureAddresses() entry c6Texture::PreLoadTextures() Unsupported filesystem. You must choose a file system before you load textures. c6Texture::ResolveTextureAddresses() resolving Dude! Your %08X.PXT and PXHs dont match! You're gonna get hosed if you try to use this texture c6Texture::ResolveTextureAddresses() success c6Texture::LoadTextures() Unsupported filesystem. You must choose a file system before you load textures. c6Texture::PreLoadTextures() Uh Oh! I was expecting that to be NULL but it isn't. c6Texture::LoadPSX2Textures() Too many textures: %d is greater than %d c6Texture::LoadPlatformTextures() entry c6Texture: The memory context is NULL c6Texture: Tried to allocate %d bytes of memory c6Texture: the .CFG did not specify enough %s memory CScreenFont2D::ParseKerning() couldn't get token %d CScreenFont2D::ParseUVCoords() couldn't read character number (token %d) CScreenFont2D::ParseUVCoords() couldn't get token (uvcoord %d, token %d) CScreenFont2D::ParseUVCoords() couldn't get "END" token UVCOORDS CScreenFont2D::LoadFontData() failed to load %s CScreenFont2D::Load() Error: could not parse UV coordinates. CScreenFont2D::Load() Error: could not parse Kerning. CScreenFont2D::LoadFontTexture() falied to load %s CScreenText2D CScreenText2D::Render_NormalText() go ahead, acid test my code, I dare you! CScreenText2D::DrawTextComputeBoundingRect() you are a jerk! Try initizing the pointers. CScreenText2D::DrawText() evil fiend, you didnt initialize the pointers! CScreenText2D::Render() nice try punk ass! Now read my comments and initialize the pointers correctly. SpyroNodeLoader::LoadSubGraph Couldn't find specified AGR for Weapon (Type = %d)!!! WARNING: Two instances of same Spyro Weapon encountered! (%s) Failed test (%s): outside maximum yaw range (%3.3f,%3.3f) %s, Failed test (%s): no target located %s, Failed test (%s): inside minimum target range (%3.3f,%3.3f) %s, Failed test (%s): outside maximum target range (%3.3f,%3.3f) Please check your exit state flows for the conversation state. Exiting conversation prematurely! Size of Scene Memory %d bytes Could Not Allocate Scene Memory: Level does not exist NO PILL INFORMATION PRESENT FOR THIS ENTITY! (%s) NO MESH INFORMATION PRESENT FOR THIS ENTITY! (%s) Collide With NonPlayer Entites::UNKNOWN COLLISION TYPE!! ******* Fix me!!! More than %d non-player entities in Spyro_BSPManager!!! Spyro_ProgressBar::UpdateProgress() You suck ERROR!!! InitializeFromPriorEntity should never be called for a MINIGAME ARBITRATOR!!! J U K E B O X EXTERNAL E R R O R S J U K E B O X INTERNAL E R R O R S J U K E B O X D I A G N O S T I C S %d %s %d %d %d %d %d %d %d %d %d Stream: %x NOTIFY TABLE %d %s (%s%s%s%s%s%s) -> %d %s NOTIFY: Used=%d Free=%d Max=%d Peak=%d T E S T 6 %d C A L L B A C K 1 %d JukeBox_UnitTest7() starting stream Pausing Stream nPausing Stream JukeBox_UnitTest91() restarting stream Stopping Stream PS2_JukeBox::ForceRecomputeAllSoundVolume() I doubt it will ever happen. -- Paul 7-10-2002 PS2_JukeBox::ForceRecomputeAllSoundVolume() crap what the hell is it? PS2_JukeBox:: I don't think you are ever going to play a voice over durring the menu! -- Paul 7-10-2002 NGC JUKE BOX FATAL ASSERTION: %s line %d cn.pSoundTransform != NULL cn.sound->bSoundVoiceOver cn.pSoundTransform == NULL !(cn.sound->bSoundVoiceOver) cn.sound->bSoundLooping JUKE BOX ERROR: Unknown Special case, suspect this will never happen. PLAY SOUND: %d is not in sound list NGC_JukeBox::PlaySound() THIS SOUND IS STREAMING %d %s voiceDrop() D R O P P E D %d D A N G E R ! D A N G E R ! JUKE BOX FATAL ERROR: %s sound handle %d is out of range. JUKE BOX FATAL ERROR: %s sound handle %d not a valid sound Sound handle %d is invalid. You can not stop a sound using an invalid handle. StopSound() The is already stopped. StopSound() marking sound dead %d NGC_JukeBox::Update() Audio Message %d Not Supported NGC_JukeBox::End() NGC_JukeBox::Begin() NGC_JukeBox::Begin() ERROR sound samples are not loaded NGC_JukeBox::Begin() ERROR: could not open file %s NGC_JukeBox::Begin() ERROR: Invalid Audio Assets NGC_JukeBox::Begin() ERROR: Expected Audio assets version %d. Do not know how to load verion %d. JukeBox_InitSoundTable() ERROR: sound table is NULL NGC_JukeBox::Begin() guessing this is music.... ... Sound Id = %d, asset = %s NGC_JukeBox::Begin() found more than one Stereo Streaming Interleaved sound... ... don't know if it is supposed to be music. NGC_JukeBox::Begin() ERROR: could not guess which Sound Id was supposed to be music JukeBox_LoadAudioAssets() ERROR: could not open file %s Audio file size = %d BUFFER IS ZERO DMASync(): DMA Address out of range. Gen_JukeBox::ComputeSoundVolume() Head Transfom is NULL Gen_JukeBox::ComputeSoundVolume() 3D Sound Transfom is CallbackThis_ARQPostRequest_FillStream() Starting Stream CallbackThis_ARQPostRequest_FillStream() ERROR no voice ARQ LAST REQUEST TO F I L L DVD D O N E W I T H F I L L NGC_AudioStream::StartStream() LOOP IS ON NGC_AudioStream::StartStream() LOOP IS OFF StartStream() Loading file StartStream() Starting Stream Cannot open %s CNGCApplication c6RefClass %s: %s NGCApplication: initializing the Juke Box NGCApplication: The NGC Juke Box is initialized Protecting stack... Stack: 0x%8.8x down to 0x%8.8x NGC Main should never exit ERROR: FUNCTION IS OBSOLETE: bool c6FileSystem::Init( c6s8* filename, bool bUseHost /*= false*/, bool bFlatFileSystem /*= false*/, bool bIOPFileSystem /*= false */ ) USE INSTEAD: bool Init( c6s8* filename /*= NULL*/, c6u32 nType /*= FILESYSTEM_HOST*/ ) ERROR: c6FileSystem::Init() Hierarchical Filesystem is not supported M E M C A R D T R A N S I E N T E V E N T S Spyro_World: No cameras found in scene Crap! CACMApplication::InitFileSystem() the levelFileName is NULL ERROR: Could not initialize H O S T File System. ERROR: Could not initialize H O S T File System. ERROR: Unknown File System Type. ERROR: Unknown File System Type. ERROR: Could not initialize Chunk File System. ERROR: Could not initialize Chunk File System. %s Allocated %i of %i %c%c %s Allocated %i of %i %s%s.TXT FILE: %s DESC: %s %c%cTotal Memory Used %i of %i Allocated %c%c Total Memory Used %i of %i Allocated SPYROCFG_NGC.CFG Total Memory = %d: %d bytes for handles: Anim = %d, Mesh = %d ERROR: CSpyroApplication::ParseFileSystem() FileSystem must be either Host, Flat, or Iop
References
- Games developed by Equinoxe
- Games developed by Check Six Studios
- Pages missing publisher references
- Games published by Universal Interactive
- PlayStation 2 games
- GameCube games
- Pages missing date references
- Games released in 2002
- Games released in November
- Games released on November 4
- Games released on November 19
- Games released on November 29
- Games with unused areas
- Games with hidden developer credits
- Games with hidden development-related text
- Games with unused music
- Games with unused sounds
- Games with unused text
- Games with debugging functions
- Games with hidden level selects
- Games with revisional differences
- Pages requiring cleanup
- To do
- Spyro series
Cleanup > Pages missing date references
Cleanup > Pages missing publisher references
Cleanup > Pages requiring cleanup
Cleanup > To do
Games > Games by content > Games with debugging functions
Games > Games by content > Games with hidden developer credits
Games > Games by content > Games with hidden development-related text
Games > Games by content > Games with hidden level selects
Games > Games by content > Games with revisional differences
Games > Games by content > Games with unused areas
Games > Games by content > Games with unused music
Games > Games by content > Games with unused sounds
Games > Games by content > Games with unused text
Games > Games by developer > Games developed by Check Six Studios
Games > Games by developer > Games developed by Equinoxe
Games > Games by platform > GameCube games
Games > Games by platform > PlayStation 2 games
Games > Games by publisher > Games published by Microsoft > Games published by Activision Blizzard > Games published by Activision > Games published by Vivendi Universal Games > Games published by Universal Interactive
Games > Games by release date > Games released in 2002
Games > Games by release date > Games released in November
Games > Games by release date > Games released in November > Games released on November 19
Games > Games by release date > Games released in November > Games released on November 29
Games > Games by release date > Games released in November > Games released on November 4
Games > Games by series > Spyro series