Malvineous / libgamemusic

Library providing a standard mechanism for playing and converting music used in DOS games.
http://www.shikadi.net/camoto/
GNU General Public License v3.0
23 stars 4 forks source link

[s3m-screamtracker] Conversion to S3M fails if there is no song title present #6

Closed ildar closed 7 years ago

ildar commented 7 years ago

$ ./gamemus /tmp/"LAME intro tune for Xerox of INC.raw" -c s3m-screamtracker:out.s3m Opening /tmp/1.raw as type File is definitely: Rdos raw OPL capture [raw-rdos] decode-opl: Invalid OPL channel 15 ... decode-opl: Invalid OPL channel 9 gamemus: Unexpected error - vector::_M_range_check: __n (which is 0) >= this->size() (which is 0)

Malvineous commented 7 years ago

This one is now fixed, but it's still not possible to convert .raw into .s3m, because .raw files are not split into patterns like .s3m is, so once the first pattern fills up you will get an error.

I still have to work out a nice way of splitting an unpatterned song like raw into neat patterns so a nice s3m can be written.

The closest you can get now is this:

$ gamemus "LAME intro tune for Xerox of INC.raw" --tempo 250000:2,6,4/4 -k 9=- -k 10=- -k 11=- -k 12=- -k 13=- -k 14=- -k 15=- -k 16=- -k 17=- -k 18=- -k 19=- -k 20=- -k 21=- -k 22=- -c s3m-screamtracker:out.s3m

This changes the tempo (since the .raw runs way too fast for S3M) and also mutes the OPL3 channels that S3M doesn't support. But still the problem remains where the song needs to be split into patterns.