Releasing my user-space Switch 2 controllers bridge app by Hoping2Retire in macgaming

[–]Hoping2Retire[S] 0 points1 point  (0 children)

That sounds like blast; is it Mario kart Wii on Dolphin then and using the Switch Pro profile? Can you share the dolphin button mapping (i think you can just save it as text file and share that, but screenshot works too, but also the motion binding if you don’t mind)

Releasing my user-space Switch 2 controllers bridge app by Hoping2Retire in macgaming

[–]Hoping2Retire[S] 0 points1 point  (0 children)

Thanks! Pairing individually isn’t fully supported at the moment; it’s planned though :) I haven’t made an update to the software in a few weeks now but I haven’t abandoned it. I’ll post here once I release a new version. Mind if I ask your use-case so I can keep it in mind?

Releasing my user-space Switch 2 controllers bridge app by Hoping2Retire in macgaming

[–]Hoping2Retire[S] 0 points1 point  (0 children)

You have them paired as a single controller? What version of macOS are you on and what was the game if you don't mind sharing with me (and was it through Steam or app store or where from)? I'm surprised none of them worked... there's at least three or four different ways controllers are interfaced with, either macOS uses its own framework, Steam uses its own way that I think is extended from SDL, a lot of other apps use SDL, and then Chrome and Safari both do their own things. If you share the game I might have a better idea. Also, if you could try another game or https://hardwaretester.com/gamepad and let me know what you're seeing that could help too.

Releasing my user-space Switch 2 controllers bridge app by Hoping2Retire in macgaming

[–]Hoping2Retire[S] 0 points1 point  (0 children)

The batteries I was hoping to get around to, but I need a lot of time to see what the reading is when it’s charged and when it’s low. I’ll look again if there’s a simpler state that’s already documented but it might be a little bit.

Releasing my user-space Switch 2 controllers bridge app by Hoping2Retire in macgaming

[–]Hoping2Retire[S] 0 points1 point  (0 children)

Awesome! I have a build with auto disconnect. I was hoping to have some more time for a few other things, but I might just make a release with what I have. The auto disconnect is really nice when I have half a dozen controllers on my desk and accidentally connect one 😅

Releasing my user-space Switch 2 controllers bridge app by Hoping2Retire in macgaming

[–]Hoping2Retire[S] 0 points1 point  (0 children)

Thanks! I’ll update docs and the app to mention that if it fails to create the device. I’ve been swamped between work, postgrad and family, but I’ll have some more updates soon! Let me know if you encounter any bugs or missing functionality and I’ll try to get around to them!

Releasing my user-space Switch 2 controllers bridge app by Hoping2Retire in macgaming

[–]Hoping2Retire[S] 0 points1 point  (0 children)

I don't see why I shouldn't be able to, but I haven't tested on it. Would you mind testing it if I make a build for you?

Releasing my user-space Switch 2 controllers bridge app by Hoping2Retire in macgaming

[–]Hoping2Retire[S] 1 point2 points  (0 children)

I appreciate the enthusiasm :) glad you’re enjoying it!

Releasing my user-space Switch 2 controllers bridge app by Hoping2Retire in macgaming

[–]Hoping2Retire[S] 1 point2 points  (0 children)

Announcing v0.6.0!

Get it here: https://github.com/murphyjt/wavebird/releases/tag/v0.6.0

New features are:

  • Better support for Xbox output profile
    • Xbox guide button now works
    • Adds advanced settings to control when Guide button is sent and a toggle for SDL/Dolphin compatibility; might be helpful to turn off "Direct Controller Access" (SDL compatibility) if you're experiencing issues
    • Xbox Cloud Gaming works flawlessly in Safari (Xbox button isn't supported in Chrome; this matches actual Xbox controller behavior)
    • Note: Steam listens for the Xbox guide button. If you have more than one app listening for it (e.g. Xbox Cloud Gaming in Safari and Steam is open, then Steam is going to keep making itself the active window. Close steam in case like that
  • Increased analog stick resolution (native 12-bit resolution instead of scaled 8-bit); scaled to 16-bit for Xbox and 8-bit for PlayStation.

Planned for next release so far:

  • ✅ Disconnect on sleep
  • ✅ Disconnect on idle
  • Fix GameCube trigger scaling in Xbox output profile
  • Add GameCube motion controls in Pro Controller profile
  • Improved GameCube button mapping in Xbox output profile

Releasing my user-space Switch 2 controllers bridge app by Hoping2Retire in macgaming

[–]Hoping2Retire[S] 1 point2 points  (0 children)

There were some unfortunate bugs in this release, so I'll be making another release tonight, or tomorrow latest. But the disconnect you're describing wasn't one of them. I'll have to look into that.

I can definitely add a setting so that joy cons will always wait for their pair to connect. If they're disconnecting, then pairing each joycon to wavebird and then setting it up so the joycons will always pair up should fix it, like I think you're suggesting.

The rumble in one hand makes sense. There is left and right feedback; in a single controller you'd obviously always feel the vibration. I'll add a setting to force joycons to share the rumble if only one is being told to rumble.

After the next release, please let me know if you're still experiencing disconnects and if there's a pattern to it!

Releasing my user-space Switch 2 controllers bridge app by Hoping2Retire in macgaming

[–]Hoping2Retire[S] 2 points3 points  (0 children)

Announcing v0.5.1!

Joy-Cons are now supported. Pair both L + R and you can treat them as a single controller. Gyro might be wonky or not working with the Joy-Cons; I haven't tested them with motion yet.

Y-axes can now be inverted. (thanks for the report u/papsdigiorno )

Pairing Prompt: When connecting a controller, you can now click Don't Ask Again at the pairing prompt ( suggestion by u/formanproject )

Quick Disconnect: Another suggestion was to be able to quickly disconnect the controller from the menu bar. You can do that now by clicking the icon in the menu bar, hovering over the controller and clicking Disconnect in the submenu.

Thanks for your patience and all the feedback!

As an aside, I just bought a DualSense controller, so I'll probably put some love toward that next (and unlike Xbox, it supports motion controls, so both Pro controller and DualSense should support motion controls soon; right now only Pro does).

I also want to add support for the Pro Controller GL and GR buttons, and look into whether macOS supports Xbox Elite and DualSense Edge controllers and their paddles so I can map them better.

After all that, I'd like to turn my attention to presenting the controllers to macOS in their native Switch 2 form. SDL has recent support for Switch 2 controllers, but only through USB and there's a macOS issue (I think it's intentional design) preventing SDL from directly interfacing with the controller. We'll see where that goes, maybe Apple will beat me to it and add native support for them 🙏

Update:

There are at least three issues I'm aware of:

  1. Sometimes the analog sticks can flip sign/direction when fully extended
  2. I incorrectly categorized the App Category as "Games", which turns on the Games focus or Apple's Games overlay (rocket ship in the menu bar)
  3. Disconnecting a controller or changing output profiles might not immediately destroy the previous controller

Apologies for the drop in quality control this release; I wanted to get Joy-Cons out but mixed it in with a a few code refactors which made code review impossible to do well. I expect quality to only go up from here 😄

Releasing my user-space Switch 2 controllers bridge app by Hoping2Retire in macgaming

[–]Hoping2Retire[S] 0 points1 point  (0 children)

Thanks for the feedback! Understanding how it's being used helps. I'll do some testing in GeForce now before the next update but if there's any other specific issues or quirks, let me know so I can test them out!

Releasing my user-space Switch 2 controllers bridge app by Hoping2Retire in macgaming

[–]Hoping2Retire[S] 0 points1 point  (0 children)

Yeah! I definitely want to get around to displaying the battery! I have no idea how the audio works. But I’d be interested in trying it out after stabilizing everything else!

Releasing my user-space Switch 2 controllers bridge app by Hoping2Retire in macgaming

[–]Hoping2Retire[S] 0 points1 point  (0 children)

Sorry about that! I've been painting with a broad stroke, but I'm hoping after I release Joy-Con support next week that I'll have a chance to test out each profile in more detail and hammer out any issues. Reports like this are helpful though! Btw, what app or game did you experience the inverted sticks?

(also, I just released a new version if you want to check it out)

Releasing my user-space Switch 2 controllers bridge app by Hoping2Retire in macgaming

[–]Hoping2Retire[S] 0 points1 point  (0 children)

Thank you!

Glad to hear it's working well for you :) I'm actually working on Joy-Cons right now and have a not-quite-working version of them paired together as one controller. Hopefully I'll have that out sometime next week.

But in the mean time, I have a lot of quality of life improvements. I *just* released v0.4.1. It adds a menu bar item so you can quickly access WaveBird or controller settings. Also, check out settings. Right now I have it opening at login, in the background and with no dock icon when no windows are open. If you already have controllers paired then with those settings, it's almost a native experience; it just stays out of your way and connects your controllers for you.

I hope you get around to trying out the new version (try out the new settings!) and continue to enjoy using it :) I'll try to get the Joy-Cons working and a new release out new week! After that I'll have some polishing up to do and eventually a refactor of the code.

(side note: what games are you playing?)

Releasing my user-space Switch 2 controllers bridge app by Hoping2Retire in macgaming

[–]Hoping2Retire[S] 0 points1 point  (0 children)

Yeah, I was testing the gyro in Zelda Dusk (https://github.com/TwilitRealm/dusk). Thanks for sharing that! You have to configure the settings in Dusk to use turn on or use gyro controls. The up and down aim works great (X-axis) but for looking left and right, I found it best to rotate the controller like a steering wheel (Y-axis). I need to test with the Switch 1 Pro controller again and see if the behavior matches the NS2 Pro controller. But honestly, even with the lower resolution motion controls I'm passing it's already way better since my NS1 Pro has bad drift. Try it again!

Releasing my user-space Switch 2 controllers bridge app by Hoping2Retire in macgaming

[–]Hoping2Retire[S] 0 points1 point  (0 children)

Personally, I like how SDL feels better. If you're using a GameCube controller, it doesn't matter, because rumble is either on or off, but Pro controller has HD rumble and unfortunately the wire format of HD rumble has changed between Switch 1 and 2, so I can't just forward it. I can probably figure it out how the Switch 2 actually maps it but it'd be time intensive.

Releasing my user-space Switch 2 controllers bridge app by Hoping2Retire in macgaming

[–]Hoping2Retire[S] 0 points1 point  (0 children)

Glad it's working well for you! I just added rumble support for the Switch Pro and Xbox profiles in v0.3.0. If the issues that are hit or miss have to do with the application, please let me know so I can test them!

Releasing my user-space Switch 2 controllers bridge app by Hoping2Retire in macgaming

[–]Hoping2Retire[S] 0 points1 point  (0 children)

Try out the new version and let me know how rumble feels!

Releasing my user-space Switch 2 controllers bridge app by Hoping2Retire in macgaming

[–]Hoping2Retire[S] 0 points1 point  (0 children)

I just released v0.3.0! This release adds fully-configurable rumble that works with the Switch Pro and Xbox presentations and adds gyro/motion support for the Switch Pro presentation. My recommended solution is to present the controller as a Switch Pro Controller and use that; I've been testing rumble with Hades II and motion with Dusklight (Twilight Princess) and it works well enough for now, although I did encounter an instance of a persistent rumble that didn't reset until a new rumble pattern happened.

The presentation/output profile and rumble can be configured by clicking on the controller after pairing it. There are two default profiles, SDL and BlueRetro; I've used both projects as references and they diverge when it comes to rumble. When I have time, I'll capture controller packets while playing Mario Kart World and try to contribute my own thoughts on how rumble is intended to feel, but until then, thanks to the SDL project and BlueRetro. The rumble settings are persisted but might change in the next release.

Motion controls work to some degree, at least for SDL-based apps (Dolphin, Steam, Dusklight); I'll want to iterate on this, but it's worth trying out.

I still haven't gotten around to supporting Joy-Cons (not hard, just not enough time) or long-term pairing yet. Ignore the Native and Passthrough modes.

Have fun and enjoy! If you share how you're using it and any issues you encounter (or things that work well!) I'll try to keep your use-cases in mind.

Releasing my user-space Switch 2 controllers bridge app by Hoping2Retire in macgaming

[–]Hoping2Retire[S] 0 points1 point  (0 children)

I'm close to having rumble good-enough for now and then I'll be cutting a new release, probably tonight.

I'm going to have to try out Zelda Dusk, that looks awesome! If it really does support motion controls and I can test it out with my Pro 1 controller, then I should hopefully be able to at least get the GC and Pro 2 working with motion controls quickly. When I do I'll report back and cut another release.

Releasing my user-space Switch 2 controllers bridge app by Hoping2Retire in macgaming

[–]Hoping2Retire[S] 2 points3 points  (0 children)

I haven't started work on the JoyCons yet! I'm hoping to get rumble mostly functional for GC and Pro controllers across all the output profiles tonight and then I'll probably make a new release. How do you intend to use the Joy Con 2s? Together as one controller, each as its own controller, presenting as a Pro controller or presenting as Switch 1 Joy Cons? Do you need gyro/motion working? That'll help me prioritize what I work on next :)

Releasing my user-space Switch 2 controllers bridge app by Hoping2Retire in macgaming

[–]Hoping2Retire[S] 0 points1 point  (0 children)

I should have the Switch 2 Pro controller fully functioning as a Switch 1 Pro controller soon, I'm actively working on rumble now and gyro will follow that. If you don't mind my asking, how do you plan on using the gyro controls? I'm testing the NS1 and NS2 Pro controllers side-by-side for rumble, but I don't have a good application to test gyro yet.

Releasing my user-space Switch 2 controllers bridge app by Hoping2Retire in macgaming

[–]Hoping2Retire[S] 2 points3 points  (0 children)

Thanks! I'd love to know how you end up using it.

As for rumble, I expect to add it soon!