[GH-ISSUE #32] Feature Request - Support for 6 Button Arcade Stick #12

Closed
opened 2026-10-15 12:51:10 +00:00 by bsakaguchi · 4 comments
Owner

Originally created by @CoachDom on GitHub (Nov 11, 2025).
Original GitHub issue: https://github.com/games-on-whales/inputtino/issues/32

Hi all
I'm using Sunshine (which is reliant on Inputtino for controller emulation) to stream to my arcade cabinet, and everything is working perfectly (audio, video, no noticeable latency) and the way the arcade control panel works, is it's emulating Xbox One controller so there is quite a lot of maping to do. I went into Sunshine web ui setting and noticed that sunshine is capable of emulating Xbox One, PS5 and Switch pro controllers - would it be possible, to add support for a 6 button arcade controller?
Many thanks

Originally created by @CoachDom on GitHub (Nov 11, 2025). Original GitHub issue: https://github.com/games-on-whales/inputtino/issues/32 Hi all I'm using Sunshine (which is reliant on Inputtino for controller emulation) to stream to my arcade cabinet, and everything is working perfectly (audio, video, no noticeable latency) and the way the arcade control panel works, is it's emulating Xbox One controller so there is quite a lot of maping to do. I went into Sunshine web ui setting and noticed that sunshine is capable of emulating Xbox One, PS5 and Switch pro controllers - would it be possible, to add support for a 6 button arcade controller? Many thanks
Author
Owner

@ABeltramo commented on GitHub (Nov 12, 2025):

Whilst implementing a virtual arcade joypad is definitely possible in inputtino (and then add it to Sunshine) that's only half of the equation..
You'll have to then add support for your joypad on at least one Moonlight client so that it'll collect and recognise the right inputs that are pressed on the other side.

On top of that, I'm not sure if there's some way to have a "general purpose 6 button pad" so that we can map any arcade joypad on the client side to one virtual joypad on the server side, but it would be cool to experiment with that. Otherwise you'll have support for only one specific joypad brand/model.

<!-- gh-comment-id:3523311816 --> @ABeltramo commented on GitHub (Nov 12, 2025): Whilst implementing a virtual arcade joypad is definitely possible in inputtino (and then add it to Sunshine) that's only half of the equation.. You'll have to then add support for your joypad on at least one Moonlight client so that it'll collect and recognise the right inputs that are pressed on the other side. On top of that, I'm not sure if there's some way to have a "general purpose 6 button pad" so that we can map any arcade joypad on the client side to one virtual joypad on the server side, but it would be cool to experiment with that. Otherwise you'll have support for only one specific joypad brand/model.
Author
Owner

@CoachDom commented on GitHub (Nov 13, 2025):

So basically I would have to make sure that the computer that I'm streaming from can correctly recognise and operate a 6 button arcade joystick.

See on your end, is it a feature you can and would be interested in implementing?

Thank you for getting back to me

<!-- gh-comment-id:3529793245 --> @CoachDom commented on GitHub (Nov 13, 2025): So basically I would have to make sure that the computer that I'm streaming from can correctly recognise and operate a 6 button arcade joystick. See on your end, is it a feature you can and would be interested in implementing? Thank you for getting back to me
Author
Owner

@CoachDom commented on GitHub (Nov 13, 2025):

I think I understand it a bit better now - basically what you are saying, there might not be something like a all-purpose 6 button arcade stick driver, and they are always mapped to something like an Xbox controller - correct?

<!-- gh-comment-id:3529799447 --> @CoachDom commented on GitHub (Nov 13, 2025): I think I understand it a bit better now - basically what you are saying, there might not be something like a all-purpose 6 button arcade stick driver, and they are always mapped to something like an Xbox controller - correct?
Author
Owner

@ABeltramo commented on GitHub (Nov 30, 2025):

I think I understand it a bit better now - basically what you are saying, there might not be something like a all-purpose 6 button arcade stick driver, and they are always mapped to something like an Xbox controller - correct?

Nope, that's not what I meant.
Similar to how we create a specific Xbox One controller, in here we can only create a device that is available in the Linux kernel. We have to pick one so let's say that in inputtino we add support for creating an 8BitDo Arcade Stick. And let's also assume that we added the code in Sunshine that when a Moonlight client requests for it, we'll create this new Arcade Stick on the host.

Now the issue moves to Moonlight: obviously you don't want to support only the 8BitDo Arcade Stick joypad, you somehow want to generally pick any "arcade stick" and map it to those inputs in the same way that a lot of joypads from many brands map their input to the Xbox layout. You are basically recreating Steam Input so that you can map a joypad into another one, do-able but quite complex..

Now multiply this issue for all the Moonlight clients out there! If you implement this for the Android client someone would have to also add support for the desktop one, switch client, Xbox, Apple TV, etc.

Does that make sense?

<!-- gh-comment-id:3592272258 --> @ABeltramo commented on GitHub (Nov 30, 2025): > I think I understand it a bit better now - basically what you are saying, there might not be something like a all-purpose 6 button arcade stick driver, and they are always mapped to something like an Xbox controller - correct? Nope, that's not what I meant. Similar to how we create a specific Xbox One controller, in here we can only create a device that is available in the Linux kernel. We have to pick one so let's say that in inputtino we add support for creating an [8BitDo Arcade Stick](https://www.8bitdo.com/arcade-stick/). And let's also assume that we added the code in Sunshine that when a Moonlight client requests for it, we'll create this new Arcade Stick on the host. Now the issue moves to Moonlight: obviously you don't want to support only the `8BitDo Arcade Stick` joypad, you somehow want to generally pick any "arcade stick" and map it to those inputs in the same way that a lot of joypads from many brands map their input to the Xbox layout. You are basically recreating Steam Input so that you can map a joypad into another one, do-able but quite complex.. Now multiply this issue for all the Moonlight clients out there! If you implement this for the Android client someone would have to also add support for the desktop one, switch client, Xbox, Apple TV, etc. Does that make sense?
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
games-on-whales/inputtino#12
No description provided.