VFansss / mgs2-v-s-fix

Unofficial fix for PC version of Metal Gear Solid 2
Other
564 stars 23 forks source link

Nintendo Switch/Wii U Pro Controller support #173

Open smeep0 opened 3 years ago

smeep0 commented 3 years ago

I see support for both Xbox, DualShock, and Steam Controllers, but none for the Nintendo Switch/Wii U Pro Controller. It would be nice to map aiming with the gyro controls, for instance, as well as take into account the (non-analog) triggers.

HandsomeBum commented 3 years ago

I used Better Joy to use a Switch Pro controller on PC. With Better Joy it emulates an Xbox 360 controller. It worked perfectly with MGS2 when I tested it. The rumble worked and I was able to use the triggers like they were analog triggers which meant I could unequip weapons and switch to other weapons despite having no analog triggers. The only reason I could see there being an option in the menu for Switch controllers is to give Switch controllers built in native support and have gyro aiming.

smeep0 commented 3 years ago

I personally use WiinUPro as it basically makes Windows automatically recognize my Wii U and Switch Pro controllers via blootooth and turns them into XInput controllers too. The only problem I have is that that I wish I could remap the XInput button assignment since the A button = A on XInput (which also happens to be the Confirm button on both), but the button placement on the pad is different. However doing a 1:1 mapping based on button arrangement also remaps the Confirm button to B, which is still wrong.

But yes, appart from having built-in native support for a more suitable button layout, gyro aiming would definitely be a big plus, considering how useful it is in MGSV.

VFansss commented 3 years ago

I personally use WiinUPro as it basically makes Windows automatically recognize my Wii U and Switch Pro controllers via blootooth and turns them into XInput controllers too

I didn't know about that, honestly.

Maybe I can add it to fix wiki.

But yes, appart from having built-in native support for a more suitable button layout, gyro aiming would definitely be a big plus, considering how useful it is in MGSV.

This is truly out of scope for what V's Fix should do and (to be honest) what I'm capable to do.

The only problem I have is that that I wish I could remap the XInput button assignment since the A button = A on XInput (which also happens to be the Confirm button on both), but the button placement on the pad is different. However doing a 1:1 mapping based on button arrangement also remaps the Confirm button to B, which is still wrong.

I'm not understanding this question: if the software make your gamepad like a xinput gamepad, the Xbox A button (the one on the bottom) should act as A button even if you press the B button (the one at the bottom) on the switch/pro controller.

If so, everything is work as intented.

A button remapper is not a good idea for various reasons, and it will only make the "input" fixes even more convoluted and for sure is not worth the investment.

smeep0 commented 3 years ago

The only problem I have is that that I wish I could remap the XInput button assignment since the A button = A on XInput (which also happens to be the Confirm button on both), but the button placement on the pad is different. However doing a 1:1 mapping based on button arrangement also remaps the Confirm button to B, which is still wrong.

I'm not understanding this question: if the software make your gamepad like a xinput gamepad, the Xbox A button (the one on the bottom) should act as A button even if you press the B button (the one at the bottom) on the switch/pro controller.

If so, everything is work as intented.

Nope. If you actually look at a Switch/Wii U Pro Controller, you'll actually notice that X & Y/ A & B positions are swapped, so it's actually Y & X/ B & A. (The leftmost face button is Y, the topmost is X, the rightmost button is A, which is confirm, and the bottom button is B.)

Xbox

   Y
X    B
   A

Nintendo

   X
Y    A
   B

Crouch and the Confirm button are the same when it's suppose to be Jab and Confirm. (The B button should be used for Crouch/Cancel, Y should be the Aim button, and X is the Action button, and A is Reload/Confim.)

Only the main face button actions need to be swapped so that X/Y and A/B are changed, with the Confirm/Cancel buttons still remaining A/B respectively.

smeep0 commented 3 years ago

I'm not understanding this question: if the software make your gamepad like a xinput gamepad, the Xbox A button (the one on the bottom) should act as A button even if you press the B button (the one at the bottom) on the switch/pro controller.

So as I mentioned above, the Nintendo Pro controllers layout closely resemble the Super Nintendo's, i.e. Y, X, B, A

A is the defaut Confirm button in the Nintendo standard, with B being Cancel.

The problem with this is that when the Confirm button is tied to the action button, then the regular button arrangement "swaps" the location of the Confirm button to the B/buttom button, which is incorrect.

Based the default controller layout given in the MGS Wiki, the control scheme on the Nintendo Pro controller should be as follows:

Right now, using the Steam or Xbox configuration on the fix uses the Crouch button as Confirm (and Punch is similarly mapped to Cancel), and there's no way to separate the Confirm/Cancel buttons from the action using the V's fix GUI. Steam only allows you to bind buttons but it has no access to remapping the Confirm and Cancel commands.