upd7220: work around rainbow windows 1.0 issue (#5845) (nw)

This commit is contained in:
cracyc 2019-11-03 16:12:50 -06:00
parent 169d310d2e
commit 3892c598f5

View File

@ -1111,21 +1111,27 @@ void upd7220_device::process_fifo()
uint8_t data; uint8_t data;
int flag; int flag;
uint16_t eff_pitch = m_pitch >> m_figs.m_gd; uint16_t eff_pitch = m_pitch >> m_figs.m_gd;
int cr;
dequeue(&data, &flag); dequeue(&data, &flag);
if (flag == FIFO_COMMAND) if (flag == FIFO_COMMAND)
{
cr = translate_command(data);
if (cr != COMMAND_BCTRL) // workaround for Rainbow 100 Windows 1.03, needs verification
{ {
m_cr = data; m_cr = data;
m_param_ptr = 1; m_param_ptr = 1;
} }
}
else else
{ {
cr = translate_command(m_cr);
m_pr[m_param_ptr] = data; m_pr[m_param_ptr] = data;
m_param_ptr++; m_param_ptr++;
} }
switch (translate_command(m_cr)) switch (cr)
{ {
case COMMAND_INVALID: case COMMAND_INVALID:
logerror("uPD7220 Invalid Command Byte %02x\n", m_cr); logerror("uPD7220 Invalid Command Byte %02x\n", m_cr);
@ -1258,7 +1264,7 @@ void upd7220_device::process_fifo()
break; break;
case COMMAND_BCTRL: /* display blanking control */ case COMMAND_BCTRL: /* display blanking control */
m_de = m_cr & 0x01; m_de = data & 0x01;
//LOG("uPD7220 DE: %u\n", m_de); //LOG("uPD7220 DE: %u\n", m_de);
break; break;