Scrapped Chapters#
First Steps#
This chapter, which featured a baby Jodie interacting with Aiden for the first time, was intended as the initial gameplay tutorial. When it was replaced with "The Experiment" as the tutorial, Quantic Dream intended to release it as bonus DLC, evident by the game files containing code checking for a "FirstStepsAddon". Text files confirm that it was meant to occur after "Broken" and before "The Experiment" in the game's play order.
A fully playable version of this chapter exist in a 2012 test build of the game, and can be viewed here.
The interaction triggers, sound effects, variables, and objects list can all be found in the game files:
Interaction Triggers
JodieSitAndLookAiden
ZoneBaloonNoBlast
ZoneSteamFather
ZoneJodieFall
ZoneAmbianceExterieure
ZoneAmbianceRDC
ZoneAmbianceJHORoom
ZonePictoBlastCadres
ZonePictoBlastChair
ZonePictoBlastJodieBed
ZonePictoBlastToyBox
ZonePictoBlastWoodTrain
ZoneExitPicto
ZoneTutoLookJodie
ZoneTutoWalk1
ZoneTutoWalk2
ZoneTutoWalk3
ZTutoAidenInRDC
ZTutoAidenNearFather
ZoneReminderManif2
ZoneReminder3
ZoneJodieOutOfRoom
ZonePlushToy
ZoneAidenHalwayToArtMo
ZoneAidenNearSusan
ZoneCenterRoom
ZBlockAidenParentRoom
ZAidenBlockZone02
ZAidenBlockZone03
ZAidenBlockZone04
ZAidenBlockZone05
ZAidenBlockZone06
ZoneExitingParentsRoom
ZoneEnterparentsRoom
ZoneCollisionSusan1
ZoneCollisionSusan2
ZoneCollisionSusanPhone
ZoneCollRattle
ZoneCollTutoWalk
ZoneCollXylo
ZoneXylophonePlay
ZoneSusanTakeSqueakToy
ZoneSusanGiveSqueakToy
ZoneJodieGetUp
ZoneTeddyBear
ZonePlayRattle
ZoneTeat
Sound Effects
IW_0301_FIRSTSTEPS_SFX_3D_SBlastDesk_Fall
IW_0301_FIRSTSTEPS_SFX_M_sHugJodieBear_HugTeddyBear_Grab_Plushl
IW_0301_FIRSTSTEPS_SFX_3D_sFatherReactKettle_Sit_Chair
IW_0301_FIRSTSTEPS_SFX_3D_OpenCorridorDoor
IW_0301_FIRSTSTEPS_SFX_3D_ColDyn_WoodCubes_On_HardFloor_C_Light
IW_0301_FIRSTSTEPS_SFX_3D_Blast_Drawing
Variables
QDR._0301_FIRST_STEPS_Var.iCompteurInteractionsJodie = 0
QDR._0301_FIRST_STEPS_Var.iCompteurRaccourci = 0
QDR._0301_FIRST_STEPS_Var.bEnterTutoWalkZone1 = false
QDR._0301_FIRST_STEPS_Var.bEnterTutoWalkZone2 = false
QDR._0301_FIRST_STEPS_Var.bEnterTutoWalkZone3 = false
QDR._0301_FIRST_STEPS_Var.bTutoControlDone = false
QDR._0301_FIRST_STEPS_Var.bTutoWalkFinished = false
QDR._0301_FIRST_STEPS_Var.iTutoLookTrigValueTest = 0
QDR._0301_FIRST_STEPS_Var.bTimerTutoLookStarted = false
QDR._0301_FIRST_STEPS_Var.bTutoSqueakFinished = false
QDR._0301_FIRST_STEPS_Var.bTutoXyloDone = false
QDR._0301_FIRST_STEPS_Var.bTutoBearDone = false
QDR._0301_FIRST_STEPS_Var.bTutoCrossWallDone = false
QDR._0301_FIRST_STEPS_Var.bTutoBlastLaunched = false
QDR._0301_FIRST_STEPS_Var.bTutoParentsBedroomDisplayed = false
QDR._0301_FIRST_STEPS_Var.bJodieOutOfRoom = false
QDR._0301_FIRST_STEPS_Var.iNumberActionToAiden = 3
QDR._0301_FIRST_STEPS_Var.bSwitchAidenReenabled = false
QDR._0301_FIRST_STEPS_Var.iCounterBlast = 0
QDR._0301_FIRST_STEPS_Var.bCutsceneLaunched = false
QDR._0301_FIRST_STEPS_Var.bJodieEnterSqueakZone = false
QDR._0301_FIRST_STEPS_Var.bSusanIsOnSqueakZone = false
QDR._0301_FIRST_STEPS_Var.bJodiePlayedSqueakToy = false
QDR._0301_FIRST_STEPS_Var.bSusanLegUp = false
QDR._0301_FIRST_STEPS_Var.bSusanLegUpCYC = false
QDR._0301_FIRST_STEPS_Var.bHasAlreadyLegUp = false
QDR._0301_FIRST_STEPS_Var.bSusanLegAlreadyActive = false
QDR._0301_FIRST_STEPS_Var.bSusanDialInterrupted = false
QDR._0301_FIRST_STEPS_Var.iPhoneDialCue = 1
QDR._0301_FIRST_STEPS_Var.bSusanDialLoop = false
QDR._0301_FIRST_STEPS_Var.bSusanTookRattle = false
QDR._0301_FIRST_STEPS_Var.bSusanSitted = false
QDR._0301_FIRST_STEPS_Var.bSusanMoveToStandUp = false
QDR._0301_FIRST_STEPS_Var.bTimerFinallaunched = false
QDR._0301_FIRST_STEPS_Var.bJodieIsOnTheCarpet = false
QDR._0301_FIRST_STEPS_Var.bStopCamera = false
QDR._0301_FIRST_STEPS_Var.bTeatInMouth = false
QDR._0301_FIRST_STEPS_Var.bTimerSwitchAidenLaunched = false
QDR._0301_FIRST_STEPS_Var.bAidenInRoom = false
QDR._0301_FIRST_STEPS_Var.bAidenOutside = false
QDR._0301_FIRST_STEPS_Var.bAidenRDC = false
QDR._0301_FIRST_STEPS_Var.bSqueakThrowed = false
QDR._0301_FIRST_STEPS_Var.iToySqueezed = 0
QDR._0301_FIRST_STEPS_Var.fAidenPitch = 0
QDR._0301_FIRST_STEPS_Var.flRotateLeft = 0
QDR._0301_FIRST_STEPS_Var.flAidenRotateRight = 0
QDR._0301_FIRST_STEPS_Var.bBallonDisable = false
QDR._0301_FIRST_STEPS_Var.bTimerPlusStarted = false
QDR._0301_FIRST_STEPS_Var.bTimerMoinsStarted = false
QDR._0301_FIRST_STEPS_Var.iCompteurTutoMVTAiden = 0
QDR._0301_FIRST_STEPS_Var.iCompteurMVTTutoCamera = 0
QDR._0301_FIRST_STEPS_Var.iCompteurBlastsZoneCadres = 0
QDR._0301_FIRST_STEPS_Var.iCompteurBlastsZoneChair = 0
QDR._0301_FIRST_STEPS_Var.iCompteurBlastsZoneBed = 0
QDR._0301_FIRST_STEPS_Var.iCompteurBlastsZoneToyBox = 0
QDR._0301_FIRST_STEPS_Var.iCompteurBlastsZoneWoodTrain = 0
QDR._0301_FIRST_STEPS_Var.bMugBlasted = false
QDR._0301_FIRST_STEPS_Var.bTimerEnableSwitchLaunch = false
QDR._0301_FIRST_STEPS_Var.bFinalTimerLaunched = false
QDR._0301_FIRST_STEPS_Var.iCompteurFourActions = 0
QDR._0301_FIRST_STEPS_Var.bFirstRDCVisit = false
QDR._0301_FIRST_STEPS_Var.bJodieOutOfRoom1stTime = false
QDR._0301_FIRST_STEPS_Var.bJodieAlreadyTryOutOfRoom = false
QDR._0301_FIRST_STEPS_Var.bJodieOutZone = false
QDR._0301_FIRST_STEPS_Var.bJodieValidateSwitch = false
QDR._0301_FIRST_STEPS_Var.iActionReminderDone = 0
QDR._0301_FIRST_STEPS_Var.iAidenBlasting = 0
QDR._0301_FIRST_STEPS_Var.bPictoAffiche = false
QDR._0301_FIRST_STEPS_Var.bMugReminder = false
QDR._0301_FIRST_STEPS_Var.iItemNearFatherBlasted = 0
QDR._0301_FIRST_STEPS_Var.bLevitPlushToyGetUp = false
QDR._0301_FIRST_STEPS_Var.iAidenBlastFather = 0
QDR._0301_FIRST_STEPS_Var.bKettleBlasted = false
QDR._0301_FIRST_STEPS_Var.bRadioBlasted = false
QDR._0301_FIRST_STEPS_Var.bKitchenLampBlasted = false
Objects
JodieBaby
Susan
John
ArtMobileToy
Fridge
Curtain
CurtainB
JodieBed
GiraffeLamp
RoomLamp
KitchenLamp
KitchenTable
Mug
Chair
Toybox
Desk
Commode
BabyGym
BedChest
Plush
Xylophone
XyloStick
Kettle
Radio
Doudou (French for "security blanket")
Pacifier
Phone
WoodTrain
Balloon
ToyElephant
SqueakyToy
Rattle
BabyDrawingA
BabyDrawingB
JohnChair
JohnMug
JohnPaper
AuraJodie
AuraSusan
AuraJohn
Welcome to the CIA#
There were several training exercises removed from the final version of this chapter. These are intact (albeit unlinked) on the original PS3 release of the game, but were deleted entirely from subsequent PS4 and PC versions.
"1203_HARD_TRAINING_FOREST_PUMPS": An additional training exercise in the forest, instructed by Vince. This exercise took place in a cut area labeled "CIA_FOREST_WINTER".
"1204_HARD_TRAINING_LEARNING": Jodie would be taught how to speak and understand Japanese. Despite being numbered after the "Forest Pumps" exercise, it was meant to occur before it, evidenced by her shorter hair length during this exercise.
"1205_HARD_TRAINING_FIGHT_2": A second fighting lesson with Vince. This was meant to occur after what would have been the second "Learning" exercise (which was retained in the final version).
"1206_HARD_TRAINING_AIDEN_2": A second exercise focusing on use of Aiden, instructed by Nick. During this sequence, Aiden would again be tasked with moving objects from a distance, this time with cars instead of barrels. This would also be timed, unlike the first exercise. This was meant to occur after the final fighting lesson.
"1207_HARD_TRAINING_GUN_FIGHT_2": A stealth exercise where Jodie would have to sneak up on Nick. This was likely intended to teach the player how to utilize the takedown mechanic. It was meant to occur after the above exercise.
It was also originally possible to succeed during the exercise where Jodie is performing a split in the dojo. In the final game, she will always injure her leg.
Unused Dialog#
Audio#
Like Other Girls#
There are some disturbing voice clips in the game's files that are used in the November 2012 build, in which Jodie would be held onto the pool table like in the final build, looping the situation as the audio plays to provoke the player into quickly reacting. Should the player not act, the scene could also time out so Nathan and Cole can come in and prevent further things from happening, while Jodie lashes out at Aiden for not intervening. In the final game, Aiden always comes to the rescue and prevents the abuse from occurring. If the player doesn't leave the bar before the attempted abuse, a tiny bit of the removed abuse scene can be seen at the very end of the game, when Jodie is at the final part in Black Sun.
The following content is |
|---|
|
(Source: Hugo_Peters)
The Party#
In the scene where Kirsten (or Brenda as she's called in the debug mode) opens her birthday gifts, she only opens Jen's gift before opening Jodie's, however, the full dialog shows her opening Emma's gift as well.
Text#
Black Sun#
After the Hauntings chapter, and the briefing at the DPA, when you sit down with Ryan, there's some unused dialog to one of the options. If there's audio for this is currently unknown. When you select Regrets at the second option, you will hear this:
https://www.youtube.com/watch?v=MK7i_BQ4qFU&t=2m
The dialog for this part is as follows:
{S}{*1}I shouldn't have accepted that mission.{*2}I was only thinking about my freedom, and that was stupid.{*3}That was really, really stupid...
The last sentence is missing in the game, for the better though.
Development Text#
Every single function name, constant name or value and just about any other dev related text is still readable from the precompiled Lua Dynamic Communicator (DynCom) chunks.
A Dynamic Communicator is a block of events, parameters and attributes for a certain script function in the game. These are formatted as precompiled Lua "function chunks". The values of these "settings" are stored either compressed (as a segs entry, which is a split up ZLIB archive), or uncompressed (as a QZIP entry, which is funny, because "ZIP" normally indicates a compressed file entry). The name of these blocks is COM_CONT, which is short for Dynamic Communicator Container. Aside from storing just values as Lua functions, modified versions of Dynamic Communicators are also used for storing the "actual" scene scripts, model data, animation data, (very small amounts of) audio, video (like the sport scenes and cartoons on the in-game TVs), textures, dialog sequence text, and more.
Here are the most notable strings (constants) in the precompiled Lua chunks found so far:
Source File |
DynCom Block Offset |
Lua (Relative) Function Chunk |
String |
|---|---|---|---|
BigFile_PS3.d01 |
0x6123C800 |
#2 |
[ARI] ForceSwitchJodie Done !! |
BigFile_PS3.d01 |
0x6123C800 |
#3 |
[ARI] ForceSwitchAiden > YOU SHOULD NOT BE HERE !!! /ari call |
BigFile_PS3.d01 |
0x6123C800 |
#10 |
[SCRIPT][ARI] fSequenceParameters> STEALTH CONFIG !!!! we go in cover |
BigFile_PS3.d03 |
0x19131800 |
#20 |
[SCRIPT] fDefineGameplay> GMResumeGameplay mais Jodie n'était pas en PAUSE donc je ne relance pas le VariableConnector (but Jodie was not in PAUSE therefore I will not restart the VariableConnector) |
BigFile_PS3.d03 |
0x19131800 |
#39 |
[ARI] fDefineGameplay> Cas Impossible !! prevenir ARI !! (''Impossible Situation |
BigFile_PS3.d03 |
0x19131800 |
#39 |
[ARI] fDefineGameplay> On est revenu en Jodie, pas la peine de pauser le gameplay (We returned to Jodie, no need to pause gameplay) |
BigFile_PS3.d03 |
0x19131800 |
#43 |
SetGenericMotionKitWithVariableConnector |
BigFile_PS3.d03 |
0x19131800 |
#43 |
[SCRIPT] fDefineGameplay> Try Start Variable Connector Controller |
BigFile_PS3.d03 |
0x7269800 |
#2 |
[ARI] fPlayAutomatedSequence> EnableCameras, Enable Interaction !!!! |
BigFile_PS3.d03 |
0x7269800 |
#5 |
[ARI] fPlayAutomatedSequence> Disable Interaction d'abord !!!! (''Disable Interaction first |
BigFile_PS3.d03 |
0x7269800 |
#6 |
[ARI] fPlayAutomatedSequence> DisableCameras, Disable Interaction !!!! |
BigFile_PS3.d03 |
0x7269800 |
#11 |
[ARI] ///////////////////////////////////////////////////////////////////////////////// [ARI] YOU SHOULD NOT BE HERE> Events non ignorés lors d'un Kill |
BigFile_PS3.d03 |
0x7269800 |
#27 |
[SCRIPT][ARI] ---- fPlayAutomatedSequence> OnResume> Nothing |
BigFile_PS3.d03 |
0x7269800 |
#30 |
[SCRIPT][ARI] ---- fPlayAutomatedSequence> OnFinish> UNREGISTER ignored, MPAR already Started |
BigFile_PS3.d03 |
0x7269800 |
#45 |
[SCRIPT][ARI] ---- fPlayAutomatedSequence> OnStop> ETRANGE ON NE DEVRAIT PAS ETRE ICI (WEIRD SHOULD NOT BE HERE) |
Inside the (decrypted) main executable EBOOT.ELF are many development-related strings. Here are the most notable ones found so far:
Offset |
String |
|---|---|
0xD7C2B0 |
Default type, no reaction |
0xD7C2D0 |
The character is supposed to have a reaction, but no steps |
0xD7C310 |
The character has a reaction, can make few steps but stays up |
0xD7C350 |
The character has a reaction, can put his knees/hips/hands on grownd but finally stays up (note the typo) |
0xD7C3B0 |
The character falls to the ground but will get up later |
0x00DBAF3C |
iam-trigger |
0x00D86BDC |
lazy lazy coder |
0x00D80384 |
Out of memory while calling edgeZlibAddInflateQueueElement. The game will crash soon ! |
0x00DE8E98 |
0x3850b752-0x30e46f10:2013-10-09.Physics.SCEE_QuanticDream_BeyondTwoSouls_PS3 |
0x00DE8EE6 |
0x451a0608-0x4daede4a:2013-10-09.Animation.SCEE_QuanticDream_BeyondTwoSouls_PS3 |
0x00DE8F37 |
0x16a72dbc-0x1e13f5fe:2013-10-09.Cloth.SCEE_QuanticDream_BeyondTwoSouls_PS3 |
0x00D98FD8 |
MenuDemp (On this position there's also the MenuProduction, MenuGame and MenuE3 strings, though this one is new) |
0x00D90249 |
You have to use a CHARACTER instead! |
0x00D90271 |
The object will not be visible! |
0x00D90331 |
(perhaps an area catalog? don't forget to specify the root entity in this case) |
Various |
HEAVY_RAIN_BrainCSPlaceholder, ChronicleBigFile_PS3, PS2_PAD_DEFAULT_NB_BUTTON, KEYBOARD_DEFAULT_NB_KEYS |
And there are many, many more strings. In fact, over 22000 strings!
|
|
To do: |
Initalization Script#
Download Beyond: Two Souls code File: BeyondTwoSouls-source.zip (33 KB) (info) |
There's a pretty big, raw script hidden in the game's BigFile_PS3.dat file at 0x5F800. If this script is actually being used or not is currently unknown. The script defines a ton of "Dynamic Communicators" for various functions of the game. Aside from that, and many other initalization stuff it does (like defining every "story-changing" variable), it also defines the different options that can be used while booting the game. Most of these debug options can be controlled from runtime.sdat. Part of this script consists of reading the values from the .sdat file, and then setting various variables accordingly.
For example, on line 5654 of this script there is a "semi"-switch statement which checks for the following values in runtime.sdat's BUILDSONY key:
- GAME
- ANAEL
- PROD
- E3
- GAMEUNLOCK
- PR
|
|
To do: |
Leftover Debug Mode#
runtime.sdat#
NOTE: Changing these values only affects versions pre-patch 1.02.
By decrypting the runtime.sdat file, found in root\USRDIR\, a standard INI file is outputted. Notable entries include:
Cheat = 0
DebugMenu = 0
QA Menu#
After changing the DebugMenu entry in the runtime.sdat file, re-encrypting and replacing the file in the root\USRDIR\ folder, press L3 in-game to display a "QA Menu". Enabling any of the options will do as it says on the tin, and screenshots are stored in root\USRDIR\ in TGA format. The "GLOBAL", "DIALOGS" and "ANIMATIONS" submenus can be cycled with L1 and R1.
Using the "Free camera", it is possible to see...more of Jodie's model during the shower scene than what is normally shown. The same can also be said for Aiden at another point in the game.
The following content is |
|---|
![]() |
|
File: Debug Mode Examples.zip (343 KB) (info) |
Download Modified runtime.sdat File: Modified runtime.sdat.zip (343 KB) (info) |
Cheat Menu#
Watch on YouTubeYou can enable the cheat menu by setting either:
BUILDSONY=PRODinruntime.sdat, orQDR.Infraworld_Var.BootCheat=4inBigFile_PS3.dat
It provides access to all chapters and special production environments, such as the "Sandbox Sound Mode".
Further Settings#
Setting UseCinemaRatio=0 in runtime.sdat will remove the cinematic black bars on the top and bottom of the screen.
Regional Differences#
The European and Japanese versions toned a couple instances of the more excessive violence from the game, including Jodie ramming a pole into a scientist's neck and Ryan Clayton's torture scene.
(Source: Movie Censorship)
