aboutsummaryrefslogtreecommitdiff
path: root/frontend/plugin.c
diff options
context:
space:
mode:
authoralexis-puska2016-05-12 01:45:26 +0200
committercbransden2016-05-13 18:29:58 +0100
commit29f3675b9b2f24b8a16db73588b8b04d628eabd8 (patch)
tree026cbda2436e123ae3fabb6285e84ee3e753cc70 /frontend/plugin.c
parentace14ab3172ad90809a3cc5e8fe67d5cac9e294b (diff)
downloadpcsx_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.c30
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;
}