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!

Proto:Spyro: Year of the Dragon/April 25th, 2000 build/Unseen Differences

From The Cutting Room Floor
Jump to navigation Jump to search

This is a sub-page of Proto:Spyro: Year of the Dragon/April 25th, 2000 build.

Some of the differences can't be seen by the naked eye.

Level Names

The level select menu is the only location in this version of the game where levels are given real names. In the internal level list used by the portals (most of which do not exist), the Atlas (which is not usually accessible in this version), and the debug console (which is certainly not seen by the player), the levels are all referred to as "Level" followed by their level ID. None of these level names are seen under normal conditions. For the sake of comparison, their level select names, earliest demo names and final names are included below.

Apr 25 Internal Name Apr 25 Level Select Name May 25 Demo Name Final Name Present In Apr 25
Level 10 None Sunrise Spring Home Sunrise Spring Home Yes
Level 11 None Sunny Villa Sunny Villa Yes
Level 12 Cloud City Cloud City Cloud Spires Yes
Level 13 None Molten Crater Molten Crater Yes
Level 14 None Seashell Shore Seashell Shore Yes
Level 15 None Mushroom Speedway Mushroom Speedway No
Level 16 Sheila's Home Sheila's Alp Sheila's Alp Yes
Level 17 None Buzz's Dungeon Buzz's Dungeon No
Level 18 None Crawdad Farm Crawdad Farm Yes
Level 20 None Midday Garden Home Midday Garden Home No
Level 21 Iceberg Icy Peak Icy Peak Yes
Level 22 None Enchanted Towers Enchanted Towers No
Level 23 Swamp Party Spooky Swamp Spooky Swamp Yes
Level 24 Rice Paddies Bamboo Terrace Bamboo Terrace Yes
Level 25 Country Speedway Country Speedway Country Speedway Yes
Level 26 Sgt. Byrd's Home Sgt. Byrd's Base Sgt. Byrd's Base Yes
Level 27 None Level 27 Spike's Arena Yes
Level 28 None Level 28 Spider Town No
Level 30 None Evening Lake Home Evening Lake Home No
Level 31 Aztarctica Frozen Altars Frozen Altars Yes
Level 32 Lost Fleet Lost Fleet Lost Fleet Yes
Level 33 None Fireworks Factory Fireworks Factory No
Level 34 None Charmed Ridge Charmed Ridge No
Level 35 None Honeycomb Speedway Honey Speedway No
Level 36 Bentley's Home Bentley's Outpost Bentley's Outpost Yes
Level 37 None Level 37 Scorch's Pit No
Level 38 None Level 38 Starfish Reef No
Level 40 None Midnight Mountain Home Midnight Mountain Home No
Level 41 None Crystal Islands Crystal Islands No
Level 42 None Desert Ruins Desert Ruins No
Level 43 None Catacomb Caverns Haunted Tomb No
Level 44 None Dry Gulch Dino Mines No
Level 45 None Harbor Speedway Harbor Speedway No
Level 46 Agent 9's Home Agent 9's Lab Agent 9's Lab Yes
Level 47 None Level 47 Sorceress' Lair No
Level 48 None Level 48 Bugbot Factory No
Level 50 None Level 50 Super Bonus Round No

Moneybags Values

Looking over the array of values that Moneybags requests the player gives to him, we can see that (unsurprisingly) only four levels have Moneybags present at this point - all ones that can be seen in-game:

Level Apr 25 Value Final Value
Cloud Spires 200 200
Spooky Swamp 100 500
Sunrise Spring 100 300
Icy Peak 100 500
Molten Crater N/A 300
Charmed Ridge N/A 600
Midday Gardens N/A 700
Evening Lake N/A 1000
Desert Ruins N/A 800
Midnight Mountains N/A 1300
Frozen Altars N/A 800
Crystal Islands N/A 1000

Dongle Protection

Dongle protection is present in this build, which can stop the game from running on real hardware and certain emulators. There's a couple unseen strings which correspond to the protection:


This string indicates what save data would be present in the dongle.

Bad Dongle

Should no dongle be detected, this string is output to the console.

Atlas and Options Menu

While the Atlas and options menu cannot be accessed under normal means in this version, there is some very basic functionality which can be accessed using external tools.

There are two WAD files corresponding to the Atlas contents, as opposed to the one used in the final game. Both contain apparently identical graphical data for the Atlas, but some different text strings and code. There are no gem, egg or character icons present at this point.



The first of these WAD files corresponds to the Atlas, which can be loaded by setting the value at address 0x800694CC to 0x0C while on the pause menu.

Graphically, the Atlas looks very similar to how it does in the final game, except for the text layout on the page - the nine levels of each homeworld are laid out in a 3x3 grid on the page - though at this point all of the level names are simple placeholders. The font used by the Atlas is the pause menu font rather than the standard Atlas font. There's not a whole lot to do in this version of the Atlas, as changing the page just reveals the same page again.

The first WAD contains the following text strings, all of which are displayed on-screen. They're grouped by which of the two pages they appear on.

On the left page:

First Level
Fourth Level
Sixth Level

On the right page:

Third Level
Fifth Level
Eighth Level

This all culminates in the level names taking the following layout across the double page:

First Level Second Level Third Level
Fourth Level Hub Level Fifth Level
Sixth Level Seventh Level Eighth Level



The second of these WAD files is near identical to the first, though notably the first three strings are switched out for the following, suggesting that the options menu would have, at one point, existed within an Atlas menu, rather than the standard pause menu:

Memory Card

The rest of the graphics in this WAD - and seemingly, the code, too - match the Atlas WAD. As such, it doesn't appear that the options menu has any functionality at this point, aside from the page-turning simulator already present in the Atlas. It comes as no surprise to find out the page displays essentially identically to the Atlas, except that the first, second and fourth level names have been replaced. The page layout ends up with the following entries, including one nonsense entry thanks to the "Level" string being leftover from the Atlas:

Audio Video Level Third Level
Memory Card Hub Level Fifth Level
Sixth Level Seventh Level Eighth Level

The page can be loaded by setting the value at address 0x800694CC to 0x11 while on the pause menu.

Shell Fragments

All eggs - except for the unusual ones used in Sunrise Spring - also come with unused shell fragment models within the same moby class. There are only three shell types, and all egg types seem to use the same three shell fragment models.

Spyro 2 Leftovers

While the title screen is obviously a Spyro 2 leftover, there's a few more leftovers that aren't seen during normal gameplay.


Several strings corresponding to mechanics and collectables that aren't present in this version are still knocking around.


The minigame difficulty counter actually would end up being used in a few of the game's demos before going unused in the final game (despite still being present in the game's data). It's unused in this version, too.

You already have this orb

As orbs are the main collectable in Spyro 2, this is never used... except! The orb string can actually be seen by re-entering a level already entered using the level select cheat codes and collecting an NPC-given egg for the second time, as explained below.

You already have this talisman


Similarly, the associated Talisman strings are still present.


The level and moby models used in the first two cutscenes of the second game are still present in the game's data, but none of this data is used and seemingly cannot be loaded, possibly because the code used to run the cutscenes are themselves not present. Attempting to enter the IDs of these cutscenes (70 or 71, according to Spyro 2) using the level select cheat code will simply cancel the code as if no cheat had been entered at all; the same cannot be said for other invalid values. Forcing the game to load these IDs will only result in crashing.

Loading Screens

Spyro 2's loading screens - the ones seen at the start of the game, before and after bosses, when travelling between worlds and when entering the demo mode - are still present.

Loading Skyboxes

The WAD containing the skyboxes shown during loading transitions is identical to the one in Spyro 2, meaning the loading skyboxes are the same. However, as the array handling which skybox is shown per level (address 80060ED0) is zeroed out, all levels show the loading skybox for Glimmer.

The loading skyboxes are all unused anyway, as the player cannot normally access Sunrise Spring in order to access a portal in this version. Despite this, due to the array being zeroed out, even if the player were able to reach Sunrise Spring they'd still need to modify the skybox array in order to view these extra skyboxes, making them... even more unused?

Many of these skyboxes - including the Glimmer skybox - do not appear in the final game.

Re-Entering Levels

Using the level select cheats rather than the menu allows you to re-enter levels without all the progress variables being reset. That is, the game will still be aware of the fact that you've already completed the level.

Of particular note is the egg behavior when re-entering levels. NPC-given eggs and eggs placed throughout the level behave differently in a number of ways in this build, but of particular note is that even eggs placed throughout the level seem to respawn on re-entry, something that would never occur in the final game (except for rare cases of minigame-given eggs that are essentially just eggs placed in the level disguised to appear to spawn from the minigame). They seem to not be saved as collected, so the player does not receive a notification telling them they'd already collected the egg when they collect them for a second time.


By contrast, the NPC-given eggs, when they can be collected a second time, do inform the player of this. However, they do so by telling the player that they have already collected that orb, due to leftovers from Spyro 2. The dragon name clashes with this notification, as seen in the image.

Adding to the pecularities is that certain features of a level do not regenerate on returning to the level as one would expect. Of particular note is that the end-of-level NPCs seem to only leave the level in Bamboo Terrace, Lost Fleet and Bentley's Outpost. There's no exit portals in this build, so these characters are not seen to leave their respective levels via portal as the former two would in the final game, but losing a life or entering a sublevel reveals that these characters are the only ones that despawn after doing so, in this version (with the exception of Sheila's Alp, but this is true of all NPCs in that level, and these are not NPCs that would leave the level, so it is not significant in this case). As such, it seems to be the case that the level ending mechanics were slightly more complete in these levels, possibly due to them all being levels created particularly early in development. For other levels, the end-of-level NPC will instead stick around upon returning to the level, and will even give you an egg a second time should you complete their tasks again.

There's a number of oddities surrounding a few aspects which don't seem to carry across as they should when re-entering a level:

  • In Sunny Villa, the gates at the end of the level will lower again and trap the Mayor a second time.
  • In Icy Peak, the gondola does not automatically travel down the mountain.
    • However, the gondola can still be used without having to speak to the end-of-level NPC first upon returning to the level - by contrast, on the first entry into the level, prior to collecting the egg from the end-of-level NPC, the gondola will not work.
  • In Spooky Swamp, the tea lamps unlight and the door to Sleepyhead has to be re-opened. No whirlwind to the end of the level spawns even when completing the level without re-entry.
  • In Lost Fleet, the breakable walls return.
  • In Bentley's Outpost, the pushable blocks in the final section inexplicably sink into the ground, presumably due to a glitch. This allows them to be pushed in ways they're not supposed to and seems to make the level impossible to complete.

"Empty" Level Slots

There is evidence in both this version of the game and every proceeding version up to the final game that suggests the game can handle another 3 levels on top of the 37 already in the (final) game. In particular, many arrays used by the game are 40 bytes long and even the arrays handling the conversion between the Level ID and the Level Number (the former starting at 10 and ending at 50 and the latter starting at 0 and ending at 36) suggest that there should be at least another two levels with IDs 60 and 61.

In fact, unpacking the WAD file used in the final game reveals that there are 6 empty WAD files after the level WADs. Since each level uses two WAD files (one for the data and one for the code overlay), one might draw the conclusion that these WADs are reserved for the remaining level slots. In fact, within the Atlas code, the game labels each of these three levels with the name "Empty".

In this version of the game, while most of the aforementioned six empty WAD files are still empty, two of the data WADs (presumably corresponding to levels 60 and 61) are non-empty, if it is to be believed that these WADs would be the ones that become the six empty ones in the final and they're not entirely unrelated.

As it turns out, the WADs are non-empty as they are the level and moby model files for the two leftover Spyro 2 cutscenes. Attempting to load levels 60 or 61 via a portal in the final quickly corrupts the VRAM and crashes the game. Oddly, some emulators treat entering level 60 slightly differently in this version than to the final, even preserving the appearance of the text after the VRAM corruption, perhaps suggesting that the text is still present in the data WAD that is being loaded, in some form. In said inaccurate emulatores, the level transition text even claims the player is "Returning To Empty" in this version, whereas in the final game and in more accurate emulators and on hardware the game crashes much earlier than this.

Note that, despite the level IDs these WADs correspond to being 60 and 61, the cutscenes they represented in Spyro 2 had IDs 70 and 71.

Other Unused Assets

  • Almost every NPC type for each level seems to have at least one (completely unused) talking animation, despite there being no audio dialogue present in this build. These are likely the ones that game would've used once the audio dialogue and lip syncing had been implemented.
    • Hunter's Sunny Villa model doesn't have a talk animation, but it does have a number of animations that would only be used in Enchanted Towers in the final game. The animations are not present in Sunny Villa in the final game, and they certainly aren't used in this version. It's not clear whether the animations were made in preparation for Enchanted Towers or if Hunter was originally planned to have used his skateboard in Sunny Villa.
  • The internal gem value array - which is almost entirely unused in this version, due to a lack of an Atlas, and the lack of an indicator that tells you when you've collected all the gems in a level - contains entries for all levels, including the three "empty" levels at the end of the array. In this version, all levels are set to have a total of 400 gems (which would total 16000 gems across the entire game), though the number of collected gems per level caps off at 10000 (as opposed to the final's cap of 20000). Fragments of this array are used in-game when using cheat codes, since one of the cheat codes maxes out the number of gems collected in each level and the current level's gem count can be seen via the HUD, but in fact the gem total is set even for levels that are totally absent from this build.
  • The music array - which defines which track IDs to use in each level - has all levels set to use ID 04 (Spooky Swamp's theme) except for the levels which have their own unique themes (Sheila's Alp, Bamboo Terrace, Sgt. Byrd's Base, Frozen Altars, Lost Fleet and Bentley's Outpost). This also includes levels that aren't yet implemented in this build, as well as the three "empty" slots at the end of the array (though these slots would still be using 04 in the final game).