diff options
author | negativeExponent | 2020-06-07 15:23:13 +0800 |
---|---|---|
committer | negativeExponent | 2020-06-07 15:29:43 +0800 |
commit | 7dea987c9689c441d8148b9523871f3fbbca2804 (patch) | |
tree | fbf1653225e1f0427a60e74c6c29927623289ee6 /frontend/plugin.c | |
parent | 7eafdc948efb45d0d2b8a03bdbf560786669b1c4 (diff) | |
download | pcsx_rearmed-7dea987c9689c441d8148b9523871f3fbbca2804.tar.gz pcsx_rearmed-7dea987c9689c441d8148b9523871f3fbbca2804.tar.bz2 pcsx_rearmed-7dea987c9689c441d8148b9523871f3fbbca2804.zip |
Add Sony Mouse Controller support
- Tested with Final Doom. Worked great.
Diffstat (limited to 'frontend/plugin.c')
-rw-r--r-- | frontend/plugin.c | 91 |
1 files changed, 54 insertions, 37 deletions
diff --git a/frontend/plugin.c b/frontend/plugin.c index 30b0e08..a617c24 100644 --- a/frontend/plugin.c +++ b/frontend/plugin.c @@ -51,47 +51,64 @@ extern int CALLBACK SPUplayCDDAchannel(short *, int); /* PAD */ static long PADreadPort1(PadDataS *pad) { int pad_index = pad->requestPadIndex; - 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_ANALOGJOY || in_type[pad_index] == PSE_PAD_TYPE_ANALOGPAD || in_type[pad_index] == PSE_PAD_TYPE_NEGCON || in_type[pad_index] == PSE_PAD_TYPE_GUNCON) - { - 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]; - - pad->absoluteX = in_analog_left[pad_index][0]; - pad->absoluteY = in_analog_left[pad_index][1]; - } - return 0; + + 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_ANALOGJOY || in_type[pad_index] == PSE_PAD_TYPE_ANALOGPAD || in_type[pad_index] == PSE_PAD_TYPE_NEGCON || in_type[pad_index] == PSE_PAD_TYPE_GUNCON) + { + 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]; + + pad->absoluteX = in_analog_left[pad_index][0]; + pad->absoluteY = in_analog_left[pad_index][1]; + } + + if (in_type[pad_index] == PSE_PAD_TYPE_MOUSE) + { + pad->moveX = in_mouse[pad_index][0]; + pad->moveY = in_mouse[pad_index][1]; + } + + return 0; } static long PADreadPort2(PadDataS *pad) { int pad_index = pad->requestPadIndex; - - 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_ANALOGJOY || in_type[pad_index] == PSE_PAD_TYPE_ANALOGPAD || in_type[pad_index] == PSE_PAD_TYPE_NEGCON || in_type[pad_index] == PSE_PAD_TYPE_GUNCON) - { - 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]; - - pad->absoluteX = in_analog_left[pad_index][0]; - pad->absoluteY = in_analog_left[pad_index][1]; - } - return 0; + + 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_ANALOGJOY || in_type[pad_index] == PSE_PAD_TYPE_ANALOGPAD || in_type[pad_index] == PSE_PAD_TYPE_NEGCON || in_type[pad_index] == PSE_PAD_TYPE_GUNCON) + { + 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]; + + pad->absoluteX = in_analog_left[pad_index][0]; + pad->absoluteY = in_analog_left[pad_index][1]; + } + + if (in_type[pad_index] == PSE_PAD_TYPE_MOUSE) + { + pad->moveX = in_mouse[pad_index][0]; + pad->moveY = in_mouse[pad_index][1]; + } + + return 0; } /* GPU */ |