[mupen64plus] 147/262: Set aiDacrate during savestate load

Sven Eckelmann ecsv-guest at moszumanska.debian.org
Thu Nov 26 05:59:28 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.

commit f67cee751c7affad1b8502119bebc4f486516f0a
Author: Sven Eckelmann <sven.eckelmann at gmx.de>
Date:   Sat Oct 3 16:51:03 2009 +0200

    Set aiDacrate during savestate load
    
    Without allowing the audio plugin to set the aiDacrate the program will
    start to behave strangely because the audio plugin will work with a
    wrong frequency.
---
 debian/changelog                    |  2 +
 debian/patches/load_aidacrate.patch | 94 +++++++++++++++++++++++++++++++++++++
 debian/patches/series               |  1 +
 3 files changed, 97 insertions(+)

diff --git a/debian/changelog b/debian/changelog
index 95e3ffb..98fbe0f 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -10,6 +10,8 @@ mupen64plus (1.5+dfsg1-6) UNRELEASED; urgency=low
       and 64 bit wide FPR in MIPS I and MIPS III mode
     - Remove load-fpr-location.patch which is replaced by
       correct_fpr32_mapping.patch
+    - Add load_aidacrate.patch, Set aiDacrate during savestate load to fix
+      slowdowns after savestate load
 
  -- Sven Eckelmann <sven.eckelmann at gmx.de>  Sat, 03 Oct 2009 00:36:41 +0200
 
diff --git a/debian/patches/load_aidacrate.patch b/debian/patches/load_aidacrate.patch
new file mode 100644
index 0000000..55cba60
--- /dev/null
+++ b/debian/patches/load_aidacrate.patch
@@ -0,0 +1,94 @@
+Description: Set aiDacrate during savestate load
+ Without allowing the audio plugin to set the aiDacrate the program will start
+ to behave strangely because the audio plugin will work with a wrong frequency.
+Bug: http://code.google.com/p/mupen64plus/issues/detail?id=169
+Author: Sven Eckelmann <sven.eckelmann at gmx.de>
+
+---
+diff --git a/main/savestates.c b/main/savestates.c
+index b6264ece050fd964c83b245b562dfc42c7aa0e8d..016b6ca62493e774931cca6f57e1e5b29e1c2a77 100644
+--- a/main/savestates.c
++++ b/main/savestates.c
+@@ -282,6 +282,7 @@ void savestates_load()
+     gzread(f, &vi_register, sizeof(VI_register));
+     gzread(f, &ri_register, sizeof(RI_register));
+     gzread(f, &ai_register, sizeof(AI_register));
++    update_ai_dacrate(ai_register.ai_dacrate);
+     gzread(f, &dpc_register, sizeof(DPC_register));
+     gzread(f, &dps_register, sizeof(DPS_register));
+     gzread(f, rdram, 0x800000);
+diff --git a/memory/memory.c b/memory/memory.c
+index 68232c9d47d884d9611921e12cce38a03392d031..d423756262cf79bce60fefc4dfbe8c027f01102e 100644
+--- a/memory/memory.c
++++ b/memory/memory.c
+@@ -2778,26 +2778,7 @@ void write_ai()
+       case 0x10:
+     if (ai_register.ai_dacrate != word)
+       {
+-         ai_register.ai_dacrate = word;
+-         switch(ROM_HEADER->Country_code&0xFF)
+-           {
+-        case 0x44:
+-        case 0x46:
+-        case 0x49:
+-        case 0x50:
+-        case 0x53:
+-        case 0x55:
+-        case 0x58:
+-        case 0x59:
+-          aiDacrateChanged(SYSTEM_PAL);
+-          break;
+-        case 0x37:
+-        case 0x41:
+-        case 0x45:
+-        case 0x4a:
+-          aiDacrateChanged(SYSTEM_NTSC);
+-          break;
+-           }
++         update_ai_dacrate(word);
+       }
+     return;
+     break;
+@@ -2805,6 +2786,30 @@ void write_ai()
+    *readai[*address_low] = word;
+ }
+ 
++void update_ai_dacrate(unsigned int word)
++{
++    ai_register.ai_dacrate = word;
++    switch(ROM_HEADER->Country_code&0xFF)
++    {
++    case 0x44:
++    case 0x46:
++    case 0x49:
++    case 0x50:
++    case 0x53:
++    case 0x55:
++    case 0x58:
++    case 0x59:
++        aiDacrateChanged(SYSTEM_PAL);
++        break;
++    case 0x37:
++    case 0x41:
++    case 0x45:
++    case 0x4a:
++        aiDacrateChanged(SYSTEM_NTSC);
++        break;
++    }
++}
++
+ void write_aib()
+ {
+    int temp;
+diff --git a/memory/memory.h b/memory/memory.h
+index 8a914f028061400bf07cb85007b9ec570726c981..e3f5d3359466f90b375d7d662d0d0bb46e2a6d3c 100644
+--- a/memory/memory.h
++++ b/memory/memory.h
+@@ -422,6 +422,7 @@ void write_pifd();
+ 
+ void update_SP();
+ void update_DPC();
++void update_ai_dacrate(unsigned int word);
+ 
+ #endif
+ 
diff --git a/debian/patches/series b/debian/patches/series
index e7484be..e787cb8 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -28,3 +28,4 @@ jttl_fix_romclosed.patch
 rice_nodebug.patch
 interpreter_x86_fldcw.patch
 correct_fpr32_mapping.patch
+load_aidacrate.patch

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



More information about the Pkg-games-commits mailing list