Best way to Extract PS2 ADPCM Music? by NoVaX8000 at 1:54 PM EST on February 7, 2011
Hi,

I'm wanting to know what would be the best way to obtain PS2 ADPCM music, more specifically located in a file such as PAK or 000 for example.

Programs like MFAudio or Cube Media Player fails in this scenario since I have to find the Interleave myself. Even so, some of the music I can never get to sound correctly (a lot of crackling, channels never in the correct channel if that made sense).

Is there some type of Hex-Editing involved or something?
I tried hex editing out the music in MUSICTS.PAK from TimeSplitters 3 as I would like to have the music in the ADPCM format, but vgmstream had interleaving issues.

What could I possibly be doing wrong?
How do other people do it?
by Polokus at 1:59 PM EST on February 7, 2011
Post a sample?
by bxaimc at 5:20 PM EST on February 7, 2011
A) Depends on what format we're dealing with
B) The size of the archive
C) DON'T USE MFAUDIO OR CUBE MEDIA PLAYER (OUTDATED TOOLS)
D) When "hexing," do you see a "magic" word in the stuff? Literally a word in plain text.
E) I can do stuff due to constantly ripping and learning from the best after 3 years :P
F) For stuff like this I would go for VGMToolbox unless another custom extractor or quickbms script exists.
G) If it sounds wrong, you might be extracting the data incorrectly (size or cutting out data) but who knows.

But yea, post a sample if you want. Or rather a few MBs from the beginning of the archive (like 16MB or w/e since small stuff in kb doesn't quite work most of the time)
by snakemeat at 11:22 PM EST on February 7, 2011
I agree with bxaimc on all of his points. Since it is headerless most of the time, you need to understand what it looks like in a hex editor. Fortunately, it's the easiest to identify of all streams. Hop on the tracker and grab some PS2 streams with "Sony ADPCM" in the title. Open them in a hex editor and look at the data. You'll see what I mean.

Also, join the IRC channel and ask questions. People don't mind helping those who are really trying to understand how to do it right.

If you simply do not want to take the time to learn (or have more important things to do), I would recommend FastElbJa's ADPCM Player. It's the best automatic PS2 ADPCM ripper, but you still need to figure out interleave, etc... when you listen or add generic headers. Also, given the headerlessness (making automated ripping very hard) of Sony ADPCM, it can screw up too.
by NoVaX8000 at 1:26 AM EST on February 8, 2011
I'm unsure on what is actually needed.
The 1GB PAK file? One of the tracks extracted by the tools suggested? I don't see how cutting out data in the file with hex editing would help..

Tried both VGMToolbox and FastElbJa's ADPCM Player. I was still running into issues.

I couldn't even get the ADPCM Player to actually play anything & it kept on displaying "unhandled exception has occurred in your application" messages (sometimes unavoidable). It did extract fine though, but I still have crackling and pops in the music (even when the program does detect the interleave)..

Although I did notice some sort of pattern in a hex editior at the beginning of some other adpcm files before the numbers really kick in (even tried copying them into another file). Which hasn't exactly helped, yet.
by bxaimc at 7:26 AM EST on February 8, 2011
You could post the first 16 MB of the 1 GB PAK file.
by snakemeat at 8:43 AM EST on February 8, 2011
what game is it?
by NoVaX8000 at 2:14 PM EST on February 11, 2011
Hello,

Sorry for not replying earlier, as I was quite busy.

Anyway, here's a sample of the first 16MB of the PAK file from TimeSplitters 3.
http://www.multiupload.com/49O4NEVP8N

Also, while I'm at it, I thought I might as well upload some problematic tracks from TimeSplitters 2 (as-is on the original disk), which vgmstream doesn't play properly (interleaving problem it seems). Only 4 tracks, the rest seem to play fine.
http://www.multiupload.com/R9A4O2SB3Q
by marcusss at 8:31 PM EST on February 11, 2011
You mean the small delay from right to left channel... hmm sounds interesting..yes

Not sure what is causing this.. The rip I had a long time ago ( I don't have anymore) played fine in vgmstream and didn't have this issue


e.g the second song in your pack (whis is call ufopia) Should sound like this
UFOPIA

edited 8:42 PM EST February 11, 2011
by bxaimc at 9:10 AM EST on February 12, 2011
There were changes that went on with the MIB support that we had that now it causes some problems with files that previously worked. Anyway, here's a fix to the TS2 files.

TimeSplitters2_MIB_vgmstreamprobs_FIXED.7z
by AENIGMA at 9:33 AM EST on February 12, 2011
I just did my own hex rip of TimeSplitters Future Perfect a couple of months ago. Most of the music files play fine in Winamp with VGMStream but some jitter. I just used MFAudio to play the problematic files. If it helps any, here are my notes from when I manually hex ripped the music from the PS2 MUSICTS.PAK file:

Start - End [interleave] [frequency] = Song Title

034F1000 - 04123000 [7080] [32000] = Movie Suite - Action
04123000 - 051C2000 [6500] [32000] = Movie Suite - Sneak - Bad Guys
051C2000 - 068A1000 [6F40] [32000] = Movie Suite - Sneak - Good Guys
1080F800 - 1118E000 [6A40] [44100] = Mapmaker
1118E000 - 125B9800 [7040] [44100] = Mind The Gap "Subway"
15AAA000 - 167C8800 [6380] [44100] = TS1 - Chemical Plant
167C8800 - 175C6800 [6F80] [44100] = TS1 - Chinese Restaurant
175C6800 - 17F6C800 [6F00] [44100] = TS1 - Compound
17F6C800 - 18D7A800 [6340] [44100] = TS1 - Docks
18D7A800 - 198A8800 [6C00] [44100] = TS1 - Horror Mansion
198A8800 - 1A423800 [7340] [44100] = TS1 - Planet X
1A423800 - 1B426000 [6B80] [44100] = TS1 - Spaceways
1B426000 - 1C1C5000 [6E40] [44100] = TS1 - Village
1C1C5000 - 1CD44000 [6D00] [44100] = TS2 - Icestation
1CD44000 - 1D81A800 [66C0] [44100] = TS2 - Goteki Remix
1D81A800 - 1E41A800 [7140] [44100] = TS2 - Mexican Mission
1E41A800 - 1EF9B800 [61C0] [44100] = TS2 - NeoTokyo
1EF9B800 - 1FC1F000 [6680] [44100] = TS2 - Robot Factory
1FC1F000 - 20932000 [7080] [44100] = TS2 - Siberian Dam
20932000 - 216E3800 [6840] [44100] = TS2 - Spacestation
216E3800 - 2274D800 [67C0] [44100] = Virtual Tileset (TS2 - Gothic Tileset)
2274D800 - 230E8800 [6E80] [32000] = TS2 - Military Training Ground
230E8800 - 24034800 [7180] [44100] = TS2 - Wild West
24034800 - 24C76000 [6400] [44100] = Metal Lab Tileset
24C76000 - 25922000 [6D80] [32000] = Scotland The Brave
25922000 - 26114000 [6BC0] [44100] = Castle Tank Boss
26114000 - 26F5C000 [6480] [44100] = What Lies Below - Complete
26F5C000 - 27A11800 [6EC0] [44100] = What Lies Below - Attack
27A11800 - 28C7D000 [62C0] [44100] = What Lies Below - Stealth
28C7D000 - 28DA2000 [65C0] [44100] = ???
28DA2000 - 2A016800 [6440] [44100] = Disco A Gogo
2A016800 - 2ACED800 [64C0] [32000] = TS3 Siberia / Military Bunker Tileset
2ACED800 - 2BB0C800 [72C0] [44100] = Egyptian Tileset
2BB0C800 - 2C70B800 [6BC0] [32000] = Machine Wars
2C70B800 - 2CE90800 [68C0] [44100] = ???
2CE90800 - 2D9DC800 [6FC0] [32000] = Something To Crow About
2D9DC800 - 2E1FE800 [6AC0] [44100] = ???
2E1FE800 - 2E810800 [7100] [44100] = ???
2E810800 - 30024800 [73C0] [44100] = Venice
30024800 - 30714800 [64C0] [44100] = ???
30714800 - 31F23000 [64C0] [44100] = Horror Hotel
31F23000 - 32C67000 [65C0] [44100] = Horror Tileset
32C67000 - 3389E000 [72C0] [32000] = Like A Monkey
3389E000 - 34A03800 [6580] [44100] = Like A Robot
34A03800 - 359DD800 [7180] [44100] = The Mansion Of Madness
359DD800 - 35ECA800 [6800] [32000] = Main Menu
35ECA800 - 36E9C800 [7080] [44100] = Bunker Deathmatch
36E9C800 - 37030000 [6B80] [44100] = ???
37030000 - 37C88800 [6200] [32000] = Future Perfect
37C88800 - 3868D000 [7340] [44100] = Splitter Crow Boss
3868D000 - 391DE000 [64C0] [32000] = Mars Prison
391DE000 - 39BDD000 [7300] [44100] = VR
39BDD000 - 3A40B800 [72C0] [44100] = Khallos Express Helicopter
3A40B800 - 3B2C5800 [7400] [44100] = The Russian Connection
3B2C5800 - 3BA0D000 [6F40] [32000] = Khallos Express
3BA0D000 - 3C9D3000 [6D80] [32000] = Spaceport
3C9D3000 - 3D770000 [65C0] [32000] = Vietnam
3D770000 - 3E882000 [73C0] [44100] = Like A Robot - Instrumental Version
3E882000 - 3F595000 [7080] [32000] = Zeppelin
3F595000 - 40041800 [6CC0] [32000] = You Genus, U-Genix
40041800 - 40AD6000 [7040] [32000] = Breaking And Entering
40AD6000 - 41726800 [61C0] [32000] = Who's The Mummy "Temple"

Please note that I only ripped the music and not all of the cut-scene files (in several languages). If you want the hex values for the cut-scenes, I can post them as well.
by NoVaX8000 at 8:25 PM EST on February 12, 2011
Thanks a lot for the help, much appreciated.
I've listened to the fixed tracks, and they're perfect.
I have only started using vgmstream recently, so I didn't know the 4 tracks previously worked.


Is there absolutely no way to bypass the annoying jitter/pops/crackles in vgmstream with some tracks? If there's a way, I'd really like to know.

I prefer not to use MFAudio that much anymore since I know it clips off the end of the tracks, same with Cube Media.

How exactly do you input the Interleave with hex editing by the way? I'm a complete newbie when it comes to hexing.

-snip-

Edit: Well I hex-ripped out Breaking and Entering using those offset values specified above, but the track plays at 44100Hz instead of 32000Hz in vgmstream? o.O

edited 8:35 PM EST February 12, 2011

edited 8:40 PM EST February 12, 2011
by AENIGMA at 9:26 PM EST on February 12, 2011
That's one thing I forgot to mention, the 32000Hz files play at 44100Hz for me as well (in Winamp via VGMStream).

To find the interleave data for the TSFP files I used a Hex Calculator (using Hex Workshop), finding the difference of the start of each section.
by snakemeat at 12:41 AM EST on February 13, 2011
Is there absolutely no way to bypass the annoying jitter/pops/crackles in vgmstream with some tracks? If there's a way, I'd really like to know.

Sony ADPCM is headerless and vgmstream's interleave detection is not perfect for .mib files. You can add a GENH (GENeric Header) header to force a specific interleave. VGMToolbox has a GENH creator or you can find the original GENH Creator (sorry, cannot find the link now).
by NoVaX8000 at 1:41 AM EST on February 13, 2011
Is it possible to hexedit the file so vgmstream will play at the correct frequency?

I'm still a bit lost on this.
With the offsets, how exactly did you figure them out?
It would be good if I knew, because it would sure help me for other games if hex editing is indeed the best way on extracting ps2 adpcm files.

I kinda tried to copy the way you chose the offsets, and tried it on the very first track (The Year Is 2401. Humankind finds itself...). The offset I chose was "800-43B46A". Is this correct?

Anyway, please do list the Cutscene information. Just English will do (not interested in other languages :P). Thanks.

I'm not really keen on spending $80 on a Hex Editing program :p
The program I'm using now is HxD, and I don't see a Hex Calculator accessible within the program.

Edit: @snakemeat: Thanks, I'll give that a try.
Edit: Oh cool. I used the Vgmtoolbox GENH creator to fix up the tracks that do not play at the correct frequency/interleave in vgmstream. Thanks for that, it works quite well.

edited 1:44 AM EST February 13, 2011

edited 2:00 AM EST February 13, 2011
by AENIGMA at 8:24 AM EST on February 13, 2011
Here are all of the English cut-scenes:

00000800 - 00442000 [6900] [32000] = Cut Scene (English)
00442000 - 00903800 [6B00] [32000] = Cut Scene (English)
00903800 - 00D77000 [6A00] [32000] = Cut Scene (English)
00D77000 - 00F9B800 [6600] [32000] = Cut Scene (English)
00F9B800 - 012A1000 [6C80] [32000] = Cut Scene (English)
012A1000 - 013E2000 [6F80] [32000] = Cut Scene (English)
013E2000 - 016C9800 [64C0] [32000] = Cut Scene (English)
016C9800 - 01945000 [67C0] [32000] = Cut Scene (English)
01945000 - 01A33800 [6A00] [32000] = Cut Scene (English)
01A33800 - 01E36800 [6800] [32000] = Cut Scene (English)
01E36800 - 02027000 [6340] [32000] = Cut Scene (English)
02027000 - 021C7000 [6B40] [32000] = Cut Scene (English)
021C7000 - 02261000 [6FC0] [32000] = Cut Scene (English)
02261000 - 0277D000 [6AC0] [32000] = Cut Scene (English)
0277D000 - 028F3800 [63C0] [32000] = Cut Scene (English)
028F3800 - 02A20800 [6440] [32000] = Cut Scene (English)
02A20800 - 02D10800 [6440] [32000] = Cut Scene (English)
02D10800 - 02EA6800 [68C0] [32000] = Cut Scene (English)
02EA6800 - 03134000 [6880] [32000] = Cut Scene (English)
03134000 - 034F1000 [7240] [32000] = Cut Scene (English)


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