-
AuthorPosts
-
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.cfgRetroArch 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.
Just added you gamepad config:
https://github.com/retropie/RetroPie-Setup/blob/master/supplementary/RetroArchConfigs/USB_2-axis_8-button_gamepad.cfgThank 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.
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
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 =
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.shand 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.
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/configsJust do ls -lah to see which have been written to recently.
This may help:
Anonymous
Inactive12/28/2014 at 04:58Post count: 14I’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 notInteresting 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
Inactive12/28/2014 at 05:42Post count: 14Here’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?
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.txtIf you restart the image, you could auto detect your controllers again in a cleaner way?
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
Inactive12/31/2014 at 07:24Post 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
Inactive12/31/2014 at 17:34Post count: 14So here’s my problem in detail:
https://github.com/retropie/RetroPie-Setup/issues/158According 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.
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
Inactive01/02/2015 at 23:50Post count: 14I’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.
[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
Inactive01/03/2015 at 01:04Post 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.
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?
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
-
AuthorPosts
- The forum ‘Everything else related to the RetroPie Project’ is closed to new topics and replies.