diff options
author | Angelo Salese <angelosa@users.noreply.github.com> | 2013-02-12 16:36:21 +0000 |
---|---|---|
committer | Angelo Salese <angelosa@users.noreply.github.com> | 2013-02-12 16:36:21 +0000 |
commit | 582c5cc552a5a6da25d247eab473594acfbd64b1 (patch) | |
tree | 2a8eb666cbb18fb55c494a34a431ee618054edf2 /src/mame/drivers/saturn.c | |
parent | 64cdd0bf7676e6ae4e399f4c35c06003571bd779 (diff) |
Time to fix Game Basic / World Cup 98 Illegal DMA attempt
Diffstat (limited to 'src/mame/drivers/saturn.c')
-rw-r--r-- | src/mame/drivers/saturn.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/mame/drivers/saturn.c b/src/mame/drivers/saturn.c index bf2feefe2e4..c29473201f8 100644 --- a/src/mame/drivers/saturn.c +++ b/src/mame/drivers/saturn.c @@ -459,9 +459,16 @@ void saturn_state::scu_dma_direct(address_space &space, UINT8 dma_ch) if(LOG_SCU) printf("Start Add %04x Destination Add %04x\n",m_scu.src_add[dma_ch],m_scu.dst_add[dma_ch]); } - /* TODO: Game Basic trips this, bogus transfer from BIOS area to VDP1? */ + /* TODO: Game Basic and World Cup 98 trips this, according to the docs the SCU can't transfer from BIOS area (can't communicate from/to that bus) */ if(BIOS_BUS(m_scu.src[dma_ch])) + { popmessage("Warning: SCU transfer from BIOS area, contact MAMEdev"); + if(!(m_scu.ism & IRQ_DMAILL)) + m_maincpu->set_input_line_and_vector(3, HOLD_LINE, 0x4c); + else + m_scu.ist |= (IRQ_DMAILL); + return; + } DnMV_1(dma_ch); |