We just reached 30,000 articles on this wiki! 🥳
If you appreciate the work done within the wiki, please consider supporting The Cutting Room Floor on Patreon. Thanks for all your support!
This article has a talk page!

Sonic Generations (PlayStation 3, Xbox 360, Windows)

From The Cutting Room Floor
(Redirected from Sonic Generations (Windows))
Jump to navigation Jump to search

Title Screen

Sonic Generations

Also known as: Sonic Generations: Shiro no Jikuu (JP)
Developers: Sonic Team, Devil's Details (Windows)
Publisher: Sega
Platforms: Windows, Xbox 360, PlayStation 3
Released in JP: December 1, 2011 (PS3/360)
Released in US: November 1, 2011 (PS3/360), November 3, 2011 (PC)
Released in EU: November 4, 2011 (PS3/360), November 25, 2011 (PC)
Released in AU: November 3, 2011 (PS3/360), November 25, 2011 (PC)
Released in KR: November 3, 2011 (PC)


AnimationsIcon.png This game has unused animations.
CodeIcon.png This game has unused code.
GraphicsIcon.png This game has unused graphics.
Sgf2-unusedicon1.png This game has unused abilities.
MusicIcon.png This game has unused music.
TextIcon.png This game has unused text.


ProtoIcon.png This game has a prototype article
PrereleaseIcon.png This game has a prerelease article
NotesIcon.png This game has a notes page

Classic Sonic and Modern Sonic finally meet! Many paradoxes ensue! The PC version is notable for being released after a drought of new Sonic games for the PC, greatly rewarding Sonic fans' patience with a largely unscathed port of Sonic Generations in 2011. Sega still does what Nintendon't.

A remastered version, Sonic X Shadow Generations, was released on October 25th, 2024.

Sub-Pages

Read about prototype versions of this game that have been released or dumped.
Prototype Info
Read about prerelease information and/or media for this game.
Prerelease Info
Miscellaneous tidbits that are interesting enough to point out here.
Notes

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.

Sonic Unleashed Debugger Images

Images from the Sonic Unleashed debugger remain in the game.

All these debug images were in a folder named "reddog". An early screenshot of Sonic Unleashed showed the debugger in action.

Unused Lua Files

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
Hmmm...
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.

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-<color> is just a pixel of that respective color.

Unused Text

Internal Object Names

The game has a XML file which stores the name of each level object in Japanese, which are never seen in normal gameplay. The XML file organizes the objects by category, so it was possibly used by Sega/Sonic Team's level editor.

The dump of XML file is available in the Notes page.

Source Code File Names

The game's executable is scattered with the filename of the game's source code. For some reason, some of the filenames such as "hhMessage.h" is repeated many times in the exe. More info is on the Notes page.

Unused Super Sonic Character Text

In the Characters section of the art room, there are 14 characters with biographies, however, the data includes text for an entry for Super Sonic, who's never seen in this section and lacks any other data for it in the XML files.

The name given to Sonic's 
ultimate form when he is 
transformed through the 
power of the Chaos 
Emeralds. 
 
Sonic is more powerful 
than normal as Super Sonic, 
but he can remain so for 
only a short time due to 
the tremendous amounts of 
energy required. 

Unused Wisp Skill Descriptions

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're only in this level, but there are skill entries/descriptions for them in the skills file. However, they cannot be hacked into a save file, as they are missing from the game's Skill list.

Turns Sonic into an Orange Rocket to fly up. 
Turns Sonic into Pink Spikes- Cling to surfaces!

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.

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

Unused Music

The game features a few unused jingles and a prototype Green Hill Zone HUB song.

EMBB044_vs_Silver_Pt2_wav.aax

An unused part of Silver's rival boss theme that doesn't play in-game. In the original soundtrack, it just plays later on in the track at around 2:28 - but they separated this from it and labelled it Pt2. The original purpose of this track being separate is unknown.

EMBB072_Invincible2_wav.aax

This song plays when Modern Sonic gets an invincibility box...but there aren't any in any Modern acts. It still works if you hack Modern Sonic into a Classic stage, however. This did eventually get used in the 3DS version.

EMBB075_1up_wav.aax

This song was unused in Sonic Adventure, used in Sonic Adventure 2 and returns to being unused in Sonic Generations! The actual 1-Up jingle in the game is stored as a short sound file instead.

EMBB081_Time_Break_wav.aax

This song is supposed to play whenever the Time Break skill is used, but it doesn't. Despite it not being used, it has been included on the Blue Blur: Sonic Generations Original Soundtrack album release as "Skill: Time Break". It is a remix of Cyber Track from Sonic Advance 3.

PAMxx_Dummy_A_wav.aax through PAMxx_Dummy_M_wav.aax

An unused White World HUB theme, which sounds like the Green Hill Zone HUB theme but played with the instruments from White World's HUB theme.

Environment Map Secret

SonicGenPlanetWispEnv.png

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.

There exists both Japanese and US logos for Sonic Battle in the game with the other logos used for the tracks in the collection, this could imply that a song from Sonic Battle was considered for the collection, though ultimately not included. There is a rendition of a song from Sonic Battle in the game (Emerald Beach, used for some missions), but it is not selectable in the Change Music menu.

Sonic Unleashed Leftovers

Sonic Generations was built directly atop the Sonic Unleashed codebase, so there's, naturally, a fair amount of leftovers. These images were extracted from the PC version.

Hmmm...
To do:
See if any of these files exist in the console versions.

Foot Sweep Kick

The Foot Sweep Kick move from Sonic Unleashed is still in the game, but unused. It can be re-enabled by replacing 74 55 to 08 56 at offset 9FECD6, then pressing the B button in-game.

(Source: N69vid)

Sonic Unleashed Install Leftovers

Inside bb2.cpk, there is a folder labeled Install that contains images that would've been used during an install process. These are also present in the PlayStation 3 version of Sonic Unleashed.

Images from SystemCommon.ar.00

disk/bb/SystemCommon.ar.00 contain several images for debug mode/level editor things, plus the infamous Werehog icon.

Leftover Unleashed Renderer and Shader Tables

Hmmm...
To do:
More detail about this renderer and compare it to the one used in Generations. Some info here and here.

While there are new Shader Tables and a new optimized renderer, it looks like Sega forgot to take the old ones out. Oops.

See the notes page for info on how to set these leftovers to appear in the game.

One thing you can notice right off the bat is that the Unleashed renderer uses more intense motion blur. This is not so on the one that is used in-game. Additionally, the Unleashed version displays angular shadows (objects cast their shadows at an angle depending on the light source), which is not the case in Generations.

Letterbox Mode

A leftover Boolean from Sonic Unleashed for whether or not the game is displayed in a widescreen aspect ratio. This can be set to letterboxed by hex editing A79DA5 to 00, although the HUD will improperly scale.

Mission UI

disk/bb/ActionCommon.ar.00 contains the Mission UI from Unleashed (ui_missionscreen.xncp), however, most of the textures are missing. Copying them directly from Unleashed makes it possible to view.

Leftover Mission UI from Sonic Unleashed

Others

  • Also included are logos from Sonic Unleashed/Sonic World Adventure, all of the Hints (picture wise), and every single inventory item/collectible.
  • There are also leftovers of Sonic Unleashed's textures in the game's files.

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

Hmmm...
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.

Unused Animations

Present in "tails.ar.00" is an animation of Tails walking titled "tl_walk_loop.anm.hkx"

Tl walk loop.anm.hkx.gif

There's also a running animation called "tl_run_loop.anm.hkx"

Tl run loop.anm.hkx.fbx.gif

Oddities

Hmmm...
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

Hmmm...
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.

Console/PC Differences

Graphics

The Xbox 360 and PC version have horribly pixelated cutscenes, due to the files being downscaled to 480p and running at a much lower bitrate in order to fit on a standard DVD, unlike the PS3 version, which uses a 25GB Blu-Ray disc.

Unlockable Sonic 1

In the console versions of Sonic Generations, you could purchase an item in the Skill Shop called the Sega Genesis/Mega Drive Controller to unlock the ability to play 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.

When playing the Xbox 360 version with FPS Boost on Xbox Series X|S, the Sonic 1 emulation runs very slowly, suggesting this was why it was removed from the PC version.

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.