summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'games-emulation/mupen64-glN64/files/mupen64-glN64-ucode.patch')
-rw-r--r--games-emulation/mupen64-glN64/files/mupen64-glN64-ucode.patch121
1 files changed, 121 insertions, 0 deletions
diff --git a/games-emulation/mupen64-glN64/files/mupen64-glN64-ucode.patch b/games-emulation/mupen64-glN64/files/mupen64-glN64-ucode.patch
new file mode 100644
index 000000000000..b83fbd471785
--- /dev/null
+++ b/games-emulation/mupen64-glN64/files/mupen64-glN64-ucode.patch
@@ -0,0 +1,121 @@
+diff -g glN64-0.4.1-rc2-old/GBI.cpp glN64-0.4.1-rc2/GBI.cpp
+*** glN64-0.4.1-rc2-old/GBI.cpp 2003-10-15 16:01:07.000000000 -0700
+--- glN64-0.4.1-rc2/GBI.cpp 2005-02-02 23:42:30.000000000 -0800
+***************
+*** 37,43 ****
+ { F3DDKR, FALSE, 0x8d91244f, "Diddy Kong Racing" },
+ { F3DDKR, FALSE, 0x6e6fc893, "Diddy Kong Racing" },
+ { F3DDKR, FALSE, 0xbde9d1fb, "Jet Force Gemini" },
+! { F3DPD, FALSE, 0x1c4f7869, "Perfect Dark" }
+ };
+
+ u32 G_RDPHALF_1, G_RDPHALF_2, G_RDPHALF_CONT;
+--- 37,44 ----
+ { F3DDKR, FALSE, 0x8d91244f, "Diddy Kong Racing" },
+ { F3DDKR, FALSE, 0x6e6fc893, "Diddy Kong Racing" },
+ { F3DDKR, FALSE, 0xbde9d1fb, "Jet Force Gemini" },
+! { F3DPD, FALSE, 0x1c4f7869, "Perfect Dark" },
+! { F3DEX, FALSE, 0x0ace4c3f, "Mario Kart" }
+ };
+
+ u32 G_RDPHALF_1, G_RDPHALF_2, G_RDPHALF_CONT;
+***************
+*** 264,274 ****
+
+ while (selectedMicrocode == -1)
+ {
+! // if( gtk_main_iteration() )
+! // break;
+ usleep( 10000 );
+ }
+ gdk_threads_leave();
+ return selectedMicrocode;
+ }
+ #endif // __LINUX__
+--- 265,276 ----
+
+ while (selectedMicrocode == -1)
+ {
+! if( gtk_main_iteration() )
+! break;
+ usleep( 10000 );
+ }
+ gdk_threads_leave();
++
+ return selectedMicrocode;
+ }
+ #endif // __LINUX__
+***************
+*** 435,441 ****
+ current->type = DialogBox( hInstance, MAKEINTRESOURCE( IDD_MICROCODEDLG ), hWnd, MicrocodeDlgProc );
+ #else // !__LINUX__
+ printf( "glN64: Warning - unknown ucode!!!\n" );
+! current->type = MicrocodeDialog();
+ #endif // __LINUX__
+ return current;
+ }
+--- 437,447 ----
+ current->type = DialogBox( hInstance, MAKEINTRESOURCE( IDD_MICROCODEDLG ), hWnd, MicrocodeDlgProc );
+ #else // !__LINUX__
+ printf( "glN64: Warning - unknown ucode!!!\n" );
+! if(last_good_ucode != -1) {
+! current->type=last_good_ucode;
+! } else {
+! current->type = MicrocodeDialog();
+! }
+ #endif // __LINUX__
+ return current;
+ }
+diff -g glN64-0.4.1-rc2-old/GBI.h glN64-0.4.1-rc2/GBI.h
+*** glN64-0.4.1-rc2-old/GBI.h 2003-10-15 16:01:07.000000000 -0700
+--- glN64-0.4.1-rc2/GBI.h 2005-02-02 23:37:36.000000000 -0800
+***************
+*** 736,741 ****
+--- 736,742 ----
+
+ void GBI_MakeCurrent( MicrocodeInfo *current );
+ MicrocodeInfo *GBI_DetectMicrocode( u32 uc_start, u32 uc_dstart, u16 uc_dsize );
++ extern u32 last_good_ucode;
+ void GBI_Init();
+ void GBI_Destroy();
+
+diff -g glN64-0.4.1-rc2-old/glN64.cpp glN64-0.4.1-rc2/glN64.cpp
+*** glN64-0.4.1-rc2-old/glN64.cpp 2003-10-15 16:09:00.000000000 -0700
+--- glN64-0.4.1-rc2/glN64.cpp 2005-02-02 23:36:47.000000000 -0800
+***************
+*** 29,35 ****
+
+ char pluginName[] = "glN64 v0.4.1-rc2";
+ char *screenDirectory;
+!
+ void (*CheckInterrupts)( void );
+
+ #ifndef __LINUX__
+--- 29,35 ----
+
+ char pluginName[] = "glN64 v0.4.1-rc2";
+ char *screenDirectory;
+! u32 last_good_ucode = -1;
+ void (*CheckInterrupts)( void );
+
+ #ifndef __LINUX__
+diff -g glN64-0.4.1-rc2-old/gSP.cpp glN64-0.4.1-rc2/gSP.cpp
+*** glN64-0.4.1-rc2-old/gSP.cpp 2003-10-15 16:01:07.000000000 -0700
+--- glN64-0.4.1-rc2/gSP.cpp 2005-02-02 23:41:58.000000000 -0800
+***************
+*** 60,66 ****
+ }
+
+ MicrocodeInfo *ucode = GBI_DetectMicrocode( uc_start, uc_dstart, uc_dsize );
+!
+ if (ucode->type != NONE)
+ GBI_MakeCurrent( ucode );
+ else
+--- 60,66 ----
+ }
+
+ MicrocodeInfo *ucode = GBI_DetectMicrocode( uc_start, uc_dstart, uc_dsize );
+! if (ucode->type != -1) last_good_ucode = ucode->type;
+ if (ucode->type != NONE)
+ GBI_MakeCurrent( ucode );
+ else