libretro / RetroArch

Cross-platform, sophisticated frontend for the libretro API. Licensed GPLv3.
http://www.libretro.com
GNU General Public License v3.0
10.1k stars 1.81k forks source link

[Windows] Latest code crashing when selecting Core Updater and when quitting #7842

Closed Ryunam closed 5 years ago

Ryunam commented 5 years ago

Description

On Windows 10 x64 with the latest build, RetroArch crashes instantly upon selecting the "Core Updater" option under Online Updater. It also displays a crash message when pressing "ESC" or quitting the application through the menu.

This happens regardless of the Menu Driver currently used. I have tested both the XMB and the Ozone menu driver and the problem persists.

Expected behavior

No crash message should happen when selecting the Core Updater or quitting the application.

Version/Commit

Environment information

Ryunam commented 5 years ago

I have taken the time to do a bisect and bddcd2d5e58a5c8a0f47dccdd5de9189633d8846 appears to be the first bad commit causing these crashes.

andres-asm commented 5 years ago

I can't repro the crash on the current master

ofry commented 5 years ago

@Ryunam Can you do backtrace of your crash via GDB via your MINGW64 bash?

andres-asm commented 5 years ago

most users don't have toolchains setup @Ryunam you could try to get a stack trace by using the debug build and Dr. Mingw

Ryunam commented 5 years ago

Okay, I managed to isolate the issue further and it's definitely weird.

1) Renaming my old retroarch.cfg and making RA recreate it from scratch seems to prevent the crashes entirely.

2) With my old config file still in place, I can make the crashes happen consistently by not having any controllers connected and navigating the menu with my keyboard only. If I select the 'Core Updater' option or press ESC, I get a crash.

3) Here's a trace I got through Dr. Mingw on the debug build, as @fr500 suggested.

When quitting with ESC: https://pastebin.com/bvpvFBDN When selecting Core Updater: https://pastebin.com/RuP9uMm7

orbea commented 5 years ago

Can you isolate what options in your config file causes the problems? Doing a diff between the old and new config should help if you have the tools?

Ryunam commented 5 years ago

I would need some pointers on how to do that, but I'll look into this. Any specific tool you'd recommend?

orbea commented 5 years ago

Someone else would be able to better instruct how to start this on windows, but you want to use git.

ofry commented 5 years ago

@Ryunam Can you do backtrace of your crash via GDB via your MINGW64 bash?

You can setup toolchain by following these instructions:

https://docs.libretro.com/compilation/windows/

until line

The NVIDIA CG toolkit package hasn't been updated for a while so you need to download that package manually and install with pacman.

Ryunam commented 5 years ago

I think I found the culprit. These are the steps to reproduce this consistently on my system and it has to do with the 'raw' input driver.

1) Launch RA creating a new retroarch.cfg file and with no controller connected, using only the keyboard to navigate the Menu 2) Go to Settings -> Driver and set Input Driver to 'raw' 3) Save the configuration file by quitting RA 4) Launch RA again and either press ESC or select the 'Core Updater'

Ryunam commented 5 years ago

Latest code seems to fix this. Thanks!

ofry commented 5 years ago

Please reopen this.

I reproduced this in latest codebase.

Segfault after selecting core list:

gdb retroarch
GNU gdb (GDB) 8.2.1
Copyright (C) 2018 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-w64-mingw32".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
    <http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from retroarch...done.
(gdb) start
Temporary breakpoint 1 at 0xb1dd90: file C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/crt/crt0_c.c, line 17.
Starting program: C:\msys64\home\ofry\retroarch\retroarch.exe
[New Thread 46700.0xad60]

Temporary breakpoint 1, main (flags=1, cmdline=0xc91cc30, inst=0xc912070)
    at C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/crt/crt0_c.c:17
17      C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/crt/crt0_c.c: No such file or directory.
(gdb) cont
Continuing.
[INFO] [Config]: Loading default config.
[INFO] [Config]: loading config from: (null).
[INFO] [recording] twitch streaming key empty
[INFO] RetroArch 1.7.5 (Git aecd532dac)
[INFO] === Build =======================================
Capabilities: MMX MMXEXT SSE1 SSE2 SSE3 SSSE3 SSE4 SSE4.2 AVX AES
Built: Dec 30 2018
[INFO] Version: 1.7.5
[INFO] Git: aecd532dac
[INFO] =================================================
[New Thread 46700.0xa834]
[INFO] Environ SET_PIXEL_FORMAT: RGB565.
[INFO] Redirecting save file to "C:\msys64\home\ofry\retroarch\\saves\.srm".
[INFO] Redirecting savestate to "C:\msys64\home\ofry\retroarch\\states\.state".
[INFO] Version of libretro API: 1
[INFO] Compiled against API: 1
[INFO] [Audio]: Set audio input rate to: 29970.03 Hz.
[INFO] [Video]: Video @ 960x720
[INFO] [GL]: Found GL context: wgl
[INFO] [GL]: Detecting screen resolution 1920x1200.
[INFO] [WGL] extensions: WGL_ARB_extensions_string WGL_ARB_pixel_format WGL_ATI_pixel_format_float WGL_ARB_pixel_format_float WGL_ARB_multisample WGL_EXT_swap_control WGL_EXT_swap_control_tear WGL_ARB_pbuffer WGL_ARB_render_texture WGL_ARB_make_current_read WGL_EXT_extensions_string WGL_ARB_buffer_region WGL_EXT_framebuffer_sRGB WGL_ATI_render_texture_rectangle WGL_EXT_pixel_format_packed_float WGL_I3D_genlock WGL_NV_swap_group WGL_ARB_create_context WGL_AMD_gpu_association WGL_ARB_create_context_profile WGL_ARB_context_flush_control WGL_NV_DX_interop WGL_ARB_create_context_no_error WGL_NV_DX_interop2 WGL_NV_float_buffer
[INFO] [WGL]: Adaptive VSync supported.
[INFO] [WGL]: wglSwapInterval(1)
[INFO] [GL]: Vendor: ATI Technologies Inc., Renderer: AMD Radeon (TM) R7 360 Series.
[INFO] [GL]: Version: 4.6.13543 Compatibility Profile Context 25.20.15002.58.
[INFO] [GL]: Using resolution 960x720
[INFO] [GL]: Default shader backend found: glsl.
[INFO] [Shader driver]: Using GLSL shader backend.
[INFO] [GLSL]: Checking GLSL shader support ...
[WARN] [GL]: Stock GLSL shaders will be used.
[INFO] [GLSL]: Found GLSL vertex shader.
[INFO] [GLSL]: Found GLSL fragment shader.
[INFO] [GLSL]: Linking GLSL program.
[INFO] [GLSL]: Found GLSL vertex shader.
[INFO] [GLSL]: Found GLSL fragment shader.
[INFO] [GLSL]: Linking GLSL program.
[INFO] [GLSL]: Found GLSL vertex shader.
[INFO] [GLSL]: Found GLSL fragment shader.
[INFO] [GLSL]: Linking GLSL program.
[INFO] Setting up menu pipeline shaders for XMB ...
[INFO] [GLSL]: Compiling ribbon shader..
[INFO] [GLSL]: Found GLSL vertex shader.
[INFO] [GLSL]: Found GLSL fragment shader.
[INFO] [GLSL]: Linking GLSL program.
[INFO] [GLSL]: Compiling simple ribbon shader..
[INFO] [GLSL]: Found GLSL vertex shader.
[INFO] [GLSL]: Found GLSL fragment shader.
[INFO] [GLSL]: Linking GLSL program.
[INFO] [GLSL]: Compiling snow shader..
[INFO] [GLSL]: Found GLSL vertex shader.
[INFO] [GLSL]: Found GLSL fragment shader.
[INFO] [GLSL]: Linking GLSL program.
[INFO] [GLSL]: Compiling modern snow shader..
[INFO] [GLSL]: Found GLSL vertex shader.
[INFO] [GLSL]: Found GLSL fragment shader.
[INFO] [GLSL]: Linking GLSL program.
[INFO] [GLSL]: Compiling bokeh shader..
[INFO] [GLSL]: Found GLSL vertex shader.
[INFO] [GLSL]: Found GLSL fragment shader.
[INFO] [GLSL]: Linking GLSL program.
[INFO] [GLSL]: Compiling snowflake shader..
[INFO] [GLSL]: Found GLSL vertex shader.
[INFO] [GLSL]: Found GLSL fragment shader.
[INFO] [GLSL]: Linking GLSL program.
[INFO] Resetting shader to defaults ...
[INFO] [GL]: Using 4 textures.
[INFO] [GL]: Loaded 1 program(s).
[INFO] [WINRAW]: Initializing input driver...
[INFO] [WINRAW]: Mouse #0 \\?\HID#VID_046D&PID_C05A#7&37839224&0&0000#{378de44c-56ef-11d1-bc8c-00a0c91405dd}.
[INFO] [Joypad]: Found joypad driver: "null".
[INFO] [Font]: Using font rendering backend: freetype.
[INFO] [Video]: Found display server: win32
[INFO] Found shader "C:\msys64\home\ofry\retroarch\\shaders\4xbr-scanline.glslp"
[INFO] Found shader "C:\msys64\home\ofry\retroarch\\shaders\4xbr-superres.glslp"
[INFO] Found shader "C:\msys64\home\ofry\retroarch\\shaders\4xbrz.glslp"
[INFO] Found shader "C:\msys64\home\ofry\retroarch\\shaders\5xbrz.glslp"
[INFO] Found shader "C:\msys64\home\ofry\retroarch\\shaders\9passesxbr.glslp"
[INFO] Found shader "C:\msys64\home\ofry\retroarch\\shaders\base.glslp"
[INFO] Found shader "C:\msys64\home\ofry\retroarch\\shaders\retroarch.glslp"
[INFO] Found shader "C:\msys64\home\ofry\retroarch\\shaders\temp.glslp"
[INFO] XAudio2: Requesting 64 ms latency, using 64 ms latency.
[New Thread 46700.0x9d74]
[New Thread 46700.0x6944]
[New Thread 46700.0xa93c]
[INFO] [Menu]: Found menu display driver: "gl".
[INFO] [Font]: Using font rendering backend: freetype.
[INFO] [Font]: Using font rendering backend: freetype.
[INFO] [LED]: LED driver = 'null' 0000000000B5A5A0
[INFO] [MIDI]: Initializing ...
[INFO] [MIDI]: Input disabled.
[INFO] [MIDI]: Output disabled.
[INFO] [MIDI]: Initialized "winmm" driver.
[INFO] SRAM will not be saved.
[INFO] Loading history file: [C:\msys64\home\ofry\retroarch\\content_history.lpl].
[INFO] Loading history file: [C:\msys64\home\ofry\retroarch\\content_favorites.lpl].
[INFO] Loading history file: [C:\msys64\home\ofry\retroarch\\content_music_history.lpl].
[INFO] Loading history file: [C:\msys64\home\ofry\retroarch\\content_video_history.lpl].
[INFO] Loading history file: [C:\msys64\home\ofry\retroarch\\content_image_history.lpl].
[INFO] [GL]: VSync => on
[INFO] [WGL]: wglSwapInterval(1)
[INFO] [GL]: VSync => on
[INFO] [WGL]: wglSwapInterval(1)
[INFO] [Font]: Using font rendering backend: freetype.
[INFO] [Font]: Using font rendering backend: freetype.

Thread 1 received signal SIGSEGV, Segmentation fault.
0x000000000095e8e3 in win32_display_server_set_window_progress (
    data=0xe0829e0, progress=-1, finished=false)
    at gfx/display_servers/dispserv_win32.c:166
166           if (ITaskbarList3_SetProgressState(
(gdb) bt full
#0  0x000000000095e8e3 in win32_display_server_set_window_progress (
    data=0xe0829e0, progress=-1, finished=false)
    at gfx/display_servers/dispserv_win32.c:166
        hwnd = 0x481344 <populate_settings_uint+9275>
        serv = 0xe0829e0
#1  0x0000000000469835 in video_display_server_set_window_progress (
    progress=-1, finished=false) at gfx/video_display_server.c:81
No locals.
#2  0x000000000092e9fc in http_transfer_progress_cb (task=0x1474f100)
    at tasks/task_http.c:242
No locals.
#3  0x000000000041e22b in task_queue_push_progress (task=0x1474f100)
    at libretro-common/queues/task_queue.c:104
No locals.
#4  0x000000000041e8b0 in retro_task_threaded_gather ()
    at libretro-common/queues/task_queue.c:369
        task = 0x1474f100
#5  0x000000000041eed0 in task_queue_check ()
    at libretro-common/queues/task_queue.c:609
        current_threaded = true
        want_threaded = true
#6  0x00000000005499ce in ui_application_qt_run (args=0x0)
    at ui/drivers/qt/ui_qt_application.cpp:163
        ret = 0
        sleep_ms = 3
#7  0x0000000000401714 in rarch_main (argc=1, argv=0x8200000, data=0x0)
    at frontend/frontend.c:157
        args = 0x0
        ui_application = 0xb21860 <ui_application_qt>
#8  0x0000000000549a19 in SDL_main (argc=1, argv=0x8200000)
    at ui/drivers/qt/ui_qt_application.cpp:182
No locals.
#9  0x00000000009744bc in main_getcmdline ()
No symbol table info available.
#10 0x00000000004013a5 in __tmainCRTStartup ()
    at C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/crt/crtexe.c:339
        lock_free = <optimized out>
        fiberid = <optimized out>
        nested = <optimized out>
        lpszCommandLine = <optimized out>
        StartupInfo = {cb = 104, lpReserved = 0x82ba190 "",
          lpDesktop = 0x82b8830 "Winsta0\\Default",
          lpTitle = 0x82b63c0 "C:\\msys64\\home\\ofry\\retroarch\\retroarch.exe", dwX = 0, dwY = 0, dwXSize = 0, dwYSize = 0, dwXCountChars = 0,
          dwYCountChars = 0, dwFillAttribute = 0, dwFlags = 0,
          wShowWindow = 0, cbReserved2 = 0, lpReserved2 = 0x0,
          hStdInput = 0xffffffffffffffff, hStdOutput = 0xffffffffffffffff,
          hStdError = 0xffffffffffffffff}
        inDoubleQuote = <optimized out>
#11 0x00000000004014db in WinMainCRTStartup ()
    at C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/crt/crtexe.c:195
        ret = 255
ofry commented 5 years ago

My retroarch.cfg:

all_users_control_menu = "false"
apply_cheats_after_load = "false"
apply_cheats_after_toggle = "false"
aspect_ratio_index = "22"
assets_directory = ":\assets"
audio_block_frames = "0"
audio_device = ""
audio_driver = "xaudio"
audio_dsp_plugin = ""
audio_enable = "true"
audio_enable_menu = "false"
audio_filter_dir = ":\filters\audio"
audio_latency = "64"
audio_max_timing_skew = "0.050000"
audio_mixer_mute_enable = "false"
audio_mixer_volume = "0.000000"
audio_mute_enable = "false"
audio_out_rate = "48000"
audio_rate_control = "true"
audio_rate_control_delta = "0.005000"
audio_resampler = "sinc"
audio_resampler_quality = "3"
audio_sync = "true"
audio_volume = "0.000000"
audio_wasapi_exclusive_mode = "true"
audio_wasapi_float_format = "false"
audio_wasapi_sh_buffer_length = "-16"
auto_overrides_enable = "true"
auto_remaps_enable = "true"
auto_screenshot_filename = "true"
auto_shaders_enable = "true"
automatically_add_content_to_playlist = "false"
autosave_interval = "10"
block_sram_overwrite = "false"
builtin_imageviewer_enable = "true"
builtin_mediaplayer_enable = "true"
bundle_assets_dst_path = ""
bundle_assets_dst_path_subdir = ""
bundle_assets_extract_enable = "false"
bundle_assets_extract_last_version = "0"
bundle_assets_extract_version_current = "0"
bundle_assets_src_path = ""
cache_directory = ""
camera_allow = "false"
camera_device = ""
camera_driver = "null"
cheat_database_path = ":\cheats"
check_firmware_before_loading = "false"
cheevos_auto_screenshot = "false"
cheevos_badges_enable = "false"
cheevos_enable = "false"
cheevos_hardcore_mode_enable = "false"
cheevos_leaderboards_enable = "false"
cheevos_password = ""
cheevos_test_unofficial = "false"
cheevos_token = ""
cheevos_username = ""
cheevos_verbose_enable = "false"
config_save_on_exit = "true"
content_database_path = ":\database\rdb"
content_favorites_path = ":\content_favorites.lpl"
content_history_dir = ""
content_history_path = ":\content_history.lpl"
content_history_size = "100"
content_image_history_path = ":\content_image_history.lpl"
content_music_history_path = ":\content_music_history.lpl"
content_show_add = "true"
content_show_favorites = "true"
content_show_history = "true"
content_show_images = "true"
content_show_music = "true"
content_show_netplay = "true"
content_show_playlists = "true"
content_show_settings = "true"
content_show_settings_password = ""
content_show_video = "true"
content_video_history_path = ":\content_video_history.lpl"
core_assets_directory = ":\downloads"
core_options_path = ""
core_set_supports_no_game_enable = "true"
core_updater_auto_extract_archive = "true"
core_updater_buildbot_assets_url = "http://buildbot.libretro.com/assets/"
core_updater_buildbot_url = "http://buildbot.libretro.com/nightly/windows/x86_64/latest/"
crt_switch_center_adjust = "0"
crt_switch_resolution = "0"
crt_switch_resolution_super = "2560"
crt_switch_resolution_use_custom_refresh_rate = "false"
crt_video_refresh_rate = "59.940060"
current_resolution_id = "0"
cursor_directory = ":\database\cursors"
custom_viewport_height = "720"
custom_viewport_width = "960"
custom_viewport_x = "0"
custom_viewport_y = "0"
desktop_menu_enable = "true"
discord_allow = "false"
discord_app_id = "475456035851599874"
dpi_override_enable = "false"
dpi_override_value = "200"
dynamic_wallpapers_directory = ":\assets\wallpapers"
fastforward_ratio = "0.000000"
filter_by_current_core = "false"
flicker_filter_enable = "false"
flicker_filter_index = "0"
fps_show = "false"
framecount_show = "false"
game_specific_options = "true"
gamma_correction = "false"
history_list_enable = "true"
input_audio_mute = "f9"
input_audio_mute_axis = "nul"
input_audio_mute_btn = "nul"
input_audio_mute_mbtn = "nul"
input_autodetect_enable = "true"
input_axis_threshold = "0.500000"
input_bind_hold = "2"
input_bind_timeout = "5"
input_cheat_index_minus = "t"
input_cheat_index_minus_axis = "nul"
input_cheat_index_minus_btn = "nul"
input_cheat_index_minus_mbtn = "nul"
input_cheat_index_plus = "y"
input_cheat_index_plus_axis = "nul"
input_cheat_index_plus_btn = "nul"
input_cheat_index_plus_mbtn = "nul"
input_cheat_toggle = "u"
input_cheat_toggle_axis = "nul"
input_cheat_toggle_btn = "nul"
input_cheat_toggle_mbtn = "nul"
input_descriptor_hide_unbound = "false"
input_descriptor_label_show = "true"
input_desktop_menu_toggle = "f5"
input_desktop_menu_toggle_axis = "nul"
input_desktop_menu_toggle_btn = "nul"
input_desktop_menu_toggle_mbtn = "nul"
input_device_p1 = "0"
input_device_p10 = "0"
input_device_p11 = "0"
input_device_p12 = "0"
input_device_p13 = "0"
input_device_p14 = "0"
input_device_p15 = "0"
input_device_p16 = "0"
input_device_p2 = "0"
input_device_p3 = "0"
input_device_p4 = "0"
input_device_p5 = "0"
input_device_p6 = "0"
input_device_p7 = "0"
input_device_p8 = "0"
input_device_p9 = "0"
input_disk_eject_toggle = "nul"
input_disk_eject_toggle_axis = "nul"
input_disk_eject_toggle_btn = "nul"
input_disk_eject_toggle_mbtn = "nul"
input_disk_next = "nul"
input_disk_next_axis = "nul"
input_disk_next_btn = "nul"
input_disk_next_mbtn = "nul"
input_disk_prev = "nul"
input_disk_prev_axis = "nul"
input_disk_prev_btn = "nul"
input_disk_prev_mbtn = "nul"
input_driver = "raw"
input_duty_cycle = "3"
input_enable_hotkey = "nul"
input_enable_hotkey_axis = "nul"
input_enable_hotkey_btn = "nul"
input_enable_hotkey_mbtn = "nul"
input_exit_emulator = "escape"
input_exit_emulator_axis = "nul"
input_exit_emulator_btn = "nul"
input_exit_emulator_mbtn = "nul"
input_fps_toggle = "f3"
input_fps_toggle_axis = "nul"
input_fps_toggle_btn = "nul"
input_fps_toggle_mbtn = "nul"
input_frame_advance = "k"
input_frame_advance_axis = "nul"
input_frame_advance_btn = "nul"
input_frame_advance_mbtn = "nul"
input_game_focus_toggle = "scroll_lock"
input_game_focus_toggle_axis = "nul"
input_game_focus_toggle_btn = "nul"
input_game_focus_toggle_mbtn = "nul"
input_grab_mouse_toggle = "f11"
input_grab_mouse_toggle_axis = "nul"
input_grab_mouse_toggle_btn = "nul"
input_grab_mouse_toggle_mbtn = "nul"
input_hold_fast_forward = "l"
input_hold_fast_forward_axis = "nul"
input_hold_fast_forward_btn = "nul"
input_hold_fast_forward_mbtn = "nul"
input_hold_slowmotion = "e"
input_hold_slowmotion_axis = "nul"
input_hold_slowmotion_btn = "nul"
input_hold_slowmotion_mbtn = "nul"
input_joypad_driver = "null"
input_keyboard_layout = ""
input_libretro_device_p1 = "1"
input_libretro_device_p10 = "1"
input_libretro_device_p11 = "1"
input_libretro_device_p12 = "1"
input_libretro_device_p13 = "1"
input_libretro_device_p14 = "1"
input_libretro_device_p15 = "1"
input_libretro_device_p16 = "1"
input_libretro_device_p2 = "1"
input_libretro_device_p3 = "1"
input_libretro_device_p4 = "1"
input_libretro_device_p5 = "1"
input_libretro_device_p6 = "1"
input_libretro_device_p7 = "1"
input_libretro_device_p8 = "1"
input_libretro_device_p9 = "1"
input_load_state = "f4"
input_load_state_axis = "nul"
input_load_state_btn = "nul"
input_load_state_mbtn = "nul"
input_max_users = "5"
input_menu_toggle = "f1"
input_menu_toggle_axis = "nul"
input_menu_toggle_btn = "nul"
input_menu_toggle_gamepad_combo = "0"
input_menu_toggle_mbtn = "nul"
input_movie_record_toggle = "o"
input_movie_record_toggle_axis = "nul"
input_movie_record_toggle_btn = "nul"
input_movie_record_toggle_mbtn = "nul"
input_netplay_game_watch = "i"
input_netplay_game_watch_axis = "nul"
input_netplay_game_watch_btn = "nul"
input_netplay_game_watch_mbtn = "nul"
input_osk_toggle = "f12"
input_osk_toggle_axis = "nul"
input_osk_toggle_btn = "nul"
input_osk_toggle_mbtn = "nul"
input_overlay = ""
input_overlay_enable = "true"
input_overlay_enable_autopreferred = "true"
input_overlay_hide_in_menu = "true"
input_overlay_next = "nul"
input_overlay_next_axis = "nul"
input_overlay_next_btn = "nul"
input_overlay_next_mbtn = "nul"
input_overlay_opacity = "0.700000"
input_overlay_scale = "1.000000"
input_overlay_show_physical_inputs = "false"
input_overlay_show_physical_inputs_port = "0"
input_pause_toggle = "p"
input_pause_toggle_axis = "nul"
input_pause_toggle_btn = "nul"
input_pause_toggle_mbtn = "nul"
input_player10_a = "nul"
input_player10_a_axis = "nul"
input_player10_a_btn = "nul"
input_player10_a_mbtn = "nul"
input_player10_analog_dpad_mode = "0"
input_player10_b = "nul"
input_player10_b_axis = "nul"
input_player10_b_btn = "nul"
input_player10_b_mbtn = "nul"
input_player10_down = "nul"
input_player10_down_axis = "nul"
input_player10_down_btn = "nul"
input_player10_down_mbtn = "nul"
input_player10_gun_aux_a = "nul"
input_player10_gun_aux_a_axis = "nul"
input_player10_gun_aux_a_btn = "nul"
input_player10_gun_aux_a_mbtn = "nul"
input_player10_gun_aux_b = "nul"
input_player10_gun_aux_b_axis = "nul"
input_player10_gun_aux_b_btn = "nul"
input_player10_gun_aux_b_mbtn = "nul"
input_player10_gun_aux_c = "nul"
input_player10_gun_aux_c_axis = "nul"
input_player10_gun_aux_c_btn = "nul"
input_player10_gun_aux_c_mbtn = "nul"
input_player10_gun_dpad_down = "nul"
input_player10_gun_dpad_down_axis = "nul"
input_player10_gun_dpad_down_btn = "nul"
input_player10_gun_dpad_down_mbtn = "nul"
input_player10_gun_dpad_left = "nul"
input_player10_gun_dpad_left_axis = "nul"
input_player10_gun_dpad_left_btn = "nul"
input_player10_gun_dpad_left_mbtn = "nul"
input_player10_gun_dpad_right = "nul"
input_player10_gun_dpad_right_axis = "nul"
input_player10_gun_dpad_right_btn = "nul"
input_player10_gun_dpad_right_mbtn = "nul"
input_player10_gun_dpad_up = "nul"
input_player10_gun_dpad_up_axis = "nul"
input_player10_gun_dpad_up_btn = "nul"
input_player10_gun_dpad_up_mbtn = "nul"
input_player10_gun_offscreen_shot = "nul"
input_player10_gun_offscreen_shot_axis = "nul"
input_player10_gun_offscreen_shot_btn = "nul"
input_player10_gun_offscreen_shot_mbtn = "nul"
input_player10_gun_select = "nul"
input_player10_gun_select_axis = "nul"
input_player10_gun_select_btn = "nul"
input_player10_gun_select_mbtn = "nul"
input_player10_gun_start = "nul"
input_player10_gun_start_axis = "nul"
input_player10_gun_start_btn = "nul"
input_player10_gun_start_mbtn = "nul"
input_player10_gun_trigger = "nul"
input_player10_gun_trigger_axis = "nul"
input_player10_gun_trigger_btn = "nul"
input_player10_gun_trigger_mbtn = "nul"
input_player10_joypad_index = "9"
input_player10_l = "nul"
input_player10_l2 = "nul"
input_player10_l2_axis = "nul"
input_player10_l2_btn = "nul"
input_player10_l2_mbtn = "nul"
input_player10_l3 = "nul"
input_player10_l3_axis = "nul"
input_player10_l3_btn = "nul"
input_player10_l3_mbtn = "nul"
input_player10_l_axis = "nul"
input_player10_l_btn = "nul"
input_player10_l_mbtn = "nul"
input_player10_l_x_minus = "nul"
input_player10_l_x_minus_axis = "nul"
input_player10_l_x_minus_btn = "nul"
input_player10_l_x_minus_mbtn = "nul"
input_player10_l_x_plus = "nul"
input_player10_l_x_plus_axis = "nul"
input_player10_l_x_plus_btn = "nul"
input_player10_l_x_plus_mbtn = "nul"
input_player10_l_y_minus = "nul"
input_player10_l_y_minus_axis = "nul"
input_player10_l_y_minus_btn = "nul"
input_player10_l_y_minus_mbtn = "nul"
input_player10_l_y_plus = "nul"
input_player10_l_y_plus_axis = "nul"
input_player10_l_y_plus_btn = "nul"
input_player10_l_y_plus_mbtn = "nul"
input_player10_left = "nul"
input_player10_left_axis = "nul"
input_player10_left_btn = "nul"
input_player10_left_mbtn = "nul"
input_player10_mouse_index = "0"
input_player10_r = "nul"
input_player10_r2 = "nul"
input_player10_r2_axis = "nul"
input_player10_r2_btn = "nul"
input_player10_r2_mbtn = "nul"
input_player10_r3 = "nul"
input_player10_r3_axis = "nul"
input_player10_r3_btn = "nul"
input_player10_r3_mbtn = "nul"
input_player10_r_axis = "nul"
input_player10_r_btn = "nul"
input_player10_r_mbtn = "nul"
input_player10_r_x_minus = "nul"
input_player10_r_x_minus_axis = "nul"
input_player10_r_x_minus_btn = "nul"
input_player10_r_x_minus_mbtn = "nul"
input_player10_r_x_plus = "nul"
input_player10_r_x_plus_axis = "nul"
input_player10_r_x_plus_btn = "nul"
input_player10_r_x_plus_mbtn = "nul"
input_player10_r_y_minus = "nul"
input_player10_r_y_minus_axis = "nul"
input_player10_r_y_minus_btn = "nul"
input_player10_r_y_minus_mbtn = "nul"
input_player10_r_y_plus = "nul"
input_player10_r_y_plus_axis = "nul"
input_player10_r_y_plus_btn = "nul"
input_player10_r_y_plus_mbtn = "nul"
input_player10_right = "nul"
input_player10_right_axis = "nul"
input_player10_right_btn = "nul"
input_player10_right_mbtn = "nul"
input_player10_select = "nul"
input_player10_select_axis = "nul"
input_player10_select_btn = "nul"
input_player10_select_mbtn = "nul"
input_player10_start = "nul"
input_player10_start_axis = "nul"
input_player10_start_btn = "nul"
input_player10_start_mbtn = "nul"
input_player10_turbo = "nul"
input_player10_turbo_axis = "nul"
input_player10_turbo_btn = "nul"
input_player10_turbo_mbtn = "nul"
input_player10_up = "nul"
input_player10_up_axis = "nul"
input_player10_up_btn = "nul"
input_player10_up_mbtn = "nul"
input_player10_x = "nul"
input_player10_x_axis = "nul"
input_player10_x_btn = "nul"
input_player10_x_mbtn = "nul"
input_player10_y = "nul"
input_player10_y_axis = "nul"
input_player10_y_btn = "nul"
input_player10_y_mbtn = "nul"
input_player11_a = "nul"
input_player11_a_axis = "nul"
input_player11_a_btn = "nul"
input_player11_a_mbtn = "nul"
input_player11_analog_dpad_mode = "0"
input_player11_b = "nul"
input_player11_b_axis = "nul"
input_player11_b_btn = "nul"
input_player11_b_mbtn = "nul"
input_player11_down = "nul"
input_player11_down_axis = "nul"
input_player11_down_btn = "nul"
input_player11_down_mbtn = "nul"
input_player11_gun_aux_a = "nul"
input_player11_gun_aux_a_axis = "nul"
input_player11_gun_aux_a_btn = "nul"
input_player11_gun_aux_a_mbtn = "nul"
input_player11_gun_aux_b = "nul"
input_player11_gun_aux_b_axis = "nul"
input_player11_gun_aux_b_btn = "nul"
input_player11_gun_aux_b_mbtn = "nul"
input_player11_gun_aux_c = "nul"
input_player11_gun_aux_c_axis = "nul"
input_player11_gun_aux_c_btn = "nul"
input_player11_gun_aux_c_mbtn = "nul"
input_player11_gun_dpad_down = "nul"
input_player11_gun_dpad_down_axis = "nul"
input_player11_gun_dpad_down_btn = "nul"
input_player11_gun_dpad_down_mbtn = "nul"
input_player11_gun_dpad_left = "nul"
input_player11_gun_dpad_left_axis = "nul"
input_player11_gun_dpad_left_btn = "nul"
input_player11_gun_dpad_left_mbtn = "nul"
input_player11_gun_dpad_right = "nul"
input_player11_gun_dpad_right_axis = "nul"
input_player11_gun_dpad_right_btn = "nul"
input_player11_gun_dpad_right_mbtn = "nul"
input_player11_gun_dpad_up = "nul"
input_player11_gun_dpad_up_axis = "nul"
input_player11_gun_dpad_up_btn = "nul"
input_player11_gun_dpad_up_mbtn = "nul"
input_player11_gun_offscreen_shot = "nul"
input_player11_gun_offscreen_shot_axis = "nul"
input_player11_gun_offscreen_shot_btn = "nul"
input_player11_gun_offscreen_shot_mbtn = "nul"
input_player11_gun_select = "nul"
input_player11_gun_select_axis = "nul"
input_player11_gun_select_btn = "nul"
input_player11_gun_select_mbtn = "nul"
input_player11_gun_start = "nul"
input_player11_gun_start_axis = "nul"
input_player11_gun_start_btn = "nul"
input_player11_gun_start_mbtn = "nul"
input_player11_gun_trigger = "nul"
input_player11_gun_trigger_axis = "nul"
input_player11_gun_trigger_btn = "nul"
input_player11_gun_trigger_mbtn = "nul"
input_player11_joypad_index = "10"
input_player11_l = "nul"
input_player11_l2 = "nul"
input_player11_l2_axis = "nul"
input_player11_l2_btn = "nul"
input_player11_l2_mbtn = "nul"
input_player11_l3 = "nul"
input_player11_l3_axis = "nul"
input_player11_l3_btn = "nul"
input_player11_l3_mbtn = "nul"
input_player11_l_axis = "nul"
input_player11_l_btn = "nul"
input_player11_l_mbtn = "nul"
input_player11_l_x_minus = "nul"
input_player11_l_x_minus_axis = "nul"
input_player11_l_x_minus_btn = "nul"
input_player11_l_x_minus_mbtn = "nul"
input_player11_l_x_plus = "nul"
input_player11_l_x_plus_axis = "nul"
input_player11_l_x_plus_btn = "nul"
input_player11_l_x_plus_mbtn = "nul"
input_player11_l_y_minus = "nul"
input_player11_l_y_minus_axis = "nul"
input_player11_l_y_minus_btn = "nul"
input_player11_l_y_minus_mbtn = "nul"
input_player11_l_y_plus = "nul"
input_player11_l_y_plus_axis = "nul"
input_player11_l_y_plus_btn = "nul"
input_player11_l_y_plus_mbtn = "nul"
input_player11_left = "nul"
input_player11_left_axis = "nul"
input_player11_left_btn = "nul"
input_player11_left_mbtn = "nul"
input_player11_mouse_index = "0"
input_player11_r = "nul"
input_player11_r2 = "nul"
input_player11_r2_axis = "nul"
input_player11_r2_btn = "nul"
input_player11_r2_mbtn = "nul"
input_player11_r3 = "nul"
input_player11_r3_axis = "nul"
input_player11_r3_btn = "nul"
input_player11_r3_mbtn = "nul"
input_player11_r_axis = "nul"
input_player11_r_btn = "nul"
input_player11_r_mbtn = "nul"
input_player11_r_x_minus = "nul"
input_player11_r_x_minus_axis = "nul"
input_player11_r_x_minus_btn = "nul"
input_player11_r_x_minus_mbtn = "nul"
input_player11_r_x_plus = "nul"
input_player11_r_x_plus_axis = "nul"
input_player11_r_x_plus_btn = "nul"
input_player11_r_x_plus_mbtn = "nul"
input_player11_r_y_minus = "nul"
input_player11_r_y_minus_axis = "nul"
input_player11_r_y_minus_btn = "nul"
input_player11_r_y_minus_mbtn = "nul"
input_player11_r_y_plus = "nul"
input_player11_r_y_plus_axis = "nul"
input_player11_r_y_plus_btn = "nul"
input_player11_r_y_plus_mbtn = "nul"
input_player11_right = "nul"
input_player11_right_axis = "nul"
input_player11_right_btn = "nul"
input_player11_right_mbtn = "nul"
input_player11_select = "nul"
input_player11_select_axis = "nul"
input_player11_select_btn = "nul"
input_player11_select_mbtn = "nul"
input_player11_start = "nul"
input_player11_start_axis = "nul"
input_player11_start_btn = "nul"
input_player11_start_mbtn = "nul"
input_player11_turbo = "nul"
input_player11_turbo_axis = "nul"
input_player11_turbo_btn = "nul"
input_player11_turbo_mbtn = "nul"
input_player11_up = "nul"
input_player11_up_axis = "nul"
input_player11_up_btn = "nul"
input_player11_up_mbtn = "nul"
input_player11_x = "nul"
input_player11_x_axis = "nul"
input_player11_x_btn = "nul"
input_player11_x_mbtn = "nul"
input_player11_y = "nul"
input_player11_y_axis = "nul"
input_player11_y_btn = "nul"
input_player11_y_mbtn = "nul"
input_player12_a = "nul"
input_player12_a_axis = "nul"
input_player12_a_btn = "nul"
input_player12_a_mbtn = "nul"
input_player12_analog_dpad_mode = "0"
input_player12_b = "nul"
input_player12_b_axis = "nul"
input_player12_b_btn = "nul"
input_player12_b_mbtn = "nul"
input_player12_down = "nul"
input_player12_down_axis = "nul"
input_player12_down_btn = "nul"
input_player12_down_mbtn = "nul"
input_player12_gun_aux_a = "nul"
input_player12_gun_aux_a_axis = "nul"
input_player12_gun_aux_a_btn = "nul"
input_player12_gun_aux_a_mbtn = "nul"
input_player12_gun_aux_b = "nul"
input_player12_gun_aux_b_axis = "nul"
input_player12_gun_aux_b_btn = "nul"
input_player12_gun_aux_b_mbtn = "nul"
input_player12_gun_aux_c = "nul"
input_player12_gun_aux_c_axis = "nul"
input_player12_gun_aux_c_btn = "nul"
input_player12_gun_aux_c_mbtn = "nul"
input_player12_gun_dpad_down = "nul"
input_player12_gun_dpad_down_axis = "nul"
input_player12_gun_dpad_down_btn = "nul"
input_player12_gun_dpad_down_mbtn = "nul"
input_player12_gun_dpad_left = "nul"
input_player12_gun_dpad_left_axis = "nul"
input_player12_gun_dpad_left_btn = "nul"
input_player12_gun_dpad_left_mbtn = "nul"
input_player12_gun_dpad_right = "nul"
input_player12_gun_dpad_right_axis = "nul"
input_player12_gun_dpad_right_btn = "nul"
input_player12_gun_dpad_right_mbtn = "nul"
input_player12_gun_dpad_up = "nul"
input_player12_gun_dpad_up_axis = "nul"
input_player12_gun_dpad_up_btn = "nul"
input_player12_gun_dpad_up_mbtn = "nul"
input_player12_gun_offscreen_shot = "nul"
input_player12_gun_offscreen_shot_axis = "nul"
input_player12_gun_offscreen_shot_btn = "nul"
input_player12_gun_offscreen_shot_mbtn = "nul"
input_player12_gun_select = "nul"
input_player12_gun_select_axis = "nul"
input_player12_gun_select_btn = "nul"
input_player12_gun_select_mbtn = "nul"
input_player12_gun_start = "nul"
input_player12_gun_start_axis = "nul"
input_player12_gun_start_btn = "nul"
input_player12_gun_start_mbtn = "nul"
input_player12_gun_trigger = "nul"
input_player12_gun_trigger_axis = "nul"
input_player12_gun_trigger_btn = "nul"
input_player12_gun_trigger_mbtn = "nul"
input_player12_joypad_index = "11"
input_player12_l = "nul"
input_player12_l2 = "nul"
input_player12_l2_axis = "nul"
input_player12_l2_btn = "nul"
input_player12_l2_mbtn = "nul"
input_player12_l3 = "nul"
input_player12_l3_axis = "nul"
input_player12_l3_btn = "nul"
input_player12_l3_mbtn = "nul"
input_player12_l_axis = "nul"
input_player12_l_btn = "nul"
input_player12_l_mbtn = "nul"
input_player12_l_x_minus = "nul"
input_player12_l_x_minus_axis = "nul"
input_player12_l_x_minus_btn = "nul"
input_player12_l_x_minus_mbtn = "nul"
input_player12_l_x_plus = "nul"
input_player12_l_x_plus_axis = "nul"
input_player12_l_x_plus_btn = "nul"
input_player12_l_x_plus_mbtn = "nul"
input_player12_l_y_minus = "nul"
input_player12_l_y_minus_axis = "nul"
input_player12_l_y_minus_btn = "nul"
input_player12_l_y_minus_mbtn = "nul"
input_player12_l_y_plus = "nul"
input_player12_l_y_plus_axis = "nul"
input_player12_l_y_plus_btn = "nul"
input_player12_l_y_plus_mbtn = "nul"
input_player12_left = "nul"
input_player12_left_axis = "nul"
input_player12_left_btn = "nul"
input_player12_left_mbtn = "nul"
input_player12_mouse_index = "0"
input_player12_r = "nul"
input_player12_r2 = "nul"
input_player12_r2_axis = "nul"
input_player12_r2_btn = "nul"
input_player12_r2_mbtn = "nul"
input_player12_r3 = "nul"
input_player12_r3_axis = "nul"
input_player12_r3_btn = "nul"
input_player12_r3_mbtn = "nul"
input_player12_r_axis = "nul"
input_player12_r_btn = "nul"
input_player12_r_mbtn = "nul"
input_player12_r_x_minus = "nul"
input_player12_r_x_minus_axis = "nul"
input_player12_r_x_minus_btn = "nul"
input_player12_r_x_minus_mbtn = "nul"
input_player12_r_x_plus = "nul"
input_player12_r_x_plus_axis = "nul"
input_player12_r_x_plus_btn = "nul"
input_player12_r_x_plus_mbtn = "nul"
input_player12_r_y_minus = "nul"
input_player12_r_y_minus_axis = "nul"
input_player12_r_y_minus_btn = "nul"
input_player12_r_y_minus_mbtn = "nul"
input_player12_r_y_plus = "nul"
input_player12_r_y_plus_axis = "nul"
input_player12_r_y_plus_btn = "nul"
input_player12_r_y_plus_mbtn = "nul"
input_player12_right = "nul"
input_player12_right_axis = "nul"
input_player12_right_btn = "nul"
input_player12_right_mbtn = "nul"
input_player12_select = "nul"
input_player12_select_axis = "nul"
input_player12_select_btn = "nul"
input_player12_select_mbtn = "nul"
input_player12_start = "nul"
input_player12_start_axis = "nul"
input_player12_start_btn = "nul"
input_player12_start_mbtn = "nul"
input_player12_turbo = "nul"
input_player12_turbo_axis = "nul"
input_player12_turbo_btn = "nul"
input_player12_turbo_mbtn = "nul"
input_player12_up = "nul"
input_player12_up_axis = "nul"
input_player12_up_btn = "nul"
input_player12_up_mbtn = "nul"
input_player12_x = "nul"
input_player12_x_axis = "nul"
input_player12_x_btn = "nul"
input_player12_x_mbtn = "nul"
input_player12_y = "nul"
input_player12_y_axis = "nul"
input_player12_y_btn = "nul"
input_player12_y_mbtn = "nul"
input_player13_a = "nul"
input_player13_a_axis = "nul"
input_player13_a_btn = "nul"
input_player13_a_mbtn = "nul"
input_player13_analog_dpad_mode = "0"
input_player13_b = "nul"
input_player13_b_axis = "nul"
input_player13_b_btn = "nul"
input_player13_b_mbtn = "nul"
input_player13_down = "nul"
input_player13_down_axis = "nul"
input_player13_down_btn = "nul"
input_player13_down_mbtn = "nul"
input_player13_gun_aux_a = "nul"
input_player13_gun_aux_a_axis = "nul"
input_player13_gun_aux_a_btn = "nul"
input_player13_gun_aux_a_mbtn = "nul"
input_player13_gun_aux_b = "nul"
input_player13_gun_aux_b_axis = "nul"
input_player13_gun_aux_b_btn = "nul"
input_player13_gun_aux_b_mbtn = "nul"
input_player13_gun_aux_c = "nul"
input_player13_gun_aux_c_axis = "nul"
input_player13_gun_aux_c_btn = "nul"
input_player13_gun_aux_c_mbtn = "nul"
input_player13_gun_dpad_down = "nul"
input_player13_gun_dpad_down_axis = "nul"
input_player13_gun_dpad_down_btn = "nul"
input_player13_gun_dpad_down_mbtn = "nul"
input_player13_gun_dpad_left = "nul"
input_player13_gun_dpad_left_axis = "nul"
input_player13_gun_dpad_left_btn = "nul"
input_player13_gun_dpad_left_mbtn = "nul"
input_player13_gun_dpad_right = "nul"
input_player13_gun_dpad_right_axis = "nul"
input_player13_gun_dpad_right_btn = "nul"
input_player13_gun_dpad_right_mbtn = "nul"
input_player13_gun_dpad_up = "nul"
input_player13_gun_dpad_up_axis = "nul"
input_player13_gun_dpad_up_btn = "nul"
input_player13_gun_dpad_up_mbtn = "nul"
input_player13_gun_offscreen_shot = "nul"
input_player13_gun_offscreen_shot_axis = "nul"
input_player13_gun_offscreen_shot_btn = "nul"
input_player13_gun_offscreen_shot_mbtn = "nul"
input_player13_gun_select = "nul"
input_player13_gun_select_axis = "nul"
input_player13_gun_select_btn = "nul"
input_player13_gun_select_mbtn = "nul"
input_player13_gun_start = "nul"
input_player13_gun_start_axis = "nul"
input_player13_gun_start_btn = "nul"
input_player13_gun_start_mbtn = "nul"
input_player13_gun_trigger = "nul"
input_player13_gun_trigger_axis = "nul"
input_player13_gun_trigger_btn = "nul"
input_player13_gun_trigger_mbtn = "nul"
input_player13_joypad_index = "12"
input_player13_l = "nul"
input_player13_l2 = "nul"
input_player13_l2_axis = "nul"
input_player13_l2_btn = "nul"
input_player13_l2_mbtn = "nul"
input_player13_l3 = "nul"
input_player13_l3_axis = "nul"
input_player13_l3_btn = "nul"
input_player13_l3_mbtn = "nul"
input_player13_l_axis = "nul"
input_player13_l_btn = "nul"
input_player13_l_mbtn = "nul"
input_player13_l_x_minus = "nul"
input_player13_l_x_minus_axis = "nul"
input_player13_l_x_minus_btn = "nul"
input_player13_l_x_minus_mbtn = "nul"
input_player13_l_x_plus = "nul"
input_player13_l_x_plus_axis = "nul"
input_player13_l_x_plus_btn = "nul"
input_player13_l_x_plus_mbtn = "nul"
input_player13_l_y_minus = "nul"
input_player13_l_y_minus_axis = "nul"
input_player13_l_y_minus_btn = "nul"
input_player13_l_y_minus_mbtn = "nul"
input_player13_l_y_plus = "nul"
input_player13_l_y_plus_axis = "nul"
input_player13_l_y_plus_btn = "nul"
input_player13_l_y_plus_mbtn = "nul"
input_player13_left = "nul"
input_player13_left_axis = "nul"
input_player13_left_btn = "nul"
input_player13_left_mbtn = "nul"
input_player13_mouse_index = "0"
input_player13_r = "nul"
input_player13_r2 = "nul"
input_player13_r2_axis = "nul"
input_player13_r2_btn = "nul"
input_player13_r2_mbtn = "nul"
input_player13_r3 = "nul"
input_player13_r3_axis = "nul"
input_player13_r3_btn = "nul"
input_player13_r3_mbtn = "nul"
input_player13_r_axis = "nul"
input_player13_r_btn = "nul"
input_player13_r_mbtn = "nul"
input_player13_r_x_minus = "nul"
input_player13_r_x_minus_axis = "nul"
input_player13_r_x_minus_btn = "nul"
input_player13_r_x_minus_mbtn = "nul"
input_player13_r_x_plus = "nul"
input_player13_r_x_plus_axis = "nul"
input_player13_r_x_plus_btn = "nul"
input_player13_r_x_plus_mbtn = "nul"
input_player13_r_y_minus = "nul"
input_player13_r_y_minus_axis = "nul"
input_player13_r_y_minus_btn = "nul"
input_player13_r_y_minus_mbtn = "nul"
input_player13_r_y_plus = "nul"
input_player13_r_y_plus_axis = "nul"
input_player13_r_y_plus_btn = "nul"
input_player13_r_y_plus_mbtn = "nul"
input_player13_right = "nul"
input_player13_right_axis = "nul"
input_player13_right_btn = "nul"
input_player13_right_mbtn = "nul"
input_player13_select = "nul"
input_player13_select_axis = "nul"
input_player13_select_btn = "nul"
input_player13_select_mbtn = "nul"
input_player13_start = "nul"
input_player13_start_axis = "nul"
input_player13_start_btn = "nul"
input_player13_start_mbtn = "nul"
input_player13_turbo = "nul"
input_player13_turbo_axis = "nul"
input_player13_turbo_btn = "nul"
input_player13_turbo_mbtn = "nul"
input_player13_up = "nul"
input_player13_up_axis = "nul"
input_player13_up_btn = "nul"
input_player13_up_mbtn = "nul"
input_player13_x = "nul"
input_player13_x_axis = "nul"
input_player13_x_btn = "nul"
input_player13_x_mbtn = "nul"
input_player13_y = "nul"
input_player13_y_axis = "nul"
input_player13_y_btn = "nul"
input_player13_y_mbtn = "nul"
input_player14_a = "nul"
input_player14_a_axis = "nul"
input_player14_a_btn = "nul"
input_player14_a_mbtn = "nul"
input_player14_analog_dpad_mode = "0"
input_player14_b = "nul"
input_player14_b_axis = "nul"
input_player14_b_btn = "nul"
input_player14_b_mbtn = "nul"
input_player14_down = "nul"
input_player14_down_axis = "nul"
input_player14_down_btn = "nul"
input_player14_down_mbtn = "nul"
input_player14_gun_aux_a = "nul"
input_player14_gun_aux_a_axis = "nul"
input_player14_gun_aux_a_btn = "nul"
input_player14_gun_aux_a_mbtn = "nul"
input_player14_gun_aux_b = "nul"
input_player14_gun_aux_b_axis = "nul"
input_player14_gun_aux_b_btn = "nul"
input_player14_gun_aux_b_mbtn = "nul"
input_player14_gun_aux_c = "nul"
input_player14_gun_aux_c_axis = "nul"
input_player14_gun_aux_c_btn = "nul"
input_player14_gun_aux_c_mbtn = "nul"
input_player14_gun_dpad_down = "nul"
input_player14_gun_dpad_down_axis = "nul"
input_player14_gun_dpad_down_btn = "nul"
input_player14_gun_dpad_down_mbtn = "nul"
input_player14_gun_dpad_left = "nul"
input_player14_gun_dpad_left_axis = "nul"
input_player14_gun_dpad_left_btn = "nul"
input_player14_gun_dpad_left_mbtn = "nul"
input_player14_gun_dpad_right = "nul"
input_player14_gun_dpad_right_axis = "nul"
input_player14_gun_dpad_right_btn = "nul"
input_player14_gun_dpad_right_mbtn = "nul"
input_player14_gun_dpad_up = "nul"
input_player14_gun_dpad_up_axis = "nul"
input_player14_gun_dpad_up_btn = "nul"
input_player14_gun_dpad_up_mbtn = "nul"
input_player14_gun_offscreen_shot = "nul"
input_player14_gun_offscreen_shot_axis = "nul"
input_player14_gun_offscreen_shot_btn = "nul"
input_player14_gun_offscreen_shot_mbtn = "nul"
input_player14_gun_select = "nul"
input_player14_gun_select_axis = "nul"
input_player14_gun_select_btn = "nul"
input_player14_gun_select_mbtn = "nul"
input_player14_gun_start = "nul"
input_player14_gun_start_axis = "nul"
input_player14_gun_start_btn = "nul"
input_player14_gun_start_mbtn = "nul"
input_player14_gun_trigger = "nul"
input_player14_gun_trigger_axis = "nul"
input_player14_gun_trigger_btn = "nul"
input_player14_gun_trigger_mbtn = "nul"
input_player14_joypad_index = "13"
input_player14_l = "nul"
input_player14_l2 = "nul"
input_player14_l2_axis = "nul"
input_player14_l2_btn = "nul"
input_player14_l2_mbtn = "nul"
input_player14_l3 = "nul"
input_player14_l3_axis = "nul"
input_player14_l3_btn = "nul"
input_player14_l3_mbtn = "nul"
input_player14_l_axis = "nul"
input_player14_l_btn = "nul"
input_player14_l_mbtn = "nul"
input_player14_l_x_minus = "nul"
input_player14_l_x_minus_axis = "nul"
input_player14_l_x_minus_btn = "nul"
input_player14_l_x_minus_mbtn = "nul"
input_player14_l_x_plus = "nul"
input_player14_l_x_plus_axis = "nul"
input_player14_l_x_plus_btn = "nul"
input_player14_l_x_plus_mbtn = "nul"
input_player14_l_y_minus = "nul"
input_player14_l_y_minus_axis = "nul"
input_player14_l_y_minus_btn = "nul"
input_player14_l_y_minus_mbtn = "nul"
input_player14_l_y_plus = "nul"
input_player14_l_y_plus_axis = "nul"
input_player14_l_y_plus_btn = "nul"
input_player14_l_y_plus_mbtn = "nul"
input_player14_left = "nul"
input_player14_left_axis = "nul"
input_player14_left_btn = "nul"
input_player14_left_mbtn = "nul"
input_player14_mouse_index = "0"
input_player14_r = "nul"
input_player14_r2 = "nul"
input_player14_r2_axis = "nul"
input_player14_r2_btn = "nul"
input_player14_r2_mbtn = "nul"
input_player14_r3 = "nul"
input_player14_r3_axis = "nul"
input_player14_r3_btn = "nul"
input_player14_r3_mbtn = "nul"
input_player14_r_axis = "nul"
input_player14_r_btn = "nul"
input_player14_r_mbtn = "nul"
input_player14_r_x_minus = "nul"
input_player14_r_x_minus_axis = "nul"
input_player14_r_x_minus_btn = "nul"
input_player14_r_x_minus_mbtn = "nul"
input_player14_r_x_plus = "nul"
input_player14_r_x_plus_axis = "nul"
input_player14_r_x_plus_btn = "nul"
input_player14_r_x_plus_mbtn = "nul"
input_player14_r_y_minus = "nul"
input_player14_r_y_minus_axis = "nul"
input_player14_r_y_minus_btn = "nul"
input_player14_r_y_minus_mbtn = "nul"
input_player14_r_y_plus = "nul"
input_player14_r_y_plus_axis = "nul"
input_player14_r_y_plus_btn = "nul"
input_player14_r_y_plus_mbtn = "nul"
input_player14_right = "nul"
input_player14_right_axis = "nul"
input_player14_right_btn = "nul"
input_player14_right_mbtn = "nul"
input_player14_select = "nul"
input_player14_select_axis = "nul"
input_player14_select_btn = "nul"
input_player14_select_mbtn = "nul"
input_player14_start = "nul"
input_player14_start_axis = "nul"
input_player14_start_btn = "nul"
input_player14_start_mbtn = "nul"
input_player14_turbo = "nul"
input_player14_turbo_axis = "nul"
input_player14_turbo_btn = "nul"
input_player14_turbo_mbtn = "nul"
input_player14_up = "nul"
input_player14_up_axis = "nul"
input_player14_up_btn = "nul"
input_player14_up_mbtn = "nul"
input_player14_x = "nul"
input_player14_x_axis = "nul"
input_player14_x_btn = "nul"
input_player14_x_mbtn = "nul"
input_player14_y = "nul"
input_player14_y_axis = "nul"
input_player14_y_btn = "nul"
input_player14_y_mbtn = "nul"
input_player15_a = "nul"
input_player15_a_axis = "nul"
input_player15_a_btn = "nul"
input_player15_a_mbtn = "nul"
input_player15_analog_dpad_mode = "0"
input_player15_b = "nul"
input_player15_b_axis = "nul"
input_player15_b_btn = "nul"
input_player15_b_mbtn = "nul"
input_player15_down = "nul"
input_player15_down_axis = "nul"
input_player15_down_btn = "nul"
input_player15_down_mbtn = "nul"
input_player15_gun_aux_a = "nul"
input_player15_gun_aux_a_axis = "nul"
input_player15_gun_aux_a_btn = "nul"
input_player15_gun_aux_a_mbtn = "nul"
input_player15_gun_aux_b = "nul"
input_player15_gun_aux_b_axis = "nul"
input_player15_gun_aux_b_btn = "nul"
input_player15_gun_aux_b_mbtn = "nul"
input_player15_gun_aux_c = "nul"
input_player15_gun_aux_c_axis = "nul"
input_player15_gun_aux_c_btn = "nul"
input_player15_gun_aux_c_mbtn = "nul"
input_player15_gun_dpad_down = "nul"
input_player15_gun_dpad_down_axis = "nul"
input_player15_gun_dpad_down_btn = "nul"
input_player15_gun_dpad_down_mbtn = "nul"
input_player15_gun_dpad_left = "nul"
input_player15_gun_dpad_left_axis = "nul"
input_player15_gun_dpad_left_btn = "nul"
input_player15_gun_dpad_left_mbtn = "nul"
input_player15_gun_dpad_right = "nul"
input_player15_gun_dpad_right_axis = "nul"
input_player15_gun_dpad_right_btn = "nul"
input_player15_gun_dpad_right_mbtn = "nul"
input_player15_gun_dpad_up = "nul"
input_player15_gun_dpad_up_axis = "nul"
input_player15_gun_dpad_up_btn = "nul"
input_player15_gun_dpad_up_mbtn = "nul"
input_player15_gun_offscreen_shot = "nul"
input_player15_gun_offscreen_shot_axis = "nul"
input_player15_gun_offscreen_shot_btn = "nul"
input_player15_gun_offscreen_shot_mbtn = "nul"
input_player15_gun_select = "nul"
input_player15_gun_select_axis = "nul"
input_player15_gun_select_btn = "nul"
input_player15_gun_select_mbtn = "nul"
input_player15_gun_start = "nul"
input_player15_gun_start_axis = "nul"
input_player15_gun_start_btn = "nul"
input_player15_gun_start_mbtn = "nul"
input_player15_gun_trigger = "nul"
input_player15_gun_trigger_axis = "nul"
input_player15_gun_trigger_btn = "nul"
input_player15_gun_trigger_mbtn = "nul"
input_player15_joypad_index = "14"
input_player15_l = "nul"
input_player15_l2 = "nul"
input_player15_l2_axis = "nul"
input_player15_l2_btn = "nul"
input_player15_l2_mbtn = "nul"
input_player15_l3 = "nul"
input_player15_l3_axis = "nul"
input_player15_l3_btn = "nul"
input_player15_l3_mbtn = "nul"
input_player15_l_axis = "nul"
input_player15_l_btn = "nul"
input_player15_l_mbtn = "nul"
input_player15_l_x_minus = "nul"
input_player15_l_x_minus_axis = "nul"
input_player15_l_x_minus_btn = "nul"
input_player15_l_x_minus_mbtn = "nul"
input_player15_l_x_plus = "nul"
input_player15_l_x_plus_axis = "nul"
input_player15_l_x_plus_btn = "nul"
input_player15_l_x_plus_mbtn = "nul"
input_player15_l_y_minus = "nul"
input_player15_l_y_minus_axis = "nul"
input_player15_l_y_minus_btn = "nul"
input_player15_l_y_minus_mbtn = "nul"
input_player15_l_y_plus = "nul"
input_player15_l_y_plus_axis = "nul"
input_player15_l_y_plus_btn = "nul"
input_player15_l_y_plus_mbtn = "nul"
input_player15_left = "nul"
input_player15_left_axis = "nul"
input_player15_left_btn = "nul"
input_player15_left_mbtn = "nul"
input_player15_mouse_index = "0"
input_player15_r = "nul"
input_player15_r2 = "nul"
input_player15_r2_axis = "nul"
input_player15_r2_btn = "nul"
input_player15_r2_mbtn = "nul"
input_player15_r3 = "nul"
input_player15_r3_axis = "nul"
input_player15_r3_btn = "nul"
input_player15_r3_mbtn = "nul"
input_player15_r_axis = "nul"
input_player15_r_btn = "nul"
input_player15_r_mbtn = "nul"
input_player15_r_x_minus = "nul"
input_player15_r_x_minus_axis = "nul"
input_player15_r_x_minus_btn = "nul"
input_player15_r_x_minus_mbtn = "nul"
input_player15_r_x_plus = "nul"
input_player15_r_x_plus_axis = "nul"
input_player15_r_x_plus_btn = "nul"
input_player15_r_x_plus_mbtn = "nul"
input_player15_r_y_minus = "nul"
input_player15_r_y_minus_axis = "nul"
input_player15_r_y_minus_btn = "nul"
input_player15_r_y_minus_mbtn = "nul"
input_player15_r_y_plus = "nul"
input_player15_r_y_plus_axis = "nul"
input_player15_r_y_plus_btn = "nul"
input_player15_r_y_plus_mbtn = "nul"
input_player15_right = "nul"
input_player15_right_axis = "nul"
input_player15_right_btn = "nul"
input_player15_right_mbtn = "nul"
input_player15_select = "nul"
input_player15_select_axis = "nul"
input_player15_select_btn = "nul"
input_player15_select_mbtn = "nul"
input_player15_start = "nul"
input_player15_start_axis = "nul"
input_player15_start_btn = "nul"
input_player15_start_mbtn = "nul"
input_player15_turbo = "nul"
input_player15_turbo_axis = "nul"
input_player15_turbo_btn = "nul"
input_player15_turbo_mbtn = "nul"
input_player15_up = "nul"
input_player15_up_axis = "nul"
input_player15_up_btn = "nul"
input_player15_up_mbtn = "nul"
input_player15_x = "nul"
input_player15_x_axis = "nul"
input_player15_x_btn = "nul"
input_player15_x_mbtn = "nul"
input_player15_y = "nul"
input_player15_y_axis = "nul"
input_player15_y_btn = "nul"
input_player15_y_mbtn = "nul"
input_player16_a = "nul"
input_player16_a_axis = "nul"
input_player16_a_btn = "nul"
input_player16_a_mbtn = "nul"
input_player16_analog_dpad_mode = "0"
input_player16_b = "nul"
input_player16_b_axis = "nul"
input_player16_b_btn = "nul"
input_player16_b_mbtn = "nul"
input_player16_down = "nul"
input_player16_down_axis = "nul"
input_player16_down_btn = "nul"
input_player16_down_mbtn = "nul"
input_player16_gun_aux_a = "nul"
input_player16_gun_aux_a_axis = "nul"
input_player16_gun_aux_a_btn = "nul"
input_player16_gun_aux_a_mbtn = "nul"
input_player16_gun_aux_b = "nul"
input_player16_gun_aux_b_axis = "nul"
input_player16_gun_aux_b_btn = "nul"
input_player16_gun_aux_b_mbtn = "nul"
input_player16_gun_aux_c = "nul"
input_player16_gun_aux_c_axis = "nul"
input_player16_gun_aux_c_btn = "nul"
input_player16_gun_aux_c_mbtn = "nul"
input_player16_gun_dpad_down = "nul"
input_player16_gun_dpad_down_axis = "nul"
input_player16_gun_dpad_down_btn = "nul"
input_player16_gun_dpad_down_mbtn = "nul"
input_player16_gun_dpad_left = "nul"
input_player16_gun_dpad_left_axis = "nul"
input_player16_gun_dpad_left_btn = "nul"
input_player16_gun_dpad_left_mbtn = "nul"
input_player16_gun_dpad_right = "nul"
input_player16_gun_dpad_right_axis = "nul"
input_player16_gun_dpad_right_btn = "nul"
input_player16_gun_dpad_right_mbtn = "nul"
input_player16_gun_dpad_up = "nul"
input_player16_gun_dpad_up_axis = "nul"
input_player16_gun_dpad_up_btn = "nul"
input_player16_gun_dpad_up_mbtn = "nul"
input_player16_gun_offscreen_shot = "nul"
input_player16_gun_offscreen_shot_axis = "nul"
input_player16_gun_offscreen_shot_btn = "nul"
input_player16_gun_offscreen_shot_mbtn = "nul"
input_player16_gun_select = "nul"
input_player16_gun_select_axis = "nul"
input_player16_gun_select_btn = "nul"
input_player16_gun_select_mbtn = "nul"
input_player16_gun_start = "nul"
input_player16_gun_start_axis = "nul"
input_player16_gun_start_btn = "nul"
input_player16_gun_start_mbtn = "nul"
input_player16_gun_trigger = "nul"
input_player16_gun_trigger_axis = "nul"
input_player16_gun_trigger_btn = "nul"
input_player16_gun_trigger_mbtn = "nul"
input_player16_joypad_index = "15"
input_player16_l = "nul"
input_player16_l2 = "nul"
input_player16_l2_axis = "nul"
input_player16_l2_btn = "nul"
input_player16_l2_mbtn = "nul"
input_player16_l3 = "nul"
input_player16_l3_axis = "nul"
input_player16_l3_btn = "nul"
input_player16_l3_mbtn = "nul"
input_player16_l_axis = "nul"
input_player16_l_btn = "nul"
input_player16_l_mbtn = "nul"
input_player16_l_x_minus = "nul"
input_player16_l_x_minus_axis = "nul"
input_player16_l_x_minus_btn = "nul"
input_player16_l_x_minus_mbtn = "nul"
input_player16_l_x_plus = "nul"
input_player16_l_x_plus_axis = "nul"
input_player16_l_x_plus_btn = "nul"
input_player16_l_x_plus_mbtn = "nul"
input_player16_l_y_minus = "nul"
input_player16_l_y_minus_axis = "nul"
input_player16_l_y_minus_btn = "nul"
input_player16_l_y_minus_mbtn = "nul"
input_player16_l_y_plus = "nul"
input_player16_l_y_plus_axis = "nul"
input_player16_l_y_plus_btn = "nul"
input_player16_l_y_plus_mbtn = "nul"
input_player16_left = "nul"
input_player16_left_axis = "nul"
input_player16_left_btn = "nul"
input_player16_left_mbtn = "nul"
input_player16_mouse_index = "0"
input_player16_r = "nul"
input_player16_r2 = "nul"
input_player16_r2_axis = "nul"
input_player16_r2_btn = "nul"
input_player16_r2_mbtn = "nul"
input_player16_r3 = "nul"
input_player16_r3_axis = "nul"
input_player16_r3_btn = "nul"
input_player16_r3_mbtn = "nul"
input_player16_r_axis = "nul"
input_player16_r_btn = "nul"
input_player16_r_mbtn = "nul"
input_player16_r_x_minus = "nul"
input_player16_r_x_minus_axis = "nul"
input_player16_r_x_minus_btn = "nul"
input_player16_r_x_minus_mbtn = "nul"
input_player16_r_x_plus = "nul"
input_player16_r_x_plus_axis = "nul"
input_player16_r_x_plus_btn = "nul"
input_player16_r_x_plus_mbtn = "nul"
input_player16_r_y_minus = "nul"
input_player16_r_y_minus_axis = "nul"
input_player16_r_y_minus_btn = "nul"
input_player16_r_y_minus_mbtn = "nul"
input_player16_r_y_plus = "nul"
input_player16_r_y_plus_axis = "nul"
input_player16_r_y_plus_btn = "nul"
input_player16_r_y_plus_mbtn = "nul"
input_player16_right = "nul"
input_player16_right_axis = "nul"
input_player16_right_btn = "nul"
input_player16_right_mbtn = "nul"
input_player16_select = "nul"
input_player16_select_axis = "nul"
input_player16_select_btn = "nul"
input_player16_select_mbtn = "nul"
input_player16_start = "nul"
input_player16_start_axis = "nul"
input_player16_start_btn = "nul"
input_player16_start_mbtn = "nul"
input_player16_turbo = "nul"
input_player16_turbo_axis = "nul"
input_player16_turbo_btn = "nul"
input_player16_turbo_mbtn = "nul"
input_player16_up = "nul"
input_player16_up_axis = "nul"
input_player16_up_btn = "nul"
input_player16_up_mbtn = "nul"
input_player16_x = "nul"
input_player16_x_axis = "nul"
input_player16_x_btn = "nul"
input_player16_x_mbtn = "nul"
input_player16_y = "nul"
input_player16_y_axis = "nul"
input_player16_y_btn = "nul"
input_player16_y_mbtn = "nul"
input_player1_a = "x"
input_player1_a_axis = "nul"
input_player1_a_btn = "nul"
input_player1_a_mbtn = "nul"
input_player1_analog_dpad_mode = "0"
input_player1_b = "z"
input_player1_b_axis = "nul"
input_player1_b_btn = "nul"
input_player1_b_mbtn = "nul"
input_player1_down = "down"
input_player1_down_axis = "nul"
input_player1_down_btn = "nul"
input_player1_down_mbtn = "nul"
input_player1_gun_aux_a = "nul"
input_player1_gun_aux_a_axis = "nul"
input_player1_gun_aux_a_btn = "nul"
input_player1_gun_aux_a_mbtn = "nul"
input_player1_gun_aux_b = "nul"
input_player1_gun_aux_b_axis = "nul"
input_player1_gun_aux_b_btn = "nul"
input_player1_gun_aux_b_mbtn = "nul"
input_player1_gun_aux_c = "nul"
input_player1_gun_aux_c_axis = "nul"
input_player1_gun_aux_c_btn = "nul"
input_player1_gun_aux_c_mbtn = "nul"
input_player1_gun_dpad_down = "nul"
input_player1_gun_dpad_down_axis = "nul"
input_player1_gun_dpad_down_btn = "nul"
input_player1_gun_dpad_down_mbtn = "nul"
input_player1_gun_dpad_left = "nul"
input_player1_gun_dpad_left_axis = "nul"
input_player1_gun_dpad_left_btn = "nul"
input_player1_gun_dpad_left_mbtn = "nul"
input_player1_gun_dpad_right = "nul"
input_player1_gun_dpad_right_axis = "nul"
input_player1_gun_dpad_right_btn = "nul"
input_player1_gun_dpad_right_mbtn = "nul"
input_player1_gun_dpad_up = "nul"
input_player1_gun_dpad_up_axis = "nul"
input_player1_gun_dpad_up_btn = "nul"
input_player1_gun_dpad_up_mbtn = "nul"
input_player1_gun_offscreen_shot = "nul"
input_player1_gun_offscreen_shot_axis = "nul"
input_player1_gun_offscreen_shot_btn = "nul"
input_player1_gun_offscreen_shot_mbtn = "nul"
input_player1_gun_select = "nul"
input_player1_gun_select_axis = "nul"
input_player1_gun_select_btn = "nul"
input_player1_gun_select_mbtn = "nul"
input_player1_gun_start = "nul"
input_player1_gun_start_axis = "nul"
input_player1_gun_start_btn = "nul"
input_player1_gun_start_mbtn = "nul"
input_player1_gun_trigger = "nul"
input_player1_gun_trigger_axis = "nul"
input_player1_gun_trigger_btn = "nul"
input_player1_gun_trigger_mbtn = "nul"
input_player1_joypad_index = "0"
input_player1_l = "q"
input_player1_l2 = "nul"
input_player1_l2_axis = "nul"
input_player1_l2_btn = "nul"
input_player1_l2_mbtn = "nul"
input_player1_l3 = "nul"
input_player1_l3_axis = "nul"
input_player1_l3_btn = "nul"
input_player1_l3_mbtn = "nul"
input_player1_l_axis = "nul"
input_player1_l_btn = "nul"
input_player1_l_mbtn = "nul"
input_player1_l_x_minus = "nul"
input_player1_l_x_minus_axis = "nul"
input_player1_l_x_minus_btn = "nul"
input_player1_l_x_minus_mbtn = "nul"
input_player1_l_x_plus = "nul"
input_player1_l_x_plus_axis = "nul"
input_player1_l_x_plus_btn = "nul"
input_player1_l_x_plus_mbtn = "nul"
input_player1_l_y_minus = "nul"
input_player1_l_y_minus_axis = "nul"
input_player1_l_y_minus_btn = "nul"
input_player1_l_y_minus_mbtn = "nul"
input_player1_l_y_plus = "nul"
input_player1_l_y_plus_axis = "nul"
input_player1_l_y_plus_btn = "nul"
input_player1_l_y_plus_mbtn = "nul"
input_player1_left = "left"
input_player1_left_axis = "nul"
input_player1_left_btn = "nul"
input_player1_left_mbtn = "nul"
input_player1_mouse_index = "0"
input_player1_r = "w"
input_player1_r2 = "nul"
input_player1_r2_axis = "nul"
input_player1_r2_btn = "nul"
input_player1_r2_mbtn = "nul"
input_player1_r3 = "nul"
input_player1_r3_axis = "nul"
input_player1_r3_btn = "nul"
input_player1_r3_mbtn = "nul"
input_player1_r_axis = "nul"
input_player1_r_btn = "nul"
input_player1_r_mbtn = "nul"
input_player1_r_x_minus = "nul"
input_player1_r_x_minus_axis = "nul"
input_player1_r_x_minus_btn = "nul"
input_player1_r_x_minus_mbtn = "nul"
input_player1_r_x_plus = "nul"
input_player1_r_x_plus_axis = "nul"
input_player1_r_x_plus_btn = "nul"
input_player1_r_x_plus_mbtn = "nul"
input_player1_r_y_minus = "nul"
input_player1_r_y_minus_axis = "nul"
input_player1_r_y_minus_btn = "nul"
input_player1_r_y_minus_mbtn = "nul"
input_player1_r_y_plus = "nul"
input_player1_r_y_plus_axis = "nul"
input_player1_r_y_plus_btn = "nul"
input_player1_r_y_plus_mbtn = "nul"
input_player1_right = "right"
input_player1_right_axis = "nul"
input_player1_right_btn = "nul"
input_player1_right_mbtn = "nul"
input_player1_select = "rshift"
input_player1_select_axis = "nul"
input_player1_select_btn = "nul"
input_player1_select_mbtn = "nul"
input_player1_start = "enter"
input_player1_start_axis = "nul"
input_player1_start_btn = "nul"
input_player1_start_mbtn = "nul"
input_player1_turbo = "nul"
input_player1_turbo_axis = "nul"
input_player1_turbo_btn = "nul"
input_player1_turbo_mbtn = "nul"
input_player1_up = "up"
input_player1_up_axis = "nul"
input_player1_up_btn = "nul"
input_player1_up_mbtn = "nul"
input_player1_x = "s"
input_player1_x_axis = "nul"
input_player1_x_btn = "nul"
input_player1_x_mbtn = "nul"
input_player1_y = "a"
input_player1_y_axis = "nul"
input_player1_y_btn = "nul"
input_player1_y_mbtn = "nul"
input_player2_a = "nul"
input_player2_a_axis = "nul"
input_player2_a_btn = "nul"
input_player2_a_mbtn = "nul"
input_player2_analog_dpad_mode = "0"
input_player2_b = "nul"
input_player2_b_axis = "nul"
input_player2_b_btn = "nul"
input_player2_b_mbtn = "nul"
input_player2_down = "nul"
input_player2_down_axis = "nul"
input_player2_down_btn = "nul"
input_player2_down_mbtn = "nul"
input_player2_gun_aux_a = "nul"
input_player2_gun_aux_a_axis = "nul"
input_player2_gun_aux_a_btn = "nul"
input_player2_gun_aux_a_mbtn = "nul"
input_player2_gun_aux_b = "nul"
input_player2_gun_aux_b_axis = "nul"
input_player2_gun_aux_b_btn = "nul"
input_player2_gun_aux_b_mbtn = "nul"
input_player2_gun_aux_c = "nul"
input_player2_gun_aux_c_axis = "nul"
input_player2_gun_aux_c_btn = "nul"
input_player2_gun_aux_c_mbtn = "nul"
input_player2_gun_dpad_down = "nul"
input_player2_gun_dpad_down_axis = "nul"
input_player2_gun_dpad_down_btn = "nul"
input_player2_gun_dpad_down_mbtn = "nul"
input_player2_gun_dpad_left = "nul"
input_player2_gun_dpad_left_axis = "nul"
input_player2_gun_dpad_left_btn = "nul"
input_player2_gun_dpad_left_mbtn = "nul"
input_player2_gun_dpad_right = "nul"
input_player2_gun_dpad_right_axis = "nul"
input_player2_gun_dpad_right_btn = "nul"
input_player2_gun_dpad_right_mbtn = "nul"
input_player2_gun_dpad_up = "nul"
input_player2_gun_dpad_up_axis = "nul"
input_player2_gun_dpad_up_btn = "nul"
input_player2_gun_dpad_up_mbtn = "nul"
input_player2_gun_offscreen_shot = "nul"
input_player2_gun_offscreen_shot_axis = "nul"
input_player2_gun_offscreen_shot_btn = "nul"
input_player2_gun_offscreen_shot_mbtn = "nul"
input_player2_gun_select = "nul"
input_player2_gun_select_axis = "nul"
input_player2_gun_select_btn = "nul"
input_player2_gun_select_mbtn = "nul"
input_player2_gun_start = "nul"
input_player2_gun_start_axis = "nul"
input_player2_gun_start_btn = "nul"
input_player2_gun_start_mbtn = "nul"
input_player2_gun_trigger = "nul"
input_player2_gun_trigger_axis = "nul"
input_player2_gun_trigger_btn = "nul"
input_player2_gun_trigger_mbtn = "nul"
input_player2_joypad_index = "1"
input_player2_l = "nul"
input_player2_l2 = "nul"
input_player2_l2_axis = "nul"
input_player2_l2_btn = "nul"
input_player2_l2_mbtn = "nul"
input_player2_l3 = "nul"
input_player2_l3_axis = "nul"
input_player2_l3_btn = "nul"
input_player2_l3_mbtn = "nul"
input_player2_l_axis = "nul"
input_player2_l_btn = "nul"
input_player2_l_mbtn = "nul"
input_player2_l_x_minus = "nul"
input_player2_l_x_minus_axis = "nul"
input_player2_l_x_minus_btn = "nul"
input_player2_l_x_minus_mbtn = "nul"
input_player2_l_x_plus = "nul"
input_player2_l_x_plus_axis = "nul"
input_player2_l_x_plus_btn = "nul"
input_player2_l_x_plus_mbtn = "nul"
input_player2_l_y_minus = "nul"
input_player2_l_y_minus_axis = "nul"
input_player2_l_y_minus_btn = "nul"
input_player2_l_y_minus_mbtn = "nul"
input_player2_l_y_plus = "nul"
input_player2_l_y_plus_axis = "nul"
input_player2_l_y_plus_btn = "nul"
input_player2_l_y_plus_mbtn = "nul"
input_player2_left = "nul"
input_player2_left_axis = "nul"
input_player2_left_btn = "nul"
input_player2_left_mbtn = "nul"
input_player2_mouse_index = "0"
input_player2_r = "nul"
input_player2_r2 = "nul"
input_player2_r2_axis = "nul"
input_player2_r2_btn = "nul"
input_player2_r2_mbtn = "nul"
input_player2_r3 = "nul"
input_player2_r3_axis = "nul"
input_player2_r3_btn = "nul"
input_player2_r3_mbtn = "nul"
input_player2_r_axis = "nul"
input_player2_r_btn = "nul"
input_player2_r_mbtn = "nul"
input_player2_r_x_minus = "nul"
input_player2_r_x_minus_axis = "nul"
input_player2_r_x_minus_btn = "nul"
input_player2_r_x_minus_mbtn = "nul"
input_player2_r_x_plus = "nul"
input_player2_r_x_plus_axis = "nul"
input_player2_r_x_plus_btn = "nul"
input_player2_r_x_plus_mbtn = "nul"
input_player2_r_y_minus = "nul"
input_player2_r_y_minus_axis = "nul"
input_player2_r_y_minus_btn = "nul"
input_player2_r_y_minus_mbtn = "nul"
input_player2_r_y_plus = "nul"
input_player2_r_y_plus_axis = "nul"
input_player2_r_y_plus_btn = "nul"
input_player2_r_y_plus_mbtn = "nul"
input_player2_right = "nul"
input_player2_right_axis = "nul"
input_player2_right_btn = "nul"
input_player2_right_mbtn = "nul"
input_player2_select = "nul"
input_player2_select_axis = "nul"
input_player2_select_btn = "nul"
input_player2_select_mbtn = "nul"
input_player2_start = "nul"
input_player2_start_axis = "nul"
input_player2_start_btn = "nul"
input_player2_start_mbtn = "nul"
input_player2_turbo = "nul"
input_player2_turbo_axis = "nul"
input_player2_turbo_btn = "nul"
input_player2_turbo_mbtn = "nul"
input_player2_up = "nul"
input_player2_up_axis = "nul"
input_player2_up_btn = "nul"
input_player2_up_mbtn = "nul"
input_player2_x = "nul"
input_player2_x_axis = "nul"
input_player2_x_btn = "nul"
input_player2_x_mbtn = "nul"
input_player2_y = "nul"
input_player2_y_axis = "nul"
input_player2_y_btn = "nul"
input_player2_y_mbtn = "nul"
input_player3_a = "nul"
input_player3_a_axis = "nul"
input_player3_a_btn = "nul"
input_player3_a_mbtn = "nul"
input_player3_analog_dpad_mode = "0"
input_player3_b = "nul"
input_player3_b_axis = "nul"
input_player3_b_btn = "nul"
input_player3_b_mbtn = "nul"
input_player3_down = "nul"
input_player3_down_axis = "nul"
input_player3_down_btn = "nul"
input_player3_down_mbtn = "nul"
input_player3_gun_aux_a = "nul"
input_player3_gun_aux_a_axis = "nul"
input_player3_gun_aux_a_btn = "nul"
input_player3_gun_aux_a_mbtn = "nul"
input_player3_gun_aux_b = "nul"
input_player3_gun_aux_b_axis = "nul"
input_player3_gun_aux_b_btn = "nul"
input_player3_gun_aux_b_mbtn = "nul"
input_player3_gun_aux_c = "nul"
input_player3_gun_aux_c_axis = "nul"
input_player3_gun_aux_c_btn = "nul"
input_player3_gun_aux_c_mbtn = "nul"
input_player3_gun_dpad_down = "nul"
input_player3_gun_dpad_down_axis = "nul"
input_player3_gun_dpad_down_btn = "nul"
input_player3_gun_dpad_down_mbtn = "nul"
input_player3_gun_dpad_left = "nul"
input_player3_gun_dpad_left_axis = "nul"
input_player3_gun_dpad_left_btn = "nul"
input_player3_gun_dpad_left_mbtn = "nul"
input_player3_gun_dpad_right = "nul"
input_player3_gun_dpad_right_axis = "nul"
input_player3_gun_dpad_right_btn = "nul"
input_player3_gun_dpad_right_mbtn = "nul"
input_player3_gun_dpad_up = "nul"
input_player3_gun_dpad_up_axis = "nul"
input_player3_gun_dpad_up_btn = "nul"
input_player3_gun_dpad_up_mbtn = "nul"
input_player3_gun_offscreen_shot = "nul"
input_player3_gun_offscreen_shot_axis = "nul"
input_player3_gun_offscreen_shot_btn = "nul"
input_player3_gun_offscreen_shot_mbtn = "nul"
input_player3_gun_select = "nul"
input_player3_gun_select_axis = "nul"
input_player3_gun_select_btn = "nul"
input_player3_gun_select_mbtn = "nul"
input_player3_gun_start = "nul"
input_player3_gun_start_axis = "nul"
input_player3_gun_start_btn = "nul"
input_player3_gun_start_mbtn = "nul"
input_player3_gun_trigger = "nul"
input_player3_gun_trigger_axis = "nul"
input_player3_gun_trigger_btn = "nul"
input_player3_gun_trigger_mbtn = "nul"
input_player3_joypad_index = "2"
input_player3_l = "nul"
input_player3_l2 = "nul"
input_player3_l2_axis = "nul"
input_player3_l2_btn = "nul"
input_player3_l2_mbtn = "nul"
input_player3_l3 = "nul"
input_player3_l3_axis = "nul"
input_player3_l3_btn = "nul"
input_player3_l3_mbtn = "nul"
input_player3_l_axis = "nul"
input_player3_l_btn = "nul"
input_player3_l_mbtn = "nul"
input_player3_l_x_minus = "nul"
input_player3_l_x_minus_axis = "nul"
input_player3_l_x_minus_btn = "nul"
input_player3_l_x_minus_mbtn = "nul"
input_player3_l_x_plus = "nul"
input_player3_l_x_plus_axis = "nul"
input_player3_l_x_plus_btn = "nul"
input_player3_l_x_plus_mbtn = "nul"
input_player3_l_y_minus = "nul"
input_player3_l_y_minus_axis = "nul"
input_player3_l_y_minus_btn = "nul"
input_player3_l_y_minus_mbtn = "nul"
input_player3_l_y_plus = "nul"
input_player3_l_y_plus_axis = "nul"
input_player3_l_y_plus_btn = "nul"
input_player3_l_y_plus_mbtn = "nul"
input_player3_left = "nul"
input_player3_left_axis = "nul"
input_player3_left_btn = "nul"
input_player3_left_mbtn = "nul"
input_player3_mouse_index = "0"
input_player3_r = "nul"
input_player3_r2 = "nul"
input_player3_r2_axis = "nul"
input_player3_r2_btn = "nul"
input_player3_r2_mbtn = "nul"
input_player3_r3 = "nul"
input_player3_r3_axis = "nul"
input_player3_r3_btn = "nul"
input_player3_r3_mbtn = "nul"
input_player3_r_axis = "nul"
input_player3_r_btn = "nul"
input_player3_r_mbtn = "nul"
input_player3_r_x_minus = "nul"
input_player3_r_x_minus_axis = "nul"
input_player3_r_x_minus_btn = "nul"
input_player3_r_x_minus_mbtn = "nul"
input_player3_r_x_plus = "nul"
input_player3_r_x_plus_axis = "nul"
input_player3_r_x_plus_btn = "nul"
input_player3_r_x_plus_mbtn = "nul"
input_player3_r_y_minus = "nul"
input_player3_r_y_minus_axis = "nul"
input_player3_r_y_minus_btn = "nul"
input_player3_r_y_minus_mbtn = "nul"
input_player3_r_y_plus = "nul"
input_player3_r_y_plus_axis = "nul"
input_player3_r_y_plus_btn = "nul"
input_player3_r_y_plus_mbtn = "nul"
input_player3_right = "nul"
input_player3_right_axis = "nul"
input_player3_right_btn = "nul"
input_player3_right_mbtn = "nul"
input_player3_select = "nul"
input_player3_select_axis = "nul"
input_player3_select_btn = "nul"
input_player3_select_mbtn = "nul"
input_player3_start = "nul"
input_player3_start_axis = "nul"
input_player3_start_btn = "nul"
input_player3_start_mbtn = "nul"
input_player3_turbo = "nul"
input_player3_turbo_axis = "nul"
input_player3_turbo_btn = "nul"
input_player3_turbo_mbtn = "nul"
input_player3_up = "nul"
input_player3_up_axis = "nul"
input_player3_up_btn = "nul"
input_player3_up_mbtn = "nul"
input_player3_x = "nul"
input_player3_x_axis = "nul"
input_player3_x_btn = "nul"
input_player3_x_mbtn = "nul"
input_player3_y = "nul"
input_player3_y_axis = "nul"
input_player3_y_btn = "nul"
input_player3_y_mbtn = "nul"
input_player4_a = "nul"
input_player4_a_axis = "nul"
input_player4_a_btn = "nul"
input_player4_a_mbtn = "nul"
input_player4_analog_dpad_mode = "0"
input_player4_b = "nul"
input_player4_b_axis = "nul"
input_player4_b_btn = "nul"
input_player4_b_mbtn = "nul"
input_player4_down = "nul"
input_player4_down_axis = "nul"
input_player4_down_btn = "nul"
input_player4_down_mbtn = "nul"
input_player4_gun_aux_a = "nul"
input_player4_gun_aux_a_axis = "nul"
input_player4_gun_aux_a_btn = "nul"
input_player4_gun_aux_a_mbtn = "nul"
input_player4_gun_aux_b = "nul"
input_player4_gun_aux_b_axis = "nul"
input_player4_gun_aux_b_btn = "nul"
input_player4_gun_aux_b_mbtn = "nul"
input_player4_gun_aux_c = "nul"
input_player4_gun_aux_c_axis = "nul"
input_player4_gun_aux_c_btn = "nul"
input_player4_gun_aux_c_mbtn = "nul"
input_player4_gun_dpad_down = "nul"
input_player4_gun_dpad_down_axis = "nul"
input_player4_gun_dpad_down_btn = "nul"
input_player4_gun_dpad_down_mbtn = "nul"
input_player4_gun_dpad_left = "nul"
input_player4_gun_dpad_left_axis = "nul"
input_player4_gun_dpad_left_btn = "nul"
input_player4_gun_dpad_left_mbtn = "nul"
input_player4_gun_dpad_right = "nul"
input_player4_gun_dpad_right_axis = "nul"
input_player4_gun_dpad_right_btn = "nul"
input_player4_gun_dpad_right_mbtn = "nul"
input_player4_gun_dpad_up = "nul"
input_player4_gun_dpad_up_axis = "nul"
input_player4_gun_dpad_up_btn = "nul"
input_player4_gun_dpad_up_mbtn = "nul"
input_player4_gun_offscreen_shot = "nul"
input_player4_gun_offscreen_shot_axis = "nul"
input_player4_gun_offscreen_shot_btn = "nul"
input_player4_gun_offscreen_shot_mbtn = "nul"
input_player4_gun_select = "nul"
input_player4_gun_select_axis = "nul"
input_player4_gun_select_btn = "nul"
input_player4_gun_select_mbtn = "nul"
input_player4_gun_start = "nul"
input_player4_gun_start_axis = "nul"
input_player4_gun_start_btn = "nul"
input_player4_gun_start_mbtn = "nul"
input_player4_gun_trigger = "nul"
input_player4_gun_trigger_axis = "nul"
input_player4_gun_trigger_btn = "nul"
input_player4_gun_trigger_mbtn = "nul"
input_player4_joypad_index = "3"
input_player4_l = "nul"
input_player4_l2 = "nul"
input_player4_l2_axis = "nul"
input_player4_l2_btn = "nul"
input_player4_l2_mbtn = "nul"
input_player4_l3 = "nul"
input_player4_l3_axis = "nul"
input_player4_l3_btn = "nul"
input_player4_l3_mbtn = "nul"
input_player4_l_axis = "nul"
input_player4_l_btn = "nul"
input_player4_l_mbtn = "nul"
input_player4_l_x_minus = "nul"
input_player4_l_x_minus_axis = "nul"
input_player4_l_x_minus_btn = "nul"
input_player4_l_x_minus_mbtn = "nul"
input_player4_l_x_plus = "nul"
input_player4_l_x_plus_axis = "nul"
input_player4_l_x_plus_btn = "nul"
input_player4_l_x_plus_mbtn = "nul"
input_player4_l_y_minus = "nul"
input_player4_l_y_minus_axis = "nul"
input_player4_l_y_minus_btn = "nul"
input_player4_l_y_minus_mbtn = "nul"
input_player4_l_y_plus = "nul"
input_player4_l_y_plus_axis = "nul"
input_player4_l_y_plus_btn = "nul"
input_player4_l_y_plus_mbtn = "nul"
input_player4_left = "nul"
input_player4_left_axis = "nul"
input_player4_left_btn = "nul"
input_player4_left_mbtn = "nul"
input_player4_mouse_index = "0"
input_player4_r = "nul"
input_player4_r2 = "nul"
input_player4_r2_axis = "nul"
input_player4_r2_btn = "nul"
input_player4_r2_mbtn = "nul"
input_player4_r3 = "nul"
input_player4_r3_axis = "nul"
input_player4_r3_btn = "nul"
input_player4_r3_mbtn = "nul"
input_player4_r_axis = "nul"
input_player4_r_btn = "nul"
input_player4_r_mbtn = "nul"
input_player4_r_x_minus = "nul"
input_player4_r_x_minus_axis = "nul"
input_player4_r_x_minus_btn = "nul"
input_player4_r_x_minus_mbtn = "nul"
input_player4_r_x_plus = "nul"
input_player4_r_x_plus_axis = "nul"
input_player4_r_x_plus_btn = "nul"
input_player4_r_x_plus_mbtn = "nul"
input_player4_r_y_minus = "nul"
input_player4_r_y_minus_axis = "nul"
input_player4_r_y_minus_btn = "nul"
input_player4_r_y_minus_mbtn = "nul"
input_player4_r_y_plus = "nul"
input_player4_r_y_plus_axis = "nul"
input_player4_r_y_plus_btn = "nul"
input_player4_r_y_plus_mbtn = "nul"
input_player4_right = "nul"
input_player4_right_axis = "nul"
input_player4_right_btn = "nul"
input_player4_right_mbtn = "nul"
input_player4_select = "nul"
input_player4_select_axis = "nul"
input_player4_select_btn = "nul"
input_player4_select_mbtn = "nul"
input_player4_start = "nul"
input_player4_start_axis = "nul"
input_player4_start_btn = "nul"
input_player4_start_mbtn = "nul"
input_player4_turbo = "nul"
input_player4_turbo_axis = "nul"
input_player4_turbo_btn = "nul"
input_player4_turbo_mbtn = "nul"
input_player4_up = "nul"
input_player4_up_axis = "nul"
input_player4_up_btn = "nul"
input_player4_up_mbtn = "nul"
input_player4_x = "nul"
input_player4_x_axis = "nul"
input_player4_x_btn = "nul"
input_player4_x_mbtn = "nul"
input_player4_y = "nul"
input_player4_y_axis = "nul"
input_player4_y_btn = "nul"
input_player4_y_mbtn = "nul"
input_player5_a = "nul"
input_player5_a_axis = "nul"
input_player5_a_btn = "nul"
input_player5_a_mbtn = "nul"
input_player5_analog_dpad_mode = "0"
input_player5_b = "nul"
input_player5_b_axis = "nul"
input_player5_b_btn = "nul"
input_player5_b_mbtn = "nul"
input_player5_down = "nul"
input_player5_down_axis = "nul"
input_player5_down_btn = "nul"
input_player5_down_mbtn = "nul"
input_player5_gun_aux_a = "nul"
input_player5_gun_aux_a_axis = "nul"
input_player5_gun_aux_a_btn = "nul"
input_player5_gun_aux_a_mbtn = "nul"
input_player5_gun_aux_b = "nul"
input_player5_gun_aux_b_axis = "nul"
input_player5_gun_aux_b_btn = "nul"
input_player5_gun_aux_b_mbtn = "nul"
input_player5_gun_aux_c = "nul"
input_player5_gun_aux_c_axis = "nul"
input_player5_gun_aux_c_btn = "nul"
input_player5_gun_aux_c_mbtn = "nul"
input_player5_gun_dpad_down = "nul"
input_player5_gun_dpad_down_axis = "nul"
input_player5_gun_dpad_down_btn = "nul"
input_player5_gun_dpad_down_mbtn = "nul"
input_player5_gun_dpad_left = "nul"
input_player5_gun_dpad_left_axis = "nul"
input_player5_gun_dpad_left_btn = "nul"
input_player5_gun_dpad_left_mbtn = "nul"
input_player5_gun_dpad_right = "nul"
input_player5_gun_dpad_right_axis = "nul"
input_player5_gun_dpad_right_btn = "nul"
input_player5_gun_dpad_right_mbtn = "nul"
input_player5_gun_dpad_up = "nul"
input_player5_gun_dpad_up_axis = "nul"
input_player5_gun_dpad_up_btn = "nul"
input_player5_gun_dpad_up_mbtn = "nul"
input_player5_gun_offscreen_shot = "nul"
input_player5_gun_offscreen_shot_axis = "nul"
input_player5_gun_offscreen_shot_btn = "nul"
input_player5_gun_offscreen_shot_mbtn = "nul"
input_player5_gun_select = "nul"
input_player5_gun_select_axis = "nul"
input_player5_gun_select_btn = "nul"
input_player5_gun_select_mbtn = "nul"
input_player5_gun_start = "nul"
input_player5_gun_start_axis = "nul"
input_player5_gun_start_btn = "nul"
input_player5_gun_start_mbtn = "nul"
input_player5_gun_trigger = "nul"
input_player5_gun_trigger_axis = "nul"
input_player5_gun_trigger_btn = "nul"
input_player5_gun_trigger_mbtn = "nul"
input_player5_joypad_index = "4"
input_player5_l = "nul"
input_player5_l2 = "nul"
input_player5_l2_axis = "nul"
input_player5_l2_btn = "nul"
input_player5_l2_mbtn = "nul"
input_player5_l3 = "nul"
input_player5_l3_axis = "nul"
input_player5_l3_btn = "nul"
input_player5_l3_mbtn = "nul"
input_player5_l_axis = "nul"
input_player5_l_btn = "nul"
input_player5_l_mbtn = "nul"
input_player5_l_x_minus = "nul"
input_player5_l_x_minus_axis = "nul"
input_player5_l_x_minus_btn = "nul"
input_player5_l_x_minus_mbtn = "nul"
input_player5_l_x_plus = "nul"
input_player5_l_x_plus_axis = "nul"
input_player5_l_x_plus_btn = "nul"
input_player5_l_x_plus_mbtn = "nul"
input_player5_l_y_minus = "nul"
input_player5_l_y_minus_axis = "nul"
input_player5_l_y_minus_btn = "nul"
input_player5_l_y_minus_mbtn = "nul"
input_player5_l_y_plus = "nul"
input_player5_l_y_plus_axis = "nul"
input_player5_l_y_plus_btn = "nul"
input_player5_l_y_plus_mbtn = "nul"
input_player5_left = "nul"
input_player5_left_axis = "nul"
input_player5_left_btn = "nul"
input_player5_left_mbtn = "nul"
input_player5_mouse_index = "0"
input_player5_r = "nul"
input_player5_r2 = "nul"
input_player5_r2_axis = "nul"
input_player5_r2_btn = "nul"
input_player5_r2_mbtn = "nul"
input_player5_r3 = "nul"
input_player5_r3_axis = "nul"
input_player5_r3_btn = "nul"
input_player5_r3_mbtn = "nul"
input_player5_r_axis = "nul"
input_player5_r_btn = "nul"
input_player5_r_mbtn = "nul"
input_player5_r_x_minus = "nul"
input_player5_r_x_minus_axis = "nul"
input_player5_r_x_minus_btn = "nul"
input_player5_r_x_minus_mbtn = "nul"
input_player5_r_x_plus = "nul"
input_player5_r_x_plus_axis = "nul"
input_player5_r_x_plus_btn = "nul"
input_player5_r_x_plus_mbtn = "nul"
input_player5_r_y_minus = "nul"
input_player5_r_y_minus_axis = "nul"
input_player5_r_y_minus_btn = "nul"
input_player5_r_y_minus_mbtn = "nul"
input_player5_r_y_plus = "nul"
input_player5_r_y_plus_axis = "nul"
input_player5_r_y_plus_btn = "nul"
input_player5_r_y_plus_mbtn = "nul"
input_player5_right = "nul"
input_player5_right_axis = "nul"
input_player5_right_btn = "nul"
input_player5_right_mbtn = "nul"
input_player5_select = "nul"
input_player5_select_axis = "nul"
input_player5_select_btn = "nul"
input_player5_select_mbtn = "nul"
input_player5_start = "nul"
input_player5_start_axis = "nul"
input_player5_start_btn = "nul"
input_player5_start_mbtn = "nul"
input_player5_turbo = "nul"
input_player5_turbo_axis = "nul"
input_player5_turbo_btn = "nul"
input_player5_turbo_mbtn = "nul"
input_player5_up = "nul"
input_player5_up_axis = "nul"
input_player5_up_btn = "nul"
input_player5_up_mbtn = "nul"
input_player5_x = "nul"
input_player5_x_axis = "nul"
input_player5_x_btn = "nul"
input_player5_x_mbtn = "nul"
input_player5_y = "nul"
input_player5_y_axis = "nul"
input_player5_y_btn = "nul"
input_player5_y_mbtn = "nul"
input_player6_a = "nul"
input_player6_a_axis = "nul"
input_player6_a_btn = "nul"
input_player6_a_mbtn = "nul"
input_player6_analog_dpad_mode = "0"
input_player6_b = "nul"
input_player6_b_axis = "nul"
input_player6_b_btn = "nul"
input_player6_b_mbtn = "nul"
input_player6_down = "nul"
input_player6_down_axis = "nul"
input_player6_down_btn = "nul"
input_player6_down_mbtn = "nul"
input_player6_gun_aux_a = "nul"
input_player6_gun_aux_a_axis = "nul"
input_player6_gun_aux_a_btn = "nul"
input_player6_gun_aux_a_mbtn = "nul"
input_player6_gun_aux_b = "nul"
input_player6_gun_aux_b_axis = "nul"
input_player6_gun_aux_b_btn = "nul"
input_player6_gun_aux_b_mbtn = "nul"
input_player6_gun_aux_c = "nul"
input_player6_gun_aux_c_axis = "nul"
input_player6_gun_aux_c_btn = "nul"
input_player6_gun_aux_c_mbtn = "nul"
input_player6_gun_dpad_down = "nul"
input_player6_gun_dpad_down_axis = "nul"
input_player6_gun_dpad_down_btn = "nul"
input_player6_gun_dpad_down_mbtn = "nul"
input_player6_gun_dpad_left = "nul"
input_player6_gun_dpad_left_axis = "nul"
input_player6_gun_dpad_left_btn = "nul"
input_player6_gun_dpad_left_mbtn = "nul"
input_player6_gun_dpad_right = "nul"
input_player6_gun_dpad_right_axis = "nul"
input_player6_gun_dpad_right_btn = "nul"
input_player6_gun_dpad_right_mbtn = "nul"
input_player6_gun_dpad_up = "nul"
input_player6_gun_dpad_up_axis = "nul"
input_player6_gun_dpad_up_btn = "nul"
input_player6_gun_dpad_up_mbtn = "nul"
input_player6_gun_offscreen_shot = "nul"
input_player6_gun_offscreen_shot_axis = "nul"
input_player6_gun_offscreen_shot_btn = "nul"
input_player6_gun_offscreen_shot_mbtn = "nul"
input_player6_gun_select = "nul"
input_player6_gun_select_axis = "nul"
input_player6_gun_select_btn = "nul"
input_player6_gun_select_mbtn = "nul"
input_player6_gun_start = "nul"
input_player6_gun_start_axis = "nul"
input_player6_gun_start_btn = "nul"
input_player6_gun_start_mbtn = "nul"
input_player6_gun_trigger = "nul"
input_player6_gun_trigger_axis = "nul"
input_player6_gun_trigger_btn = "nul"
input_player6_gun_trigger_mbtn = "nul"
input_player6_joypad_index = "5"
input_player6_l = "nul"
input_player6_l2 = "nul"
input_player6_l2_axis = "nul"
input_player6_l2_btn = "nul"
input_player6_l2_mbtn = "nul"
input_player6_l3 = "nul"
input_player6_l3_axis = "nul"
input_player6_l3_btn = "nul"
input_player6_l3_mbtn = "nul"
input_player6_l_axis = "nul"
input_player6_l_btn = "nul"
input_player6_l_mbtn = "nul"
input_player6_l_x_minus = "nul"
input_player6_l_x_minus_axis = "nul"
input_player6_l_x_minus_btn = "nul"
input_player6_l_x_minus_mbtn = "nul"
input_player6_l_x_plus = "nul"
input_player6_l_x_plus_axis = "nul"
input_player6_l_x_plus_btn = "nul"
input_player6_l_x_plus_mbtn = "nul"
input_player6_l_y_minus = "nul"
input_player6_l_y_minus_axis = "nul"
input_player6_l_y_minus_btn = "nul"
input_player6_l_y_minus_mbtn = "nul"
input_player6_l_y_plus = "nul"
input_player6_l_y_plus_axis = "nul"
input_player6_l_y_plus_btn = "nul"
input_player6_l_y_plus_mbtn = "nul"
input_player6_left = "nul"
input_player6_left_axis = "nul"
input_player6_left_btn = "nul"
input_player6_left_mbtn = "nul"
input_player6_mouse_index = "0"
input_player6_r = "nul"
input_player6_r2 = "nul"
input_player6_r2_axis = "nul"
input_player6_r2_btn = "nul"
input_player6_r2_mbtn = "nul"
input_player6_r3 = "nul"
input_player6_r3_axis = "nul"
input_player6_r3_btn = "nul"
input_player6_r3_mbtn = "nul"
input_player6_r_axis = "nul"
input_player6_r_btn = "nul"
input_player6_r_mbtn = "nul"
input_player6_r_x_minus = "nul"
input_player6_r_x_minus_axis = "nul"
input_player6_r_x_minus_btn = "nul"
input_player6_r_x_minus_mbtn = "nul"
input_player6_r_x_plus = "nul"
input_player6_r_x_plus_axis = "nul"
input_player6_r_x_plus_btn = "nul"
input_player6_r_x_plus_mbtn = "nul"
input_player6_r_y_minus = "nul"
input_player6_r_y_minus_axis = "nul"
input_player6_r_y_minus_btn = "nul"
input_player6_r_y_minus_mbtn = "nul"
input_player6_r_y_plus = "nul"
input_player6_r_y_plus_axis = "nul"
input_player6_r_y_plus_btn = "nul"
input_player6_r_y_plus_mbtn = "nul"
input_player6_right = "nul"
input_player6_right_axis = "nul"
input_player6_right_btn = "nul"
input_player6_right_mbtn = "nul"
input_player6_select = "nul"
input_player6_select_axis = "nul"
input_player6_select_btn = "nul"
input_player6_select_mbtn = "nul"
input_player6_start = "nul"
input_player6_start_axis = "nul"
input_player6_start_btn = "nul"
input_player6_start_mbtn = "nul"
input_player6_turbo = "nul"
input_player6_turbo_axis = "nul"
input_player6_turbo_btn = "nul"
input_player6_turbo_mbtn = "nul"
input_player6_up = "nul"
input_player6_up_axis = "nul"
input_player6_up_btn = "nul"
input_player6_up_mbtn = "nul"
input_player6_x = "nul"
input_player6_x_axis = "nul"
input_player6_x_btn = "nul"
input_player6_x_mbtn = "nul"
input_player6_y = "nul"
input_player6_y_axis = "nul"
input_player6_y_btn = "nul"
input_player6_y_mbtn = "nul"
input_player7_a = "nul"
input_player7_a_axis = "nul"
input_player7_a_btn = "nul"
input_player7_a_mbtn = "nul"
input_player7_analog_dpad_mode = "0"
input_player7_b = "nul"
input_player7_b_axis = "nul"
input_player7_b_btn = "nul"
input_player7_b_mbtn = "nul"
input_player7_down = "nul"
input_player7_down_axis = "nul"
input_player7_down_btn = "nul"
input_player7_down_mbtn = "nul"
input_player7_gun_aux_a = "nul"
input_player7_gun_aux_a_axis = "nul"
input_player7_gun_aux_a_btn = "nul"
input_player7_gun_aux_a_mbtn = "nul"
input_player7_gun_aux_b = "nul"
input_player7_gun_aux_b_axis = "nul"
input_player7_gun_aux_b_btn = "nul"
input_player7_gun_aux_b_mbtn = "nul"
input_player7_gun_aux_c = "nul"
input_player7_gun_aux_c_axis = "nul"
input_player7_gun_aux_c_btn = "nul"
input_player7_gun_aux_c_mbtn = "nul"
input_player7_gun_dpad_down = "nul"
input_player7_gun_dpad_down_axis = "nul"
input_player7_gun_dpad_down_btn = "nul"
input_player7_gun_dpad_down_mbtn = "nul"
input_player7_gun_dpad_left = "nul"
input_player7_gun_dpad_left_axis = "nul"
input_player7_gun_dpad_left_btn = "nul"
input_player7_gun_dpad_left_mbtn = "nul"
input_player7_gun_dpad_right = "nul"
input_player7_gun_dpad_right_axis = "nul"
input_player7_gun_dpad_right_btn = "nul"
input_player7_gun_dpad_right_mbtn = "nul"
input_player7_gun_dpad_up = "nul"
input_player7_gun_dpad_up_axis = "nul"
input_player7_gun_dpad_up_btn = "nul"
input_player7_gun_dpad_up_mbtn = "nul"
input_player7_gun_offscreen_shot = "nul"
input_player7_gun_offscreen_shot_axis = "nul"
input_player7_gun_offscreen_shot_btn = "nul"
input_player7_gun_offscreen_shot_mbtn = "nul"
input_player7_gun_select = "nul"
input_player7_gun_select_axis = "nul"
input_player7_gun_select_btn = "nul"
input_player7_gun_select_mbtn = "nul"
input_player7_gun_start = "nul"
input_player7_gun_start_axis = "nul"
input_player7_gun_start_btn = "nul"
input_player7_gun_start_mbtn = "nul"
input_player7_gun_trigger = "nul"
input_player7_gun_trigger_axis = "nul"
input_player7_gun_trigger_btn = "nul"
input_player7_gun_trigger_mbtn = "nul"
input_player7_joypad_index = "6"
input_player7_l = "nul"
input_player7_l2 = "nul"
input_player7_l2_axis = "nul"
input_player7_l2_btn = "nul"
input_player7_l2_mbtn = "nul"
input_player7_l3 = "nul"
input_player7_l3_axis = "nul"
input_player7_l3_btn = "nul"
input_player7_l3_mbtn = "nul"
input_player7_l_axis = "nul"
input_player7_l_btn = "nul"
input_player7_l_mbtn = "nul"
input_player7_l_x_minus = "nul"
input_player7_l_x_minus_axis = "nul"
input_player7_l_x_minus_btn = "nul"
input_player7_l_x_minus_mbtn = "nul"
input_player7_l_x_plus = "nul"
input_player7_l_x_plus_axis = "nul"
input_player7_l_x_plus_btn = "nul"
input_player7_l_x_plus_mbtn = "nul"
input_player7_l_y_minus = "nul"
input_player7_l_y_minus_axis = "nul"
input_player7_l_y_minus_btn = "nul"
input_player7_l_y_minus_mbtn = "nul"
input_player7_l_y_plus = "nul"
input_player7_l_y_plus_axis = "nul"
input_player7_l_y_plus_btn = "nul"
input_player7_l_y_plus_mbtn = "nul"
input_player7_left = "nul"
input_player7_left_axis = "nul"
input_player7_left_btn = "nul"
input_player7_left_mbtn = "nul"
input_player7_mouse_index = "0"
input_player7_r = "nul"
input_player7_r2 = "nul"
input_player7_r2_axis = "nul"
input_player7_r2_btn = "nul"
input_player7_r2_mbtn = "nul"
input_player7_r3 = "nul"
input_player7_r3_axis = "nul"
input_player7_r3_btn = "nul"
input_player7_r3_mbtn = "nul"
input_player7_r_axis = "nul"
input_player7_r_btn = "nul"
input_player7_r_mbtn = "nul"
input_player7_r_x_minus = "nul"
input_player7_r_x_minus_axis = "nul"
input_player7_r_x_minus_btn = "nul"
input_player7_r_x_minus_mbtn = "nul"
input_player7_r_x_plus = "nul"
input_player7_r_x_plus_axis = "nul"
input_player7_r_x_plus_btn = "nul"
input_player7_r_x_plus_mbtn = "nul"
input_player7_r_y_minus = "nul"
input_player7_r_y_minus_axis = "nul"
input_player7_r_y_minus_btn = "nul"
input_player7_r_y_minus_mbtn = "nul"
input_player7_r_y_plus = "nul"
input_player7_r_y_plus_axis = "nul"
input_player7_r_y_plus_btn = "nul"
input_player7_r_y_plus_mbtn = "nul"
input_player7_right = "nul"
input_player7_right_axis = "nul"
input_player7_right_btn = "nul"
input_player7_right_mbtn = "nul"
input_player7_select = "nul"
input_player7_select_axis = "nul"
input_player7_select_btn = "nul"
input_player7_select_mbtn = "nul"
input_player7_start = "nul"
input_player7_start_axis = "nul"
input_player7_start_btn = "nul"
input_player7_start_mbtn = "nul"
input_player7_turbo = "nul"
input_player7_turbo_axis = "nul"
input_player7_turbo_btn = "nul"
input_player7_turbo_mbtn = "nul"
input_player7_up = "nul"
input_player7_up_axis = "nul"
input_player7_up_btn = "nul"
input_player7_up_mbtn = "nul"
input_player7_x = "nul"
input_player7_x_axis = "nul"
input_player7_x_btn = "nul"
input_player7_x_mbtn = "nul"
input_player7_y = "nul"
input_player7_y_axis = "nul"
input_player7_y_btn = "nul"
input_player7_y_mbtn = "nul"
input_player8_a = "nul"
input_player8_a_axis = "nul"
input_player8_a_btn = "nul"
input_player8_a_mbtn = "nul"
input_player8_analog_dpad_mode = "0"
input_player8_b = "nul"
input_player8_b_axis = "nul"
input_player8_b_btn = "nul"
input_player8_b_mbtn = "nul"
input_player8_down = "nul"
input_player8_down_axis = "nul"
input_player8_down_btn = "nul"
input_player8_down_mbtn = "nul"
input_player8_gun_aux_a = "nul"
input_player8_gun_aux_a_axis = "nul"
input_player8_gun_aux_a_btn = "nul"
input_player8_gun_aux_a_mbtn = "nul"
input_player8_gun_aux_b = "nul"
input_player8_gun_aux_b_axis = "nul"
input_player8_gun_aux_b_btn = "nul"
input_player8_gun_aux_b_mbtn = "nul"
input_player8_gun_aux_c = "nul"
input_player8_gun_aux_c_axis = "nul"
input_player8_gun_aux_c_btn = "nul"
input_player8_gun_aux_c_mbtn = "nul"
input_player8_gun_dpad_down = "nul"
input_player8_gun_dpad_down_axis = "nul"
input_player8_gun_dpad_down_btn = "nul"
input_player8_gun_dpad_down_mbtn = "nul"
input_player8_gun_dpad_left = "nul"
input_player8_gun_dpad_left_axis = "nul"
input_player8_gun_dpad_left_btn = "nul"
input_player8_gun_dpad_left_mbtn = "nul"
input_player8_gun_dpad_right = "nul"
input_player8_gun_dpad_right_axis = "nul"
input_player8_gun_dpad_right_btn = "nul"
input_player8_gun_dpad_right_mbtn = "nul"
input_player8_gun_dpad_up = "nul"
input_player8_gun_dpad_up_axis = "nul"
input_player8_gun_dpad_up_btn = "nul"
input_player8_gun_dpad_up_mbtn = "nul"
input_player8_gun_offscreen_shot = "nul"
input_player8_gun_offscreen_shot_axis = "nul"
input_player8_gun_offscreen_shot_btn = "nul"
input_player8_gun_offscreen_shot_mbtn = "nul"
input_player8_gun_select = "nul"
input_player8_gun_select_axis = "nul"
input_player8_gun_select_btn = "nul"
input_player8_gun_select_mbtn = "nul"
input_player8_gun_start = "nul"
input_player8_gun_start_axis = "nul"
input_player8_gun_start_btn = "nul"
input_player8_gun_start_mbtn = "nul"
input_player8_gun_trigger = "nul"
input_player8_gun_trigger_axis = "nul"
input_player8_gun_trigger_btn = "nul"
input_player8_gun_trigger_mbtn = "nul"
input_player8_joypad_index = "7"
input_player8_l = "nul"
input_player8_l2 = "nul"
input_player8_l2_axis = "nul"
input_player8_l2_btn = "nul"
input_player8_l2_mbtn = "nul"
input_player8_l3 = "nul"
input_player8_l3_axis = "nul"
input_player8_l3_btn = "nul"
input_player8_l3_mbtn = "nul"
input_player8_l_axis = "nul"
input_player8_l_btn = "nul"
input_player8_l_mbtn = "nul"
input_player8_l_x_minus = "nul"
input_player8_l_x_minus_axis = "nul"
input_player8_l_x_minus_btn = "nul"
input_player8_l_x_minus_mbtn = "nul"
input_player8_l_x_plus = "nul"
input_player8_l_x_plus_axis = "nul"
input_player8_l_x_plus_btn = "nul"
input_player8_l_x_plus_mbtn = "nul"
input_player8_l_y_minus = "nul"
input_player8_l_y_minus_axis = "nul"
input_player8_l_y_minus_btn = "nul"
input_player8_l_y_minus_mbtn = "nul"
input_player8_l_y_plus = "nul"
input_player8_l_y_plus_axis = "nul"
input_player8_l_y_plus_btn = "nul"
input_player8_l_y_plus_mbtn = "nul"
input_player8_left = "nul"
input_player8_left_axis = "nul"
input_player8_left_btn = "nul"
input_player8_left_mbtn = "nul"
input_player8_mouse_index = "0"
input_player8_r = "nul"
input_player8_r2 = "nul"
input_player8_r2_axis = "nul"
input_player8_r2_btn = "nul"
input_player8_r2_mbtn = "nul"
input_player8_r3 = "nul"
input_player8_r3_axis = "nul"
input_player8_r3_btn = "nul"
input_player8_r3_mbtn = "nul"
input_player8_r_axis = "nul"
input_player8_r_btn = "nul"
input_player8_r_mbtn = "nul"
input_player8_r_x_minus = "nul"
input_player8_r_x_minus_axis = "nul"
input_player8_r_x_minus_btn = "nul"
input_player8_r_x_minus_mbtn = "nul"
input_player8_r_x_plus = "nul"
input_player8_r_x_plus_axis = "nul"
input_player8_r_x_plus_btn = "nul"
input_player8_r_x_plus_mbtn = "nul"
input_player8_r_y_minus = "nul"
input_player8_r_y_minus_axis = "nul"
input_player8_r_y_minus_btn = "nul"
input_player8_r_y_minus_mbtn = "nul"
input_player8_r_y_plus = "nul"
input_player8_r_y_plus_axis = "nul"
input_player8_r_y_plus_btn = "nul"
input_player8_r_y_plus_mbtn = "nul"
input_player8_right = "nul"
input_player8_right_axis = "nul"
input_player8_right_btn = "nul"
input_player8_right_mbtn = "nul"
input_player8_select = "nul"
input_player8_select_axis = "nul"
input_player8_select_btn = "nul"
input_player8_select_mbtn = "nul"
input_player8_start = "nul"
input_player8_start_axis = "nul"
input_player8_start_btn = "nul"
input_player8_start_mbtn = "nul"
input_player8_turbo = "nul"
input_player8_turbo_axis = "nul"
input_player8_turbo_btn = "nul"
input_player8_turbo_mbtn = "nul"
input_player8_up = "nul"
input_player8_up_axis = "nul"
input_player8_up_btn = "nul"
input_player8_up_mbtn = "nul"
input_player8_x = "nul"
input_player8_x_axis = "nul"
input_player8_x_btn = "nul"
input_player8_x_mbtn = "nul"
input_player8_y = "nul"
input_player8_y_axis = "nul"
input_player8_y_btn = "nul"
input_player8_y_mbtn = "nul"
input_player9_a = "nul"
input_player9_a_axis = "nul"
input_player9_a_btn = "nul"
input_player9_a_mbtn = "nul"
input_player9_analog_dpad_mode = "0"
input_player9_b = "nul"
input_player9_b_axis = "nul"
input_player9_b_btn = "nul"
input_player9_b_mbtn = "nul"
input_player9_down = "nul"
input_player9_down_axis = "nul"
input_player9_down_btn = "nul"
input_player9_down_mbtn = "nul"
input_player9_gun_aux_a = "nul"
input_player9_gun_aux_a_axis = "nul"
input_player9_gun_aux_a_btn = "nul"
input_player9_gun_aux_a_mbtn = "nul"
input_player9_gun_aux_b = "nul"
input_player9_gun_aux_b_axis = "nul"
input_player9_gun_aux_b_btn = "nul"
input_player9_gun_aux_b_mbtn = "nul"
input_player9_gun_aux_c = "nul"
input_player9_gun_aux_c_axis = "nul"
input_player9_gun_aux_c_btn = "nul"
input_player9_gun_aux_c_mbtn = "nul"
input_player9_gun_dpad_down = "nul"
input_player9_gun_dpad_down_axis = "nul"
input_player9_gun_dpad_down_btn = "nul"
input_player9_gun_dpad_down_mbtn = "nul"
input_player9_gun_dpad_left = "nul"
input_player9_gun_dpad_left_axis = "nul"
input_player9_gun_dpad_left_btn = "nul"
input_player9_gun_dpad_left_mbtn = "nul"
input_player9_gun_dpad_right = "nul"
input_player9_gun_dpad_right_axis = "nul"
input_player9_gun_dpad_right_btn = "nul"
input_player9_gun_dpad_right_mbtn = "nul"
input_player9_gun_dpad_up = "nul"
input_player9_gun_dpad_up_axis = "nul"
input_player9_gun_dpad_up_btn = "nul"
input_player9_gun_dpad_up_mbtn = "nul"
input_player9_gun_offscreen_shot = "nul"
input_player9_gun_offscreen_shot_axis = "nul"
input_player9_gun_offscreen_shot_btn = "nul"
input_player9_gun_offscreen_shot_mbtn = "nul"
input_player9_gun_select = "nul"
input_player9_gun_select_axis = "nul"
input_player9_gun_select_btn = "nul"
input_player9_gun_select_mbtn = "nul"
input_player9_gun_start = "nul"
input_player9_gun_start_axis = "nul"
input_player9_gun_start_btn = "nul"
input_player9_gun_start_mbtn = "nul"
input_player9_gun_trigger = "nul"
input_player9_gun_trigger_axis = "nul"
input_player9_gun_trigger_btn = "nul"
input_player9_gun_trigger_mbtn = "nul"
input_player9_joypad_index = "8"
input_player9_l = "nul"
input_player9_l2 = "nul"
input_player9_l2_axis = "nul"
input_player9_l2_btn = "nul"
input_player9_l2_mbtn = "nul"
input_player9_l3 = "nul"
input_player9_l3_axis = "nul"
input_player9_l3_btn = "nul"
input_player9_l3_mbtn = "nul"
input_player9_l_axis = "nul"
input_player9_l_btn = "nul"
input_player9_l_mbtn = "nul"
input_player9_l_x_minus = "nul"
input_player9_l_x_minus_axis = "nul"
input_player9_l_x_minus_btn = "nul"
input_player9_l_x_minus_mbtn = "nul"
input_player9_l_x_plus = "nul"
input_player9_l_x_plus_axis = "nul"
input_player9_l_x_plus_btn = "nul"
input_player9_l_x_plus_mbtn = "nul"
input_player9_l_y_minus = "nul"
input_player9_l_y_minus_axis = "nul"
input_player9_l_y_minus_btn = "nul"
input_player9_l_y_minus_mbtn = "nul"
input_player9_l_y_plus = "nul"
input_player9_l_y_plus_axis = "nul"
input_player9_l_y_plus_btn = "nul"
input_player9_l_y_plus_mbtn = "nul"
input_player9_left = "nul"
input_player9_left_axis = "nul"
input_player9_left_btn = "nul"
input_player9_left_mbtn = "nul"
input_player9_mouse_index = "0"
input_player9_r = "nul"
input_player9_r2 = "nul"
input_player9_r2_axis = "nul"
input_player9_r2_btn = "nul"
input_player9_r2_mbtn = "nul"
input_player9_r3 = "nul"
input_player9_r3_axis = "nul"
input_player9_r3_btn = "nul"
input_player9_r3_mbtn = "nul"
input_player9_r_axis = "nul"
input_player9_r_btn = "nul"
input_player9_r_mbtn = "nul"
input_player9_r_x_minus = "nul"
input_player9_r_x_minus_axis = "nul"
input_player9_r_x_minus_btn = "nul"
input_player9_r_x_minus_mbtn = "nul"
input_player9_r_x_plus = "nul"
input_player9_r_x_plus_axis = "nul"
input_player9_r_x_plus_btn = "nul"
input_player9_r_x_plus_mbtn = "nul"
input_player9_r_y_minus = "nul"
input_player9_r_y_minus_axis = "nul"
input_player9_r_y_minus_btn = "nul"
input_player9_r_y_minus_mbtn = "nul"
input_player9_r_y_plus = "nul"
input_player9_r_y_plus_axis = "nul"
input_player9_r_y_plus_btn = "nul"
input_player9_r_y_plus_mbtn = "nul"
input_player9_right = "nul"
input_player9_right_axis = "nul"
input_player9_right_btn = "nul"
input_player9_right_mbtn = "nul"
input_player9_select = "nul"
input_player9_select_axis = "nul"
input_player9_select_btn = "nul"
input_player9_select_mbtn = "nul"
input_player9_start = "nul"
input_player9_start_axis = "nul"
input_player9_start_btn = "nul"
input_player9_start_mbtn = "nul"
input_player9_turbo = "nul"
input_player9_turbo_axis = "nul"
input_player9_turbo_btn = "nul"
input_player9_turbo_mbtn = "nul"
input_player9_up = "nul"
input_player9_up_axis = "nul"
input_player9_up_btn = "nul"
input_player9_up_mbtn = "nul"
input_player9_x = "nul"
input_player9_x_axis = "nul"
input_player9_x_btn = "nul"
input_player9_x_mbtn = "nul"
input_player9_y = "nul"
input_player9_y_axis = "nul"
input_player9_y_btn = "nul"
input_player9_y_mbtn = "nul"
input_poll_type_behavior = "2"
input_recording_toggle = "nul"
input_recording_toggle_axis = "nul"
input_recording_toggle_btn = "nul"
input_recording_toggle_mbtn = "nul"
input_remap_binds_enable = "true"
input_remapping_directory = ":\config\remaps"
input_reset = "h"
input_reset_axis = "nul"
input_reset_btn = "nul"
input_reset_mbtn = "nul"
input_rewind = "r"
input_rewind_axis = "nul"
input_rewind_btn = "nul"
input_rewind_mbtn = "nul"
input_save_state = "f2"
input_save_state_axis = "nul"
input_save_state_btn = "nul"
input_save_state_mbtn = "nul"
input_screenshot = "f8"
input_screenshot_axis = "nul"
input_screenshot_btn = "nul"
input_screenshot_mbtn = "nul"
input_shader_next = "m"
input_shader_next_axis = "nul"
input_shader_next_btn = "nul"
input_shader_next_mbtn = "nul"
input_shader_prev = "n"
input_shader_prev_axis = "nul"
input_shader_prev_btn = "nul"
input_shader_prev_mbtn = "nul"
input_state_slot_decrease = "f6"
input_state_slot_decrease_axis = "nul"
input_state_slot_decrease_btn = "nul"
input_state_slot_decrease_mbtn = "nul"
input_state_slot_increase = "f7"
input_state_slot_increase_axis = "nul"
input_state_slot_increase_btn = "nul"
input_state_slot_increase_mbtn = "nul"
input_streaming_toggle = "nul"
input_streaming_toggle_axis = "nul"
input_streaming_toggle_btn = "nul"
input_streaming_toggle_mbtn = "nul"
input_toggle_fast_forward = "space"
input_toggle_fast_forward_axis = "nul"
input_toggle_fast_forward_btn = "nul"
input_toggle_fast_forward_mbtn = "nul"
input_toggle_fullscreen = "f"
input_toggle_fullscreen_axis = "nul"
input_toggle_fullscreen_btn = "nul"
input_toggle_fullscreen_mbtn = "nul"
input_toggle_slowmotion = "nul"
input_toggle_slowmotion_axis = "nul"
input_toggle_slowmotion_btn = "nul"
input_toggle_slowmotion_mbtn = "nul"
input_turbo_period = "6"
input_volume_down = "subtract"
input_volume_down_axis = "nul"
input_volume_down_btn = "nul"
input_volume_down_mbtn = "nul"
input_volume_up = "add"
input_volume_up_axis = "nul"
input_volume_up_btn = "nul"
input_volume_up_mbtn = "nul"
joypad_autoconfig_dir = ":\autoconfig"
keyboard_gamepad_enable = "true"
keyboard_gamepad_mapping_type = "1"
kiosk_mode_enable = "false"
kiosk_mode_password = ""
led_driver = "null"
libretro_directory = ":\cores"
libretro_info_path = ":\info"
libretro_log_level = "1"
load_dummy_on_core_shutdown = "true"
location_allow = "false"
location_driver = "null"
log_verbosity = "true"
materialui_icons_enable = "true"
materialui_menu_color_theme = "0"
memory_show = "false"
menu_battery_level_enable = "true"
menu_bg_dark_color = "c0202020"
menu_bg_light_color = "c0404040"
menu_border_dark_color = "c0204020"
menu_border_light_color = "c0408040"
menu_core_enable = "true"
menu_driver = "xmb"
menu_dynamic_wallpaper_enable = "false"
menu_entry_hover_color = "ff64ff64"
menu_entry_normal_color = "ffffffff"
menu_font_color_blue = "255"
menu_font_color_green = "255"
menu_font_color_red = "255"
menu_footer_opacity = "1.000000"
menu_framebuffer_opacity = "0.900000"
menu_header_opacity = "1.000000"
menu_horizontal_animation = "true"
menu_left_thumbnails = "0"
menu_linear_filter = "true"
menu_mouse_enable = "true"
menu_navigation_browser_filter_supported_extensions_enable = "true"
menu_navigation_wraparound_enable = "true"
menu_pause_libretro = "true"
menu_pointer_enable = "false"
menu_shader_pipeline = "2"
menu_show_advanced_settings = "false"
menu_show_configurations = "true"
menu_show_core_updater = "true"
menu_show_help = "true"
menu_show_information = "true"
menu_show_latency = "true"
menu_show_load_content = "true"
menu_show_load_core = "true"
menu_show_online_updater = "true"
menu_show_overlays = "true"
menu_show_quit_retroarch = "true"
menu_show_reboot = "true"
menu_show_rewind = "true"
menu_show_shutdown = "true"
menu_swap_ok_cancel_buttons = "true"
menu_throttle_framerate = "true"
menu_thumbnails = "3"
menu_timedate_enable = "true"
menu_timedate_style = "5"
menu_title_color = "ff64ff64"
menu_unified_controls = "false"
menu_use_preferred_system_color_theme = "false"
menu_wallpaper = ""
menu_wallpaper_opacity = "0.300000"
midi_driver = "winmm"
midi_input = "Off"
midi_output = "Off"
midi_volume = "100"
netplay_allow_slaves = "true"
netplay_check_frames = "600"
netplay_input_latency_frames_min = "0"
netplay_input_latency_frames_range = "0"
netplay_ip_address = ""
netplay_ip_port = "55435"
netplay_mitm_server = "nyc"
netplay_nat_traversal = "true"
netplay_nickname = ""
netplay_password = ""
netplay_public_announce = "true"
netplay_request_device_p1 = "false"
netplay_request_device_p10 = "false"
netplay_request_device_p11 = "false"
netplay_request_device_p12 = "false"
netplay_request_device_p13 = "false"
netplay_request_device_p14 = "false"
netplay_request_device_p15 = "false"
netplay_request_device_p16 = "false"
netplay_request_device_p2 = "false"
netplay_request_device_p3 = "false"
netplay_request_device_p4 = "false"
netplay_request_device_p5 = "false"
netplay_request_device_p6 = "false"
netplay_request_device_p7 = "false"
netplay_request_device_p8 = "false"
netplay_request_device_p9 = "false"
netplay_require_slaves = "false"
netplay_share_analog = "1"
netplay_share_digital = "1"
netplay_spectate_password = ""
netplay_start_as_spectator = "false"
netplay_stateless_mode = "false"
netplay_use_mitm_server = "false"
network_cmd_enable = "false"
network_cmd_port = "55355"
network_remote_base_port = "55400"
network_remote_enable = "false"
network_remote_enable_user_p1 = "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"
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"
overlay_directory = ":\overlays"
ozone_menu_color_theme = "0"
pause_nonactive = "true"
perfcnt_enable = "false"
playlist_cores = ""
playlist_directory = ":\playlists"
playlist_entry_remove = "true"
playlist_entry_rename = "true"
playlist_names = ""
quick_menu_show_add_to_favorites = "true"
quick_menu_show_cheats = "true"
quick_menu_show_controls = "true"
quick_menu_show_information = "true"
quick_menu_show_options = "true"
quick_menu_show_recording = "true"
quick_menu_show_reset_core_association = "true"
quick_menu_show_save_content_dir_overrides = "true"
quick_menu_show_save_core_overrides = "true"
quick_menu_show_save_game_overrides = "true"
quick_menu_show_save_load_state = "true"
quick_menu_show_shaders = "true"
quick_menu_show_start_recording = "true"
quick_menu_show_start_streaming = "true"
quick_menu_show_streaming = "true"
quick_menu_show_take_screenshot = "true"
quick_menu_show_undo_save_load_state = "true"
record_driver = "ffmpeg"
recording_config_directory = ""
recording_output_directory = ""
resampler_directory = ""
rewind_buffer_size = "20971520"
rewind_buffer_size_step = "10"
rewind_enable = "false"
rewind_granularity = "1"
rgui_background_filler_thickness_enable = "true"
rgui_border_filler_enable = "true"
rgui_border_filler_thickness_enable = "true"
rgui_browser_directory = "default"
rgui_config_directory = ":\config"
rgui_show_start_screen = "false"
run_ahead_enabled = "false"
run_ahead_frames = "1"
run_ahead_hide_warnings = "false"
run_ahead_secondary_instance = "false"
savefile_directory = ":\saves"
savefiles_in_content_dir = "false"
savestate_auto_index = "false"
savestate_auto_load = "false"
savestate_auto_save = "false"
savestate_directory = ":\states"
savestate_thumbnail_enable = "false"
savestates_in_content_dir = "false"
screenshot_directory = ":\screenshots"
screenshots_in_content_dir = "false"
show_hidden_files = "false"
slowmotion_ratio = "3.000000"
soft_filter_enable = "false"
soft_filter_index = "0"
sort_savefiles_enable = "false"
sort_savestates_enable = "false"
state_slot = "0"
statistics_show = "false"
stdin_cmd_enable = "false"
streaming_mode = "0"
suspend_screensaver_enable = "true"
sustained_performance_mode = "false"
system_directory = ":\system"
systemfiles_in_content_dir = "false"
threaded_data_runloop_enable = "true"
thumbnails_directory = ":\thumbnails"
ui_companion_enable = "false"
ui_companion_start_on_boot = "true"
ui_companion_toggle = "false"
ui_menubar_enable = "true"
user_language = "0"
video_adaptive_vsync = "false"
video_allow_rotate = "true"
video_aspect_ratio = "-1.000000"
video_aspect_ratio_auto = "false"
video_black_frame_insertion = "false"
video_context_driver = ""
video_crop_overscan = "true"
video_disable_composition = "false"
video_driver = "gl"
video_filter = ""
video_filter_dir = ":\filters\video"
video_font_enable = "true"
video_font_path = ""
video_font_size = "32.000000"
video_force_aspect = "true"
video_force_srgb_disable = "false"
video_frame_delay = "0"
video_fullscreen = "false"
video_fullscreen_x = "0"
video_fullscreen_y = "0"
video_gpu_record = "false"
video_gpu_screenshot = "true"
video_hard_sync = "false"
video_hard_sync_frames = "0"
video_max_swapchain_images = "3"
video_message_color = "ffff00"
video_message_pos_x = "0.050000"
video_message_pos_y = "0.050000"
video_monitor_index = "0"
video_msg_bgcolor_blue = "0"
video_msg_bgcolor_enable = "false"
video_msg_bgcolor_green = "0"
video_msg_bgcolor_opacity = "1.000000"
video_msg_bgcolor_red = "0"
video_post_filter_record = "false"
video_record_config = ""
video_record_quality = "4"
video_record_scale_factor = "1"
video_record_threads = "2"
video_refresh_rate = "59.940060"
video_rotation = "0"
video_scale = "3.000000"
video_scale_integer = "false"
video_shader = ""
video_shader_dir = ":\shaders"
video_shader_enable = "false"
video_shader_watch_files = "false"
video_shared_context = "false"
video_smooth = "true"
video_stream_config = ""
video_stream_port = "56400"
video_stream_quality = "9"
video_stream_scale_factor = "1"
video_stream_url = ""
video_swap_interval = "1"
video_threaded = "false"
video_vsync = "true"
video_window_opacity = "100"
video_window_save_positions = "false"
video_window_show_decorations = "true"
video_windowed_fullscreen = "true"
video_windowed_position_height = "720"
video_windowed_position_width = "1280"
video_windowed_position_x = "0"
video_windowed_position_y = "0"
vrr_runloop_enable = "false"
wifi_driver = "null"
xmb_alpha_factor = "75"
xmb_font = ""
xmb_layout = "0"
xmb_menu_color_theme = "4"
xmb_scale_factor = "100"
xmb_shadows_enable = "true"
xmb_theme = "0"
xmb_vertical_thumbnails = "false"
youtube_stream_key = ""
ofry commented 5 years ago

Segfault after trying quit:

$ gdb retroarch
GNU gdb (GDB) 8.2.1
Copyright (C) 2018 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-w64-mingw32".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
    <http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from retroarch...done.
(gdb) start
Temporary breakpoint 1 at 0xb1dd90: file C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/crt/crt0_c.c, line 17.
Starting program: C:\msys64\home\ofry\retroarch\retroarch.exe
[New Thread 11304.0x687c]

Temporary breakpoint 1, main (flags=1, cmdline=0xc91cc30, inst=0xc912070)
    at C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/crt/crt0_c.c:17
17      C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/crt/crt0_c.c: No such file or directory.
(gdb) cont
Continuing.
[INFO] [Config]: Loading default config.
[INFO] [Config]: loading config from: (null).
[INFO] [recording] twitch streaming key empty
[INFO] RetroArch 1.7.5 (Git aecd532dac)
[INFO] === Build =======================================
Capabilities: MMX MMXEXT SSE1 SSE2 SSE3 SSSE3 SSE4 SSE4.2 AVX AES
Built: Dec 30 2018
[INFO] Version: 1.7.5
[INFO] Git: aecd532dac
[INFO] =================================================
[New Thread 11304.0xa8f8]
[INFO] Environ SET_PIXEL_FORMAT: RGB565.
[INFO] Redirecting save file to "C:\msys64\home\ofry\retroarch\\saves\.srm".
[INFO] Redirecting savestate to "C:\msys64\home\ofry\retroarch\\states\.state".
[INFO] Version of libretro API: 1
[INFO] Compiled against API: 1
[INFO] [Audio]: Set audio input rate to: 29970.03 Hz.
[INFO] [Video]: Video @ 960x720
[INFO] [GL]: Found GL context: wgl
[INFO] [GL]: Detecting screen resolution 1920x1200.
[INFO] [WGL] extensions: WGL_ARB_extensions_string WGL_ARB_pixel_format WGL_ATI_pixel_format_float WGL_ARB_pixel_format_float WGL_ARB_multisample WGL_EXT_swap_control WGL_EXT_swap_control_tear WGL_ARB_pbuffer WGL_ARB_render_texture WGL_ARB_make_current_read WGL_EXT_extensions_string WGL_ARB_buffer_region WGL_EXT_framebuffer_sRGB WGL_ATI_render_texture_rectangle WGL_EXT_pixel_format_packed_float WGL_I3D_genlock WGL_NV_swap_group WGL_ARB_create_context WGL_AMD_gpu_association WGL_ARB_create_context_profile WGL_ARB_context_flush_control WGL_NV_DX_interop WGL_ARB_create_context_no_error WGL_NV_DX_interop2 WGL_NV_float_buffer
[INFO] [WGL]: Adaptive VSync supported.
[INFO] [WGL]: wglSwapInterval(1)
[INFO] [GL]: Vendor: ATI Technologies Inc., Renderer: AMD Radeon (TM) R7 360 Series.
[INFO] [GL]: Version: 4.6.13543 Compatibility Profile Context 25.20.15002.58.
[INFO] [GL]: Using resolution 960x720
[INFO] [GL]: Default shader backend found: glsl.
[INFO] [Shader driver]: Using GLSL shader backend.
[INFO] [GLSL]: Checking GLSL shader support ...
[WARN] [GL]: Stock GLSL shaders will be used.
[INFO] [GLSL]: Found GLSL vertex shader.
[INFO] [GLSL]: Found GLSL fragment shader.
[INFO] [GLSL]: Linking GLSL program.
[INFO] [GLSL]: Found GLSL vertex shader.
[INFO] [GLSL]: Found GLSL fragment shader.
[INFO] [GLSL]: Linking GLSL program.
[INFO] [GLSL]: Found GLSL vertex shader.
[INFO] [GLSL]: Found GLSL fragment shader.
[INFO] [GLSL]: Linking GLSL program.
[INFO] Setting up menu pipeline shaders for XMB ...
[INFO] [GLSL]: Compiling ribbon shader..
[INFO] [GLSL]: Found GLSL vertex shader.
[INFO] [GLSL]: Found GLSL fragment shader.
[INFO] [GLSL]: Linking GLSL program.
[INFO] [GLSL]: Compiling simple ribbon shader..
[INFO] [GLSL]: Found GLSL vertex shader.
[INFO] [GLSL]: Found GLSL fragment shader.
[INFO] [GLSL]: Linking GLSL program.
[INFO] [GLSL]: Compiling snow shader..
[INFO] [GLSL]: Found GLSL vertex shader.
[INFO] [GLSL]: Found GLSL fragment shader.
[INFO] [GLSL]: Linking GLSL program.
[INFO] [GLSL]: Compiling modern snow shader..
[INFO] [GLSL]: Found GLSL vertex shader.
[INFO] [GLSL]: Found GLSL fragment shader.
[INFO] [GLSL]: Linking GLSL program.
[INFO] [GLSL]: Compiling bokeh shader..
[INFO] [GLSL]: Found GLSL vertex shader.
[INFO] [GLSL]: Found GLSL fragment shader.
[INFO] [GLSL]: Linking GLSL program.
[INFO] [GLSL]: Compiling snowflake shader..
[INFO] [GLSL]: Found GLSL vertex shader.
[INFO] [GLSL]: Found GLSL fragment shader.
[INFO] [GLSL]: Linking GLSL program.
[INFO] Resetting shader to defaults ...
[INFO] [GL]: Using 4 textures.
[INFO] [GL]: Loaded 1 program(s).
[INFO] [WINRAW]: Initializing input driver...
[INFO] [WINRAW]: Mouse #0 \\?\HID#VID_046D&PID_C05A#7&37839224&0&0000#{378de44c-56ef-11d1-bc8c-00a0c91405dd}.
[INFO] [Joypad]: Found joypad driver: "null".
[INFO] [Font]: Using font rendering backend: freetype.
[INFO] [Video]: Found display server: win32
[INFO] Found shader "C:\msys64\home\ofry\retroarch\\shaders\4xbr-scanline.glslp"
[INFO] Found shader "C:\msys64\home\ofry\retroarch\\shaders\4xbr-superres.glslp"
[INFO] Found shader "C:\msys64\home\ofry\retroarch\\shaders\4xbrz.glslp"
[INFO] Found shader "C:\msys64\home\ofry\retroarch\\shaders\5xbrz.glslp"
[INFO] Found shader "C:\msys64\home\ofry\retroarch\\shaders\9passesxbr.glslp"
[INFO] Found shader "C:\msys64\home\ofry\retroarch\\shaders\base.glslp"
[INFO] Found shader "C:\msys64\home\ofry\retroarch\\shaders\retroarch.glslp"
[INFO] Found shader "C:\msys64\home\ofry\retroarch\\shaders\temp.glslp"
[INFO] XAudio2: Requesting 64 ms latency, using 64 ms latency.
[New Thread 11304.0x822c]
[New Thread 11304.0x9bd4]
[New Thread 11304.0xb578]
[INFO] [Menu]: Found menu display driver: "gl".
[INFO] [Font]: Using font rendering backend: freetype.
[INFO] [Font]: Using font rendering backend: freetype.
[INFO] [LED]: LED driver = 'null' 0000000000B5A5A0
[INFO] [MIDI]: Initializing ...
[INFO] [MIDI]: Input disabled.
[INFO] [MIDI]: Output disabled.
[INFO] [MIDI]: Initialized "winmm" driver.
[INFO] SRAM will not be saved.
[INFO] Loading history file: [C:\msys64\home\ofry\retroarch\\content_history.lpl].
[INFO] Loading history file: [C:\msys64\home\ofry\retroarch\\content_favorites.lpl].
[INFO] Loading history file: [C:\msys64\home\ofry\retroarch\\content_music_history.lpl].
[INFO] Loading history file: [C:\msys64\home\ofry\retroarch\\content_video_history.lpl].
[INFO] Loading history file: [C:\msys64\home\ofry\retroarch\\content_image_history.lpl].
[INFO] [GL]: VSync => on
[INFO] [WGL]: wglSwapInterval(1)
[INFO] [GL]: VSync => on
[INFO] [WGL]: wglSwapInterval(1)
[INFO] [Font]: Using font rendering backend: freetype.
[INFO] [Font]: Using font rendering backend: freetype.
[INFO] [GL]: VSync => on
[INFO] [WGL]: wglSwapInterval(1)
[INFO] [Config]: Saved new config to "C:\msys64\home\ofry\retroarch\retroarch.cfg".
[INFO] Unloading game..
[INFO] Unloading core..
[INFO] Unloading core symbols..
[INFO] [Video]: Does not have enough samples for monitor refresh rate estimation. Requires to run for at least 4096 frames.
[INFO] [Video]: Does not have enough samples for monitor refresh rate estimation. Requires to run for at least 4096 frames.
[Thread 11304.0x822c exited with code 0]
[Thread 11304.0xa8f8 exited with code 0]

Thread 1 received signal SIGSEGV, Segmentation fault.
0x000000000095e75a in win32_display_server_destroy (data=0xe0828d0)
    at gfx/display_servers/dispserv_win32.c:116
116           ITaskbarList3_Release(g_taskbarList);
(gdb) bt full
#0  0x000000000095e75a in win32_display_server_destroy (data=0xe0828d0)
    at gfx/display_servers/dispserv_win32.c:116
        dispserv = 0xe0828d0
#1  0x0000000000469799 in video_display_server_destroy ()
    at gfx/video_display_server.c:68
No locals.
#2  0x000000000046bd61 in video_driver_destroy () at gfx/video_driver.c:1596
No locals.
#3  0x000000000047241d in driver_ctl (state=RARCH_DRIVER_CTL_DEINIT, data=0x0)
    at driver.c:480
No locals.
#4  0x000000000040161e in main_exit (args=0x0) at frontend/frontend.c:89
        settings = 0xe08b2a0
#5  0x00000000005499ee in ui_application_qt_run (args=0x0)
    at ui/drivers/qt/ui_qt_application.cpp:172
        ret = -1
        sleep_ms = 16
#6  0x0000000000401714 in rarch_main (argc=1, argv=0xc7f0000, data=0x0)
    at frontend/frontend.c:157
        args = 0x0
        ui_application = 0xb21860 <ui_application_qt>
#7  0x0000000000549a19 in SDL_main (argc=1, argv=0xc7f0000)
    at ui/drivers/qt/ui_qt_application.cpp:182
No locals.
#8  0x00000000009744bc in main_getcmdline ()
No symbol table info available.
#9  0x00000000004013a5 in __tmainCRTStartup ()
    at C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/crt/crtexe.c:339
        lock_free = <optimized out>
        fiberid = <optimized out>
        nested = <optimized out>
        lpszCommandLine = <optimized out>
        StartupInfo = {cb = 104, lpReserved = 0x2ba190 "",
          lpDesktop = 0x2b8830 "Winsta0\\Default",
          lpTitle = 0x2b63c0 "C:\\msys64\\home\\ofry\\retroarch\\retroarch.exe", dwX = 0, dwY = 0, dwXSize = 0, dwYSize = 0, dwXCountChars = 0,
          dwYCountChars = 0, dwFillAttribute = 0, dwFlags = 0,
          wShowWindow = 0, cbReserved2 = 0, lpReserved2 = 0x0,
          hStdInput = 0xffffffffffffffff, hStdOutput = 0xffffffffffffffff,
          hStdError = 0xffffffffffffffff}
        inDoubleQuote = <optimized out>
#10 0x00000000004014db in WinMainCRTStartup ()
    at C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/crt/crtexe.c:195
        ret = 255
(gdb)
ghost commented 5 years ago

Changing input_joypad_driver from null to xinput makes the issue go away for me.

ghost commented 5 years ago

@fr500 Repro requires input_joypad_driver = "null", input_driver = "raw", and video_driver = "gl".

ghost commented 5 years ago

Here's what DrMemory says:

Dr. Memory version 1.11.0 build 2 built on Aug 29 2016 02:41:18
Dr. Memory results for pid 1060: "retroarch.exe"
Application cmdline: "C:\Users\bp\Downloads\RetroArch\retroarch.exe"
Recorded 115 suppression(s) from default C:\Program Files (x86)\Dr. Memory\bin64\suppress-default.txt

Error #1: UNADDRESSABLE ACCESS: reading 0x00007ffe11942130-0x00007ffe11942138 8 byte(s)
# 0 win32_display_server_destroy               [gfx/display_servers/dispserv_win32.c:116]
# 1 ui_companion_win32_deinit                  [ui/drivers/ui_win32.c:277]
# 2 slock_unlock                               [libretro-common/rthreads/rthreads.c:401]
# 3 frontend_driver_shutdown                   [frontend/frontend_driver.c:338]
# 4 main_exit                                  [frontend/frontend.c:89]
# 5 rarch_main                                 [frontend/frontend.c:157]
# 6 SDL_main                                   [ui/drivers/qt/ui_qt_application.cpp:182]
# 7 main_getcmdline                            [ui/drivers/ui_qt.cpp:717]
# 8 __tmainCRTStartup                          [C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/crt/crtexe.c:329]
# 9 .l_startw                                  [C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/crt/crtexe.c:185]
#10 KERNEL32.dll!BaseThreadInitThunk          +0x21     (0x00007ffe224513d2 <KERNEL32.dll+0x13d2>)
Note: @0:01:05.868 in thread 4812
Note: instruction: mov    0x10(%rax) -> %rax
ghost commented 5 years ago

@Ryunam I went back further than that (9872111) and the issue still occurs for me.

ghost commented 5 years ago

Would be interesting if someone can test this with MSVC as well.

ghost commented 5 years ago

"input_joypad_driver = null" only crashes if input_driver = "raw" so the problem probably lies in the raw driver somewhere at a logical guess

krzys-h commented 5 years ago

Seem to crash on my MSVC build as well with repro steps from @bparker06

krzys-h commented 5 years ago

The problem seems to be related to the code related to HAS_TASKBAR_EXT (the thing that handles the progress bar animation on the task bar on newer Windowses) - this explains why it happens on anything related to the downloader, as well as when trying to deinitialize it on exit

ghost commented 5 years ago

just disable the code then strange it works when the input driver isint raw though

krzys-h commented 5 years ago

I just sent a pull request with a fix. The main reason is happens is that the dinput driver calls CoInitialize somewhere during init, and the raw driver does not, so the COM interface was not initialized properly. Somehow it still returned a valid object - which was destroyed later on first call to CoInitialize in the audio drivers.

ghost commented 5 years ago

Thanks for that @krzys-h, didn't even think about CoInitialize, or that you can get a valid pointer without it ><

ghost commented 5 years ago

Just noticed this as well:

Typically, the COM library is initialized on a thread only once.
Subsequent calls to CoInitialize or CoInitializeEx on the same thread will succeed,
as long as they do not attempt to change the concurrency model, but will return S_FALSE.
To close the COM library gracefully, each successful call to CoInitialize or CoInitializeEx,
including those that return S_FALSE, must be balanced by a corresponding call to CoUninitialize.
However, the first thread in the application that calls CoInitialize with 0 (or CoInitializeEx with COINIT_APARTMENTTHREADED)
must be the last thread to call CoUninitialize. Otherwise, subsequent calls to CoInitialize on the STA will fail and the application will not work.
krzys-h commented 5 years ago

Yeah, it may be a good idea to make sure all drivers call CoUninitialize properly - only wasapi currently does that, and CoInitialize is also in dinput, xaudio and now dispserv_win32

ofry commented 5 years ago

This bug now fixed. Thanks.

orbea commented 5 years ago

I guess this is fixed now so I'll close it.

inactive123 commented 5 years ago

This issue is back, except it manifests itself now differently.

It now happens for me on Windows when either:

If I do this then the crashes go away -

diff --git a/gfx/display_servers/dispserv_win32.c b/gfx/display_servers/dispserv_win32.c index 2e5a6e4102..a66639b811 100644 --- a/gfx/display_servers/dispserv_win32.c +++ b/gfx/display_servers/dispserv_win32.c @@ -117,6 +117,7 @@ static void win32_display_server_destroy(void *data) win32_orig_refresh, (float)win32_orig_refresh, crt_center );

ifdef HAS_TASKBAR_EXT

+#if 0 if (g_taskbarList && win32_taskbar_is_created()) { ITaskbarList3_Release(g_taskbarList); @@ -124,6 +125,7 @@ static void win32_display_server_destroy(void *data) }

CoUninitialize();

+#endif

endif

if (dispserv)

but obviously this is not a solution.

Is there anything useful here that could help us with these threading issues?

https://github.com/haasn/mpvhq-old/blob/master/video/out/w32_common.c

orbea commented 5 years ago

@twinaphex and @krzys-h Is this fixed again? :)

krzys-h commented 5 years ago

@orbea Yeah, it is