summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
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
commit3892c598f55586083b653a549afa725efb5107bf (patch)
treef77247f3c64b0c92738aa4270ba4ed635dc524ff
parent169d310d2e9572d208825c787d2e5acefef89974 (diff)
upd7220: work around rainbow windows 1.0 issue (#5845) (nw)
-rw-r--r--src/devices/video/upd7220.cpp14
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;