.PAC Sound Archive Format - Bike Banditz (Japanese 2D SHMUP game from 2003) by Habanero at 4:16 AM EDT on April 27, 2020
Greetings! My first post here, and I come seeking help with an old game.

I wuold like to extract the SoundData.PAC file here. I've included the QuickBMS filecutter results as well.

https://mega.nz/folder/I9QBkKrQ#W3rQGAyJ05_5cL7rVq4yDg

I originally asked for help on Zenhax. Here's what aluigi replied with (don't know if the hex will format properly...).

"There is some obfuscation in place.

32bit equal to one, followed by 0x40 bytes xored with 0x40 (example of GameData.pac):
ba b1 8a 56 42 45 53 45 30 30 2e 49 4d 47 00 00 ...VBESE00.IMG..
7e e9 d1 77 00 00 40 00 60 90 39 01 f6 0c 10 00 ~..w..@.`.9.....
90 e9 d1 77 60 90 39 01 00 00 40 00 10 1f 54 00 ...w`.9...@...T.
00 00 40 00 00 00 00 00 c0 ff 12 00 43 b2 82 56 ..@.........C..V

Followed by a 32bit offset field but not sure what's the content from 0x48 to that offset, it's for sure xored with the same 0xac since there are some readable strings there.
I suppose it's compressed with some lzss algorithm and this reminds me of some game that used that algorithm with the data of the copy opcode xored with some constant that (if I remember correctly) was just 0xac.

Unfortunately I don't remember what was the game or maybe I'm confusing it with the lzss used in Allegro which uses xor on the flag and repeated characters."

If anyone has any idea of how to go about this, it'd be appreciated. The soundtrack is great! I'm probably going to buy it and just rip the FLAC later, but I wanted to also post this format here for posterity and investigation in case some other game also uses it down the line.

Thank you.

edited 4:19 AM EDT April 27, 2020
by almendaz at 7:37 AM EDT on April 27, 2020
For the sound in SoundData.PAC, no data is obfuscated EXCEPT some sort of "file list" i.e. filenames, positions, metadata & such, as aluigi stated. You just search for "RIFF" headers starting at 0x1FC8. 128 tracks. Use vgm toolbox's (RIFF) WAV extractor.
by Habanero at 3:27 PM EDT on April 27, 2020
Thanks, I never would have even thought to do that. I'll try to get that working then. Is there some kind of convenient program that will find the header for me in the future? I didn't see the RIFF here because the stuff in front of it comes out as garbage in HxD.
by almendaz at 9:38 PM EDT on April 27, 2020
If you mean "RIFF", then
vgm.t -> Advanced Cutter/Ofset Finder -> Presets: RIFF style header.
About finding the header, most guaranteed way is to simply examine the file yourself, manually; some "garbage" data (which really isn't) can occupy up to 1 MB (offset 0x100000), and searching through that demands time & patience.
Japanese programmers (tend to) like "code optimization" over format standards, so those "garbage" bytes definitely have meaning. Try to visually search for code that does not resemble "garbage", you might find the format you expect. For JP-games (based on experience -do not take as entirely valid), if older than 2004 sound is >90% WAV, some few are ogg. Still have not found (amiga-like) tracker formats for JP games (NIH syndrome?)
Good luck.


Go to Page 0

Search this thread

Show all threads

Reply to this thread:

User Name Tags:

bold: [b]bold[/b]
italics: [i]italics[/i]
emphasis: [em]emphasis[/em]
underline: [u]underline[/u]
small: [small]small[/small]
Link: [url=http://www.google.com]Link[/url]

[img=https://www.hcs64.com/images/mm1.png]
Password
Subject
Message

HCS Forum Index
Halley's Comet Software
forum source