Closed kesch095 closed 7 years ago
Hi @Kivikaki Its not a stupid question, The script should always be running in the background but will ignore button presses when kodi or retroarch are running.
Do you have kodi shutting down your tv when you exit ? .
Are you running emulation station or some other frontend?
Are you running it on a raspberry pi or some other linux distro ?
can you give me the output of crontab -l
(lowercase L)
If you have access to a terminal can you run ps aux | grep es-cec
I just want to check it is actually running after you exit kodi.
you should get output like
pi@retropie:~ $ ps aux | grep es-cec
pi 525 0.0 0.0 1912 408 ? Ss 17:12 0:00 /bin/sh -c nohup /home/pi/RetroPie/scripts/es-cec-input.py
pi 527 0.3 0.8 10156 6368 ? S 17:12 0:01 python /home/pi/RetroPie/scripts/es-cec-input.py
pi 2705 0.0 0.2 4276 1840 pts/0 S+ 17:20 0:00 grep --color=auto es-cec
EDIT: just so understand correctly
You start your pi and it boots to emulation station and the script initially works and you select kodi in the ports section with your tv remote and when you quit kodi it appears to stop working . Is that correct ?
Hey @dillbyrne, thank you for the fast reply! 👍 I'm running it on a Raspberry Pi 3 with stock Retropie installed. (It runs on top of Raspbian doesn't it?) Therefore -> Emulationstation + Kodi 17 Kodi doesn't shut down my TV - I did configure that in the stock CEC Addon that comes with it.
Crontab output:
# Edit this file to introduce tasks to be run by cron.
#
# Each task to run has to be defined through a single line
# indicating with different fields when the task will be run
# and what command to run for the task
#
# To define the time you can provide concrete values for
# minute (m), hour (h), day of month (dom), month (mon),
# and day of week (dow) or use '*' in these fields (for 'any').#
# Notice that tasks will be started based on the cron's system
# daemon's notion of time and timezones.
#
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
#
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
#
# For more information see the manual pages of crontab(5) and cron(8)
#
# m h dom mon dow command
@reboot nohup ./home/pi/es-cec-input.py
ps aux:
root 519 0.0 0.0 1912 392 ? Ss 16:42 0:00 /bin/sh -c nohup /home/pi/es-cec-input.py
root 521 0.0 0.8 10156 6392 ? S 16:42 0:02 python /home/pi/es-cec-input.py
pi 5918 0.0 0.2 4280 1820 pts/1 S+ 17:43 0:00 grep --color=auto es-cec
Just ran this after exiting Kodi - CEC not working.
That means the script is running at least.
Is the script working initially when you start . Are you selecting kodi in the ports section with your tv remote ?
It is possible your tv may stop sending power to the hdmi port when you exit kodi. It may be a powersaving setting on your TV to disable unused sources. You could try exit to kodi then unplug your tv for a few seconds and plug it back in, (not the pi, just the tv and see will control return to emulation station ).
Also after booting try select one of the retroarch emulators with your remote and then exit with a pad or keyboard back to the Emulation Station menu and see if you can still control it with the remote ? This will tell us if it is isolated to kodi
Well, i found the solution thanks to your help! :) There is a setting in the Kodi CEC Adapter called "mark Kodi as inactive after turning off" (freely translated) After disabling this option, your script works fine!
It is a really nice quality of life script btw thank you SO much for providing this 💯
@Kivikaki No problem. Glad you got it working.
My kodi settings for anyone else referred here
Settings for your CEC devices can be found in:
System -> Settings -> System -> Input Devices -> Peripherals -> CEC adapter (Settings level Expert)
Enabled : Yes
Switch source to this device on startup : yes
Devices to power on during startup : TV
Devices to power off during shutdown : None
Send inactive source command on shutdown : Yes <-- This should take care of it
Put devices in standby mode when activating screensaver : No
Wake devices when activating screen saver : Yes
When TV is switched off : Ignore
Devices to also put into standby mode : Yes
Hey, just to help others out: just as dillbyrne described above go to your CEC Settings.
"Send inactive source command on shutdown"
Change this setting to "No" - that should solve your problem.
@Kivikaki it works for me with either setting. So it must be a TV specific thing or else related to other attached cec devices. As far as I am aware only one cec device can be the active source at a time.
@dillbyrne I have a Samsung J6250 TV. I don't know anything about CEC Specifications but I guess my TV disconnects the CEC connection after Kodi sends the inactive command. But as i said...I don't really know anything about CEC.
Hi @dillbyrne,
I stumbled upon this thread during my search for CEC capabilities in RetroPie. I have the same crontab-l
output as @Kivikaki, but when I run ps aux | grep es-cec
I get the following:
pi 919 0.0 0.2 4272 1844 pts/0 S+ 15:05 0:00 grep --color=auto es-cec
with the es-cec
highlighted in red. Does that mean it's not running at all?
I also get this when I run ./es-cec-input.py
in the terminal:
The '0', '0', 'nul', 'nul', 'nul', 'nul', 'nul', 'nul', 'nul', 'nul', 'nul', 'nul', 'nul', 'nul', 'nul', 'nul', 'nul', 'nul', 'nul', 'nul', 'nul', 'nul', 'nul', 'nul', 'nul', 'nul', 'nul', 'nul', 'nul', 'nul', 'nul', 'nul', 'nul', 'nul', 'nul', 'nul', 'nul', 'nul', 'nul', 'nul', 'nul', 'nul', 'nul', 'nul', 'nul', 'nul', 'nul', 'nul', 'nul', 'nul', 'nul', 'nul', 'nul', 'nul', 'nul', 'nul', 'nul', 'nul', 'nul', 'nul', 'nul' keys in your retroarch.cfg are unsupported by this `script
Supported keys are:
['comma', 'alt', 'pause', 'kp_plus', 'rshift', 'kp_period', 'insert', 'd', 'h', 'l', 'p', 't', 'x', 'right', 'kp_minus', 'escape', 'home', 'space', 'ralt', 'backspace', 'pagedown', 'slash', 'scrolllock', 'equals', 'c', 'z', 'g', 'shift', 'k', 'o', 's', 'period', 'backquote', 'num5', 'num6', 'down', 'capslock', 'num7', 'num0', 'num1', 'semicolon', 'kp_equals', 'num3', 'rctrl', 'num2', 'backslash', 'b', 'f7', 'f', 'j', 'pageup', 'up', 'n', 'r', 'del', 'v', 'f12', 'f10', 'f11', 'minus', 'num4', 'f1', 'f2', 'f3', 'f4', 'f5', 'f6', 'ctrl', 'f8', 'f9', 'num8', 'num9', 'tab', 'numlock', 'end', 'keypad7', 'keypad6', 'keypad5', 'keypad4', 'keypad3', 'keypad2', 'keypad1', 'keypad0', 'keypad9', 'keypad8', 'w', 'kp_enter', 'a', 'e', 'i', 'm', 'q', 'u', 'enter', 'y', 'left']
Thanks in advance!
Hi @roachman5000
The grep output is listing the grep process itself which is normal but there should be another listing showing the script itself. The answer in this case is provided by the script when you run it.
The unsupported keys
message means you have unsupported keys in your retroarch config or you have not selected enough keys.
In order for the script to work you need to select a keyboard key to correspond to each controller key. The script expects all the keys to be selected.
You can simply connect your keyboard to the pi and go into the controller configuration and re select a key for each option.
Thanks for the response!
When I go into Retroarch I'm not seeing anywhere where I can remap the keyboard? Am I missing something?
@roachman5000 You configure your keyboard in emulation station. With the keyboard attached enter the EmulationStation Menu, and select Configure Input. Like https://github.com/retropie/retropie-setup/wiki/First-Installation#configure-controllers
and select a keyboard key for each prompted option
Ah, that.
I went through and remapped every option to the keyboard. I then ran the ./es-cec-input.py again and have the same string of null errors. Surely I'm missing a step here......
@roachman5000 That should be all that is required. Can you post your /opt/retropie/configs/all/retroarch.cfg here ? and also tell me what version of retropie you are using ? as older versions 3.X did not quote the values in the config file.
cache_directory = "/tmp/retroarch" core_options_path = "/opt/retropie/configs/all/retroarch-core-options.cfg" system_directory = "~/RetroPie/BIOS" config_save_on_exit = "false" video_threaded = "true" video_smooth = "false" video_aspect_ratio_auto = "true" video_font_size = "12.000000" input_joypad_driver = "udev" input_autodetect_enable = "true" input_player1_a = "a" input_player1_b = "b" input_player1_y = "y" input_player1_x = "x" input_player1_start = "enter" input_player1_select = "rshift" input_player1_l = "l" input_player1_r = "r" input_player1_left = "left" input_player1_right = "right" input_player1_up = "up" input_player1_down = "down" menu_swap_ok_cancel_buttons = "false" input_state_slot_increase = "right" input_state_slot_decrease = "left" input_exit_emulator = "enter" input_shader_next = "m" input_shader_prev = "n" input_rewind = "r" input_reset = "b" input_menu_toggle = "x" all_users_control_menu = "true" menu_driver = "rgui" menu_unified_controls = "true" rewind_enable = "false" rewind_buffer_size = "10" rewind_granularity = "2" video_gpu_screenshot = "true" input_enable_hotkey = "ctrl" auto_remaps_enable = "true" xmb_shadows_enable = "false" xmb_font = "" netplay_nickname = "" video_filter = "" audio_dsp_plugin = "" core_updater_buildbot_url = "" core_updater_buildbot_assets_url = "http://buildbot.libretro.com/assets/" netplay_ip_address = "" netplay_password = "" netplay_spectate_password = "" libretro_directory = "~/.config/retroarch/cores" libretro_info_path = "~/.config/retroarch/cores" video_shader = "" content_database_path = "~/.config/retroarch/database/rdb" cheat_database_path = "~/.config/retroarch/cheats" menu_wallpaper = "" content_history_path = "/opt/retropie/configs/all/content_history.lpl" content_music_history_path = "/opt/retropie/configs/all/content_music_history.lpl" content_video_history_path = "/opt/retropie/configs/all/content_video_history.lpl" content_image_history_path = "/opt/retropie/configs/all/content_image_history.lpl" input_overlay = "" video_font_path = "" cursor_directory = "~/.config/retroarch/database/cursors" content_history_dir = "" screenshot_directory = "~/.config/retroarch/screenshots" input_remapping_directory = "~/.config/retroarch/config/remaps" resampler_directory = "" video_shader_dir = "~/.config/retroarch/shaders" video_filter_dir = "default" core_assets_directory = "~/.config/retroarch/downloads" assets_directory = "~/.config/retroarch/assets" dynamic_wallpapers_directory = "default" thumbnails_directory = "~/.config/retroarch/thumbnails" playlist_directory = "~/.config/retroarch/playlists" joypad_autoconfig_dir = "~/.config/retroarch/autoconfig" audio_filter_dir = "default" savefile_directory = "default" savestate_directory = "default" rgui_browser_directory = "default" rgui_config_directory = "~/.config/retroarch/config" overlay_directory = "~/.config/retroarch/overlay" screenshot_directory = "~/.config/retroarch/screenshots" recording_output_directory = "" recording_config_directory = "" xmb_font = "" playlist_names = "" playlist_cores = "" video_driver = "gl" record_driver = "null" camera_driver = "null" wifi_driver = "null" location_driver = "null" audio_device = "" camera_device = "" cheevos_username = "" cheevos_password = "" video_context_driver = "" audio_driver = "alsathread" audio_resampler = "sinc" input_driver = "udev" input_keyboard_layout = "" bundle_assets_src_path = "" bundle_assets_dst_path = "" bundle_assets_dst_path_subdir = "" video_aspect_ratio = "-1.000000" video_scale = "3.000000" video_refresh_rate = "59.940060" audio_rate_control_delta = "0.005000" audio_max_timing_skew = "0.050000" audio_volume = "0.000000" input_overlay_opacity = "0.700000" input_overlay_scale = "1.000000" menu_wallpaper_opacity = "0.300000" menu_footer_opacity = "1.000000" menu_header_opacity = "1.000000" video_message_pos_x = "0.050000" video_message_pos_y = "0.050000" fastforward_ratio = "0.000000" slowmotion_ratio = "3.000000" input_axis_threshold = "0.500000" state_slot = "0" netplay_check_frames = "30" input_bind_timeout = "5" input_turbo_period = "6" input_duty_cycle = "3" input_max_users = "5" input_menu_toggle_gamepad_combo = "0" audio_latency = "64" audio_block_frames = "0" autosave_interval = "0" libretro_log_level = "1" keyboard_gamepad_mapping_type = "1" input_poll_type_behavior = "2" video_monitor_index = "0" video_fullscreen_x = "0" video_fullscreen_y = "0" video_window_x = "0" video_window_y = "0" network_cmd_port = "55355" network_remote_base_port = "55400" dpi_override_value = "200" menu_thumbnails = "3" xmb_alpha_factor = "75" xmb_scale_factor = "100" xmb_theme = "0" xmb_menu_color_theme = "4" materialui_menu_color_theme = "0" menu_shader_pipeline = "1" audio_out_rate = "48000" custom_viewport_width = "1440" custom_viewport_height = "1080" custom_viewport_x = "240" custom_viewport_y = "0" content_history_size = "100" video_hard_sync_frames = "0" video_frame_delay = "0" video_max_swapchain_images = "3" video_swap_interval = "1" video_rotation = "0" aspect_ratio_index = "21" netplay_ip_port = "55435" netplay_input_latency_frames_min = "0" netplay_input_latency_frames_range = "0" user_language = "0" bundle_assets_extract_version_current = "0" bundle_assets_extract_last_version = "0" input_device_p1 = "0" input_player1_joypad_index = "0" input_libretro_device_p1 = "1" input_player1_analog_dpad_mode = "0" input_device_p2 = "0" input_player2_joypad_index = "1" 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" ui_companion_start_on_boot = "true" ui_companion_enable = "false" video_gpu_record = "false" input_remap_binds_enable = "true" netplay_public_announce = "true" netplay_start_as_spectator = "false" netplay_allow_slaves = "true" netplay_require_slaves = "false" netplay_stateless_mode = "false" netplay_client_swap_input = "true" netplay_use_mitm_server = "false" input_descriptor_label_show = "true" input_descriptor_hide_unbound = "false" load_dummy_on_core_shutdown = "true" check_firmware_before_loading = "false" builtin_mediaplayer_enable = "false" builtin_imageviewer_enable = "true" fps_show = "false" ui_menubar_enable = "true" suspend_screensaver_enable = "true" audio_sync = "true" video_shader_enable = "false" video_allow_rotate = "true" video_windowed_fullscreen = "true" video_crop_overscan = "true" video_scale_integer = "false" video_force_aspect = "true" video_shared_context = "false" auto_screenshot_filename = "true" video_force_srgb_disable = "false" video_fullscreen = "false" bundle_assets_extract_enable = "false" video_vsync = "true" video_hard_sync = "false" video_black_frame_insertion = "false" video_disable_composition = "false" pause_nonactive = "true" video_post_filter_record = "false" keyboard_gamepad_enable = "true" core_set_supports_no_game_enable = "true" audio_enable = "true" audio_mute_enable = "false" location_allow = "false" video_font_enable = "true" core_updater_auto_extract_archive = "true" camera_allow = "false" threaded_data_runloop_enable = "true" menu_throttle_framerate = "true" menu_linear_filter = "true" dpi_override_enable = "true" menu_pause_libretro = "true" menu_mouse_enable = "true" menu_pointer_enable = "false" menu_timedate_enable = "true" menu_battery_level_enable = "true" menu_core_enable = "true" menu_dynamic_wallpaper_enable = "false" xmb_show_settings = "true" xmb_show_images = "true" xmb_show_music = "true" xmb_show_netplay = "true" xmb_show_history = "true" xmb_show_add = "true" filter_by_current_core = "false" rgui_show_start_screen = "false" menu_navigation_wraparound_enable = "true" menu_navigation_browser_filter_supported_extensions_enable = "true" menu_show_advanced_settings = "false" cheevos_enable = "false" cheevos_test_unofficial = "false" cheevos_hardcore_mode_enable = "false" input_overlay_enable = "true" input_overlay_enable_autopreferred = "true" input_overlay_hide_in_menu = "true" network_cmd_enable = "false" stdin_cmd_enable = "false" network_remote_enable = "false" netplay_nat_traversal = "true" block_sram_overwrite = "false" savestate_auto_index = "false" savestate_auto_save = "false" savestate_auto_load = "false" savestate_thumbnail_enable = "false" history_list_enable = "true" playlist_entry_remove = "true" game_specific_options = "true" auto_overrides_enable = "true" auto_shaders_enable = "true" sort_savefiles_enable = "false" sort_savestates_enable = "false" show_hidden_files = "true" audio_rate_control = "true" custom_bgm_enable = "false" network_remote_enable_user_p1 = "false" network_remote_enable_user_p2 = "false" network_remote_enable_user_p3 = "false" network_remote_enable_user_p4 = "false" network_remote_enable_user_p5 = "false" network_remote_enable_user_p6 = "false" network_remote_enable_user_p7 = "false" network_remote_enable_user_p8 = "false" network_remote_enable_user_p9 = "false" network_remote_enable_user_p10 = "false" network_remote_enable_user_p11 = "false" network_remote_enable_user_p12 = "false" network_remote_enable_user_p13 = "false" network_remote_enable_user_p14 = "false" network_remote_enable_user_p15 = "false" network_remote_enable_user_p16 = "false" log_verbosity = "false" perfcnt_enable = "false" video_message_color = "ffff00" menu_entry_normal_color = "ffffffff" menu_entry_hover_color = "ff64ff64" menu_title_color = "ff64ff64" gamma_correction = "false" flicker_filter_enable = "false" soft_filter_enable = "false" soft_filter_index = "0" current_resolution_id = "0" flicker_filter_index = "0" input_player1_b_btn = "nul" input_player1_b_axis = "nul" input_player1_y_btn = "nul" input_player1_y_axis = "nul" input_player1_select_btn = "nul" input_player1_select_axis = "nul" input_player1_start_btn = "nul" input_player1_start_axis = "nul" input_player1_up_btn = "nul" input_player1_up_axis = "nul" input_player1_down_btn = "nul" input_player1_down_axis = "nul" input_player1_left_btn = "nul" input_player1_left_axis = "nul" input_player1_right_btn = "nul" input_player1_right_axis = "nul" input_player1_a_btn = "nul" input_player1_a_axis = "nul" input_player1_x_btn = "nul" input_player1_x_axis = "nul" input_player1_l_btn = "nul" input_player1_l_axis = "nul" input_player1_r_btn = "nul" input_player1_r_axis = "nul" input_player1_l2 = "k" input_player1_l2_btn = "nul" input_player1_l2_axis = "nul" input_player1_r2 = "t" input_player1_r2_btn = "nul" input_player1_r2_axis = "nul" input_player1_l3 = "p" input_player1_l3_btn = "nul" input_player1_l3_axis = "nul" input_player1_r3 = "q" 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_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_btn = "nul" input_exit_emulator_axis = "nul" input_state_slot_increase_btn = "nul" input_state_slot_increase_axis = "nul" input_state_slot_decrease_btn = "nul" input_state_slot_decrease_axis = "nul" 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_btn = "nul" input_reset_axis = "nul" input_shader_next_btn = "nul" input_shader_next_axis = "nul" 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_osk_toggle = "f12" input_osk_toggle_btn = "nul" input_osk_toggle_axis = "nul" input_netplay_flip_players_1_2 = "nul" input_netplay_flip_players_1_2_btn = "nul" input_netplay_flip_players_1_2_axis = "nul" input_netplay_game_watch = "i" input_netplay_game_watch_btn = "nul" input_netplay_game_watch_axis = "nul" input_slowmotion = "e" input_slowmotion_btn = "nul" input_slowmotion_axis = "nul" input_enable_hotkey_btn = "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_game_focus_toggle = "scroll_lock" input_game_focus_toggle_btn = "nul" input_game_focus_toggle_axis = "nul" input_menu_toggle_btn = "nul" input_menu_toggle_axis = "nul" input_player2_b = "nul" input_player2_b_btn = "nul" input_player2_b_axis = "nul" input_player2_y = "nul" input_player2_y_btn = "nul" input_player2_y_axis = "nul" input_player2_select = "nul" input_player2_select_btn = "nul" input_player2_select_axis = "nul" input_player2_start = "nul" input_player2_start_btn = "nul" input_player2_start_axis = "nul" input_player2_up = "nul" input_player2_up_btn = "nul" input_player2_up_axis = "nul" input_player2_down = "nul" input_player2_down_btn = "nul" input_player2_down_axis = "nul" input_player2_left = "nul" input_player2_left_btn = "nul" input_player2_left_axis = "nul" input_player2_right = "nul" input_player2_right_btn = "nul" input_player2_right_axis = "nul" input_player2_a = "nul" input_player2_a_btn = "nul" input_player2_a_axis = "nul" input_player2_x = "nul" input_player2_x_btn = "nul" input_player2_x_axis = "nul" input_player2_l = "nul" input_player2_l_btn = "nul" input_player2_l_axis = "nul" input_player2_r = "nul" input_player2_r_btn = "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"
And I'm running RetroPie 4.2
@roachman5000 Your config has 16 player sections will nul
values in them. I have not seen that before and it suggests a problem with your setup. See https://github.com/dillbyrne/es-cec-input/issues/1 for an example of my keyboard config. When you setup your keyboard through emulation station it should set the values in that file.
Classic......It's probably because I've reconfigured my keyboard and 8bitdo controller multiple times, but I don't know why it keeps count like that. Weird...is it best to just go in and delete out the other 15 or so player sections I'm currently not using?
@roachman5000 That could be it. I have not used the 8bitdo controllers myself so it could be something to do with that. Perhaps enquire with other 8bitdo retropie users and compare the configuration files.
Before you do anything be sure to back up any configurations and or make a backup image . I can't really help in relation to the script until your file is populated as expected.
Hey there,
first of all thanks fpr the nice script!
Got it working on boot - but after I start Kodi through the Retropie Ports section and close it again, Retropie doesn't recognize CEC Inputs anymore until I start Kodi again (with an USB Keyboard) or reboot the Pi.
Is there a way to let the script run upon closing Kodi?
I'm a Linux noob myself - Sorry if this is a stupid question.