[Scummvm-devel] MT-32 option causing crashes / silent exits in 1.3.0

Florian Kagerer mail at floriankagerer.de
Mon Jun 6 22:27:48 CEST 2011



> -----Ursprüngliche Nachricht-----
> Von: Florian Kagerer [mailto:athrxx at users.sourceforge.net]
> Gesendet: Montag, 6. Juni 2011 22:03
> An: 'scummvm-devel.lists.sourceforge.net devel'
> Betreff: Re: [Scummvm-devel] MT-32 option causing crashes / silent
> exits in 1.3.0
> 
> > -----Ursprüngliche Nachricht-----
> > Von: Max Horn [mailto:max at quendi.de]
> > Gesendet: Montag, 6. Juni 2011 21:22
> > An: Florian Kagerer
> > Cc: 'scummvm-devel.lists.sourceforge.net devel'
> > Betreff: Re: [Scummvm-devel] MT-32 option causing crashes / silent
> > exits in 1.3.0
> >
> >
> > Am 05.06.2011 um 18:47 schrieb Florian Kagerer:
> >
> > > I have now committed an attempt to fix this.
> >
> > Can you explain what it fixes exactly? I mean: If I have the MT-32
> emu
> > selected but it is not available (for whatever reason), what does it
> do
> > now? Will it just silently fallback to something else, or show an
> error
> > dialog or what?
> 
> 

Just for clarification since I am not sure what you mean by "for whatever
reason"
(my fix clearly aims at the rom file issue):

If a user has selected the MT-32 emulator (or any other driver) while that
driver was compiled in
and now tries to run ScummVM with a version that does not have that driver
compiled in

or

if you e.g. have a USB-device that can be switched off and on and you have
selected the device while it was switched on
and now you run ScummVM with that device switched off


you will silently fall back to something else (usually AdLib, depending on
the flags passed to MidiDriver::detectDevice()). I haven't made any change
here.

The 'switching off' thing only applies to devices where the switch off will
result in hardware deinit (e.g USB devices). You will not get any sort of
fallback if you switch off your Mt-32, since I don't think there is a way to
detect that.



Cheers Florian





> If the user doesn't have the necessary rom files the following should
> happen:
> 
> The code will show a warning dialogue if the user has expressly
> selected the
> MT-32 emu. The code will then fall back to something else (usually
> AdLib
> depending on the flags passed to MidiDriver::detectDevice()).
> 
> If the user hasn't expressly selected a specific device, but the MT-32
> emu
> still gets detected first (due to a "default" setting for preferred
> device
> and a "use first available" setting for MT-32 device and a
> MDT_PREFER_MT32
> flag being sent by the engine) the fallback will be silent (like any
> other
> case of detection failure).
> 
> This "first available" setting actually seems to be the source of the
> problem. It was a default setting before the default was changed to
> "Don't
> use MT-32 music". The affected users will now get a silent fallback
> (usually
> AdLib).
> 
> 
> 
> >
> > >
> > > While I did as much testing as possible with certain engines (KYRA,
> > some
> > > SCUMM, some SCI) I might have overlooked something. It would be
> > really neat
> > > if you guys could try this with your own engine/platform (with or
> > without
> > > rom files).
> > >
> > > You want to make sure not to attempt MT-32 detection in your engine
> > if you
> > > don't need one (e.g. for non-DOS versions of games), because this
> > might
> > > trigger unnecessary detection failure warnings.
> > > This is something I noticed (and fixed) in KYRA where you would get
> > notified
> > > about a failed MT-32 detection attempt even when trying to start
> the
> > PC-98
> > > version of the game (which has its own dedicated audio tracks and
> > doesn't
> > > support any sort of MIDI).
> >
> >
> > So, the question now is: What do we do about 1.3.0 resp. 1.3.1 ? Can
> > your changes be safely backported to 1.3.1, or do we need another
> > solution for that??
> 
> 
> 
> It should be safe to backport these changes. The rom file check (via
> the new
> checkDevice() method) is the only big change.
> 
> 
> Cheers,
> 
> Florian
> 
> 
> 
> 
> 
> >
> > Cheers,
> > Max=
> 
> 
> -----------------------------------------------------------------------
> -------
> Simplify data backup and recovery for your virtual environment with
> vRanger.
> Installation's a snap, and flexible recovery options mean your data is
> safe,
> secure and there when you need it. Discover what all the cheering's
> about.
> Get your free trial download today.
> http://p.sf.net/sfu/quest-dev2dev2
> _______________________________________________
> Scummvm-devel mailing list
> Scummvm-devel at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/scummvm-devel





More information about the Scummvm-devel mailing list