VOGONS


dro / adplug / adlib ripping project

Topic actions

First post, by zeromus

User metadata
Rank Newbie
Rank
Newbie

Unless there are any objections, I shall use this thread to report on and discuss my efforts to promote the adlib dumping scene:
---
current status:
1. substantial adplug modifications to support opl3 core in addition to opl2. situation pending discussion with adplug maintainer. running in winamp plugin. not in cvs.
2. dosbox adlib.cpp bugfixes. dro file format changes; specifications not yet finalized. nothing in cvs.

presently, every game I try plays in adplug identically to dosbox: shadow warrior, doom, descent, warcraft II. dual opl2 mode should be supported, but I haven't actually tried it ^_^ (which games??). further test results are forthcoming.

I can post beta binaries somewhere upon request.

My next step is to make a slicer&dicer gui utility for editing the raw logfiles. I have some curious ideas about ways to make that fun and easy, but if anyone has specific experience in such utilities I would be glad to discuss it.

Things on my mind are:
* id3 tag for dro files? dosbox can write the relevant information directly to the correct spot without having to futz with the tags; but the slicer&dicer utility could export more extensive information; but adplug can't directly use it. The benefit would be: as soon as anyone starts making adlib music archives, they would be filling the tracks with as much information as they have, even if the current plugins can't really use it yet.
* philosophy of compressibility and filesize of dro logfiles. I am pretty sure that the logfiles compress better if you de-interleave the commands and the values. This could be done in dosbox (somewhat inefficiently)--or it could be defined as a separate disk format mode

zeromus

Reply 1 of 34, by oneirotekt

User metadata
Rank Member
Rank
Member

Tangentially related, but if you are a contributor to the Adplug project (or are tinkering with it on your own) and you care about this sort of thing, Adplug still doesn't correctly play back LucasArts music files (LAA, or ADL if you've extracted them directly from the resource files with something like SCUMM Revisited) from pre-GMIDI games like Day of the Tentacle, Monkey Island 2, etc etc.

You can find most of the files in question here. Compare Adplug's playback of the LAA files with the actual game output (I can provide MP3s if need be) and I think you'll agree the emulation leaves a lot to be desired. I filed a bug about this a while back but nobody ever paid attention to it.

Seems like if we're going to have an Adlib ripping scene with a centralized repository of files (or two or three, as the situation currently is) we should have a proper way of playing back some of the very best Adlib music ever created.

I would have done some DRO ripping of the games in question with DOSBox but I don't want to spend the time until DRO support is "finished" and there is some way to edit DRO files and get them into a nice standard ripped format that everyone agrees on. If you're creating a tool to edit them and possibly include metadata that would be nifty.

Reply 2 of 34, by zeromus

User metadata
Rank Newbie
Rank
Newbie

I have investigated that problem. The adplug player for LAA (actually the MID driver) has no concept of patchsets other than that of GM. The GM patches are hardcoded.

We have a couple of possibilities at this point. I know nothing about scumm/scummvm so I will leave it to you to research:
1. does the scumm resource file contain a patchset datafile?
2. can scummvm presently dump a patchset datafile?
3. do any scumm games support opl3? does scummvm support opl3 in those games, or does it fall back to opl2?

Reply 3 of 34, by zeromus

User metadata
Rank Newbie
Rank
Newbie

Request for feedback:
I have the following information fields available in the DRO (it is using ID3):
title
composer
game (album)
year
comment
tracknumber (0..255)

Adplug offers the following informational boxes:
Title (this is what displays as the songtitle in winamp)
Author
Instruments
Description

The question: I have to pick a way to pack the tag information into dosbox. My proposal is:

Title: [ Warcraft II ] - 02 - Human Theme I
Author: Glenn Stafford
Description: Comment

where should the year go? should I have put fields corresponding to adplug into the DRO instead? (i dont think so... ID3 is a good standard) My proposal is tainted heavily by my personal biases on the sensitive holywars subject of how to organize your music and such. I would welcome any comments.

Reply 4 of 34, by philhassey

User metadata
Rank Newbie
Rank
Newbie

as the author of the LAA/MID/SCI plug-in for adplug, I'll make some commentary:

1. it's pretty scary looking code. I wrote it (the MID/LAA/SCI plug-in) 4 or 5 years ago, and now likely couldn't do anything to fix the stuff that is wrong with it.

2. the LAA playback actually uses OPL2 patches that are encoded in the MIDI stream. The hardcoded MIDI set is only used for .MID files.

3. if you or someone are interested in getting perfect LAA playback into AdPlug, I'd suggest consulting the scummvm team on how they got playback working correctly in scummvm.

4. as a general alternative, re-ripping all the songs with dosbox and using DRO playback may be a lot easier than #3.

5. www.chiptune.de has all the original ripped tunes

Good luck!

Reply 5 of 34, by zeromus

User metadata
Rank Newbie
Rank
Newbie

Thanks for correcting me with the valuable information, philhassey.

Oneirotekt, I will still give it a shot, fixing the broken LAA playbacks... I would appreciate some mp3s of a few of the broken songs to aid me in this.

Reply 6 of 34, by priestlyboy

User metadata
Rank Oldbie
Rank
Oldbie

I'm working on recording with DRO the adlib music of Wolfenstein3D with DOSBox. I just need to figure out how trim it a little. It would be nice to have those a tool for DRO like OggCut and MP3Cut. Those are very nice tools, yes they are. :p.

/Ieremiou

Also it seems at current. I tried to record music from Sierra games like King's Quest 5 but I think they use something different even though they play through the soundblaster card. It's different to say the least.

Ieremiou
----------
Helping Debug DOSBox.

Reply 7 of 34, by oneirotekt

User metadata
Rank Member
Rank
Member

Heya, sorry I was away on vacation. Very interesting info, philhassey.

1. does the scumm resource file contain a patchset datafile?

Not being a programmer (at least not of the low-level sort) I'm not sure. I have however done lots of fishing around the in resource files with ScummEX/Scumm Revisited, which contain sound resources for PC speaker (SPK files in the resource viewer), Adlib (ADL files, which are identical to the LAA files), Roland (ROL) and so on. ADL files look very similar to MIDI, and there's nothing in the resource file that looks anything like instrument patches, so I'm guessing they're either hardcoded in the game executable (MONKEY2.EXE etc) or, more likely, reside in the SOUNBLAS.IMS or ADLIB.IMS files that accompany the DOS versions of the games.

No idea how ScummVM deals with all of this, but yeah looking at their code and/or talking to their team definitely seems like the way to go. They must be reproducing the patches for each specific game somewhere in the SCUMMVM executable.

3. do any scumm games support opl3? does scummvm support opl3 in those games, or does it fall back to opl2?

Later Adlib-era games like Sam and Max had entries in their sound setup utilities for "4-OP FM (OPL3 4-Operator FM Synthesis)", so I assume that means OPL3 support. Again, no idea what ScummVM does or how.

Keep in mind that it wasn't just SCUMM games that used the iMuse system and LAA/ADL format, I was able to extract ADLs from the LFD resource files from X-Wing, TIE Fighter and Dark Forces that seem identical to the Scumm ADL files. It would be very cool to rip the interactive music from these games as well.

Just a sec, and I'll post some LAA / MP3 comparisons...

Reply 8 of 34, by oneirotekt

User metadata
Rank Member
Rank
Member

Some comparisons between Adplug LAA and "real" Adlib output. "Real" in airquotes because it's recorded using DOSBox's WAV output ability, but I've compared it with the real thing and my ear can't really find any difference.

Day of the Tentacle - Opening Credits: MP3 vs LAA

Indiana Jones and the Fate of Atlantis - End Credits: MP3 vs LAA (part 1 and part 2)

Monkey Island 2 - LeChuck's Torture Chamber: MP3 vs LAA

Side note: a lot of the LAA files on chiptune.de are misnamed, i.e. some of the Indy4 tunes are from completely different parts of the game.

Reply 9 of 34, by ComputerWolf

User metadata
Rank Newbie
Rank
Newbie

I know this is a little off topic, but is there anyway to know how to edit the raw files in say, a hex editor? Is there anything that decribes how to read the file and edit it properly, though no program has been made for this yet?

Reply 10 of 34, by zeromus

User metadata
Rank Newbie
Rank
Newbie

http://www.pi-r-squared.com/code/dro/

Here are beta editor tools/in_adlib.dll and a hacked dosbox.exe (win32).
I welcome any feedback. Im not sure how useful the tools actually are. If someone gives me good feedback I will work hard to make sure I take it into consideration and make the tools more useful.

ComputerWolf, I will write some documentation soon regarding the DRO file format and post it at that url. But give the tools a shot! Supposing you are running windows. In the meantime you could check out adlib.cpp in the dosbox source code.

Reply 11 of 34, by ComputerWolf

User metadata
Rank Newbie
Rank
Newbie

everything looks great except for the fact that whenever i load the program it says it cannot initialize the audio, and once i am in it will not play, but other than that it looks awesome i'll keep trying to get it to work! Thank you.

EDIT: I figured out why i couldn't play the music...i was stupid enough not to read about what was needed to make it run, but now i have it all and it works perfectly! Great Job!

Reply 13 of 34, by priestlyboy

User metadata
Rank Oldbie
Rank
Oldbie

Thanks Zeromus for the adlib.cpp. I made a diff of the changes from the one in the CVS source and yours and I'm attaching it here. (Hopefully Qbix takes notice of it or Harekiet. If not I'll post it for ya on Sourceforge since I have an account on there already.)

I wasn't able to edit ANY of the old DRO files even the ones that were on chipbits. So I compiled it into my CVS version of DOSBox with all the trimmings 😀 and made a DRO of Ultima 7's Main Menu. 😉 worked like a charm when i dragged it into DRO-ED.

The hard part was figuring out exactly how to trim the sucker but I figured out that double-left clicking sets the top trimming arrow and the double-right clicking sets the bottom arrow trimmer. Which finally got it to trim properly.

It is annoying to have to silence the sucker but yeah I figured out what that button meant right off. (I did read your tut but I didn't read it very good, 🤣.)

But yep I got the first of several tracks I need to rip from Ultima 7 cause I really really want to 😉.

Tool is okay but it's definately not your average looking trimming tool like MP3DirectCut or OggCut (Since this uses keynotes instead of time signatures)

Edit: Is there anyway to pick your desire output of the file name instead of having it hardcoded to display track number - title? (possibly on the todo list I suppose)

Thanks. Nice tool 😜.
Hopefully the first of a much brighter future of DOS Music 😁.

It's also nice the DROs compress so well. The file is 100 kbs but it compresses to only 4 kbs. 😮 🤣.

Oh yeah and I was one of the people that needed the MDXRedist.MSI. Thanks for having that file avialable easily.

Oh and the plugin works wonderfully in XMPlay which is a nice slim alternative to Winamp5 if you don't need all the extras. It plays some of the older MODule formats better than Winamp so I'm happy with XMPlay and it loads any of Winamp Coded Input Plugins with ease.

Attachments

  • Filename
    Ultima 7 - Menu Screen.zip
    File size
    4.37 KiB
    Downloads
    223 downloads
    File comment
    The Ultima 7 Main Menu DRO Sound Clip.
    File license
    Fair use/fair dealing exception
  • Filename
    adlib.diff
    File size
    4.37 KiB
    Downloads
    215 downloads
    File comment
    Diff of the Adlib.cpp from CVS and Adlib.cpp changes by zeromus. :)
    File license
    Fair use/fair dealing exception

Ieremiou
----------
Helping Debug DOSBox.

Reply 14 of 34, by zeromus

User metadata
Rank Newbie
Rank
Newbie

Thanks for the feedback.

As far as old DRO files--yes, that is to be expected. I intentionally broke compatibility since the old DRO files were untrustworthy. This is why I am warning people now to go slowly until all the tools are tested!

I suppose that the silencing could happen automatically when you click stop (but not when you use the step commands?) Thats easy. We'll try it in the next version.

I will definitely add a filename-generator-configurator to my todo list. It would be something like your standard ripper/tagger system where you have "$tracknum$ - $title$" or just "$title$" unless you have any better ideas. And as far as the todo list goes... its right here. So post it and it becomes todo.

As far as the style of the trimmer... I know its different, but I thought it would be worth it to take advantage of the fact that you can trim these files to note-perfect perfection. I hope it ends up working out for mass-production.

Also winamp2 plays my radix, delorean, and fleshbrain mods correctly and thats all I care about!!

Reply 16 of 34, by zeromus

User metadata
Rank Newbie
Rank
Newbie

Posted a DRO-ED updated with the requested items, and the poorly-written .dro file specification documentation.

http://www.pi-r-squared.com/code/dro/

Reply 17 of 34, by ComputerWolf

User metadata
Rank Newbie
Rank
Newbie

Not bad with the specification document, but too much for my brain to handle 😜

Anyways, i know it would be hard work, and probably a far-off addition, but being to see the notes as actual rhythms and pitches would be very nice (especially for those who are still confused). It would make editing somewhat simpler and easy to read. Other than that, i love messing around with the tools and getting my music exactly how i want it. You've done a superb job, keep up the great work.

Reply 18 of 34, by oneirotekt

User metadata
Rank Member
Rank
Member

Nice work zeromus... I wanna try out your DRO tool, but I don't have the .NET Framework installed. What are the effects of installing it? Anything shady or annoying? (Sorry, somewhere along the way I developed an irrational fear of anything with .NET in its name)

Reply 19 of 34, by zeromus

User metadata
Rank Newbie
Rank
Newbie

.net is fairly benign as far as upgrades of that sort go. Its far less likely to foul up your system than an IE upgrade or a service pack. In fact, ive never heard of .net frameworks fouling up someone's system, although the frameworks themselves break from time to time.

There are a few different components of the framework which get at the guts of windows--a few shell extensions, and registry entries that direct IE to route .net executables directly the the .net executor and not through the regular PE executor; a few control panel applets. Maybe some other things that I don't know about.

But mostly its just a buttload of dlls.

Like I said.. I dont feel bad asking people to install .net framework. It's safe. I would feel bad if i asked people to upgrade their IE or office or put a service pack on--that stuff is actually dangerous.

But .net is safe, I think. I worry about a lot of stuff, but not that.

[Oh... .net can break IIS, on occasion, as it tries to upgrade ASP to ASP.net. ]