diff options
author | R. Belmont <rb6502@users.noreply.github.com> | 2014-10-13 20:04:05 +0000 |
---|---|---|
committer | R. Belmont <rb6502@users.noreply.github.com> | 2014-10-13 20:04:05 +0000 |
commit | f38b72ea7d21405eabb51cdf53fc31296c558e3a (patch) | |
tree | 9e3c2e1450fee65a7b2fa2dacc3e26d3196ddd5f | |
parent | 852b2e8345ba9d72283625b1b05720ebd0251fb0 (diff) |
(MESS) osdcore: reject invalid MIDI bytes with no status, fixes most 6850-based MIDI setups. [R. Belmont]
-rw-r--r-- | src/osd/osdcore.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/osd/osdcore.c b/src/osd/osdcore.c index e965272052e..8207595d158 100644 --- a/src/osd/osdcore.c +++ b/src/osd/osdcore.c @@ -470,6 +470,13 @@ void osd_write_midi_channel(osd_midi_device *dev, UINT8 data) // printf("write: %02x (%d)\n", data, dev->xmit_cnt); + // reject data bytes when no valid status exists + if ((dev->last_status == 0) && !(data & 0x80)) + { + dev->xmit_cnt = 0; + return; + } + if (dev->xmit_cnt >= 4) { printf("MIDI out: packet assembly overflow, contact MAMEdev!\n"); |