Can't get controller working in Reicast
-
@mitu OK, decided to stay up a little longer to get this done. I am getting a message from the forum when I try to attach the files saying that I don't have enough privileges so I'm embedding their contents below. I hope that's OK.
es_input.cfg
<?xml version="1.0"?> <inputList> <inputAction type="onfinish"> <command>/opt/retropie/supplementary/emulationstation/scripts/inputconfiguration.sh</command> </inputAction> <inputConfig type="joystick" deviceName="RetroFlag Wired Controller" deviceGUID="03000000830500006020000010010000"> <input name="pageup" type="button" id="4" value="1"/> <input name="start" type="button" id="7" value="1"/> <input name="down" type="axis" id="1" value="1"/> <input name="pagedown" type="button" id="5" value="1"/> <input name="right" type="axis" id="0" value="1"/> <input name="select" type="button" id="6" value="1"/> <input name="left" type="axis" id="0" value="-1"/> <input name="up" type="axis" id="1" value="-1"/> <input name="a" type="button" id="0" value="1"/> <input name="b" type="button" id="1" value="1"/> <input name="x" type="button" id="2" value="1"/> <input name="y" type="button" id="3" value="1"/> </inputConfig> <inputConfig type="joystick" deviceName="Pro Controller" deviceGUID="050000007e0500000920000001000000"> <input name="rightanalogdown" type="axis" id="3" value="1"/> <input name="rightanalogleft" type="axis" id="2" value="-1"/> <input name="pageup" type="button" id="4" value="1"/> <input name="start" type="button" id="9" value="1"/> <input name="rightanalogup" type="axis" id="3" value="-1"/> <input name="down" type="hat" id="0" value="4"/> <input name="leftanalogright" type="axis" id="0" value="1"/> <input name="pagedown" type="button" id="5" value="1"/> <input name="right" type="hat" id="0" value="2"/> <input name="select" type="button" id="8" value="1"/> <input name="left" type="hat" id="0" value="8"/> <input name="leftanalogup" type="axis" id="1" value="-1"/> <input name="up" type="hat" id="0" value="1"/> <input name="a" type="button" id="1" value="1"/> <input name="b" type="button" id="0" value="1"/> <input name="leftanalogdown" type="axis" id="1" value="1"/> <input name="x" type="button" id="3" value="1"/> <input name="leftanalogleft" type="axis" id="0" value="-1"/> <input name="y" type="button" id="2" value="1"/> <input name="rightanalogright" type="axis" id="2" value="1"/> </inputConfig> </inputList>
Below are the faulty files generated by Emulation Station that did not work properly.
controller_ProController.cfg[emulator] mapping_name = Pro Controller btn_escape = 296 [dreamcast] btn_a = 288 btn_b = 289 btn_c = btn_d = btn_x = 290 btn_y = 291 btn_z = btn_start = 297 btn_dpad1_left = btn_dpad1_right = btn_dpad1_up = btn_dpad1_down = btn_dpad2_left = btn_dpad2_right = btn_dpad2_up = btn_dpad2_down = axis_x = 0 axis_y = 1 axis_trigger_left = axis_trigger_right = [compat] btn_trigger_left = 292 btn_trigger_right = 293 axis_dpad1_x = 2 axis_dpad1_y = 3 axis_dpad2_x = axis_dpad2_y = axis_x_inverted = no axis_y_inverted = no axis_trigger_left_inverted = axis_trigger_right_inverted = axis_dpad1_y_inverted = no axis_dpad1_x_inverted = no
controller_RetroFlagWiredController.cfg
[emulator] mapping_name = RetroFlag Wired Controller btn_escape = 294 [dreamcast] btn_a = 289 btn_b = 288 btn_c = btn_d = btn_x = 291 btn_y = 290 btn_z = btn_start = 295 btn_dpad1_left = btn_dpad1_right = btn_dpad1_up = btn_dpad1_down = btn_dpad2_left = btn_dpad2_right = btn_dpad2_up = btn_dpad2_down = axis_x = 0 axis_y = 1 axis_trigger_left = axis_trigger_right = [compat] btn_trigger_left = 292 btn_trigger_right = 293 axis_dpad1_x = axis_dpad1_y = axis_dpad2_x = axis_dpad2_y = axis_x_inverted = no axis_y_inverted = no axis_trigger_left_inverted = axis_trigger_right_inverted =
Below are the good files generated in Reicast that did work properly
evdev_Pro Controller.cfg[compat] axis_dpad1_x = 16 axis_dpad1_x_inverted = no axis_dpad1_y = 17 axis_dpad1_y_inverted = no axis_dpad2_x = 18 axis_dpad2_x_inverted = no axis_trigger_left_inverted = no axis_trigger_right_inverted = no axis_x_inverted = no axis_y_inverted = no btn_trigger_left = 308 btn_trigger_right = 309 [dreamcast] axis_trigger_left = 2 axis_trigger_right = 5 axis_x = 0 axis_y = 1 btn_a = 305 btn_b = 304 btn_d = 317 btn_dpad1_down = 547 btn_dpad1_left = 544 btn_dpad1_right = 545 btn_dpad1_up = 546 btn_start = 313 btn_x = 307 btn_y = 306 [emulator] btn_escape = 312 mapping_name = Pro Controller mapping
evdev_RetroFlag Wired Controller.cfg
[compat] axis_dpad1_x = 16 axis_dpad1_x_inverted = no axis_dpad1_y = 17 axis_dpad1_y_inverted = no axis_dpad2_x = 18 axis_dpad2_x_inverted = no axis_trigger_left_inverted = no axis_trigger_right_inverted = no axis_x_inverted = no axis_y_inverted = no btn_trigger_left = 292 btn_trigger_right = 293 [dreamcast] axis_trigger_left = 2 axis_trigger_right = 5 axis_x = 0 axis_y = 1 btn_a = 288 btn_b = 289 btn_c = 306 btn_d = 317 btn_dpad1_down = 547 btn_dpad1_left = 544 btn_dpad1_right = 545 btn_dpad1_up = 546 btn_start = 295 btn_x = 290 btn_y = 291 btn_z = 309 [emulator] btn_escape = 294 mapping_name = RetroFlag Wired Controller mapping
I hope that is helpful.
-
@joelkolb The ones that don't work are really similar to mine that don't work, with only the x and y or a and b being swapped. I tried the gui, it is really good, and the new mapping works alright.
-
@mitu I never heard back from you. Is what I posted good? Is there anything more I should add?
-
@joelkolb Sorry, got sidetracked with other things, but I've saved the info you posted. I'll take a stab at trying to reproduce the issue.
One more thing more to ask - when you did the configuration, was your RetroPie version the latest ? I know there was a fix for the Reicast configuration generator some time ago - definitely after the 4.4 image was cast, an year ago. -
@mitu Yes, definitely the latest. Just before producing those files I clean flashed a new micro SD card with the 4.4 image and then did a full update to make sure my results were clean. So, it was definitely the absolute latest it could be at the time.
-
@joelkolb I've looked over the scripts involved and can't figure out what's wrong. I have a similar - SNES style - controller and looked to be working fine with the mapping generated by the input scripts, but I don't use Reicast that often and it's mostly for testing.
-
I’m having the same problem and I tried using an Xbox controller with an analog stick and getting same thing. Only button that works on wired 360 controller is select which shuts the emulator down. Want to get reicast working because lr-flycast performance isn’t as good. Just updated retropie to 4.5
-
@funkotron77
configure the controller using Retropie Setup, found inconfiguration > reicast
(keyboard required).You may have to monkey around with the configs. SSH or Samba and programmer's notepad are most apt.
samba:\\ipaddress\configs\dreamcast\mappings\
I'm still uncertain about the namespace for these controller configs, I also recall there was an alternate(or altogether separate) folder where it loads these configurations from.
(Which might be located in the root filesystem at:
/home/$USER/.config/reicast/
)There should be one for the XBOX controller, and the input numbers (544, 543, 312, etc.) need to match what was displayed when configuring the reicast-input.
Using SSH the reicast-input can be called directly. (excuse if this isn't correctly recalled from memory, use
ls
"directory" if the file is called something else)
/opt/retropie/emulators/reicast/bin/reicast-input
I think you could also use
evtest /dev/input/event#
(the controller event # will be 0-6 depending on whatever it was assigned)
or
jstest /dev/input/js#
sudo apt install evtest
if evtest isn't installed.Using one of the test apps you will be able to read the events from the controller and discern the number that needs to be applied to the controller_~xbox.cfg using pn(programmers notepad).
If simply editing the cfg and saving doesn't work, then the file may have to be renamed to evdev_~xbox.cfg or it may need to be copied to that alternative directory mentioned before, I'm fairly uncertain about this but at least it is thorough monkey business.
If there was an easier way, it would be automatic configuration. And it is possible that all that needed to be done is to once again initialize "Configure Input" from the EmulationStation startmenu after reicast was installed for it to work.
Could also try running the reicast-input with root.
sudo /opt/retropie/emulators/reicast/bin/reicast-input
or
sudo /opt/retropie/emulators/reicast/bin/reicast-config
I don't remember. -
@Efriim thanks for the detailed reply pal. I tried the evtest thing and what is being output seems to match the .cfg file for the joysticks I’m trying to use. I’m going to try resetting the input config from ES and see if that works.
-
@funkotron77
I have a feeling it is this alternate directory I mentioned.
You should be able to find it by:
sudo find /home/pi -name evdev_*
find /home/pi -name reicast
sudo find /opt/ -name evdev_*
sudo find /etc/ -name evdev_*
sudo find / -name evdev_*
in that order, it is most likely in /home/, but i'm not an expert with using find.If you find this directory, there should be mappings somewhere and by my postulation you should find an evdev_xbox.cfg with the correct mapping for exit and none others.
-
@joelkolb Maaaaaaaaaan, you saved my 2 weeks of trying trying, searching.... i have this controller issue since i bought a lenovo m93p thinkcentre for my ne arcade cabinet. The PS4 Controller works without mapping, but i couldn't map my arcade controllers with USB encoder. Anyway thank you so much for your post. I'm so happy after all this houers to fix that problem. Thx a lot...
-
@manjo said in Can't get controller working in Reicast:
@joelkolb Maaaaaaaaaan, you saved my 2 weeks of trying trying, searching.... i have this controller issue since i bought a lenovo m93p thinkcentre for my ne arcade cabinet. The PS4 Controller works without mapping, but i couldn't map my arcade controllers with USB encoder. Anyway thank you so much for your post. I'm so happy after all this houers to fix that problem. Thx a lot...
hey can you go over the steps you did to make this work, I too am trying to configure arcade controls via usb encoder.
-
Thanks for the long explanation, but you forgot to mention how you remapped your working controller. Through emulation station or the script with reicast or ```
sudo /opt/retropie/emulators/reicast/bin/reicast-joyconfig -
@Plex7 I most certainly did mention how I remapped my working controller. It would have been a pretty pointless explaination otherwise.
tl;dr: You must use a controller with an analog stick to run "+Start Reicast" to navigate the Reicast menu and go to Settings/Controls and then remap your buttons on the controller without an analog stick. reicast-joyconfig incorrectly maps exit and start to clicking on the analog sticks. This will cause you to get stuck once you launch a game using a controller without an analog stick. Remapping your buttons in this interface will fix this and get your analog-stick-less controller working in Reicast.
-
@joelkolb Sorry you're correct. I am unable to get to settings though using a logitech F710 and a F310. You used a Pro controller? So far this one and an xbox controller works....
-
@Plex7 I used an 8BitDo SN30 Pro as my controller with analog sticks for the setup. If I had to take a guess at why you're having trouble I'd say it has something to do with the fact that your controllers all use Xinput. The controllers I used are all Dinput. Unfortunately, if that is the issue I don't know what to tell you to get it working with Xinput controllers.
-
I think you're onto something. All my logitech are set to Xinput. I will switch to Dinput and report back.
-
@joelkolb My logitech F310 has a switch to switch from one or the other. Did a fresh remap using emulationstation and the script, and the analog stick is still unresponsive to enter settings in start reicast.
Tagged you in my personal thread. I posted my config files.
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.