RetroPie / RetroPie-Setup

Shell script to set up a Raspberry Pi/Odroid/PC with RetroArch emulator and various cores
Other
10.04k stars 1.38k forks source link

Controller configuration fails #1155

Closed nschloe closed 8 years ago

nschloe commented 8 years ago

As of recently, people are having problems getting their controllers configured. The controller works nicely in EmulationStation, but when starting any game, a yellow

controler xyz not configured

will appear on the screen and controls don't work. I can reproduce this on Jessie 3.3, others have the issue on Wheezy.

joolswills commented 8 years ago

Looking at the thread it looks specific to certain controllers - is that correct ?

I need some files to aid in debugging this as I don't any logitech controllers.

Please can you post a copy of (after configuring controls in ES)

~/.emulationstation/es_temporaryinput.cfg

any files in /opt/retropie/configs/all/retroarch-joypads/

and after configuring controls in ES ssh in and run

/opt/retropie/supplementary/emulationstation/scripts/inputconfiguration.sh

and post the output. thanks.

Javison commented 8 years ago

Hi,

Seems that the "Automatic Configuration > Xbox / Xbox 360 gamepad driver" is not working properly on version 3.3. I cant find the folder "/etc/rc.local" or "/opt/retropie/supplementary/xboxdrv" after use the Automatic configuration and reboot.

output /opt/retropie/supplementary/emulationstation/scripts/inputconfiguration.sh: Input type is 'joystick'. Configuring 'emulationstation' Configuring 'mupen64plus' Configuring 'reicast' Configuring 'retroarch'

es_temporaryinput.cfg.txt MicrosoftX-Box360pad.cfg.txt

Thanks

joolswills commented 8 years ago

@Javison please open a new issue for that - this thread is not related to the xbox driver

joolswills commented 8 years ago

@Javison /etc/rc.local is a file and should be present - did you upgrade to 3.3 or use the image ? Update retropie-setup and then disable/re-eable the xbox 360 driver from retropie-setup.

nschloe commented 8 years ago

@joolswills

pi@retropie:~ $ cat ~/.emulationstation/es_temporaryinput.cfg 
pi@retropie:~ $
pi@retropie:~ $ cat /opt/retropie/configs/all/retroarch-joypads/LogitechGamepadF310.cfg 
pi@retropie:~ $
$ /opt/retropie/supplementary/emulationstation/scripts/inputconfiguration.sh
/home/pi/.emulationstation/es_temporaryinput.cfg:1.1: Document is empty

^
/home/pi/.emulationstation/es_temporaryinput.cfg:1.1: Start tag expected, '<' not found

^
/home/pi/.emulationstation/es_temporaryinput.cfg:1.1: Document is empty

^
/home/pi/.emulationstation/es_temporaryinput.cfg:1.1: Start tag expected, '<' not found

^
/home/pi/.emulationstation/es_temporaryinput.cfg:1.1: Document is empty

^
/home/pi/.emulationstation/es_temporaryinput.cfg:1.1: Start tag expected, '<' not found

^
Input type is ''.
Configuring 'emulationstation'
Configuring 'mupen64plus'
Configuring 'reicast'
Configuring 'retroarch'
joolswills commented 8 years ago

odd - es_temporaryinput.cfg should be generated by emulationstation.

Please can you post the contents of ~/.emulationstation/es_log.txt (after configuring the device)

please can you also remove /home/pi/.emulationstation/es_temporaryinput.cfg and then re-configure the controller inide ES and see if it is generated

nschloe commented 8 years ago

@joolswills

$ cat ~/.emulationstation/es_log.txt
lvl2:   EmulationStation - v2.0.1a, built Oct 10 2015 - 03:00:02
lvl2:   Creating surface...
lvl2:   Created window successfully.
lvl2:   Added known joystick Logitech Gamepad F310 (instance ID: 0, device index: 0)
lvl2:   Checking available OpenGL extensions...
lvl2:    ARB_texture_non_power_of_two: MISSING
lvl2:   Loading system config file /etc/emulationstation/es_systems.cfg...
lvl2:   Parsing XML file "/home/pi/.emulationstation/gamelists/amstradcpc/gamelist.xml"...
lvl1:   System "amstradcpc" has no games! Ignoring it.
lvl2:   Parsing XML file "/home/pi/.emulationstation/gamelists/atari2600/gamelist.xml"...
lvl1:   System "atari2600" has no games! Ignoring it.
lvl2:   Parsing XML file "/home/pi/.emulationstation/gamelists/atari5200/gamelist.xml"...
lvl1:   System "atari5200" has no games! Ignoring it.
lvl2:   Parsing XML file "/home/pi/.emulationstation/gamelists/atari7800/gamelist.xml"...
lvl1:   System "atari7800" has no games! Ignoring it.
lvl2:   Parsing XML file "/home/pi/.emulationstation/gamelists/atari800/gamelist.xml"...
lvl1:   System "atari800" has no games! Ignoring it.
lvl2:   Parsing XML file "/home/pi/.emulationstation/gamelists/atarilynx/gamelist.xml"...
lvl1:   System "atarilynx" has no games! Ignoring it.
lvl2:   Parsing XML file "/home/pi/.emulationstation/gamelists/atarist/gamelist.xml"...
lvl1:   System "atarist" has no games! Ignoring it.
lvl2:   Parsing XML file "/home/pi/.emulationstation/gamelists/c64/gamelist.xml"...
lvl1:   System "c64" has no games! Ignoring it.
lvl1:     Unknown platform for system "coco" (platform "coco" from list "coco")
lvl2:   Parsing XML file "/home/pi/.emulationstation/gamelists/coco/gamelist.xml"...
lvl1:   System "coco" has no games! Ignoring it.
lvl1:     Unknown platform for system "dragon32" (platform "dragon32" from list "dragon32")
lvl2:   Parsing XML file "/home/pi/.emulationstation/gamelists/dragon32/gamelist.xml"...
lvl1:   System "dragon32" has no games! Ignoring it.
lvl2:   Parsing XML file "/home/pi/.emulationstation/gamelists/dreamcast/gamelist.xml"...
lvl1:   System "dreamcast" has no games! Ignoring it.
lvl2:   Parsing XML file "/home/pi/.emulationstation/gamelists/fba/gamelist.xml"...
lvl1:   System "fba" has no games! Ignoring it.
lvl1:     Unknown platform for system "fds" (platform "fds" from list "fds")
lvl2:   Parsing XML file "/home/pi/.emulationstation/gamelists/fds/gamelist.xml"...
lvl1:   System "fds" has no games! Ignoring it.
lvl2:   Parsing XML file "/home/pi/.emulationstation/gamelists/gamegear/gamelist.xml"...
lvl1:   System "gamegear" has no games! Ignoring it.
lvl2:   Parsing XML file "/home/pi/.emulationstation/gamelists/gb/gamelist.xml"...
lvl2:   Parsing XML file "/home/pi/.emulationstation/gamelists/gba/gamelist.xml"...
lvl1:   System "gba" has no games! Ignoring it.
lvl2:   Parsing XML file "/home/pi/.emulationstation/gamelists/gbc/gamelist.xml"...
lvl1:   System "gbc" has no games! Ignoring it.
lvl2:   Parsing XML file "/home/pi/.emulationstation/gamelists/intellivision/gamelist.xml"...
lvl1:   System "intellivision" has no games! Ignoring it.
lvl2:   Parsing XML file "/home/pi/.emulationstation/gamelists/mame-advmame/gamelist.xml"...
lvl1:   System "mame-advmame" has no games! Ignoring it.
lvl2:   Parsing XML file "/home/pi/.emulationstation/gamelists/mame-libretro/gamelist.xml"...
lvl1:   System "mame-libretro" has no games! Ignoring it.
lvl2:   Parsing XML file "/home/pi/.emulationstation/gamelists/mame-mame4all/gamelist.xml"...
lvl1:   System "mame-mame4all" has no games! Ignoring it.
lvl2:   Parsing XML file "/home/pi/.emulationstation/gamelists/mastersystem/gamelist.xml"...
lvl1:   System "mastersystem" has no games! Ignoring it.
lvl2:   Parsing XML file "/home/pi/.emulationstation/gamelists/megadrive/gamelist.xml"...
lvl1:   System "megadrive" has no games! Ignoring it.
lvl2:   Parsing XML file "/home/pi/.emulationstation/gamelists/msx/gamelist.xml"...
lvl1:   System "msx" has no games! Ignoring it.
lvl2:   Parsing XML file "/home/pi/.emulationstation/gamelists/n64/gamelist.xml"...
lvl1:   System "n64" has no games! Ignoring it.
lvl2:   Parsing XML file "/home/pi/.emulationstation/gamelists/neogeo/gamelist.xml"...
lvl1:   System "neogeo" has no games! Ignoring it.
lvl2:   Parsing XML file "/home/pi/.emulationstation/gamelists/nes/gamelist.xml"...
lvl2:   Parsing XML file "/home/pi/.emulationstation/gamelists/ngp/gamelist.xml"...
lvl1:   System "ngp" has no games! Ignoring it.
lvl2:   Parsing XML file "/home/pi/.emulationstation/gamelists/pcengine/gamelist.xml"...
lvl1:   System "pcengine" has no games! Ignoring it.
lvl2:   Parsing XML file "/home/pi/.emulationstation/gamelists/psp/gamelist.xml"...
lvl1:   System "psp" has no games! Ignoring it.
lvl2:   Parsing XML file "/home/pi/.emulationstation/gamelists/psx/gamelist.xml"...
lvl1:   System "psx" has no games! Ignoring it.
lvl2:   Parsing XML file "/home/pi/.emulationstation/gamelists/retropie/gamelist.xml"...
lvl1:     Unknown platform for system "scummvm" (platform "scummvm" from list "scummvm")
lvl2:   Parsing XML file "/home/pi/.emulationstation/gamelists/sega32x/gamelist.xml"...
lvl1:   System "sega32x" has no games! Ignoring it.
lvl2:   Parsing XML file "/home/pi/.emulationstation/gamelists/segacd/gamelist.xml"...
lvl1:   System "segacd" has no games! Ignoring it.
lvl1:     Unknown platform for system "sg-1000" (platform "sg-1000" from list "sg-1000")
lvl2:   Parsing XML file "/home/pi/.emulationstation/gamelists/sg-1000/gamelist.xml"...
lvl1:   System "sg-1000" has no games! Ignoring it.
lvl2:   Parsing XML file "/home/pi/.emulationstation/gamelists/snes/gamelist.xml"...
lvl1:     Unknown platform for system "vectrex" (platform "vectrex" from list "vectrex")
lvl2:   Parsing XML file "/home/pi/.emulationstation/gamelists/vectrex/gamelist.xml"...
lvl1:   System "vectrex" has no games! Ignoring it.
lvl1:     Unknown platform for system "videopac" (platform "videopac" from list "videopac")
lvl2:   Parsing XML file "/home/pi/.emulationstation/gamelists/videopac/gamelist.xml"...
lvl1:   System "videopac" has no games! Ignoring it.
lvl2:   Parsing XML file "/home/pi/.emulationstation/gamelists/wonderswan/gamelist.xml"...
lvl1:   System "wonderswan" has no games! Ignoring it.
lvl1:     Unknown platform for system "zmachine" (platform "zmachine" from list "zmachine")
lvl2:   Parsing XML file "/home/pi/.emulationstation/gamelists/zxspectrum/gamelist.xml"...
lvl1:   System "zxspectrum" has no games! Ignoring it.
lvl2:    req sound [basic.launch]
lvl2:      (missing)

please can you also remove /home/pi/.emulationstation/es_temporaryinput.cfg and then re-configure the controller inide ES and see if it is generated

After having removed the file, the pad continues to work in ES, and continues to not work in games. How can I "re-configure the controller inside ES"?

joolswills commented 8 years ago

press your button configured as start and go to configure input. I need to see the log files and /home/pi/.emulationstation/es_temporaryinput.cfg after doing this.

joolswills commented 8 years ago

and please post the contents of /home/pi/.emulationstation/es_input.cfg

nschloe commented 8 years ago

press your button configured as start and go to configure input.

Got it.

I need to see the log files

cat ~/.emulationstation/es_log.txt
lvl2:   EmulationStation - v2.0.1a, built Oct 10 2015 - 03:00:02
lvl2:   Creating surface...
lvl2:   Created window successfully.
lvl2:   Added known joystick Logitech Gamepad F310 (instance ID: 0, device index: 0)
lvl2:   Checking available OpenGL extensions...
lvl2:    ARB_texture_non_power_of_two: MISSING
lvl2:   Loading system config file /etc/emulationstation/es_systems.cfg...
lvl2:   Parsing XML file "/home/pi/.emulationstation/gamelists/amstradcpc/gamelist.xml"...
lvl1:   System "amstradcpc" has no games! Ignoring it.
lvl2:   Parsing XML file "/home/pi/.emulationstation/gamelists/atari2600/gamelist.xml"...
lvl1:   System "atari2600" has no games! Ignoring it.
lvl2:   Parsing XML file "/home/pi/.emulationstation/gamelists/atari5200/gamelist.xml"...
lvl1:   System "atari5200" has no games! Ignoring it.
lvl2:   Parsing XML file "/home/pi/.emulationstation/gamelists/atari7800/gamelist.xml"...
lvl1:   System "atari7800" has no games! Ignoring it.
lvl2:   Parsing XML file "/home/pi/.emulationstation/gamelists/atari800/gamelist.xml"...
lvl1:   System "atari800" has no games! Ignoring it.
lvl2:   Parsing XML file "/home/pi/.emulationstation/gamelists/atarilynx/gamelist.xml"...
lvl1:   System "atarilynx" has no games! Ignoring it.
lvl2:   Parsing XML file "/home/pi/.emulationstation/gamelists/atarist/gamelist.xml"...
lvl1:   System "atarist" has no games! Ignoring it.
lvl2:   Parsing XML file "/home/pi/.emulationstation/gamelists/c64/gamelist.xml"...
lvl1:   System "c64" has no games! Ignoring it.
lvl1:     Unknown platform for system "coco" (platform "coco" from list "coco")
lvl2:   Parsing XML file "/home/pi/.emulationstation/gamelists/coco/gamelist.xml"...
lvl1:   System "coco" has no games! Ignoring it.
lvl1:     Unknown platform for system "dragon32" (platform "dragon32" from list "dragon32")
lvl2:   Parsing XML file "/home/pi/.emulationstation/gamelists/dragon32/gamelist.xml"...
lvl1:   System "dragon32" has no games! Ignoring it.
lvl2:   Parsing XML file "/home/pi/.emulationstation/gamelists/dreamcast/gamelist.xml"...
lvl1:   System "dreamcast" has no games! Ignoring it.
lvl2:   Parsing XML file "/home/pi/.emulationstation/gamelists/fba/gamelist.xml"...
lvl1:   System "fba" has no games! Ignoring it.
lvl1:     Unknown platform for system "fds" (platform "fds" from list "fds")
lvl2:   Parsing XML file "/home/pi/.emulationstation/gamelists/fds/gamelist.xml"...
lvl1:   System "fds" has no games! Ignoring it.
lvl2:   Parsing XML file "/home/pi/.emulationstation/gamelists/gamegear/gamelist.xml"...
lvl1:   System "gamegear" has no games! Ignoring it.
lvl2:   Parsing XML file "/home/pi/.emulationstation/gamelists/gb/gamelist.xml"...
lvl2:   Parsing XML file "/home/pi/.emulationstation/gamelists/gba/gamelist.xml"...
lvl1:   System "gba" has no games! Ignoring it.
lvl2:   Parsing XML file "/home/pi/.emulationstation/gamelists/gbc/gamelist.xml"...
lvl1:   System "gbc" has no games! Ignoring it.
lvl2:   Parsing XML file "/home/pi/.emulationstation/gamelists/intellivision/gamelist.xml"...
lvl1:   System "intellivision" has no games! Ignoring it.
lvl2:   Parsing XML file "/home/pi/.emulationstation/gamelists/mame-advmame/gamelist.xml"...
lvl1:   System "mame-advmame" has no games! Ignoring it.
lvl2:   Parsing XML file "/home/pi/.emulationstation/gamelists/mame-libretro/gamelist.xml"...
lvl1:   System "mame-libretro" has no games! Ignoring it.
lvl2:   Parsing XML file "/home/pi/.emulationstation/gamelists/mame-mame4all/gamelist.xml"...
lvl1:   System "mame-mame4all" has no games! Ignoring it.
lvl2:   Parsing XML file "/home/pi/.emulationstation/gamelists/mastersystem/gamelist.xml"...
lvl1:   System "mastersystem" has no games! Ignoring it.
lvl2:   Parsing XML file "/home/pi/.emulationstation/gamelists/megadrive/gamelist.xml"...
lvl1:   System "megadrive" has no games! Ignoring it.
lvl2:   Parsing XML file "/home/pi/.emulationstation/gamelists/msx/gamelist.xml"...
lvl1:   System "msx" has no games! Ignoring it.
lvl2:   Parsing XML file "/home/pi/.emulationstation/gamelists/n64/gamelist.xml"...
lvl1:   System "n64" has no games! Ignoring it.
lvl2:   Parsing XML file "/home/pi/.emulationstation/gamelists/neogeo/gamelist.xml"...
lvl1:   System "neogeo" has no games! Ignoring it.
lvl2:   Parsing XML file "/home/pi/.emulationstation/gamelists/nes/gamelist.xml"...
lvl2:   Parsing XML file "/home/pi/.emulationstation/gamelists/ngp/gamelist.xml"...
lvl1:   System "ngp" has no games! Ignoring it.
lvl2:   Parsing XML file "/home/pi/.emulationstation/gamelists/pcengine/gamelist.xml"...
lvl1:   System "pcengine" has no games! Ignoring it.
lvl2:   Parsing XML file "/home/pi/.emulationstation/gamelists/psp/gamelist.xml"...
lvl1:   System "psp" has no games! Ignoring it.
lvl2:   Parsing XML file "/home/pi/.emulationstation/gamelists/psx/gamelist.xml"...
lvl1:   System "psx" has no games! Ignoring it.
lvl2:   Parsing XML file "/home/pi/.emulationstation/gamelists/retropie/gamelist.xml"...
lvl1:     Unknown platform for system "scummvm" (platform "scummvm" from list "scummvm")
lvl2:   Parsing XML file "/home/pi/.emulationstation/gamelists/sega32x/gamelist.xml"...
lvl1:   System "sega32x" has no games! Ignoring it.
lvl2:   Parsing XML file "/home/pi/.emulationstation/gamelists/segacd/gamelist.xml"...
lvl1:   System "segacd" has no games! Ignoring it.
lvl1:     Unknown platform for system "sg-1000" (platform "sg-1000" from list "sg-1000")
lvl2:   Parsing XML file "/home/pi/.emulationstation/gamelists/sg-1000/gamelist.xml"...
lvl1:   System "sg-1000" has no games! Ignoring it.
lvl2:   Parsing XML file "/home/pi/.emulationstation/gamelists/snes/gamelist.xml"...
lvl1:     Unknown platform for system "vectrex" (platform "vectrex" from list "vectrex")
lvl2:   Parsing XML file "/home/pi/.emulationstation/gamelists/vectrex/gamelist.xml"...
lvl1:   System "vectrex" has no games! Ignoring it.
lvl1:     Unknown platform for system "videopac" (platform "videopac" from list "videopac")
lvl2:   Parsing XML file "/home/pi/.emulationstation/gamelists/videopac/gamelist.xml"...
lvl1:   System "videopac" has no games! Ignoring it.
lvl2:   Parsing XML file "/home/pi/.emulationstation/gamelists/wonderswan/gamelist.xml"...
lvl1:   System "wonderswan" has no games! Ignoring it.
lvl1:     Unknown platform for system "zmachine" (platform "zmachine" from list "zmachine")
lvl2:   Parsing XML file "/home/pi/.emulationstation/gamelists/zxspectrum/gamelist.xml"...
lvl1:   System "zxspectrum" has no games! Ignoring it.
lvl2:   Configuring device 0 (Logitech Gamepad F310).
lvl2:     Mapping [Hat 0 up] -> Up
lvl2:     Mapping [Hat 0 down] -> Down
lvl2:     Mapping [Hat 0 left] -> Left
lvl2:     Mapping [Hat 0 right] -> Right
lvl2:     Mapping [Button 7] -> Start
lvl2:     Mapping [Button 6] -> Select
lvl2:     Mapping [Button 0] -> A
lvl2:     Mapping [Button 1] -> B
lvl2:     Mapping [Button 2] -> X
lvl2:     Mapping [Button 3] -> Y
lvl2:     Mapping [Button 4] -> LeftBottom
lvl2:     Mapping [Button 5] -> RightBottom
lvl2:     Mapping [Axis 2-] -> LeftTop
lvl2:     Mapping [Button 9] -> LeftThumb
lvl2:     Mapping [Button 10] -> RightThumb
lvl2:     Mapping [Axis 1-] -> LeftAnalogUp
lvl2:     Mapping [Axis 1+] -> LeftAnalogDown
lvl2:     Mapping [Axis 0-] -> LeftAnalogLeft
lvl2:     Mapping [Axis 0+] -> LeftAnalogRight
lvl2:     Mapping [Axis 4-] -> RightAnalogUp
lvl2:     Mapping [Axis 4+] -> RightAnalogDown
lvl2:     Mapping [Axis 3-] -> RightAnalogLeft
lvl2:     Mapping [Axis 3+] -> RightAnalogRight
lvl2:       /opt/retropie/supplementary/emulationstation/scripts/inputconfiguration.sh
cat /home/pi/.emulationstation/es_temporaryinput.cfg 
<?xml version="1.0"?>
<inputList>
    <inputConfig type="joystick" deviceName="Logitech Gamepad F310" deviceGUID="030000006d0400001dc2000014400000">
        <input name="a" type="button" id="0" value="1" />
        <input name="b" type="button" id="1" value="1" />
        <input name="down" type="hat" id="0" value="4" />
        <input name="left" type="hat" id="0" value="8" />
        <input name="leftanalogdown" type="axis" id="1" value="1" />
        <input name="leftanalogleft" type="axis" id="0" value="-1" />
        <input name="leftanalogright" type="axis" id="0" value="1" />
        <input name="leftanalogup" type="axis" id="1" value="-1" />
        <input name="leftbottom" type="button" id="4" value="1" />
        <input name="leftthumb" type="button" id="9" value="1" />
        <input name="lefttop" type="axis" id="2" value="-1" />
        <input name="right" type="hat" id="0" value="2" />
        <input name="rightanalogdown" type="axis" id="4" value="1" />
        <input name="rightanalogleft" type="axis" id="3" value="-1" />
        <input name="rightanalogright" type="axis" id="3" value="1" />
        <input name="rightanalogup" type="axis" id="4" value="-1" />
        <input name="rightbottom" type="button" id="5" value="1" />
        <input name="rightthumb" type="button" id="10" value="1" />
        <input name="select" type="button" id="6" value="1" />
        <input name="start" type="button" id="7" value="1" />
        <input name="up" type="hat" id="0" value="1" />
        <input name="x" type="button" id="2" value="1" />
        <input name="y" type="button" id="3" value="1" />
    </inputConfig>
</inputList>
$ cat /home/pi/.emulationstation/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="Logitech Gamepad F310">
    <input name="pagedown" type="button" id="5" value="1"/>
    <input name="start" type="button" id="7" value="1"/>
    <input name="pageup" type="button" id="4" value="1"/>
    <input name="up" type="hat" id="0" value="1"/>
    <input name="a" type="button" id="0" value="1"/>
    <input name="b" type="button" id="1" value="1"/>
    <input name="down" type="hat" id="0" value="4"/>
    <input name="right" type="hat" id="0" value="2"/>
    <input name="select" type="button" id="6" value="1"/>
    <input name="left" type="hat" id="0" value="8"/>
  </inputConfig>
</inputList>

Still, upon starting a game "Controller XYS not configured" is displayed in yellow for a second and the controls don't work.

joolswills commented 8 years ago

Thanks - so the temporaryinput file is generated - not sure how you ended up with a blank one before. Please can you again run the input configuration as mention in my first reply, and send me the contents of any files in /opt/retropie/configs/all/retroarch-joypads

nschloe commented 8 years ago
$ /opt/retropie/supplementary/emulationstation/scripts/inputconfiguration.sh
Input type is 'joystick'.
Configuring 'emulationstation'
Configuring 'mupen64plus'
Configuring 'reicast'
Configuring 'retroarch'
$ ls -l /opt/retropie/configs/all/retroarch-joypads/
total 8
-rw-r--r-- 1 pi pi 843 Dec 27 16:38 LogitechGamepadF310.cfg
-rw-r--r-- 1 pi pi 843 Dec 27 16:29 LogitechGamepadF310.cfg.bak
$ cat /opt/retropie/configs/all/retroarch-joypads/LogitechGamepadF310.cfg
input_device = "Logitech Gamepad F310"
input_driver = "udev"
input_r_y_plus_axis = "+4"
input_l3_btn = "9"
input_r_x_minus_axis = "-3"
input_r_btn = "5"
input_save_state_btn = "5"
input_l2_axis = "-2"
input_start_btn = "7"
input_exit_emulator_btn = "7"
input_l_y_minus_axis = "-1"
input_l_btn = "4"
input_load_state_btn = "4"
input_up_btn = "h0up"
input_r_y_minus_axis = "-4"
input_a_btn = "0"
input_b_btn = "1"
input_reset_btn = "1"
input_down_btn = "h0down"
input_l_x_plus_axis = "+0"
input_l_y_plus_axis = "+1"
input_r3_btn = "10"
input_right_btn = "h0right"
input_state_slot_increase_btn = "h0right"
input_x_btn = "2"
input_menu_toggle_btn = "2"
input_select_btn = "6"
input_enable_hotkey_btn = "6"
input_l_x_minus_axis = "-0"
input_y_btn = "3"
input_left_btn = "h0left"
input_state_slot_decrease_btn = "h0left"
input_r_x_plus_axis = "+3"
joolswills commented 8 years ago

Thanks. So you have the controller configuration setup for retroarch. It should pick it up.

I will need to see the output from retroarch starting up. Please put a nes rom on the system and from a terminal via ssh run

/opt/retropie/emulators/retroarch/bin/retroarch --verbose -L /opt/retropie/libretrocores/lr-fceumm/fceumm_libretro.so --config /opt/retropie/configs/nes/retroarch.cfg /PATH/TO/NESROM
nschloe commented 8 years ago
/opt/retropie/emulators/retroarch/bin/retroarch --verbose -L /opt/retropie/libretrocores/lr-fceumm/fceumm_libretro.so --config /opt/retropie/configs/nes/retroarch.cfg ~/RetroPie/roms/nes/Ninja\ Gaiden\ \(USA\).nes > out.log 2>&1

http://chunk.io/f/b7ac2108b8e54215963c24fe7ae51862

joolswills commented 8 years ago

hmm, it's looking for another name it seems via retroarch. Does it make any difference if you switch the joypad from "xinput" to "direct input" ?

does it help if you switch the input driver to "udev" - to do this use the "Edit RetroPie/RetroArch configurations" from retropie-setup - choose "Change common RetroArch options" then /opt/retropie/config/all/retroarch.cfg and change input_joypad_driver to "udev"

joolswills commented 8 years ago

Also another thing to try is with xboxdrv - Update retropie-setup script - go to "Xbox / Xbox 360 gamepad driver" from retropie-setup and choose "Enable xboxdrv" - then reboot and reconfigure in emulationstation again (as it should show up as a different device name)

nschloe commented 8 years ago

Does it make any difference if you switch the joypad from "xinput" to "direct input" ?

How do I do this?

does it help if you switch the input driver to "udev"

The yellow font notification now says "Controler XYZ configured", and for some games it seems to work (NES Ninja Gaiden), some others work inconsistently (SNES Super Mario World, D-pad doesn't work), and in some others, the controls don't work at all (SNES Super Mario Kart).

nschloe commented 8 years ago

Also another thing to try is with xboxdrv -

That appears to work, but always recognizes two controllers. No problem in one-player games, but in two-player games, this becomes an issue on the "Player 2, select character" screens.

joolswills commented 8 years ago

sounds like the udev driver might be the fix - but I don't know why it would only work for some - that's odd.

Regarding the controller mode - Isn't there a button on the buttom of your controller to switch the mode ? Should be in the manual ?

chthonik commented 8 years ago

Using the xboxdrv with the logitech 310 worked for me on snes anyways.

chthonik commented 8 years ago

there is a 2nd mode for the 310 controller

nschloe commented 8 years ago

Regarding the controller mode - Isn't there a button on the buttom of your controller to switch the mode? Should be in the manual?

Right, there is. Never really understood what it's about. :)

sounds like the udev driver might be the fix - but I don't know why it would only work for some - that's odd.

One of the things that consistently don't work is skipping the intro screens aka using "start" at first. I've tried a bunch of games now. Some won't work at all. Odd indeed.

nschloe commented 8 years ago

I found that when setting the driver to udev and physically reconnecting the controllers after a game has started, it all works as expected.

joolswills commented 8 years ago

does it help to press the right shoulder button on this controller ? see https://www.reddit.com/r/RetroPie/comments/3yh7o3/pi_zero_latest_retropie_logitech_f310/ and the answers

nschloe commented 8 years ago

Nope. Setting it to udev, plugging out, plugging in after game start works though.

joolswills commented 8 years ago

And switching the input mode of the joypad ? I'd be interested in results using sdl2 input driver as it seems others have been ok with that without having to switch to udev - perhaps related to the joypad mode?

nschloe commented 8 years ago

With sdl2, it's all working fine in ES, but as soon as a game starts, I'm getting

Logitech F310 Gamepad (XInput) (1133/49693) not configured

and the controls don't work.

All of this is with the Logitech XD-swich on X. For D, the device isn't recognized at all, not even in ES.

alexbain commented 8 years ago

Just wanted to chime in that I'm experiencing the same problem (with the same controller). I've tried disconnecting and reconnecting the gamepad after the game has started, but that hasn't worked for me either.

nschloe commented 8 years ago

@alexbain does it say

Logitech F310 Gamepad (XInput) (1133/49693) not configured

for you at start up? Have you tried setting the input driver to udev? (The default SDL2 doesn't work for me either.)

alexbain commented 8 years ago

Yeah, it says exactly that. Tried setting it to udev. Copied your config, too.

alexbain commented 8 years ago

@nschloe - got it working. Try doing this:

  1. Edit /opt/retropie/configs/all/retroarch.cfg
  2. Go to line 338 change to udev
  3. Restart emulationstation

Edit - to be clear, it looks like the input type set on the local config was being overridden by the global config. I was clued into this when i ran the command that @joolswills recommended and noticed some debug output saying that it couldn't find my controller with input type SDL.

nschloe commented 8 years ago

@alexbain The line you're referring to is already set to udev for me. That's how I got it to work with replugging after game start. Does it work from you without replugging?

alexbain commented 8 years ago

Ah, interesting. No - I don't need to unplug/replug. Works fine on load.

nschloe commented 8 years ago

What version of retropie are you running exactly?

alexbain commented 8 years ago

Running off of master, latest commit is b3c2ded4580dfd2c3541800a0d8badb60e3eb4c0

alexbain commented 8 years ago

I found that the f310 config file didn't match what was generated when I ran through the config. While not exactly related to this, here is the MR I created for the working f310 config I now have:

https://github.com/libretro/retroarch-joypad-autoconfig/pull/134

HypotomooseMan commented 8 years ago

I had the same issue on Pi 2B with logitech F310 controller - changed the input driver from SDL2 to UDEV on line 338 and controller is working in NES & SNES Emulators. I'm running retropie Weezy Standard 3.3.1. Thanks for the help, let me know if i can be of any help.

gizmo98 commented 8 years ago

Seems to be sdl2 joypad driver has more cons than pros. If this assumption is true we should switch back to udev as default.

joolswills commented 8 years ago

I have switched it.

Marclh97 commented 8 years ago

I've been killing myself trying to figure out exactly this. I have a rumblepad 2, raspberry pi 2 running jesse, and the latest retropie.

I can't for the life of me get it working in a ROM. It works in emulationstation just fine. But I also can't get any file to appear in /opt/retroarch/configs/all/retroarch-joypads/

I've switched the driver to udev in half a dozen ways and back to sdl2 and rebooted and retried, and back to udev. Right now everything is set to udev. If I unplug and re-plug in game I get the "controller logitech logitech rumble pad 2 USB (something else) not configured" message anew.

I tried installing the xbox drivers for an experiment based on some comments, but now I just have 3 messages regarding controllers not being configured. Any help would be appreciated.

Thanks

biscuits99 commented 8 years ago

Just to confirm the messages in this thread, I have had several comments on my YouTube videos about sdl2 causing the issues described as above, udev fixes it. Although without the retroarch command line option available to re-configure the joypad config file, I'm not sure how to best go about correcting the invalid controller file that is generated via ES (for those controllers that like sdl2 like 8bitdo).

gizmo98 commented 8 years ago

Hi floob. I added a workaround for 8Bitdo controllers and udev. Update RetroPie-Setup and reinstall emulationstation if you would be so kind to test this functionality. Input_joypad_driver has to be udev.

biscuits99 commented 8 years ago

I'll give this a go on the Wheezy version now.

biscuits99 commented 8 years ago

Worked through the bluetooth setup steps 1-4 as written here: https://github.com/RetroPie/RetroPie-Setup/wiki/Setting-up-a-Bluetooth-controller

The FC30 Pro I used worked fine first time.

Here is the /opt/retropie/configs/all/retroarch-joypads/8BitdoFC30Pro.cfg http://pastebin.com/raw/xBNNuqcw

Although I didnt change the input driver

Input driver. Depending on video driver, it might force a different input driver.

input_driver = sdl

Input device driver. (Valid: linuxraw, sdl, dinput)

input_joypad_driver = sdl2

Then I added the wired iBuffallo and they both work fine together.

Although when starting the rom, they both seem to be detected twice. See video: https://youtu.be/ImpQq9oRlfI

Should I try this again but change input_joypad_driver = sdl2 to udev before configuring the joypads?

I have attached ~/.emulationstation at the state it was in after adding the FC30 but before the iBuffallo. emulationstation.zip

gizmo98 commented 8 years ago

Please change input driver to udev: Input device driver. (Valid: linuxraw, sdl, dinput) input_joypad_driver = udev

Input config script decides what to do according to this setting.

biscuits99 commented 8 years ago

Worked through the bluetooth setup steps 1-4 as written here: https://github.com/RetroPie/RetroPie-Setup/wiki/Setting-up-a-Bluetooth-controller

The FC30 Pro I used worked fine first time. Although the hotkeys dont work - this is explained by the mismatch button code entries in the following file.

Here is the /opt/retropie/configs/all/retroarch-joypads/8BitdoFC30Pro.cfg http://pastebin.com/raw/VpKujETU

Then I added the wired iBuffallo and they both work fine together.

I still get a brief error when starting roms of Didnt read the whole file: sys/devices/system/cpu/present Didnt read the whole file: sys/devices/system/cpu/possible

I have attached ~/.emulationstation at the state it was in after adding the FC30 but before the iBuffallo. emulationstation.zip

I have attached ~/.emulationstation at the state it was in after adding the FC30 and the iBuffallo. emulationstation-after.zip

gizmo98 commented 8 years ago

Looks like every button >= 17 should not be touched. What a hack ;-)

gizmo98 commented 8 years ago

@biscuits99 / Floob You could add a if clause around line 249 of retroarch.sh inputconfig script. https://github.com/RetroPie/RetroPie-Setup/blob/master/scriptmodules/supplementary/emulationstation/configscripts/retroarch.sh#L249

This script can be found under /opt/retroPie/supplementery/emulationstation/configscripts/retroarch.sh

if [[ "$input_id" -lt "17" ]]; then
    input_id=$(($input_id+11))
fi
biscuits99 commented 8 years ago

The edited section now reads http://pastebin.com/raw/yKuC6ERE

Worked through the bluetooth setup steps 1-4 as written here: https://github.com/RetroPie/RetroPie-Setup/wiki/Setting-up-a-Bluetooth-controller

The FC30 Pro I used worked fine first time. Although 2 hotkeys dont work (reset and RGUI) - this is explained by the mismatch button code entries in the following file.

Here is the /opt/retropie/configs/all/retroarch-joypads/8BitdoFC30Pro.cfg http://pastebin.com/raw/C42CDnAB

I still get a brief error when starting roms of Didnt read the whole file: sys/devices/system/cpu/present Didnt read the whole file: sys/devices/system/cpu/possible

I have attached ~/.emulationstation here emulationstation.zip

joolswills commented 8 years ago

you can ignore the retroarch warnings - unrelated to controller etc