summaryrefslogtreecommitdiff
blob: b83fbd4717855b64b34825c024bcd8fdbd3a0473 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
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