master131 / Black-Ops-II-Sound-Studio

Allows for playback and editing of SABS/SABL files for Black Ops II/III.
MIT License
25 stars 8 forks source link

Issues with 360 sabs/sabl #3

Closed NuclearDisco closed 3 years ago

NuclearDisco commented 3 years ago

First of all, great piece of software, it works exceptionally well

However, I have an issue with opening BO2 sabs/sabl files with sound studio. Everything that has an XMA format works, however everything with a PCM format is just pure static. Is this something wrong on my end or do you guys still need to do some work with it?

master131 commented 3 years ago

It's been a long time since I've touched the app; can you tell me which file has the issue?

NuclearDisco commented 3 years ago

It's multiple files, mpl_common.all, default_mp.all, default_sp.all

Pretty much every file has faulty PCM snd files. Also, these aren't regular BO2 files, these are from the Pre-Alpha

master131 commented 3 years ago

Unfortunately without samples I won't be able to understand why it's happening - I wouldn't even know where to find pre-alpha/pre-production builds of the game given that it was so long ago now.

NuclearDisco commented 3 years ago

I can link them if you want

master131 commented 3 years ago

Yes, can you please provide a link so I can have a look.

NuclearDisco commented 3 years ago

Sure thing: http://www.mediafire.com/folder/a9xc2zw4nz71a/BO2+Prealpha

default_mp is completely broken, with everything having static, the common files have some working ones, but mostly static mess. If you need more, let me know

also, please turn down your volume if you want to play the broken files, I learned this the hard way

master131 commented 3 years ago

Thanks for those, it looks like they are actually XMA audio (not surprised since these are from an X360 build).

It's possible that at this stage they hadn't finalised the format ID value in the file structure yet as the value 0 refers to PCM audio (at least in production builds), whereas here they've used that value also for this XMA data.

I will see what I can do; perhaps I'll add an option under the Tools menu to force another format for these situations.

NuclearDisco commented 3 years ago

Thanks mate! I really appreciate it

master131 commented 3 years ago

I've uploaded v1.6.0; give that a try with the new override option from the Tools menu.

NuclearDisco commented 3 years ago

Oh my god dude, you made an amazing job!

I thought since this was long untouched I wouldn't get a response, but by some way, you responded! Thank you so much. Remember, I have more Pre-Alpha sound files saved and if you need any, let me know!

NuclearDisco commented 3 years ago

Also, just a little suggestion you don't have to do this, but is there a work around the generic sound names?

The thing with these early sound files is that it's inconsistent with the sound names. They either have a generic name or a full name like hurt.01.SN65.xenon.snd

master131 commented 3 years ago

I will need a full rip of all the *.ff files to extract the sound names and update the name database because that information is not stored in the SABS/SABL files.

NuclearDisco commented 3 years ago

Ah I see, well luckily I have those ff files, let me know if you want any of them

master131 commented 3 years ago

Can you please upload all of them if you can?

NuclearDisco commented 3 years ago

Sure thing man, it's the best way that I can repay you for fixing my issues

NuclearDisco commented 3 years ago

Done! Now, I'm not sure how mediafire works but I posted all of the fast files available in my copy to the same folder so I think you could just click on that same link again to download them

master131 commented 3 years ago

Thanks for those; unfortunately it looks like they've been encrypted using a different key compared to the production build fast-files. Usually these keys are retrieved by dumping them from the PC/Console memory while the game is running but since these are from a pre-alpha build I am not sure that is possible anymore...

NuclearDisco commented 3 years ago

let's make our own decompiler 😂

master131 commented 3 years ago

If only it were that easy.. Maybe there's something useful in the game executeable? Do you have an .xex perhaps from the pre-alpha that you can share?

NuclearDisco commented 3 years ago

yes, I have the entire build

master131 commented 3 years ago

Could you please drop it in the same folder as the previous files? Maybe I can decompile it and see if I can find the key floating around.

NuclearDisco commented 3 years ago

Fuck it, I might as well drop everything in

NuclearDisco commented 3 years ago

After I upload them, can you teach me a bit about coding? I want to know more about programming

I already know the basics of reversing, I have IDA pro

NuclearDisco commented 3 years ago

I uploaded the entire build aside from a couple of sabs files

master131 commented 3 years ago

Thanks again for the files - I will have a look when I get the chance.

I don't think this is the place (on a Github issue) to be teaching how to code - but the internet is a treasure trove of information, it's where I learnt everything I know. Google is honestly your best friend. I don't have a lot of free time or capacity these days outside of my full-time job anyway.

NuclearDisco commented 3 years ago

No worries

master131 commented 3 years ago

Managed to decrypt those fastfiles from the pre-alpha and have updated the tool to v1.6.1. Note that files like mpl_survival_dockside.all.sabs will continue to have the generic sound names since the .ff was missing.

For future reference for other coders, the Salsa20 key for the XBOX360 Pre-alpha build of BO2 is: 0x1A, 0xC1, 0xD1, 0x2D, 0x52, 0x7C, 0x59, 0xB4, 0x0E, 0xCA, 0x61, 0x91, 0x20, 0xFF, 0x82, 0x17, 0xCC, 0xFF, 0x09, 0xCD, 0x16, 0x89, 0x6F, 0x81, 0xB8, 0x29, 0xC7, 0xF5, 0x27, 0x93, 0x40, 0x5D

Each block is compressed using standard deflate (rather than XMemCompress/LZX used in the production release specifically for XBOX360).

NuclearDisco commented 3 years ago

good stuff, thanks mate!