fortheusers / hb-appstore

Homebrew App Store - GUI for downloading/managing homebrew apps
https://hb-app.store
GNU General Public License v3.0
1.02k stars 60 forks source link

Better Wii Remote controller support #112

Open TCAtrevor opened 6 months ago

TCAtrevor commented 6 months ago

Is your feature request related to a problem? Please describe. Navigating the app store with a Wii Remote is very barebones in functionality currently. Button prompts are incorrect and some of them have no clear mapping to the standard buttons of the controller. There is no pointer that can be used to select options either.

Describe the solution you'd like Implementation of a pointer and changed button prompt icons when a Wii Remote is in use would be very ideal. For total sanity, it should also be possible to make some use of the Nunchuk and Classic Controller, if those don't already work.

Platform: Wii U

vgmoose commented 6 months ago

100% agree. I have some wiimotes to test with and use to add proper support. I think a good way to add this functionality is through treating the Wii pointer like a mouse, which would allow it to use the same touch events for clicking and scrolling.

Extra great would be to support an Internet Browser style "Hold B and drag to pan", but I'm not sure how hard that is to do, though. Changing button prompts is also kind of annoying implementation-wise, but for proper support also necessary.

vgmoose commented 3 months ago

Initial changes to support alternative controller types have been added in https://github.com/fortheusers/hb-appstore/commit/b4b3a214163da179cee374cdee07ee9882e52122, as well as having on-hover highlights for cursor events (which will help pointer controls further).

Screen shots of the UI with buttons that have prompts change when the "last button input" is from a wii remote + nunchuk: Screenshot 2024-04-14 at 6 05 09 PM Screenshot 2024-04-14 at 6 05 22 PM Screenshot 2024-04-14 at 6 05 16 PM Screenshot 2024-04-14 at 6 06 15 PM

There's still more work needed on this however to support a single wiimote with no nunchuk. I think there's two approaches:

  1. Only have core functionality mapped to buttons, and "extra" functionality will have to be pressed visually using a sensor bar
  2. Have core functionality on buttons, and the extra functionality mapped to different button combinations

And I'd also like to have the B button scrolling still, which shouldn't be hard to hook up to scroll events, but will need a GUI indicator as well.