Opened 7 weeks ago

Last modified 3 days ago

#12857 new defect

SAGA: IHNM: Fatal "Missing AdLib SAMPLE files" error with default settings

Reported by: dwatteau Owned by:
Priority: normal Component: Engine: SAGA
Version: Keywords: audio, adlib, adlib sample, default audio
Cc: Game: I Have No Mouth

Description

ScummVM 2.4.0git19-g91f9742d00 on macOS Catalina (x64), but also happens with the same version on a Windows XP VM, so it doesn't look system dependent.

  1. Buy "I Have No Mouth and I Must Scream" from GOG.
  2. Download the game from it (I tested the DOS/English and DOS/French versions).
  3. Add it to ScummVM. Don't change any setting, just use the defaults.
  4. Start it: you immediately obtain a fatal "ERROR: Could not find AdLib instrument definition files SAMPLE.AD and SAMPLE.OPL"

If I manually change its audio settings to use the Apple DLS Software Synthesizer, it'll run.

But I'd expect it to use a working audio setting by default. It should work out of the box after adding it.

Change History (7)

comment:1 by eriktorbjorn, 7 weeks ago

The SAMPLE.AD and SAMPLE.OPL files (needed only for AdLib music?) are in the DRIVERS folder on the original CD, but I guess GOG didn't bother to include that.

So I guess ScummVM needs some sort of graceful fallback solution here?

comment:2 by eriktorbjorn, 7 weeks ago

I could have sworn that I saw a corresponding bug report for Inherit the Earth, but since I can't find that now I'll post this here instead.

Some versions of Inherit the Earth has the same problem:

My Wyrmkeep Windows CD uses standalone MIDI files for the music. It does not include INSTR.AD or INSTR.OPL, and will crash when starting the game with AdLib music.

My Wyrmkeep Linux CD uses digitized music in the form of a music.rsc file. It does not include INSTR.AD or INSTR.OPL, and will crash when starting the game with AdLib music.

My Wyrmkeep Windows/Mac/Linux CD uses digitized music in the form of a music.rsc file. It does not include INSTR.AD or INSTR.OPL, yet will not crash when starting the game with AdLib music.

My GOG version appears to be identical to the Windows/Mac/Linux CD, but the files are organized differently. It does not include INSTR.AD or INSTR.OPL, yet will not crash when starting the game with AdLib music.

My pre-Wyrmkeep CD includes both INSTR.AD and INSTR.OPL, and will not crash when starting the game with AdLib music.

So I guess it's only the more obscure versions that crash on AdLib music (in the case of the Linux CD version, there is probably no reason for it to), but hopefully they will be fixed automatically along with IHNM?

comment:3 by sev-, 7 weeks ago

This is the matter of the thing which I never understood: "which files do I need for the game?" As my preferred reply is "All of them". We used to not load these files for the default audio device. Later we implemented Miles Sound System which uses samples, and thus, provides a superior experience. But Night Dave Studio, being lazy, just repackaged ScummVM and put on sale, without much checking or looking.

I contacted them and provided the info. Have no idea, whether it will be taken into account or silently ignored.

I will see how to enforce non-MSS Adlib for this GOG release, but plainly speaking, it is broken and is missing two required files.

comment:4 by antoniou79, 2 weeks ago

This bug also occurs with the Steam version of the game. I just tested, with latest master 2.6.0git and also with a release build for 2.5.0.

comment:5 by antoniou79, 2 weeks ago

I've added some info about these files and why they are required for Adlib support on our wiki page for the game. It's the "Important note" at the bottom of the Required Data files section.

https://wiki.scummvm.org/index.php?title=I_Have_No_Mouth,_and_I_Must_Scream#Required_data_files

If/when we close this ticket, we should update that text too.

comment:6 by eriktorbjorn, 2 weeks ago

The most worrying ones are probably the releases of Inherit the Earth that don't include the files, but where ScummVM still expects them.

comment:7 by antoniou79, 3 days ago

The issue should now be fixed by NMIError's commit:
https://github.com/scummvm/scummvm/commit/28dcd8978267cb397776ad77746261e7eb50d048

The engine will now display a warning if the required SAMPLE files for accurate music playback are not found and will then fall back to the generic GM-compatible instrument definitions of the Adlib driver.

Note: See TracTickets for help on using tickets.