Mod PCB so button can not be held (just tap) or button override (no two inputs held at once)


Hi all,

Playing Mortal Komba XL (MKX or MKXL).
When I press UP, and then without releasing UP i press DOWN - it will not register. It works other way around.
So if I hold DOWN and press UP. UP will overwrite DOWN and character will jump.

I noticed it different per pcb (gamepads). Tested about 5 different gamepads. Sometimes left overwrited right, and sometimes right overwrites left. Like, if you hold left, and then tap right, right will not register (nothing inputs). But other way around it takes priority. And vice-versa.
Gamepad I have Genius Maxfire Blaze 3, all arrow keys neutralize.
But in MKX up still overwrites down. Left and right will neutralize.

Some characters have moves like jump (up), down+side+button.
This then gets trickly as I tend to still not releasing UP fast enough. And I need to release it before I can input DOWN (or else it will not input due to arrow UP being higher priority).
I tried to map commands to other keys, and then I tend to get override with left/right. So it seems like its type of gamepad you use with MKX.

So I am wondering if I can make it so there is no hold on certain buttons (hold results as tap) or changing priority of buttons. So if I press DOWN while holding UP, DOWN will input.


I tested


Unless you’re playing on a keyboard or a hitbox, there really shouldn’t be a scenario where you’re pressing UP+DOWN or LEFT+RIGHT at the same time.

Anyhow, what you’re looking for is related to SOCD (Simultaneous Opposite Cardinal Directions), and how each game and PCB handle them. There are plenty of discussions about that around here.


Yes I am using custom made hitbox (sorry, forgot to mention I guess) made from Genius Maxfire Blaze 3 that has:
Left + Right = Neutral
Up + Down = Neutral

I want down to override up. So if I hold UP and then tap DOWN. Down should input. Because sometimes I tap down before I manage to release up.

“SOCD (Simultaneous Opposite Cardinal Directions)” - Ok, I will search about that. I’ll post Qs here if I will have something.

Thanks FreedomGundam!

EDIT: Been researching and I did not notice anywhere option where you could make buttons override one another.
Hold Left + Tap Right = Right / Hold Right + Tap Left = Left

Only neutral or one of them taking priority. Same for up and down.

Some guys here made some really impressive and cool stuff. Still researching.


What you need is asynchronous SOCD Cleaning (asocd) and not socd cleaning. There is a video on this. you will need an arduino and some code.


Yeah. I seen that video. So I need to wire my PCB through this one? And this will always make it so last input takes over, overrides last one? I dont think I need neutrals. But I also dont want one specific button to always take priority (as you get on some cheap gamepads/PCBs; like left will always override right). Because that part was a bit unclear from this video. Before, and still after rewatching it. EDIT: Ah. I think its mentioned around 0:34, where he said that last input takes priority or something like that. But I am still a bit unsure if UNO makes it so one button always takes priority or button that is pressed last always takes effect (because I dont think its literally possible to press two buttons at the same time). So I’d like to have that confirmed.
I’ll research into this more, thanks Noryia. I’m still absorbing all this information so sorry if I dont seem too informed.

I also noticed that analog stick gets overwritten by d-pad . So I can rewire it so UP is used from analog, and down from d-pad. And then have switch somewhere so I can toggle in between.


Keep in mind that if you want specific functionality, you may need to get some custom code written so that the outputs behave the way you want them.

And just to open conversation from the other perspective, why not work on cleaning up your execution rather that adding in components that will continue to allow you to depend or get away with bad habits?


There no substitute for practice and cleaning up your execution


"Keep in mind that if you want specific functionality, you may need to get some custom code written so that the outputs behave the way you want them."
Custom code written as… where? Elaborate. I noticed on that UNO, you plug it in, flash, etc. Can you use some interface to program some stuff in? Or do you mean something else?

I know. I think cleaning up my execution might be impossible for me.
In MKX you have character called Kitana. And you can throw projectile right after you jump. Which can be handy.
So you have to press up, and then right after you jump, you have to press down and forward and attack button.
On gamepad its impossible (for me). There is a guy called SonicFox who is like miracle boy and he can do it. I’m casual.
I am using this:
Well, I have custom one made with custom layout. But left side, arrows and big button is same.
And I can do it like, 75% of a time.
Going over is becoming too stressful and tedious. I am casual player and just want to have some fun.
So I’m just making it easier for myself.
If top arrow would take priority, or if even better, if last input would take priority, that would be awesome.

And on side note, I am having fun modding this stuff. Reason I didnt buy new one. I specifically wanted to make one. And now I want to have some fun modding it.


The stuff that you flash into the UNO, that’s code that someone has written and compiled.
If it doesn’t work the way you want it to, you’ll need to flash on some different code. Or write some custom/new code, compile that, and then flash it on.


master the execution & the fun factor during and after is multiplied enormously. and satisfaction even more so


So in otherwords just play some vidya games already


Makes me wonder if I should make a cheap asocd board. I think I have the code for a PIC already done.


But modding is more fun!

I was trying to hack my current PCB. But I messed it up. I noticed DPAD has priority over Analog. So if I use Analog for UP, and DPAD for DOWN. It should work. But it didnt coz Analog requires resistors and all that shit to work properly. I cant just plug in wire :smiley: .

I was looking into that UNO board. And looks like I can make full gamepad with it? Seen on videos.
Can someone confirm if I could just get that board and make new hitbox with custom code so down takes priority over up?

What is PIC?
I also see you mod a lot from your youtube channel :slight_smile: .


a PIC is a Programmable Integrated Circuit…

tl;dr is a little chip that lets you do “whatever” you want with electric signals :slight_smile:


It’s a programmable microcontroller. Just a different brand from the ones arduino use.

I think I also have an asocd firmware for the arduino too if you want to try it and if I can still find the code.


Any links for PICs?
And then I just build board for it? Basically can build one like Arduino UNO I assume, or different if I want to.

#1 Arduino UNO - enough to make full controller?
#2 And I can also run (any?) PCB through UNO to mod it?

I’m still researching into all this. UNO seems interesting. Might make some other stuff aside game controllers. Programming also doesnt seem like it would be complex. Might give it a try.
Any guides how to make game controller from scratch. I have background as electrotechnician, making PCBs and stuff. But it was long time ago and I am game developer now. But I’m really interested in those things.

I also broke my hitbox PCB coz I was trying to hack stuff :smiley: . Was quite good PCB. Genius Maxfire Blaze 3 . Very good and cheap gamepad.

I have few gamepads that cost 3 bucks here in shop (lol). And down overwrited up (what I want) but left overwrited right, what I want to be neutral or last input always takes priority on arrow buttons. I can mod this with Arduino UNO correct? I know I tend to repeat same question in different ways :smiley: .