the cutting room mirror

Sonic Generations (PlayStation 3, Xbox 360, Windows)

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

Resources#

Debug Leftovers#

There are evidences that once a huge debug mode was present in the game.

Debug Leftovers in MainSequence.lua#

The Lua script for boot sequence (disk/bb3/#Application.ar.00/MainSequence.lua, Plain-text version here) contains some debug-related stuff.

(Source: evilhamwizard (Plain-text MainSequence.lua))

global("g_IsDebugSequence", 0);    -- デバッグシーケンスフラグ

At the beginning of the file, there is a variable named "g_IsDebugSequence". If this value is 1, the Lua script will boot directly into the debug initialization (MODULE_DEBUGINIT) instead of the start of logo sequences (MODULE_NOTICE_CESA). However, the game will get stuck at a black screen, because the game requires displaying the Havok logo to successfully initialize the game. In addition, this flag is reset to 0 when the game enters the title screen.

If the debug initialization (MODULE_DEBUGINIT) is entered from the title screen without setting g_IsDebugSequence to 1, the game will enter the main game, but with no visible changes.

If the debug initialization is entered AND the variable g_IsDebugSequence is 1, the lua script will try to enter the debug menu screen mode (MODULE_DEBUGMENU) instead of the hub world (MODULE_PLAYABLEMENU). However, the game will get stuck at the last frame of "Sonic is falling" intro animation.

Unused Lua Files#

To do:

  • Do you own the plain-text versions of those Lua files? If so, please upload it! There might still be unused elements.
  • See if the debug options can be re-enabled and if so, see if they still work.

disk/bb3/#Application.ar.00 holds these files. Some of them, such as ApplicationSettingDebug.lua and DebugLauncher.lua, seem to be unused.

ArchiveTree.xml
EnemyArchiveTree.xml
EventArchiveTree.xml
LanguageTree.xml
NPCArchiveTree.xml
OtherArchiveTree.xml
VoiceTree.xml
ApplicationMain.lua
ApplicationSetting.lua
ApplicationSettingDebug.lua
DebugLauncher.lua
MainSequence.lua
MainSequenceDemo.lua
PlayableMenuNPCTalkSetting.lua
PlayableMenuNPCTimeTable.lua
PlayableMenuSequenceTable.lua
scheduler.lua
ScoreTimeTable.lua
script_core.lua
ScriptTest.lua
StorySequence.lua
StorySequenceDemo.lua
StorySequenceUtility.lua
Vibration.lua

Dummy "gi" Files#

Within an unpacked bb3.cpk is an Application.ar.00 which contains these files:

10SYS_CMN.csb
ev011.evs
ev113.evs
converse_common.dds
gi-dummy-black.dds
gi-dummy-blue.dds
gi-dummy-gray.dds
gi-dummy-green.dds
gi-dummy-red.dds
gi-dummy-white.dds
gi-dummy-yellow.dds
fxp_radial_noise.dds
fxp_tonemap_mask.dds

There's a lot of "dummy" files in there. The dummy- is just a pixel of that respective color.

Unused Mission Options#

The mission levels have a "MissionScript.lua" file which sets the objective of the mission. The objective of the mission is set by calling "SetMissionType" function. Some of the objectives are never used.

Except for "OrderDashRing" (used) and "BreakEnemy" (unused), every mission type is described by the Japanese developer's comment in the mission script.

Default#

-- "Default"            0               // 特に条件がない場合
-- "Default"            0               // No special conditions
SetMissionType("Default", 0);

This mission type has no objectives or limitations.

BoostMax#

-- "BoostMax"           ブースト倍率  // ブースト全開
-- "BoostMax"           Boost Multiplier    // Maximum Boost
SetMissionType("BoostMax", Boost Multiplier);

This mission type doesn't seem to have an effect; presumably replaced by the Endless Boost skill.

BreakEnemy#

SetMissionType("BreakEnemy", Number of enemies);

Sonic must destroy a certain number of enemies before reaching the goal. The HUD shows an icon of Motobug, the number of enemies beaten, and the number of kills required. This mission type is not listed in the developer's comments. Note that this mission type is used in the 3DS version.

To do:
Document the SetCustomizeSkill function; Shields and PowerBrake are unused.

\

Unused NPC#

In the Pam.ar files, there are ".xtb" files that can be found for every character in the game that the player can talk to in White Space. Along them, there are .xtb files referencing Big the Cat, suggesting he was going to be seen in the game too. Evidence further points out to this in the game's credits where Kyle Herbert is listed as one of them in the "Character English Voice". He would later be seen the re-release via Shadow Generations.

  • NPC_Big_Balloon.xtb
  • NPC_Big_BodyMotion.xtb
  • NPC_Big_SinglePartical.xtb
  • NPC_Big_Sound.xtb

Unused Skills#

Super Peel Out#

The skill icon of the Super Peel Out move from Sonic the Hedgehog CD is used on the PS3 and Xbox 360 versions for the Infinite Continues skill for Sonic 1. However, as the PC version doesn't come with Sonic 1, the icon is unused and remains in the game's files.

Wisp Skills#

In Planet Wisp, Sonic can collect Wisps from Sonic Colors: Classic Sonic can use the Pink Spikes, while Modern Sonic can use the Orange Rocket. Normally, they are only useable in this level, but there is unused text of skills for them. They cannot be hacked into a save file, as they are missing from the game's Skill list.

Orange Rocket
Turns Sonic into an Orange Rocket to fly up.
You got Orange Rocket!

Pink Spikes
Turns Sonic into Pink Spikes- Cling to surfaces!
You got Pink Spikes!

Unused Endless Boost Icon#

Normally the Endless Boost skill uses the same icon as Auto-Gauge, however there is an unused unique icon that was meant to be used for it. This icon is used for it in Sonic X Shadow Generations.

Environment Map Secrets#

Planet Wisp#

To do:
Another environment map with the same name as this one but seemingly more final is found in a Planet Wisp file in the Packed folder. Is it possible that this is actually an early version of the Planet Wisp environment map, and is unused? The finalized environment map is also found in the data of act 2, and this early environment map is only in act 1.

The environment map for Planet Wisp is actually made of screenshots from the game itself. The six parts of the image, which are assembled together to form a cube, all show Sonic running through the air in a nondescript location in Planet Wisp. Just below his feet is a ball made of red wires, which indicates the use of a 3D rotation tool. The last two sides are duplicates of the first two.

Casino Night#

To do:
See if it's possible to get better screenshots from the final

The Environment Map for Casino Night ("cnz_metal_ty1_envmap_cube") is actually made up of mirrored screenshots of the stage during it's earlier development. While it looks mostly similar to the final, there are some minor differences. The following below are flipped horizontally to make it easy to compare. Some object placement is also present here, looking more like final aside some missing object placements, though it's possible a they were removed when the screenshots were being taken.

Image (Environment Cube)

Image (Final)

Description

There is a major amount of background geometry that was either removed or changed around. The most noticeable one being the bridge, suggesting there was going to be one on each side.

The green bulb seems to have been rotated and there seems to be an additional wall that was removed in the final. The big ring capsule behind the slot machine also appears to be a bright blue compared to the final

N/A

Seems pretty much final.

  • There is a lot less detail on the stage itself.
  • The arrows, such as the one on the top left screen, seem to have a different sprite.
  • The last two stars on the left and right sides are present, where in the final they are on top of the bumpers.
  • There is a building at the bottom of the image, which was removed in the final game.

N/A

This area doesn't seem to exist, likely removed during the stage's development.

The coins don't have any glowing effects around them and the spring where the "Casino" sign is seems to be in a slightly different angle.

Unused Models#

To do:
Add Debug Models and objects from Rooftop Run.

Chemical Plant#

There is a spring object, where according to its filename suggests it would also be a switch for a pipe. For what its purpose would've been for, the player would interact with it and bounce off of it as it were a spring along with it activating something. If placed in-game, interacting with it for the first time will light the object up and spring the player upward, playing an unused sound effect along with it that was used in games like Sonic Heroes and Shadow the Hedgehog, via interacting with switches.

Sky Sanctuary#

An bubble of a five second time bonus meant for the Challenge Act, "Knuckles: Buried Treasure". Only the ten and twenty second variants can be found. It also has an unused animation to go with it.

Speed Highway#

An unused street cone and gear object are present in the files for Speed Highway.

Seaside Hill#

An unused pot object is present in the files for Seaside Hill, with additional ones for when the player were to break the object.

Planet Wisp#

While there are Safety Drums in the stage, they are only seen as decorative objects. However, they were also meant to be breakable objects the player could interact with. Along with the second image below, there are a total of eight model files for when the object is destroyed.

30 Second Goal Post#

The 30 Second Goal Post has images for when the Goal Post were to be broken, possibly by when the player passes by it. This does not happen in-game.

Unused Sonic Parameters#

Sonic's parameters (such as his speed) are stored in disk/bb3/#SonicClassic.ar.00/SonicClassic.prm.xml (Classic Sonic) and disk/bb3/#Sonic.ar.00/Sonic.prm.xml (Modern Sonic). Some of the parameters are unused.

OnIce2D/OnIce3D#

There are Friction/Acceleration/Velocity-related settings for ice surfaces, but since there are no ice-themed levels in Generations, these settings are unused.

XButtonHoming#

<XButtonHoming>false</XButtonHoming>

If set to true, Modern Sonic can only perform the Air Dash by pressing X with an empty Boost gauge, and Homing Attack is performed by pressing X like in Sonic Unleashed. For Classic Sonic, he can use the Air Dash by pressing A, but he still needs the Homing Attack skill (unlocked by collecting all Red Rings from Planet Wisp Act 1) to actually home into the enemies. He also becomes unable to activate the double-jump ability of elemental shields.

Debug Options#

 <Debug>
   <Category>
     <Damage>
       <Param>
         <DebugNoDamage>false</DebugNoDamage>
         <DebugNoDead>false</DebugNoDead>
         <DebugNoDeadDrowning>false</DebugNoDeadDrowning>
         <DebugNoDrowningImmediately>false</DebugNoDrowningImmediately>
         <DebugNoFallDead>false</DebugNoFallDead>
       </Param>
     </Damage>
     <Skill>
       <Param>
         <DebugSkillCancelEnabled>false</DebugSkillCancelEnabled>
         <DebugSkillSpikeEndless>false</DebugSkillSpikeEndless>
         <DebugSkillSuperSonic>false</DebugSkillSuperSonic>
       </Param>
     </Skill>
   </Category>
 </Debug>

Unfortunately, none of these debug options are functional in the retail version. Sonic still takes damage and dies regardless of these settings.

Unused HUD Animations#

To do:

  • Convert these videos to GIF format

There are few unused animations in the scenes blb_gauge and blb_gauge_eff in the HUD XNCP file (disk/bb.cpk/SonicActionCommonHud.ar.00/ui_gameplay.xncp), these were supposed to be used in the Time Eater boss.

Oddities#

To do:
I remember that someone hacked the full PC version to boot in the demo version's menu (via Lua script hacking if I remember correctly). Could someone confirm it?

Filename Extension#

Many models and textures have "_HD" at the end of their filenames. What's interesting about this is that many models and textures in the Wii version of Sonic Colors, which shares a lot of enemies and animations with Generations, have filenames that end with "_SD". Sonic Team rarely keeps filenames consistent across games, suggesting that many of the assets in Colors had been created for a Wii version of Generations.

(Source: Sonic Retro)

Light Dashable Rings in Classic Sonic Stages#

To do:
Specific examples.

Some of the rings in Classic Sonic's levels have the "light dashable" flag on, which won't do anything when playing as Classic Sonic.

Internal Music Names#

The internal name for the track Mission 4 is "EMBB086_Mission4_S320_wav". Given that every mission song lists its source in its name, the "20" in "S320" can be read as indicating the song's ID on Sonic 3's sound test. However, in Sonic 3, sound ID 20 is Azure Lake, while this song is actually a remix of Balloon Park, which is sound ID 21. It's worth noting that the other Balloon Park remix, Mission 2, does correctly list the song's sound ID in its name ("EMBB084_Mission2_QR_S321_wav").

Version Differences#

To do:
PC version has a few missing details, e.g. music starts straightaway rather than after "go", Sonic doesn't stick to wall when trying to wall jump, missing cutscene in Casino Night DLC, supposedly some stage elements don't work correctly due to the game using 60fps as opposed to 30fps on console. PS3 supposedly has more frame drop, and also has input lag unless you change system video settings to 720p (even though the native res is only 720p)?

Graphics#

  • The Xbox 360 and PC versions' FMVs are in 480p and have a lower bit rate to fit on a 8.5GB DVD. As the PS3 version uses a 25GB Blu-ray Disc, the FMVs on that version are in 720p.
  • The Xbox 360 version, when played on an Xbox Series S or X, can be played at 60 FPS and at 4K resolution.

Unlockable Sonic 1#

In the Xbox 360 and PlayStation 3 versions, you can purchase an item in the Skill Shop called the Sega Genesis/Mega Drive Controller to unlock the ability to play an emulated version of the original Sonic the Hedgehog. The PC version removes this entirely, leaving a blank spot in the HUB. However, files for it (such as the White World HUB song and shop icons) are still in the game. This is also the case in Sonic X Shadow Generations.

It was most likely removed from the PC release because of two reasons:

  • When playing the Xbox 360 version with FPS Boost on Xbox Series X|S, the Sonic 1 emulation has a strange tendency to slowdown (meaning that the emulator was intended for 30 frames per second systems)
  • The emulator has "save states" that will automatically change the input for that state.

Lua Script#

The game uses Lua script files (*.lua) for configuring some parts of the game. The Lua scripts included in #Application.ar.00 archive (contains the game's startup process and story sequences) were plain-text format in console versions, but the PC version uses binary-compiled format instead. The actual contents of the script is presumably unchanged from the console versions, as the PC version accepts the console version's Lua files just fine.

The game also uses Lua scripts in the missions and some of the bosses, but they are in plain text format for all versions.

References#


  1. https://sonic-city.net/wiki/index.php/Sonic_Generations↩︎