| Hugo_Peters Level: 26 ![]() Posts: 116/147 EXP: 99205 For next: 3070 Since: 10-29-13 From: The Netherlands Since last post: 1.9 years Last activity: 1.1 years |
|
||
Since everyone kept asking me for models... https://www.youtube.com/watch?v=fUqPOOoC8xUForget all this stuff, check where we are now: (warning, spoilers) https://www.youtube.com/watch?v=4ikhbv4xkGkUpdate: first version of the Beyond: Two Souls extractor released!Beyond Two Souls is one of my favorite games of all time. Some people say it's not a game, but a movie, but even if it was then would that matter? There are no rules to what a game should be. Not like literature. God, so many unnecessary rules. To the point of this thread! Beyond's files are huge and contain concatenated individual files. The .d01 - .d04 files contain textures, models, and also some sound entries, though not much. The .d05, .d06, .d07 and .d08 files all contain sound effects, dialog, and music. SFX, Dialog, Music (.d05 - .d08) The structure of the audio .d0x's is actually quite simple.The file starts at 0x800, before that is just the "tab header". There are actually no tabs used in these .d0x files, only in the ones before .d05. The .d0x files are split up into blocks. Each block consists of the following entries: PARTITIO PARTOFFS STREAMAB HEADER__ Each block has a header of its own: 0x8: Name 0x4: Version? 0x4: Total length of the block. The PARTITIO block contains the actual file data. The PARTOFFS block contains some data. Not really what for. Doesn't seem to be the offset of the PARTITIO block. The STREAMAB block has different contents for each type of data (SFX, Dialog, Music). It could contain stuff like the sampling rate (mostly 44100 Hz, but sometimes 16000 Hz) when it's not in the HEADER__ block. The HEADER__ block contains more info, and even more when it's not in the STREAMAB block. The PARTOFFS, STREAMAB and HEADER__ blocks probably give more info into the audio length, file size, audio frames, etc. But nothing that is required to export the file. The PARTITIO block requires more explanation. It starts with the normal 16 bytes header. Then there are 0x7f8 padding bytes until the stream starts. The stream starts with the magic(?) 0x3f80. Then 0x0a padding bytes. This is where I determine what type the audio is. Every audio frame starts with 0xfffa. Every frame has a size of 418 bytes. Most of the audio types (SFX & Dialog) contain of a single "chunk" of audio frames. To export them, just take the length of the PARTITIO block and substract the offset to the data stream. You could also export the individual frames of audio by moving 418 bytes forward from every frame until the first two bytes aren't 0xfffa (note: for some reason, sometimes the audio frame is 417 bytes). The song blocks (for soundtracks, ambience but also some sound effects) are a bit different. They start with the 0x3f80 magic, but after 0x0a bytes it defines the amount of channels(?/versions: stereo, mono, surround?) and after that [amount of channels] x 4 bytes of chunk sizes. These chunks are (?always?) one second worth of data. I haven't seen any audio block that defines more than 3 (or less) channels. After the chunks definition it starts the stream of chunk 1 for channel 1. Then directly after that chunk there's chunk 1 for channel 2, etc. After all [channel chunk sizes] x [amount of channels] data there are some 0x00 padding bytes and then it starts the definition of the new channel chunks. This keeps going on until the end of the total PARTITIO block length. For example, lets say there are 3 channels, and all channels have 0x3fad as chunk size. It would look like this: To export the files, you just take all data for each channel and paste it right after each other. There's another format which starts off with NULL, zeros and "SKA". I have no idea what format it is. It could be AC3 or DTS as that format is listed in the credits of Beyond, but I'm having no luck playing them. < I might add info on the other .d0x files later > Here's some extracted stuff! The song that plays at the bar in the "Like Other Girls" chapter: http://djek.nl/shit/beyond/1515%20%20(0x297C2000).mp3 Warning: spoilers! And now for something quite disturbing: In that same scene (the bar) Jodie almost gets abused, but Aiden comes to rescue her just in time. But........ judging by these audio clips... at some point in development it was still possible to actually get abused. Warning: this shit's fucked up. http://djek.nl/shit/beyond/1928%20%20(0x2E5C9000).mp3 http://djek.nl/shit/beyond/1934%20%20(0x2EED2000).mp3 http://djek.nl/shit/beyond/2056%20%20(0x319D8800).mp3 http://djek.nl/shit/beyond/2171%20%20(0x34F0B800).mp3 So... yeah. And also, some nice music! http://djek.nl/shit/beyond/5681%20(0x70C7E800)%20version%201.mp3 http://djek.nl/shit/beyond/2487%20(0x3C3D6000)%20version%201.mp3 http://djek.nl/shit/beyond/3960%20(0x5B30E800)%20version%201.mp3 Fucking epic: http://djek.nl/shit/beyond/3147%20(0x522F1800)%20version%201.mp3 I will be posting the extractor soon! Every .d0x file spits out around 6000 mp3's. ____________________ I have a blog: clyck! |






(mentioned, instead of showing) 







