Davidobot / BetterJoy

Allows the Nintendo Switch Pro Controller, Joycons and SNES controller to be used with CEMU, Citra, Dolphin, Yuzu and as generic XInput
Other
3.95k stars 348 forks source link

Map Special Buttons IU/UX #546

Open ratijas opened 4 years ago

ratijas commented 4 years ago

Describe the bug

Map Special Buttons window has one of the worst button mapping UI/UX I've ever seen. Here's why:

  1. Special actions like hovering over specific controls are required to figure out what to do. I'm talking about instructions how to clear to default or right-click to see more options. This info isn't unique to every control there, and could've easily fit onto the screen somewhere.
  2. Once input detection is activated, there's no going back. You can't cancel. It will get mapped to Escape, "Left" (Mouse Left Button, I suppose) or whatever user might press by accident.
  3. No single "Reset" button to clear all accidental customizations (see №2).
  4. It might surprise you, but I can't clear any particular customization either. Middle-click to clear? Hold my touchpad! Even though I can customize the hell out of it on Linux, unfortunately on Windows driver vendor was lazy enough to map tree-finger tap to open Windows' Start menu — totally WTF, but it doesn't seem like I have any options here. So, to say, now I need to either find a mouse somewhere, or to find and delete application's config.

Expected behavior

  1. Instruction are given up front. No special mouse hovering should be required.
  2. Ability to cancel input detection.
  3. "Reset All" button.
  4. "Reset" button. I mean, look at my glory Full HD screen — is it really so short on space for extra button per row?
  5. Input detection either should work with controller itself, or it should be separated from controller's button selection. By just looking at that drop-down menu, I can't really tell that it was intended for keyboard actions as well.

Map Special Buttons window

Controller (please complete the following information):

ratijas commented 4 years ago

And boy, do we need to talk about "Okay" vs. "Apply"!

Davidobot commented 4 years ago

The file settings is in quite a simple format.

And boy, do we need to talk about "Okay" vs. "Apply"!

Apply applies the changes without closing the window.

Valid points overall. The implementation is similar to Dolphins, less the timeout on input mapping.

ratijas commented 4 years ago

Oh yeah, Dolphin, right. Number 1 on my worst UI list. No offense to the hard core emulation team, but how even the hell it recognizes my keyboard as 3 input devices, and two more per connected controller? The moment I gave up setting it up was the moment when I took my N3DSXL off the shelf and started playing Xenoblade Chronicles in portable.

Sometimes I wonder, why can't everyone be as simple & easy as Cemu? I used to have least troubles setting up for BotW and Smash 4, even with gyro through the phone app.

The file settings is in quite a simple format.

Yes but no. Imagine telling your customers that they should edit their settings in notepad just because they were so unfortunate that they didn't happen to have a mice. ;-)

Davidobot commented 4 years ago

Imagine telling your customers that they should edit their settings in notepad just because they were so unfortunate that they didn't happen to have a mice. ;-)

That wouldn't be too nice, good thing I'm not selling anything and you're not a customer.

I'd be nice if you could provide solutions to the issues you've listed. For example, how would you solve clearing inputs without middle click? A button next to each mappable that says "clear"? That's cumbersome and clutters up the screen.

The project is open source so you're free to work on it yourself if you have strong opinions about certain aspects of it.

ratijas commented 4 years ago

I'd be nice if you could provide solutions to the issues you've listed. For example, how would you solve clearing inputs without middle click? A button next to each mappable that says "clear"? That's cumbersome and clutters up the screen.

I'd rather go for a little square button with simple red or black cross icon with a "clear" text on hover. Also, "clear to default" is kind of unusual alternative, but okay whatever.

Rest of suggestions were already given in the top post.

The project is open source so you're free to work on it yourself if you have strong opinions about certain aspects of it.

I understand what open source means, sir. And trust me when I say it means a lot to me. Thanks for your time and invaluable contributions. I will consider your proposal.