8bitdo SN30 Pro+ Controllers work in emulationstation, but not once a ROM starts.
-
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?
-
Please use pastebin.com for log file and large text files.
-
Here is a potential solution
- From emulationstation, enter RetroPie configuration
- Then RetroArch
- In the Main Menu of RetroArch, select Settings -> Input
From there, go down to Port 1 Controls and update the following
- Set Device Type to
RetroPad with Analog
- 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.
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.