diff --git a/RGUI.md b/RGUI.md index 0850edd..4c131a2 100644 --- a/RGUI.md +++ b/RGUI.md @@ -121,22 +121,63 @@ In some cases, Cg shaders cannot be supported. This goes for OpenGL ES drivers, 100% compatibility is not guaranteed, but almost all shaders should work fine. Cg presets (.cgp) are not converted at the moment, but converting them is as simple as copying over the .cgp, rename it to .glslp and replace references to .cg files to .glsl. ## Configuring input -Currently you can configure two settings per player: +Currently you can configure two settings per player (on PC): - **Device**: Picks which gamepad to use for player N. A description of the pad is currently only available on Linux. - **Device Type**: Picks which device type to use. This is relevant for the libretro core itself, and mostly useful for PlayStation, which needs to know if you're using a DualAnalog device or not. +Android and Wii ports allow you to configure binds more directly. + ### Expanding -This part of RGUI is still very immature. We would ideally like a more direct way to configure input binds on PC here. +This part of RGUI is still somewhat immature on PC. We would ideally like a more direct way to configure input binds on PC here. ### Configuring input outside of RGUI There are a couple of options available to configure input outside RGUI. - **RetroArch-Phoenix**: This is probably the most convenient option at the moment if you like point-and-click GUIs. -- **retroarch-joyconfig**: A command-line script (part of RetroArch package) which lets you get input from a joypad and update or create a config file. To update a config with new binds for player 1 using joypad #0, you would for example do `retroarch-joyconfig --player 1 --joypad 0 --input ~/.config/retroarch/retroarch.cfg --output ~/.config/retroarch/retroarch.cfg` (see `--help` or man page for more help). By default, only RetroPad binds are bound, you can use `--misc` to bind other hotkeys as well. +- **retroarch-joyconfig**: A command-line script (part of RetroArch package) which lets you get input from a joypad and update or create a config file. To update a config with new binds for player 1 using joypad #0, you would for example do `retroarch-joyconfig --player 1 --joypad 0 --input ~/.config/retroarch/retroarch.cfg --output ~/.config/retroarch/retroarch.cfg` (see `--help` or man page for more help). By default, only RetroPad binds are bound, you can use `--misc` to bind other hotkeys as well. If you want to use retroarch-joyconfig, you should build latest from Git (after 0.9.9-wip1) as a couple of needed and useful changes were made to improve usability. ## Setting up joypad autoconfiguration (Linux) -TODO +Linux port recently (after 0.9.9-wip1) got support for joypad hotplugging. +This allows joypad to be plugged in and out of your machine while running. +To have a more console-like experience, RetroArch supports joypad autoconfiguration, where the input config is updated depending on which devices are plugged in. + +To enable this, set the `joypad_autoconfig_dir` option to a folder where you store autoconfigs (*.cfg). +Input autoconfigs can be created with recent build of retroarch-joyconfig (`--autoconfig` option). +An example command line is: `retroarch-joyconfig --joypad 0 --autoconfig ~/.config/retroarch/autoconf/xbox.cfg`. + +Input configs have a simple format, e.g.: + + input_device = "Xbox 360 Wireless Receiver" + input_driver = "linuxraw" + input_b_btn = "0" + input_y_btn = "2" + input_select_btn = "6" + input_start_btn = "7" + input_up_btn = "13" + input_down_btn = "14" + input_left_btn = "11" + input_right_btn = "12" + input_a_btn = "1" + input_x_btn = "3" + input_l_btn = "4" + input_r_btn = "5" + input_l2_axis = "+2" + input_r2_axis = "+5" + input_l3_btn = "9" + input_r3_btn = "10" + input_l_x_plus_axis = "+0" + input_l_x_minus_axis = "-0" + input_l_y_plus_axis = "+1" + input_l_y_minus_axis = "-1" + input_r_x_plus_axis = "+3" + input_r_x_minus_axis = "-3" + input_r_y_plus_axis = "+4" + input_r_y_minus_axis = "-4" + input_rewind_axis = "+4" + input_menu_toggle_btn = "10" + +Since binds are per-device and not per-player, input_playerN_* prefixes are changed to just input_*. ## PlayStation disk swapping TODO