PS4 Controllers configuration with retroarch custom config Problems



  • Hy, i got a problem with my custom retroarch config with PS4 controllers. Only the joystick is working and I don't get why. Before I was using 8bitdo SFC30 pads and it was working flawlessly

    Here is my config:

    input_joypad_driver = sdl2
    
    #input_player1_analog_dpad_mode = 1
    #input_player4_analog_dpad_mode = "1"
    #input_player4_analog_dpad_mode = "1"
    #input_player4_analog_dpad_mode = "1"
    
    
    input_enable_hotkey = "escape"
    #input_exit_emulator = "escape"
    
    input_player1_joypad_index = 0
    
    input_player1_up_axis = "-1"
    input_player1_down_axis = "+1"
    input_player1_left_axis = "-0"
    input_player1_right_axis = "+0"
    
    input_player1_up_axis_label = "D-Pad Up"
    input_player1_down_axis_label = "D-Pad Down"
    input_player1_left_axis_label = "D-Pad Left"
    input_player1_right_axis_label = "D-Pad Right"
    
    #input_player1_up_axis = -1
    #input_player1_down_axis = +1
    #input_player1_left_axis = -0
    #input_player1_right_axis = +0
    
    input_player1_a_btn = 306
    input_player1_b_btn = 305
    input_player1_x_btn = 307
    input_player1_y_btn = 304
    
    input_player1_l_btn = 308
    input_player1_r_btn = 309
    
    input_player1_select_btn = 312
    input_player1_start_btn = 313
    input_enable_hotkey_btn = 316
    
    #Controls with Hotkey
    ##########################
    input_load_state_btn = 307
    input_save_state_btn = 304
    
    input_state_slot_decrease_axis = +1
    input_state_slot_increase_axis = -1
    
    input_menu_toggle_btn = 305
    input_exit_emulator_btn = 313
    input_screenshot_btn = 308
    
    input_hold_fast_forward_axis = +0
    input_rewind_axis = -0
    

    I checked the numbers with sdl2-jstest

    I was using the same syntax with just different numbers for my 8bitdo.

    What did I do wrong ?

    Thanks in advance.

    P.S.

    Before I was using this for example for my P2,P3,P4 with 8bitdo pads:

    #Player 2 Settings
    
    input_player2_joypad_index = 1
    
    input_player2_up_axis = "-1"
    input_player2_down_axis = "+1"
    input_player2_left_axis = "-0"
    input_player2_right_axis = "+0"
    
    input_player2_up_axis_label = "D-Pad Up"
    input_player2_down_axis_label = "D-Pad Down"
    input_player2_left_axis_label = "D-Pad Left"
    input_player2_right_axis_label = "D-Pad Right"
    
    #input_player2_up_axis = -1
    #input_player2_down_axis = +1
    #input_player2_left_axis = -0
    #input_player2_right_axis = +0
    
    input_player2_a_btn = 170
    input_player2_b_btn = 171
    input_player2_x_btn = 173
    input_player2_y_btn = 174
    
    input_player2_l_btn = 176
    input_player2_r_btn = 177
    
    input_player2_select_btn = 180
    input_player2_start_btn = 181
    
    #Player 3 Settings
    
    input_player3_joypad_index = 2
    
    input_player3_up_axis = "-1"
    input_player3_down_axis = "+1"
    input_player3_left_axis = "-0"
    input_player3_right_axis = "+0"
    
    input_player3_up_axis_label = "D-Pad Up"
    input_player3_down_axis_label = "D-Pad Down"
    input_player3_left_axis_label = "D-Pad Left"
    input_player3_right_axis_label = "D-Pad Right"
    
    #input_player3_up_axis = -1
    #input_player3_down_axis = +1
    #input_player3_left_axis = -0
    #input_player3_right_axis = +0
    
    input_player3_a_btn = 170
    input_player3_b_btn = 171
    input_player3_x_btn = 173
    input_player3_y_btn = 174
    
    input_player3_l_btn = 176
    input_player3_r_btn = 177
    
    input_player3_select_btn = 180
    input_player3_start_btn = 181
    


  • Still nobody to help ? I can't manage to make my controller work in 4.1. No one is answering multiple posts :( A lot less help than before !


  • Moderator
    Team

    @eightkiller a lot more people asking for support, but still the same 3 sheep to answer ...

    Why don't you let Retroarch set your configuration ? Just look for the "Bind player 1" option, remap, save and then edit files accordingly !

    Your DS4 is not using the SDL2 input driver but the udev one. So I'm not sure you get the right values from sdl2-jstest



  • Yeah, U seem to have a lot of requests ! :s

    In fact I'm using a custom retroarchconfig for setting overlays for differents emulators (for example ):

    # Settings made here will only override settings in the global retroarch.cfg if placed above the #include line
    
    input_remapping_directory = /opt/recalbox/configs/snes/
    
    input_libretro_device_p2 = "257"
    
    video_shader_enable = false
    # We dont need them
    video_fullscreen_x = 1920
    # Horizontal Monitor resolution
    video_fullscreen_y = 1080
    # Vertical Monitor resolution
    custom_viewport_width = 1194
    # Horizontal emulator resolution
    custom_viewport_height = 896
    # Vertical emulator resolution
    custom_viewport_x = 363
    # The first X pixel of the emulator image
    custom_viewport_y = 92
    # The first Y pixel of the emulator image
    aspect_ratio_index = 22
    # Aspect Ratio set to custom
    input_overlay = /opt/recalbox/emulators/retroarch/overlays/16-9/Scanlines_4x_1080p_Borderless.cfg
    # Overlayimage
    input_overlay_enable = true
    # Overlay Image enable
    input_overlay_opacity = 0.7
    # opacity of the overlayimage
    input_overlay_scale = "1.000000"
    # Scalesize of the overlay image
    video_smooth = true
    # Smoth the emulated image, not the overlay, If you set it to false, it will remain sharp but blocky.
    
    #include "/recalbox/configs/retroarch/retroarchcustom_PM.cfg"
    

    Could you just tell me where is the default retroarch.cfg that recalbox is using (just to be sure) ? I will #include it instead of my custom that I created with the input_player things that I showed on my previous post.

    I suppose the Bind player 1 option is located inside this file ?

    Thanks in advance.


  • Moderator
    Team

    @eightkiller by bind player 1, I just mean to reconfigure your pad the standard way in RA, nothing more.

    If you need an overlay, you could simply edit ~/configs/retroarch/retroarchcustom.cfg.originand add your default options (but player inputs) there. I don't think i've managed a default overlay configuration file on each system, it's a per game basis i'm afraid (for now)



  • @substring You can, I created one retroarch.cfg associated with each console and referenced it in recalbox.conf like this:

    #recalbox.conf
    snes.configfile=/opt/recalbox/configs/snes/retroarch.cfg
    gb.configfile=snes.configfile=/opt/recalbox/configs/gb/retroarch.cfg
    

    and inside each of those .cfg files, I associated specific overlays and viewports for each console like this for example

    # Vertical Monitor resolution
    custom_viewport_width = 1379
    # Horizontal emulator resolution
    custom_viewport_height = 1035
    # Vertical emulator resolution
    custom_viewport_x = 290
    # The first X pixel of the emulator image
    custom_viewport_y = 22
    # The first Y pixel of the emulator image
    aspect_ratio_index = 22
    # Aspect Ratio set to custom
    input_overlay = /opt/recalbox/emulators/retroarch/overlays/16-9/Scanlines_4x_1080p_Borderless.cfg
    # Overlayimage
    input_overlay_enable = true
    # Overlay Image enable
    input_overlay_opacity = 0.7
    # opacity of the overlayimage
    input_overlay_scale = "1.000000"
    
    
    #include "/recalbox/configs/retroarch/retroarchcustom_snes_PM.cfg"
    
    

    and at the bottom of each of thoses .cfg files I include
    another custom .cfg file corresponding and replacing the recalbox generated retroarchcustom.cfg

    For example:
    #retroarchcustom_snes.cfg
    
    #here I define everything related to my controllers and so on like that I can use specific controllers for each console
    #8bitdo SFC30 for super nes, PS4 controllers for PSX and arcade game, etc...
    
    #A part of the config for the example
    
     input_joypad_driver = udev
    
    #8bitdo SFC30 Gamepad
    input_player2_analog_dpad_mode = 0
    
    input_player1_joypad_index = 0
    
    input_player1_a_btn = 0
    input_player1_b_btn = 1
    input_player1_x_btn = 3
    input_player1_y_btn = 4
    input_player1_l_btn = 6
    input_player1_r_btn = 7
    input_player1_select_btn = 10
    input_player1_start_btn = 11
    
    input_player1_right_axis = +0
    input_player1_left_axis = -0
    input_player1_up_axis = -1
    input_player1_down_axis = +1
    

    And to find the proper configuration for my controllers, I first let recalbox set the defaults config, opened the retroarchcustom.cfg generated and checked the proper buttons number. Then I could create proper files for each controllers/consoles :)

    And it's working flawlessly, it's really close to real consoles like this :)


  • Moderator
    Team

    @eightkiller Stupid me : you can make things almost automatic with no editing. Just add a <system name>.cfginside ~/configs/retroarchand the file will be automatically loaded. For example : ~/configs/retroarch/snes.cfg


Log in to reply
 

Want to support us ?

Join us on :

227
Online

26163
Users

13541
Topics

102740
Posts

Looks like your connection to Recalbox Forum was lost, please wait while we try to reconnect.