diff -r c5ba4b3c459f backends/midi/camd.cpp
a
|
b
|
|
29 | 29 | #include "common/textconsole.h" |
30 | 30 | #include "common/error.h" |
31 | 31 | #include "common/endian.h" |
| 32 | #include "common/system.h" |
32 | 33 | #include "common/util.h" |
33 | 34 | #include "audio/musicplugin.h" |
34 | 35 | #include "audio/mpu401.h" |
… |
… |
|
119 | 120 | } |
120 | 121 | |
121 | 122 | ULONG data = READ_LE_UINT32(&b); |
| 123 | // FIXME: Due to a hardware bug in early MT-32 devices Notes/Sysexes |
| 124 | // need to be sent with a delay of 40 ms between every message. |
| 125 | // (At least that's what Wikipedia states.) |
| 126 | // It works if i set an extra delay of 1(!) ms right before every data transmission |
| 127 | // which makes me think such a delay is already somewhere in the source but just |
| 128 | // not enough to make my problem go away - hence the 1 ms delay i need to add. |
| 129 | // |
| 130 | // This fixes bug #2016549 DOTT: MIDI stuck after exploding cigar |
| 131 | g_system->delayMillis(1); |
122 | 132 | _ICamd->PutMidi(_midi_link, data); |
123 | 133 | } |
124 | 134 | |