Proto:Spyro: Year of the Dragon/September 4th, 2000 build/Test Level
This is a sub-page of Proto:Spyro: Year of the Dragon/September 4th, 2000 build.
A test level, from a point in development earlier than any previously seen build, is included as placeholder data between two cutscenes.
Contents
Test Level
In the final game, one of the cutscene levels - Level 72 - is suspiciously empty. Specifically, three empty WAD files corresponding to an unknown cutscene can be found amid all of the used cutscene files. These would usually correspond with each of the following components of a cutscene:
- Level - the level model used in the cutscene, in the same format as traditional levels, albeit usually with moby placement and model data scrubbed. For a small handful of cutscenes, the moby data from the corresponding level is left in.
- Overlay - the code that runs the cutscene.
- Models and SFX - speaks for itself; the character models used in the cutscene, as well as the sound effect data for the cutscene.
In this version, Level 72 is not empty. Initially, one might assume that this contains remnants of a removed cutscene, but the truth is far more bizarre.
Overlay
Doesn't seem very interesting. Seems to just contain the base code for running a cutscene and not much else - there doesn't seem to be anything of interest here.
Models and SFX
One can use a model extractor, a cutscene sound effect extractor, or import this WAD into Spyro 2 to see what it contains. Why Spyro 2? Because, for some reason, this contains the cutscene models and sound effects for the level intro cutscene to Aquaria Towers used in the Japanese version of Spyro 2 (in fact, it's byte-for-byte identical to the file from Spyro 2). Why this level in particular, and why this is present this far into Spyro 3's development, is completely unclear.
Level
Even more bizarrely, the level file associated with this cutscene appears to be a test level designed for experimenting with Sheila. The format of the level differs enough from the standard Spyro 3 level format that attempting to load the level will crash the game - in fact, the format looks to be from a point in development before dragon eggs existed, dating it to roughly January 2000, well over half a year earlier than the rest of this build. Why this level is here, why it's in the place of a cutscene, and why it's still in an extremely early level format are all unclear.
There are several notable features of this level:
- It contains platforms for testing Sheila's jump heights. Each platform has a number written onto it using a texture, to communicate the height of the platform. These number textures are not seen in any standard level.
- Several gem baskets are placed throughout this level.
- Several mobys never seen anywhere else in this game, nor in Spyro 2 - classes 169 and 195 - are also present in this level. As we do not have the level overlay for this level, we can't confirm the behaviour of these mobys, but they appear to be for testing each of Sheila's abilities.
- Perhaps most bizarrely, Sheila's model features horns, as seen in some of her concept art. The spots on her back also appear to be missing, and she has a more detailed inner mouth than she usually does.
Bringing the level to life
The closest Spyro 3 level format available to us to the one used in this level is that of the April prototype. As a fun bonus, the April prototype already has lots of code for Sheila, so running the level is as easy as editing the level to match April's format and replacing Sheila's Alp with this level. More specific instructions on how to do this are included within the review build's release on Hidden Palace. As we're attempting to run outdated data against more recent code, there are several modifications we'd need to make to improve the experience. We can make the following observations about the level - and thus about the level format of the time:
- The level header does not contain any room for baby dragons. As such, the moby model offsets and classes are earlier in the file than they should be. They can very easily be moved further down the header to match later builds' format.
- The April prototype's level format is missing a number of data components the final game has, and this level's format is almost identical to the April build in this regard. In addition, this level is missing its egg name component in the scene data. Copying one of these from a level in the April prototype (such as Seashell Shore, which isn't very large and so won't require us to change any offsets should we make the scene data component too large) and pasting it in the right place is enough to get the level playable.
- When we enter the level for the first time, we're playing as Spyro with some really messed up textures. As the level isn't intended for Spyro, this shouldn't be much of a problem, but it does indicate that Spyro's position in VRAM was changed in early development.
- The pause menu sound effects seem to be assigned incorrectly. This is most likely due to global sound IDs having changed between this version and the April build, rather than anything wrong with the level itself.
- The HUD looks particularly whacky upon entry. This is down to the sprite definitions being in a slightly different format - adding in a 00 after the first byte and removing the final byte of each sprite definition aligns the format with the April build.
- The only sprites in this level are for the HUD counters, text box corners, the gem counter and Spyro's life counter. There are no traces of Spyro 2's spirit particles.
- The Spyro sprite animates particularly weirdly - in the final game, it only has 5 frames, whereas there are 13 here. Additionally, Spyro's eyes are not offset from the rest of his head correctly. It's not clear what the extra frames were for, but they appear to have been intended to make the animation look a bit more detailed? The incorrect offset is likely down to a code difference, as is the fact that the sprite clearly isn't animating as it's supposed to.
- By setting the frame count to 8, the sprite looks to behave slightly more regularly - the remaining frames may have been used for padding out the sprite. This can be done by updating the sprite definition in the data to account for this, or with the following GS code:
300A6F5B 0008
- Most of the mobys in the level are invisible and inactive, though several gems are present. Once again this is a minor format difference - the April build contains a very primitive form of the difficulty flags used by mobys in the final game, whereas this level has these flags set to 0 for all mobys. This results in all mobys being despawned as the player is not on a difficulty which supports the mobys (and the baskets drop the gems they're supposed to contain). This can be fixed by changing the spawn flags to 7 for all mobys (position 0x53 in the moby struct) before we import the level.
- We can then play as Sheila by changing her state to 3, and then to 1. Each of the following GameShark codes can be used in turn to perform this:
300A76EC 0003 300A76EC 0001
- Sheila's sound effects are completely different and much more "cartoony".
- Sheila's animation IDs don't match that of the final game - specifically, animation 10 onwards:
ID | Test Level | Apr25 Prototype |
---|---|---|
10 | Jump? | Faint |
11 | Faint | Stomp (spin) |
12 | Stomp (spin) | Stomp (fall) |
13 | Stomp (fall) | Stomp (land) |
14 | Stomp (land) | Swim (move) |
15 | Swim (move) | Swim (float) |
16 | Swim (float) | Talk |
- The earlier version has an extra animation where Sheila appears be jumping with her legs spread and mouth open. It's not clear where this would have been used, and it was removed by the April build. In addition, she is missing her dialogue animation, which is present but unused in the April build.
- Conveniently this means we can see the fainting animation in-game by stomping - there's no hazards in the level, so we wouldn't usually be able to see this.
- We can fix how her animations appear in game by simply altering the animation offsets in her model data.
New mobys
Two moby classes are seen in this level which have not featured in any other level, ever. There are 9 copies of each of these mobys placed within the level.
Moby class 169
Appears to be a sand block of some sort, likely for Sheila to break by kicking. These have a collision model matching their visual model, and so they can be stood on in-game, even without the level's overlay present.
This moby class is not known to be used by any other mobys in any later version.
Moby class 195
Appears to be a metal platform, possibly for Sheila to break by stomping. These platforms are stacked into three pillars around the sand blocks. Their collision models are implemented in code, and so they can be walked straight through in the absence of this level's overlay.
In the final game, this moby class is used by the gem images in the portals and doorways in Midnight Mountain Home and Super Bonus Round.