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 is marked as NSFL!
This article has a talk page!

Beyond: Two Souls

From The Cutting Room Floor
Jump to navigation Jump to search

Title Screen

Beyond: Two Souls

Developer: Quantic Dream
Publishers: Sony Computer Entertainment (PS3/PS4), Quantic Dream (PC)
Platforms: PlayStation 3, PlayStation 4, Windows
Released internationally: November 24, 2015 (PS4), July 19, 2019 (PC)
Released in JP: October 17, 2013
Released in US: October 8, 2013
Released in EU: October 11, 2013
Released in AU: October 9, 2013
Released in KR: October 8, 2013
Released in AS: October 8, 2013


DevMessageIcon.png This game has a hidden developer message.
CopyrightIcon.png This game has hidden developer credits.
DevTextIcon.png This game has hidden development-related text.
SoundIcon.png This game has unused sounds.
TextIcon.png This game has unused text.
DebugIcon.png This game has debugging material.
RegionIcon.png This game has regional differences.


And you were just a scroll away from scaring everyone shitless, being fired, and possibly being arrested too...
Oh wow. Sometimes, you have no idea how morbid the things in these pages can be.
This page contains content that is not safe for life, whether it be you or anyone in proximity to you.
Such as:
  • Nudity. Undetailed Barbie doll-esque nudity. But still nudity.
  • Disturbing unused audio from the aftermath of an attempted rape.
This cactus is UNDER CONSTRUCTION
This article is a work in progress.
...Well, all the articles here are, in a way. But this one moreso, and the article may contain incomplete information and editor's notes.

Beyond: Two Souls is the story of a traumatized Elliot Page and his invisible "friend".

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.





(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 !! notify ARI !!)

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
[ARI] appellez ARI de suite vous voyez ce message !!!

(YOU SHOULD NOT BE HERE> Events not ignored during a Kill
call ARI after you see this message !!!)

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!

Hmmm...
To do:
Upload the complete output of extracted strings?

Initalization Script

Download.png 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
Hmmm...
To do:
Find out what each setting does; PROD is documented below.

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

Beyond2Souls-QAMenu.png

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.

Debug Mode Aiden
Download.png Download Debug Mode Examples
File: Debug Mode Examples.zip (343 KB) (info)
Download.png Download Modified runtime.sdat
File: Modified runtime.sdat.zip (343 KB) (info)

Cheat Menu

You can enable the cheat menu by setting either:

  • BUILDSONY=PROD in runtime.sdat, or
  • QDR.Infraworld_Var.BootCheat=4 in BigFile_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)