diff options
| author | 2026-04-08 16:28:13 +0100 | |
|---|---|---|
| committer | 2026-04-08 11:28:13 -0400 | |
| commit | 6896ef4f47a1efeea9091c01685be9b1e1f4e205 (patch) | |
| tree | d843ecc3c02f18635a347311de1b1d277a1be007 | |
| parent | d37f08ccf50ac4198f80c4e4ba1bb96f666b2bd0 (diff) | |
esqpanel.cpp: don't send certain commands to the display. (#15188)
Keyboard Calibration and Light Status commands are already handled
in the `esqpanel` class, don't send them to the display which will
just have to ignore them.
| -rw-r--r-- | src/mame/ensoniq/esqpanel.cpp | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/src/mame/ensoniq/esqpanel.cpp b/src/mame/ensoniq/esqpanel.cpp index 8ebc4bfd477..3412653d9c2 100644 --- a/src/mame/ensoniq/esqpanel.cpp +++ b/src/mame/ensoniq/esqpanel.cpp @@ -508,11 +508,16 @@ void esqpanel_device::rcv_complete() // Rx completed receiving byte // if (data >= 0xe0) LOG("Got %02x from motherboard (second %s)\n", data, m_expect_calibration_second_byte ? "yes" : "no"); - send_to_display(data); + // Set this to `true` to prevent this byte to be sent to the display. + // This lets us avoid sending keyboard calibration and light related + // commands that the display just has to ignore anyway. + bool skip_display = false; + m_external_panel_server->send_to_all(data); if (m_expect_calibration_second_byte) { + skip_display = true; // LOG("second byte is %02x\n", data); if (data == 0xfd) // calibration request { @@ -523,6 +528,8 @@ void esqpanel_device::rcv_complete() // Rx completed receiving byte } else if (m_expect_light_second_byte) { + skip_display = true; + // Lights on the Buttons, on the VFX-SD: // Number Button // 0 1-6 @@ -552,10 +559,12 @@ void esqpanel_device::rcv_complete() // Rx completed receiving byte } else if (data == 0xfb) // request calibration { + skip_display = true; m_expect_calibration_second_byte = true; } else if (data == 0xff) // button light state command { + skip_display = true; m_expect_light_second_byte = true; } else @@ -578,6 +587,12 @@ void esqpanel_device::rcv_complete() // Rx completed receiving byte } } } + + // If this was not inhibited, send this to the display as well. + if (!skip_display) + { + send_to_display(data); + } } void esqpanel_device::tra_complete() // Tx completed sending byte |
