[mupen64plus-rsp-z64] 65/140: Fix DMA transfer parameter decoding
Sven Eckelmann
ecsv-guest at moszumanska.debian.org
Thu Nov 26 06:05:22 UTC 2015
This is an automated email from the git hooks/post-receive script.
ecsv-guest pushed a commit to branch master
in repository mupen64plus-rsp-z64.
commit b2be45cfdbeee9950a2232ee3fcb28a5c0e1424c
Author: Sven Eckelmann <sven at narfation.org>
Date: Fri Sep 2 11:21:44 2011 +0200
Fix DMA transfer parameter decoding
---
debian/changelog | 2 ++
debian/patches/dma_transfer.patch | 76 +++++++++++++++++++++++++++++++++++++++
debian/patches/series | 1 +
3 files changed, 79 insertions(+)
diff --git a/debian/changelog b/debian/changelog
index 78949ad..06e9b84 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,6 +1,8 @@
mupen64plus-rsp-z64 (1.99.4-4) UNRELEASED; urgency=low
* Don't mix implicit and explicit rules to prevent FTBFS with make 3.82
+ * debian/patches:
+ - Add dma_transfer.patch, Fix DMA transfer parameter decoding
-- Sven Eckelmann <sven at narfation.org> Sun, 21 Aug 2011 17:55:03 +0200
diff --git a/debian/patches/dma_transfer.patch b/debian/patches/dma_transfer.patch
new file mode 100644
index 0000000..eff3b19
--- /dev/null
+++ b/debian/patches/dma_transfer.patch
@@ -0,0 +1,76 @@
+Description: Fix DMA transfer parameter decoding
+Author: casualjames <casual.james at yahoo.es>
+
+---
+diff --git a/src/rsp.cpp b/src/rsp.cpp
+index 669f63b341495663b593c0c429a683cc097f1850..404032aa206b429b62b8bfc40994b4943ce6bdd4 100644
+--- a/src/rsp.cpp
++++ b/src/rsp.cpp
+@@ -2897,9 +2897,13 @@ static void rsp_set_context(void *src)
+ }
+
+
++enum sp_dma_direction
++{
++ SP_DMA_RDRAM_TO_IDMEM,
++ SP_DMA_IDMEM_TO_RDRAM
++};
+
+-
+-static void sp_dma(int direction)
++static void sp_dma(enum sp_dma_direction direction)
+ {
+ UINT8 *src, *dst;
+ int i, j;
+@@ -2908,21 +2912,12 @@ static void sp_dma(int direction)
+ int skip;
+
+
+- INT32 l = sp_dma_length;
+-
+- if (direction)
+- {
+- length = ((l & 0xfff) | 3) + 1;
+- }
+- else
+- {
+- length = ((l & 0xfff) | 7) + 1;
+- }
+-
++ UINT32 l = sp_dma_length;
++ length = ((l & 0xfff) | 7) + 1;
+ skip = (l >> 20) + length;
+ count = ((l >> 12) & 0xff) + 1;
+
+- if (direction == 0) // RDRAM -> I/DMEM
++ if (direction == SP_DMA_RDRAM_TO_IDMEM) // RDRAM -> I/DMEM
+ {
+ //UINT32 src_address = sp_dram_addr & ~7;
+ //UINT32 dst_address = (sp_mem_addr & 0x1000) ? 0x4001000 : 0x4000000;
+@@ -2945,7 +2940,7 @@ static void sp_dma(int direction)
+ *z64_rspinfo.SP_DMA_BUSY_REG = 0;
+ *z64_rspinfo.SP_STATUS_REG &= ~SP_STATUS_DMABUSY;
+ }
+- else // I/DMEM -> RDRAM
++ else if (direction == SP_DMA_IDMEM_TO_RDRAM) // I/DMEM -> RDRAM
+ {
+ //UINT32 dst_address = sp_dram_addr & ~7;
+ //UINT32 src_address = (sp_mem_addr & 0x1000) ? 0x4001000 : 0x4000000;
+@@ -3030,7 +3025,7 @@ void n64_sp_reg_w(UINT32 offset, UINT32 data, UINT32 dummy)
+ // sp_dma_count = (data >> 12) & 0xff;
+ // sp_dma_skip = (data >> 20) & 0xfff;
+ sp_dma_length=data;
+- sp_dma(0);
++ sp_dma(SP_DMA_RDRAM_TO_IDMEM);
+ break;
+
+ case 0x0c/4: // SP_WR_LEN_REG
+@@ -3038,7 +3033,7 @@ void n64_sp_reg_w(UINT32 offset, UINT32 data, UINT32 dummy)
+ // sp_dma_count = (data >> 12) & 0xff;
+ // sp_dma_skip = (data >> 20) & 0xfff;
+ sp_dma_length=data;
+- sp_dma(1);
++ sp_dma(SP_DMA_IDMEM_TO_RDRAM);
+ break;
+
+ case 0x10/4: // SP_STATUS_REG
diff --git a/debian/patches/series b/debian/patches/series
index c753e70..fd94bcb 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1 +1,2 @@
rewrite_makefile.patch
+dma_transfer.patch
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-games/mupen64plus-rsp-z64.git
More information about the Pkg-games-commits
mailing list