the cutting room mirror

The Legend of Spyro: The Eternal Night (PlayStation 2, Wii)

This article has a talk page!
view on tcrf.net

The Legend of Spyro: The Eternal Night is the second entry in the Legend of Spyro series. To compensate for making the combat harder, you can now warp this time to make it "easier".

Note that all of the soundtrack from A New Beginning and the unused graphics are in the files for this game, but it's not worth mentioning here.

Sub-Pages#

Debug Options#

A few debug options can be accessed in this game. The codes listed below are only for the PlayStation 2 version of this game unless specified otherwise. If you plan on activating these codes on a real PlayStation 2, activate the following enable code first. If not, skip this step.

USA

EU

9017DB90 0C05F68C

9017DB50 0C05F67C

Level Select#

Like in the previous game, a level select menu is available. The North American version of this level select has all the test maps removed, however these are still present in the European version, which is good for us. In the level select menu for this game, you can access test maps which test different props, enemies, etc. You can re-enable this menu in the PS2 version with the following codes. Anything that supports RAW codes such as a CodeBreaker or GameShark will work.

USA

EU (English)

EU (French/Spanish/German/Italian/Dutch)

00C37BD4 00000001
00C37BD5 00000001
00C351D4 00000001
00C351D5 00000001
00C35354 00000001
00C35355 00000001

00C60414 00000001
00C60415 00000001
00C60594 00000001
00C60595 00000001
00C62D54 00000001
00C62D55 00000001

00BC58D4 00000001
00BC58D5 00000001
00C62494 00000001
00C62495 00000001
00C62614 00000001
00C62615 00000001

You can also re-enable this menu in the Wii version with the following decrypted Action Replay codes.

USA

EU (English)

EU (French/Spanish/German/Italian/Dutch)

007eea14 00000001
007eea15 00000001
00857cb4 00000001
00857cb5 00000001
00857dd4 00000001
00857dd5 00000001

00819f54 00000001
00819f55 00000001
008832b4 00000001
008832b5 00000001
008833d4 00000001
008833d5 00000001

00818234 00000001
00818235 00000001
008852d4 00000001
008852d5 00000001
008853f4 00000001
008853f5 00000001

Debug Displays#

Just like in the previous game, a few debug displays can be found in this game as well.

Debug Graph#

Debug graph display codes:

USA

EU

Version 1
20127070 00000000
20127230 14820003

Version 1
201270B0 00000000
20127258 14830032

Version 2
20127070 00000000
201270D4 00000000

Version 2
201270B0 00000000
20127114 00000000

Version 3
20127070 00000000
201271D0 1060011A

Version 3
201270B0 00000000
20127210 1060011A

Version 4
20127070 00000000
201270D4 00000000
201271DC 14200117

Version 4
201270B0 00000000
20127114 00000000
2012721C 14200117

Version 5
20127070 00000000
201270D4 00000000
201271DC 14200117
2012720C 14830037

Version 5
201270B0 00000000
20127114 00000000
2012721C 14200117
2012724C 14830037

Version 6
20127070 00000000
201270D4 00000000
201271DC 14200117
20127218 14830032

Version 6
201270B0 00000000
20127114 00000000
2012721C 14200117
20127258 14830032

Version 7
20127070 00000000
201270D4 00000000
201271DC 14200117
20127224 1483000F

Version 7
201270B0 00000000
20127114 00000000
2012721C 14200117
20127264 1483000F

Version 8
20127070 00000000
201270D4 00000000
201271DC 14200117
20127248 14400004

Version 8
201270B0 00000000
20127114 00000000
2012721C 14200117
20127270 14820003

Display Everything
20127070 00000000

Display Everything
201270B0 00000000

The above cheat enables a graph in-game at all times. When a certain graphic entry gets loaded into memory, it will flash that icon accordingly. When Spyro shoots fire the fire icons will light up and so on. It's unclear what the numbers represent. Version 1 of the above code is how it probably should normally look. Version 6 is also another good one.

Collision Overlay#

Enable Spyro collision overlay code:

USA

EU

2014B18C 00000000

2014B1CC 00000000

Memory Info#

Enable memory info code:

USA

EU

20123530 14400003

20123500 00000000
2012350C 00000000

You can also show or hide the memory info display on the Wii version by pressing D-Pad Up + 2 on the Wii remote with this Gecko code enabled:

USA

EU

0440f23c 60000000
0440f250 60000000

0440f6a8 60000000
0440f6bc 60000000

(Source: Original TCRF research)

Autolevelswitch#

Watch on YouTubeJust like in A New Beginning, there is an unused fonction that loads all the chunks in the game in the order they appear in the Level Select and then loads all the Dragon Challenges in order before attempting to exit the program (on Wii, this successfully shuts down the console). Note that the EU version also loads all of the test levels. It also displays "Autolevelswitch running..." if enabled before or during a loading screen. In the Wii version, you can enable it by setting 804a0d3c (USA) or 804a127c (EU) to 1. You can also use the following GameShark / CodeBreaker code to enable Autolevelswitch in the PS2 version of the game : 209465FC 00000001 (USA) or 20946B7C 00000001 (EU). Alternatively, if the value is set to 2, Autolevelswitch will stop after the last chunk of the current level instead of loading the next level.

Fast Forward Cutscenes#

Watch on YouTubeThere is also another unused fonction from A New Beginning that allows to fast forward most cutscenes in the game. In the Wii version, you can enable it by setting 804a0d40 (USA) or 804a1280 (EU) to 1. You can also use the following GameShark / CodeBreaker code to enable Fast Forward Cutscenes in the PS2 version of the game : 20946600 00000001 (USA) or 20946B80 00000001 (EU).

(Source: Original TCRF research)

Hidden Cheats#

Several cheats never uncovered before can be inputted while inside the pause menu in-game. Press the following buttons listed below to enable them.

Button Inputs

Reward

L2, R2, R2, L2, Left, Right, Right, Left, L1, R1, L2, R2, Start

Unlimited Magic.

L2, R2, R2, L2, Left, Right, Right, Left, R2, L2, R1, L1 Start

Unlimited Health.

L2, R2, R2, L2, Left, Right, Right, Left, R1, L1, L1, R1, Start

Unlimited dragon time/slow motion.

L2, R2, R2, L2, Left, Right, Right, Left, R1, R2, R2, R1, Start

All magic at max. There is no confirmation sound to this cheat.

L2, R2, R2, L2, Left, Right, Right, Left, L2, R2, R2, L2, Start

All feathers.

(Source: Original TCRF research)

Unused Difficulty Setting#

TLOS_-_TEN_-_DDA_Setting.png

The game contains an unused difficulty setting called "DDA" (Dynamic Difficulty Adjustment). By default it's set to "2", which doesn't change any of the game's base values. However, by using the cheat code below, you can change the difficulty to be easier or harder.

Replace the ? with the difficulty number

NTSC PS2
208be024 0000000?

PAL PS2
208be5a4 0000000?

NTSC Wii
04559A40 0000000?

Below are the values for each difficulty setting dumped from the "EnemySettings.ini.bni" file.

Difficulty

Health

Armour

DefensiveMax

DefensiveHitWeight

DefensiveDecayRate

AttackDamage

AttackDelay

AttackDefensiveThreshold

AttackDefensivePenalty

0

0.25

0.25

0.25

0.25

1.5

0.25

1.5

1.0

1.5

1

0.75

0.75

0.75

0.75

1.25

0.75

1.25

1.0

1.25

2

1.0

1.0

1.0

1.0

1.0

1.0

1.0

1.0

1.0

3

1.5

1.5

1.5

1.5

0.75

1.5

0.75

1.0

0.75

4

2.0

2.0

2.0

2.0

0.5

2.0

0.5

1.0

0.5

(Source: Original TCRF research)

Unused Text#

A bunch of seemingly unused text can be found within the 'translations' files in the game.

Unused Options#

TEXT_CONTROLS_FREESTYLE=166
Freestyle

TEXT_CONTROLS_CLASSIC=167
Classic

TEXT_OPTIONS_CONTROLS=168
Controls

TEXT_MENU_GAME_TOTALS=185
Game Totals

TEXT_MENU_EXPAND=43
Expand/Collapse

TEXT_MENU_SAVEGAME=1006
Save Game

TEXT_JUMP_SAVE=1005
Press <font=font_buttons:0>)</font> to save game

Unused Enemy Names#

Some of these enemy names are originally from A New Beginning, while others seem to be new names that were never used in either game.

A New Beginning Leftovers#

TEXT_CYNDER_NAME=204
Cynder

TEXT_BUFFALOBEETLE_NAME=213
Buffalo Beetle

TEXT_FROGWEED_NAME=214
Frog Weed

TEXT_ELECKING_NAME=218
Electric King

TEXT_FIREBEETLE_NAME=219
Fire Beetle

TEXT_ELECEEL_NAME=220
Electric Leech

TEXT_CONDUIT_NAME=221
Conduit

Unused Enemies#

TEXT_FIRECANNON_NAME=205
Fire Cannon

TEXT_EARTHCANNON_NAME=206
Earth Cannon

TEXT_ELECTRICCANNON_NAME=207
Electric Cannon

TEXT_ICECANNON_NAME=208
Ice Cannon

TEXT_SPIRITDRAGON_NAME=209
Magical Spirit Dragon

TEXT_BLACKDRAGON_NAME=215
Black Dragon

TEXT_ELEMENTALKING_NAME=216
Elemental King

TEXT_STONE_KING=228
Stone King

TEXT_METAL_KING=229
Metal King

Unused Level Names#

There were originally more dragon challenges intended, some of which are actually "playable" with editing of the level files. Skabb's Ship may be an early name for Pirate Fleet or Fellmuth Arena, but it's not used. Well of Night doesn't appear in this game, though it was used as name for the last level in the Gameboy Advance version of Eternal Night instead of Mountain Fortress.

TEXT_DRAGON_CHALLENGE_6=455
Dragon Challenge 6

TEXT_DRAGON_CHALLENGE_7=456
Dragon Challenge 7

TEXT_DRAGON_CHALLENGE_8=457
Dragon Challenge 8

TEXT_DRAGON_CHALLENGE_9=458
Dragon Challenge 9

TEXT_DRAGON_CHALLENGE_10=459
Dragon Challenge 10

TEXT_LEVEL_SKABBS_SHIP=1012
Skabb's Ship

TEXT_LEVEL_WELL_OF_NIGHT=1016
Well of Night

TEXT_LEVEL_SPEEDWAY3=1019
Speedway 3

TEXT_LEVEL_TEST3=1022
Puzzle Test

TEXT_LEVEL_DEMO=4
Testing

Unused Boss Hints#

Though the game shipped without any hints for the major bossfights, there seem to be unused hints that weren't implemented into the game. Interestingly, one of the hints for Gaul mention some sort of mechanic with breaking the pots in the boss arena to weaken him, though it does not seem to work.

Arborick#

DOJO_F_KU_1_INSTRUCT=431
Use Spyro's ranged fireball to set Arborick on fire!

TEXT_BREATH_ICE2_2=616
Aim for Arborick's body parts!

Fellmuth Arena & Pirate Fleet#

TEXT_DIALOG_FIFTYTWO=365
Dodge the Ravage Rider until he hits the breaks then attack the rider who pops out!

DOJO_F_KU_2_INSTRUCT=432
Wait for Skabb's hook to get stuck in the wall then attack him!

DOJO_F_KU_3_INSTRUCT=433
Wait for Skabb to reload then attack him!

TEXT_BREATH_ELEC2_3=611
Wait for Skabb's sword to get stuck then attack him!

TEXT_BREATH_ICE2_1=615
Defeat Skabb's minions first!

Fortress#

DOJO_F_KU_4_INSTRUCT=434
Wait for Gaul to get stuck before trying to attack him!

DOJO_F_KB_1_INSTRUCT=435
Wait for Gaul to become exhausted before trying to attack him!

DOJO_F_KB_2_INSTRUCT=436
Destroy all of the pots to weaken Gaul.

DOJO_F_KB_3_INSTRUCT=437
Unleash your Dark Fury, Spyro!

Unused Gameplay Hints#

There seem to also be some hints that were supposed to trigger in gameplay that were also not implemented.

Temple#

TEXT_DIALOG_TWENTYEIGHT=341
Run Spyro into a statue to push it into place.

TEXT_BREATH_FIRE2_3=605
Wiggle your left analog stick <font=font_buttons:0>0</font> or use Spyro's flame breath to break free of spider webs.

TEXT_ARMOURED_SNAIL_TEXT_TIP=237
Use Spyro's flame breath to force the snail to hide, then jump and attack the rider!

TEXT_BREATH_FIRE2_1=603
Sparx will sometimes show you the way!

TEXT_BREATH_FIRE2_2=604
Try using Dragon Time with the <font=font_buttons:0>!</font> button to help Spyro through.

Ancient Grove#

TEXT_DIALOG_THIRTYFOUR=347
You can knock over some trees by attacking them.

TEXT_DIALOG_THIRTYFIVE=348
Be careful when jumping onto shaking jellyfish or they will zap you!

TEXT_DIALOG_FIFTYNINE=372
Ride the floating jellyfish to the other side.

TEXT_DIALOG_THIRTYSIX=349
Use Spyro's Polar Bomb to clear the burning rubble.

TEXT_DIALOG_THIRTYSEVEN=350
Remember to use Spyro's Fury with the <font=font_buttons:0>,</font> button if you're being over-run by Gaul's forces.

Unknown#

TEXT_DIALOG_FORTYNINE=362
Find and rescue all of the Manweersmalls. Press <font=font_buttons:0>(</font> to destroy the crystals that imprison them.

TEXT_DIALOG_FIFTYTHREE=366
Stay away from the spotlight or you will get zapped.

TEXT_BREATH_EARTH2_3=623
Press the <font=font_buttons:0>!</font> button to skip cutscenes.

Graphics#

Prototype Logo

A New Beginning Logo

Final Logo

There is an unused early logo in the files of the game, more resembling the logo used for A New Beginning.

To do:
Find a better screenshot/logo.

Unused

Used

This early Russian logo can be found in the game's files. The "Spyro" lettering was slightly darker, the formatting of "The Legend of" was altered, and the word "ночь" ("Night") misuses "B" instead of "Ь". While the typo was corrected in the final logo, the letter that was used has a closer resemblance to the Latin lowercase "b".

(Source: Original TCRF research)

Unused Areas#

There are a few test maps in the game that can be accessed through the hidden level select.

Test Maps#

test_01.lc3.bni#

TLOS-TEN-test_01_(1).png TLOS-TEN-test_01_(2).png TLOS-TEN-test_01_(3).png

test_01.lc3.bni contains a ton of props all around the map to test different features. There are also dialogue box buttons that test how they work in-game.

demo_01.lc3.bni#

TLOS-TEN-demo_01_(1).png TLOS-TEN-demo_01_(2).png TLOS-TEN-demo_01_(3).png TLOS-TEN-demo_01_(4).png

Like the map above, this one contains a ton of props. It also tests slopes and different effects.

Battle Test#

TLOS-TEN-reset-test.png TLOS-TEN-reset-test_2.png TLOS-TEN-reset-test_3.png TLOS-TEN-reset-test_4.png

The Reset Test option in the level select launches a battle test of some sorts where you need to activate different stuff, kill enemies etc. to get to the next stage. There are four stages inside the Reset Test option.

Enemy Testing#

There are maps for enemy testing inside the game files. With these you can pretty much fight every enemy that is supposed to appear in the map. From dogs to assassins. By going on the green button, you can spawn the select enemy. Going on the red button will despawn the enemy. Every single one of these maps take a section from a normal map and puts buttons on it.

enemy-temple_01.lc3.bni#

TLOS-TEN-enemy-temple_01_(1).png TLOS-TEN-enemy-temple_01_(2).png TLOS-TEN-enemy-temple_01_(3).png TLOS-TEN-enemy-temple_01_(4).png

Temple Enemy Testing.

enemy-grove_01.lc3.bni#

TLOS-TEN-enemy-grove_01_(1).png TLOS-TEN-enemy-grove_01_(2).png TLOS-TEN-enemy-grove_01_(3).png

Ancient Grove Enemy Testing. This map acts as a testing-section for the Ancient Grove part and the Underground Grove part.

enemy-caves_01.lc3.bni#

TLOS-TEN-enemy-caves_01_(1).png TLOS-TEN-enemy-caves_01_(2).png TLOS-TEN-enemy-caves_01_(3).png

Celestial Caves and Dream Sequence enemies testing map.

enemy-arena_01.lc3.bni#

TLOS-TEN-enemy-arena_01_(1).png TLOS-TEN-enemy-arena_01_(3).png TLOS-TEN-enemy-arena_01_(2).png

Pirate Fleet and Fellmuth Arena enemy testing. The third image is an assassin enemy test. One weird side-effect with testing them like that is that you can't breathe fire on them.

enemy-fortress_01.lc3.bni#

TLOS-TEN-ememy-fortress_01_(1).png TLOS-TEN-ememy-fortress_01_(3).png TLOS-TEN-ememy-fortress_01_(4).png

Mountain Fortress enemy testing map.

(Source: Original TCRF research)

Unused Dragon Challenges#

By editing the 'levels.ini.bni' file to add references to the level files for these unused levels, you can access some unused dragon challenges that don't appear in the level select menu. In the edits that have been made, the levels seem to be only partially playable, with the enemies not spawning in properly due to missing references to the enemies, probably due to not being able to fully edit the 'levels.ini.bni' file properly.

DC06-Earth#

Watch on YouTube

Enemy references from DC06-Earth_env.lc3.bni file

With the edit made to load in this level, it was made using Temple as a base, which seems to be the reason why only the Temple Death Hound enemies seem to spawn in the demonstration above.

EarthTier3 A055_RubbleBrute
DeathHound A016_DeathHound
Dreadwing_W a077_WraithDreadwing
TempleDeathHound A151_TempleDeathHound

DC08-Ice#

Enemy references from DC08-Ice_env.lc3.bni file

It seems that the enemies intended for this level are enemies from Cynder's Lair from A New Beginning, though they do not load in with the edits made to the file.

ElecTier1 A063_ElectricLeech
ElecTier3 A065_Conduit
ElecTier4 A075_CrystalBrute

DC10-Convex#

Kind of playable? But breaks towards the end pretty hard. Unsure if it breaking is due to the edits not working properly, or if it never worked in the first place.

Watch on YouTube

Enemy references from DC10-Convex_env.lc3.bni file

It seems that this challenge also has references to some possible enemies? Though there's no model IDs to go along with them, so it could be possible that Cynder is the only enemy intended for this challenge.

ConvexTier2
ConvexTier3

(Source: Original TCRF research)

Early Boss Area#

There is also an unused area out of bounds in the Ancient Grove level.

There is a circular platform between the tree triggering the Arborick intro cutscene and the Arborick fight itself, hidden by a black wall. It looks like an unifinished area for a boss fight and might have been originally planned for Arborick. There is no collision except for the black wall. It can't be seen in normal gameplay and the only way to access it without hacks is by using glitches to get out of bounds.

(Source: Original TCRF research)

Developer Text#

MAKE.LANG.VBS#

Warren Spence was a production assistant on the project.

'MAKE_LANG.vbs
'Author: Warren Spence - December 06

  Set objShell = WScript.CreateObject("WScript.Shell")
  
    Dim objXL
    Set objXL = WScript.CreateObject("Excel.Application")
    objXL.Visible = FALSE
    
    Set objWorkBook = objXL.Workbooks.Open(objShell.CurrentDirectory & "\cutscenes.xls")    
    objWorkBook.SaveAs objShell.CurrentDirectory & "\cutscenes.xml", 46 '46 = XML file format
    objWorkBook.Close True
    
    Set objWorkBook = objXL.Workbooks.Open(objShell.CurrentDirectory & "\names.xls")    
    objWorkBook.SaveAs objShell.CurrentDirectory & "\names.xml", 46 '46 = XML file format
    objWorkBook.Close True
    
    Set objWorkBook = objXL.Workbooks.Open(objShell.CurrentDirectory & "\translations.xls") 
    objWorkBook.SaveAs objShell.CurrentDirectory & "\translations.xml", 46 '46 = XML file format
    objWorkBook.Close True      

    objXL.Quit
    
    ' now run the batch file to export the text files
    objShell.Run "exportlang.bat", 1, True
    
    ' remove the XML files
    'objShell.Exec "del " & objShell.CurrentDirectory & "\cutscenes.xml"
    'objShell.Exec "del " & objShell.CurrentDirectory & "\names.xml"
    'objShell.Exec "del " & objShell.CurrentDirectory & "\translations.xml"
    

Tasks.txt#

1 Spyro Passes Out In Temple                  - File : Temple_env.lv3, Triggered In Prop ID : 316,TriggerBox_04 
2 Spyro Passes Out In Grove                   - File : (Yet to be triggered)
3 Spyro Passes Out In Arena                   - File : (Yet to be triggered)
4 Spyro Passes Out In AirShip                 - File : (Yet to be triggered)
5 Spyro Wakes up From Dream in Temple         - File : Temple_02.lv3, Triggered In Prop ID : 473,Cutscene_07
6 Spyro Disables Feather Relic in temple_02   - File : Temple_env, Triggered by ConceptRelic_01
7
8
9
10 
11 1st Dream Sequence Complete                - File : Dream_env.lv3,  Triggered In Prop ID : 313,TriggerBox_01
12 2nd Dream Sequence Complete                - File : Dream_env.lv3,  Triggered In Prop ID : 314,TriggerBox_02
13 3rd Dream Sequence Complete                - File : Dream_env.lv3,  Triggered In Prop ID : 315,TriggerBox_03
14 4th Dream Sequence Complete                - File : Dream_env.lv3,  Triggered In Prop ID : 316,TriggerBox_04
15
16
17
18
19
20 Caves Hub - Finished Fire Trial
21 Caves Hub - Finished Ice Trial
22 Caves Hub - Finished Electricity Trial
23 Caves Hub - Finished Earth trial
24 Caves Hub - Finihsed All Trials
25 Tutorial Task in Caves for displaying Button Crab when player first comes across them. 
26 Caves Ice Boss
27 Caves Electricity Boss
28 Caves Fire Boss
29 Caves Earth Boss
30 
31

IgnoredEnemies.txt#

// Whatever global.model enemy entries are listed here will be ignored by the automated AnimationTester.exe which
// is run in the Update.bat.
//
// Note:    If one of -1 -2 -3 -4 -5 -6 -7 or -8 is listed after an enemey then, rather than ignoring the enemy
//      all together, AnimationTester.exe just ignores that particular test for the enemy.
//
//
//  '1' tests whether an animation is defined in the .bad but not the .add
//  '2' tests whether an animation is defined in the .add but not the .bad
//  '3' tests for cycle loop and cycle stop in the animations that require it
//  '4' tests whether attacks have the required 'AttackBegin' and 'AttackEnd'
//  '5' tests whether the reference points used in the add files exist in m3d
//      '6' tests whether subobjects and armour are set up correctly
//      '7' tests whether the melee trails are set up correctly if they exist
//  '8' tests if .add file has an entry for either ASV_HitKnockdown or ASV_HitFall

DeathHound -4
TempleDeathHound -4
GroveDeathHound -4
CynderDeathHound -4

ConvexTier3 -8
ElecTier2_TEMP -8
MiningMoleLeader -8
RavageRider -8

ConvexityTier2
ConvexTier2
CynderTier1_A
CynderTier2_A
CynderTier3_A
CynderTier1_B
CynderTier2_B
CynderTier3_B
CynderTier1_C
CynderTier2_C
CynderTier3_C
CynderTier2Train_C
CynderTier1_D
CynderTier2_D
CynderTier3_D
Dreadwing_A
Dreadwing_B
Dreadwing_D
Dreadwing_Z
EarthTier3
ElecTier1
ElecTier3
Exhumor
FireBoss
FireTier1
FireTier2
FireTier3
IceBoss
IceTier1
IceTier3
SwampTier1
SwampTier2
SwampTier3
FleetGhost
FOrtressYak

(Source: Original TCRF research)