diff options
author | Twinaphex | 2016-06-18 19:15:13 +0200 |
---|---|---|
committer | GitHub | 2016-06-18 19:15:13 +0200 |
commit | 10ed51a07184f5235e1c85cd9995aaa1481e0dca (patch) | |
tree | f973933600949b9c5e4bc63f63bc2df075c08a33 /libpcsxcore/plugins.c | |
parent | 05311a18fb23799776f9552614ef4c5fb5d852fa (diff) | |
parent | 73d32d69496795050589cb845ddbd1a074ca3955 (diff) | |
download | pcsx_rearmed-10ed51a07184f5235e1c85cd9995aaa1481e0dca.tar.gz pcsx_rearmed-10ed51a07184f5235e1c85cd9995aaa1481e0dca.tar.bz2 pcsx_rearmed-10ed51a07184f5235e1c85cd9995aaa1481e0dca.zip |
Merge pull request #47 from alexis-puska/master
Suppress segmentation fault and crazy integer value.
Diffstat (limited to 'libpcsxcore/plugins.c')
-rw-r--r-- | libpcsxcore/plugins.c | 34 |
1 files changed, 20 insertions, 14 deletions
diff --git a/libpcsxcore/plugins.c b/libpcsxcore/plugins.c index 8d3a00e..c9ccd2a 100644 --- a/libpcsxcore/plugins.c +++ b/libpcsxcore/plugins.c @@ -205,7 +205,7 @@ void CALLBACK GPU__vBlank(int val) {} #define LoadGpuSym1(dest, name) \
LoadSym(GPU_##dest, GPU##dest, name, TRUE);
-
+ #define LoadGpuSym0(dest, name) \
LoadSym(GPU_##dest, GPU##dest, name, FALSE); \
if (GPU_##dest == NULL) GPU_##dest = (GPU##dest) GPU__##dest;
@@ -371,7 +371,7 @@ void *hPAD2Driver = NULL; static int multitap1 = -1;
static int multitap2 = -1;
-static unsigned char buf[512];
+static unsigned char buf[256];
unsigned char stdpar[10] = { 0x00, 0x41, 0x5a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff };
unsigned char mousepar[8] = { 0x00, 0x12, 0x5a, 0xff, 0xff, 0xff, 0xff };
unsigned char analogpar[9] = { 0x00, 0xff, 0x5a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff };
@@ -521,22 +521,25 @@ unsigned char CALLBACK PAD1__startPoll(int pad) { // first call the pad provide if a multitap is connected between the psx and himself
if(multitap1 == -1)
{
- PadDataS padd;
- PAD1_readPort1(&padd, 0);
+ PadDataS padd; + padd.requestPadIndex = 0;
+ PAD1_readPort1(&padd);
multitap1 = padd.portMultitap;
}
// just one pad is on port 1 : NO MULTITAP
if (multitap1 == 0)
{
- PadDataS padd;
- PAD1_readPort1(&padd, 0);
+ PadDataS padd; + padd.requestPadIndex = 0;
+ PAD1_readPort1(&padd);
return _PADstartPoll(&padd);
} else {
// a multitap is plugged : refresh all pad.
int i=0;
PadDataS padd[4];
- for(i = 0; i < 4; i++) {
- PAD1_readPort1(&padd[i], i);
+ for(i = 0; i < 4; i++) { + padd[i].requestPadIndex = i;
+ PAD1_readPort1(&padd[i]);
}
return _PADstartPollMultitap(padd);
}
@@ -609,22 +612,25 @@ unsigned char CALLBACK PAD2__startPoll(int pad) { }
//first call the pad provide if a multitap is connected between the psx and himself
if(multitap2 == -1){
- PadDataS padd;
- PAD2_readPort2(&padd,pad_index);
+ PadDataS padd; + padd.requestPadIndex = pad_index;
+ PAD2_readPort2(&padd);
multitap2 = padd.portMultitap;
}
// just one pad is on port 2 : NO MULTITAP
if (multitap2 == 0){
- PadDataS padd;
- PAD2_readPort2(&padd,pad_index);
+ PadDataS padd; + padd.requestPadIndex = pad_index;
+ PAD2_readPort2(&padd);
return _PADstartPoll(&padd);
}else{
//a multitap is plugged : refresh all pad.
int i=0;
PadDataS padd[4];
- for(i=0;i<4;i++){
- PAD2_readPort2(&padd[i],i+pad_index);
+ for(i=0;i<4;i++){ + padd[i].requestPadIndex = i+pad_index;
+ PAD2_readPort2(&padd[i]);
}
return _PADstartPollMultitap(padd);
}
|