Tagged: , ,

Viewing 19 posts - 1 through 19 (of 19 total)
  • Author
    Posts
  • Floob
    Member
    Post count: 1629

    As there are a lot of posts about controllers at the moment I thought I’d post my files that may help.
    Obviously the button codes are specific to my controller, but you get the idea.

    Autoconfig file
    /opt/retropie/emulators/RetroArch/configs/USB,2-axis8-buttongamepad.cfg

    RetroArch config file
    /opt/retropie/configs/all/retroarch.cfg
    Obviously the reference to use the autoconfig file above is enabled in here.

    This setup happily detects two controllers that are the same, or I can configure another auto file and it would see that.
    The alternative is to manually edit the retroarch.cfg file and enter the button codes directly in there which works fine as well.

    Also, the only content in the system specific retroarch.cfg files relate to shaders, so you can ignore those for this purpose.

    gizmo98
    Participant
    Post count: 452
    techstep
    Participant
    Post count: 21

    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.

    caldiniho
    Participant
    Post count: 6

    Dude can you post a video or explain step by step exactly how i would do this? or if you know how to help me more specifically, im simply trying to work two joysticks and sets of buttons through an ipac 2, however the stupid thing thinks every ke that the ipac emulates is for player one. im just trying to get two players through the keyboard emulator. even buying another ipac to run for player two didnt solve the problem.

    Thanks in advance.

    Callum

    Floob
    Member
    Post count: 1629

    Check out the videos in my signature below for some help.

    You could put the relevant keys into the main retroarch.cfg in this section to specify which player

    # 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 =
    rpandresen
    Participant
    Post count: 1

    I’ve been struggling to get my controllers working, but I’m using USB NES controllers. Is there anyway I can modify this coding to work for the NES controllers?

    My main issue is that I can’t get 2 controllers to work in gameplay. One controller works perfectly during the game and both are recognized to navigate emulation station. I used this command to setup the controller

    cd RetroPie-Setup
    sudo ./retropie_setup.sh

    and I can’t find a folder in the system that shows the config file. Since I can’t find that I also can’t set up a button combo to serve as my “Esc” button.

    Floob
    Member
    Post count: 1629

    Are both controllers detected when you start a game (yellow writing at bottom of screen when it starts).
    If you are using the autoconfig files for the controllers, they are in
    /opt/retropie/emulators/RetroArch/configs

    Just do ls -lah to see which have been written to recently.

    This may help:

    Anonymous
    Inactive
    Post count: 14

    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 = ""
    
    Anonymous
    Inactive
    Post count: 14

    Here’s an update.

    After further testing, I noticed that the player 2 controller does work inside the ROMs. But, the ROMs only accept the input from the player 2 controller IF it is receiving input from the player 1 controller. For example,

    If I’m holding down the A button on my player 1 controller, the player 2 controller’s input works fine–I can move around etc.

    When I let go of the A button on my player 1 controller, however, the player 2 controller’s input no longer works.

    It also doesn’t matter what button I press on my player 1 controller–as long as I’m pressing and holding any button, the player 2 controller works.

    Weird. What could be causing the ROMs to require player 1 input to be constant before allowing player 2 input?

    Floob
    Member
    Post count: 1629

    To be honest, thats a hell of a retroach.cfg file. I’d be sorely tempted to clean it up/start again.
    A cleaner version can be seen here:
    https://www.petrockblock.com/wp-content/uploads/2014/12/retroarch.txt

    If you restart the image, you could auto detect your controllers again in a cleaner way?

    techstep
    Participant
    Post count: 21

    I personally did not modify my default config file. I used the one from the first post:

    /opt/retropie/emulators/RetroArch/configs/USB,2-axis8-buttongamepad.cfg

    This resolved the issue for me. Maybe you should try that instead. Also, I know its stupid but make sure your quotes are correct. I was missing a quote and it was throwing everything off.

    Anonymous
    Inactive
    Post count: 14

    [quote=84322]I personally did not modify my default config file. I used the one from the first post:

    /opt/retropie/emulators/RetroArch/configs/USB,2-axis8-buttongamepad.cfg

    This resolved the issue for me. Maybe you should try that instead. Also, I know its stupid but make sure your quotes are correct. I was missing a quote and it was throwing everything off.
    [/quote]

    Thanks. So here’s my update. I successfully imaged a new, 64GB SD card with RetroPie. I’ve loaded some test ROMs, and updated the configs/all/retroarch.cfg.

    Here’s the kicker. I load into Techmo Super Bowl–my favorite football game–and try to do Man vs. Man to check the 2nd controller. Again, the ROM doesn’t recognize the second controller unless I’m holding a button on the first controller.

    Is it possible that this is an issue with the SNES emulator that comes with RetroPie? I’ve tested this in other ROMs and I’ve run into the same issue. Emulation Station recognizes and responds to both controllers just fine.

    Anonymous
    Inactive
    Post count: 14

    So here’s my problem in detail:
    https://github.com/retropie/RetroPie-Setup/issues/158

    According to them, there are two options:

    1) Switch the default EmulationStation emulator for SNES
    2) Make an update to the ppu.cpp file and correct the code so it works with both joypads.

    I’d rather do option #2, but nobody who has described that process did so with the beginner Linux user in mind. They simply say things like “edit that file<‘ when 1) I can’t even find the damn thing, and 2) I’m assuming I won’t be able to edit it with Notepad.

    Help.

    dcbone
    Participant
    Post count: 7

    When I try and modify my .cfg I get an access denied message and this happened out of the blue. I have never seen the message before today even when modifying .cfg files before.

    Anonymous
    Inactive
    Post count: 14

    I’ve managed to get a lot of this working after another fresh image install. However, the issue remains with PocketSNES. It seems incapable of working with 2 controllers, and rendering all SNES games with multiplayer useless. What a bust.

    There used to be an issue with a supposed resolution here: https://github.com/retropie/RetroPie-Setup/issues/158

    Unfortunately, I checked my latest files after I did a source-based install of pocketsnes and my files incorporate the edit recommended in the “solution” referenced, but my 2nd controller still doesn’t work in SNES games without me holding down a button on my 1st controller.

    I wouldn’t mind using PiSNES, but setting up the controller configurations for that emulator is just as much of a pain in the ass.

    Floob
    Member
    Post count: 1629

    [quote=84446]I’ve managed to get a lot of this working after another fresh image install. However, the issue remains with PocketSNES. It seems incapable of working with 2 controllers, and rendering all SNES games with multiplayer useless. What a bust.
    [/quote]

    I have tried Mario Kart with 2 identical controllers (as well as 2 different controllers) and can play 2 player without issue.

    For reference, I’m running this command for my SNES emulation:

    <command>/opt/retropie/supplementary/runcommand/runcommand.sh 4 "/opt/retropie/emulators/RetroArch/installdir/bin/retroarch -L /opt/retropie/emulatorcores/pocketsnes-libretro/libretro.so --config /opt/retropie/configs/all/retroarch.cfg --appendconfig /opt/retropie/configs/snes/retroarch.cfg %ROM%"</command>

    My config files are at the top of this thread. I dont have anything in the snes specific retroarch config file except for a shader reference.

    You might want to use this to check your main retroarch file for any major differences: https://www.diffchecker.com/

    Anonymous
    Inactive
    Post count: 14

    [quote=84449]

    <div class=”d4p-bbt-quote-title”>alextaldren wrote:</div>
    I’ve managed to get a lot of this working after another fresh image install. However, the issue remains with PocketSNES. It seems incapable of working with 2 controllers, and rendering all SNES games with multiplayer useless. What a bust.

    I have tried Mario Kart with 2 identical controllers (as well as 2 different controllers) and can play 2 player without issue.

    For reference, I’m running this command for my SNES emulation:

    <command>/opt/retropie/supplementary/runcommand/runcommand.sh 4 "/opt/retropie/emulators/RetroArch/installdir/bin/retroarch -L /opt/retropie/emulatorcores/pocketsnes-libretro/libretro.so --config /opt/retropie/configs/all/retroarch.cfg --appendconfig /opt/retropie/configs/snes/retroarch.cfg %ROM%"</command>

    My config files are at the top of this thread. I dont have anything in the snes specific retroarch config file except for a shader reference.

    You might want to use this to check your main retroarch file for any major differences: https://www.diffchecker.com/
    [/quote]

    I found that switching to the PiSNES emulator makes this a lot easier. There are, in my opinion, some real issues with pocketsnes, and there doesn’t seem to be any real consensus on the fixes.

    Once I switched to PiSNES, I was able to just the jstest command to get my button configuration for my Buffalo SNES USB Controllers and then map it accordingly in the pisnes/snes9x.cfg file.

    Now both controllers work flawlessly, the emulator itself seems smoother, and I can exit back to Emulation Station without issue.

    I appreciate all the help. Although much of it wasn’t directly responsible for the solution, much it lead me to other articles and threads. What a process.

    tactechl
    Participant
    Post count: 3

    I’m having the same issue as AlexAldren,

    does anyone have 2 or more identical controllers working in Retroarch w/ SNES?
    This is a nightmare, i have a few friends waiting on my setup.

    I also have 4 iBuffalo controllers, i’ve been messing with the retroarch.cfg in every possible way but it keeps reverting my changes and its a massive file.

    Sounds like you got stuff working in PiSNES Alex, how do i even go about installing that if that is the best answer?

    Floob
    Member
    Post count: 1629

    The way I would do it is:
    – Write an image of RetroPie 2.6.0
    – Use the default pocketsnes emulator here:
    /home/pi/RetroPie/roms/snes
    – Configure your controller (once)

    This keeps it clean by using the auto detection (as opposed to altering the main retroarch.cfg file). Works for me anyway

Viewing 19 posts - 1 through 19 (of 19 total)
  • The forum ‘Everything else related to the RetroPie Project’ is closed to new topics and replies.