4 way to 8 way adjustable restrictor plate
-
Very nice guide. Four-way restriction is important to many titles. It's usually only associated with Arcade titles, but generally, if you play the same games ported to various platforms, the same problem exists. Play any of the Pac-titles, 'Donkey Kong', 'Burgertime', 'Dig Dug', etc on an Atari system, Intellivision, ColecoVision, Astrocade, etc, you'll run into dropouts on the diagonals. I restrict direction through software myself, but anyone looking to add a hardware solution like this will get a lot more use out of it than they may think and the games become much more playable as a result.
-
This is certainly very clever. I wonder if you could provide us with some "after" photos please so we can see what the "lip" looks like. I'm also using the same software method as mediamogul, but alternative solutions are always welcome.
-
I'd love to hear more about the software method?
-
@andershp Using xboxdrv, you can set it up so that arcade games that use 4 way joysticks don't recognise diagonal movements. An example from my
runcommand-onstart.sh
:sudo /opt/retropie/supplementary/xboxdrv/bin/xboxdrv >> /dev/shm/runcommand.log 2>&1 \ --silent \ --detach-kernel-driver \ --deadzone=4000 \ --deadzone-trigger 15% \ --force-feedback \ --mimic-xpad \ --trigger-as-button \ --ui-buttonmap lb=void,rb=void,tl=void,tr=void,guide=void,lt=void,rt=void \ --evdev /dev/input/by-path/platform-3f980000.usb-usb-0:1.3.2:1.0-event-joystick \ --device-name "Player_3" \ --evdev-absmap ABS_X=x1,ABS_Y=y1 \ --four-way-restrictor \ --evdev-keymap BTN_TRIGGER=y,BTN_THUMB=a,BTN_THUMB2=back,BTN_PINKIE=x,BTN_TOP=b,BTN_TOP2=start \ --ui-axismap X1=KEY_DOWN:KEY_UP,Y1=KEY_RIGHT:KEY_LEFT \ --ui-buttonmap a=KEY_LEFTCTRL,b=KEY_LEFTALT,x=KEY_SPACE,y=KEY_LEFTSHIFT,back=KEY_5+KEY_1,start=KEY_6+KEY_2,start+back=KEY_KPSLASH \ --ui-buttonmap back+start=KEY_ESC
You will see the
--four-way-restrictor
flag above - that is the restriction. It works pretty well with my USB Dragonrise arcade joysticks. Mediamogul uses it with his Logitech F710 joystick. Unfortunately, you can't use xboxdrv with ipac controllers as they are recognised by Retropie as keyboard encoders rather than joysticks, but otherwise it should work with most other joysticks. (My code above is tailored to my joysticks; your's would be different.)Have a look at the Advanced Mapping Guide if you are interested:
https://github.com/RetroPie/RetroPie-Setup/wiki/Universal-Controller-Calibration-&-Mapping-Using-xboxdrvI use xboxdrv for all of my controller inputs for every libretro core and non-libretro emulator except reicast and the n64 emulator.
-
@spud11 thanks for the code, unfortunately as you insightfully wrote, I'm using an iPac controller.
-
@lurker or you could just buy joysticks from ultimarc that switches between 4-way and 8-way by pulling up on the joystick and twisting. Or the ones ultimarc has with a powered servo that switches it with the push of a button. No need for all the hassle or extra bulk.
-
@edmaul69 said in 4 way to 8 way adjustable restrictor plate:
@lurker or you could just buy joysticks from ultimarc that switches between 4-way and 8-way by pulling up on the joystick and twisting. Or the ones ultimarc has with a powered servo that switches it with the push of a button. No need for all the hassle or extra bulk.
I think you missed this part of his posting (and just to be sure, I checked that he didn't edit it in afterwards).
@lurker said in 4 way to 8 way adjustable restrictor plate:
if you have the cash to buy the joystick that has the servo or the pull up rotate version cough @Clyde cough Then you already have a solution.
... good for you. But some of us are poor okay! and we get the cheapest kit we can find and we make due... stop judging me!
sniffles I'm okay.@Lurker Care not, I won't judge you for not being such a money dissipator like myself, as long as you don't pick on my nearly non-existent handyman skills that force me to buy stuff instead.
By the way, I always wondered why those restrictor rings can't be moved more smoothly.
-
@andershp said in 4 way to 8 way adjustable restrictor plate:
I'm using an iPac controller.
With any luck iPac controllers could be supported in the future, as there is a PR for xboxdrv that would allow mapping keyboard input to other types, even other keys. If this were implemented, features like 4-way restriction would also be possible. After a two year hiatus, the main developer, Grumbel has recently begun some minor work to the software since the project moved to Gitlab, so hopefully we'll also see some feature updates as a result.
-
@mediamogul the reason i prefer an actual restrictor plate is for games like pacman and donkey kong. They require very quick and precise movements for fastest moves. Without a restrictor plate you can still press the angled position that slows down your movements. For several of these old arcade games that can affect your game significantly.
-
@edmaul69 said in 4 way to 8 way adjustable restrictor plate:
Without a restrictor plate you can still press the angled position that slows down your movements.
Surprisingly, the result is virtually the same between the two solutions. In software, if you hit an angled position, it translates to the nearest restricted direction immediately. Depending on the joystick, you could even argue that the movement is faster through software, as it has less distance to travel between directions. Still, both solutions are great and it's almost impossible to hit a snag either way.
-
That software solution looks very nice and useful if you are using a gamepad like an xbox controller. I will have to keep that in mind.
A question on theory though; I see that the diagonal inputs are voided but what does the system do when it sees one?
In other words if you were moving left and then shifted to diagonal with the intention of moving up does the system continue with the last direction? Or does it shift to the new direction "up"?I'm just curious how that works.
@spud11 I could try to post "after" images but since the plastic is clear it is difficult to show the detail.
@clyde said in 4 way to 8 way adjustable restrictor plate:
By the way, I always wondered why those restrictor rings can't be moved more smoothly.
I think the answer to that is a result of the industry we are building from. Back in the day it was good to have joysticks configurable so they apply to more game types but they were expected to be used in one configuration in the cabinet and so no effort was made to let them change back and forth easily. "Set it once for the one arcade game you are building and that's it"
"We" are a applying new needs to an existing market of parts. I wouldn't be surprised (or mind that much) if someone started producing new plates based on the above modification. I briefly thought about it but decided that the other overhead items that I would need to put in place first over rode any profit I might make on such a small item. If I had already had the framework in place because I was making some other ...thing then it would be easy to add.
-
@lurker said in 4 way to 8 way adjustable restrictor plate:
That software solution looks very nice and useful if you are using a gamepad like an xbox controller.
It can also be used for any arcade joystick that uses hat, axis and button events. Some arcade stick encoders are keyboard only, but there are others that support both.
A question on theory though; I see that the diagonal inputs are voided but what does the system do when it sees one?
I'm just curious how that works.With analog axis input, I believe it divides the diagonal space in half and assigns one of the restricted directions to the half closest to that direction. With an 8-directional joystick or hat, I'm really not sure. However, I have tested with both and it still works all the same.
-
@lurker said in 4 way to 8 way adjustable restrictor plate:
@clyde said in 4 way to 8 way adjustable restrictor plate:
By the way, I always wondered why those restrictor rings can't be moved more smoothly.
I think the answer to that is a result of the industry we are building from. Back in the day it was good to have joysticks configurable so they apply to more game types but they were expected to be used in one configuration in the cabinet
I think you have a point there. Even in today's retro gaming community, cabinets that are dedicated to specific controls are not uncommon.
I wouldn't be surprised (or mind that much) if someone started producing new plates based on the above modification. I briefly thought about it but decided that the other overhead items that I would need to put in place first over rode any profit I might make on such a small item.
Also, the existing plates are most likely patented, so you would have have to design a new plate from scratch, get permission from the patent holders, or risk being sued.
Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.
Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.