Important information: this site is currently scheduled to go offline indefinitely by end of the year.

Beyond: Two Souls - Reversing | Porting (THAT'S ALL FOLKS?)

Programs that are related to this or that game.
User avatar
HugoPeters
veteran
Posts: 133
Joined: Thu Apr 03, 2014 9:49 am
Location: The Netherlands
Has thanked: 64 times
Been thanked: 168 times
Contact:

Re: [PS3] Beyond: Two Souls -Extractor- + Beginnings of pars

Post by HugoPeters »

BOOM.

Image
Image

"I'm going to throw my shit at you" —The Great Mighty Poo
_______________________>> check my portfolio I wish the [center] bbcode was turned on
_______________________>> or my twitter
luxox18
mega-veteran
mega-veteran
Posts: 176
Joined: Fri Jul 29, 2011 9:18 pm
Has thanked: 54 times
Been thanked: 46 times

Re: [PS3] Beyond: Two Souls -Extractor- + Beginnings of pars

Post by luxox18 »

are you planning to obtain 3d models in the future?
User avatar
HugoPeters
veteran
Posts: 133
Joined: Thu Apr 03, 2014 9:49 am
Location: The Netherlands
Has thanked: 64 times
Been thanked: 168 times
Contact:

Re: [PS3] Beyond: Two Souls -Extractor- + Beginnings of pars

Post by HugoPeters »

luxox18 wrote:are you planning to obtain 3d models in the future?
Why does everyone keep asking me that...

Cra0 is working on the models, I help him with that whenever I can, but I don't know as much of 3D stuff as he does.
I'm mostly working on reversing the main structure, compression, audio, textures, the communicators and their attributes, Lua scripts, variables, data containers, etc. I'm also in charge of development of the tool.

I'm planning to reverse the whole thing. With animation and all. But if I ever get to that..... is a big question.
It is however a big relief that cra0 and me are working together. It would've been way too much to do alone.

I don't like that whenever I get a comment on here (which is not often at all) it's never like "thanks!"
Image

"I'm going to throw my shit at you" —The Great Mighty Poo
_______________________>> check my portfolio I wish the [center] bbcode was turned on
_______________________>> or my twitter
JayK
mega-veteran
mega-veteran
Posts: 172
Joined: Fri Jun 01, 2012 10:08 am
Has thanked: 35 times
Been thanked: 121 times

Re: [PS3] Beyond: Two Souls -Extractor- + Beginnings of pars

Post by JayK »

Im surprised there aren't more people speaking in the topic, but I honestly think that's because of the forum it's in, if this were in game archive research for example I think it would have a lot more attention, people rarely visit this subforum. I think people keep asking about the mesh as that's what they mainly want and fail to realise how much greater a feat it is to have done what you have in managing to find the connection between each of the files, structure, and how they talk to each other, I'm sure you feel greatly rewarded in yourself for doing so.

I think because some people that visit these forums are just interested in getting 3d models they don'treally reverse themselves they don't really understand, I wouldn't really worry about those people. But if the game is using edge's byte compression for the models then I think its going to be a really hard task to parse them. So these people might be asking for a while. But yeah, don't be disheartened by them, ive looked at the files before so i know theyre very complex. You're doing some great work.
chrrox
Moderator
Posts: 2602
Joined: Sun May 18, 2008 3:01 pm
Has thanked: 57 times
Been thanked: 1422 times

Re: [PS3] Beyond: Two Souls -Extractor- + Beginnings of pars

Post by chrrox »

It is using edge compression. it looks standard tho unlike uncharted.
User avatar
cra0
ultra-veteran
ultra-veteran
Posts: 438
Joined: Fri Apr 27, 2012 9:37 am
Has thanked: 29 times
Been thanked: 189 times
Contact:

Re: [PS3] Beyond: Two Souls -Extractor- + Beginnings of pars

Post by cra0 »

chrrox wrote:It is using edge compression. it looks standard tho unlike uncharted.
Theres a magic meshdata which is followed by a vertex structure of some sort then another magic primeedge which looks like tristrips. Still trying to figure it out though since there is random face indices scattered around
User avatar
HugoPeters
veteran
Posts: 133
Joined: Thu Apr 03, 2014 9:49 am
Location: The Netherlands
Has thanked: 64 times
Been thanked: 168 times
Contact:

Re: [PS3] Beyond: Two Souls -Extractor- + Beginnings of pars

Post by HugoPeters »

JayK wrote:Im surprised there aren't more people speaking in the topic, but I honestly think that's because of the forum it's in, if this were in game archive research for example I think it would have a lot more attention, people rarely visit this subforum. I think people keep asking about the mesh as that's what they mainly want and fail to realise how much greater a feat it is to have done what you have in managing to find the connection between each of the files, structure, and how they talk to each other, I'm sure you feel greatly rewarded in yourself for doing so.

I think because some people that visit these forums are just interested in getting 3d models they don'treally reverse themselves they don't really understand, I wouldn't really worry about those people. But if the game is using edge's byte compression for the models then I think its going to be a really hard task to parse them. So these people might be asking for a while. But yeah, don't be disheartened by them, ive looked at the files before so i know theyre very complex. You're doing some great work.
Thank you! Yes, I actually do feel rewarded! It's awesome when something works out the way you think it does! :D
Image

"I'm going to throw my shit at you" —The Great Mighty Poo
_______________________>> check my portfolio I wish the [center] bbcode was turned on
_______________________>> or my twitter
luxox18
mega-veteran
mega-veteran
Posts: 176
Joined: Fri Jul 29, 2011 9:18 pm
Has thanked: 54 times
Been thanked: 46 times

Re: [PS3] Beyond: Two Souls -Extractor- + Beginnings of pars

Post by luxox18 »

JayK wrote:Im surprised there aren't more people speaking in the topic, but I honestly think that's because of the forum it's in, if this were in game archive research for example I think it would have a lot more attention, people rarely visit this subforum. I think people keep asking about the mesh as that's what they mainly want and fail to realise how much greater a feat it is to have done what you have in managing to find the connection between each of the files, structure, and how they talk to each other, I'm sure you feel greatly rewarded in yourself for doing so.

I think because some people that visit these forums are just interested in getting 3d models they don'treally reverse themselves they don't really understand, I wouldn't really worry about those people. But if the game is using edge's byte compression for the models then I think its going to be a really hard task to parse them. So these people might be asking for a while. But yeah, don't be disheartened by them, ive looked at the files before so i know theyre very complex. You're doing some great work.
I'm reversing killzone models but anyway I want to know if is possible to obtain meshes and cra0 is working on this.
chrrox
Moderator
Posts: 2602
Joined: Sun May 18, 2008 3:01 pm
Has thanked: 57 times
Been thanked: 1422 times

Re: [PS3] Beyond: Two Souls -Extractor- + Beginnings of pars

Post by chrrox »

i can confirm its standard edge format.
Image
User avatar
HugoPeters
veteran
Posts: 133
Joined: Thu Apr 03, 2014 9:49 am
Location: The Netherlands
Has thanked: 64 times
Been thanked: 168 times
Contact:

Re: [PS3] Beyond: Two Souls -Extractor- + Beginnings of pars

Post by HugoPeters »

Good job on the mesh!



Here's something completely different!
http://youtu.be/NfqOkZnVfg0

You can see it uses Edge Geometry and more in the end of the video.
Image

"I'm going to throw my shit at you" —The Great Mighty Poo
_______________________>> check my portfolio I wish the [center] bbcode was turned on
_______________________>> or my twitter
User avatar
HugoPeters
veteran
Posts: 133
Joined: Thu Apr 03, 2014 9:49 am
Location: The Netherlands
Has thanked: 64 times
Been thanked: 168 times
Contact:

Re: [PS3] Beyond: Two Souls -Extractor- + Beginnings of pars

Post by HugoPeters »

Not that interesting for others for now, but here's the complete debug dialog output of "Hunted", together with all file ID's.

2106.32s-[DART]Finished loading scene
2192.63s-[DART][LOC][23] : {S}{*1}OH!
2194.43s-[DART][LOC][23] : {S}{*2}Back off, Aiden.
2196.87s-[DART][LOC][23] : {S}{*3}C'mon! I haven't slept in like three days,
2199.91s-[DART][LOC][23] : {S}{*4}okay? I'm tired...
2261.86s-[DART][LOC][68031] : {S}{*1}Goddamn rain,
2264.60s-[DART][LOC][68031] : {S}{*2}don't look like it's ever gonna let up.
2265.83s-[DART][LOC][35] : {S}{*3}Aiden!
2267.14s-[DART][LOC][35] : {S}{*4}Look, I told you that&
2271.08s-[DART][LOC][37] : {S}{*1}Crap&
2284.13s-[DART][LOC][30] : {S}{*1}Evening.
2284.34s-[DART][LOC][45] : {S}{*2}Ma'am! Return to your seat, please!
2289.27s-[DART][LOC][42] : {S}{*1}Shit, that's her! THAT'S HER!
2301.08s-[DART][LOC][55] : {S}{*1}Freeze! Police!
2306.96s-[DART][LOC][67] : {S}{*1}Hey! What's going on?
2317.33s-[DART][LOC][63] : {S}{*1}Hey, watch out!
2319.38s-[DART][LOC][62] : {S}{*1}Grab her!
2328.33s-[DART][LOC][65] : {S}{*1}Hey, you crazy?!
2339.61s-[DART][LOC][76] : {S}{*5}Quick, Aiden!
2340.85s-[DART][LOC][76] : {S}{*6}Blast the window!
2442.32s-[DART][LOC][91] : {S}{*1}Got you!
2444.02s-[DART][LOC][90] : {S}{*1}End of the line, lady.
2445.79s-[DART][LOC][90] : {S}{*2} Keep your hands where we can see em!
2448.90s-[DART][LOC][92] : {S}{*1}GET HER!
2451.36s-[DART][LOC][23709] : {S}{*TC:1380|2570}HELP ME, AIDEN!!!!
2451.68s-[DART][LOC][95] : {S}{*1}Fuck!
2454.34s-[DART][LOC][96] : {S}{*1}We need back-up! She's getting away!
2479.78s-[DART]Finished loading scene
2510.03s-[DART][LOC][97] : {S}{*1}Yeah, I know.
2512.34s-[DART][LOC][97] : {S}{*2}We gotta get out of here before they come back.
2524.30s-[DART][LOC][118] : {S}{*1}Over there!
2526.29s-[DART][LOC][121] : {S}{*1}Go around the other side!
2529.30s-[DART][LOC][114] : {S}{*1}Oh, fuck!
2536.53s-[DART][LOC][110] : {S}{*1}Watch your footing! It's fucking slippery&
2547.76s-[DART][LOC][101] : {S}{*1}This girl is dangerous, so be careful!
2558.42s-[DART][LOC][105] : {S}{*1}I think I see her!
2569.09s-[DART][LOC][100] : {S}{*1}Fan out! 10 foot gaps&
2589.95s-[DART][LOC][116] : {S}{*1}There!
2591.05s-[DART][LOC][116] : {S}{*2}She's in the river!
2593.48s-[DART][LOC][117] : {S}{*1}Travis, go to the rocks!
2595.79s-[DART][LOC][117] : {S}{*2}Move!
2613.33s-[DART][LOC][111] : {S}{*1}Go around there!
2617.98s-[DART][LOC][102] : {S}{*1}I can't see a damn thing!
2622.93s-[DART][LOC][107] : {S}{*1}Control those fucking dogs!
2628.54s-[DART][LOC][115] : {S}{*1}Keep your eyes peeled!
2633.28s-[DART][LOC][103] : {S}{*1}I just saw her, she can't be that far!
2639.95s-[DART][LOC][113] : {S}{*1}Over here!
2707.28s-[DART][LOC][98] : {S}{*1}Where the hell did she go?
2712.84s-[DART][LOC][112] : {S}{*1}See anything yet?
2734.60s-[DART][LOC][106] : {S}{*1}We need more light over here, I can't see a damn thing!
2754.34s-[DART][LOC][122] : {S}{*1}You see anything?
2756.99s-[DART][LOC][123] : {S}{*1}Nothing but rock.
2759.65s-[DART][LOC][123] : {S}{*2}And she'd never be able to make it up there&
2767.27s-[DART][LOC][124] : {S}{*1}Shit!
2768.36s-[DART][LOC][124] : {S}{*2}We musta' missed her!
2769.59s-[DART][LOC][124] : {S}{*3}Travis!
2770.57s-[DART][LOC][124] : {S}{*4}Bring back those goddamn dogs!
2795.14s-[DART]Finished loading scene
2813.27s-[DART][LOC][23243] : {S}{*1}Go for it, Aiden.
2822.71s-[DART][LOC][23636] : {S}{*1}Goddamn rain,
2825.46s-[DART][LOC][23636] : {S}{*2}don't look like it's ever gonna let up.
2830.85s-[DART][LOC][23637] : {S}{*1}I hope to hell she gets here soon&
2833.74s-[DART][LOC][23637] : {S}{*2}Just clap irons on the bitch and we can all go back to bed.
2841.84s-[DART][LOC][23638] : {S}{*1}That copter back there&
2844.21s-[DART][LOC][23638] : {S}{*2}it looked like it was down by the river.
2848.82s-[DART][LOC][23639] : {S}{*1}Could have been&
2859.38s-[DART][LOC][23197] : {S}{*1}A motorbike,
2861.22s-[DART][LOC][23197] : {S}{*2}just what I need.
2895.11s-[DART][LOC][129] : {S}{*1}Where are you goin' Mike?
2897.40s-[DART][LOC][136] : {S}{*1}Hey,
2898.41s-[DART][LOC][136] : {S}{*2}what the fuck are you doin'?!
2907.05s-[DART][LOC][127] : {S}{*1}All right Mike, that's enough! You out of your fuckin mind?!
2910.73s-[DART][LOC][127] : {S}{*2}Jesus Christ!
2914.66s-[DART][LOC][139] : {S}{*1}Jesus, Mike!
2916.08s-[DART][LOC][139] : {S}{*2}What the fuck?!
2930.95s-[DART]Finished loading scene
3013.54s-[DART][LOC][68698] : {S}{*1}Hold your positions.
3021.57s-[DART][LOC][146] : {S}{*1}No choice.
3023.77s-[DART][LOC][146] : {S}{*2}We're going straight through.
3025.72s-[DART][LOC][146] : {S}{*3}Are you ready, Aiden?
3034.03s-[DART][LOC][147] : {S}{*2}Let's go!!!
3035.30s-[DART][LOC][23255] : {S}{*1}Aiden, I need you NOW!
3045.36s-[DART][LOC][177] : {S}{*1}Take cover!
3057.47s-[DART][LOC][68708] : {S}{*1}Hold your fire!
3059.00s-[DART][LOC][68721] : {S}{*1}I said HOLD YOUR FIRE!
3061.05s-[DART][LOC][149] : {S}{*1}This is Roadblock Tango.
3063.25s-[DART][LOC][149] : {S}{*2}We missed her.
3064.90s-[DART][LOC][149] : {S}{*3}I repeat, we missed her. She's headed for Bakertown!
3089.85s-[DART]Finished loading scene
3116.22s-[DART][LOC][186] : {S}{*1}Move in! Move in!
3132.97s-[DART][LOC][190] : {S}{*1}Group 3, in position.
3135.73s-[DART][LOC][152] : {S}{*1}You're surrounded! Come out with your hands up and you will not be harmed!
3139.77s-[DART][LOC][151] : {S}{*7}If theyre looking for trouble,
3141.74s-[DART][LOC][151] : {S}{*8}that's what theyre gonna get&
3145.58s-[DART][LOC][151] : {S}{*10}Take care of them, Aiden!
3170.24s-[DART][LOC][167] : {S}{*1}Take cover!
3189.72s-[DART][LOC][164] : {S}{*1}What the hell is goin' on?
3195.48s-[DART][LOC][23693] : {S}{*1}Hold your fire!
3199.67s-[DART][LOC][23662] : {S}{*1}We need an ambulance! Call a fucking ambulance!
3200.90s-[DART][LOC][23674] : {S}{*1}We can't just stand here like this!
3201.18s-[DART][LOC][184] : {S}{*1}Have you got a visual?!
3202.77s-[DART][LOC][23690] : {S}{*1}Hold your positions.
3203.36s-[DART][LOC][23688] : {S}{*1}Don't move.
3212.67s-[DART][LOC][23694] : {S}{*1}I said HOLD YOUR FIRE!
3213.10s-[DART][LOC][166] : {S}{*1}I don't get it. Its fucked up!
3220.24s-[DART][LOC][23675] : {S}{*1}We need to do something!
3225.89s-[DART][LOC][23672] : {S}{*1}She won't surrender!
3227.82s-[DART][LOC][23695] : {S}{*1}Stop Shooting!
3231.24s-[DART][LOC][192] : {S}{*1}What the fuck are we supposed to do?!
3231.71s-[DART][LOC][23661] : {S}{*1}He's choking!
3233.14s-[DART][LOC][23661] : {S}{*2}Christ, he's choking!
3233.48s-[DART][LOC][23692] : {S}{*1}What are you doing? Hold your position!
3238.52s-[DART][LOC][23696] : {S}{*1}Get her! Now!
3240.94s-[DART][LOC][197] : {S}{*1}Aiden, theyre coming! Keep them off me!!!
3250.66s-[DART][LOC][207] : {S}{*1}The door, Aiden! I can't get in! Open the door!
3279.65s-[DART][LOC][198] : {S}{*1}They're getting closer. You've gotta help me!
3317.58s-[DART][LOC][231] : {S}{*2}Tell them to leave me the fuck alone, because next time,
3322.19s-[DART][LOC][231] : {S}{*3}I'll kill everyone.
3329.11s-[DART][LOC][231] : {S}{*4}Come on, Aiden.
3331.02s-[DART][LOC][231] : {S}{*5}I think they get the message.
Image

"I'm going to throw my shit at you" —The Great Mighty Poo
_______________________>> check my portfolio I wish the [center] bbcode was turned on
_______________________>> or my twitter
User avatar
HugoPeters
veteran
Posts: 133
Joined: Thu Apr 03, 2014 9:49 am
Location: The Netherlands
Has thanked: 64 times
Been thanked: 168 times
Contact:

Re: [PS3] Beyond: Two Souls -Extractor- + Beginnings of pars

Post by HugoPeters »

Here's something pretty cool, made a basic parser for the variables in the SINT_SEC attribute:

Image
Image

"I'm going to throw my shit at you" —The Great Mighty Poo
_______________________>> check my portfolio I wish the [center] bbcode was turned on
_______________________>> or my twitter
User avatar
HeliosAI
mega-veteran
mega-veteran
Posts: 166
Joined: Wed Nov 17, 2010 2:57 pm
Has thanked: 151 times
Been thanked: 62 times

Re: [PS3] Beyond: Two Souls -Extractor- + Beginnings of pars

Post by HeliosAI »

Thank you very much for all the progress on this!
I'm sure it's utterly hard to do this >< But really thanks!
Hamers
beginner
Posts: 21
Joined: Fri Jul 22, 2011 4:39 pm
Has thanked: 21 times
Been thanked: 13 times

Re: [PS3] Beyond: Two Souls -Extractor- + Beginnings of pars

Post by Hamers »

OMG, this is absolutely fantastic. Thank you SO much for your hard work :up: I'm a very big fan of both Heavy Rain and Beyond and currently look for glitches to speedrun the game. So this will come in very handy, especially to satisfy my general curiosity about how the game and their engine works. Taking a look at the lua files will take up my time for sure :D

THANKS!!!
Image
User avatar
HugoPeters
veteran
Posts: 133
Joined: Thu Apr 03, 2014 9:49 am
Location: The Netherlands
Has thanked: 64 times
Been thanked: 168 times
Contact:

Re: [PS3] Beyond: Two Souls -Extractor- + Beginnings of pars

Post by HugoPeters »

Hamers wrote:OMG, this is absolutely fantastic. Thank you SO much for your hard work :up: I'm a very big fan of both Heavy Rain and Beyond and currently look for glitches to speedrun the game. So this will come in very handy, especially to satisfy my general curiosity about how the game and their engine works. Taking a look at the lua files will take up my time for sure :D

THANKS!!!
Thanks!

If you by any chance get a decompiler working on the precompiled ones, let me know... :D



Big Update!

So I decided to start from the beginning, and see how the game links the files together.

So it starts with file 0x0 of course. It's defined in its own content group with only 1 entry in it. It's labeled as "LOADING_ZONE".

0x0 redirects us to 0x151.
This entry is a data container, and contains the complete storyboard of Beyond.

The DC_INFO section defines the ID's to the content in the DC_DATA section.
The DC_DATA section consists of a LOT of LOADING_ZONES, which link to other files.

Then there's the "STORYBOARD" attribute, which gives paramaters, like the name, trophy database, and some more variables to the scene, and then the scene
defines its scene elements. The scene elements on their turn define which earlier LOADING_ZONE links to that element (remember that each loading zone has its own linked entry).

When going to the entry in the loading zone of that scene element I can clearly see that it matches with the name of the scene.

This entry is the main "init" script of that scene, and based on the complexity of the scene this file defines its own LOADING_ZONE's, SCENE's, AREA's, etc.

These LOADING_ZONES can consist of multiple things. If the scene has multiple "jobs" / sequences these link to the other communicators containing the necessary scripts, animation data, audio data (linked), etc. If it's a simple scene, let's say the Prologue, the main entry (as linked by the storyboard) links to one other file, containing the dialog, links to the models (which also include the textures), audio and more. Perfectly matches! :D


Here's a demo of this system: https://www.youtube.com/watch?v=z74J_icVS7I.

Another update: I just made the parser much better, I can now just fill in any scene name, it will go through -all- linked entries (which are A LOT), and will play the music as it finds it.
I've found all music that matches to all scenes already :D
Image

"I'm going to throw my shit at you" —The Great Mighty Poo
_______________________>> check my portfolio I wish the [center] bbcode was turned on
_______________________>> or my twitter
Post Reply