jfedor2 / flatbox

Low profile hitbox-layout fightstick
662 stars 135 forks source link

LT/RT Buttons don't get picked up by Steam Deck #19

Open tdpssn opened 2 years ago

tdpssn commented 2 years ago

Not sure if this is a Steam Input issue or what, but I cannot get the triggers to "press down" no matter what settings I use. On Windows, switching to Big Picture mode gets the Flatbox to be fully recognized on SFV, but trying to use this on DNF Duel on a Steam Deck the triggers never respond.

jfedor2 commented 2 years ago

Do they work in DNF Duel on Windows?

tdpssn commented 2 years ago

Can confirm, all the buttons work in DNF Duel in Windows. I'm convinced it's something with Steam Input on the Deck, but I'm not sure where else to troubleshoot this.

SFV shows the same issue as DNF Duel on Steam Deck

My theory is that the Flatbox is picked up as XInput in Windows->Big Picture Mode, but on the Steam Deck I can't tell if it's picked up as Generic Controller or DInput and really don't know how to assign either just yet.

jfedor2 commented 2 years ago

I'm not really sure what causes the issue, but you can always try alternative firmware. For the rev4 there's GP2040 and I'm sure there are many others for the ATmega32U4-based versions.

tdpssn commented 2 years ago

Thanks for the suggestions, I'll do some messing around too with other sticks.

Is it as easy as holding "reset" button then drag and dropping the firmwares in the "disk"?

jfedor2 commented 2 years ago

For the rev4, you press and hold the BOOT button, press and release the RESET button, then release the BOOT button. A drive should show up and you drag the .uf2 file to that drive and that's it.

GP2040 has a prebuilt firmware file for the Flatbox:

https://github.com/FeralAI/GP2040/releases/download/v0.4.3/GP2040-FlatboxRev4_v0.4.3.uf2

tdpssn commented 2 years ago

For the rev4, you press and hold the BOOT button, press and release the RESET button, then release the BOOT button. A drive should show up and you drag the .uf2 file to that drive and that's it.

GP2040 has a prebuilt firmware file for the Flatbox:

https://github.com/FeralAI/GP2040/releases/download/v0.4.3/GP2040-FlatboxRev4_v0.4.3.uf2

This works! Although it's weird in Windows going to Test USB Game Controllers the buttons confirm/close the window so it's hard to test all the buttons. I believe Steam on Windows picked this firmware up as a XInput. Plugging it into my Steam Deck, I also believe it still picks it up as XInput and all the buttons work! So, if I want to hook up the flatbox to the Steam Deck, the GP2040 Flatbox firmware works, is there any disadvantage to using this than the one you provide? I know the device name "Flatbox" is correct under your firmware

jfedor2 commented 2 years ago

I haven't done much testing myself, but I'm not aware of any disadvantages of the GP2040 firmware. If anything it should be more flexible as you can switch between XInput and the standard USB HID modes. I think it even works with the Switch. My firmware was more of a "minimum viable product" type of thing and the author of GP2040 clearly spent a considerable effort on some bells and whistles.

That said, I would like to know what the issue with the Steam Deck is, but I don't have one so it will probably have to wait.

tdpssn commented 2 years ago

I believe, but don't know, this is my first foray into Inputs/Steam controller, that even though both the GP2040 and Flatbox firmware are recognized as XInput on Windows, the GP2040 continues to be recognized as XInput on the Steam Deck. Maybe Steam Deck has no idea how to handle Flatbox firmware on Linux and defaults it to DInput?

For science, I changed the input on the GP2040 via Windows to DInput(PS3) and it exhibits the exact same issue when I connect it back to the Steam Deck, where the LT/RT triggers never get pressed down. On Windows, it still works though. Changing the input to XInput again fixes it.