Arcade Stick Input Programming


Hey there techies, not your usual hardware thread but I thought this would be the best place for an answer.

I’m in my last year at Uni and for my final year project I’m creating a program that uses an arcade stick for inputs. I’ll be using XInput as the API and I’m hoping for some advice.

Do I have to concern myself with button bounce (multiple input readings from one button press) or will XInput take care of it for me? If it doesn’t can anyone suggest methods to clear up the bounce? I’m concerned that setting a small delay between reading inputs to try combat bounce may end up delaying a user with fast inputs or entering multiple inputs at once for blocks/focus attacks/buffering etc etc.


Every video game console and arcade game debounces inputs and you don’t feel anything wrong with those. You’re not debouncing for a significant amount of time. I dunno if the API has builtin debouncing or if you will have to specifically tell your program it to ignore new inputs for however many nanoseconds.

Here’s some info to get you started:


Thinking more on it, I wonder if the PCB in arcade sticks is pre-programmed to deal with bounce…

Cheers for the link, hopefully C# won’t mess me over with the level of control I can get compared with C


I swear I had edited my above post to include the PCB possibly debouncing… SRK is finicky today.


Why worried about bounce on a peripheral that is polled at best every 1ms?


I’ve got to write about it even if it isn’t a real problem so the more I know the more I can write. A lot of my degree has been based around embedded systems where bounce is a concern so I don’t have much experience with other systems.

If the poll times are that slow though then you’re right I wont have to be bothered about it. Cheers :slight_smile:


Don’t write code to solve problems that don’t exist yet :stuck_out_tongue:
I actually have a fair bit of code I have written for buffering inputs, reading commands, based on the SF4 engine but I haven’t gotten around to using it for anything


I’ll start writing the actual code next semester but I’ve gotta get about 15,000 words down on the planning etc.
What language have you write it all in?