yuzu icon indicating copy to clipboard operation
yuzu copied to clipboard

yuzu-cmd does not use gamepad whist configured in sdl2-config.ini - Canary 1711 -HEAD-b8bdf4b

Open goedzo opened this issue 5 years ago • 7 comments

In yuzu gui version, I have configured a gamepad for player 1 and this works correctly. I want to use my same gamepad in yuzu-cmd.exe thus, I copied the controller config from qt-config.ini to sdl2-config.ini

Unfortuanately, my controller is not usable in the cmd.exe version.

Here is my sdl2-config.ini contents:


[Controls]
# The input devices and parameters for each Switch native input
# It should be in the format of "engine:[engine_name],[param1]:[value1],[param2]:[value2]..."
# Escape characters $0 (for ':'), $1 (for ',') and $2 (for '$') can be used in values

# for button input, the following devices are available:
#  - "keyboard" (default) for keyboard input. Required parameters:
#      - "code": the code of the key to bind
#  - "sdl" for joystick input using SDL. Required parameters:
#      - "joystick": the index of the joystick to bind
#      - "button"(optional): the index of the button to bind
#      - "hat"(optional): the index of the hat to bind as direction buttons
#      - "axis"(optional): the index of the axis to bind
#      - "direction"(only used for hat): the direction name of the hat to bind. Can be "up", "down", "left" or "right"
#      - "threshold"(only used for axis): a float value in (-1.0, 1.0) which the button is
#          triggered if the axis value crosses
#      - "direction"(only used for axis): "+" means the button is triggered when the axis value
#          is greater than the threshold; "-" means the button is triggered when the axis value
#          is smaller than the threshold
player_0_connected=true
player_0_type=0
player_0_body_color_left=4278893030
player_0_body_color_right=4294917160
player_0_button_color_left=4278197790
player_0_button_color_right=4280158730
player_0_button_a="engine:sdl,port:0,guid:030000005e0400008e02000000007801,button:0"
player_0_button_b="engine:sdl,port:0,guid:030000005e0400008e02000000007801,button:1"
player_0_button_x="engine:sdl,port:0,guid:030000005e0400008e02000000007801,button:2"
player_0_button_y="engine:sdl,port:0,guid:030000005e0400008e02000000007801,button:3"
player_0_button_lstick="engine:keyboard,code:51"
player_0_button_rstick="engine:keyboard,code:52"
player_0_button_l="engine:sdl,port:0,guid:030000005e0400008e02000000007801,button:4"
player_0_button_r="engine:sdl,port:0,guid:030000005e0400008e02000000007801,button:5"
player_0_button_zl="engine:sdl,port:0,guid:030000005e0400008e02000000007801,axis:2,direction:+,threshold:0.5"
player_0_button_zr="engine:sdl,port:0,guid:030000005e0400008e02000000007801,axis:5,direction:+,threshold:0.5"
player_0_button_plus="engine:sdl,port:0,guid:030000005e0400008e02000000007801,button:7"
player_0_button_minus="engine:sdl,port:0,guid:030000005e0400008e02000000007801,button:6"
player_0_button_dleft="engine:sdl,port:0,guid:030000005e0400008e02000000007801,hat:0,direction:left"
player_0_button_dup="engine:sdl,port:0,guid:030000005e0400008e02000000007801,hat:0,direction:up"
player_0_button_dright="engine:sdl,port:0,guid:030000005e0400008e02000000007801,hat:0,direction:right"
player_0_button_ddown="engine:sdl,port:0,guid:030000005e0400008e02000000007801,hat:0,direction:down"
player_0_button_lstick_left="engine:keyboard,code:16777234"
player_0_button_lstick_up="engine:keyboard,code:16777235"
player_0_button_lstick_right="engine:keyboard,code:16777236"
player_0_button_lstick_down="engine:keyboard,code:16777237"
player_0_button_rstick_left="engine:keyboard,code:74"
player_0_button_rstick_up="engine:keyboard,code:73"
player_0_button_rstick_right="engine:keyboard,code:76"
player_0_button_rstick_down="engine:keyboard,code:75"
player_0_button_sl="engine:keyboard,code:68"
player_0_button_sr="engine:keyboard,code:67"
player_0_button_home="engine:keyboard,code:66"
player_0_button_screenshot="engine:keyboard,code:86"
player_0_lstick="engine:analog_from_button,modifier_scale:0.5,up:engine$0sdl$1port$00$1axis$01$1guid$0030000005e0400008e02000000007801$1direction$0-$1threshold$0-0.5,left:engine$0sdl$1port$00$1axis$00$1guid$0030000005e0400008e02000000007801$1direction$0-$1threshold$0-0.5,modifier:engine$0sdl$1port$00$1guid$0030000005e0400008e02000000007801$1button$08,down:engine$0sdl$1port$00$1axis$01$1guid$0030000005e0400008e02000000007801$1direction$0+$1threshold$00.5,right:engine$0sdl$1port$00$1axis$00$1guid$0030000005e0400008e02000000007801$1direction$0+$1threshold$00.5"
player_0_rstick="engine:analog_from_button,modifier_scale:0.5,up:engine$0sdl$1port$00$1axis$04$1guid$0030000005e0400008e02000000007801$1direction$0-$1threshold$0-0.5,left:engine$0sdl$1port$00$1axis$03$1guid$0030000005e0400008e02000000007801$1direction$0-$1threshold$0-0.5,modifier:engine$0sdl$1port$00$1guid$0030000005e0400008e02000000007801$1button$09,down:engine$0sdl$1port$00$1axis$04$1guid$0030000005e0400008e02000000007801$1direction$0+$1threshold$00.5,right:engine$0sdl$1port$00$1axis$03$1guid$0030000005e0400008e02000000007801$1direction$0+$1threshold$00.5"

button_a="engine:sdl,port:0,guid:030000005e0400008e02000000007801,button:0"
button_b="engine:sdl,port:0,guid:030000005e0400008e02000000007801,button:1"
button_x="engine:sdl,port:0,guid:030000005e0400008e02000000007801,button:2"
button_y="engine:sdl,port:0,guid:030000005e0400008e02000000007801,button:3"
button_lstick="engine:keyboard,code:51"
button_rstick="engine:keyboard,code:52"
button_l="engine:sdl,port:0,guid:030000005e0400008e02000000007801,button:4"
button_r="engine:sdl,port:0,guid:030000005e0400008e02000000007801,button:5"
button_zl="engine:sdl,port:0,guid:030000005e0400008e02000000007801,axis:2,direction:+,threshold:0.5"
button_zr="engine:sdl,port:0,guid:030000005e0400008e02000000007801,axis:5,direction:+,threshold:0.5"
button_plus="engine:sdl,port:0,guid:030000005e0400008e02000000007801,button:7"
button_minus="engine:sdl,port:0,guid:030000005e0400008e02000000007801,button:6"
button_dleft="engine:sdl,port:0,guid:030000005e0400008e02000000007801,hat:0,direction:left"
button_dup="engine:sdl,port:0,guid:030000005e0400008e02000000007801,hat:0,direction:up"
button_dright="engine:sdl,port:0,guid:030000005e0400008e02000000007801,hat:0,direction:right"
button_ddown="engine:sdl,port:0,guid:030000005e0400008e02000000007801,hat:0,direction:down"
button_lstick_left="engine:keyboard,code:16777234"
button_lstick_up="engine:keyboard,code:16777235"
button_lstick_right="engine:keyboard,code:16777236"
button_lstick_down="engine:keyboard,code:16777237"
button_rstick_left="engine:keyboard,code:74"
button_rstick_up="engine:keyboard,code:73"
button_rstick_right="engine:keyboard,code:76"
button_rstick_down="engine:keyboard,code:75"
button_sl="engine:keyboard,code:68"
button_sr="engine:keyboard,code:67"
button_home="engine:keyboard,code:66"
button_screenshot="engine:keyboard,code:86"
lstick="engine:analog_from_button,modifier_scale:0.5,up:engine$0sdl$1port$00$1axis$01$1guid$0030000005e0400008e02000000007801$1direction$0-$1threshold$0-0.5,left:engine$0sdl$1port$00$1axis$00$1guid$0030000005e0400008e02000000007801$1direction$0-$1threshold$0-0.5,modifier:engine$0sdl$1port$00$1guid$0030000005e0400008e02000000007801$1button$08,down:engine$0sdl$1port$00$1axis$01$1guid$0030000005e0400008e02000000007801$1direction$0+$1threshold$00.5,right:engine$0sdl$1port$00$1axis$00$1guid$0030000005e0400008e02000000007801$1direction$0+$1threshold$00.5"
rstick="engine:analog_from_button,modifier_scale:0.5,up:engine$0sdl$1port$00$1axis$04$1guid$0030000005e0400008e02000000007801$1direction$0-$1threshold$0-0.5,left:engine$0sdl$1port$00$1axis$03$1guid$0030000005e0400008e02000000007801$1direction$0-$1threshold$0-0.5,modifier:engine$0sdl$1port$00$1guid$0030000005e0400008e02000000007801$1button$09,down:engine$0sdl$1port$00$1axis$04$1guid$0030000005e0400008e02000000007801$1direction$0+$1threshold$00.5,right:engine$0sdl$1port$00$1axis$03$1guid$0030000005e0400008e02000000007801$1direction$0+$1threshold$00.5"

# for analog input, the following devices are available:
#  - "analog_from_button" (default) for emulating analog input from direction buttons. Required parameters:
#      - "up", "down", "left", "right": sub-devices for each direction.
#          Should be in the format as a button input devices using escape characters, for example, "engine$0keyboard$1code$00"
#      - "modifier": sub-devices as a modifier.
#      - "modifier_scale": a float number representing the applied modifier scale to the analog input.
#          Must be in range of 0.0-1.0. Defaults to 0.5
#  - "sdl" for joystick input using SDL. Required parameters:
#      - "joystick": the index of the joystick to bind
#      - "axis_x": the index of the axis to bind as x-axis (default to 0)
#      - "axis_y": the index of the axis to bind as y-axis (default to 1)

# for motion input, the following devices are available:
#  - "motion_emu" (default) for emulating motion input from mouse input. Required parameters:
#      - "update_period": update period in milliseconds (default to 100)
#      - "sensitivity": the coefficient converting mouse movement to tilting angle (default to 0.01)

# for touch input, the following devices are available:
#  - "emu_window" (default) for emulating touch input from mouse input to the emulation window. No parameters required


player_1_connected=false
player_1_type=1
player_1_body_color_left=4278893030
player_1_body_color_right=4294917160
player_1_button_color_left=4278197790
player_1_button_color_right=4280158730
player_1_button_a="engine:keyboard,code:65"
player_1_button_b="engine:keyboard,code:83"
player_1_button_x="engine:keyboard,code:90"
player_1_button_y="engine:keyboard,code:88"
player_1_button_lstick="engine:keyboard,code:51"
player_1_button_rstick="engine:keyboard,code:52"
player_1_button_l="engine:keyboard,code:81"
player_1_button_r="engine:keyboard,code:87"
player_1_button_zl="engine:keyboard,code:49"
player_1_button_zr="engine:keyboard,code:50"
player_1_button_plus="engine:keyboard,code:78"
player_1_button_minus="engine:keyboard,code:77"
player_1_button_dleft="engine:keyboard,code:70"
player_1_button_dup="engine:keyboard,code:84"
player_1_button_dright="engine:keyboard,code:72"
player_1_button_ddown="engine:keyboard,code:71"
player_1_button_lstick_left="engine:keyboard,code:16777234"
player_1_button_lstick_up="engine:keyboard,code:16777235"
player_1_button_lstick_right="engine:keyboard,code:16777236"
player_1_button_lstick_down="engine:keyboard,code:16777237"
player_1_button_rstick_left="engine:keyboard,code:74"
player_1_button_rstick_up="engine:keyboard,code:73"
player_1_button_rstick_right="engine:keyboard,code:76"
player_1_button_rstick_down="engine:keyboard,code:75"
player_1_button_sl="engine:keyboard,code:68"
player_1_button_sr="engine:keyboard,code:67"
player_1_button_home="engine:keyboard,code:66"
player_1_button_screenshot="engine:keyboard,code:86"
player_1_lstick="engine:analog_from_button,up:engine$0keyboard$1code$016777235,left:engine$0keyboard$1code$016777234,modifier:engine$0keyboard$1code$069,down:engine$0keyboard$1code$016777237,right:engine$0keyboard$1code$016777236,modifier_scale:0.500000"
player_1_rstick="engine:analog_from_button,up:engine$0keyboard$1code$073,left:engine$0keyboard$1code$074,modifier:engine$0keyboard$1code$082,down:engine$0keyboard$1code$075,right:engine$0keyboard$1code$076,modifier_scale:0.500000"
player_2_connected=false
player_2_type=1
player_2_body_color_left=702950
player_2_body_color_right=16727080
player_2_button_color_left=7710
player_2_button_color_right=1968650
player_2_button_a="engine:keyboard,code:65"
player_2_button_b="engine:keyboard,code:83"
player_2_button_x="engine:keyboard,code:90"
player_2_button_y="engine:keyboard,code:88"
player_2_button_lstick="engine:keyboard,code:51"
player_2_button_rstick="engine:keyboard,code:52"
player_2_button_l="engine:keyboard,code:81"
player_2_button_r="engine:keyboard,code:87"
player_2_button_zl="engine:keyboard,code:49"
player_2_button_zr="engine:keyboard,code:50"
player_2_button_plus="engine:keyboard,code:78"
player_2_button_minus="engine:keyboard,code:77"
player_2_button_dleft="engine:keyboard,code:70"
player_2_button_dup="engine:keyboard,code:84"
player_2_button_dright="engine:keyboard,code:72"
player_2_button_ddown="engine:keyboard,code:71"
player_2_button_lstick_left="engine:keyboard,code:16777234"
player_2_button_lstick_up="engine:keyboard,code:16777235"
player_2_button_lstick_right="engine:keyboard,code:16777236"
player_2_button_lstick_down="engine:keyboard,code:16777237"
player_2_button_rstick_left="engine:keyboard,code:74"
player_2_button_rstick_up="engine:keyboard,code:73"
player_2_button_rstick_right="engine:keyboard,code:76"
player_2_button_rstick_down="engine:keyboard,code:75"
player_2_button_sl="engine:keyboard,code:68"
player_2_button_sr="engine:keyboard,code:67"
player_2_button_home="engine:keyboard,code:66"
player_2_button_screenshot="engine:keyboard,code:86"
player_2_lstick="engine:analog_from_button,modifier:engine$0keyboard$1code$069,left:engine$0keyboard$1code$016777234,up:engine$0keyboard$1code$016777235,right:engine$0keyboard$1code$016777236,down:engine$0keyboard$1code$016777237,modifier_scale:0.500000"
player_2_rstick="engine:analog_from_button,modifier:engine$0keyboard$1code$082,left:engine$0keyboard$1code$074,up:engine$0keyboard$1code$073,right:engine$0keyboard$1code$076,down:engine$0keyboard$1code$075,modifier_scale:0.500000"
player_3_connected=false
player_3_type=1
player_3_body_color_left=702950
player_3_body_color_right=16727080
player_3_button_color_left=7710
player_3_button_color_right=1968650
player_3_button_a="engine:keyboard,code:65"
player_3_button_b="engine:keyboard,code:83"
player_3_button_x="engine:keyboard,code:90"
player_3_button_y="engine:keyboard,code:88"
player_3_button_lstick="engine:keyboard,code:51"
player_3_button_rstick="engine:keyboard,code:52"
player_3_button_l="engine:keyboard,code:81"
player_3_button_r="engine:keyboard,code:87"
player_3_button_zl="engine:keyboard,code:49"
player_3_button_zr="engine:keyboard,code:50"
player_3_button_plus="engine:keyboard,code:78"
player_3_button_minus="engine:keyboard,code:77"
player_3_button_dleft="engine:keyboard,code:70"
player_3_button_dup="engine:keyboard,code:84"
player_3_button_dright="engine:keyboard,code:72"
player_3_button_ddown="engine:keyboard,code:71"
player_3_button_lstick_left="engine:keyboard,code:16777234"
player_3_button_lstick_up="engine:keyboard,code:16777235"
player_3_button_lstick_right="engine:keyboard,code:16777236"
player_3_button_lstick_down="engine:keyboard,code:16777237"
player_3_button_rstick_left="engine:keyboard,code:74"
player_3_button_rstick_up="engine:keyboard,code:73"
player_3_button_rstick_right="engine:keyboard,code:76"
player_3_button_rstick_down="engine:keyboard,code:75"
player_3_button_sl="engine:keyboard,code:68"
player_3_button_sr="engine:keyboard,code:67"
player_3_button_home="engine:keyboard,code:66"
player_3_button_screenshot="engine:keyboard,code:86"
player_3_lstick="engine:analog_from_button,modifier:engine$0keyboard$1code$069,left:engine$0keyboard$1code$016777234,up:engine$0keyboard$1code$016777235,right:engine$0keyboard$1code$016777236,down:engine$0keyboard$1code$016777237,modifier_scale:0.500000"
player_3_rstick="engine:analog_from_button,modifier:engine$0keyboard$1code$082,left:engine$0keyboard$1code$074,up:engine$0keyboard$1code$073,right:engine$0keyboard$1code$076,down:engine$0keyboard$1code$075,modifier_scale:0.500000"
player_4_connected=false
player_4_type=1
player_4_body_color_left=702950
player_4_body_color_right=16727080
player_4_button_color_left=7710
player_4_button_color_right=1968650
player_4_button_a="engine:keyboard,code:65"
player_4_button_b="engine:keyboard,code:83"
player_4_button_x="engine:keyboard,code:90"
player_4_button_y="engine:keyboard,code:88"
player_4_button_lstick="engine:keyboard,code:51"
player_4_button_rstick="engine:keyboard,code:52"
player_4_button_l="engine:keyboard,code:81"
player_4_button_r="engine:keyboard,code:87"
player_4_button_zl="engine:keyboard,code:49"
player_4_button_zr="engine:keyboard,code:50"
player_4_button_plus="engine:keyboard,code:78"
player_4_button_minus="engine:keyboard,code:77"
player_4_button_dleft="engine:keyboard,code:70"
player_4_button_dup="engine:keyboard,code:84"
player_4_button_dright="engine:keyboard,code:72"
player_4_button_ddown="engine:keyboard,code:71"
player_4_button_lstick_left="engine:keyboard,code:16777234"
player_4_button_lstick_up="engine:keyboard,code:16777235"
player_4_button_lstick_right="engine:keyboard,code:16777236"
player_4_button_lstick_down="engine:keyboard,code:16777237"
player_4_button_rstick_left="engine:keyboard,code:74"
player_4_button_rstick_up="engine:keyboard,code:73"
player_4_button_rstick_right="engine:keyboard,code:76"
player_4_button_rstick_down="engine:keyboard,code:75"
player_4_button_sl="engine:keyboard,code:68"
player_4_button_sr="engine:keyboard,code:67"
player_4_button_home="engine:keyboard,code:66"
player_4_button_screenshot="engine:keyboard,code:86"
player_4_lstick="engine:analog_from_button,modifier:engine$0keyboard$1code$069,left:engine$0keyboard$1code$016777234,up:engine$0keyboard$1code$016777235,right:engine$0keyboard$1code$016777236,down:engine$0keyboard$1code$016777237,modifier_scale:0.500000"
player_4_rstick="engine:analog_from_button,modifier:engine$0keyboard$1code$082,left:engine$0keyboard$1code$074,up:engine$0keyboard$1code$073,right:engine$0keyboard$1code$076,down:engine$0keyboard$1code$075,modifier_scale:0.500000"
player_5_connected=false
player_5_type=1
player_5_body_color_left=702950
player_5_body_color_right=16727080
player_5_button_color_left=7710
player_5_button_color_right=1968650
player_5_button_a="engine:keyboard,code:65"
player_5_button_b="engine:keyboard,code:83"
player_5_button_x="engine:keyboard,code:90"
player_5_button_y="engine:keyboard,code:88"
player_5_button_lstick="engine:keyboard,code:51"
player_5_button_rstick="engine:keyboard,code:52"
player_5_button_l="engine:keyboard,code:81"
player_5_button_r="engine:keyboard,code:87"
player_5_button_zl="engine:keyboard,code:49"
player_5_button_zr="engine:keyboard,code:50"
player_5_button_plus="engine:keyboard,code:78"
player_5_button_minus="engine:keyboard,code:77"
player_5_button_dleft="engine:keyboard,code:70"
player_5_button_dup="engine:keyboard,code:84"
player_5_button_dright="engine:keyboard,code:72"
player_5_button_ddown="engine:keyboard,code:71"
player_5_button_lstick_left="engine:keyboard,code:16777234"
player_5_button_lstick_up="engine:keyboard,code:16777235"
player_5_button_lstick_right="engine:keyboard,code:16777236"
player_5_button_lstick_down="engine:keyboard,code:16777237"
player_5_button_rstick_left="engine:keyboard,code:74"
player_5_button_rstick_up="engine:keyboard,code:73"
player_5_button_rstick_right="engine:keyboard,code:76"
player_5_button_rstick_down="engine:keyboard,code:75"
player_5_button_sl="engine:keyboard,code:68"
player_5_button_sr="engine:keyboard,code:67"
player_5_button_home="engine:keyboard,code:66"
player_5_button_screenshot="engine:keyboard,code:86"
player_5_lstick="engine:analog_from_button,modifier:engine$0keyboard$1code$069,left:engine$0keyboard$1code$016777234,up:engine$0keyboard$1code$016777235,right:engine$0keyboard$1code$016777236,down:engine$0keyboard$1code$016777237,modifier_scale:0.500000"
player_5_rstick="engine:analog_from_button,modifier:engine$0keyboard$1code$082,left:engine$0keyboard$1code$074,up:engine$0keyboard$1code$073,right:engine$0keyboard$1code$076,down:engine$0keyboard$1code$075,modifier_scale:0.500000"
player_6_connected=false
player_6_type=1
player_6_body_color_left=702950
player_6_body_color_right=16727080
player_6_button_color_left=7710
player_6_button_color_right=1968650
player_6_button_a="engine:keyboard,code:65"
player_6_button_b="engine:keyboard,code:83"
player_6_button_x="engine:keyboard,code:90"
player_6_button_y="engine:keyboard,code:88"
player_6_button_lstick="engine:keyboard,code:51"
player_6_button_rstick="engine:keyboard,code:52"
player_6_button_l="engine:keyboard,code:81"
player_6_button_r="engine:keyboard,code:87"
player_6_button_zl="engine:keyboard,code:49"
player_6_button_zr="engine:keyboard,code:50"
player_6_button_plus="engine:keyboard,code:78"
player_6_button_minus="engine:keyboard,code:77"
player_6_button_dleft="engine:keyboard,code:70"
player_6_button_dup="engine:keyboard,code:84"
player_6_button_dright="engine:keyboard,code:72"
player_6_button_ddown="engine:keyboard,code:71"
player_6_button_lstick_left="engine:keyboard,code:16777234"
player_6_button_lstick_up="engine:keyboard,code:16777235"
player_6_button_lstick_right="engine:keyboard,code:16777236"
player_6_button_lstick_down="engine:keyboard,code:16777237"
player_6_button_rstick_left="engine:keyboard,code:74"
player_6_button_rstick_up="engine:keyboard,code:73"
player_6_button_rstick_right="engine:keyboard,code:76"
player_6_button_rstick_down="engine:keyboard,code:75"
player_6_button_sl="engine:keyboard,code:68"
player_6_button_sr="engine:keyboard,code:67"
player_6_button_home="engine:keyboard,code:66"
player_6_button_screenshot="engine:keyboard,code:86"
player_6_lstick="engine:analog_from_button,modifier:engine$0keyboard$1code$069,left:engine$0keyboard$1code$016777234,up:engine$0keyboard$1code$016777235,right:engine$0keyboard$1code$016777236,down:engine$0keyboard$1code$016777237,modifier_scale:0.500000"
player_6_rstick="engine:analog_from_button,modifier:engine$0keyboard$1code$082,left:engine$0keyboard$1code$074,up:engine$0keyboard$1code$073,right:engine$0keyboard$1code$076,down:engine$0keyboard$1code$075,modifier_scale:0.500000"
player_7_connected=false
player_7_type=1
player_7_body_color_left=702950
player_7_body_color_right=16727080
player_7_button_color_left=7710
player_7_button_color_right=1968650
player_7_button_a="engine:keyboard,code:65"
player_7_button_b="engine:keyboard,code:83"
player_7_button_x="engine:keyboard,code:90"
player_7_button_y="engine:keyboard,code:88"
player_7_button_lstick="engine:keyboard,code:51"
player_7_button_rstick="engine:keyboard,code:52"
player_7_button_l="engine:keyboard,code:81"
player_7_button_r="engine:keyboard,code:87"
player_7_button_zl="engine:keyboard,code:49"
player_7_button_zr="engine:keyboard,code:50"
player_7_button_plus="engine:keyboard,code:78"
player_7_button_minus="engine:keyboard,code:77"
player_7_button_dleft="engine:keyboard,code:70"
player_7_button_dup="engine:keyboard,code:84"
player_7_button_dright="engine:keyboard,code:72"
player_7_button_ddown="engine:keyboard,code:71"
player_7_button_lstick_left="engine:keyboard,code:16777234"
player_7_button_lstick_up="engine:keyboard,code:16777235"
player_7_button_lstick_right="engine:keyboard,code:16777236"
player_7_button_lstick_down="engine:keyboard,code:16777237"
player_7_button_rstick_left="engine:keyboard,code:74"
player_7_button_rstick_up="engine:keyboard,code:73"
player_7_button_rstick_right="engine:keyboard,code:76"
player_7_button_rstick_down="engine:keyboard,code:75"
player_7_button_sl="engine:keyboard,code:68"
player_7_button_sr="engine:keyboard,code:67"
player_7_button_home="engine:keyboard,code:66"
player_7_button_screenshot="engine:keyboard,code:86"
player_7_lstick="engine:analog_from_button,modifier:engine$0keyboard$1code$069,left:engine$0keyboard$1code$016777234,up:engine$0keyboard$1code$016777235,right:engine$0keyboard$1code$016777236,down:engine$0keyboard$1code$016777237,modifier_scale:0.500000"
player_7_rstick="engine:analog_from_button,modifier:engine$0keyboard$1code$082,left:engine$0keyboard$1code$074,up:engine$0keyboard$1code$073,right:engine$0keyboard$1code$076,down:engine$0keyboard$1code$075,modifier_scale:0.500000"
player_8_connected=false
player_8_type=1
player_8_body_color_left=4278893030
player_8_body_color_right=4294917160
player_8_button_color_left=4278197790
player_8_button_color_right=4280158730
player_8_button_a="engine:keyboard,code:65"
player_8_button_b="engine:keyboard,code:83"
player_8_button_x="engine:keyboard,code:90"
player_8_button_y="engine:keyboard,code:88"
player_8_button_lstick="engine:keyboard,code:51"
player_8_button_rstick="engine:keyboard,code:52"
player_8_button_l="engine:keyboard,code:81"
player_8_button_r="engine:keyboard,code:87"
player_8_button_zl="engine:keyboard,code:49"
player_8_button_zr="engine:keyboard,code:50"
player_8_button_plus="engine:keyboard,code:78"
player_8_button_minus="engine:keyboard,code:77"
player_8_button_dleft="engine:keyboard,code:70"
player_8_button_dup="engine:keyboard,code:84"
player_8_button_dright="engine:keyboard,code:72"
player_8_button_ddown="engine:keyboard,code:71"
player_8_button_lstick_left="engine:keyboard,code:16777234"
player_8_button_lstick_up="engine:keyboard,code:16777235"
player_8_button_lstick_right="engine:keyboard,code:16777236"
player_8_button_lstick_down="engine:keyboard,code:16777237"
player_8_button_rstick_left="engine:keyboard,code:74"
player_8_button_rstick_up="engine:keyboard,code:73"
player_8_button_rstick_right="engine:keyboard,code:76"
player_8_button_rstick_down="engine:keyboard,code:75"
player_8_button_sl="engine:keyboard,code:68"
player_8_button_sr="engine:keyboard,code:67"
player_8_button_home="engine:keyboard,code:66"
player_8_button_screenshot="engine:keyboard,code:86"
player_8_lstick="engine:analog_from_button,up:engine$0keyboard$1code$016777235,left:engine$0keyboard$1code$016777234,modifier:engine$0keyboard$1code$069,down:engine$0keyboard$1code$016777237,right:engine$0keyboard$1code$016777236,modifier_scale:0.500000"
player_8_rstick="engine:analog_from_button,up:engine$0keyboard$1code$073,left:engine$0keyboard$1code$074,modifier:engine$0keyboard$1code$082,down:engine$0keyboard$1code$075,right:engine$0keyboard$1code$076,modifier_scale:0.500000"
player_9_connected=false
player_9_type=1
player_9_body_color_left=702950
player_9_body_color_right=16727080
player_9_button_color_left=7710
player_9_button_color_right=1968650
player_9_button_a="engine:keyboard,code:65"
player_9_button_b="engine:keyboard,code:83"
player_9_button_x="engine:keyboard,code:90"
player_9_button_y="engine:keyboard,code:88"
player_9_button_lstick="engine:keyboard,code:51"
player_9_button_rstick="engine:keyboard,code:52"
player_9_button_l="engine:keyboard,code:81"
player_9_button_r="engine:keyboard,code:87"
player_9_button_zl="engine:keyboard,code:49"
player_9_button_zr="engine:keyboard,code:50"
player_9_button_plus="engine:keyboard,code:78"
player_9_button_minus="engine:keyboard,code:77"
player_9_button_dleft="engine:keyboard,code:70"
player_9_button_dup="engine:keyboard,code:84"
player_9_button_dright="engine:keyboard,code:72"
player_9_button_ddown="engine:keyboard,code:71"
player_9_button_lstick_left="engine:keyboard,code:16777234"
player_9_button_lstick_up="engine:keyboard,code:16777235"
player_9_button_lstick_right="engine:keyboard,code:16777236"
player_9_button_lstick_down="engine:keyboard,code:16777237"
player_9_button_rstick_left="engine:keyboard,code:74"
player_9_button_rstick_up="engine:keyboard,code:73"
player_9_button_rstick_right="engine:keyboard,code:76"
player_9_button_rstick_down="engine:keyboard,code:75"
player_9_button_sl="engine:keyboard,code:68"
player_9_button_sr="engine:keyboard,code:67"
player_9_button_home="engine:keyboard,code:66"
player_9_button_screenshot="engine:keyboard,code:86"
player_9_lstick="engine:analog_from_button,modifier:engine$0keyboard$1code$069,left:engine$0keyboard$1code$016777234,up:engine$0keyboard$1code$016777235,right:engine$0keyboard$1code$016777236,down:engine$0keyboard$1code$016777237,modifier_scale:0.500000"
player_9_rstick="engine:analog_from_button,modifier:engine$0keyboard$1code$082,left:engine$0keyboard$1code$074,up:engine$0keyboard$1code$073,right:engine$0keyboard$1code$076,down:engine$0keyboard$1code$075,modifier_scale:0.500000"
debug_pad_enabled=false
debug_pad_button_a="engine:keyboard,code:65"
debug_pad_button_b="engine:keyboard,code:83"
debug_pad_button_x="engine:keyboard,code:90"
debug_pad_button_y="engine:keyboard,code:88"
debug_pad_button_lstick="engine:keyboard,code:51"
debug_pad_button_rstick="engine:keyboard,code:52"
debug_pad_button_l="engine:keyboard,code:81"
debug_pad_button_r="engine:keyboard,code:87"
debug_pad_button_zl="engine:keyboard,code:49"
debug_pad_button_zr="engine:keyboard,code:50"
debug_pad_button_plus="engine:keyboard,code:78"
debug_pad_button_minus="engine:keyboard,code:77"
debug_pad_button_dleft="engine:keyboard,code:70"
debug_pad_button_dup="engine:keyboard,code:84"
debug_pad_button_dright="engine:keyboard,code:72"
debug_pad_button_ddown="engine:keyboard,code:71"
debug_pad_button_lstick_left="engine:keyboard,code:16777234"
debug_pad_button_lstick_up="engine:keyboard,code:16777235"
debug_pad_button_lstick_right="engine:keyboard,code:16777236"
debug_pad_button_lstick_down="engine:keyboard,code:16777237"
debug_pad_button_rstick_left="engine:keyboard,code:74"
debug_pad_button_rstick_up="engine:keyboard,code:73"
debug_pad_button_rstick_right="engine:keyboard,code:76"
debug_pad_button_rstick_down="engine:keyboard,code:75"
debug_pad_button_sl="engine:keyboard,code:68"
debug_pad_button_sr="engine:keyboard,code:67"
debug_pad_button_home="engine:keyboard,code:66"
debug_pad_button_screenshot="engine:keyboard,code:86"
debug_pad_lstick="engine:analog_from_button,modifier:engine$0keyboard$1code$069,left:engine$0keyboard$1code$016777234,up:engine$0keyboard$1code$016777235,right:engine$0keyboard$1code$016777236,down:engine$0keyboard$1code$016777237,modifier_scale:0.500000"
debug_pad_rstick="engine:analog_from_button,modifier:engine$0keyboard$1code$082,left:engine$0keyboard$1code$074,up:engine$0keyboard$1code$073,right:engine$0keyboard$1code$076,down:engine$0keyboard$1code$075,modifier_scale:0.500000"
mouse_enabled=false
mouse_left="engine:keyboard,code:91"
mouse_right="engine:keyboard,code:93"
mouse_middle="engine:keyboard,code:39"
mouse_forward="engine:keyboard,code:45"
mouse_back="engine:keyboard,code:61"
touchscreen_enabled=false
touchscreen_device=engine:emu_window
touchscreen_finger=0
touchscreen_angle=0
touchscreen_diameter_x=15
touchscreen_diameter_y=15
motion_device="engine:motion_emu,update_period:100,sensitivity:0.01"
keyboard_enabled=false


[Core]
# Whether to use the Just-In-Time (JIT) compiler for CPU emulation
# 0: Interpreter (slow), 1 (default): JIT (fast)
use_cpu_jit =

# Whether to use multi-core for CPU emulation
# 0 (default): Disabled, 1: Enabled
use_multi_core=

[Renderer]
# Whether to use software or hardware rendering.
# 0: Software, 1 (default): Hardware
use_hw_renderer =

# Whether to use the Just-In-Time (JIT) compiler for shader emulation
# 0: Interpreter (slow), 1 (default): JIT (fast)
use_shader_jit =

# Resolution scale factor
# 0: Auto (scales resolution to window size), 1: Native Switch screen resolution, Otherwise a scale
# factor for the Switch resolution
resolution_factor =0

# Whether to enable V-Sync (caps the framerate at 60FPS) or not.
# 0 (default): Off, 1: On
use_vsync =

# Turns on the frame limiter, which will limit frames output to the target game speed
# 0: Off, 1: On (default)
use_frame_limit =

# Limits the speed of the game to run no faster than this value as a percentage of target speed
# 1 - 9999: Speed limit as a percentage of target game speed. 100 (default)
frame_limit =

# Whether to use accurate GPU emulation
# 0 (default): Off (fast), 1 : On (slow)
use_accurate_gpu_emulation =

# The clear color for the renderer. What shows up on the sides of the bottom screen.
# Must be in range of 0.0-1.0. Defaults to 1.0 for all.
bg_red =
bg_blue =
bg_green =

[Layout]
# Layout for the screen inside the render window.
# 0 (default): Default Top Bottom Screen, 1: Single Screen Only, 2: Large Screen Small Screen
layout_option =

# Toggle custom layout (using the settings below) on or off.
# 0 (default): Off, 1: On
custom_layout =

# Screen placement when using Custom layout option
# 0x, 0y is the top left corner of the render window.
custom_top_left =
custom_top_top =
custom_top_right =
custom_top_bottom =
custom_bottom_left =
custom_bottom_top =
custom_bottom_right =
custom_bottom_bottom =

# Swaps the prominent screen with the other screen.
# For example, if Single Screen is chosen, setting this to 1 will display the bottom screen instead of the top screen.
# 0 (default): Top Screen is prominent, 1: Bottom Screen is prominent
swap_screen =

[Audio]
# Which audio output engine to use.
# auto (default): Auto-select, null: No audio output, cubeb: Cubeb audio engine (if available)
output_engine =

# Whether or not to enable the audio-stretching post-processing effect.
# This effect adjusts audio speed to match emulation speed and helps prevent audio stutter,
# at the cost of increasing audio latency.
# 0: No, 1 (default): Yes
enable_audio_stretching =

# Which audio device to use.
# auto (default): Auto-select
output_device =

# Output volume.
# 1.0 (default): 100%, 0.0; mute
volume =

[Data Storage]
# Whether to create a virtual SD card.
# 1 (default): Yes, 0: No
use_virtual_sd =

[System]
# Whether the system is docked
# 1: Yes, 0 (default): No
use_docked_mode =

# Allow the use of NFC in games
# 1 (default): Yes, 0 : No
enable_nfc =

# Sets the seed for the RNG generator built into the switch
# rng_seed will be ignored and randomly generated if rng_seed_enabled is false
rng_seed_enabled =
rng_seed =

# Sets the account username, max length is 32 characters
# yuzu (default)
username = yuzu

# Sets the systems language index
# 0: Japanese, 1: English (default), 2: French, 3: German, 4: Italian, 5: Spanish, 6: Chinese,
# 7: Korean, 8: Dutch, 9: Portuguese, 10: Russian, 11: Taiwanese, 12: British English, 13: Canadian French,
# 14: Latin American Spanish, 15: Simplified Chinese, 16: Traditional Chinese
language_index = 8

# The system region that yuzu will use during emulation
# -1: Auto-select (default), 0: Japan, 1: USA, 2: Europe, 3: Australia, 4: China, 5: Korea, 6: Taiwan
region_value = -1

[Miscellaneous]
# A filter which removes logs below a certain logging level.
# Examples: *:Debug Kernel.SVC:Trace Service.*:Critical
#log_filter = *:Trace
log_filter = *:Debug

[Debugging]
# Port for listening to GDB connections.
use_gdbstub=false
gdbstub_port=24689
# Determines whether or not yuzu will dump the ExeFS of all games it attempts to load while loading them
dump_exefs=false
# Determines whether or not yuzu will dump all NSOs it attempts to load while loading them
dump_nso=false

[WebService]
# Whether or not to enable telemetry
# 0: No, 1 (default): Yes
enable_telemetry =
# URL for Web API
web_api_url = https://api.yuzu-emu.org
# Username and token for yuzu Web Service
# See https://profile.yuzu-emu.org/ for more info
yuzu_username =
yuzu_token =

[AddOns]
# Used to disable add-ons
# List of title IDs of games that will have add-ons disabled (separated by '|'):
title_ids =
# For each title ID, have a key/value pair called `disabled_<title_id>` equal to the names of the add-ons to disable (sep. by '|')
# e.x. disabled_0100000000010000 = Update|DLC <- disables Updates and DLC on Super Mario Odyssey


goedzo avatar Dec 16 '18 01:12 goedzo

I did some debugging and found out the cause. It appears that the cmd-exe expects to contain specific config sections for each player called: ControlsP0 ControlsP1 ControlsP2 ControlsP3 ... etc.

So am now implementing a fix to actually accept a player_X_** setting under controls instead, to be compatible with gui version.

goedzo avatar Dec 16 '18 16:12 goedzo

Well it seems that more is going on than only the config section being read. I updated the code to read the configuration, however it does not seem to use it.

For reference in config.cpp you need this code there:

        const auto group = fmt::format("Controls", p);
        for (int i = 0; i < Settings::NativeButton::NumButtons; ++i) {
            std::string default_param = InputCommon::GenerateKeyboardParam(default_buttons[i]);
            std::string controls_prefix = "player_" + std::to_string(p) + "_";
            Settings::values.players[p].buttons[i] = sdl2_config->Get(
                group, controls_prefix+Settings::NativeButton::mapping[i], default_param);
            if (Settings::values.players[p].buttons[i].empty())
                Settings::values.players[p].buttons[i] = default_param;
        }

It loads it ok, but then doesn't seem to use it.

goedzo avatar Dec 16 '18 16:12 goedzo

For reference, this discussion from my PR:

DarkLordZach: no, this is incorrect. doing this prevents multiple player's input settings from being saved, instead amalgamating them into one.

goedzo: I had to re-use the logic from the yuzu gui version, that deals with it in the same way as used in the qt-config.ini file. One or the other is incorrect, so they should match a similar behaviour, If you look at the multiple player's input setting in qt-config.ini you see that this uses now the same logic.

@DarkLordZach could you please guide me to the right way to get this configured? Are we following yuzu-gui in how it's using qt-config.ini? Or do we keep it as a seperated configuration structure? Or do we need to change the gui to follow cmd? I don't know the dev / direction guidelines between cmd and gui, so any feedback would be appreciated.

goedzo avatar Dec 18 '18 12:12 goedzo

This is a separate configuration structure from Qt because the SDL2 ini is supposed to human-editable/readable but the Qt ini is not. As I stated in #1910 and is visible in code, each player is split into a separate [] group.

zachhilman avatar Jun 06 '19 22:06 zachhilman

I am unable to get this working even after going through the code, both yuzu-cmd and yuzu both seem to store the configuration settings for Control in Settings::players.buttons so the following button strings that works for yuzu qt-config.ini should work for yuzu-cmd right? (This is for an Xbox Controller)

[ControlsP0]

button_a="engine:sdl,port:0,guid:030000005e0400008e02000000007801,button:1"
button_b="engine:sdl,port:0,guid:030000005e0400008e02000000007801,button:0"
button_x="engine:sdl,port:0,guid:030000005e0400008e02000000007801,button:3"
button_y="engine:sdl,port:0,guid:030000005e0400008e02000000007801,button:2"
button_lstick="engine:sdl,port:0,guid:030000005e0400008e02000000007801,button:8"
button_rstick="engine:sdl,port:0,guid:030000005e0400008e02000000007801,button:9"
button_l="engine:sdl,port:0,guid:030000005e0400008e02000000007801,button:4"
button_r="engine:sdl,port:0,guid:030000005e0400008e02000000007801,button:5"
button_zl="engine:sdl,port:0,guid:030000005e0400008e02000000007801,axis:2,direction:+,threshold:0.5"
button_zr="engine:sdl,port:0,guid:030000005e0400008e02000000007801,axis:5,direction:+,threshold:0.5"
button_plus="engine:sdl,port:0,guid:030000005e0400008e02000000007801,button:7"
button_minus="engine:sdl,port:0,guid:030000005e0400008e02000000007801,button:6"
button_dleft="engine:sdl,port:0,guid:030000005e0400008e02000000007801,hat:0,direction:left"
button_dup="engine:sdl,port:0,guid:030000005e0400008e02000000007801,hat:0,direction:up"
button_dright="engine:sdl,port:0,guid:030000005e0400008e02000000007801,hat:0,direction:right"
button_ddown="engine:sdl,port:0,guid:030000005e0400008e02000000007801,hat:0,direction:down"
button_lstick_left="engine:keyboard,code:16777234"
button_lstick_up="engine:keyboard,code:16777235"
button_lstick_right="engine:keyboard,code:16777236"
button_lstick_down="engine:keyboard,code:16777237"
button_rstick_left="engine:keyboard,code:74"
button_rstick_up="engine:keyboard,code:73"
button_rstick_right="engine:keyboard,code:76"
button_rstick_down="engine:keyboard,code:75"
button_sl="engine:keyboard,code:68"
button_sr="engine:keyboard,code:67"
button_home="engine:keyboard,code:66"
button_screenshot="engine:keyboard,code:86"
lstick="engine:sdl,axis_x:0,port:0,guid:030000005e0400008e02000000007801,axis_y:1"
rstick="engine:sdl,axis_x:3,port:0,guid:030000005e0400008e02000000007801,axis_y:4"

sparky3387 avatar Dec 05 '19 23:12 sparky3387

You have to remove the quotes.

The difference comes from yuzu-cmd using the external INIReader while yuzu parses ini's with QSettings from Qt. The external INIReader simply splits into name-value strings, meaning a line button_home="engine:keyboard,code:66" is split into the string button_home and the string "engine:keyboard,code:66". The latter value is then manually split inside yuzu on : and , resulting in the key-value pairs:

  • "engine with value keyboard
  • code with value 66"

Masterjun3 avatar Jun 28 '20 18:06 Masterjun3

Okay, I'm new to this, but I'm sure that...

https://github.com/yuzu-emu/yuzu/blob/master/src/input_common/drivers/sdl_driver.cpp remove this line and compile: SDL_SetHint(SDL_HINT_JOYSTICK_HIDAPI_XBOX, "0");

INFO: https://github.com/libsdl-org/SDL/blob/main/include/SDL_hints.h SDL_HINT_JOYSTICK_HIDAPI_XBOX /*

  • A variable controlling whether the HIDAPI driver for XBox 360 controllers should be used.
  • This variable can be set to the following values:
  • "0" - HIDAPI driver is not used
  • "1" - HIDAPI driver is used
  • The default is the value of SDL_HINT_JOYSTICK_HIDAPI_XBOX */

And... Remove the quotes button_a=engine:sdl,port:0,guid:030000005e0400008e02000000007801,button:1

Good Luck.

mcastellonc201 avatar Sep 08 '22 22:09 mcastellonc201