ZenHAX

Free Game Research Forum | Official QuickBMS support | twitter @zenhax | SSL HTTPS://zenhax.com
It is currently Wed Jun 26, 2019 4:19 am

All times are UTC




Post new topic  Reply to topic  [ 14 posts ] 
Author Message
PostPosted: Wed Aug 29, 2018 9:55 pm 

Joined: Mon Feb 05, 2018 5:45 pm
Posts: 113
Hi! I saw a bunch of threads opened for this game but now I think it would be reasonable to open just one for all the platforms.

There is a script to extract Monsters vs. Aliens PC and Xbox 360 (aluigi you might have to edit on your page that it is not for PS3) versions Streams.dat: works on PC but not on Xbox 360.

I'm explaining: the script correctly extracts headerless IMA ADPCM nibble-interleaved soundbanks for PC but extracts corrupted headerless XMA 2 soundbanks for the Xbox 360 version.

Is there a possibility to fix the script to extract correctly the Xbox 360 sound files and also make it compatible for the other versions like Wii, PS2 and PS3?

I'm asking this because the other versions might have alternate files inside.

Samples

Wii: Wii_Streams.dat
Xbox 360: X360_Streams.dat
PS2: PS2_Streams.dat
PS3: PS3_Streams.dat

Thanks in advance!


Last edited by Warthog1336 on Sun Feb 24, 2019 3:56 pm, edited 1 time in total.

Top
   
PostPosted: Sun Feb 24, 2019 3:56 pm 

Joined: Mon Feb 05, 2018 5:45 pm
Posts: 113
News! I found something interesting inside the Wii version's files. Apparently, Goliath_Final.elf and main.dol have "Streams.dat" in plain text when viewing in Hex. Maybe it can help understand how to unpack the Streams.dat content.

By the way, in the same directory as Streams.dat, there are a lot of *.PAK (for PS2, Wii and PC) which hold all the data except sound and movies. I tried to view their content in Hex and found a lot of "music" texts so maybe they store the original filenames for the files inside Streams.dat, but I'm not 100% sure.

Besides, I added samples for the PS3 version of the game (edited my first post). The "data" directory where Streams.dat can be found (on PS3 and Xbox 360) is full of *.PKZ files which contain the same data as *.PAK but they use a different format. There are no plain-text filenames inside them.

Also, a "GameLogic.dll" and "GameLogic.sprx" can be found on PC/PS3.

The game executable is below.

Samples

Goliath_Final.elf and main.dol from Monsters vs. Aliens (Wii): https://mega.nz/#!fosAyYxR!L9PGFGU_vbpz ... CHlTYu2OHM

BobC1PartC.pak from Monsters vs. Aliens (Wii): https://mega.nz/#!GwsQHaTT!giNv5w25r3LZ ... 0JSRznqDzs

BobC1PartC.pak from Monsters vs. Aliens (PS2): https://mega.nz/#!rpsQGa4C!Gaqer5i8G8Rf ... jkopIdkOV8

BobC1PartC.pak from Monsters vs. Aliens (PC): https://mega.nz/#!mlVEXArC!-4YUCbW4Bcjp ... UUXJLr17Sg

GameLogic.sprx from Monsters vs. Aliens (PS3): https://mega.nz/#!bw9iwKTC!bjORvXiBYtcB ... uKtqEOaS2U

GameLogic.dll from Monsters vs. Aliens (PC): https://mega.nz/#!ug8wQCzK!rPo-x_VhONDP ... iMm6W7UhPw

Game.exe from Monsters vs. Aliens (PC): https://mega.nz/#!C4M0jQZa!ksAtNlTQS-J8 ... Njt1-vv7cQ

Thanks in advance.


Top
   
PostPosted: Tue Feb 26, 2019 5:26 pm 
Site Admin
User avatar

Joined: Wed Jul 30, 2014 9:32 pm
Posts: 10553
Script 0.1.2:
http://aluigi.org/bms/monsters_aliens_streams.bms

X360 seems ok
PS3 ok
PS2 ok
WII, not supported because it's a mess.


Top
   
PostPosted: Tue Feb 26, 2019 8:31 pm 

Joined: Mon Feb 05, 2018 5:45 pm
Posts: 113
I can't believe you did this, that's fantastic. Unbelievable! Thank you so much! Considering how tricky it was.
I will stop requesting things about this game because you did all your possible to help me and it's awesome.
Just one question, was I wrong about the original filenames stored in other files?


Top
   
PostPosted: Tue Feb 26, 2019 8:36 pm 
Site Admin
User avatar

Joined: Wed Jul 30, 2014 9:32 pm
Posts: 10553
Not sure about the filenames, it's something that I didn't check since I focused only on the comparison of the 4 versions for improving the compatibility of the script.


Top
   
PostPosted: Tue Feb 26, 2019 8:43 pm 

Joined: Mon Feb 05, 2018 5:45 pm
Posts: 113
I'm repeating myself but thank you so much.


Top
   
PostPosted: Tue Feb 26, 2019 8:52 pm 

Joined: Mon Feb 05, 2018 5:45 pm
Posts: 113
I really should start writing my first BMS script one of these days, and maybe I'll choose the Wii version of Monsters vs. Aliens so that I can also help. I already tried to understand how to write a BMS script but I found this quite difficult. Now I think I need to take a new look.


Top
   
PostPosted: Wed Feb 27, 2019 10:21 am 
Site Admin
User avatar

Joined: Wed Jul 30, 2014 9:32 pm
Posts: 10553
Start with simple formats.
If you start learning a language (and reverse engineering) for doing something very difficult, it will be difficult or even impossible.


Top
   
PostPosted: Wed Feb 27, 2019 2:21 pm 

Joined: Tue Feb 02, 2016 2:35 am
Posts: 1122
i tried to tackle this Streams.dat format out of boredom
i based most of this script out of Bee Movie Game(using PC, PS2 and Xbox 360 versions, since Beenox developed the game with these targeted platforms in mind) and then i had to take a look at your samples which forced me to go out of my way to support all versions of at least two games using Streams.dat
the worst part of all this is trying to deal with Streams.dat as it appears on the PS3 and Wii formats of Monsters vs. Aliens so let me just put it out there that this format is a literal mess of epic proportions and leave it at that

do note though that this script does not support extraction stuff and i'll probably never support this in the future


Attachments:
beenox_soundbank.bms [3.77 KiB]
Downloaded 17 times

_________________
the number one killer is time
it destroys us all
Top
   
PostPosted: Sun Mar 03, 2019 2:21 pm 

Joined: Mon Feb 05, 2018 5:45 pm
Posts: 113
aluigi

Hello. I really prefer when your scripts extract the files as they are in the archive, without ss2 header. How can I just extract the raw files?

I deleted these lines and the endif :

Code:
if X360_MODE == 0
   callfunction DUMP_VAG 1
else


But it does not seem to extract the PS3 streams correctly, for example one of the music's length is normally 2:10 but is cutted and is 1:03 when extracted from Streams.dat PS3. It also happens on PS2 by the way.

Thank you in advance.


Top
   
PostPosted: Sun Mar 03, 2019 7:16 pm 
Site Admin
User avatar

Joined: Wed Jul 30, 2014 9:32 pm
Posts: 10553
from:
Code:
    if X360_MODE == 0
        callfunction DUMP_VAG 1
    else
        string NAME + "raw"
        log NAME OFFSET SIZE
    endif
to
Code:
        string NAME + "raw"
        log NAME OFFSET SIZE


Top
   
PostPosted: Sun Mar 03, 2019 7:31 pm 

Joined: Mon Feb 05, 2018 5:45 pm
Posts: 113
This is what I did as well ^^
For some reason the tracks are cutted when they are extracted from PS2 and PS3.

Code:
string NAME p "%08x_%d_%d." i FREQUENCY CHANNELS
endian save MYENDIAN
endian little
string NAME + "raw"
log NAME OFFSET SIZE
endian restore MYENDIAN


Top
   
PostPosted: Sat Mar 09, 2019 8:02 pm 

Joined: Mon Feb 05, 2018 5:45 pm
Posts: 113
Sorry for the double post but checked in-game and it's definetely an extraction issue. I don't know why the tracks are complete on PC (another thread script) and Xbox 360 but not on PS2 and PS3? Thank you in advance.


Top
   
PostPosted: Thu Mar 28, 2019 10:16 am 
Site Admin
User avatar

Joined: Wed Jul 30, 2014 9:32 pm
Posts: 10553
I did a simple list (quickbms -l) plus "sort" on the ps2 sample and checked the results:
Code:
+ 00087000 151168     00001506_44100_1.dat
+ 00087000 151168     00001c08_44100_1.dat
+ 00087000 151168     0000230a_44100_1.dat
+ 000ac000 71216      00001507_44100_1.dat
+ 000ac000 71216      00001c09_44100_1.dat
+ 000ac000 71216      0000230b_44100_1.dat
+ 000bd800 148064     00001508_44100_1.dat
+ 000bd800 148064     00001c0a_44100_1.dat
+ 000bd800 148064     0000230c_44100_1.dat
+ 000e2000 440160     00000003_44100_2.dat
+ 000e2000 440160     00000705_44100_2.dat
+ 000e2000 440160     00000e07_44100_2.dat
+ 000e2000 440160     00001509_44100_2.dat
+ 000e2000 440160     00001c0b_44100_2.dat
+ 000e2000 440160     0000230d_44100_2.dat
+ 000e2000 440160     00002a0f_44100_2.dat
...

The offsets and size are correct since 0x00087000+151168=0x000abe80, the next offset is 0x000ac000 indeed.

What's wrong is that 3 or more different files reference the same data, but it's not a bug of the script, it's just what's written in the table.
Therefore the coverage reported by quickbms at the end is invalid, if the extraction was ok you should have obtained something like 200% or 300%.

I don't think there is unhandled data.
You can try using the -B option (with -0 so don't need to re-extract everything) and checking how big is the QUICKBMS_DEBUG_FILE generated.


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 14 posts ] 

All times are UTC


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Powered by phpBB® Forum Software © phpBB Limited