summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/saturn.c
diff options
context:
space:
mode:
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
commit582c5cc552a5a6da25d247eab473594acfbd64b1 (patch)
tree2a8eb666cbb18fb55c494a34a431ee618054edf2 /src/mame/drivers/saturn.c
parent64cdd0bf7676e6ae4e399f4c35c06003571bd779 (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.c9
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);