What exactly triggers the problem is not clear - it seemed to often run the demos okay, but fail fairly consistently when playing for real. But the actual problem, when it occurs, is clear enough. PrBoom gets stuck with the audio thread trying to open /dev/sequencer; and, for some reason, it is stuck in the kernel trying to get a handle to the MIDI sequencer device. Since most systems don't come with a MIDI synth chip these days, I suspect it's actually the ALSA sequencer emulation that is being invoked. I think it's ALSA, or the kernel, that is actually at fault.
Anyway, the problem is easily worked-around by either:
- Disabling music — run with -nomusic or set
music_cardto 0 inprboom.cfg(if you have PrBoom installed, you can doman prboom.cfgto get the documentation on the config file). - Install Timidity and a patch set. If
/etc/timidity/timidity.cfgis present, PrBoom (actually SDL_mixer) will use SDL_mixer's MIDI synth instead of looking for hardware MIDI.
Update: Fraggle points out that the EAWPATS patch set is available from the idgames archive and is a big improvement on freepats.
EAWPATS is much closer to the old timidity-patches, but they are clearly distinguishable - the music for "The Pit" shows the difference most clearly, as EAWPATS has the melody line for the first half in what I think is a harpsichord tone, where timidity-patches does not (because it doesn't have a harpsichord patch, instead reusing one of the other piano types). Also the relative instrument volumes (which seems to be the biggest problem with rendering old MIDIs ‒ background instruments played too loud and drowning out the foreground ones) are different. EAWPATS seems better overall.
0 comments:
Post a Comment