Allow CPU to write too much data to Mystique ILOAD (and ignore all superfluous
data). Fixes G-Police on Mystique with default Windows 98 SE driver.
This commit is contained in:
parent
bb1f314d9c
commit
feaf6d456c
1 changed files with 4 additions and 7 deletions
|
|
@ -2235,9 +2235,8 @@ static void mystique_accel_iload_write_l(uint32_t addr, uint32_t val, void *p)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DMA_MODE_BLIT:
|
case DMA_MODE_BLIT:
|
||||||
if (!mystique->busy)
|
if (mystique->busy)
|
||||||
fatal("mystique_iload_write_l: !busy\n");
|
blit_iload_write(mystique, val, 32);
|
||||||
blit_iload_write(mystique, val, 32);
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
|
@ -2470,10 +2469,8 @@ static void run_dma(mystique_t *mystique)
|
||||||
// pclog(" DMA_MODE_BLIT %08x %08x %08x %08x\n", mystique->dma.secaddress & DMA_ADDR_MASK, mystique->dma.secend & DMA_ADDR_MASK, mystique->dwgreg.dwgctrl_running, mystique->maccess_running);
|
// pclog(" DMA_MODE_BLIT %08x %08x %08x %08x\n", mystique->dma.secaddress & DMA_ADDR_MASK, mystique->dma.secend & DMA_ADDR_MASK, mystique->dwgreg.dwgctrl_running, mystique->maccess_running);
|
||||||
mystique->dma.secaddress += 4;
|
mystique->dma.secaddress += 4;
|
||||||
|
|
||||||
if (!mystique->busy)
|
if (mystique->busy)
|
||||||
fatal("mystique_iload_write_l: !busy\n");
|
blit_iload_write(mystique, val, 32);
|
||||||
|
|
||||||
blit_iload_write(mystique, val, 32);
|
|
||||||
|
|
||||||
words_transferred++;
|
words_transferred++;
|
||||||
if ((mystique->dma.secaddress & DMA_ADDR_MASK) == (mystique->dma.secend & DMA_ADDR_MASK))
|
if ((mystique->dma.secaddress & DMA_ADDR_MASK) == (mystique->dma.secend & DMA_ADDR_MASK))
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue