Joystick/Button Mapping Not Working
-
Hey Guys!
First post and first time working with a Raspberry Pi/RetroPi. Recently built an arcade cabinet and added a couple of ROM's to the system but am having some issues configuring two controllers.
Using the main menu, I can easily map both controllers to have the bindings I desire, but when entering into certain games the controls seem to go haywire. (Left is Up, Up is Right, A is X, Y is Select, etc.) I've searched the forums as best I can but just couldn't find the help I needed yet. Hopefully someone can point me in the right direction!
Thank you!
-
@rhin01168 It sounds like you have your joystick turned sideways, or that you have the wiring going to different inputs that vary from default keys. The problem with trying to help you with this is that you obviously did not read this first, because you did not describe your setup with nearly enough detail.
-
@caver01 I definitely did not read that! Here's more info for my setup:
Pi Model: 3
Power Supply: Cana Kit 2.5A
RetroPie Version: 4.3.16
Built From: SD Image on RetroPie Website
USB Devices connected:
Controller used: (2x) Dragonrise USB Encoders
Emulator: 2.7.5RPI assumed I could remap the buttons so I didn't care as to which way the joystick/buttons connected to the USB encoder. The weird thing is, when I configure the controllers, they seem to work fine as I can scroll through the menu and select menu options accordingly. Only when I enter a game do the controls start reversing. It's almost as if the menu is seeing my controls as I've configured them, but the game is reading them as they are incorrectly plugged into the USB encoder...
Really just spitballing here, but just trying to work the kinks out!
-
@rhin01168 Does the Dragonwise present as a keyboard to the Pi? And what emulator is 2.7.5RP? The emulator here makes a lot of difference in troubleshooting. For example, a libretro emulator may need to be considered differently than say, a standalone console emulator. What exactly are you launching and with what emulator?
You are right that the Emulation Station navigation uses what you have configured, but a particular emulator may have defaults set that contradict, especially with keyboard controllers. MAME default keys for instance are mapped alongside retropad virtual inputs in lr-mame2003, so you can easily end up with double inputs mapped that behave this way.
I recommend NOT ignoring the orientation and wiring your controller up following defaults to avoid having to remap stuff inside each emulator.
You might find some emulators work fine, while others have conflicts because the default keys do not match up with how you have them wired.
-
@caver01 I have Libretro running with Emulation Station. I believe Dragonwise is presenting as a controller because I have a separate USB keyboard plugged in that is registering as a keyboard as it should. Sorry, all very new to this.
The joysticks did not have any indication as what was up versus down, but theoretically couldn't I just connect the wires into the others port and consider it flipped? Is there a specific order the buttons should connect on the USB Controller as well? Everything I've seen online shows a specific orientation for the joystick, but not the buttons...
-
@rhin01168 I do not have direct experience with the Dragonrise controllers. Perhaps someone will join the thread who does, but you should definitely search the forum for that, as I have seen mention of these in the past.
Having a keyboard does not prevent you from having additional keyboard controllers as handling the input from joysticks and arcade pushbuttons.
I think you need to do some general reading through all of the docs. When you say you have LIbretro running with Emulation Station, this does not really make much sense, as we ALL have both by default. Emulation Station is merely the front end software. It lets you select a game/rom to launch, and depending on where you placed that ROM (which folder) you have options as to what emulator you are going to launch it with. There are RetroArch/Libretro cores for many systems, and there are standalone emulators. So, depending on what you choose with Runcommand, (or default for the folder you used) you might be running a Libretro emulator, or you might be running a standalone emulator. If this is getting too complicated, you should stop and read through the documentation and find answers that satisfy your questions. These are fundamental concepts and they are important for success, but even more important for troubleshooting.
Now, you are right about joystick orientation in that a switch gets wired to the controller and it does not really matter which way the stick is mounted so long as the UP switch is wired to the UP input on the controller, and so on. For buttons, you may be starting to realize that there is nothing stopping you from wiring each button to the button inputs on your controller any way you wish, but that the controller definitely has a Button 1, Button 2, Button 3 etc. and these may have expected locations on an arcade panel. Moreover, the inputs get mapped in each emulator (Libretro or not) following some default. The remapping can get very convoluted quickly if you are not following some standard wiring, especially if your player 1 and 2 are inconsistent. Again, I would try to find someone with a working example that is using Dragonrise for guidance. I use an old Ultimarc IPAC4 which is strictly a keyboard interface which makes it somewhat easier to to match MAME defaults.
-
@caver01 Thanks so much. This was super helpful--will circle back with developments!!
-
@caver01 So I ended up doing a master reset of some sort and when I configured the controllers to player one and two respectively, buttons/joystick directions seemed to bind correctly.
All games work with this configuration except for Arkanoid. I would assume that's an issue with the ROM considering all other games have no problems with the configured controls. Next step was to reinstall it or source an alternate ROM...
Lastly, I scraped all my games to create a video screensaver, but one of them has a weird audio glitch when it starts playing. It happens each time the screen transitions to this games scraped video scene. I tried disabling audio playback for the screensaver but found no luck. Was going to try to re-scrape that particular game next.
-
@rhin01168 Glad the reset step worked for the controls.
Arkanoid, if you recall, has a "dial" or "paddle" controller in the arcade version. To troubleshoot controls for a specific ROM, it would help to know exactly which emulator you are using. For example, if you are are using lr-mame2003, control mapping starts with the ES and RetroArch configuration, but you can also press TAB on a connected keyboard and do some remapping inside MAME itself. This is very handy. It is also where you can see the mapping for THIS GAME in the menu that comes up and for games like Arkaniod with analog controls, you can map your joystick directions to them (if not mapped already).
I happen to have a pair of spinners and a trackball on my build, so I use my spinner to control Arkanoid, but you should be able to make a joystick work.
For the videos, I have read a bunch of threads here and there that the scraped videos are not always in the best format for hardware accelerated playback. In other words, that video may be problematic on the Pi with the settings you are using. I did all of my videos manually, but there are threads here with video conversion advice using VLC or Handbrake etc. You might just look for a replacement video for the one that is not working.
The scraper sites are probably serving emulator enthusiasts of all kinds, not just Pi users. For example, my first arcade was built many years ago running Windows 98, and the videos for that system may not be optimized for what the Pi needs today.
-
@caver01 Again, great notes. Really appreciate the quick feedback! I'll get back to you on how this thing turns out!
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.