[SOLVED] Harry Potter games (console) sound banks ("BNK" ident)

Extraction and unpacking of game archives and compression, encryption, obfuscation, decoding of unknown files
AlphaTwentyThree
Posts: 909
Joined: Sat Aug 09, 2014 11:21 am

[SOLVED] Harry Potter games (console) sound banks ("BNK" ident)

Post by AlphaTwentyThree »

Hello everybody,

I'm again sitting at some HP games and once more stumbled upon those sound banks with header info in the archive TOC. The big problem with these is that every platform is a bit different in the size and information type for each stream.
Here are samples from GC, PS2 and Xbox: https://www.mediafire.com/file/t4ondfbg ... nk.7z/file
I'm fine with a script that just joins the header with the data so I can convert it afterwards. Any help is appreciated!
Thanks.
Last edited by AlphaTwentyThree on Sat Feb 12, 2022 6:52 am, edited 1 time in total.
AlphaTwentyThree
Posts: 909
Joined: Sat Aug 09, 2014 11:21 am

Re: Harry Potter games (console) sound banks ("BNK" ident)

Post by AlphaTwentyThree »

Nobody up for the task?
aluigi
Site Admin
Posts: 12984
Joined: Wed Jul 30, 2014 9:32 pm

Re: Harry Potter games (console) sound banks ("BNK" ident)

Post by aluigi »

So this is the format that I covered in some way in harry_potter_sdt.bms but it's a total mess.
I pass ;)
AlphaTwentyThree
Posts: 909
Joined: Sat Aug 09, 2014 11:21 am

Re: Harry Potter games (console) sound banks ("BNK" ident)

Post by AlphaTwentyThree »

Hehe, alright, I thought I'd give it a shot. ;)
I'll try to get somewhere with these tomorrow.
AlphaTwentyThree
Posts: 909
Joined: Sat Aug 09, 2014 11:21 am

Re: Harry Potter games (console) sound banks ("BNK" ident)

Post by AlphaTwentyThree »

Status update

Luigi didn't lie in giving me the warning about the format being a mess. It's unbelievable to me how they implemented such a broken format into their engine... It's just inconsistent throughout with different header lengths, different offset markers that need a work-around, frequency sometimes missing to just name some of the problems.

I've been looking at the X-Box version for now as that platform gives me at least some clue as to what the variables mean. I've managed to extract archives with one and two files so far. Not getting them to play that is, only the raw data. There are two types of codecs: Xbox ADPCM (mono, 0x24 bit interleave) and some other form ADPCM (mono, 0x0f bit interleave). All streams seem to be channel-split, so the number of extracted files is double the number listed in the header. Additionally, the offset markers seem to point to the starting offset of the right channel, the left channel isn't mentioned anywhere. It's possible to calculate those offsets for the first and third stream. Once there are three streams present, I run into a problem as I haven't been able to figure out how to calculate the size of a single channel. Doesn't help that the streams don't start at padded offsets, so rounding isn't any option it seems.
For now, I'm asking for support for the second type of ADPCM I've encountered. Looking at the character distribution it could be IMA ADPCM but I'm not sure since I haven't encountered this structure before:

Image

I've attached a sample of streams extracted from one of the archives plus the origin archive. Has anybody seen this codec before and knows how to add a working header? txth would even be ok for now until I figure out how to construct a working header from the information in the archive's TOC.
DKDave
Posts: 136
Joined: Mon Nov 23, 2020 6:01 pm

Re: Harry Potter games (console) sound banks ("BNK" ident)

Post by DKDave »

Yeah, it's a pain. They play in Foobar/vgmstream - it says it's EAXA ADPCM v2.
AlphaTwentyThree
Posts: 909
Joined: Sat Aug 09, 2014 11:21 am

Re: Harry Potter games (console) sound banks ("BNK" ident)

Post by AlphaTwentyThree »

Wait, how did you get these to play?
DKDave
Posts: 136
Joined: Mon Nov 23, 2020 6:01 pm

Re: Harry Potter games (console) sound banks ("BNK" ident)

Post by DKDave »

I just dropped them in and they play fine for me :-)
AlphaTwentyThree
Posts: 909
Joined: Sat Aug 09, 2014 11:21 am

Re: Harry Potter games (console) sound banks ("BNK" ident)

Post by AlphaTwentyThree »

Oh damn, didn't imagine they already added support for these in vgmstream. Welp, there goes my effort - won't invest in this anymore. ;) So: solved.