diff options
author | alexis-puska | 2016-05-12 01:45:26 +0200 |
---|---|---|
committer | cbransden | 2016-05-13 18:29:58 +0100 |
commit | 29f3675b9b2f24b8a16db73588b8b04d628eabd8 (patch) | |
tree | 026cbda2436e123ae3fabb6285e84ee3e753cc70 /frontend/plugin.c | |
parent | ace14ab3172ad90809a3cc5e8fe67d5cac9e294b (diff) | |
download | pcsx_rearmed-29f3675b9b2f24b8a16db73588b8b04d628eabd8.tar.gz pcsx_rearmed-29f3675b9b2f24b8a16db73588b8b04d628eabd8.tar.bz2 pcsx_rearmed-29f3675b9b2f24b8a16db73588b8b04d628eabd8.zip |
second implementation of multitap
add game/core option to enabled or disabled multitap.
Test with micro machine V3 and 5 devices, 2 multitap enabled, all
device react good i can’t test the 6 7 8 select player but i can select
8 gamer. The 2 multitap works fine.
i detect a bug, when we change the game pad type to analog, the library
crash, see it next time
Diffstat (limited to 'frontend/plugin.c')
-rw-r--r-- | frontend/plugin.c | 30 |
1 files changed, 19 insertions, 11 deletions
diff --git a/frontend/plugin.c b/frontend/plugin.c index d713452..cf93df8 100644 --- a/frontend/plugin.c +++ b/frontend/plugin.c @@ -49,10 +49,14 @@ extern void CALLBACK SPUasync(unsigned int, unsigned int); extern int CALLBACK SPUplayCDDAchannel(short *, int); /* PAD */ -static long PADreadPort1(PadDataS *pad, int pad_index) -{ +static long PADreadPort1(PadDataS *pad, int pad_index) { pad->controllerType = in_type[pad_index]; pad->buttonStatus = ~in_keystate[pad_index]; + if(multitap1==1){ + pad->portMultitap=1; + }else{ + pad->portMultitap=0; + } if (in_type[pad_index] == PSE_PAD_TYPE_ANALOGPAD || in_type[pad_index] == PSE_PAD_TYPE_NEGCON) { pad->leftJoyX = in_analog_left[pad_index][0]; pad->leftJoyY = in_analog_left[pad_index][1]; @@ -62,15 +66,19 @@ static long PADreadPort1(PadDataS *pad, int pad_index) return 0; } -static long PADreadPort2(PadDataS *pad) -{ - pad->controllerType = in_type[4]; - pad->buttonStatus = ~in_keystate[4]; - if (in_type[4] == PSE_PAD_TYPE_ANALOGPAD || in_type[4] == PSE_PAD_TYPE_NEGCON) { - pad->leftJoyX = in_analog_left[4][0]; - pad->leftJoyY = in_analog_left[4][1]; - pad->rightJoyX = in_analog_right[4][0]; - pad->rightJoyY = in_analog_right[4][1]; +static long PADreadPort2(PadDataS *pad, int pad_index) { + pad->controllerType = in_type[pad_index]; + pad->buttonStatus = ~in_keystate[pad_index]; + if(multitap2==1){ + pad->portMultitap=2; + }else{ + pad->portMultitap=0; + } + if (in_type[pad_index] == PSE_PAD_TYPE_ANALOGPAD || in_type[pad_index] == PSE_PAD_TYPE_NEGCON) { + pad->leftJoyX = in_analog_left[pad_index][0]; + pad->leftJoyY = in_analog_left[pad_index][1]; + pad->rightJoyX = in_analog_right[pad_index][0]; + pad->rightJoyY = in_analog_right[pad_index][1]; } return 0; } |