Loading M3U first in a zip file with GBS/NSF/SGC of same name?

Started by brycco,

brycco

There are some video game music chiptune files (NSF, GBS, SGC, KSS) that have no length or track metadata, but are provided this information through an M3U playlist inside a zip/7z file.

The scheme appears to be that the M3U has the same name as the main file, so G-3331.sgc gets paired with G-3331.m3u inside the zip. This pattern is also the case for .GBS/.NSF files too.

Then internally the M3U looks like this:

# @TITLE       Sonic Chaos
# @ARTIST      Aspect, Sega
# @COMPOSER    Masayuki Nagao, Kojiro Mikusa
# @DATE        1993-11-19
# @RIPPER      Kevin Horton
# @TAGGER      Johnnyz, Classic Game Guy


G-3331.sgc::KSS,28,Intro,0:37,,10
G-3331.sgc::KSS,24,Title Screen,0:19,,1
G-3331.sgc::KSS,1,Select Player,0:31,,10
G-3331.sgc::KSS,7,Stage Start,0:03,,1
G-3331.sgc::KSS,0,Turquoise Hill Zone,1:31,,10
....continued....

If I extract the zip and load the m3u directly (with the main file in the same folder), it behaves correctly with the in_nez.dll plugin. But there's 1000s of these soundtracks... I imagine it would work just fine if it loads the m3u first (that has the same name of the main sgc/nsf/gbs file) instead of the sgc/nsf/gbs.

It doesn't seem to work with the xmplay GME plugin either.

I'd really prefer to be able to listen to this stuff with the title and duration metadata from the playlist just by dragging over the .7z file to XMPlay.

Any thoughts on this?

Ian @ un4seen

Unfortunately, that isn't currently possible. Winamp plugins don't support archives, so XMPlay will normally extract an archived file to a temporary file and then give that to the Winamp plugin. But XMPlay doesn't support those special "::" playlist entries except to pass them directly to Winamp plugins, so those files won't be extracted and the Winamp plugin ends up getting the archived filepath (eg. "archive.zip|G-3331.sgc::KSS,28,Intro,0:37,,10"), which it can't handle. I'll check if something can be done about that.