summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
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
commitf38b72ea7d21405eabb51cdf53fc31296c558e3a (patch)
tree9e3c2e1450fee65a7b2fa2dacc3e26d3196ddd5f
parent852b2e8345ba9d72283625b1b05720ebd0251fb0 (diff)
(MESS) osdcore: reject invalid MIDI bytes with no status, fixes most 6850-based MIDI setups. [R. Belmont]
-rw-r--r--src/osd/osdcore.c7
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");