Need help finding loop points for the PC version of Shantae & The Pirate's Curse by CyberBotX at 9:23 PM EDT on September 16, 2017
Hey everyone. I was looking into extracting the OGGs from the PC version of Shantae & The Pirate's Curse, because I didn't see them on JoshW's PC archive.

First thing I had done was used [ur=http://aluigi.altervista.org/quickbms.htm]QuickBMS[/url] with the Scooby Looney script to extract all the files from the game's ShantaeCurse.data file. This gave me a bunch of .vol files.

From the MUSIC\m directory of the extracted data, I started looking at the .vol files there. What I found was that the .vol files for the music are just OGG files with a header on them. Unfortunately, stripping away the header wasn't enough to get them to be playable completely (the time was something like a few seconds instead of the actual time). I had to use ffmpeg with the following:

ffmpeg -i <orig>.ogg -c:a copy <copy>.ogg

After that I had to run revorb on the OGG, as the time was entirely wrong after ffmpeg. The reason for using ffmpeg first was that revorb actually destroyed the file and made it really short (in the sample case, it was around less than 1/5 the original size).

The ffmpeg/revorb combo was enough to get them playable, but I wanted to make them loopable. I looked at the header portion of the .vol file, but I couldn't determine what constitutes loop points, if they are in that header.

I'm going to link to the files for Burning Town, as that was the first one I tried.

The vol file is here: burningtown.vol
The OGG made from it using the above instructions is here: burningtown.ogg

Any help finding the loop points would be appreciated. I didn't spend a ton of time on it, but I did try various values that seemed like they might've been loop points and none of them produced a working or seamless loop.
by marcusss at 11:57 PM EDT on September 16, 2017
Using Ravioli Explorer the .vol file contains 3 oggs but one is very short so only 2 are probably what you need and loop fine ?? so perhaps use Ravioli or similar on the .vol files


Burning Town 2 Oggs


edited 12:07 AM EDT September 17, 2017
by bnnm at 4:42 AM EDT on September 17, 2017
The format has 3 full "section" oggs inside: intro + loop + end (you can cut them just fine), and the header references has their samples and stuff (+ some extra data, prefetch?).
After the intro it just repeats the loop section (what an, uhm, "interesting" solution for looping). The end section seems empty.

I think it wouldn't be too hard to add support in vgmstream actually, if you can provide a bunch of examples (the more the better)
by CyberBotX at 8:48 PM EDT on September 17, 2017
Thanks for looking into it in more detail, bnnm! That is an "interesting" way to handle looping, indeed.

Here is a folder with more of the .vol files, I made sure they could play as OGGs if copied without the header and corrected using the methods I described above:

http://www.cyberbotx.com/PiratesCurse/

(Not everything, but hopefully a good selection, if you need more, let me know.)

Hopefully that should help getting support into vgmstream, I look forward to that. It would certain be easier than trying to make edited files. :D
by kode54 at 11:19 PM EDT on September 17, 2017
Another VGMStream idea, if it's not too far off topic: Appending multi-stream Oggs and playing them as intro+loop. Assuming the original files have different serial numbers, it should be possible to concatenate them for that purpose, if there's an Ogg reader that supports separate intro+loop streams.
by marcusss at 11:36 PM EDT on September 17, 2017
Good idea. A few rips of mine games have a 5-10 sec intro then the main body of the song looping for 3 mins e.g. On my player I just listen to the looping main part as it is a bother to first listen to the intro then the main...

so yes it would be great somehow they can be joined or vgmstream or whatever -)
by bnnm at 4:26 PM EDT on September 18, 2017
For .VOL, since it's a single stream and the internal Oggs use the same header/setup I think could be implemented as a block layout by skipping/resetting between sections, or maybe a special Vorbis codec. It may take a bit to consider.

Files with separate intro+loop however, I agree would be neat, but I'm not too sure what would be a decent implementation; I'll give it some thought.
by bnnm at 2:30 PM EDT on March 12, 2018
I've finally added this. The format is interesting (read: retarded) in that sections may mix codecs (ex. often the first seconds are ADPCM then Ogg), and that required some extra massaging.

Note you need to re-apply the .BMS on the .vol to get .wave, .vol/data are just generic containers. I've uploaded the rip to joshw anyway.

What kode54 suggested is now technically possible too (IOW vgmstream can play any concatenated codecs, from the same or separate files), I think a couple of games did something like that (GTA San Andreas?).


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