diff options
author | cracyc <cracyc@users.noreply.github.com> | 2019-11-03 16:12:50 -0600 |
---|---|---|
committer | cracyc <cracyc@users.noreply.github.com> | 2019-11-03 16:14:24 -0600 |
commit | 3892c598f55586083b653a549afa725efb5107bf (patch) | |
tree | f77247f3c64b0c92738aa4270ba4ed635dc524ff | |
parent | 169d310d2e9572d208825c787d2e5acefef89974 (diff) |
upd7220: work around rainbow windows 1.0 issue (#5845) (nw)
-rw-r--r-- | src/devices/video/upd7220.cpp | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/src/devices/video/upd7220.cpp b/src/devices/video/upd7220.cpp index 235a1a99cf6..d1b8a95e264 100644 --- a/src/devices/video/upd7220.cpp +++ b/src/devices/video/upd7220.cpp @@ -1111,21 +1111,27 @@ void upd7220_device::process_fifo() uint8_t data; int flag; uint16_t eff_pitch = m_pitch >> m_figs.m_gd; + int cr; dequeue(&data, &flag); if (flag == FIFO_COMMAND) { - m_cr = data; - m_param_ptr = 1; + cr = translate_command(data); + if (cr != COMMAND_BCTRL) // workaround for Rainbow 100 Windows 1.03, needs verification + { + m_cr = data; + m_param_ptr = 1; + } } else { + cr = translate_command(m_cr); m_pr[m_param_ptr] = data; m_param_ptr++; } - switch (translate_command(m_cr)) + switch (cr) { case COMMAND_INVALID: logerror("uPD7220 Invalid Command Byte %02x\n", m_cr); @@ -1258,7 +1264,7 @@ void upd7220_device::process_fifo() break; case COMMAND_BCTRL: /* display blanking control */ - m_de = m_cr & 0x01; + m_de = data & 0x01; //LOG("uPD7220 DE: %u\n", m_de); break; |