X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?p=mupen64plus-pandora.git;a=blobdiff_plain;f=source%2Fmupen64plus-core%2Fsrc%2Fmemory%2Fdma.c;h=4e08878cc118f64993b43444b30334f9f7277c55;hp=8d606d40e4d430f704ea99055ea42adabab1ee54;hb=2d26287291331f2b1793a8e76ede08c75654fb7c;hpb=01d8ca6fb06a8261602900cab63c61e5a1b143c9 diff --git a/source/mupen64plus-core/src/memory/dma.c b/source/mupen64plus-core/src/memory/dma.c index 8d606d4..4e08878 100644 --- a/source/mupen64plus-core/src/memory/dma.c +++ b/source/mupen64plus-core/src/memory/dma.c @@ -45,6 +45,7 @@ #include "main/util.h" static unsigned char sram[0x8000]; +int delay_si = 0; static char *get_sram_path(void) { @@ -354,7 +355,14 @@ void dma_si_write(void) update_pif_write(); update_count(); - add_interupt_event(SI_INT, /*0x100*/0x900); + + if (delay_si) { + add_interupt_event(SI_INT, /*0x100*/0x900); + } else { + MI_register.mi_intr_reg |= 0x02; // SI + si_register.si_stat |= 0x1000; // INTERRUPT + check_interupt(); + } } void dma_si_read(void) @@ -375,6 +383,13 @@ void dma_si_read(void) } update_count(); - add_interupt_event(SI_INT, /*0x100*/0x900); + + if (delay_si) { + add_interupt_event(SI_INT, /*0x100*/0x900); + } else { + MI_register.mi_intr_reg |= 0x02; // SI + si_register.si_stat |= 0x1000; // INTERRUPT + check_interupt(); + } }