VOGONS


First post, by Scali

User metadata
Rank l33t
Rank
l33t

I have found mention of problems with certain software on early Roland MT-32 models here and there, with the 'Exc. Buffer Overflow' error message.
As far as I understand, this occurs when you use a fast PC, and the software does not put delays between SysEx messages. The early models have slower hardware than the later ones, and require some delay to process certain SysEx messages.

I am creating this thread to create a centralized place to collect information and workarounds.
Some questions I would like to answer include:
- In what software does the problem occur?
- When is a PC 'too fast' for the MT-32? (this might be specific to each game/application)
- Can we work around this issue?

So far I have found mention of Gods and Prince of Persia v1.3 which would have this issue. Also, it would seem that certain later Sierra games have the issue, such as Space Quest I VGA version.

Also, bjt has put a workaround into SoftMPU with the /DELAYSYSEX parameter, which was discussed in this thread: How to prevent buffer overflow with a Rev.0 MT-32
Problem is, that will only work on a 386 or higher. So I want to look into patching games to inject the required delays directly into their MIDI routines.

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/

Reply 1 of 1, by tpowell.ca

User metadata
Rank Member
Rank
Member

To answer that last part, many games basically write (stupidly/blindly) to the MT-32 as quickly as possible. Adding a delay in these games if at all possible may work for some hardware and not others as delay values that work on a fast Pentium era machine could break compatibility with older machines which worked fine without a delay.
Timing is everything, and the data should be buffered and rate limited, which would be very difficult to patch without having game sources.

The most difficult game for me was Wing Commander II. It required me to slow my K6-III way down to 386 levels to get it to not generate the buffer overflows.
SoftMPU with /DELAYSYSEX helps but has its own limitations, and didn't help me with Wing Commander and Dune II.

Interestingly, I had a different issue with X-COM: UFO, where using the General Midi driver worked without the use of SoftMPU (UART mode) but using the MT-32 driver would freeze the game without SoftMPU (needs intelligent mode).

  • Merlin: MS-4144, AMD5x86-160 32MB, 16GB CF, ZIP100, Orpheus, GUS, S3 VirgeGX 2MB
    Tesla: GA-6BXC, VIA C3 Ezra-T, 256MB, 120GB SATA, YMF744, GUSpnp, Quadro2
    Newton: K6XV3+/66, AMD K6-III+500, 256MB, 32GB SSD, AWE32, Voodoo3