[mupen64plus-core] 229/310: Revert implementation of DMA busy bit

Sven Eckelmann ecsv-guest at moszumanska.debian.org
Thu Nov 26 05:58:05 UTC 2015


This is an automated email from the git hooks/post-receive script.

ecsv-guest pushed a commit to branch armhf_test
in repository mupen64plus-core.

commit 665b0c50d6363c0645a2a2e914d4de035767f8bd
Author: Sven Eckelmann <sven at narfation.org>
Date:   Mon Jul 1 14:09:35 2013 +0200

    Revert implementation of DMA busy bit
    
    The implementation of the SI regiser DMA busy bit caused regressions in
    other programs/roms. The message spam caused in commercial games can be
    tolerated until the cause of the regression is better understood.
---
 debian/changelog                         |  1 +
 debian/patches/disable_si_dma_busy.patch | 44 ++++++++++++++++++++++++++++++++
 debian/patches/series                    |  1 +
 3 files changed, 46 insertions(+)

diff --git a/debian/changelog b/debian/changelog
index cb9cc8e..a7c94e2 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -3,6 +3,7 @@ mupen64plus-core (2.0~rc3+3+5d46baa3dd76-3) UNRELEASED; urgency=low
   * debian/patches:
     - Add multiple_main.patch, Fix multiple definitions of main in same
       namespace
+    - Add disable_si_dma_busy.patch, Revert implementation of DMA busy bit
   * debian/control:
     - Build-Depend on debhelper 9.20130604 for support of parameters when
       detecting targets in dh_auto_*
diff --git a/debian/patches/disable_si_dma_busy.patch b/debian/patches/disable_si_dma_busy.patch
new file mode 100644
index 0000000..7155594
--- /dev/null
+++ b/debian/patches/disable_si_dma_busy.patch
@@ -0,0 +1,44 @@
+Description: Revert implementation of DMA busy bit
+ The implementation of the SI regiser DMA busy bit caused regressions in
+ other programs/roms. The message spam caused in commercial games can be
+ tolerated until the cause of the regression is better understood.
+Author: Sven Eckelmann <sven at narfation.org>
+
+---
+diff --git a/src/memory/dma.c b/src/memory/dma.c
+index 7d23b0007e8e1f8bf8d46d20f2e3bf170928b50c..8d606d40e4d430f704ea99055ea42adabab1ee54 100644
+--- a/src/memory/dma.c
++++ b/src/memory/dma.c
+@@ -353,10 +353,6 @@ void dma_si_write(void)
+     }
+ 
+     update_pif_write();
+-
+-    // TODO: under what circumstances should bits 1 or 3 be set?
+-    si_register.si_stat |= 1;
+-
+     update_count();
+     add_interupt_event(SI_INT, /*0x100*/0x900);
+ }
+@@ -378,9 +374,6 @@ void dma_si_read(void)
+         rdram[si_register.si_dram_addr/4+i] = sl(PIF_RAM[i]);
+     }
+ 
+-    // TODO: under what circumstances should bits 1 or 3 be set?
+-    si_register.si_stat |= 1;
+-
+     update_count();
+     add_interupt_event(SI_INT, /*0x100*/0x900);
+ }
+diff --git a/src/r4300/interupt.c b/src/r4300/interupt.c
+index f44da5b995bb11cbdeda08a0e0c0e5d5c345df52..32255597cdd54dc65b8cc5eb68e94b3f50be7a67 100644
+--- a/src/r4300/interupt.c
++++ b/src/r4300/interupt.c
+@@ -445,7 +445,6 @@ void gen_interupt(void)
+             remove_interupt_event();
+             MI_register.mi_intr_reg |= 0x02;
+             si_register.si_stat |= 0x1000;
+-            si_register.si_stat &= ~0x1;
+             if (MI_register.mi_intr_reg & MI_register.mi_intr_mask_reg)
+                 Cause = (Cause | 0x400) & 0xFFFFFF83;
+             else
diff --git a/debian/patches/series b/debian/patches/series
index 808a129..6257513 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -7,3 +7,4 @@ sdl2_keyrepeat.patch
 sdl2_joystick_events.patch
 sdl2_keysym.patch
 multiple_main.patch
+disable_si_dma_busy.patch

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-games/mupen64plus-core.git



More information about the Pkg-games-commits mailing list