RetroPie forum home
    • Recent
    • Tags
    • Popular
    • Home
    • Docs
    • Register
    • Login
    Please do not post a support request without first reading and following the advice in https://retropie.org.uk/forum/topic/3/read-this-first

    8bitdo SN30 Pro+ Controllers work in emulationstation, but not once a ROM starts.

    Scheduled Pinned Locked Moved Help and Support
    8bitdoubuntubluetooth
    3 Posts 2 Posters 715 Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • O
      ocran
      last edited by

      Pi Model or other hardware: Lenovo ThinkCentre Tiny M93P with wifi and Bluetooth
      Power Supply used: N/A
      RetroPie Version Used (eg 3.6, 3.8.1, 4.1 - do not write latest):

      Installed with https://github.com/RetroPie/RetroPie-Setup.git using the directions at https://retropie.org.uk/docs/Debian/

      git log -n1
      commit b3acb001fcf6276a2ef5c5b4caca135b399797f8 (grafted, HEAD -> master, origin/master, origin/HEAD)
      Author: Jools Wills <buzz@exotica.org.uk>
      Date:   Sat Oct 16 23:23:20 2021 +0100
      
          Merge pull request #3416 from cmitu/mame-qt5-fix
          
          mame: update QT5 dependency list
      

      Built From: RetroPie-Setup.git (See above) on Ubuntu 20.04.3 LTS. System is up to date.
      USB Devices connected: Len0vo Keyboard and Mouse.
      Controller used: 8bitdo SN30 Pro+
      Error messages received: None
      Verbose log:

      Parameters: 
      Executing: /opt/retropie/emulators/retroarch/bin/retroarch -L /opt/retropie/libretrocores/lr-snes9x/snes9x_libretro.so --config /opt/retropie/configs/snes/retroarch.cfg "/home/game/RetroPie/roms/snes/Super Mario World USA.sfc" --verbose --appendconfig /dev/shm/retroarch.cfg
      [INFO] RetroArch 1.9.7 (Git 8373ac6)
      [INFO] === Build =======================================
      [INFO] CPU Model Name: Intel(R) Core(TM) i5-4570T CPU @ 2.90GHz
      [INFO] Capabilities:  MMX MMXEXT SSE SSE2 SSE3 SSSE3 SSE4 SSE4.2 AES AVX
      [INFO] Built: Oct 18 2021
      [INFO] Version: 1.9.7
      [INFO] Git: 8373ac6
      [INFO] =================================================
      [INFO] [Input]: Found input driver: "x".
      [INFO] [Core]: Loading dynamic libretro core from: "/opt/retropie/libretrocores/lr-snes9x/snes9x_libretro.so"
      [INFO] [Overrides]: No core-specific overrides found at "/home/game/.config/retroarch/config/Snes9x/Snes9x.cfg".
      [INFO] [Overrides]: No content-dir-specific overrides found at "/home/game/.config/retroarch/config/Snes9x/snes.cfg".
      [INFO] [Overrides]: No game-specific overrides found at "/home/game/.config/retroarch/config/Snes9x/Super Mario World USA.cfg".
      [INFO] [Environ]: GET_CORE_OPTIONS_VERSION.
      [INFO] [Environ]: GET_LANGUAGE: "0".
      [INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_INTL.
      [INFO] [Environ]: SET_CONTROLLER_INFO.
      [INFO] [Remaps]: Remap directory: "/opt/retropie/configs/snes/".
      [INFO] [Overrides]: Redirecting save file to "/home/game/RetroPie/roms/snes/Super Mario World USA.srm".
      [INFO] [Overrides]: Redirecting save state to "/home/game/RetroPie/roms/snes/Super Mario World USA.state".
      [INFO] [Environ]: GET_LOG_INTERFACE.
      [INFO] [Environ]: SYSTEM_DIRECTORY: "/home/game/RetroPie/BIOS".
      [INFO] [Environ]: GET_SAVE_DIRECTORY.
      [INFO] [Environ]: SET_SUPPORT_ACHIEVEMENTS: yes.
      [INFO] [Environ]: PERFORMANCE_LEVEL: 12.
      [INFO] [CONTENT LOAD]: Loading content file: /home/game/RetroPie/roms/snes/Super Mario World USA.sfc
      [INFO] Did not find a valid content patch.
      [INFO] [Environ]: SET_INPUT_DESCRIPTORS:
      [libretro INFO] "SUPER MARIOWORLD" [checksum ok] LoROM, 4Mbits, ROM+RAM+BAT, NTSC, SRAM:16Kbits, ID:____, CRC32:B19ED489
      [INFO] [Environ]: SET_PIXEL_FORMAT: RGB565.
      [INFO] [SRAM]: Skipping SRAM load..
      [INFO] Version of libretro API: 1
      [INFO] Compiled against API: 1
      [INFO] [Audio]: Set audio input rate to: 31987.32 Hz.
      [INFO] [Video]: Video @ 1920x1080
      [ERROR] [Wayland]: Failed to connect to Wayland server.
      [INFO] [GLX]: GLX_EXT_swap_control_tear supported.
      [INFO] [GL]: Found GL context: x
      [INFO] [GL]: Detecting screen resolution 1920x1080.
      [INFO] [GLX]: Window manager is GNOME Shell.
      [INFO] [XINERAMA]: Xinerama version: 1.1.
      [INFO] [XINERAMA]: Xinerama screens: 1.
      [INFO] [GLX]: Using Xinerama on screen #0.
      [INFO] [GLX]: X = 0, Y = 0, W = 1920, H = 1080.
      [INFO] [GLX]: Using windowed fullscreen.
      [INFO] [GLX]: Found swap function: glXSwapIntervalEXT.
      [INFO] [GL]: Vendor: Intel Open Source Technology Center, Renderer: Mesa DRI Intel(R) HD Graphics 4600 (HSW GT2).
      [INFO] [GL]: Version: 3.0 Mesa 21.0.3.
      [INFO] [GL]: Using resolution 1920x1080
      [INFO] [GL]: Default shader backend found: glsl.
      [INFO] [Shaders]: Configuration file shader set to .
      [INFO] [Shaders]: Configuration file shader set to .
      [INFO] [Shaders]: Configuration file shader set to .
      [INFO] [Shader driver]: Using GLSL shader backend.
      [INFO] [GLSL]: Checking GLSL shader support ...
      [WARN] [GL]: Stock GLSL shaders will be used.
      [INFO] [GLSL]: Found GLSL vertex shader.
      [INFO] [GLSL]: Found GLSL fragment shader.
      [INFO] [GLSL]: Linking GLSL program.
      [INFO] [GLSL]: Found GLSL vertex shader.
      [INFO] [GLSL]: Found GLSL fragment shader.
      [INFO] [GLSL]: Linking GLSL program.
      [INFO] [GLSL]: Found GLSL vertex shader.
      [INFO] [GLSL]: Found GLSL fragment shader.
      [INFO] [GLSL]: Linking GLSL program.
      [INFO] [GL]: Using 4 textures.
      [INFO] [GL]: Loaded 1 program(s).
      [INFO] [GL]: Using GL_RGB565 for texture uploads.
      [INFO] [udev]: Pad #0 (/dev/input/event5) supports 0 force feedback effects.
      [INFO] [udev]: Pad #1 (/dev/input/event14) supports 0 force feedback effects.
      [INFO] [Joypad]: Found joypad driver: "udev".
      [INFO] [Font]: Using font rendering backend: stb-unicode.
      [INFO] [X11]: Suspending screensaver (X11, xdg-screensaver).
      [INFO] [Video]: Found display server: x11
      [INFO] [PulseAudio]: Requested 24576 bytes buffer, got 18432.
      [INFO] [Display]: Found display driver: "gl".
      [INFO] [Font]: Using font rendering backend: stb-unicode.
      [INFO] [Font]: Using font rendering backend: stb-unicode.
      [INFO] [Font]: Using font rendering backend: stb-unicode.
      [INFO] [Environ]: SET_SUBSYSTEM_INFO.
      [INFO] [Playlist]: Loading history file: [/opt/retropie/configs/snes/content_history.lpl].
      [INFO] [Playlist]: Loading history file: [/opt/retropie/configs/snes/content_music_history.lpl].
      [INFO] [Playlist]: Loading history file: [/opt/retropie/configs/snes/content_video_history.lpl].
      [INFO] [Playlist]: Loading history file: [/opt/retropie/configs/snes/content_image_history.lpl].
      [INFO] [Playlist]: Loading favorites file: [/opt/retropie/configs/snes/content_favorites.lpl].
      [INFO] [Environ]: SET_GEOMETRY.
      [INFO] [GLX]: Resized fullscreen resolution to 1920x1080.
      [INFO] [SRAM]: Saving RAM type #0 to "/home/game/RetroPie/roms/snes/Super Mario World USA.srm".
      [INFO] [SRAM]: Saved successfully to "/home/game/RetroPie/roms/snes/Super Mario World USA.srm".
      [INFO] [Core]: Content ran for a total of: 00 hours, 00 minutes, 21 seconds.
      [INFO] [Core]: Unloading game..
      [INFO] [PulseAudio]: Pausing.
      [INFO] [Core]: Unloading core..
      [INFO] [Core]: Unloading core symbols..
      [INFO] [Core Options]: Saved core options file to "/opt/retropie/configs/all/retroarch-core-options.cfg"
      [INFO] [XINERAMA]: Xinerama version: 1.1.
      [INFO] [XINERAMA]: Xinerama screens: 1.
      [INFO] [XINERAMA]: Saved monitor #0.
      [INFO] [Video]: Does not have enough samples for monitor refresh rate estimation. Requires to run for at least 4096 frames.
      [INFO] [Video]: Does not have enough samples for monitor refresh rate estimation. Requires to run for at least 4096 frames.
      Map_LoROMMap
      
      

      Guide used: https://retropie.org.uk/docs/Debian/
      File: -
      Emulator: lr-snes9x
      Attachment of config files: -
      How to replicate the problem:

      When trying to use 8bitdo SN30 Pro+ with Retorpie the controller works fine in emulation station, but it does not work once a game starts. It does not seem like a single buttons maps into the ROM. I have updated the 8bitdo SN30 Pro+ firmware to v5.02.

      I have paired the controller in xinput mode, and dinput mode and both modes result in the same configuration.

      Here is the emulation station input config

      <?xml version="1.0"?>
      <inputList>
        <inputAction type="onfinish">
          <command>/opt/retropie/supplementary/emulationstation/scripts/inputconfiguration.sh</command>
        </inputAction>
        <inputConfig type="joystick" deviceName="8BitDo SN30 Pro+" deviceGUID="05000000c82d00000261000000010000">
          <input name="rightanalogup" type="axis" id="3" value="-1"/>
          <input name="pageup" type="button" id="6" value="1"/>
          <input name="rightanalogdown" type="axis" id="3" value="1"/>
          <input name="up" type="hat" id="0" value="1"/>
          <input name="left" type="hat" id="0" value="8"/>
          <input name="select" type="button" id="10" value="1"/>
          <input name="rightanalogleft" type="axis" id="2" value="1"/>
          <input name="leftanalogdown" type="axis" id="1" value="1"/>
          <input name="leftanalogright" type="axis" id="0" value="1"/>
          <input name="right" type="hat" id="0" value="2"/>
          <input name="leftanalogleft" type="axis" id="0" value="-1"/>
          <input name="rightanalogright" type="axis" id="2" value="-1"/>
          <input name="pagedown" type="button" id="7" value="1"/>
          <input name="leftanalogup" type="axis" id="1" value="-1"/>
          <input name="y" type="button" id="4" value="1"/>
          <input name="x" type="button" id="3" value="1"/>
          <input name="down" type="hat" id="0" value="4"/>
          <input name="start" type="button" id="11" value="1"/>
          <input name="b" type="button" id="1" value="1"/>
          <input name="a" type="button" id="0" value="1"/>
        </inputConfig>
      </inputList>
      

      and here is the retroarch config

      cat /opt/retropie/configs/all/retroarch-joypads/8BitDo\ SN30\ Pro+.cfg 
      input_device = "8BitDo SN30 Pro+"
      input_driver = "udev"
      input_enable_hotkey_btn = "10"
      input_r3_btn = "14"
      input_r_y_minus_axis = "-3"
      input_l_btn = "6"
      input_load_state_btn = "6"
      input_r_y_plus_axis = "+3"
      input_up_btn = "h0up"
      input_up_btn_label = "Dpad Up"
      input_left_btn = "h0left"
      input_left_btn_label = "Dpad Left"
      input_state_slot_decrease_btn = "h0left"
      input_select_btn = "10"
      input_r2_axis = "-4"
      input_r_x_minus_axis = "+2"
      input_l_y_plus_axis = "+1"
      input_l_y_plus_axis_label = "LS Down"
      input_l_x_plus_axis = "+0"
      input_l_x_plus_axis_label = "LS Right"
      input_right_btn = "h0right"
      input_right_btn_label = "Dpad Right"
      input_state_slot_increase_btn = "h0right"
      input_l2_btn = "8"
      input_l_x_minus_axis = "-0"
      input_l_x_minus_axis_label = "LS Left"
      input_r_x_plus_axis = "-2"
      input_r_btn = "7"
      input_save_state_btn = "7"
      input_l_y_minus_axis = "-1"
      input_l_y_minus_axis_label = "LS Up"
      input_y_btn = "4"
      input_x_btn = "3"
      input_x_btn_label = "X"
      input_menu_toggle_btn = "3"
      input_down_btn = "h0down"
      input_down_btn_label = "Dpad Down"
      input_start_btn = "11"
      input_exit_emulator_btn = "11"
      input_b_btn = "1"
      input_reset_btn = "1"
      input_a_btn = "0"
      

      What is my next debugging step?

      1 Reply Last reply Reply Quote 0
      • mituM
        mitu Global Moderator
        last edited by

        Please use pastebin.com for log file and large text files.

        1 Reply Last reply Reply Quote 0
        • O
          ocran
          last edited by

          Here is a potential solution

          1. From emulationstation, enter RetroPie configuration
          2. Then RetroArch
          3. In the Main Menu of RetroArch, select Settings -> Input

          From there, go down to Port 1 Controls and update the following

          1. Set Device Type to RetroPad with Analog
          2. Set Device index to 8BitDo SN30 Pro+

          I was able to get two controller working with this work around.

          Versions

          Program Version / Hash
          emulationstation 2.9.6RP
          retroarch-setup.sh b3acb001fcf6276a2ef5c5b4caca135b399797f8
          retroarch 8373ac6

          In hindsight having a keyboard plugged in may have been problematic in regards to it defaulting to the primary controller.

          1 Reply Last reply Reply Quote 0
          • First post
            Last post

          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.