[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