Homepage Forums Search Search Results for 'hotkey'

Viewing 35 results - 736 through 770 (of 1,077 total)
  • Author
    Search Results
  • #85130
    Centax
    Participant

    I am new to this forum and new to retropie as well. Hello world! So far my Rock Candy Wireless PS3 controller is working well with the older consoles. 2600-SNES, but running into some issues with configuring it for mame4all though.

    Wireless signal has felt solid on it so far. I used the same controller on an Android Mini PC and had lag/dropouts. It’s been totally great so far on the PI connection wise. I sit about 12 feet from the USB receiver.

    As far as getting it configured for Mame4all, the issues I am having seems to be that I can’t configure the D-Pad and can’t find an option in the input menu for an emulator exit hotkey. I have to hit ESC on the keyboard. Would like it to be like the Retroarch emulators with Select/Start exit out.

    If anyone can help, that’d be great.

    Thanks very much to all the programmers and people involved on the RetroPie project. It rocks!

    #85093
    zbh23
    Participant

    So I tested using alt as my hotkey assignment and it worked, then I tested a few other keys that are mapped in my controller setup and all of the keys I tested were successful.

    So it seems that assigning “n” as the hotkey causes an issue due to the default “n” as the input_shader_prev key.

    jamesandjome-com
    Participant

    Hello,

    I have finally managed to get my RetroPie set up with 2 Buffilo SNES Controllers and have been enjoying many games accross the SNES, NES, and Genesis systems.

    Firstly a shout out – I followed Ryans guide over at gameroomsolutions.com (which is amazing and simple) to get set up, and then watched Floob’s videos and read his posts on this forum to sort out scraping and shaders. Thank you both! Everyone who is near to giving up (like I was) follow Ryans guide from start to finish and then check out everything Floob has on youtube.

    Now, I have two things that are bothering me and I want to pick your brains for a fix or confirmation that this cannot be fixed.

    1. I have added

    input_enable_hotkey_btn = “8”
    input_exit_emulator_btn = “9”

    to my retroarch.cfg to use start and select to exit emulators and 80% of the time is works, the other times I get a blank screen and have to manually turn the Pi off and on.

    Is this normal and if not, is there a fix?

    2. I debated installing PS1 games that I own because there seems to be a lot of issues on the forums with these, however I did install 1 game (Capcom vs Marvel) and it worked flawlessly once I added the rom.

    The only issue is the screen image size, it goes out of bounds as if the image is too big.

    As above, is this normal or is there a fix?

    Any advice would be greatly appreciated, thank you in advance.

    mahonroy
    Participant

    [quote=85070]The video above explains why one controller might not work as player one when using auto files. It also confirms that player 1 has control of the hotkeys when using auto files.

    I’ll try All Stars in a moment, but I’m pretty sure it works fine with 2 controllers
    [/quote]

    Did you get a chance to check it out? I’m going to watch the video in the morning to see what is different with my configuration.

    #85075
    Floob
    Member

    Could you post your retroarch.cfg as an attachment? You’d need to rename it .txt.

    Does it work fine if you set your hotkey to alt instead of n?

    #85073
    Floob
    Member

    If you remove the input_shader_prev value altogether it may well default to its ‘n’ value.
    Have you tried setting input_shader_prev to a value other than ‘n’?

    Although I would just be tempted to have “alt” as my hotkey.

    #85072
    zbh23
    Participant

    That is the thing, the “n” key binding is my entry for input_enable_hotkey (so that I can press “n” and another key to escape the emulator).

    This functionality works, but if I simply press “n” it also conducts the input_shader_prev action.

    #85071
    Floob
    Member

    What is this value in your main retroarch.cfg
    input_enable_hotkey

    I’m thinking it reads “nul” as that would mean it would kick in.
    If you changed it to read “alt” then you would have to press “alt” to make that hotkey function work.

    The video above should cover the different hotkey configs.

    Floob
    Member

    The video above explains why one controller might not work as player one when using auto files. It also confirms that player 1 has control of the hotkeys when using auto files.

    I’ll try All Stars in a moment, but I’m pretty sure it works fine with 2 controllers

    #85063
    Floob
    Member

    Is there a reference in your controller file to the next shader – the controller file in

    /opt/retropie/emulators/RetroArch/configs/

    My hotkey video may help:

    morphiushell
    Participant

    Hi,

    I have my controller set up as below.

    I have been playing games fine today and I have come back in tonight to play some more mario. For some reason now though when I get into the game I cant move mario around or jump etc but I can still use my controller to exit the game etc.

    I have noticed this aswell with Mario Kart.

    Other games seem to be playing fine except my Mario All Stars.

    #Player 1
    input_player1_joypad_index = “0”
    input_player1_b_btn = “0”
    input_player1_y_btn = “2”
    input_player1_select_btn = “8”
    input_player1_start_btn = “9”
    input_player1_up_axis = “-1”
    input_player1_down_axis = “+1”
    input_player1_left_axis = “-0”
    input_player1_right_axis = “+0”
    input_player1_a_btn = “1”
    input_player1_x_btn = “3”
    input_player1_l_btn = “4”
    input_player1_r_btn = “5”
    input_player1_l2_btn = “6”
    input_player1_r2_btn = “7”
    input_player1_l3_btn = “11”
    input_player1_r3_btn = “12”
    input_player1_l_x_plus_axis = “+4”
    input_player1_l_x_minus_axis = “-4”
    input_player1_l_y_plus_axis = “+5”
    input_player1_l_y_minus_axis = “-5”
    input_player1_r_x_plus_axis = “+2”
    input_player1_r_x_minus_axis = “-2”
    input_player1_r_y_plus_axis = “+3”
    input_player1_r_y_minus_axis = “-3”

    input_enable_hotkey_btn = “8”
    input_exit_emulator_btn = “9”

    input_enable_hotkey_btn = “8”
    input_save_state_btn = “5”

    input_enable_hotkey_btn = “8”
    input_load_state_btn = “4”

    input_enable_hotkey_btn = “8”
    input_state_slot_increase_btn = “7”

    input_enable_hotkey_btn = “8”
    input_state_slot_decrease_btn =”6″

    input_enable_hotkey_btn = “8”
    input_menu_toggle_btn = “3”

    #Player 2
    input_player2_joypad_index = “0”
    input_player2_b_btn = “0”
    input_player2_y_btn = “2”
    input_player2_select_btn = “8”
    input_player2_start_btn = “9”
    input_player2_up_axis = “-1”
    input_player2_down_axis = “+1”
    input_player2_left_axis = “-0”
    input_player2_right_axis = “+0”
    input_player2_a_btn = “1”
    input_player2_x_btn = “3”
    input_player2_l_btn = “4”
    input_player2_r_btn = “5”
    input_player2_l2_btn = “6”
    input_player2_r2_btn = “7”
    input_player2_l3_btn = “11”
    input_player2_r3_btn = “12”
    input_player2_l_x_plus_axis = “+4”
    input_player2_l_x_minus_axis = “-4”
    input_player2_l_y_plus_axis = “+5”
    input_player2_l_y_minus_axis = “-5”
    input_player2_r_x_plus_axis = “+2”
    input_player2_r_x_minus_axis = “-2”
    input_player2_r_y_plus_axis = “+3”
    input_player2_r_y_minus_axis = “-3”

    #84649
    morphiushell
    Participant

    Hey I am having a slightly different issue here is my .cfg file

    I found when I had mapped the the controller as mentioned above things ran ok but I didnt have use of the thumbsticks or could I exit or save. I came across these settings and now things work great but I did notice that for some reason i can no longer start a game at Mario Kart on the snes for some reason.

    Any Ideas

    #Player 1
    input_player1_joypad_index = “0”
    input_player1_b_btn = “0”
    input_player1_y_btn = “2”
    input_player1_select_btn = “8”
    input_player1_start_btn = “9”
    input_player1_up_axis = “-1”
    input_player1_down_axis = “+1”
    input_player1_left_axis = “-0”
    input_player1_right_axis = “+0”
    input_player1_a_btn = “1”
    input_player1_x_btn = “3”
    input_player1_l_btn = “4”
    input_player1_r_btn = “5”
    input_player1_l2_btn = “6”
    input_player1_r2_btn = “7”
    input_player1_l3_btn = “11”
    input_player1_r3_btn = “12”
    input_player1_l_x_plus_axis = “+4”
    input_player1_l_x_minus_axis = “-4”
    input_player1_l_y_plus_axis = “+5”
    input_player1_l_y_minus_axis = “-5”
    input_player1_r_x_plus_axis = “+2”
    input_player1_r_x_minus_axis = “-2”
    input_player1_r_y_plus_axis = “+3”
    input_player1_r_y_minus_axis = “-3”

    input_enable_hotkey_btn = “8”
    input_exit_emulator_btn = “9”

    input_enable_hotkey_btn = “8”
    input_save_state_btn = “5”

    input_enable_hotkey_btn = “8”
    input_load_state_btn = “4”

    input_enable_hotkey_btn = “8”
    input_state_slot_increase_btn = “7”

    input_enable_hotkey_btn = “8”
    input_state_slot_decrease_btn =”6″

    input_enable_hotkey_btn = “8”
    input_menu_toggle_btn = “3”

    #Player 2
    input_player2_joypad_index = “0”
    input_player2_b_btn = “0”
    input_player2_y_btn = “2”
    input_player2_select_btn = “8”
    input_player2_start_btn = “9”
    input_player2_up_axis = “-1”
    input_player2_down_axis = “+1”
    input_player2_left_axis = “-0”
    input_player2_right_axis = “+0”
    input_player2_a_btn = “1”
    input_player2_x_btn = “3”
    input_player2_l_btn = “4”
    input_player2_r_btn = “5”
    input_player2_l2_btn = “6”
    input_player2_r2_btn = “7”
    input_player2_l3_btn = “11”
    input_player2_r3_btn = “12”
    input_player2_l_x_plus_axis = “+4”
    input_player2_l_x_minus_axis = “-4”
    input_player2_l_y_plus_axis = “+5”
    input_player2_l_y_minus_axis = “-5”
    input_player2_r_x_plus_axis = “+2”
    input_player2_r_x_minus_axis = “-2”
    input_player2_r_y_plus_axis = “+3”
    input_player2_r_y_minus_axis = “-3”

    zmurah
    Participant

    I’ve scurried every single form I have come across regarding this, but I can’t seem to find a solution.

    Playing SNES – Super Mario World. System creates/updates a .srm file in the SNES ROM folder; however, the system never loads it. It always starts at the very beginning every single time and shows no save data has been recorded. Except for the file modified date does get updated so I am completely confused.

    I don’t want to use the savestate option, I want to get the OE version of saving working correctly. I’ve updated the permissions in retro-config (didn’t solve the problem), changed savestate_auto_save & savestate_auto_load options to true (also didn’t solve the problem).

    I do a clean-exit overtime (tried via Esc key and hotkey (Select + Start buttons) methods and it doesn’t make a difference either way.

    Has anyone had this problem before and found a solution?

    #84474
    Anonymous
    Inactive

    I managed to get it working by turning it on as a keyboard start+b but before you`ll need to do this http://www.ctheroux.com/2012/08/a-step-by-step-guide-to-setup-a-bluetooth-keyboard-and-mouse-on-the-raspberry-pi/
    and after make changes in retroarch.cfg to make the buttons work. If interested let me know. And yes i did the lates firmware update for the controller 2.5 is out and no issues with autoconnect anymore. However i have not figure out how to make hotkey to save load and quit with bitdo.

    proxycell
    Participant

    we have the same controller! the Tomee SNES-style USB controllers right?
    add those last two lines to the bottom of your retroarch.ch like floob just mentioned.

    Here is my hotkey setup for that controller, i enabled rewinding in the retroarch.cfg file and set the slowmotion to 10.0

    enjoy :)

    input_enable_hotkey_btn = 8
    input_exit_emulator_btn = 9
    input_load_state_btn = 4
    input_save_state_btn = 5
    input_state_slot_increase_axis = -1
    input_state_slot_decrease_axis = +1
    input_menu_toggle_btn = 1
    input_rewind_btn = 3
    input_screenshot_btn = 0
    input_slowmotion_btn = 2

    d3s1
    Participant

    I too was having the same issue with EmulationStation prompting to re-configure the controller (ps3) bindings every time on reboot, also many times the controller would not even be detected.

    I finally have my PS3 controller working consistently. It turns out there was a two-year old comment on this very blog that hinted at the the solution. What’s happening is that EmulationStation is starting up too quickly — not allowing enough time for the PS3 controller to sync over bluetooth and setting itself up as a joystick.

    The fix:

    1. Start the retroie-setup script and disable the splash screen (there’s an option for this)

    2. Edit the /etc/rc.local file with your favorite editor:

    Above the “exit 0” statement enter the following:

    echo "Sleeping for 30s.  Sync your controller now..."
    sleep 30s
    

    Now every time you boot the Pi, it will notify you to sync your PS3 controller (simply press the PS button on the controller), then EmulationStation will start thereafter.

    On a side note, RetroPie 2.3 has a built-in controller profile for the PS3 controller — meaning you do not have to manually map buttons in RetroArch. The “hotkey” by default is the SELECT button. So SELECT+START exits, SELECT+L loads last save, etc.

    Anonymous
    Inactive

    Unlike most controller saves I’ve seen online, my SNES style controller saves under:

    RetroPie-Setup/supplementary/RetroArchConfigs/2Axes11KeysGamePad.cfg

    I’ve added the following to try to escape:

    input_device = “2Axes 11Keys Game Pad”
    input_driver = “udev”
    input_b_btn = “2”
    input_y_btn = “3”
    input_select_btn = “8”
    input_start_btn = “9”
    input_up_axis = “-1”
    input_down_axis = “+1”
    input_left_axis = “-0”
    input_right_axis = “+0”
    input_a_btn = “1”
    input_x_btn = “0”
    input_l_btn = “4”
    input_r_btn = “5”
    input_enable_hotkey_btn = “8”
    input_exit_emulator_btn = “9”

    This does not work at all. All the other buttons work. So I’m not sure why I am getting the weird filename and why it won’t work. Any help would be much appreciated. Thanks!

    #84370
    Floob
    Member

    Do you have enable hotkeys enabled as shown at 20:26 in this video?
    (Also check your retroarch.cfg file for the value as you may need to press ALT for example)

    If you do, you need to press that first for it to work.

    This is the value that should be default in /opt/retropie/configs/all/retroarch.cfg
    input_menu_toggle = F1

    #84316
    boomgreen87
    Participant

    I don’t quite understand what I need to do in order to attach the file here. Can you please walk me through what I need to do? and I’m pretty sure the value of the input_enable_hotkey is 6, it is the select button on the controller.

    #84306
    Floob
    Member

    Great. Can you post (as an attachment, not inline) the Xbox360WirelessReceiver.cfg file.
    You will probably need to rename that as a .txt file to post it here.

    That should show why your hotkeys arent behaving.

    Also, what value does this have (input_enable_hotkey) in your retroarch.cfg file
    in /opt/retropie/configs/all/

    #84267

    In reply to: Controller Chaos!

    nolageek
    Participant

    This is what I’ve done, your mileage may vary but this may get you closer to what you’re going for. I got tired of running retroarch-joyconfig over and over…

    I have three controllers: a Logitech F310 and F710 and a RetroLink SNES

    I ran the joystick config for each of them, with settings for player one and player two. I saved the output into files for save keeping:

    cd /opt/retropie/emulators/RetroArch/installdir/bin

    Plug in f710
    sudo ./retroarch-joyconfig -j 0 > /opt/retropie/configs/all/f710-P1.cfg
    sudo ./retroarch-joyconfig -j 1 > /opt/retropie/configs/all/f710-P2.cfg

    Plug in f310
    sudo ./retroarch-joyconfig -j 0 > /opt/retropie/configs/all/f310-P1.cfg
    sudo ./retroarch-joyconfig -j 1 > /opt/retropie/configs/all/f310-P2.cfg

    Plug in SNES
    sudo ./retroarch-joyconfig -j 0 > /opt/retropie/configs/all/SNES-P1.cfg
    sudo ./retroarch-joyconfig -j 1 > /opt/retropie/configs/all/SNES-P2.cfg

    Now you have 2 files for each of the controllers, as Player 1 and Player 2. The only thing I think you’ll need to add manually is the
    Hotkey and Exit keys for the player 1 files, etc…

    input_enable_hotkey_btn = x (usually the select key number)
    input_exit_emulator_btn = x (usually the start key number)

    Now append each of the controllers configs to the existing retroarch.cfg file in a game directory.

    Let’s use the snes game and my controllers as an example. Let’s use the SNES controller for player one and the F710 controller for player two:

    Go to SNES directory
    cd /opt/retropie/configs/snes

    backups are good!
    cp retroarch.cfg retroarch.cfg.bak

    add controllers to the end of the current retroarch.cfg file:
    cat /opt/retropie/configs/all/SNES-P1.cfg >> retroarch.cfg
    cat /opt/retropie/configs/all/f710-P2.cfg >> retroarch.cfg

    Granted, I have NOT done this to individual games like it sounds like you want to do, but this is how I swap out controllers in my default /all/retroarch.cfg when I want to use different controllers.

    #84166
    Floob
    Member

    Hi,

    There are some videos in the link in my signature that cover setting hotkeys to exit the emulator, overscan and configuring retroarch controllers. They should help as a first step.

    The hotkey for joypad to exit is
    input_exit_emulator_btn = “{your joypad code}”

    Floob
    Member

    Hopefully this will help those of you trying to get hotkeys working.
    Its useful to map a key to the joypad to allow resetting back to EmulationStation without needing a keyboard.

    #84078
    Anonymous
    Inactive

    I’m tired of RetroPie and the headache of getting two of these Buffalo SNES controllers working. Going on 6 hours of messing with config files, and about 2-3 hours away of setting this Raspberry Pie up on my shooting range and putting some 556 rounds into it.

    Maybe you can save its life.

    Basically, here’s my situation:

    1) Both controllers are Buffalo SNES USB
    2) Both work and can navigate EmulationStation
    3) When playing any ROMs that allow for 2 player, the player 1 controller works, and the player 2 controller does not

    Interesting note:
    1) When I go into the main retroarch.cfg under the configs/all directory, I noticed the system seems to be dumping large amounts of input data for player 1-16. I’ve tried deleting it all, applying the player 1 and 2 inputs and then saving it. Then I restart the Pi and load into Emulation Station to try the controllers. When I notice it doesn’t work, I go back to that same config file, and the damn thing contains ALL the lines I deleted.

    All I want is to play some 2 player games using identical controllers. What am I missing?

    Here’s what the stupid thing contains right now:

    input_device = "USB,2-axis 8-button gamepad  "
    input_driver = "udev"
    input_player1_joypad_index = "1"
    input_player1_b_btn = "1"
    input_player1_y_btn = "3"
    input_player1_select_btn = "6"
    input_player1_start_btn = "7"
    input_player1_up_axis = "-1"
    input_player1_down_axis = "+1"
    input_player1_left_axis = "-0"
    input_player1_right_axis = "+0"
    input_player1_a_btn = "0"
    input_player1_x_btn = "2"
    input_player1_l_btn = "4"
    input_player1_r_btn = "5"
    input_player2_joypad_index = "2"
    input_player2_b_btn = "1"
    input_player2_y_btn = "3"
    input_player2_select_btn = "6"
    input_player2_start_btn = "7"
    input_player2_up_axis = "-1"
    input_player2_down_axis = "+1"
    input_player2_left_axis = "-0"
    input_player2_right_axis = "+0"
    input_player2_a_btn = "0"
    input_player2_x_btn = "2"
    input_player2_l_btn = "4"
    input_player2_r_btn = "5"
    input_enable_hotkey_btn = "6"
    input_exit_emulator_btn = "7"
    input_axis_threshold = "0.500000"
    netplay_client_swap_input = "true"
    input_descriptor_label_show = "true"
    autoconfig_descriptor_label_show = "true"
    input_descriptor_hide_unbound = "false"
    load_dummy_on_core_shutdown = "true"
    fps_show = "false"
    libretro_path = "/opt/retropie/libretrocores/neslibretro/fceumm_libretro.so"
    rewind_enable = "false"
    audio_latency = "64"
    audio_sync = "true"
    audio_block_frames = "0"
    rewind_granularity = "1"
    video_shader = "/opt/retropie/emulators/retroarch/shader/phosphor.glslp"
    video_shader_enable = "false"
    video_aspect_ratio = "-1.000000"
    video_windowed_fullscreen = "true"
    video_scale = "3.000000"
    autosave_interval = "0"
    video_crop_overscan = "true"
    video_scale_integer = "false"
    video_smooth = "false"
    video_threaded = "false"
    video_shared_context = "false"
    video_force_srgb_disable = "false"
    video_fullscreen = "false"
    video_refresh_rate = "59.950001"
    video_monitor_index = "0"
    video_fullscreen_x = "0"
    video_fullscreen_y = "0"
    video_driver = "gl"
    menu_driver = "rgui"
    menu_pause_libretro = "true"
    menu_mouse_enable = "false"
    video_vsync = "true"
    video_hard_sync = "false"
    video_hard_sync_frames = "0"
    video_frame_delay = "0"
    video_black_frame_insertion = "false"
    video_disable_composition = "false"
    pause_nonactive = "false"
    video_swap_interval = "1"
    video_gpu_screenshot = "true"
    video_rotation = "0"
    screenshot_directory = "default"
    aspect_ratio_index = "19"
    camera_allow = "false"
    audio_rate_control = "true"
    audio_rate_control_delta = "0.005000"
    audio_max_timing_skew = "0.050000"
    audio_volume = "0.000000"
    audio_driver = "alsathread"
    audio_enable = "true"
    audio_out_rate = "48000"
    location_allow = "false"
    video_font_size = "32.000000"
    video_font_enable = "true"
    system_directory = "default"
    audio_resampler = "sinc"
    savefile_directory = "default"
    savestate_directory = "default"
    video_shader_dir = "default"
    video_filter_dir = "default"
    audio_filter_dir = "default"
    content_directory = "default"
    assets_directory = "default"
    playlist_directory = "default"
    rgui_browser_directory = "default"
    rgui_config_directory = "default"
    rgui_show_start_screen = "false"
    menu_navigation_wraparound_horizontal_enable = "true"
    menu_navigation_wraparound_vertical_enable = "true"
    game_history_path = "/opt/retropie/configs/all/retroarch-content-history.txt"
    game_history_size = "100"
    input_autodetect_enable = "true"
    overlay_directory = "default"
    input_overlay_opacity = "0.700000"
    input_overlay_scale = "1.000000"
    video_message_pos_x = "0.050000"
    video_message_pos_y = "0.050000"
    gamma_correction = "false"
    soft_filter_enable = "false"
    flicker_filter_enable = "false"
    flicker_filter_index = "0"
    soft_filter_index = "0"
    current_resolution_id = "0"
    custom_viewport_width = "771"
    custom_viewport_height = "720"
    custom_viewport_x = "254"
    custom_viewport_y = "0"
    block_sram_overwrite = "false"
    savestate_auto_index = "false"
    savestate_auto_save = "false"
    savestate_auto_load = "false"
    history_list_enable = "true"
    fastforward_ratio = "1.000000"
    fastforward_ratio_throttle_enable = "false"
    slowmotion_ratio = "3.000000"
    config_save_on_exit = "true"
    sound_mode = "0"
    state_slot = "0"
    netplay_spectator_mode_enable = "false"
    netplay_mode = "false"
    netplay_ip_port = "0"
    netplay_delay_frames = "0"
    user_language = "0"
    custom_bgm_enable = "false"
    input_toggle_fast_forward = "space"
    input_toggle_fast_forward_btn = "nul"
    input_toggle_fast_forward_axis = "nul"
    input_hold_fast_forward = "l"
    input_hold_fast_forward_btn = "nul"
    input_hold_fast_forward_axis = "nul"
    input_load_state = "f4"
    input_load_state_btn = "nul"
    input_load_state_axis = "nul"
    input_save_state = "f2"
    input_save_state_btn = "nul"
    input_save_state_axis = "nul"
    input_toggle_fullscreen = "f"
    input_toggle_fullscreen_btn = "nul"
    input_toggle_fullscreen_axis = "nul"
    input_exit_emulator = "escape"
    input_exit_emulator_axis = "nul"
    input_state_slot_increase = "f7"
    input_state_slot_increase_btn = "nul"
    input_state_slot_increase_axis = "nul"
    input_state_slot_decrease = "f6"
    input_state_slot_decrease_btn = "nul"
    input_state_slot_decrease_axis = "nul"
    input_rewind = "r"
    input_rewind_btn = "nul"
    input_rewind_axis = "nul"
    input_movie_record_toggle = "o"
    input_movie_record_toggle_btn = "nul"
    input_movie_record_toggle_axis = "nul"
    input_pause_toggle = "p"
    input_pause_toggle_btn = "nul"
    input_pause_toggle_axis = "nul"
    input_frame_advance = "k"
    input_frame_advance_btn = "nul"
    input_frame_advance_axis = "nul"
    input_reset = "h"
    input_reset_btn = "nul"
    input_reset_axis = "nul"
    input_shader_next = "m"
    input_shader_next_btn = "nul"
    input_shader_next_axis = "nul"
    input_shader_prev = "n"
    input_shader_prev_btn = "nul"
    input_shader_prev_axis = "nul"
    input_cheat_index_plus = "y"
    input_cheat_index_plus_btn = "nul"
    input_cheat_index_plus_axis = "nul"
    input_cheat_index_minus = "t"
    input_cheat_index_minus_btn = "nul"
    input_cheat_index_minus_axis = "nul"
    input_cheat_toggle = "u"
    input_cheat_toggle_btn = "nul"
    input_cheat_toggle_axis = "nul"
    input_screenshot = "f8"
    input_screenshot_btn = "nul"
    input_screenshot_axis = "nul"
    input_audio_mute = "f9"
    input_audio_mute_btn = "nul"
    input_audio_mute_axis = "nul"
    input_netplay_flip_players = "i"
    input_netplay_flip_players_btn = "nul"
    input_netplay_flip_players_axis = "nul"
    input_slowmotion = "e"
    input_slowmotion_btn = "nul"
    input_slowmotion_axis = "nul"
    input_enable_hotkey = "nul"
    input_enable_hotkey_axis = "nul"
    input_volume_up = "add"
    input_volume_up_btn = "nul"
    input_volume_up_axis = "nul"
    input_volume_down = "subtract"
    input_volume_down_btn = "nul"
    input_volume_down_axis = "nul"
    input_overlay_next = "nul"
    input_overlay_next_btn = "nul"
    input_overlay_next_axis = "nul"
    input_disk_eject_toggle = "nul"
    input_disk_eject_toggle_btn = "nul"
    input_disk_eject_toggle_axis = "nul"
    input_disk_next = "nul"
    input_disk_next_btn = "nul"
    input_disk_next_axis = "nul"
    input_disk_prev = "nul"
    input_disk_prev_btn = "nul"
    input_disk_prev_axis = "nul"
    input_grab_mouse_toggle = "f11"
    input_grab_mouse_toggle_btn = "nul"
    input_grab_mouse_toggle_axis = "nul"
    input_menu_toggle = "f1"
    input_menu_toggle_btn = "nul"
    input_menu_toggle_axis = "nul"
    core_specific_config = "false"
    libretro_log_level = "0"
    log_verbosity = "false"
    perfcnt_enable = "false"
    archive_mode = "0"
    input_driver = "udev"
    input_joypad_driver = "udev"
    input_device_p1 = "0"
    input_libretro_device_p1 = "1"
    input_player1_analog_dpad_mode = "0"
    input_device_p2 = "0"
    input_libretro_device_p2 = "1"
    input_player2_analog_dpad_mode = "0"
    input_device_p3 = "0"
    input_player3_joypad_index = "2"
    input_libretro_device_p3 = "1"
    input_player3_analog_dpad_mode = "0"
    input_device_p4 = "0"
    input_player4_joypad_index = "3"
    input_libretro_device_p4 = "1"
    input_player4_analog_dpad_mode = "0"
    input_device_p5 = "0"
    input_player5_joypad_index = "4"
    input_libretro_device_p5 = "1"
    input_player5_analog_dpad_mode = "0"
    input_device_p6 = "0"
    input_player6_joypad_index = "5"
    input_libretro_device_p6 = "1"
    input_player6_analog_dpad_mode = "0"
    input_device_p7 = "0"
    input_player7_joypad_index = "6"
    input_libretro_device_p7 = "1"
    input_player7_analog_dpad_mode = "0"
    input_device_p8 = "0"
    input_player8_joypad_index = "7"
    input_libretro_device_p8 = "1"
    input_player8_analog_dpad_mode = "0"
    input_device_p9 = "0"
    input_player9_joypad_index = "8"
    input_libretro_device_p9 = "1"
    input_player9_analog_dpad_mode = "0"
    input_device_p10 = "0"
    input_player10_joypad_index = "9"
    input_libretro_device_p10 = "1"
    input_player10_analog_dpad_mode = "0"
    input_device_p11 = "0"
    input_player11_joypad_index = "10"
    input_libretro_device_p11 = "1"
    input_player11_analog_dpad_mode = "0"
    input_device_p12 = "0"
    input_player12_joypad_index = "11"
    input_libretro_device_p12 = "1"
    input_player12_analog_dpad_mode = "0"
    input_device_p13 = "0"
    input_player13_joypad_index = "12"
    input_libretro_device_p13 = "1"
    input_player13_analog_dpad_mode = "0"
    input_device_p14 = "0"
    input_player14_joypad_index = "13"
    input_libretro_device_p14 = "1"
    input_player14_analog_dpad_mode = "0"
    input_device_p15 = "0"
    input_player15_joypad_index = "14"
    input_libretro_device_p15 = "1"
    input_player15_analog_dpad_mode = "0"
    input_device_p16 = "0"
    input_player16_joypad_index = "15"
    input_libretro_device_p16 = "1"
    input_player16_analog_dpad_mode = "0"
    input_player1_b = "z"
    input_player1_b_axis = "nul"
    input_player1_y = "a"
    input_player1_y_axis = "nul"
    input_player1_select = "rshift"
    input_player1_select_axis = "nul"
    input_player1_start = "enter"
    input_player1_start_axis = "nul"
    input_player1_up = "up"
    input_player1_up_btn = "nul"
    input_player1_down = "down"
    input_player1_down_btn = "nul"
    input_player1_left = "left"
    input_player1_left_btn = "nul"
    input_player1_right = "right"
    input_player1_right_btn = "nul"
    input_player1_a = "x"
    input_player1_a_axis = "nul"
    input_player1_x = "s"
    input_player1_x_axis = "nul"
    input_player1_l = "q"
    input_player1_l_axis = "nul"
    input_player1_r = "w"
    input_player1_r_axis = "nul"
    input_player1_l2 = "nul"
    input_player1_l2_btn = "nul"
    input_player1_l2_axis = "nul"
    input_player1_r2 = "nul"
    input_player1_r2_btn = "nul"
    input_player1_r2_axis = "nul"
    input_player1_l3 = "nul"
    input_player1_l3_btn = "nul"
    input_player1_l3_axis = "nul"
    input_player1_r3 = "nul"
    input_player1_r3_btn = "nul"
    input_player1_r3_axis = "nul"
    input_player1_l_x_plus = "nul"
    input_player1_l_x_plus_btn = "nul"
    input_player1_l_x_plus_axis = "nul"
    input_player1_l_x_minus = "nul"
    input_player1_l_x_minus_btn = "nul"
    input_player1_l_x_minus_axis = "nul"
    input_player1_l_y_plus = "nul"
    input_player1_l_y_plus_btn = "nul"
    input_player1_l_y_plus_axis = "nul"
    input_player1_l_y_minus = "nul"
    input_player1_l_y_minus_btn = "nul"
    input_player1_l_y_minus_axis = "nul"
    input_player1_r_x_plus = "nul"
    input_player1_r_x_plus_btn = "nul"
    input_player1_r_x_plus_axis = "nul"
    input_player1_r_x_minus = "nul"
    input_player1_r_x_minus_btn = "nul"
    input_player1_r_x_minus_axis = "nul"
    input_player1_r_y_plus = "nul"
    input_player1_r_y_plus_btn = "nul"
    input_player1_r_y_plus_axis = "nul"
    input_player1_r_y_minus = "nul"
    input_player1_r_y_minus_btn = "nul"
    input_player1_r_y_minus_axis = "nul"
    input_player1_turbo = "nul"
    input_player1_turbo_btn = "nul"
    input_player1_turbo_axis = "nul"
    input_player2_b = "nul"
    input_player2_b_axis = "nul"
    input_player2_y = "nul"
    input_player2_y_axis = "nul"
    input_player2_select = "nul"
    input_player2_select_axis = "nul"
    input_player2_start = "nul"
    input_player2_start_axis = "nul"
    input_player2_up = "nul"
    input_player2_up_btn = "nul"
    input_player2_down = "nul"
    input_player2_down_btn = "nul"
    input_player2_left = "nul"
    input_player2_left_btn = "nul"
    input_player2_right = "nul"
    input_player2_right_btn = "nul"
    input_player2_a = "nul"
    input_player2_a_axis = "nul"
    input_player2_x = "nul"
    input_player2_x_axis = "nul"
    input_player2_l = "nul"
    input_player2_l_axis = "nul"
    input_player2_r = "nul"
    input_player2_r_axis = "nul"
    input_player2_l2 = "nul"
    input_player2_l2_btn = "nul"
    input_player2_l2_axis = "nul"
    input_player2_r2 = "nul"
    input_player2_r2_btn = "nul"
    input_player2_r2_axis = "nul"
    input_player2_l3 = "nul"
    input_player2_l3_btn = "nul"
    input_player2_l3_axis = "nul"
    input_player2_r3 = "nul"
    input_player2_r3_btn = "nul"
    input_player2_r3_axis = "nul"
    input_player2_l_x_plus = "nul"
    input_player2_l_x_plus_btn = "nul"
    input_player2_l_x_plus_axis = "nul"
    input_player2_l_x_minus = "nul"
    input_player2_l_x_minus_btn = "nul"
    input_player2_l_x_minus_axis = "nul"
    input_player2_l_y_plus = "nul"
    input_player2_l_y_plus_btn = "nul"
    input_player2_l_y_plus_axis = "nul"
    input_player2_l_y_minus = "nul"
    input_player2_l_y_minus_btn = "nul"
    input_player2_l_y_minus_axis = "nul"
    input_player2_r_x_plus = "nul"
    input_player2_r_x_plus_btn = "nul"
    input_player2_r_x_plus_axis = "nul"
    input_player2_r_x_minus = "nul"
    input_player2_r_x_minus_btn = "nul"
    input_player2_r_x_minus_axis = "nul"
    input_player2_r_y_plus = "nul"
    input_player2_r_y_plus_btn = "nul"
    input_player2_r_y_plus_axis = "nul"
    input_player2_r_y_minus = "nul"
    input_player2_r_y_minus_btn = "nul"
    input_player2_r_y_minus_axis = "nul"
    input_player2_turbo = "nul"
    input_player2_turbo_btn = "nul"
    input_player2_turbo_axis = "nul"
    input_player3_b = "nul"
    input_player3_b_btn = "nul"
    input_player3_b_axis = "nul"
    input_player3_y = "nul"
    input_player3_y_btn = "nul"
    input_player3_y_axis = "nul"
    input_player3_select = "nul"
    input_player3_select_btn = "nul"
    input_player3_select_axis = "nul"
    input_player3_start = "nul"
    input_player3_start_btn = "nul"
    input_player3_start_axis = "nul"
    input_player3_up = "nul"
    input_player3_up_btn = "nul"
    input_player3_up_axis = "nul"
    input_player3_down = "nul"
    input_player3_down_btn = "nul"
    input_player3_down_axis = "nul"
    input_player3_left = "nul"
    input_player3_left_btn = "nul"
    input_player3_left_axis = "nul"
    input_player3_right = "nul"
    input_player3_right_btn = "nul"
    input_player3_right_axis = "nul"
    input_player3_a = "nul"
    input_player3_a_btn = "nul"
    input_player3_a_axis = "nul"
    input_player3_x = "nul"
    input_player3_x_btn = "nul"
    input_player3_x_axis = "nul"
    input_player3_l = "nul"
    input_player3_l_btn = "nul"
    input_player3_l_axis = "nul"
    input_player3_r = "nul"
    input_player3_r_btn = "nul"
    input_player3_r_axis = "nul"
    input_player3_l2 = "nul"
    input_player3_l2_btn = "nul"
    input_player3_l2_axis = "nul"
    input_player3_r2 = "nul"
    input_player3_r2_btn = "nul"
    input_player3_r2_axis = "nul"
    input_player3_l3 = "nul"
    input_player3_l3_btn = "nul"
    input_player3_l3_axis = "nul"
    input_player3_r3 = "nul"
    input_player3_r3_btn = "nul"
    input_player3_r3_axis = "nul"
    input_player3_l_x_plus = "nul"
    input_player3_l_x_plus_btn = "nul"
    input_player3_l_x_plus_axis = "nul"
    input_player3_l_x_minus = "nul"
    input_player3_l_x_minus_btn = "nul"
    input_player3_l_x_minus_axis = "nul"
    input_player3_l_y_plus = "nul"
    input_player3_l_y_plus_btn = "nul"
    input_player3_l_y_plus_axis = "nul"
    input_player3_l_y_minus = "nul"
    input_player3_l_y_minus_btn = "nul"
    input_player3_l_y_minus_axis = "nul"
    input_player3_r_x_plus = "nul"
    input_player3_r_x_plus_btn = "nul"
    input_player3_r_x_plus_axis = "nul"
    input_player3_r_x_minus = "nul"
    input_player3_r_x_minus_btn = "nul"
    input_player3_r_x_minus_axis = "nul"
    input_player3_r_y_plus = "nul"
    input_player3_r_y_plus_btn = "nul"
    input_player3_r_y_plus_axis = "nul"
    input_player3_r_y_minus = "nul"
    input_player3_r_y_minus_btn = "nul"
    input_player3_r_y_minus_axis = "nul"
    input_player3_turbo = "nul"
    input_player3_turbo_btn = "nul"
    input_player3_turbo_axis = "nul"
    input_player4_b = "nul"
    input_player4_b_btn = "nul"
    input_player4_b_axis = "nul"
    input_player4_y = "nul"
    input_player4_y_btn = "nul"
    input_player4_y_axis = "nul"
    input_player4_select = "nul"
    input_player4_select_btn = "nul"
    input_player4_select_axis = "nul"
    input_player4_start = "nul"
    input_player4_start_btn = "nul"
    input_player4_start_axis = "nul"
    input_player4_up = "nul"
    input_player4_up_btn = "nul"
    input_player4_up_axis = "nul"
    input_player4_down = "nul"
    input_player4_down_btn = "nul"
    input_player4_down_axis = "nul"
    input_player4_left = "nul"
    input_player4_left_btn = "nul"
    input_player4_left_axis = "nul"
    input_player4_right = "nul"
    input_player4_right_btn = "nul"
    input_player4_right_axis = "nul"
    input_player4_a = "nul"
    input_player4_a_btn = "nul"
    input_player4_a_axis = "nul"
    input_player4_x = "nul"
    input_player4_x_btn = "nul"
    input_player4_x_axis = "nul"
    input_player4_l = "nul"
    input_player4_l_btn = "nul"
    input_player4_l_axis = "nul"
    input_player4_r = "nul"
    input_player4_r_btn = "nul"
    input_player4_r_axis = "nul"
    input_player4_l2 = "nul"
    input_player4_l2_btn = "nul"
    input_player4_l2_axis = "nul"
    input_player4_r2 = "nul"
    input_player4_r2_btn = "nul"
    input_player4_r2_axis = "nul"
    input_player4_l3 = "nul"
    input_player4_l3_btn = "nul"
    input_player4_l3_axis = "nul"
    input_player4_r3 = "nul"
    input_player4_r3_btn = "nul"
    input_player4_r3_axis = "nul"
    input_player4_l_x_plus = "nul"
    input_player4_l_x_plus_btn = "nul"
    input_player4_l_x_plus_axis = "nul"
    input_player4_l_x_minus = "nul"
    input_player4_l_x_minus_btn = "nul"
    input_player4_l_x_minus_axis = "nul"
    input_player4_l_y_plus = "nul"
    input_player4_l_y_plus_btn = "nul"
    input_player4_l_y_plus_axis = "nul"
    input_player4_l_y_minus = "nul"
    input_player4_l_y_minus_btn = "nul"
    input_player4_l_y_minus_axis = "nul"
    input_player4_r_x_plus = "nul"
    input_player4_r_x_plus_btn = "nul"
    input_player4_r_x_plus_axis = "nul"
    input_player4_r_x_minus = "nul"
    input_player4_r_x_minus_btn = "nul"
    input_player4_r_x_minus_axis = "nul"
    input_player4_r_y_plus = "nul"
    input_player4_r_y_plus_btn = "nul"
    input_player4_r_y_plus_axis = "nul"
    input_player4_r_y_minus = "nul"
    input_player4_r_y_minus_btn = "nul"
    input_player4_r_y_minus_axis = "nul"
    input_player4_turbo = "nul"
    input_player4_turbo_btn = "nul"
    input_player4_turbo_axis = "nul"
    input_player5_b = "nul"
    input_player5_b_btn = "nul"
    input_player5_b_axis = "nul"
    input_player5_y = "nul"
    input_player5_y_btn = "nul"
    input_player5_y_axis = "nul"
    input_player5_select = "nul"
    input_player5_select_btn = "nul"
    input_player5_select_axis = "nul"
    input_player5_start = "nul"
    input_player5_start_btn = "nul"
    input_player5_start_axis = "nul"
    input_player5_up = "nul"
    input_player5_up_btn = "nul"
    input_player5_up_axis = "nul"
    input_player5_down = "nul"
    input_player5_down_btn = "nul"
    input_player5_down_axis = "nul"
    input_player5_left = "nul"
    input_player5_left_btn = "nul"
    input_player5_left_axis = "nul"
    input_player5_right = "nul"
    input_player5_right_btn = "nul"
    input_player5_right_axis = "nul"
    input_player5_a = "nul"
    input_player5_a_btn = "nul"
    input_player5_a_axis = "nul"
    input_player5_x = "nul"
    input_player5_x_btn = "nul"
    input_player5_x_axis = "nul"
    input_player5_l = "nul"
    input_player5_l_btn = "nul"
    input_player5_l_axis = "nul"
    input_player5_r = "nul"
    input_player5_r_btn = "nul"
    input_player5_r_axis = "nul"
    input_player5_l2 = "nul"
    input_player5_l2_btn = "nul"
    input_player5_l2_axis = "nul"
    input_player5_r2 = "nul"
    input_player5_r2_btn = "nul"
    input_player5_r2_axis = "nul"
    input_player5_l3 = "nul"
    input_player5_l3_btn = "nul"
    input_player5_l3_axis = "nul"
    input_player5_r3 = "nul"
    input_player5_r3_btn = "nul"
    input_player5_r3_axis = "nul"
    input_player5_l_x_plus = "nul"
    input_player5_l_x_plus_btn = "nul"
    input_player5_l_x_plus_axis = "nul"
    input_player5_l_x_minus = "nul"
    input_player5_l_x_minus_btn = "nul"
    input_player5_l_x_minus_axis = "nul"
    input_player5_l_y_plus = "nul"
    input_player5_l_y_plus_btn = "nul"
    input_player5_l_y_plus_axis = "nul"
    input_player5_l_y_minus = "nul"
    input_player5_l_y_minus_btn = "nul"
    input_player5_l_y_minus_axis = "nul"
    input_player5_r_x_plus = "nul"
    input_player5_r_x_plus_btn = "nul"
    input_player5_r_x_plus_axis = "nul"
    input_player5_r_x_minus = "nul"
    input_player5_r_x_minus_btn = "nul"
    input_player5_r_x_minus_axis = "nul"
    input_player5_r_y_plus = "nul"
    input_player5_r_y_plus_btn = "nul"
    input_player5_r_y_plus_axis = "nul"
    input_player5_r_y_minus = "nul"
    input_player5_r_y_minus_btn = "nul"
    input_player5_r_y_minus_axis = "nul"
    input_player5_turbo = "nul"
    input_player5_turbo_btn = "nul"
    input_player5_turbo_axis = "nul"
    input_player6_b = "nul"
    input_player6_b_btn = "nul"
    input_player6_b_axis = "nul"
    input_player6_y = "nul"
    input_player6_y_btn = "nul"
    input_player6_y_axis = "nul"
    input_player6_select = "nul"
    input_player6_select_btn = "nul"
    input_player6_select_axis = "nul"
    input_player6_start = "nul"
    input_player6_start_btn = "nul"
    input_player6_start_axis = "nul"
    input_player6_up = "nul"
    input_player6_up_btn = "nul"
    input_player6_up_axis = "nul"
    input_player6_down = "nul"
    input_player6_down_btn = "nul"
    input_player6_down_axis = "nul"
    input_player6_left = "nul"
    input_player6_left_btn = "nul"
    input_player6_left_axis = "nul"
    input_player6_right = "nul"
    input_player6_right_btn = "nul"
    input_player6_right_axis = "nul"
    input_player6_a = "nul"
    input_player6_a_btn = "nul"
    input_player6_a_axis = "nul"
    input_player6_x = "nul"
    input_player6_x_btn = "nul"
    input_player6_x_axis = "nul"
    input_player6_l = "nul"
    input_player6_l_btn = "nul"
    input_player6_l_axis = "nul"
    input_player6_r = "nul"
    input_player6_r_btn = "nul"
    input_player6_r_axis = "nul"
    input_player6_l2 = "nul"
    input_player6_l2_btn = "nul"
    input_player6_l2_axis = "nul"
    input_player6_r2 = "nul"
    input_player6_r2_btn = "nul"
    input_player6_r2_axis = "nul"
    input_player6_l3 = "nul"
    input_player6_l3_btn = "nul"
    input_player6_l3_axis = "nul"
    input_player6_r3 = "nul"
    input_player6_r3_btn = "nul"
    input_player6_r3_axis = "nul"
    input_player6_l_x_plus = "nul"
    input_player6_l_x_plus_btn = "nul"
    input_player6_l_x_plus_axis = "nul"
    input_player6_l_x_minus = "nul"
    input_player6_l_x_minus_btn = "nul"
    input_player6_l_x_minus_axis = "nul"
    input_player6_l_y_plus = "nul"
    input_player6_l_y_plus_btn = "nul"
    input_player6_l_y_plus_axis = "nul"
    input_player6_l_y_minus = "nul"
    input_player6_l_y_minus_btn = "nul"
    input_player6_l_y_minus_axis = "nul"
    input_player6_r_x_plus = "nul"
    input_player6_r_x_plus_btn = "nul"
    input_player6_r_x_plus_axis = "nul"
    input_player6_r_x_minus = "nul"
    input_player6_r_x_minus_btn = "nul"
    input_player6_r_x_minus_axis = "nul"
    input_player6_r_y_plus = "nul"
    input_player6_r_y_plus_btn = "nul"
    input_player6_r_y_plus_axis = "nul"
    input_player6_r_y_minus = "nul"
    input_player6_r_y_minus_btn = "nul"
    input_player6_r_y_minus_axis = "nul"
    input_player6_turbo = "nul"
    input_player6_turbo_btn = "nul"
    input_player6_turbo_axis = "nul"
    input_player7_b = "nul"
    input_player7_b_btn = "nul"
    input_player7_b_axis = "nul"
    input_player7_y = "nul"
    input_player7_y_btn = "nul"
    input_player7_y_axis = "nul"
    input_player7_select = "nul"
    input_player7_select_btn = "nul"
    input_player7_select_axis = "nul"
    input_player7_start = "nul"
    input_player7_start_btn = "nul"
    input_player7_start_axis = "nul"
    input_player7_up = "nul"
    input_player7_up_btn = "nul"
    input_player7_up_axis = "nul"
    input_player7_down = "nul"
    input_player7_down_btn = "nul"
    input_player7_down_axis = "nul"
    input_player7_left = "nul"
    input_player7_left_btn = "nul"
    input_player7_left_axis = "nul"
    input_player7_right = "nul"
    input_player7_right_btn = "nul"
    input_player7_right_axis = "nul"
    input_player7_a = "nul"
    input_player7_a_btn = "nul"
    input_player7_a_axis = "nul"
    input_player7_x = "nul"
    input_player7_x_btn = "nul"
    input_player7_x_axis = "nul"
    input_player7_l = "nul"
    input_player7_l_btn = "nul"
    input_player7_l_axis = "nul"
    input_player7_r = "nul"
    input_player7_r_btn = "nul"
    input_player7_r_axis = "nul"
    input_player7_l2 = "nul"
    input_player7_l2_btn = "nul"
    input_player7_l2_axis = "nul"
    input_player7_r2 = "nul"
    input_player7_r2_btn = "nul"
    input_player7_r2_axis = "nul"
    input_player7_l3 = "nul"
    input_player7_l3_btn = "nul"
    input_player7_l3_axis = "nul"
    input_player7_r3 = "nul"
    input_player7_r3_btn = "nul"
    input_player7_r3_axis = "nul"
    input_player7_l_x_plus = "nul"
    input_player7_l_x_plus_btn = "nul"
    input_player7_l_x_plus_axis = "nul"
    input_player7_l_x_minus = "nul"
    input_player7_l_x_minus_btn = "nul"
    input_player7_l_x_minus_axis = "nul"
    input_player7_l_y_plus = "nul"
    input_player7_l_y_plus_btn = "nul"
    input_player7_l_y_plus_axis = "nul"
    input_player7_l_y_minus = "nul"
    input_player7_l_y_minus_btn = "nul"
    input_player7_l_y_minus_axis = "nul"
    input_player7_r_x_plus = "nul"
    input_player7_r_x_plus_btn = "nul"
    input_player7_r_x_plus_axis = "nul"
    input_player7_r_x_minus = "nul"
    input_player7_r_x_minus_btn = "nul"
    input_player7_r_x_minus_axis = "nul"
    input_player7_r_y_plus = "nul"
    input_player7_r_y_plus_btn = "nul"
    input_player7_r_y_plus_axis = "nul"
    input_player7_r_y_minus = "nul"
    input_player7_r_y_minus_btn = "nul"
    input_player7_r_y_minus_axis = "nul"
    input_player7_turbo = "nul"
    input_player7_turbo_btn = "nul"
    input_player7_turbo_axis = "nul"
    input_player8_b = "nul"
    input_player8_b_btn = "nul"
    input_player8_b_axis = "nul"
    input_player8_y = "nul"
    input_player8_y_btn = "nul"
    input_player8_y_axis = "nul"
    input_player8_select = "nul"
    input_player8_select_btn = "nul"
    input_player8_select_axis = "nul"
    input_player8_start = "nul"
    input_player8_start_btn = "nul"
    input_player8_start_axis = "nul"
    input_player8_up = "nul"
    input_player8_up_btn = "nul"
    input_player8_up_axis = "nul"
    input_player8_down = "nul"
    input_player8_down_btn = "nul"
    input_player8_down_axis = "nul"
    input_player8_left = "nul"
    input_player8_left_btn = "nul"
    input_player8_left_axis = "nul"
    input_player8_right = "nul"
    input_player8_right_btn = "nul"
    input_player8_right_axis = "nul"
    input_player8_a = "nul"
    input_player8_a_btn = "nul"
    input_player8_a_axis = "nul"
    input_player8_x = "nul"
    input_player8_x_btn = "nul"
    input_player8_x_axis = "nul"
    input_player8_l = "nul"
    input_player8_l_btn = "nul"
    input_player8_l_axis = "nul"
    input_player8_r = "nul"
    input_player8_r_btn = "nul"
    input_player8_r_axis = "nul"
    input_player8_l2 = "nul"
    input_player8_l2_btn = "nul"
    input_player8_l2_axis = "nul"
    input_player8_r2 = "nul"
    input_player8_r2_btn = "nul"
    input_player8_r2_axis = "nul"
    input_player8_l3 = "nul"
    input_player8_l3_btn = "nul"
    input_player8_l3_axis = "nul"
    input_player8_r3 = "nul"
    input_player8_r3_btn = "nul"
    input_player8_r3_axis = "nul"
    input_player8_l_x_plus = "nul"
    input_player8_l_x_plus_btn = "nul"
    input_player8_l_x_plus_axis = "nul"
    input_player8_l_x_minus = "nul"
    input_player8_l_x_minus_btn = "nul"
    input_player8_l_x_minus_axis = "nul"
    input_player8_l_y_plus = "nul"
    input_player8_l_y_plus_btn = "nul"
    input_player8_l_y_plus_axis = "nul"
    input_player8_l_y_minus = "nul"
    input_player8_l_y_minus_btn = "nul"
    input_player8_l_y_minus_axis = "nul"
    input_player8_r_x_plus = "nul"
    input_player8_r_x_plus_btn = "nul"
    input_player8_r_x_plus_axis = "nul"
    input_player8_r_x_minus = "nul"
    input_player8_r_x_minus_btn = "nul"
    input_player8_r_x_minus_axis = "nul"
    input_player8_r_y_plus = "nul"
    input_player8_r_y_plus_btn = "nul"
    input_player8_r_y_plus_axis = "nul"
    input_player8_r_y_minus = "nul"
    input_player8_r_y_minus_btn = "nul"
    input_player8_r_y_minus_axis = "nul"
    input_player8_turbo = "nul"
    input_player8_turbo_btn = "nul"
    input_player8_turbo_axis = "nul"
    input_player9_b = "nul"
    input_player9_b_btn = "nul"
    input_player9_b_axis = "nul"
    input_player9_y = "nul"
    input_player9_y_btn = "nul"
    input_player9_y_axis = "nul"
    input_player9_select = "nul"
    input_player9_select_btn = "nul"
    input_player9_select_axis = "nul"
    input_player9_start = "nul"
    input_player9_start_btn = "nul"
    input_player9_start_axis = "nul"
    input_player9_up = "nul"
    input_player9_up_btn = "nul"
    input_player9_up_axis = "nul"
    input_player9_down = "nul"
    input_player9_down_btn = "nul"
    input_player9_down_axis = "nul"
    input_player9_left = "nul"
    input_player9_left_btn = "nul"
    input_player9_left_axis = "nul"
    input_player9_right = "nul"
    input_player9_right_btn = "nul"
    input_player9_right_axis = "nul"
    input_player9_a = "nul"
    input_player9_a_btn = "nul"
    input_player9_a_axis = "nul"
    input_player9_x = "nul"
    input_player9_x_btn = "nul"
    input_player9_x_axis = "nul"
    input_player9_l = "nul"
    input_player9_l_btn = "nul"
    input_player9_l_axis = "nul"
    input_player9_r = "nul"
    input_player9_r_btn = "nul"
    input_player9_r_axis = "nul"
    input_player9_l2 = "nul"
    input_player9_l2_btn = "nul"
    input_player9_l2_axis = "nul"
    input_player9_r2 = "nul"
    input_player9_r2_btn = "nul"
    input_player9_r2_axis = "nul"
    input_player9_l3 = "nul"
    input_player9_l3_btn = "nul"
    input_player9_l3_axis = "nul"
    input_player9_r3 = "nul"
    input_player9_r3_btn = "nul"
    input_player9_r3_axis = "nul"
    input_player9_l_x_plus = "nul"
    input_player9_l_x_plus_btn = "nul"
    input_player9_l_x_plus_axis = "nul"
    input_player9_l_x_minus = "nul"
    input_player9_l_x_minus_btn = "nul"
    input_player9_l_x_minus_axis = "nul"
    input_player9_l_y_plus = "nul"
    input_player9_l_y_plus_btn = "nul"
    input_player9_l_y_plus_axis = "nul"
    input_player9_l_y_minus = "nul"
    input_player9_l_y_minus_btn = "nul"
    input_player9_l_y_minus_axis = "nul"
    input_player9_r_x_plus = "nul"
    input_player9_r_x_plus_btn = "nul"
    input_player9_r_x_plus_axis = "nul"
    input_player9_r_x_minus = "nul"
    input_player9_r_x_minus_btn = "nul"
    input_player9_r_x_minus_axis = "nul"
    input_player9_r_y_plus = "nul"
    input_player9_r_y_plus_btn = "nul"
    input_player9_r_y_plus_axis = "nul"
    input_player9_r_y_minus = "nul"
    input_player9_r_y_minus_btn = "nul"
    input_player9_r_y_minus_axis = "nul"
    input_player9_turbo = "nul"
    input_player9_turbo_btn = "nul"
    input_player9_turbo_axis = "nul"
    input_player10_b = "nul"
    input_player10_b_btn = "nul"
    input_player10_b_axis = "nul"
    input_player10_y = "nul"
    input_player10_y_btn = "nul"
    input_player10_y_axis = "nul"
    input_player10_select = "nul"
    input_player10_select_btn = "nul"
    input_player10_select_axis = "nul"
    input_player10_start = "nul"
    input_player10_start_btn = "nul"
    input_player10_start_axis = "nul"
    input_player10_up = "nul"
    input_player10_up_btn = "nul"
    input_player10_up_axis = "nul"
    input_player10_down = "nul"
    input_player10_down_btn = "nul"
    input_player10_down_axis = "nul"
    input_player10_left = "nul"
    input_player10_left_btn = "nul"
    input_player10_left_axis = "nul"
    input_player10_right = "nul"
    input_player10_right_btn = "nul"
    input_player10_right_axis = "nul"
    input_player10_a = "nul"
    input_player10_a_btn = "nul"
    input_player10_a_axis = "nul"
    input_player10_x = "nul"
    input_player10_x_btn = "nul"
    input_player10_x_axis = "nul"
    input_player10_l = "nul"
    input_player10_l_btn = "nul"
    input_player10_l_axis = "nul"
    input_player10_r = "nul"
    input_player10_r_btn = "nul"
    input_player10_r_axis = "nul"
    input_player10_l2 = "nul"
    input_player10_l2_btn = "nul"
    input_player10_l2_axis = "nul"
    input_player10_r2 = "nul"
    input_player10_r2_btn = "nul"
    input_player10_r2_axis = "nul"
    input_player10_l3 = "nul"
    input_player10_l3_btn = "nul"
    input_player10_l3_axis = "nul"
    input_player10_r3 = "nul"
    input_player10_r3_btn = "nul"
    input_player10_r3_axis = "nul"
    input_player10_l_x_plus = "nul"
    input_player10_l_x_plus_btn = "nul"
    input_player10_l_x_plus_axis = "nul"
    input_player10_l_x_minus = "nul"
    input_player10_l_x_minus_btn = "nul"
    input_player10_l_x_minus_axis = "nul"
    input_player10_l_y_plus = "nul"
    input_player10_l_y_plus_btn = "nul"
    input_player10_l_y_plus_axis = "nul"
    input_player10_l_y_minus = "nul"
    input_player10_l_y_minus_btn = "nul"
    input_player10_l_y_minus_axis = "nul"
    input_player10_r_x_plus = "nul"
    input_player10_r_x_plus_btn = "nul"
    input_player10_r_x_plus_axis = "nul"
    input_player10_r_x_minus = "nul"
    input_player10_r_x_minus_btn = "nul"
    input_player10_r_x_minus_axis = "nul"
    input_player10_r_y_plus = "nul"
    input_player10_r_y_plus_btn = "nul"
    input_player10_r_y_plus_axis = "nul"
    input_player10_r_y_minus = "nul"
    input_player10_r_y_minus_btn = "nul"
    input_player10_r_y_minus_axis = "nul"
    input_player10_turbo = "nul"
    input_player10_turbo_btn = "nul"
    input_player10_turbo_axis = "nul"
    input_player11_b = "nul"
    input_player11_b_btn = "nul"
    input_player11_b_axis = "nul"
    input_player11_y = "nul"
    input_player11_y_btn = "nul"
    input_player11_y_axis = "nul"
    input_player11_select = "nul"
    input_player11_select_btn = "nul"
    input_player11_select_axis = "nul"
    input_player11_start = "nul"
    input_player11_start_btn = "nul"
    input_player11_start_axis = "nul"
    input_player11_up = "nul"
    input_player11_up_btn = "nul"
    input_player11_up_axis = "nul"
    input_player11_down = "nul"
    input_player11_down_btn = "nul"
    input_player11_down_axis = "nul"
    input_player11_left = "nul"
    input_player11_left_btn = "nul"
    input_player11_left_axis = "nul"
    input_player11_right = "nul"
    input_player11_right_btn = "nul"
    input_player11_right_axis = "nul"
    input_player11_a = "nul"
    input_player11_a_btn = "nul"
    input_player11_a_axis = "nul"
    input_player11_x = "nul"
    input_player11_x_btn = "nul"
    input_player11_x_axis = "nul"
    input_player11_l = "nul"
    input_player11_l_btn = "nul"
    input_player11_l_axis = "nul"
    input_player11_r = "nul"
    input_player11_r_btn = "nul"
    input_player11_r_axis = "nul"
    input_player11_l2 = "nul"
    input_player11_l2_btn = "nul"
    input_player11_l2_axis = "nul"
    input_player11_r2 = "nul"
    input_player11_r2_btn = "nul"
    input_player11_r2_axis = "nul"
    input_player11_l3 = "nul"
    input_player11_l3_btn = "nul"
    input_player11_l3_axis = "nul"
    input_player11_r3 = "nul"
    input_player11_r3_btn = "nul"
    input_player11_r3_axis = "nul"
    input_player11_l_x_plus = "nul"
    input_player11_l_x_plus_btn = "nul"
    input_player11_l_x_plus_axis = "nul"
    input_player11_l_x_minus = "nul"
    input_player11_l_x_minus_btn = "nul"
    input_player11_l_x_minus_axis = "nul"
    input_player11_l_y_plus = "nul"
    input_player11_l_y_plus_btn = "nul"
    input_player11_l_y_plus_axis = "nul"
    input_player11_l_y_minus = "nul"
    input_player11_l_y_minus_btn = "nul"
    input_player11_l_y_minus_axis = "nul"
    input_player11_r_x_plus = "nul"
    input_player11_r_x_plus_btn = "nul"
    input_player11_r_x_plus_axis = "nul"
    input_player11_r_x_minus = "nul"
    input_player11_r_x_minus_btn = "nul"
    input_player11_r_x_minus_axis = "nul"
    input_player11_r_y_plus = "nul"
    input_player11_r_y_plus_btn = "nul"
    input_player11_r_y_plus_axis = "nul"
    input_player11_r_y_minus = "nul"
    input_player11_r_y_minus_btn = "nul"
    input_player11_r_y_minus_axis = "nul"
    input_player11_turbo = "nul"
    input_player11_turbo_btn = "nul"
    input_player11_turbo_axis = "nul"
    input_player12_b = "nul"
    input_player12_b_btn = "nul"
    input_player12_b_axis = "nul"
    input_player12_y = "nul"
    input_player12_y_btn = "nul"
    input_player12_y_axis = "nul"
    input_player12_select = "nul"
    input_player12_select_btn = "nul"
    input_player12_select_axis = "nul"
    input_player12_start = "nul"
    input_player12_start_btn = "nul"
    input_player12_start_axis = "nul"
    input_player12_up = "nul"
    input_player12_up_btn = "nul"
    input_player12_up_axis = "nul"
    input_player12_down = "nul"
    input_player12_down_btn = "nul"
    input_player12_down_axis = "nul"
    input_player12_left = "nul"
    input_player12_left_btn = "nul"
    input_player12_left_axis = "nul"
    input_player12_right = "nul"
    input_player12_right_btn = "nul"
    input_player12_right_axis = "nul"
    input_player12_a = "nul"
    input_player12_a_btn = "nul"
    input_player12_a_axis = "nul"
    input_player12_x = "nul"
    input_player12_x_btn = "nul"
    input_player12_x_axis = "nul"
    input_player12_l = "nul"
    input_player12_l_btn = "nul"
    input_player12_l_axis = "nul"
    input_player12_r = "nul"
    input_player12_r_btn = "nul"
    input_player12_r_axis = "nul"
    input_player12_l2 = "nul"
    input_player12_l2_btn = "nul"
    input_player12_l2_axis = "nul"
    input_player12_r2 = "nul"
    input_player12_r2_btn = "nul"
    input_player12_r2_axis = "nul"
    input_player12_l3 = "nul"
    input_player12_l3_btn = "nul"
    input_player12_l3_axis = "nul"
    input_player12_r3 = "nul"
    input_player12_r3_btn = "nul"
    input_player12_r3_axis = "nul"
    input_player12_l_x_plus = "nul"
    input_player12_l_x_plus_btn = "nul"
    input_player12_l_x_plus_axis = "nul"
    input_player12_l_x_minus = "nul"
    input_player12_l_x_minus_btn = "nul"
    input_player12_l_x_minus_axis = "nul"
    input_player12_l_y_plus = "nul"
    input_player12_l_y_plus_btn = "nul"
    input_player12_l_y_plus_axis = "nul"
    input_player12_l_y_minus = "nul"
    input_player12_l_y_minus_btn = "nul"
    input_player12_l_y_minus_axis = "nul"
    input_player12_r_x_plus = "nul"
    input_player12_r_x_plus_btn = "nul"
    input_player12_r_x_plus_axis = "nul"
    input_player12_r_x_minus = "nul"
    input_player12_r_x_minus_btn = "nul"
    input_player12_r_x_minus_axis = "nul"
    input_player12_r_y_plus = "nul"
    input_player12_r_y_plus_btn = "nul"
    input_player12_r_y_plus_axis = "nul"
    input_player12_r_y_minus = "nul"
    input_player12_r_y_minus_btn = "nul"
    input_player12_r_y_minus_axis = "nul"
    input_player12_turbo = "nul"
    input_player12_turbo_btn = "nul"
    input_player12_turbo_axis = "nul"
    input_player13_b = "nul"
    input_player13_b_btn = "nul"
    input_player13_b_axis = "nul"
    input_player13_y = "nul"
    input_player13_y_btn = "nul"
    input_player13_y_axis = "nul"
    input_player13_select = "nul"
    input_player13_select_btn = "nul"
    input_player13_select_axis = "nul"
    input_player13_start = "nul"
    input_player13_start_btn = "nul"
    input_player13_start_axis = "nul"
    input_player13_up = "nul"
    input_player13_up_btn = "nul"
    input_player13_up_axis = "nul"
    input_player13_down = "nul"
    input_player13_down_btn = "nul"
    input_player13_down_axis = "nul"
    input_player13_left = "nul"
    input_player13_left_btn = "nul"
    input_player13_left_axis = "nul"
    input_player13_right = "nul"
    input_player13_right_btn = "nul"
    input_player13_right_axis = "nul"
    input_player13_a = "nul"
    input_player13_a_btn = "nul"
    input_player13_a_axis = "nul"
    input_player13_x = "nul"
    input_player13_x_btn = "nul"
    input_player13_x_axis = "nul"
    input_player13_l = "nul"
    input_player13_l_btn = "nul"
    input_player13_l_axis = "nul"
    input_player13_r = "nul"
    input_player13_r_btn = "nul"
    input_player13_r_axis = "nul"
    input_player13_l2 = "nul"
    input_player13_l2_btn = "nul"
    input_player13_l2_axis = "nul"
    input_player13_r2 = "nul"
    input_player13_r2_btn = "nul"
    input_player13_r2_axis = "nul"
    input_player13_l3 = "nul"
    input_player13_l3_btn = "nul"
    input_player13_l3_axis = "nul"
    input_player13_r3 = "nul"
    input_player13_r3_btn = "nul"
    input_player13_r3_axis = "nul"
    input_player13_l_x_plus = "nul"
    input_player13_l_x_plus_btn = "nul"
    input_player13_l_x_plus_axis = "nul"
    input_player13_l_x_minus = "nul"
    input_player13_l_x_minus_btn = "nul"
    input_player13_l_x_minus_axis = "nul"
    input_player13_l_y_plus = "nul"
    input_player13_l_y_plus_btn = "nul"
    input_player13_l_y_plus_axis = "nul"
    input_player13_l_y_minus = "nul"
    input_player13_l_y_minus_btn = "nul"
    input_player13_l_y_minus_axis = "nul"
    input_player13_r_x_plus = "nul"
    input_player13_r_x_plus_btn = "nul"
    input_player13_r_x_plus_axis = "nul"
    input_player13_r_x_minus = "nul"
    input_player13_r_x_minus_btn = "nul"
    input_player13_r_x_minus_axis = "nul"
    input_player13_r_y_plus = "nul"
    input_player13_r_y_plus_btn = "nul"
    input_player13_r_y_plus_axis = "nul"
    input_player13_r_y_minus = "nul"
    input_player13_r_y_minus_btn = "nul"
    input_player13_r_y_minus_axis = "nul"
    input_player13_turbo = "nul"
    input_player13_turbo_btn = "nul"
    input_player13_turbo_axis = "nul"
    input_player14_b = "nul"
    input_player14_b_btn = "nul"
    input_player14_b_axis = "nul"
    input_player14_y = "nul"
    input_player14_y_btn = "nul"
    input_player14_y_axis = "nul"
    input_player14_select = "nul"
    input_player14_select_btn = "nul"
    input_player14_select_axis = "nul"
    input_player14_start = "nul"
    input_player14_start_btn = "nul"
    input_player14_start_axis = "nul"
    input_player14_up = "nul"
    input_player14_up_btn = "nul"
    input_player14_up_axis = "nul"
    input_player14_down = "nul"
    input_player14_down_btn = "nul"
    input_player14_down_axis = "nul"
    input_player14_left = "nul"
    input_player14_left_btn = "nul"
    input_player14_left_axis = "nul"
    input_player14_right = "nul"
    input_player14_right_btn = "nul"
    input_player14_right_axis = "nul"
    input_player14_a = "nul"
    input_player14_a_btn = "nul"
    input_player14_a_axis = "nul"
    input_player14_x = "nul"
    input_player14_x_btn = "nul"
    input_player14_x_axis = "nul"
    input_player14_l = "nul"
    input_player14_l_btn = "nul"
    input_player14_l_axis = "nul"
    input_player14_r = "nul"
    input_player14_r_btn = "nul"
    input_player14_r_axis = "nul"
    input_player14_l2 = "nul"
    input_player14_l2_btn = "nul"
    input_player14_l2_axis = "nul"
    input_player14_r2 = "nul"
    input_player14_r2_btn = "nul"
    input_player14_r2_axis = "nul"
    input_player14_l3 = "nul"
    input_player14_l3_btn = "nul"
    input_player14_l3_axis = "nul"
    input_player14_r3 = "nul"
    input_player14_r3_btn = "nul"
    input_player14_r3_axis = "nul"
    input_player14_l_x_plus = "nul"
    input_player14_l_x_plus_btn = "nul"
    input_player14_l_x_plus_axis = "nul"
    input_player14_l_x_minus = "nul"
    input_player14_l_x_minus_btn = "nul"
    input_player14_l_x_minus_axis = "nul"
    input_player14_l_y_plus = "nul"
    input_player14_l_y_plus_btn = "nul"
    input_player14_l_y_plus_axis = "nul"
    input_player14_l_y_minus = "nul"
    input_player14_l_y_minus_btn = "nul"
    input_player14_l_y_minus_axis = "nul"
    input_player14_r_x_plus = "nul"
    input_player14_r_x_plus_btn = "nul"
    input_player14_r_x_plus_axis = "nul"
    input_player14_r_x_minus = "nul"
    input_player14_r_x_minus_btn = "nul"
    input_player14_r_x_minus_axis = "nul"
    input_player14_r_y_plus = "nul"
    input_player14_r_y_plus_btn = "nul"
    input_player14_r_y_plus_axis = "nul"
    input_player14_r_y_minus = "nul"
    input_player14_r_y_minus_btn = "nul"
    input_player14_r_y_minus_axis = "nul"
    input_player14_turbo = "nul"
    input_player14_turbo_btn = "nul"
    input_player14_turbo_axis = "nul"
    input_player15_b = "nul"
    input_player15_b_btn = "nul"
    input_player15_b_axis = "nul"
    input_player15_y = "nul"
    input_player15_y_btn = "nul"
    input_player15_y_axis = "nul"
    input_player15_select = "nul"
    input_player15_select_btn = "nul"
    input_player15_select_axis = "nul"
    input_player15_start = "nul"
    input_player15_start_btn = "nul"
    input_player15_start_axis = "nul"
    input_player15_up = "nul"
    input_player15_up_btn = "nul"
    input_player15_up_axis = "nul"
    input_player15_down = "nul"
    input_player15_down_btn = "nul"
    input_player15_down_axis = "nul"
    input_player15_left = "nul"
    input_player15_left_btn = "nul"
    input_player15_left_axis = "nul"
    input_player15_right = "nul"
    input_player15_right_btn = "nul"
    input_player15_right_axis = "nul"
    input_player15_a = "nul"
    input_player15_a_btn = "nul"
    input_player15_a_axis = "nul"
    input_player15_x = "nul"
    input_player15_x_btn = "nul"
    input_player15_x_axis = "nul"
    input_player15_l = "nul"
    input_player15_l_btn = "nul"
    input_player15_l_axis = "nul"
    input_player15_r = "nul"
    input_player15_r_btn = "nul"
    input_player15_r_axis = "nul"
    input_player15_l2 = "nul"
    input_player15_l2_btn = "nul"
    input_player15_l2_axis = "nul"
    input_player15_r2 = "nul"
    input_player15_r2_btn = "nul"
    input_player15_r2_axis = "nul"
    input_player15_l3 = "nul"
    input_player15_l3_btn = "nul"
    input_player15_l3_axis = "nul"
    input_player15_r3 = "nul"
    input_player15_r3_btn = "nul"
    input_player15_r3_axis = "nul"
    input_player15_l_x_plus = "nul"
    input_player15_l_x_plus_btn = "nul"
    input_player15_l_x_plus_axis = "nul"
    input_player15_l_x_minus = "nul"
    input_player15_l_x_minus_btn = "nul"
    input_player15_l_x_minus_axis = "nul"
    input_player15_l_y_plus = "nul"
    input_player15_l_y_plus_btn = "nul"
    input_player15_l_y_plus_axis = "nul"
    input_player15_l_y_minus = "nul"
    input_player15_l_y_minus_btn = "nul"
    input_player15_l_y_minus_axis = "nul"
    input_player15_r_x_plus = "nul"
    input_player15_r_x_plus_btn = "nul"
    input_player15_r_x_plus_axis = "nul"
    input_player15_r_x_minus = "nul"
    input_player15_r_x_minus_btn = "nul"
    input_player15_r_x_minus_axis = "nul"
    input_player15_r_y_plus = "nul"
    input_player15_r_y_plus_btn = "nul"
    input_player15_r_y_plus_axis = "nul"
    input_player15_r_y_minus = "nul"
    input_player15_r_y_minus_btn = "nul"
    input_player15_r_y_minus_axis = "nul"
    input_player15_turbo = "nul"
    input_player15_turbo_btn = "nul"
    input_player15_turbo_axis = "nul"
    input_player16_b = "nul"
    input_player16_b_btn = "nul"
    input_player16_b_axis = "nul"
    input_player16_y = "nul"
    input_player16_y_btn = "nul"
    input_player16_y_axis = "nul"
    input_player16_select = "nul"
    input_player16_select_btn = "nul"
    input_player16_select_axis = "nul"
    input_player16_start = "nul"
    input_player16_start_btn = "nul"
    input_player16_start_axis = "nul"
    input_player16_up = "nul"
    input_player16_up_btn = "nul"
    input_player16_up_axis = "nul"
    input_player16_down = "nul"
    input_player16_down_btn = "nul"
    input_player16_down_axis = "nul"
    input_player16_left = "nul"
    input_player16_left_btn = "nul"
    input_player16_left_axis = "nul"
    input_player16_right = "nul"
    input_player16_right_btn = "nul"
    input_player16_right_axis = "nul"
    input_player16_a = "nul"
    input_player16_a_btn = "nul"
    input_player16_a_axis = "nul"
    input_player16_x = "nul"
    input_player16_x_btn = "nul"
    input_player16_x_axis = "nul"
    input_player16_l = "nul"
    input_player16_l_btn = "nul"
    input_player16_l_axis = "nul"
    input_player16_r = "nul"
    input_player16_r_btn = "nul"
    input_player16_r_axis = "nul"
    input_player16_l2 = "nul"
    input_player16_l2_btn = "nul"
    input_player16_l2_axis = "nul"
    input_player16_r2 = "nul"
    input_player16_r2_btn = "nul"
    input_player16_r2_axis = "nul"
    input_player16_l3 = "nul"
    input_player16_l3_btn = "nul"
    input_player16_l3_axis = "nul"
    input_player16_r3 = "nul"
    input_player16_r3_btn = "nul"
    input_player16_r3_axis = "nul"
    input_player16_l_x_plus = "nul"
    input_player16_l_x_plus_btn = "nul"
    input_player16_l_x_plus_axis = "nul"
    input_player16_l_x_minus = "nul"
    input_player16_l_x_minus_btn = "nul"
    input_player16_l_x_minus_axis = "nul"
    input_player16_l_y_plus = "nul"
    input_player16_l_y_plus_btn = "nul"
    input_player16_l_y_plus_axis = "nul"
    input_player16_l_y_minus = "nul"
    input_player16_l_y_minus_btn = "nul"
    input_player16_l_y_minus_axis = "nul"
    input_player16_r_x_plus = "nul"
    input_player16_r_x_plus_btn = "nul"
    input_player16_r_x_plus_axis = "nul"
    input_player16_r_x_minus = "nul"
    input_player16_r_x_minus_btn = "nul"
    input_player16_r_x_minus_axis = "nul"
    input_player16_r_y_plus = "nul"
    input_player16_r_y_plus_btn = "nul"
    input_player16_r_y_plus_axis = "nul"
    input_player16_r_y_minus = "nul"
    input_player16_r_y_minus_btn = "nul"
    input_player16_r_y_minus_axis = "nul"
    input_player16_turbo = "nul"
    input_player16_turbo_btn = "nul"
    input_player16_turbo_axis = "nul"
    libretro_directory = ""
    libretro_info_path = ""
    cheat_database_path = ""
    content_history_dir = ""
    audio_device = ""
    video_filter = ""
    audio_dsp_plugin = ""
    camera_device = ""
    video_context_driver = ""
    extraction_directory = ""
    resampler_directory = ""
    joypad_autoconfig_dir = ""
    input_overlay = ""
    video_font_path = ""
    netplay_ip_address = ""
    netplay_nickname = ""
    input_keyboard_layout = ""
    
    #84070

    In reply to: keyboard input problem

    Floob
    Member

    Edit the main retroarch.cfg for hotkeys.

    Its at
    /opt/retropie/configs/all/retroarch.cfg

    #84048
    Floob
    Member

    I’m presuming you dont have any state related config file in your /opt/retropie/configs/{systemname}/retroarch.cfg files that may be overwriting your main file?

    To use F6 / F7 – hold the hotkey down as you do it.
    Also, your cfg says you are autoloading the controller config, but then you specify it at the bottom of your script, I would do one or the other.

    You can also get the GUI to try the options if you press F1 (with hotkey)

    Yes, the # is a comment, but the value shown is a default so it will still work.

    #84044
    sludwig
    Participant

    I’m just going to upload a picture of my results when I do the ls -lah command. It will just show the .state files when I do the command, so maybe that’s not what you are asking for…

    And I reset the config as you said, but still not luck. Here’s what it says now when I try to hotkey a save and load:
    “Saved state to slot #0”
    then try to hotkey a load…
    “Failed to load state from “/home/pi/RetroPie/roms/nes/Super Mario.state1”
    I notice that if I keep hitting the hotkey load on my controller, that the “.state1” will increase each time I click it. I can continuously click it, and on the bottom of the screen it will keep on loading from the next state, so “Failed to load… .state51/state52/state53/” It’ll keep going on.

    However, this does not work for the save hotkey button. If I hotkey a save it will say “Saved state to slot #0”. If I keep clicking that hotkey button, it will still say “Saved state to slot #0”. But if I click the hotkey load button, get the failed load state message, and go back and try to save again in the game, it will now go up one and the message will be “Saved state to slot #1”. Most likely a big clue for someone more knowledgeable on how the retropie saves things (.state/.srm) and such.

    Also, couldn’t get anything out of doing f6 on my keyboard. Do I click f6 in game, before I try to load or save? Also, should I remove the # infront of the # input_state_slot_increase = f7? And same for the f6 one? The # mean they are comments right, and need to remove them to make them work, correct? Maybe I should make a hotkey on my controller to replace the f6 and f7?

    #84040
    Floob
    Member

    The F1 button on the keyboard should bring that up.

    Or you can map it to your joystick with hotkeys.
    See the end of this video for hotkeys.

    #84011
    sludwig
    Participant

    I removed the commented out savestate directory and removed this line from the bottom:

    savefile_directory = /home/pi/RetroPie/
    savestate_directory = /home/pi/RetroPie/

    So if you look back at my original config, on top, it looks like this:

    ## Skeleton config file for RetroArch
    
    # Save all save files (*.srm) to this directory. This includes related files like .bsv, .rtc, .psrm, etc ...
    # This will be overridden by explicit command line options.
    savefile_directory = /home/pi/RetroPie/savestate
    
    # Save all save states (*.state) to this directory.
    # This will be overridden by explicit command line options.
    savestate_directory = /home/pi/RetroPie/savestate
    
    # If set to a directory, Content which is temporarily extracted
    # will be extracted to this directory.
    # extraction_directory =
    
    # Automatically saves a savestate at the end of RetroArch's lifetime.
    # The path is $SRAM_PATH.auto.
    # RetroArch will automatically load any savestate with this path on startup if savestate_auto_load is set.
    savestate_auto_save = false
    savestate_auto_load = false

    Also, I checked my directory for my saved state files. It saves in this folder:

    /home/pi/RetroPie/savestate

    All my games have .state files of their saves in there. However, I can’t load them at all. Even if I try f2 or f4. I keep getting:

    “Failed to load state from “/home/pi/RetroPie/savestate/Doom (U) [!].state 1″

    Again, it will change the name depending on the name of the game.

    I’m just lost as I’ve never taken a coding class or understand comp sci that much, and am literally just following google guides. To make it easier to understand I’m just going to show my entire config again so everyone knows where I am at.

    ## Skeleton config file for RetroArch
    
    # Save all save files (*.srm) to this directory. This includes related files like .bsv, .rtc, .psrm, etc ...
    # This will be overridden by explicit command line options.
    savefile_directory = /home/pi/RetroPie/savestate
    
    # Save all save states (*.state) to this directory.
    # This will be overridden by explicit command line options.
    savestate_directory = /home/pi/RetroPie/savestate
    
    # If set to a directory, Content which is temporarily extracted
    # will be extracted to this directory.
    # extraction_directory =
    
    # Automatically saves a savestate at the end of RetroArch's lifetime.
    # The path is $SRAM_PATH.auto.
    # RetroArch will automatically load any savestate with this path on startup if savestate_auto_load is set.
    savestate_auto_save = false
    savestate_auto_load = false
    
    # Load libretro from a dynamic location for dynamically built RetroArch.
    # This option is mandatory.
    
    # Path to a libretro implementation.
    # libretro_path = "/path/to/libretro.so"
    
    # A directory for where to search for libretro core implementations.
    # libretro_directory =
    
    # Sets log level for libretro cores (GET_LOG_INTERFACE).
    # If a log level issued by a libretro core is below libretro_log_level, it is ignored.
    # DEBUG logs are always ignored unless verbose mode is activated (--verbose).
    # DEBUG = 0, INFO = 1, WARN = 2, ERROR = 3.
    # libretro_log_level = 0
    
    # Enable or disable verbosity level of frontend.
    # log_verbosity = false
    
    # Enable or disable RetroArch performance counters
    # perfcnt_enable = false
    
    # Path to core options config file.
    # This config file is used to expose core-specific options.
    # It will be written to by RetroArch.
    # A default path will be assigned if not set.
    core_options_path = /opt/retropie/configs/all/retroarch-core-options.cfg
    
    # Path to content load history file.
    # RetroArch keeps track of all content loaded in the menu and from CLI directly for convenient quick loading.
    # A default path will be assigned if not set.
    # game_history_path =
    
    # Number of entries that will be kept in content history file.
    # game_history_size = 100
    
    # Sets the "system" directory.
    # Implementations can query for this directory to load BIOSes, system-specific configs, etc.
    system_directory = /home/pi/RetroPie/roms/../BIOS
    
    # Sets start directory for menu content browser.
    # rgui_browser_directory =
    
    # Content directory. Interacts with RETRO_ENVIRONMENT_GET_CONTENT_DIRECTORY.
    # Usually set by developers who bundle libretro/RetroArch apps to point to assets.
    # content_directory =
    
    # Assets directory. This location is queried by default when menu interfaces try to look for
    # loadable assets, etc.
    # assets_directory =
    
    # Sets start directory for menu config browser.
    # rgui_config_directory =
    
    # Show startup screen in menu.
    # Is automatically set to false when seen for the first time.
    # This is only updated in config if config_save_on_exit is set to true, however.
    # rgui_show_start_screen = true
    
    # Flushes config to disk on exit. Useful for menu as settings can be modified.
    # Overwrites the config. #include's and comments are not preserved.
    config_save_on_exit = false
    
    # Load up a specific config file based on the core being used.
    # core_specific_config = false
    
    #### Video
    
    # Video driver to use. "gl", "xvideo", "sdl"
    # video_driver = "gl"
    
    # Which OpenGL context implementation to use.
    # Possible ones for desktop are: glx, x-egl, kms-egl, sdl-gl, wgl.
    # By default, tries to use first suitable driver.
    # video_gl_context =
    
    # Windowed xscale and yscale
    # (Real x res: base_size * xscale * aspect_ratio, real y res: base_size * yscale)
    # video_xscale = 3.0
    # video_yscale = 3.0
    
    # Fullscreen resolution. Resolution of 0 uses the resolution of the desktop.
    # video_fullscreen_x = 0
    # video_fullscreen_y = 0
    
    # Start in fullscreen. Can be changed at runtime.
    # video_fullscreen = false
    
    # If fullscreen, prefer using a windowed fullscreen mode.
    # video_windowed_fullscreen = true
    
    # Which monitor to prefer. 0 (default) means no particular monitor is preferred, 1 and up (1 being first monitor),
    # suggests RetroArch to use that particular monitor.
    # video_monitor_index = 0
    
    # Forcibly disable composition. Only works in Windows Vista/7 for now.
    # video_disable_composition = false
    
    # Video vsync.
    # video_vsync = true
    
    # Attempts to hard-synchronize CPU and GPU. Can reduce latency at cost of performance.
    # video_hard_sync = false
    
    # Sets how many frames CPU can run ahead of GPU when using video_hard_sync.
    # Maximum is 3.
    # video_hard_sync_frames = 0
    
    # Inserts a black frame inbetween frames.
    # Useful for 120 Hz monitors who want to play 60 Hz material with eliminated ghosting.
    # video_refresh_rate should still be configured as if it is a 60 Hz monitor (divide refresh rate by 2).
    # video_black_frame_insertion = false
    
    # Use threaded video driver. Using this might improve performance at possible cost of latency and more video stuttering.
    video_threaded = true
    
    # Use a shared context for HW rendered libretro cores.
    # Avoids having to assume GL state changes inbetween frames.
    # video_shared_context = false
    
    # Smoothens picture with bilinear filtering. Should be disabled if using pixel shaders.
    video_smooth = false
    
    # Forces rendering area to stay equal to content aspect ratio or as defined in video_aspect_ratio.
    # video_force_aspect = true
    
    # Only scales video in integer steps.
    # The base size depends on system-reported geometry and aspect ratio.
    # If video_force_aspect is not set, X/Y will be integer scaled independently.
    # video_scale_integer = false
    
    # A floating point value for video aspect ratio (width / height).
    # If this is not set, aspect ratio is assumed to be automatic.
    # Behavior then is defined by video_aspect_ratio_auto.
    video_aspect_ratio = 1.33
    
    # If this is true and video_aspect_ratio is not set,
    # aspect ratio is decided by libretro implementation.
    # If this is false, 1:1 PAR will always be assumed if video_aspect_ratio is not set.
    # video_aspect_ratio_auto = false
    
    # Forces cropping of overscanned frames.
    # Exact behavior of this option is implementation specific.
    # video_crop_overscan = true 
    
    # Path to shader. Shader can be either Cg, CGP (Cg preset) or GLSL, GLSLP (GLSL preset)
    # video_shader = "/path/to/shader.{cg,cgp,glsl,glslp}"
    
    # Load video_shader on startup.
    # Other shaders can still be loaded later in runtime.
    # video_shader_enable = false
    
    # Defines a directory where shaders (Cg, CGP, GLSL) are kept for easy access.
    video_shader_dir = /opt/retropie/emulators/RetroArch/shader/
    
    # CPU-based video filter. Path to a dynamic library.
    # video_filter =
    
    # Path to a font used for rendering messages. This path must be defined to enable fonts.
    # Do note that the _full_ path of the font is necessary!
    # video_font_path = 
    
    # Size of the font rendered.
    video_font_size = 16
    
    # Enable usage of OSD messages.
    # video_font_enable = true
    
    # Offset for where messages will be placed on screen. Values are in range 0.0 to 1.0 for both x and y values. 
    # [0.0, 0.0] maps to the lower left corner of the screen.
    # video_message_pos_x = 0.05
    # video_message_pos_y = 0.05
    
    # Color for message. The value is treated as a hexadecimal value.
    # It is a regular RGB hex number, i.e. red is "ff0000".
    # video_message_color = ffffff
    
    # Video refresh rate of your monitor.
    # Used to calculate a suitable audio input rate.
    # video_refresh_rate = 59.95
    
    # Allows libretro cores to set rotation modes.
    # Setting this to false will honor, but ignore this request.
    # This is useful for vertically oriented content where one manually rotates the monitor.
    # video_allow_rotate = true
    
    # Forces a certain rotation of the screen.
    # The rotation is added to rotations which the libretro core sets (see video_allow_rotate).
    # The angle is <value> * 90 degrees counter-clockwise.
    # video_rotation = 0
    
    #### Audio
    
    # Enable audio.
    # audio_enable = true
    
    # Audio output samplerate.
    # audio_out_rate = 48000
    
    # Audio resampler backend. Which audio resampler to use.
    # Default will use "sinc".
    # audio_resampler =
    
    # Audio driver backend. Depending on configuration possible candidates are: alsa, pulse, oss, jack, rsound, roar, openal, sdl, xaudio.
    # audio_driver =
    
    # Override the default audio device the audio_driver uses. This is driver dependant. E.g. ALSA wants a PCM device, OSS wants a path (e.g. /dev/dsp), Jack wants portnames (e.g. system:playback1,system:playback_2), and so on ...
    # audio_device =
    
    # Audio DSP plugin that processes audio before it's sent to the driver. Path to a dynamic library.
    # audio_dsp_plugin =
    
    # Will sync (block) on audio. Recommended.
    # audio_sync = true
    
    # Desired audio latency in milliseconds. Might not be honored if driver can't provide given latency.
    # audio_latency = 64
    
    # Enable audio rate control.
    # audio_rate_control = true
    
    # Controls audio rate control delta. Defines how much input rate can be adjusted dynamically.
    # Input rate = in_rate * (1.0 +/- audio_rate_control_delta)
    # audio_rate_control_delta = 0.005
    
    # Audio volume. Volume is expressed in dB.
    # 0 dB is normal volume. No gain will be applied.
    # Gain can be controlled in runtime with input_volume_up/input_volume_down.
    # audio_volume = 0.0
    
    #### Overlay
    
    # Enable overlay.
    # input_overlay_enable = false
    
    # Path to input overlay
    # input_overlay =
    
    # Overlay opacity
    # input_overlay_opacity = 1.0
    
    # Overlay scale
    # input_overlay_scale = 1.0
    
    #### Input
    
    # Input driver. Depending on video driver, it might force a different input driver.
    # input_driver = sdl
    
    # Joypad driver. (Valid: linuxraw, sdl, dinput)
    # input_joypad_driver =
    
    # Keyboard layout for input driver if applicable (udev/evdev for now).
    # Syntax is either just layout (e.g. "no"), or a layout and variant separated with colon ("no:nodeadkeys").
    # input_keyboard_layout =
    
    # Defines axis threshold. Possible values are [0.0, 1.0]
    # input_axis_threshold = 0.5
    
    # Enable input auto-detection. Will attempt to autoconfigure
    # joypads, Plug-and-Play style.
    input_autodetect_enable = true
    
    # Directory for joypad autoconfigs (PC).
    # If a joypad is plugged in, that joypad will be autoconfigured if a config file
    # corresponding to that joypad is present in joypad_autoconfig_dir.
    # Input binds which are made explicit (input_playerN_*_btn/axis) will take priority over autoconfigs.
    # Autoconfigs can be created with retroarch-joyconfig, manually, or with a frontend.
    # Requires input_autodetect_enable to be enabled.
    joypad_autoconfig_dir = /opt/retropie/emulators/RetroArch/configs/
    
    # Enable debug input key reporting on-screen.
    # input_debug_enable = false
    
    # Sets which libretro device is used for a player.
    # Devices are indentified with a number.
    # This is normally saved by the menu.
    # Device IDs are found in libretro.h.
    # These settings are overridden by explicit command-line arguments which refer to input devices.
    # None: 0
    # Joypad (RetroPad): 1
    # Mouse: 2
    # Keyboard: 3
    # Generic Lightgun: 4
    # Joypad w/ Analog (RetroPad + Analog sticks): 5
    # Multitap (SNES specific): 257
    # Super Scope (SNES specific): 260
    # Justifier (SNES specific): 516
    # Justifiers (SNES specific): 772
    
    # input_libretro_device_p1 =
    # input_libretro_device_p2 =
    # input_libretro_device_p3 =
    # input_libretro_device_p4 =
    # input_libretro_device_p5 =
    # input_libretro_device_p6 =
    # input_libretro_device_p7 =
    # input_libretro_device_p8 =
    
    # Keyboard input. Will recognize letters ("a" to "z") and the following special keys (where "kp_"
    # is for keypad keys):
    #
    #   left, right, up, down, enter, kp_enter, tab, insert, del, end, home,
    #   rshift, shift, ctrl, alt, space, escape, add, subtract, kp_plus, kp_minus,
    #   f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12,
    #   num0, num1, num2, num3, num4, num5, num6, num7, num8, num9, pageup, pagedown,
    #   keypad0, keypad1, keypad2, keypad3, keypad4, keypad5, keypad6, keypad7, keypad8, keypad9,
    #   period, capslock, numlock, backspace, multiply, divide, print_screen, scroll_lock,
    #   tilde, backquote, pause, quote, comma, minus, slash, semicolon, equals, leftbracket,
    #   backslash, rightbracket, kp_period, kp_equals, rctrl, ralt
    #
    # Keyboard input, Joypad and Joyaxis will all obey the "nul" bind, which disables the bind completely, 
    # rather than relying on a default.
    input_player1_a = x
    input_player1_b = z
    input_player1_y = a
    input_player1_x = s
    input_player1_start = enter
    input_player1_select = rshift
    input_player1_l = q
    input_player1_r = w
    input_player1_left = left
    input_player1_right = right
    input_player1_up = up
    input_player1_down = down
    # input_player1_l2 =
    # input_player1_r2 =
    # input_player1_l3 =
    # input_player1_r3 =
    
    # Two analog sticks (DualShock-esque).
    # Bound as usual, however, if a real analog axis is bound,
    # it can be read as a true analog.
    # Positive X axis is right, Positive Y axis is down.
    # input_player1_l_x_plus =
    # input_player1_l_x_minus =
    # input_player1_l_y_plus =
    # input_player1_l_y_minus =
    # input_player1_r_x_plus =
    # input_player1_r_x_minus =
    # input_player1_r_y_plus =
    # input_player1_r_y_minus =
    
    # If desired, it is possible to override which joypads are being used for player 1 through 8.
    # First joypad available is 0.
    # input_player1_joypad_index = 0
    # input_player2_joypad_index = 1
    # input_player3_joypad_index = 2
    # input_player4_joypad_index = 3
    # input_player5_joypad_index = 4
    # input_player6_joypad_index = 5
    # input_player7_joypad_index = 6
    # input_player8_joypad_index = 7
    
    # Joypad buttons.
    # Figure these out by using RetroArch-Phoenix or retroarch-joyconfig.
    # You can use joypad hats with hnxx, where n is the hat, and xx is a string representing direction. 
    # E.g. "h0up"
    # input_player1_a_btn =
    # input_player1_b_btn =
    # input_player1_y_btn =
    # input_player1_x_btn =
    # input_player1_start_btn =
    # input_player1_select_btn =
    # input_player1_l_btn =
    # input_player1_r_btn =
    # input_player1_left_btn =
    # input_player1_right_btn =
    # input_player1_up_btn =
    # input_player1_down_btn =
    # input_player1_l2_btn =
    # input_player1_r2_btn =
    # input_player1_l3_btn =
    # input_player1_r3_btn =
    
    # Axis for RetroArch D-Pad. 
    # Needs to be either '+' or '-' in the first character signaling either positive or negative direction of the axis, then the axis number. 
    # Do note that every other input option has the corresponding _btn and _axis binds as well; they are omitted here for clarity.
    # input_player1_left_axis =
    # input_player1_right_axis =
    # input_player1_up_axis =
    # input_player1_down_axis =
    
    # Holding the turbo while pressing another button will let the button enter a turbo mode
    # where the button state is modulated with a periodic signal.
    # The modulation stops when the button itself (not turbo button) is released.
    # input_player1_turbo =
    
    # Describes the period and how long of that period a turbo-enabled button should behave.
    # Numbers are described in frames.
    # input_turbo_period = 6
    # input_turbo_duty_cycle = 3
    
    # This goes all the way to player 8 (*_player2_*, *_player3_*, etc), but omitted for clarity.
    # All input binds have corresponding binds for keyboard (none), joykeys (_btn) and joyaxes (_axis) as well.
    
    # Toggles fullscreen.
    # input_toggle_fullscreen = f
    
    # Saves state.
    # input_save_state = f2
    # Loads state.
    # input_load_state = f4
    
    # State slots. With slot set to 0, save state name is *.state (or whatever defined on commandline).
    # When slot is != 0, path will be $path%d, where %d is slot number.
    # input_state_slot_increase = f7
    # input_state_slot_decrease = f6
    
    # Toggles between fast-forwarding and normal speed.
    # input_toggle_fast_forward = space
    
    # Hold for fast-forward. Releasing button disables fast-forward.
    # input_hold_fast_forward = l
    
    # Key to exit RetroArch cleanly. 
    # Killing it in any hard way (SIGKILL, etc) will terminate RetroArch without saving RAM, etc.
    # On Unix-likes, SIGINT/SIGTERM allows a clean deinitialization.
    input_exit_emulator = escape
    
    # Applies next and previous shader in directory.
    input_shader_next = m
    input_shader_prev = n
    
    # Hold button down to rewind. Rewinding must be enabled.
    input_rewind = r
    
    # Toggle between recording and not.
    # input_movie_record_toggle = o
    
    # Toggle between paused and non-paused state
    # input_pause_toggle = p
    
    # Frame advance when content is paused
    # input_frame_advance = k
    
    # Reset the content.
    # input_reset = h
    
    # Cheats.
    # input_cheat_index_plus = y
    # input_cheat_index_minus = t
    # input_cheat_toggle = u
    
    # Mute/unmute audio
    # input_audio_mute = f9
    
    # Take screenshot
    # input_screenshot = f8
    
    # Netplay flip players.
    # input_netplay_flip_players = i
    
    # Hold for slowmotion.
    # input_slowmotion = e
    
    # Enable other hotkeys.
    # If this hotkey is bound to either keyboard, joybutton or joyaxis,
    # all other hotkeys will be disabled unless this hotkey is also held at the same time.
    # This is useful for RETRO_KEYBOARD centric implementations
    # which query a large area of the keyboard, where it is not desirable
    # that hotkeys get in the way.
    
    # Alternatively, all hotkeys for keyboard could be disabled by the user.
    input_enable_hotkey = escape
    
    # Increases audio volume.
    # input_volume_up = kp_plus
    # Decreases audio volume.
    # input_volume_down = kp_minus
    
    # Toggles to next overlay. Wraps around.
    # input_overlay_next =
    
    # Toggles eject for disks. Used for multiple-disk content.
    # input_disk_eject_toggle =
    
    # Cycles through disk images. Use after ejecting.
    # Complete by toggling eject again.
    # input_disk_next =
    
    # Toggles menu.
    # input_menu_toggle = f1
    
    # Toggles mouse grab. When mouse is grabbed, RetroArch hides the mouse,
    # and keeps the mouse pointer inside the window to allow relative mouse input
    # to work better.
    # input_grab_mouse_toggle = f11
    
    #### Menu
    
    # Menu driver to use. "rgui", "lakka", etc. 
    # menu_driver = "rgui"
    
    #### Camera
    
    # Override the default camera device the camera driver uses. This is driver dependant.
    # camera_device =
    
    # Override the default privacy permission for cores that want to access camera services. Is "false" by default.
    # camera_allow = false
    
    #### Location
    
    # Override the default privacy permission for cores that want to access location services. Is "false" by default.
    # location_allow = false
    
    #### Netplay
    
    # When being client over netplay, use keybinds for player 1.
    # netplay_client_swap_input = false
    
    # The nickname being used for playing online.
    # netplay_nickname = 
    
    # The amount of delay frames to use for netplay. Increasing this value will increase
    # performance, but introduce more latency.
    # netplay_delay_frames = 0
    
    # Netplay mode for the current user.
    # false is Server, true is Client.
    # netplay_mode = false
    
    # Enable or disable spectator mode for the player during netplay.
    # netplay_spectator_mode_enable = false
    
    # The IP Address of the host to connect to.
    # netplay_ip_address = 
    
    # The port of the host IP Address. Can be either a TCP or an UDP port.
    # netplay_ip_port = 55435
    
    #### Misc
    
    # Enable rewinding. This will take a performance hit when playing, so it is disabled by default.
    rewind_enable = false
    
    # Rewinding buffer size in megabytes. Bigger rewinding buffer means you can rewind longer.
    # The buffer should be approx. 20MB per minute of buffer time.
    rewind_buffer_size = 10
    
    # Rewind granularity. When rewinding defined number of frames, you can rewind several frames at a time, increasing the rewinding speed.
    rewind_granularity = 2
    
    # Pause gameplay when window focus is lost.
    # pause_nonactive = true
    
    # Autosaves the non-volatile SRAM at a regular interval. This is disabled by default unless set otherwise.
    # The interval is measured in seconds. A value of 0 disables autosave.
    # autosave_interval =
    
    # Path to XML cheat database (as used by bSNES).
    # cheat_database_path =
    
    # Path to XML cheat config, a file which keeps track of which
    # cheat settings are used for individual games.
    # If the file does not exist, it will be created.
    # cheat_settings_path =
    
    # Directory to dump screenshots to.
    # screenshot_directory =
    
    # Records video after CPU video filter.
    # video_post_filter_record = false
    
    # Records output of GPU shaded material if available.
    # video_gpu_record = false
    
    # Screenshots output of GPU shaded material if available.
    video_gpu_screenshot = true
    
    # Block SRAM from being overwritten when loading save states.
    # Might potentially lead to buggy games.
    # block_sram_overwrite = false
    
    # When saving a savestate, save state index is automatically increased before
    # it is saved.
    # Also, when loading content, the index will be set to the highest existing index.
    # There is no upper bound on the index.
    savestate_auto_index = false
    
    # Slowmotion ratio. When slowmotion, content will slow down by factor.
    # slowmotion_ratio = 3.0
    
    # The maximum rate at which content will be run when using fast forward. (E.g. 5.0 for 60 fps content => 300 fps cap).
    # RetroArch will go to sleep to ensure that the maximum rate will not be exceeded.
    # Do not rely on this cap to be perfectly accurate.
    # A negative ratio equals no FPS cap.
    # fastforward_ratio = -1.0
    
    # Enable stdin/network command interface.
    # network_cmd_enable = false
    # network_cmd_port = 55355
    # stdin_cmd_enable = false
    
    input_player1_joypad_index = "0"
    input_player1_b_btn = "13"
    input_player1_y_btn = "12"
    input_player1_select_btn = "0"
    input_player1_start_btn = "3"
    input_player1_up_btn = "4"
    input_player1_down_btn = "6"
    input_player1_left_btn = "7"
    input_player1_right_btn = "5"
    input_player1_a_btn = "14"
    input_player1_x_btn = "15"
    input_player1_l_btn = "10"
    input_player1_r_btn = "11"
    input_player1_l2_btn = "8"
    input_player1_r2_btn = "9"
    input_player1_l3_btn = "1"
    input_player1_r3_btn = "2"
    input_player1_l_x_plus_axis = "+0"
    input_player1_l_x_minus_axis = "-0"
    input_player1_l_y_plus_axis = "+1"
    input_player1_l_y_minus_axis = "-1"
    input_player1_r_x_plus_axis = "+2"
    input_player1_r_x_minus_axis = "-2"
    input_player1_r_y_plus_axis = "+3"
    input_player1_r_y_minus_axis = "-3"
    
    input_enable_hotkey_btn = "0"
    input_exit_emulator_btn = "3"
    
    input_enable_hotkey_btn = "0"
    input_save_state_btn = "16"
    
    input_enable_hotkey_btn = "0"
    input_load_state_btn = "5"
    
    #83988
    Anonymous
    Inactive

    Hi, thanks for the reply.

    I actually finally figured out what the problem was. With my W360Wireless controller, the right config file is “XboxGamepad(userspacedriver).cfg” which is located here : /opt/retropie/emulators/RetroArch/configs

    There are other config files which was very confusing and was leading me to modify the wrong files.

    So here is my correct config file, if it can help someone. ( with buttons SELECT+START to exit the emulator ).

    input_device = "Xbox Gamepad (userspace driver)"
    input_driver = "udev"
    input_b_btn = "0"
    input_y_btn = "2"
    input_select_btn = "8"
    input_start_btn = "9"
    input_up_btn = "h0up"
    input_down_btn = "h0down"
    input_left_btn = "h0left"
    input_right_btn = "h0right"
    input_a_btn = "1"
    input_x_btn = "3"
    input_l_btn = "4"
    input_r_btn = "5"
    input_l2_btn = "6"
    input_r2_btn = "7"
    input_l3_btn = "11"
    input_r3_btn = "12"
    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 = "+2"
    input_r_x_minus_axis = "-2"
    input_r_y_plus_axis = "+3"
    input_r_y_minus_axis = "-3"
    
    input_enable_hotkey_btn = "8"
    input_exit_emulator_btn = "9"
    input_save_state_btn = "3"
    input_load_state_btn = "1"
    

    This works on SNES emulator.but not on Genesis ( megadrive ) emulator. I guess DGEN does not use Arch config…Will look into that emulator how to.

    Thank

    #83970
    rev138
    Participant

    Thanks for the comparison file. I tried mimicking your config somewhat in that I put

    input_hotkey_enable = escape

    in the main retroarch.cfg, and moved all the actual hotkey bindings to my controller-specific config file. This seems to work!

    Thanks again!

    #83961
    techstep
    Participant

    Thank you for adding these. They are the Buffalo USB SNES controllers. So, after spending a couple hours trying to get it to work with hotkeys… floob’s process fixed it for me.

    Thanks.

    #83955
    Floob
    Member

    Actually thinking about it, it shouldnt matter as one is keyboard hotkey and one is joypad hotkey.

    It would still be interesting if you compare your retroarch.cfg to mine – anything drastically different?

    Also, does it make any difference if you take that blank line out of your auto file?

    #83953
    Floob
    Member

    Perhaps when you use the auto file, it is importing it before the
    input_enable_hotkey = “tab” line in your main retroarch.cfg file ?

    Therefore it gets overwritten by the keyboard tab setting later in that file?

    You could check this by putting it back how it was then run it and press tab and then a hotkey button on your joypad.

    For reference, this structure works fine for me (uses hotkey in auto file no problem).
    https://www.petrockblock.com/wp-content/uploads/2014/12/retroarch.txt

    You can compare yours here:

    https://www.diffchecker.com/

    As a side note, I really need to work out if it cares about the button codes being in quotes or not. “”.

    #83951
    rev138
    Participant

    After finding a couple more posts on this exact issue (which different people seem to have different working solutions to), I was finally able to make this work by moving these options out of the controller-specific config and into the main retroarch.cfg

    input_enable_hotkey = "tab"
    input_enable_hotkey_btn = 8
    input_exit_emulator_btn = 9
    input_save_state_btn = 4
    input_load_state_btn = 5

    Now it only exits on select+start, as it should. However, this is not ideal because if I use a different controller, those will map to different buttons :(

    Progress.

Viewing 35 results - 736 through 770 (of 1,077 total)