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
|