Extracting the Music from Sam & Max Hit the Road

General chat related to ScummVM, adventure gaming, and so on.

Moderator: ScummVM Team

Post Reply
Posts: 2
Joined: Tue Mar 24, 2020 11:01 pm

Extracting the Music from Sam & Max Hit the Road

Post by Infomaniac95 »

Hello there,

I have been wanting to do a proper rip of the music from Sam & Max Hit the Road, but I need some help.

I once recall reading that Sam & Max has the same SCUMM version as most Humongous Entertainment games, which made me think it was fairly simple. Afterall, for those games, it was as simple as using ScummEX, exporting the music to XMI, and then removing some header data.

However, when trying to do a similar thing with this game, I can't seem to get the files working at all.

So I come to ask, is anyone able to give me instructions or help out with ripping the music from this game in its native format? (Which is to say, no converting the music data to other formats, just ripping it as it is, whether that be xmi, hmi, midi, whatever)

Also, if possible, if the files have SysEX commands, or Program Changes, I would prefer if those could somehow be kept, too.

Posts: 32
Joined: Thu Mar 05, 2020 7:04 pm

Re: Extracting the Music from Sam & Max Hit the Road

Post by ZvikaZ »

We have recently added an option to dump all MIDI commands that the game creates during play, including SysEx.

You'll need to use a nightly build, and run:

Code: Select all

scummvm --dump-midi
This will create a 'dump.mid' file in the local directory.
- If there is already such file, it will be overwritten
- The file will be created when quitting from the game, either from the game's menu, or from ScummVM's Global Menu (and not when quitting by clicking 'X' to close the window)

It will not automatically rip all sound tracks at once, as you might prefer, but it will create an exact recording of all MIDI commands created as you play.

Note however, that it will record only midi, and not other sounds such as digitized effects or voices, so it might be better to turn off options like "prefer digital sound effects", or "Mixed AdLib/MIDI mode".

Posts: 2
Joined: Tue Mar 24, 2020 11:01 pm

Re: Extracting the Music from Sam & Max Hit the Road

Post by Infomaniac95 »

Well, I have some news.

So, thanks to some friends, I found out the resources for these old games are XOR'ed. After un XORing them with a value of 69, of all things, its possible to use a tool called VGMToolbox, which has a MIDI Extractor, to pull out the midi data.

This is great, I now have all the songs ripped directly from the game!

However, the midi files, seem to have subsongs in them, which I do admit, caught me offguard. This is most likely a part of the iMUSE system, but I am not certain. The subsongs, unlike the first main song in the midi files, do not have mapping data on them, aside from drums, and im not for sure on how to fix this.

And, kinda jumping the shark here, im aware, but I also ripped Day of the Tentacle, which had a similar ripping process. This game, unlike Sam and Max, actually seems to have 3 versions of all songs ripped for me. Only one of them having proper mappings, while the rest are just piano. The songs also have subsongs, like Sam and Max, which also like Sam and Max, don't have proper mappings, even on a midi file that has proper mappings. (Listen, I know this is super confusing now, but stick with me.)

My only guess as to why the other 2 versions of songs for DOTT don't have mappings, is cause they lack some kind of SysEX data, or something. (after looking again as I was writing this, it seems one of them is mapped, but oddly. Possibly for the MT32, or AdLib/SoundBlaster Cards) As for the subsongs not having properly mapped stuff, well, if I had to guess, if these were ripped to XMI instead of midi, the subsongs might have mappings. And no, renaming them to XMI didnt fix or change anything.

So, I now come to ask, what now? Is this the best that can be done here, or can all of this, and more, be fixed?

An example of a ripped Sam and Max midi file with subsongs can be found here: https://cdn.discordapp.com/attachments/ ... 1_001D.mid

Examples of Day of the Tentacle can be found here. The archive includes 3 files, which are all the same song, but with different mappings, so you can see what I mean, regarding that: https://cdn.discordapp.com/attachments/ ... xamples.7z

Now, I likely can't provide much more than I have here, in terms of midi files, so below this, you can find the tools I used to rip all of this, and all that:

The XOR tool I mentioned can be found here: https://cdn.discordapp.com/attachments/ ... r_file.rar

To unXOR a 001 file, run the program in a cmd. When it asks for arguments, put 69, which is the XOR value, the 001 file, and then for the final argument, put down a name for the unXOR'ed file, like, TENTACLE.001.DEC.

To rip midi files, the program I used, was VGMToolbox, which can be found here: https://sourceforge.net/projects/vgmtoolbox/

The MIDI extractor is under Misc Tools > Extraction Tools > Generic > MIDI Extractor. Image of what that looks like here: https://cdn.discordapp.com/attachments/ ... nknown.png

That's all I have to say here. I didn't expect to have so much to say here, and im sorry for the wall of text.

Post Reply