[Scummvm-tracker] [ScummVM :: Bugs] #15143: SCUMM: Options dialog lists the wrong Music device

ScummVM :: Bugs trac at scummvm.org
Wed May 29 10:37:25 UTC 2024


#15143: SCUMM: Options dialog lists the wrong Music device
-------------------------+----------------------------
Reporter:  eriktorbjorn  |       Owner:  (none)
    Type:  defect        |      Status:  new
Priority:  normal        |   Component:  Engine: SCUMM
 Version:                |  Resolution:
Keywords:                |        Game:
-------------------------+----------------------------
Description changed by eriktorbjorn:

Old description:

> The Game Options dialog is supposed to show the relevant music devices on
> the AUdio tab or, if not specified, all of them. But this is not how it
> behaves for the SCUMM games. Examples:
>
> Maniac Mansion (DOS v1, v2) list "<default>", "No music", and "AdLib
> emulator", even though it specifies PC Speaker and PCjr.
>
> Fate of Atlantis (DOS) lists all devices, even though it specifies PC
> Speaker, AdLib and MIDI.
>
> I think the problem is in how the SCUMM engine's `customizeGuiOptions()`
> uses `MidiDriver::musicType2GUIO()`. It passes a set of `MDT_` bit flags
> to it, but that function is supposed to convert a single `MT_` value.
>
> Maniac Mansion's `MDT_PCSPK | MDT_PCJR` has the numerical value 5, which
> probably corresponds to the numerical value of `MT_ADLIB`. Fate of
> Atlantis's `MDT_PCSPK | MDT_ADLIB | MDT_MIDI | MDT_PREFER_MT32` doesn't
> correspond to any single `MT_` constant.
>
> But I'm not sure what to make of this. Should we have a new function that
> converts an `MDT_` value to the corresponding `GUIO_` options (plural)?
> Or should we not have to do this at all? I notice that some game entries
> already specify a set of `GUIO_` options for the music drivers they
> support, e.g. the FM Towns version of Fate of Atlantis (which I don't
> own). So maybe we should go through the others and add the appropriate
> `GUIO_` options to them instead?
>
> Either way, we probably have to consider `MDT_PCSPK`, according to its
> comment,  "Maps to MT_PCSPK and MT_PCJR".
>
> Also, we have a `MDT_MACINTOSH` value, but no `MT_MACINTOSH` flag, but
> maybe that's used for something else?

New description:

 This was found while writing a response to
 https://forums.scummvm.org/viewtopic.php?t=17128 so perhaps there are
 further errors lurking here?

 The Game Options dialog is supposed to show the relevant music devices on
 the AUdio tab or, if not specified, all of them. But this is not how it
 behaves for the SCUMM games. Examples:

 Maniac Mansion (DOS v1, v2) list "<default>", "No music", and "AdLib
 emulator", even though it specifies PC Speaker and PCjr.

 Fate of Atlantis (DOS) lists all devices, even though it specifies PC
 Speaker, AdLib and MIDI.

 I think the problem is in how the SCUMM engine's `customizeGuiOptions()`
 uses `MidiDriver::musicType2GUIO()`. It passes a set of `MDT_` bit flags
 to it, but that function is supposed to convert a single `MT_` value.

 Maniac Mansion's `MDT_PCSPK | MDT_PCJR` has the numerical value 5, which
 probably corresponds to the numerical value of `MT_ADLIB`. Fate of
 Atlantis's `MDT_PCSPK | MDT_ADLIB | MDT_MIDI | MDT_PREFER_MT32` doesn't
 correspond to any single `MT_` constant.

 But I'm not sure what to make of this. Should we have a new function that
 converts an `MDT_` value to the corresponding `GUIO_` options (plural)? Or
 should we not have to do this at all? I notice that some game entries
 already specify a set of `GUIO_` options for the music drivers they
 support, e.g. the FM Towns version of Fate of Atlantis (which I don't
 own). So maybe we should go through the others and add the appropriate
 `GUIO_` options to them instead?

 Either way, we probably have to consider `MDT_PCSPK`, according to its
 comment,  "Maps to MT_PCSPK and MT_PCJR".

 Also, we have a `MDT_MACINTOSH` value, but no `MT_MACINTOSH` flag, but
 maybe that's used for something else?

--
-- 
Ticket URL: <https://bugs.scummvm.org/ticket/15143#comment:2>
ScummVM :: Bugs <https://bugs.scummvm.org>
ScummVM


More information about the Scummvm-tracker mailing list