diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml new file mode 100644 index 00000000..fea6eff3 --- /dev/null +++ b/.github/workflows/CI.yml @@ -0,0 +1,35 @@ +name: CI + +on: + push: + branches: [main, beta, dev] + pull_request: + branches: [main, beta, dev] + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +jobs: + shellcheck: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: ShellCheck + uses: ludeeus/action-shellcheck@master + with: + severity: error + env: + SHELLCHECK_OPTS: -x +# markdownlint: +# runs-on: ubuntu-latest +# steps: +# - uses: actions/checkout@v3 +# - name: markdownlint-cli +# uses: nosborn/github-action-markdown-cli@v3.1.0 +# with: +# files: . + PSScriptAnalyzer: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Run PSScriptAnalyzer + uses: microsoft/psscriptanalyzer-action@v1.0 diff --git a/.github/workflows/discord-betayml b/.github/workflows/discord-betayml new file mode 100644 index 00000000..269d3e81 --- /dev/null +++ b/.github/workflows/discord-betayml @@ -0,0 +1,10 @@ +name: CI +- name: Discord notification + on: + push: + branches: [beta] + env: + DISCORD_WEBHOOK: ${{ secrets.DISCORD }} + uses: Ilshidur/action-discord@master + with: + args: 'A new {{ EVENT_PAYLOAD.repository.full_name }} BETA has been deployed.' \ No newline at end of file diff --git a/.gitpod.yml b/.gitpod.yml new file mode 100644 index 00000000..73e72585 --- /dev/null +++ b/.gitpod.yml @@ -0,0 +1,2 @@ +image: + file: .gitpod/build/Dockerfile \ No newline at end of file diff --git a/.gitpod/build/Dockerfile b/.gitpod/build/Dockerfile new file mode 100644 index 00000000..0d8e384f --- /dev/null +++ b/.gitpod/build/Dockerfile @@ -0,0 +1,49 @@ +FROM manjarolinux/base + +RUN pacman -Syu --noconfirm --needed \ + git \ + git-lfs \ + docker \ + sudo \ + base-devel + +### Gitpod user ### +### Minor Modifications have been made ### + +# '-l': see https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#user +RUN useradd -l -u 33333 -G wheel -md /home/gitpod -s /bin/bash -p gitpod gitpod \ + # passwordless sudo for users in the 'sudo' group + && sed -i.bkp -e 's/%wheel\s\+ALL=(ALL\(:ALL\)\?)\s\+ALL/%wheel ALL=NOPASSWD:ALL/g' /etc/sudoers \ + && echo "gitpod ALL = NOPASSWD : ALL" >> /etc/sudoers \ + # To emulate the workspace-session behavior within dazzle build env + && mkdir /workspace && chown -hR gitpod:gitpod /workspace \ + && mkdir -p $HOME/emudeck/backend + +ENV HOME=/home/gitpod +WORKDIR $HOME/emudeck/backend +# custom Bash prompt +RUN { echo && echo "PS1='\[\033[01;32m\]\u\[\033[00m\] \[\033[01;34m\]\w\[\033[00m\]\$(__git_ps1 \" (%s)\") $ '" ; } >> .bashrc + +### Gitpod user (2) ### +USER gitpod +# use sudo so that user does not get sudo usage info on (the first) login +RUN sudo echo "Running 'sudo' for Gitpod: success" && \ + # create .bashrc.d folder and source it in the bashrc + mkdir -p /home/gitpod/.bashrc.d && \ + (echo; echo "for i in \$(ls -A \$HOME/.bashrc.d/); do source \$HOME/.bashrc.d/\$i; done"; echo) >> /home/gitpod/.bashrc && \ + # create a completions dir for gitpod user + mkdir -p /home/gitpod/.local/share/bash-completion/completions + +# configure git-lfs +RUN sudo git lfs install --system + +# add yay for aur +RUN sudo su gitpod -c cd /tmp && \ + git clone https://aur.archlinux.org/yay-bin && \ + cd yay-bin && \ + makepkg -si --noconfirm +RUN sudo su gitpod -c "yay -Syu --noconfirm neofetch" + +### Input Your Environment and packages here + +RUN sudo su gitpod -c "yay -S flatpak flatpak-builder --noconfirm" \ No newline at end of file diff --git a/README.md b/README.md index 10fe84c6..491b98b0 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ # EmuDeck - +[![Gitpod ready-to-code](https://img.shields.io/badge/Gitpod-ready--to--code-908a85?logo=gitpod)](https://gitpod.io/from-referrer/) EmuDeck is a collection of scripts that allows you to autoconfigure your Steam Deck, it creates your roms directory structure and downloads all of the needed Emulators for you along with the best configurations for each of them. EmuDeck works great with [Steam Rom Manager](https://github.com/SteamGridDB/steam-rom-manager) or with [EmulationStation DE](https://es-de.org) @@ -23,9 +23,9 @@ EmuDeck has preloaded configurations for Steam Rom Manager for the following sys | Mame 2003 Plus | Retroarch Mame 2003 Plus core | .zip | | | Mame 2010 | Retroarch Mame 2010 core | .zip | | | Mame Current | Retroarch Mame Current core | .zip | | -| Microsoft Xbox | Xemu | .iso (xiso formatted) | Emulation/bios:
mcpx\_1.0.bin
modified retail "COMPLEX 4627" BIOS

Emulation/saves/xemu:
xbox\_hdd.qcow2 | +| Microsoft Xbox | Xemu | .iso (xiso formatted) | Emulation/bios:
mcpx\_1.0.bin
modified retail "COMPLEX 4627" BIOS

Emulation/storage/xemu:
xbox\_hdd.qcow2 | | Neo Geo Pocket & Color | Retroarch Beetle NeoPop | .7z .ngp .ngc .bin .zip | | -| Nintendo 3DS | Citra | .3ds .3dsx .app .axf .cii .cxi .elf .cia(FOR INSTALL ONLY) | Title keys required for encrypted rom types | +| Nintendo 3DS | Citra | .3ds .3dsx .app .axf .cci .cxi .elf .cia(FOR INSTALL ONLY) | Title keys required for encrypted rom types | | Nintendo 64 | Retroarch Mupen64plus-Next | .7z .bin .n64 .ndd .u1 .v64 .z64 .zip | | | Nintendo DS | Retroarch melonDS core | .7z .nds .zip | bios7.bin
bios9.bin
firmware.bin | | Nintendo GameBoy | Retroarch Gambatte core | .7z .gb .dmg .zip | | @@ -46,9 +46,9 @@ EmuDeck has preloaded configurations for Steam Rom Manager for the following sys | Sega Master System | Retroarch Genesis Plus GX core | .7z .gen .sms .zip | | | Sega Saturn | Retroarch Yabause core | .7z .cue .iso .chd .zip | sega\_101.bin
mpr-17933.bin | | Sony Playstation | DuckStation Standalone
Retroarch Beetle HW | .cue .chd .ecm .iso .m3u .mds .pbp | scph5500.bin
scph5501.bin
scph5502.bin | -| Sony Playstation 2 | RPCSX2 | .bin .chd .cso .dump .gz .img .iso .mdf .nrg | Bios files are required. Here is an example set:
SCPH-70004\_BIOS\_V12\_EUR\_200.BIN
SCPH-70004\_BIOS\_V12\_EUR\_200.EROM
SCPH-70004\_BIOS\_V12\_EUR\_200.ROM1
SCPH-70004\_BIOS\_V12\_EUR\_200.ROM2 | +| Sony Playstation 2 | PCSX2 & PCSX2 QT | .bin .chd .cso .dump .gz .img .iso .mdf .nrg | Bios files are required. Here is an example set:
SCPH-70004\_BIOS\_V12\_EUR\_200.BIN
SCPH-70004\_BIOS\_V12\_EUR\_200.EROM
SCPH-70004\_BIOS\_V12\_EUR\_200.ROM1
SCPH-70004\_BIOS\_V12\_EUR\_200.ROM2 | | Sony Playstation 3 | RPCS3 | /PS3\_GAME/USRDIR/eboot.bin | Firmware installation in the Emulator is required. | -| Sony Playstation Portable | PPSSPP Standalone
PPSSPP Retroarch core | .7z .elf .cso .iso .pbp .prx | The retroarch core requires ppsspp.zip in the bios folder.
You can obtain it from within RetroArch's downloader.
Standalone PPSSPP does not require anything special. | +| Sony Playstation Portable | PPSSPP Standalone
PPSSPP Retroarch core | .7z (RA only) .elf .cso .iso .pbp .prx | The retroarch core requires ppsspp.zip in the bios folder.
You can obtain it from within RetroArch's downloader.
Standalone PPSSPP does not require anything special. | | Super Nintendo | Retroarch Snes9x Current core | .7z .bs .fig .sfc .smc .swx .zip | | | Super Nintendo Widescreen | Retroarch bsnes hd beta Current core | .7z .bs .fig .sfc .smc .swx .zip | | | Wonderswan & Color | Retroarch Beetle Cygne core | .7z .pc2 .ws .wsc .zip | diff --git a/changelog.md b/changelog.md index d0cf88ba..9afc0041 100644 --- a/changelog.md +++ b/changelog.md @@ -310,3 +310,22 @@ You have 2 chances and then it will disable the Expert mode settings that require a password. - Fix - Citra is now 2x instead of 3x res by default for performance reasons - Fix - Dolphin hotkey for Fast Forward has been updated from just Select to Select + R2 to match the other hotkeys + +0.17.6 + +- Added 16:9 bezel support for holoISO and Anbernic Win600 (or other 16:9 devices) +- Icon renamed to Update EmuDeck to avoid confusion +- Fixed Atari Bezels. Added bezels to Dreamcast, N64 and Saturn +- Fixed Dolphin and Primehack from sending button presses as part of hotkeys as in-game button presses +- Added Naomi (flycast) parser for Steam Rom Manager. Uses roms/naomi folder +- Fixed retroachievements not working for users with certain special characters in their passwords. +- Added easyRPG core to RA. Required additional files are not yet downloaded. You can add them manually. +- Added PCSX2-Qt AppImage and Steam Rom Manager Parser. This can live side by side with your existing pcsx2, but it should be removed. +- Migrate pcsx2 saves files to the Emulation folder. This is no longer a link. +- Both versions of Pcsx2 use the same saves location in their config so no matter which, you can save / load state. +- Expert mode settings are remembered. + If you run expert mode, and change a setting it will be retained and used on the next run of easy mode. (except install / reconfigure) +- RetroArch settings will be backed up before update. Settings files for this are no longer replaced. The options are updated or appended. +- Installing PluginLoader (powertools) now activates dev mode and installs the new version of the loader and plugin. Reboot may be required +- CHD script Renamed to Emudeck Compression Tool. New support for Wii games to convert them to rvz format +- ... too much more to fit here! \ No newline at end of file diff --git a/configs/Ryujinx/Config.json b/configs/Ryujinx/Config.json new file mode 100644 index 00000000..924fe868 --- /dev/null +++ b/configs/Ryujinx/Config.json @@ -0,0 +1,147 @@ +{ + "version": 40, + "enable_file_log": true, + "backend_threading": "Auto", + "res_scale": 1, + "res_scale_custom": 1, + "max_anisotropy": -1, + "aspect_ratio": "Fixed16x9", + "graphics_shaders_dump_path": "", + "logging_enable_debug": false, + "logging_enable_stub": true, + "logging_enable_info": true, + "logging_enable_warn": true, + "logging_enable_error": true, + "logging_enable_trace": false, + "logging_enable_guest": true, + "logging_enable_fs_access_log": false, + "logging_filtered_classes": [], + "logging_graphics_debug_level": "None", + "system_language": "AmericanEnglish", + "system_region": "USA", + "system_time_zone": "UTC", + "system_time_offset": 0, + "docked_mode": false, + "enable_discord_integration": true, + "check_updates_on_start": true, + "show_confirm_exit": true, + "hide_cursor_on_idle": false, + "enable_vsync": true, + "enable_shader_cache": true, + "enable_texture_recompression": false, + "enable_ptc": true, + "enable_internet_access": false, + "enable_fs_integrity_checks": true, + "fs_global_access_log_mode": 0, + "audio_backend": "SDL2", + "audio_volume": 1, + "memory_manager_mode": "HostMappedUnsafe", + "expand_ram": false, + "ignore_missing_services": false, + "gui_columns": { + "fav_column": true, + "icon_column": true, + "app_column": true, + "dev_column": true, + "version_column": true, + "time_played_column": true, + "last_played_column": true, + "file_ext_column": true, + "file_size_column": true, + "path_column": true + }, + "column_sort": { + "sort_column_id": 0, + "sort_ascending": false + }, + "game_dirs": [ + "/run/media/mmcblk0p1/Emulation/roms/switch" + ], + "language_code": "en_US", + "enable_custom_theme": false, + "custom_theme_path": "", + "base_style": "Dark", + "game_list_view_mode": 0, + "show_names": true, + "grid_size": 2, + "application_sort": 0, + "is_ascending_order": true, + "start_fullscreen": true, + "show_console": true, + "enable_keyboard": false, + "enable_mouse": false, + "hotkeys": { + "toggle_vsync": "Tab", + "screenshot": "F8", + "show_ui": "F4", + "pause": "F5", + "toggle_mute": "F2", + "res_scale_up": "Unbound", + "res_scale_down": "Unbound" + }, + "keyboard_config": [], + "controller_config": [], + "input_config": [ + { + "left_joycon_stick": { + "joystick": "Left", + "invert_stick_x": false, + "invert_stick_y": false, + "rotate90_cw": false, + "stick_button": "LeftStick" + }, + "right_joycon_stick": { + "joystick": "Right", + "invert_stick_x": false, + "invert_stick_y": false, + "rotate90_cw": false, + "stick_button": "RightStick" + }, + "deadzone_left": 0, + "deadzone_right": 0, + "range_left": 1.2, + "range_right": 1, + "trigger_threshold": 0, + "motion": { + "motion_backend": "GamepadDriver", + "sensitivity": 100, + "gyro_deadzone": 1, + "enable_motion": false + }, + "rumble": { + "strong_rumble": 1, + "weak_rumble": 1, + "enable_rumble": true + }, + "left_joycon": { + "button_minus": "Minus", + "button_l": "LeftShoulder", + "button_zl": "LeftTrigger", + "button_sl": "Unbound", + "button_sr": "Unbound", + "dpad_up": "DpadUp", + "dpad_down": "DpadDown", + "dpad_left": "DpadLeft", + "dpad_right": "DpadRight" + }, + "right_joycon": { + "button_plus": "Plus", + "button_r": "RightShoulder", + "button_zr": "RightTrigger", + "button_sl": "Unbound", + "button_sr": "Unbound", + "button_x": "Y", + "button_b": "A", + "button_y": "X", + "button_a": "B" + }, + "version": 1, + "backend": "GamepadSDL2", + "id": "0-00000003-28de-0000-ff11-000001000000", + "controller_type": "ProController", + "player_index": "Player1" + } + ], + "graphics_backend": "Vulkan", + "preferred_gpu": "0x1002_0x163F" +} diff --git a/configs/Ryujinx/profiles/controller/Deck.json b/configs/Ryujinx/profiles/controller/Deck.json new file mode 100644 index 00000000..595e1419 --- /dev/null +++ b/configs/Ryujinx/profiles/controller/Deck.json @@ -0,0 +1,59 @@ +{ + "left_joycon_stick": { + "joystick": "Left", + "invert_stick_x": false, + "invert_stick_y": false, + "rotate90_cw": false, + "stick_button": "LeftStick" + }, + "right_joycon_stick": { + "joystick": "Right", + "invert_stick_x": false, + "invert_stick_y": false, + "rotate90_cw": false, + "stick_button": "RightStick" + }, + "deadzone_left": 0, + "deadzone_right": 0, + "range_left": 1.2, + "range_right": 1, + "trigger_threshold": 0, + "motion": { + "motion_backend": "GamepadDriver", + "sensitivity": 100, + "gyro_deadzone": 1, + "enable_motion": false + }, + "rumble": { + "strong_rumble": 1, + "weak_rumble": 1, + "enable_rumble": true + }, + "left_joycon": { + "button_minus": "Minus", + "button_l": "LeftShoulder", + "button_zl": "LeftTrigger", + "button_sl": "Unbound", + "button_sr": "Unbound", + "dpad_up": "DpadUp", + "dpad_down": "DpadDown", + "dpad_left": "DpadLeft", + "dpad_right": "DpadRight" + }, + "right_joycon": { + "button_plus": "Plus", + "button_r": "RightShoulder", + "button_zr": "RightTrigger", + "button_sl": "Unbound", + "button_sr": "Unbound", + "button_x": "Y", + "button_b": "A", + "button_y": "X", + "button_a": "B" + }, + "version": 1, + "backend": "GamepadSDL2", + "id": "0-00000003-28de-0000-ff11-000001000000", + "controller_type": "ProController", + "player_index": "Player1" +} \ No newline at end of file diff --git a/configs/app.xemu.xemu/data/xemu/xemu/xemu.ini b/configs/app.xemu.xemu/data/xemu/xemu/xemu.ini deleted file mode 100644 index 897e91d5..00000000 --- a/configs/app.xemu.xemu/data/xemu/xemu/xemu.ini +++ /dev/null @@ -1,31 +0,0 @@ -[system] -flash_path = /run/media/mmcblk0p1/Emulation/bios/Complex_4627v1.03.bin -bootrom_path = /run/media/mmcblk0p1/Emulation/bios/mcpx_1.0.bin -hdd_path = /home/deck/.var/app/app.xemu.xemu/data/xemu/xemu/xbox_hdd.qcow2 -eeprom_path = /home/deck/.var/app/app.xemu.xemu/data/xemu/xemu/eeprom.bin -dvd_path = -memory = 128 -shortanim = true -hard_fpu = true -[audio] -use_dsp = false -[display] -scale = scale_fs43 -ui_scale = 1 -render_scale = 1 -window_width = 1279 -window_height = 960 -[input] -controller_1_guid = 03000000de280000ff11000001000000 -controller_2_guid = -controller_3_guid = -controller_4_guid = -[network] -enabled = false -backend = user -local_addr = 0.0.0.0:9368 -remote_addr = 1.2.3.4:9368 -pcap_iface = -[misc] -user_token = -check_for_update = \ No newline at end of file diff --git a/configs/emulationstation/gamelists/saturn/gamelist.xml b/configs/emulationstation/gamelists/saturn/gamelist.xml new file mode 100644 index 00000000..0eda7349 --- /dev/null +++ b/configs/emulationstation/gamelists/saturn/gamelist.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/configs/io.github.shiiion.primehack/config/dolphin-emu/Hotkeys.ini b/configs/io.github.shiiion.primehack/config/dolphin-emu/Hotkeys.ini index 21be9b9b..8e0b2fa5 100644 --- a/configs/io.github.shiiion.primehack/config/dolphin-emu/Hotkeys.ini +++ b/configs/io.github.shiiion.primehack/config/dolphin-emu/Hotkeys.ini @@ -41,9 +41,9 @@ GBA Window Size/1x = `KP_1` GBA Window Size/2x = `KP_2` GBA Window Size/3x = `KP_3` GBA Window Size/4x = `KP_4` -General/Exit = SELECT&START -General/Stop = SELECT&WEST -Emulation Speed/Disable Emulation Speed Limit = SELECT&`Full Axis 5+` -PrimeHack Cheats/Toggle Skippable Cutscenes = SELECT&`Full Axis 2+` -Save State/Save to Selected Slot = SELECT&TR -Load State/Load from Selected Slot = SELECT&TL +General/Exit = @(SELECT+START) +General/Stop = @(SELECT+WEST) +Emulation Speed/Disable Emulation Speed Limit = @(SELECT+`Full Axis 5+`) +PrimeHack Cheats/Toggle Skippable Cutscenes = @(SELECT+`Full Axis 2+`) +Save State/Save to Selected Slot = @(SELECT+TR) +Load State/Load from Selected Slot = @(SELECT+TL) diff --git a/configs/mame/cfg/default.cfg b/configs/mame/cfg/default.cfg new file mode 100644 index 00000000..21d7a6bc --- /dev/null +++ b/configs/mame/cfg/default.cfg @@ -0,0 +1,233 @@ + + + + + + + + JOYCODE_1_HAT1UP + + + + + JOYCODE_1_HAT1DOWN + + + + + JOYCODE_1_HAT1LEFT + + + + + JOYCODE_1_HAT1RIGHT + + + + + JOYCODE_1_RYAXIS_NEG_SWITCH + + + + + JOYCODE_1_RYAXIS_POS_SWITCH + + + + + JOYCODE_1_RXAXIS_NEG_SWITCH + + + + + JOYCODE_1_RXAXIS_POS_SWITCH + + + + + JOYCODE_1_YAXIS_UP_SWITCH + + + + + JOYCODE_1_YAXIS_DOWN_SWITCH + + + + + JOYCODE_1_XAXIS_LEFT_SWITCH + + + + + JOYCODE_1_XAXIS_RIGHT_SWITCH + + + + + JOYCODE_1_BUTTON3 + + + + + JOYCODE_1_BUTTON1 + + + + + JOYCODE_1_BUTTON2 + + + + + JOYCODE_1_BUTTON4 + + + + + JOYCODE_1_BUTTON5 + + + + + JOYCODE_1_BUTTON6 + + + + + JOYCODE_1_BUTTON7 + + + + + JOYCODE_1_BUTTON8 + + + + + JOYCODE_1_BUTTON10 + + + + + JOYCODE_1_BUTTON11 + + + + + JOYCODE_1_BUTTON8 + + + + + JOYCODE_1_BUTTON7 + + + + + JOYCODE_1_BUTTON8 + + + + + JOYCODE_1_BUTTON7 + + + + + JOYCODE_1_BUTTON7 JOYCODE_1_BUTTON11 + + + + + JOYCODE_1_BUTTON10 JOYCODE_1_BUTTON11 + + + + + NONE + + + + + JOYCODE_1_BUTTON7 JOYCODE_1_BUTTON1 + + + + + JOYCODE_1_BUTTON8 JOYCODE_1_ZAXIS_NEG_SWITCH + + + + + JOYCODE_1_BUTTON8 JOYCODE_1_BUTTON4 + + + + + KEYCODE_UP OR JOYCODE_1_YAXIS_UP_SWITCH OR JOYCODE_1_HAT1UP + + + + + KEYCODE_DOWN OR JOYCODE_1_YAXIS_DOWN_SWITCH OR JOYCODE_1_HAT1DOWN + + + + + KEYCODE_LEFT OR JOYCODE_1_XAXIS_LEFT_SWITCH OR JOYCODE_1_HAT1LEFT + + + + + KEYCODE_RIGHT OR JOYCODE_1_XAXIS_RIGHT_SWITCH OR JOYCODE_1_HAT1RIGHT + + + + + KEYCODE_HOME OR JOYCODE_1_RZAXIS_NEG_SWITCH + + + + + KEYCODE_END OR JOYCODE_1_ZAXIS_NEG_SWITCH + + + + + KEYCODE_PGUP OR JOYCODE_1_BUTTON5 + + + + + KEYCODE_PGDN OR JOYCODE_1_BUTTON6 + + + + + KEYCODE_TAB NOT KEYCODE_LSHIFT NOT KEYCODE_RSHIFT OR JOYCODE_1_BUTTON11 + + + + + KEYCODE_ESC OR JOYCODE_1_BUTTON7 JOYCODE_1_BUTTON8 + + + + + JOYCODE_1_BUTTON3 + + + + + JOYCODE_1_BUTTON7 JOYCODE_1_BUTTON6 + + + + + JOYCODE_1_BUTTON7 JOYCODE_1_BUTTON5 + + + + + diff --git a/configs/mame/mame.ini b/configs/mame/mame.ini new file mode 100644 index 00000000..3d267c3d --- /dev/null +++ b/configs/mame/mame.ini @@ -0,0 +1,349 @@ +# +# CORE CONFIGURATION OPTIONS +# +readconfig 1 +writeconfig 0 + +# +# CORE SEARCH PATH OPTIONS +# +homepath $HOME/.mame +rompath /app/share/mame/roms +hashpath /app/share/mame/hash +samplepath /app/share/mame/samples +artpath /app/share/mame/artwork +ctrlrpath /app/share/mame/ctrlr +inipath $HOME/.mame;/app/share/mame/ini +fontpath /app/bin/ +cheatpath /app/share/mame/cheat +crosshairpath /app/share/mame/crosshair +pluginspath /app/share/mame/plugins +languagepath /app/share/mame/language +swpath /app/share/mame/software + +# +# CORE OUTPUT DIRECTORY OPTIONS +# +cfg_directory $HOME/.mame/cfg +nvram_directory $HOME/.mame/nvram +input_directory $HOME/.mame/inp +state_directory $HOME/.mame/sta +snapshot_directory $HOME/.mame/snap +diff_directory $HOME/.mame/diff +comment_directory $HOME/.mame/comments +share_directory $HOME/.mame/share + +# +# CORE STATE/PLAYBACK OPTIONS +# +state +autosave 0 +rewind 0 +rewind_capacity 100 +playback +record +exit_after_playback 0 +mngwrite +aviwrite +wavwrite +snapname %g/%i +snapsize auto +snapview auto +snapbilinear 1 +statename %g +burnin 0 + +# +# CORE PERFORMANCE OPTIONS +# +autoframeskip 0 +frameskip 0 +seconds_to_run 0 +throttle 1 +sleep 1 +speed 1.0 +refreshspeed 0 +lowlatency 0 + +# +# CORE RENDER OPTIONS +# +keepaspect 1 +unevenstretch 1 +unevenstretchx 0 +unevenstretchy 0 +autostretchxy 0 +intoverscan 0 +intscalex 0 +intscaley 0 + +# +# CORE ROTATION OPTIONS +# +rotate 1 +ror 0 +rol 0 +autoror 0 +autorol 0 +flipx 0 +flipy 0 + +# +# CORE ARTWORK OPTIONS +# +artwork_crop 0 +fallback_artwork +override_artwork + +# +# CORE SCREEN OPTIONS +# +brightness 1.0 +contrast 1.0 +gamma 1.0 +pause_brightness 0.65 +effect none + +# +# CORE VECTOR OPTIONS +# +beam_width_min 1.0 +beam_width_max 1.0 +beam_dot_size 1.0 +beam_intensity_weight 0 +flicker 0 + +# +# CORE SOUND OPTIONS +# +samplerate 48000 +samples 1 +volume 0 +compressor 1 +speaker_report 0 + +# +# CORE INPUT OPTIONS +# +coin_lockout 1 +ctrlr +mouse 0 +joystick 1 +lightgun 0 +multikeyboard 0 +multimouse 0 +steadykey 0 +ui_active 0 +offscreen_reload 0 +joystick_map auto +joystick_deadzone 0.3 +joystick_saturation 0.85 +natural 0 +joystick_contradictory 0 +coin_impulse 0 + +# +# CORE INPUT AUTOMATIC ENABLE OPTIONS +# +paddle_device keyboard +adstick_device keyboard +pedal_device keyboard +dial_device keyboard +trackball_device keyboard +lightgun_device keyboard +positional_device keyboard +mouse_device mouse + +# +# CORE DEBUGGING OPTIONS +# +verbose 0 +log 0 +oslog 0 +debug 0 +update_in_pause 0 +debugscript +debuglog 0 + +# +# CORE COMM OPTIONS +# +comm_localhost 0.0.0.0 +comm_localport 15112 +comm_remotehost 127.0.0.1 +comm_remoteport 15112 +comm_framesync 0 + +# +# CORE MISC OPTIONS +# +drc 1 +drc_use_c 0 +drc_log_uml 0 +drc_log_native 0 +bios +cheat 0 +skip_gameinfo 0 +uifont default +ui cabinet +ramsize +confirm_quit 0 +ui_mouse 1 +language +nvram_save 1 + +# +# SCRIPTING OPTIONS +# +autoboot_command +autoboot_delay 0 +autoboot_script +console 0 +plugins 1 +plugin +noplugin + +# +# HTTP SERVER OPTIONS +# +http 0 +http_port 8080 +http_root web + +# +# OSD KEYBOARD MAPPING OPTIONS +# +uimodekey SCRLOCK + +# +# OSD FONT OPTIONS +# +uifontprovider auto + +# +# OSD OUTPUT OPTIONS +# +output auto + +# +# OSD INPUT OPTIONS +# +keyboardprovider auto +mouseprovider auto +lightgunprovider auto +joystickprovider auto + +# +# OSD DEBUGGING OPTIONS +# +debugger auto +debugger_port 23946 +debugger_font auto +debugger_font_size 0 +watchdog 0 + +# +# OSD PERFORMANCE OPTIONS +# +numprocessors auto +bench 0 + +# +# OSD VIDEO OPTIONS +# +video opengl +numscreens 1 +window 0 +maximize 1 +waitvsync 0 +syncrefresh 0 +monitorprovider auto + +# +# OSD PER-WINDOW VIDEO OPTIONS +# +screen auto +aspect auto +resolution auto +view auto +screen0 auto +aspect0 auto +resolution0 auto +view0 auto +screen1 auto +aspect1 auto +resolution1 auto +view1 auto +screen2 auto +aspect2 auto +resolution2 auto +view2 auto +screen3 auto +aspect3 auto +resolution3 auto +view3 auto + +# +# OSD FULL SCREEN OPTIONS +# +switchres 0 + +# +# OSD ACCELERATED VIDEO OPTIONS +# +filter 1 +prescale 1 + +# +# OpenGL-SPECIFIC OPTIONS +# +gl_forcepow2texture 0 +gl_notexturerect 0 +gl_vbo 1 +gl_pbo 1 +gl_glsl 0 +gl_glsl_filter 1 +glsl_shader_mame0 none +glsl_shader_mame1 none +glsl_shader_mame2 none +glsl_shader_mame3 none +glsl_shader_mame4 none +glsl_shader_mame5 none +glsl_shader_mame6 none +glsl_shader_mame7 none +glsl_shader_mame8 none +glsl_shader_mame9 none +glsl_shader_screen0 none +glsl_shader_screen1 none +glsl_shader_screen2 none +glsl_shader_screen3 none +glsl_shader_screen4 none +glsl_shader_screen5 none +glsl_shader_screen6 none +glsl_shader_screen7 none +glsl_shader_screen8 none +glsl_shader_screen9 none + +# +# OSD SOUND OPTIONS +# +sound auto +audio_latency 2 + +# +# PORTAUDIO OPTIONS +# +pa_api none +pa_device none +pa_latency 0 + +# +# BGFX POST-PROCESSING OPTIONS +# +bgfx_path bgfx +bgfx_backend auto +bgfx_debug 0 +bgfx_screen_chains default +bgfx_shadow_mask slot-mask.png +bgfx_lut lut-default.png +bgfx_avi_name auto diff --git a/configs/org.DolphinEmu.dolphin-emu/config/dolphin-emu/Hotkeys.ini b/configs/org.DolphinEmu.dolphin-emu/config/dolphin-emu/Hotkeys.ini index af6b118e..6ab8d585 100644 --- a/configs/org.DolphinEmu.dolphin-emu/config/dolphin-emu/Hotkeys.ini +++ b/configs/org.DolphinEmu.dolphin-emu/config/dolphin-emu/Hotkeys.ini @@ -2,10 +2,10 @@ Device = evdev/0/Microsoft X-Box 360 pad 0 General/Open = @(Ctrl+O) General/Toggle Pause = F10 -General/Stop = SELECT&WEST +General/Stop = @(SELECT+WEST) General/Toggle Fullscreen = @(Alt+Return) General/Take Screenshot = F9 -Emulation Speed/Disable Emulation Speed Limit = SELECT&`Full Axis 5+` +Emulation Speed/Disable Emulation Speed Limit = @(SELECT+`Full Axis 5+`) Stepping/Step Into = F11 Stepping/Step Over = @(Shift+F10) Stepping/Step Out = @(Shift+F11) @@ -43,6 +43,6 @@ GBA Window Size/1x = `KP_1` GBA Window Size/2x = `KP_2` GBA Window Size/3x = `KP_3` GBA Window Size/4x = `KP_4` -Load State/Load from Selected Slot = SELECT&TL -Save State/Save to Selected Slot = SELECT&TR -General/Exit = SELECT&START +Load State/Load from Selected Slot = @(SELECT+TL) +Save State/Save to Selected Slot = @(SELECT+TR) +General/Exit = @(SELECT+START) diff --git a/configs/org.duckstation.DuckStation/data/duckstation/settings.ini b/configs/org.duckstation.DuckStation/data/duckstation/settings.ini index acc29a03..ef9ecd8a 100644 --- a/configs/org.duckstation.DuckStation/data/duckstation/settings.ini +++ b/configs/org.duckstation.DuckStation/data/duckstation/settings.ini @@ -79,7 +79,7 @@ ActiveStartOffset = 0 ActiveEndOffset = 0 LineStartOffset = 0 LineEndOffset = 0 -AspectRatio = Auto (Game Native) +AspectRatio = 4:3 CustomAspectRatioNumerator = 4 Force4_3For24Bit = true LinearFiltering = true diff --git a/configs/org.libretro.RetroArch/config/retroarch/config/Beetle Cygne/wswan.glslp b/configs/org.libretro.RetroArch/config/retroarch/config/Beetle Cygne/wonderswancolor.glslp similarity index 100% rename from configs/org.libretro.RetroArch/config/retroarch/config/Beetle Cygne/wswan.glslp rename to configs/org.libretro.RetroArch/config/retroarch/config/Beetle Cygne/wonderswancolor.glslp diff --git a/configs/org.libretro.RetroArch/config/retroarch/config/Beetle Cygne/wswan.slangp b/configs/org.libretro.RetroArch/config/retroarch/config/Beetle Cygne/wonderswancolor.slangp similarity index 100% rename from configs/org.libretro.RetroArch/config/retroarch/config/Beetle Cygne/wswan.slangp rename to configs/org.libretro.RetroArch/config/retroarch/config/Beetle Cygne/wonderswancolor.slangp diff --git a/configs/org.libretro.RetroArch/config/retroarch/config/Beetle Cygne/wswan.cfg b/configs/org.libretro.RetroArch/config/retroarch/config/Beetle Cygne/wswan.cfg deleted file mode 100644 index 872d0ae2..00000000 --- a/configs/org.libretro.RetroArch/config/retroarch/config/Beetle Cygne/wswan.cfg +++ /dev/null @@ -1,8 +0,0 @@ -video_shader_enable = true -aspect_ratio_index = "21" -input_overlay = "/home/deck/.var/app/org.libretro.RetroArch/config/retroarch/overlays/pegasus/wswan.cfg" -input_overlay_auto_scale = "false" -input_overlay_enable = "true" -input_overlay_opacity = "0.700000" -input_overlay_scale_landscape = "1.170000" -video_scale_integer = "false" \ No newline at end of file diff --git a/configs/org.libretro.RetroArch/config/retroarch/config/Beetle Cygne/wswanc.cfg b/configs/org.libretro.RetroArch/config/retroarch/config/Beetle Cygne/wswanc.cfg deleted file mode 100644 index 08cf800e..00000000 --- a/configs/org.libretro.RetroArch/config/retroarch/config/Beetle Cygne/wswanc.cfg +++ /dev/null @@ -1,8 +0,0 @@ -video_shader_enable = true -aspect_ratio_index = "21" -input_overlay = "/home/deck/.var/app/org.libretro.RetroArch/config/retroarch/overlays/pegasus/wswanc.cfg" -input_overlay_auto_scale = "false" -input_overlay_enable = "true" -input_overlay_opacity = "0.700000" -input_overlay_scale_landscape = "1.170000" -video_scale_integer = "false" \ No newline at end of file diff --git a/configs/org.libretro.RetroArch/config/retroarch/config/Beetle Lynx/lynx.cfg b/configs/org.libretro.RetroArch/config/retroarch/config/Beetle Lynx/lynx.cfg deleted file mode 100644 index 18858e77..00000000 --- a/configs/org.libretro.RetroArch/config/retroarch/config/Beetle Lynx/lynx.cfg +++ /dev/null @@ -1,8 +0,0 @@ -video_shader_enable = true -aspect_ratio_index = "21" -input_overlay = "/home/deck/.var/app/org.libretro.RetroArch/config/retroarch/overlays/pegasus/lynx.cfg" -input_overlay_auto_scale = "false" -input_overlay_enable = "true" -input_overlay_opacity = "0.700000" -input_overlay_scale_landscape = "1.170000" -video_scale_integer = "false" \ No newline at end of file diff --git a/configs/org.libretro.RetroArch/config/retroarch/config/Beetle NeoPop/ngp.cfg b/configs/org.libretro.RetroArch/config/retroarch/config/Beetle NeoPop/ngp.cfg deleted file mode 100644 index ba6bb298..00000000 --- a/configs/org.libretro.RetroArch/config/retroarch/config/Beetle NeoPop/ngp.cfg +++ /dev/null @@ -1,10 +0,0 @@ -aspect_ratio_index = "21" -input_overlay = "/home/deck/.var/app/org.libretro.RetroArch/config/retroarch/overlays/pegasus/ngpc.cfg" -input_overlay_aspect_adjust_landscape = "-0.310000" -input_overlay_auto_scale = "false" -input_overlay_enable = "true" -input_overlay_hide_in_menu = "false" -input_overlay_scale_landscape = "1.625000" -input_overlay_x_separation_portrait = "-0.010000" -input_overlay_y_offset_landscape = "-0.135000" -video_shader_enable = "true" diff --git a/configs/org.libretro.RetroArch/config/retroarch/config/Beetle NeoPop/ngpc.cfg b/configs/org.libretro.RetroArch/config/retroarch/config/Beetle NeoPop/ngpc.cfg deleted file mode 100644 index a723ae18..00000000 --- a/configs/org.libretro.RetroArch/config/retroarch/config/Beetle NeoPop/ngpc.cfg +++ /dev/null @@ -1,9 +0,0 @@ -aspect_ratio_index = "21" -input_overlay = "/home/deck/.var/app/org.libretro.RetroArch/config/retroarch/overlays/pegasus/ngpc.cfg" -input_overlay_aspect_adjust_landscape = "-0.170000" -input_overlay_auto_scale = "false" -input_overlay_enable = "true" -input_overlay_scale_landscape = "1.615000" -input_overlay_x_separation_portrait = "-0.010000" -input_overlay_y_offset_landscape = "-0.135000" -video_shader_enable = "true" diff --git a/configs/org.libretro.RetroArch/config/retroarch/config/Beetle PCE Fast/pcencine.glslp b/configs/org.libretro.RetroArch/config/retroarch/config/Beetle PCE Fast/pcencine.glslp new file mode 100644 index 00000000..95b33fc3 --- /dev/null +++ b/configs/org.libretro.RetroArch/config/retroarch/config/Beetle PCE Fast/pcencine.glslp @@ -0,0 +1 @@ +#reference "/app/share/libretro/shaders/shaders_glsl/crt/crt-royale-fake-bloom.glslp" \ No newline at end of file diff --git a/configs/org.libretro.RetroArch/config/retroarch/config/Beetle PCE Fast/pcengine.cfg b/configs/org.libretro.RetroArch/config/retroarch/config/Beetle PCE Fast/pcengine.cfg deleted file mode 100644 index f140777a..00000000 --- a/configs/org.libretro.RetroArch/config/retroarch/config/Beetle PCE Fast/pcengine.cfg +++ /dev/null @@ -1,8 +0,0 @@ -aspect_ratio_index = "21" -custom_viewport_height = "1200" -custom_viewport_x = "0" -input_overlay = "/home/deck/.var/app/org.libretro.RetroArch/config/retroarch/overlays/pegasus/pcengine.cfg" -input_overlay_auto_scale = "false" -input_overlay_enable = "true" -input_overlay_hide_in_menu = "false" -input_overlay_scale_landscape = "1.025000" diff --git a/configs/org.libretro.RetroArch/config/retroarch/config/Beetle PCE Fast/pcengine.slangp b/configs/org.libretro.RetroArch/config/retroarch/config/Beetle PCE Fast/pcengine.slangp new file mode 100644 index 00000000..8b4a396e --- /dev/null +++ b/configs/org.libretro.RetroArch/config/retroarch/config/Beetle PCE Fast/pcengine.slangp @@ -0,0 +1 @@ +#reference /app/share/libretro/shaders/shaders_slang/crt/crt-royale-fake-bloom.slangp \ No newline at end of file diff --git a/configs/org.libretro.RetroArch/config/retroarch/config/Beetle PCE/pcencine.glslp b/configs/org.libretro.RetroArch/config/retroarch/config/Beetle PCE/pcencine.glslp new file mode 100644 index 00000000..95b33fc3 --- /dev/null +++ b/configs/org.libretro.RetroArch/config/retroarch/config/Beetle PCE/pcencine.glslp @@ -0,0 +1 @@ +#reference "/app/share/libretro/shaders/shaders_glsl/crt/crt-royale-fake-bloom.glslp" \ No newline at end of file diff --git a/configs/org.libretro.RetroArch/config/retroarch/config/Beetle PCE/pcengine.slangp b/configs/org.libretro.RetroArch/config/retroarch/config/Beetle PCE/pcengine.slangp new file mode 100644 index 00000000..8b4a396e --- /dev/null +++ b/configs/org.libretro.RetroArch/config/retroarch/config/Beetle PCE/pcengine.slangp @@ -0,0 +1 @@ +#reference /app/share/libretro/shaders/shaders_slang/crt/crt-royale-fake-bloom.slangp \ No newline at end of file diff --git a/configs/org.libretro.RetroArch/config/retroarch/config/Beetle PSX HW/Beetle PSX HW.opt b/configs/org.libretro.RetroArch/config/retroarch/config/Beetle PSX HW/Beetle PSX HW.opt deleted file mode 100644 index 2a19de18..00000000 --- a/configs/org.libretro.RetroArch/config/retroarch/config/Beetle PSX HW/Beetle PSX HW.opt +++ /dev/null @@ -1,65 +0,0 @@ -beetle_psx_hw_adaptive_smoothing = "disabled" -beetle_psx_hw_analog_calibration = "disabled" -beetle_psx_hw_analog_toggle = "disabled" -beetle_psx_hw_aspect_ratio = "corrected" -beetle_psx_hw_cd_access_method = "sync" -beetle_psx_hw_cd_fastload = "2x(native)" -beetle_psx_hw_core_timing_fps = "force_progressive" -beetle_psx_hw_cpu_dynarec = "disabled" -beetle_psx_hw_cpu_freq_scale = "100%(native)" -beetle_psx_hw_crop_overscan = "smart" -beetle_psx_hw_crosshair_color_p1 = "red" -beetle_psx_hw_crosshair_color_p2 = "blue" -beetle_psx_hw_depth = "16bpp(native)" -beetle_psx_hw_display_internal_fps = "disabled" -beetle_psx_hw_display_vram = "disabled" -beetle_psx_hw_dither_mode = "1x(native)" -beetle_psx_hw_dump_textures = "disabled" -beetle_psx_hw_dynarec_eventcycles = "128" -beetle_psx_hw_dynarec_invalidate = "full" -beetle_psx_hw_enable_memcard1 = "enabled" -beetle_psx_hw_enable_multitap_port1 = "disabled" -beetle_psx_hw_enable_multitap_port2 = "disabled" -beetle_psx_hw_filter = "nearest" -beetle_psx_hw_filter_exclude_2d_polygon = "disabled" -beetle_psx_hw_filter_exclude_sprite = "disabled" -beetle_psx_hw_frame_duping = "disabled" -beetle_psx_hw_gpu_overclock = "1x(native)" -beetle_psx_hw_gte_overclock = "disabled" -beetle_psx_hw_gun_cursor = "cross" -beetle_psx_hw_gun_input_mode = "lightgun" -beetle_psx_hw_image_crop = "disabled" -beetle_psx_hw_image_offset = "disabled" -beetle_psx_hw_image_offset_cycles = "0" -beetle_psx_hw_initial_scanline = "0" -beetle_psx_hw_initial_scanline_pal = "0" -beetle_psx_hw_internal_resolution = "2x" -beetle_psx_hw_last_scanline = "239" -beetle_psx_hw_last_scanline_pal = "287" -beetle_psx_hw_line_render = "default" -beetle_psx_hw_mdec_yuv = "disabled" -beetle_psx_hw_memcard_left_index = "0" -beetle_psx_hw_memcard_right_index = "1" -beetle_psx_hw_mouse_sensitivity = "100%" -beetle_psx_hw_msaa = "1x" -beetle_psx_hw_negcon_deadzone = "0%" -beetle_psx_hw_negcon_response = "linear" -beetle_psx_hw_override_bios = "disabled" -beetle_psx_hw_pal_video_timing_override = "disabled" -beetle_psx_hw_pgxp_2d_tol = "disabled" -beetle_psx_hw_pgxp_mode = "disabled" -beetle_psx_hw_pgxp_nclip = "disabled" -beetle_psx_hw_pgxp_texture = "disabled" -beetle_psx_hw_pgxp_vertex = "disabled" -beetle_psx_hw_renderer = "hardware" -beetle_psx_hw_renderer_software_fb = "enabled" -beetle_psx_hw_replace_textures = "disabled" -beetle_psx_hw_scaled_uv_offset = "enabled" -beetle_psx_hw_shared_memory_cards = "disabled" -beetle_psx_hw_skip_bios = "disabled" -beetle_psx_hw_super_sampling = "disabled" -beetle_psx_hw_track_textures = "disabled" -beetle_psx_hw_use_mednafen_memcard0_method = "libretro" -beetle_psx_hw_widescreen_hack = "enabled" -beetle_psx_hw_widescreen_hack_aspect_ratio = "16:9" -beetle_psx_hw_wireframe = "disabled" diff --git a/configs/org.libretro.RetroArch/config/retroarch/config/Beetle PSX HW/psx.glslp b/configs/org.libretro.RetroArch/config/retroarch/config/Beetle PSX HW/psx.glslp new file mode 100644 index 00000000..95b33fc3 --- /dev/null +++ b/configs/org.libretro.RetroArch/config/retroarch/config/Beetle PSX HW/psx.glslp @@ -0,0 +1 @@ +#reference "/app/share/libretro/shaders/shaders_glsl/crt/crt-royale-fake-bloom.glslp" \ No newline at end of file diff --git a/configs/org.libretro.RetroArch/config/retroarch/config/Beetle PSX HW/psx.slangp b/configs/org.libretro.RetroArch/config/retroarch/config/Beetle PSX HW/psx.slangp new file mode 100644 index 00000000..8b4a396e --- /dev/null +++ b/configs/org.libretro.RetroArch/config/retroarch/config/Beetle PSX HW/psx.slangp @@ -0,0 +1 @@ +#reference /app/share/libretro/shaders/shaders_slang/crt/crt-royale-fake-bloom.slangp \ No newline at end of file diff --git a/configs/org.libretro.RetroArch/config/retroarch/config/Beetle PSX/psx.glslp b/configs/org.libretro.RetroArch/config/retroarch/config/Beetle PSX/psx.glslp new file mode 100644 index 00000000..95b33fc3 --- /dev/null +++ b/configs/org.libretro.RetroArch/config/retroarch/config/Beetle PSX/psx.glslp @@ -0,0 +1 @@ +#reference "/app/share/libretro/shaders/shaders_glsl/crt/crt-royale-fake-bloom.glslp" \ No newline at end of file diff --git a/configs/org.libretro.RetroArch/config/retroarch/config/Beetle PSX/psx.slangp b/configs/org.libretro.RetroArch/config/retroarch/config/Beetle PSX/psx.slangp new file mode 100644 index 00000000..8b4a396e --- /dev/null +++ b/configs/org.libretro.RetroArch/config/retroarch/config/Beetle PSX/psx.slangp @@ -0,0 +1 @@ +#reference /app/share/libretro/shaders/shaders_slang/crt/crt-royale-fake-bloom.slangp \ No newline at end of file diff --git a/configs/org.libretro.RetroArch/config/retroarch/config/Beetle Cygne/wswanc.glslp b/configs/org.libretro.RetroArch/config/retroarch/config/Beetle WonderSwan/wonderswancolor.glslp similarity index 100% rename from configs/org.libretro.RetroArch/config/retroarch/config/Beetle Cygne/wswanc.glslp rename to configs/org.libretro.RetroArch/config/retroarch/config/Beetle WonderSwan/wonderswancolor.glslp diff --git a/configs/org.libretro.RetroArch/config/retroarch/config/Beetle Cygne/wswanc.slangp b/configs/org.libretro.RetroArch/config/retroarch/config/Beetle WonderSwan/wonderswancolor.slangp similarity index 100% rename from configs/org.libretro.RetroArch/config/retroarch/config/Beetle Cygne/wswanc.slangp rename to configs/org.libretro.RetroArch/config/retroarch/config/Beetle WonderSwan/wonderswancolor.slangp diff --git a/configs/org.libretro.RetroArch/config/retroarch/config/Flycast/Flycast.opt b/configs/org.libretro.RetroArch/config/retroarch/config/Flycast/Flycast.opt deleted file mode 100644 index 06f79377..00000000 --- a/configs/org.libretro.RetroArch/config/retroarch/config/Flycast/Flycast.opt +++ /dev/null @@ -1,65 +0,0 @@ -reicast_allow_service_buttons = "disabled" -reicast_alpha_sorting = "per-triangle (normal)" -reicast_analog_stick_deadzone = "15%" -reicast_anisotropic_filtering = "4" -reicast_auto_skip_frame = "disabled" -reicast_boot_to_bios = "disabled" -reicast_broadcast = "NTSC" -reicast_cable_type = "TV (Composite)" -reicast_custom_textures = "disabled" -reicast_delay_frame_swapping = "disabled" -reicast_digital_triggers = "disabled" -reicast_dump_textures = "disabled" -reicast_enable_dsp = "enabled" -reicast_enable_purupuru = "enabled" -reicast_enable_rttb = "disabled" -reicast_fog = "enabled" -reicast_force_wince = "disabled" -reicast_frame_skipping = "disabled" -reicast_gdrom_fast_loading = "disabled" -reicast_hle_bios = "disabled" -reicast_internal_resolution = "960x720" -reicast_language = "Default" -reicast_lightgun1_crosshair = "disabled" -reicast_lightgun2_crosshair = "disabled" -reicast_lightgun3_crosshair = "disabled" -reicast_lightgun4_crosshair = "disabled" -reicast_mipmapping = "enabled" -reicast_oit_abuffer_size = "512MB" -reicast_per_content_vmus = "disabled" -reicast_pvr2_filtering = "disabled" -reicast_region = "Default" -reicast_screen_rotation = "horizontal" -reicast_show_lightgun_settings = "disabled" -reicast_show_vmu_screen_settings = "disabled" -reicast_texupscale = "1" -reicast_texupscale_max_filtered_texture_size = "256" -reicast_threaded_rendering = "enabled" -reicast_trigger_deadzone = "0%" -reicast_vmu1_pixel_off_color = "DEFAULT_OFF 01" -reicast_vmu1_pixel_on_color = "DEFAULT_ON 00" -reicast_vmu1_screen_display = "disabled" -reicast_vmu1_screen_opacity = "100%" -reicast_vmu1_screen_position = "Upper Left" -reicast_vmu1_screen_size_mult = "1x" -reicast_vmu2_pixel_off_color = "DEFAULT_OFF 01" -reicast_vmu2_pixel_on_color = "DEFAULT_ON 00" -reicast_vmu2_screen_display = "disabled" -reicast_vmu2_screen_opacity = "100%" -reicast_vmu2_screen_position = "Upper Left" -reicast_vmu2_screen_size_mult = "1x" -reicast_vmu3_pixel_off_color = "DEFAULT_OFF 01" -reicast_vmu3_pixel_on_color = "DEFAULT_ON 00" -reicast_vmu3_screen_display = "disabled" -reicast_vmu3_screen_opacity = "100%" -reicast_vmu3_screen_position = "Upper Left" -reicast_vmu3_screen_size_mult = "1x" -reicast_vmu4_pixel_off_color = "DEFAULT_OFF 01" -reicast_vmu4_pixel_on_color = "DEFAULT_ON 00" -reicast_vmu4_screen_display = "disabled" -reicast_vmu4_screen_opacity = "100%" -reicast_vmu4_screen_position = "Upper Left" -reicast_vmu4_screen_size_mult = "1x" -reicast_volume_modifier_enable = "enabled" -reicast_widescreen_cheats = "disabled" -reicast_widescreen_hack = "enabled" diff --git a/configs/org.libretro.RetroArch/config/retroarch/config/Flycast/dreamcast.glslp b/configs/org.libretro.RetroArch/config/retroarch/config/Flycast/dreamcast.glslp new file mode 100644 index 00000000..95b33fc3 --- /dev/null +++ b/configs/org.libretro.RetroArch/config/retroarch/config/Flycast/dreamcast.glslp @@ -0,0 +1 @@ +#reference "/app/share/libretro/shaders/shaders_glsl/crt/crt-royale-fake-bloom.glslp" \ No newline at end of file diff --git a/configs/org.libretro.RetroArch/config/retroarch/config/Flycast/dreamcast.slangp b/configs/org.libretro.RetroArch/config/retroarch/config/Flycast/dreamcast.slangp new file mode 100644 index 00000000..8b4a396e --- /dev/null +++ b/configs/org.libretro.RetroArch/config/retroarch/config/Flycast/dreamcast.slangp @@ -0,0 +1 @@ +#reference /app/share/libretro/shaders/shaders_slang/crt/crt-royale-fake-bloom.slangp \ No newline at end of file diff --git a/configs/org.libretro.RetroArch/config/retroarch/config/Gambatte/Gambatte.opt b/configs/org.libretro.RetroArch/config/retroarch/config/Gambatte/Gambatte.opt deleted file mode 100644 index 29a57e0d..00000000 --- a/configs/org.libretro.RetroArch/config/retroarch/config/Gambatte/Gambatte.opt +++ /dev/null @@ -1,31 +0,0 @@ -gambatte_audio_resampler = "sinc" -gambatte_dark_filter_level = "0" -gambatte_gb_bootloader = "enabled" -gambatte_gb_colorization = "auto" -gambatte_gb_hwmode = "Auto" -gambatte_gb_internal_palette = "GB - DMG" -gambatte_gb_link_mode = "Not Connected" -gambatte_gb_link_network_port = "56400" -gambatte_gb_link_network_server_ip_1 = "0" -gambatte_gb_link_network_server_ip_10 = "0" -gambatte_gb_link_network_server_ip_11 = "0" -gambatte_gb_link_network_server_ip_12 = "0" -gambatte_gb_link_network_server_ip_2 = "0" -gambatte_gb_link_network_server_ip_3 = "0" -gambatte_gb_link_network_server_ip_4 = "0" -gambatte_gb_link_network_server_ip_5 = "0" -gambatte_gb_link_network_server_ip_6 = "0" -gambatte_gb_link_network_server_ip_7 = "0" -gambatte_gb_link_network_server_ip_8 = "0" -gambatte_gb_link_network_server_ip_9 = "0" -gambatte_gb_palette_pixelshift_1 = "PixelShift 01 - Arctic Green" -gambatte_gb_palette_twb64_1 = "TWB64 001 - Aqours Blue" -gambatte_gb_palette_twb64_2 = "TWB64 101 - 765PRO Pink" -gambatte_gbc_color_correction = "GBC only" -gambatte_gbc_color_correction_mode = "accurate" -gambatte_gbc_frontlight_position = "central" -gambatte_mix_frames = "disabled" -gambatte_rumble_level = "10" -gambatte_show_gb_link_settings = "disabled" -gambatte_turbo_period = "4" -gambatte_up_down_allowed = "disabled" diff --git a/configs/org.libretro.RetroArch/config/retroarch/config/Gambatte/gb.cfg b/configs/org.libretro.RetroArch/config/retroarch/config/Gambatte/gb.cfg deleted file mode 100644 index b1ee0401..00000000 --- a/configs/org.libretro.RetroArch/config/retroarch/config/Gambatte/gb.cfg +++ /dev/null @@ -1,7 +0,0 @@ -aspect_ratio_index = "21" -input_overlay = "/home/deck/.var/app/org.libretro.RetroArch/config/retroarch/overlays/pegasus/gb.cfg" -input_overlay_auto_scale = "false" -input_overlay_enable = "true" -input_overlay_scale_landscape = "1.860000" -input_overlay_y_offset_landscape = "-0.150000" -video_shader_enable = "true" diff --git a/configs/org.libretro.RetroArch/config/retroarch/config/Gambatte/gbc.cfg b/configs/org.libretro.RetroArch/config/retroarch/config/Gambatte/gbc.cfg deleted file mode 100644 index b22b8117..00000000 --- a/configs/org.libretro.RetroArch/config/retroarch/config/Gambatte/gbc.cfg +++ /dev/null @@ -1,7 +0,0 @@ -aspect_ratio_index = "21" -input_overlay = "/home/deck/.var/app/org.libretro.RetroArch/config/retroarch/overlays/pegasus/gbc.cfg" -input_overlay_auto_scale = "false" -input_overlay_enable = "true" -input_overlay_scale_landscape = "1.870000" -input_overlay_y_offset_landscape = "-0.220000" -video_shader_enable = "true" diff --git a/configs/org.libretro.RetroArch/config/retroarch/config/Gearsystem/gamegear.cfg b/configs/org.libretro.RetroArch/config/retroarch/config/Gearsystem/gamegear.cfg deleted file mode 100644 index cac66bf7..00000000 --- a/configs/org.libretro.RetroArch/config/retroarch/config/Gearsystem/gamegear.cfg +++ /dev/null @@ -1,7 +0,0 @@ -aspect_ratio_index = "21" -input_overlay = "/home/deck/.var/app/org.libretro.RetroArch/config/retroarch/overlays/pegasus/gg.cfg" -input_overlay_aspect_adjust_landscape = "-0.115000" -input_overlay_auto_scale = "false" -input_overlay_enable = "true" -input_overlay_scale_landscape = "1.545000" -video_shader_enable = "true" diff --git a/configs/org.libretro.RetroArch/config/retroarch/config/Genesis Plus GX/gamegear.cfg b/configs/org.libretro.RetroArch/config/retroarch/config/Genesis Plus GX/gamegear.cfg deleted file mode 100644 index cac66bf7..00000000 --- a/configs/org.libretro.RetroArch/config/retroarch/config/Genesis Plus GX/gamegear.cfg +++ /dev/null @@ -1,7 +0,0 @@ -aspect_ratio_index = "21" -input_overlay = "/home/deck/.var/app/org.libretro.RetroArch/config/retroarch/overlays/pegasus/gg.cfg" -input_overlay_aspect_adjust_landscape = "-0.115000" -input_overlay_auto_scale = "false" -input_overlay_enable = "true" -input_overlay_scale_landscape = "1.545000" -video_shader_enable = "true" diff --git a/configs/org.libretro.RetroArch/config/retroarch/config/Genesis Plus GX/genesis.cfg b/configs/org.libretro.RetroArch/config/retroarch/config/Genesis Plus GX/genesis.cfg deleted file mode 100644 index 8379280a..00000000 --- a/configs/org.libretro.RetroArch/config/retroarch/config/Genesis Plus GX/genesis.cfg +++ /dev/null @@ -1,5 +0,0 @@ -input_overlay = "/home/deck/.var/app/org.libretro.RetroArch/config/retroarch/overlays/pegasus/genesis.cfg" -input_overlay_auto_scale = "false" -input_overlay_enable = "true" -input_overlay_scale_landscape = "1.170000" -video_shader_enable = "true" diff --git a/configs/org.libretro.RetroArch/config/retroarch/config/Genesis Plus GX/genesis.glslp b/configs/org.libretro.RetroArch/config/retroarch/config/Genesis Plus GX/genesis.glslp new file mode 100644 index 00000000..95b33fc3 --- /dev/null +++ b/configs/org.libretro.RetroArch/config/retroarch/config/Genesis Plus GX/genesis.glslp @@ -0,0 +1 @@ +#reference "/app/share/libretro/shaders/shaders_glsl/crt/crt-royale-fake-bloom.glslp" \ No newline at end of file diff --git a/configs/org.libretro.RetroArch/config/retroarch/config/Genesis Plus GX/genesis.slangp b/configs/org.libretro.RetroArch/config/retroarch/config/Genesis Plus GX/genesis.slangp new file mode 100644 index 00000000..8b4a396e --- /dev/null +++ b/configs/org.libretro.RetroArch/config/retroarch/config/Genesis Plus GX/genesis.slangp @@ -0,0 +1 @@ +#reference /app/share/libretro/shaders/shaders_slang/crt/crt-royale-fake-bloom.slangp \ No newline at end of file diff --git a/configs/org.libretro.RetroArch/config/retroarch/config/Genesis Plus GX/mastersystem.cfg b/configs/org.libretro.RetroArch/config/retroarch/config/Genesis Plus GX/mastersystem.cfg deleted file mode 100644 index 9ad009cb..00000000 --- a/configs/org.libretro.RetroArch/config/retroarch/config/Genesis Plus GX/mastersystem.cfg +++ /dev/null @@ -1,5 +0,0 @@ -aspect_ratio_index = "21" -input_overlay = "/home/deck/.var/app/org.libretro.RetroArch/config/retroarch/overlays/pegasus/mastersystem.cfg" -input_overlay_auto_scale = "false" -input_overlay_enable = "true" -input_overlay_scale_landscape = "1.170000" diff --git a/configs/org.libretro.RetroArch/config/retroarch/config/Genesis Plus GX/mastersystem.glslp b/configs/org.libretro.RetroArch/config/retroarch/config/Genesis Plus GX/mastersystem.glslp new file mode 100644 index 00000000..95b33fc3 --- /dev/null +++ b/configs/org.libretro.RetroArch/config/retroarch/config/Genesis Plus GX/mastersystem.glslp @@ -0,0 +1 @@ +#reference "/app/share/libretro/shaders/shaders_glsl/crt/crt-royale-fake-bloom.glslp" \ No newline at end of file diff --git a/configs/org.libretro.RetroArch/config/retroarch/config/Genesis Plus GX/mastersystem.slangp b/configs/org.libretro.RetroArch/config/retroarch/config/Genesis Plus GX/mastersystem.slangp new file mode 100644 index 00000000..8b4a396e --- /dev/null +++ b/configs/org.libretro.RetroArch/config/retroarch/config/Genesis Plus GX/mastersystem.slangp @@ -0,0 +1 @@ +#reference /app/share/libretro/shaders/shaders_slang/crt/crt-royale-fake-bloom.slangp \ No newline at end of file diff --git a/configs/org.libretro.RetroArch/config/retroarch/config/Genesis Plus GX/megacd.cfg b/configs/org.libretro.RetroArch/config/retroarch/config/Genesis Plus GX/megacd.cfg deleted file mode 100644 index 41bc3caa..00000000 --- a/configs/org.libretro.RetroArch/config/retroarch/config/Genesis Plus GX/megacd.cfg +++ /dev/null @@ -1,5 +0,0 @@ -input_overlay = "/home/deck/.var/app/org.libretro.RetroArch/config/retroarch/overlays/pegasus/SEGACD.cfg" -input_overlay_auto_scale = "false" -input_overlay_enable = "true" -input_overlay_hide_in_menu = "false" -input_overlay_scale_landscape = "1.170000 diff --git a/configs/org.libretro.RetroArch/config/retroarch/config/Genesis Plus GX/megacd.glslp b/configs/org.libretro.RetroArch/config/retroarch/config/Genesis Plus GX/megacd.glslp new file mode 100644 index 00000000..95b33fc3 --- /dev/null +++ b/configs/org.libretro.RetroArch/config/retroarch/config/Genesis Plus GX/megacd.glslp @@ -0,0 +1 @@ +#reference "/app/share/libretro/shaders/shaders_glsl/crt/crt-royale-fake-bloom.glslp" \ No newline at end of file diff --git a/configs/org.libretro.RetroArch/config/retroarch/config/Genesis Plus GX/megacd.slangp b/configs/org.libretro.RetroArch/config/retroarch/config/Genesis Plus GX/megacd.slangp new file mode 100644 index 00000000..8b4a396e --- /dev/null +++ b/configs/org.libretro.RetroArch/config/retroarch/config/Genesis Plus GX/megacd.slangp @@ -0,0 +1 @@ +#reference /app/share/libretro/shaders/shaders_slang/crt/crt-royale-fake-bloom.slangp \ No newline at end of file diff --git a/configs/org.libretro.RetroArch/config/retroarch/config/Genesis Plus GX/megadrive.glslp b/configs/org.libretro.RetroArch/config/retroarch/config/Genesis Plus GX/megadrive.glslp new file mode 100644 index 00000000..95b33fc3 --- /dev/null +++ b/configs/org.libretro.RetroArch/config/retroarch/config/Genesis Plus GX/megadrive.glslp @@ -0,0 +1 @@ +#reference "/app/share/libretro/shaders/shaders_glsl/crt/crt-royale-fake-bloom.glslp" \ No newline at end of file diff --git a/configs/org.libretro.RetroArch/config/retroarch/config/Genesis Plus GX/megadrive.opt b/configs/org.libretro.RetroArch/config/retroarch/config/Genesis Plus GX/megadrive.opt deleted file mode 100644 index 8379280a..00000000 --- a/configs/org.libretro.RetroArch/config/retroarch/config/Genesis Plus GX/megadrive.opt +++ /dev/null @@ -1,5 +0,0 @@ -input_overlay = "/home/deck/.var/app/org.libretro.RetroArch/config/retroarch/overlays/pegasus/genesis.cfg" -input_overlay_auto_scale = "false" -input_overlay_enable = "true" -input_overlay_scale_landscape = "1.170000" -video_shader_enable = "true" diff --git a/configs/org.libretro.RetroArch/config/retroarch/config/Genesis Plus GX/megadrive.slangp b/configs/org.libretro.RetroArch/config/retroarch/config/Genesis Plus GX/megadrive.slangp new file mode 100644 index 00000000..8b4a396e --- /dev/null +++ b/configs/org.libretro.RetroArch/config/retroarch/config/Genesis Plus GX/megadrive.slangp @@ -0,0 +1 @@ +#reference /app/share/libretro/shaders/shaders_slang/crt/crt-royale-fake-bloom.slangp \ No newline at end of file diff --git a/configs/org.libretro.RetroArch/config/retroarch/config/Genesis Plus GX/segacd.cfg b/configs/org.libretro.RetroArch/config/retroarch/config/Genesis Plus GX/segacd.cfg deleted file mode 100644 index 41bc3caa..00000000 --- a/configs/org.libretro.RetroArch/config/retroarch/config/Genesis Plus GX/segacd.cfg +++ /dev/null @@ -1,5 +0,0 @@ -input_overlay = "/home/deck/.var/app/org.libretro.RetroArch/config/retroarch/overlays/pegasus/SEGACD.cfg" -input_overlay_auto_scale = "false" -input_overlay_enable = "true" -input_overlay_hide_in_menu = "false" -input_overlay_scale_landscape = "1.170000 diff --git a/configs/org.libretro.RetroArch/config/retroarch/config/Genesis Plus GX/segacd.glslp b/configs/org.libretro.RetroArch/config/retroarch/config/Genesis Plus GX/segacd.glslp new file mode 100644 index 00000000..95b33fc3 --- /dev/null +++ b/configs/org.libretro.RetroArch/config/retroarch/config/Genesis Plus GX/segacd.glslp @@ -0,0 +1 @@ +#reference "/app/share/libretro/shaders/shaders_glsl/crt/crt-royale-fake-bloom.glslp" \ No newline at end of file diff --git a/configs/org.libretro.RetroArch/config/retroarch/config/Genesis Plus GX/segacd.slangp b/configs/org.libretro.RetroArch/config/retroarch/config/Genesis Plus GX/segacd.slangp new file mode 100644 index 00000000..8b4a396e --- /dev/null +++ b/configs/org.libretro.RetroArch/config/retroarch/config/Genesis Plus GX/segacd.slangp @@ -0,0 +1 @@ +#reference /app/share/libretro/shaders/shaders_slang/crt/crt-royale-fake-bloom.slangp \ No newline at end of file diff --git a/configs/org.libretro.RetroArch/config/retroarch/config/Handy/lynx.glslp b/configs/org.libretro.RetroArch/config/retroarch/config/Handy/lynx.glslp new file mode 100644 index 00000000..fb315c2e --- /dev/null +++ b/configs/org.libretro.RetroArch/config/retroarch/config/Handy/lynx.glslp @@ -0,0 +1 @@ +#reference "/app/share/libretro/shaders/shaders_glsl/handheld/lcd3x.glslp" diff --git a/configs/org.libretro.RetroArch/config/retroarch/config/Handy/lynx.slangp b/configs/org.libretro.RetroArch/config/retroarch/config/Handy/lynx.slangp new file mode 100644 index 00000000..1427e693 --- /dev/null +++ b/configs/org.libretro.RetroArch/config/retroarch/config/Handy/lynx.slangp @@ -0,0 +1 @@ +#reference /app/share/libretro/shaders/shaders_slang/handheld/lcd3x.slangp diff --git a/configs/org.libretro.RetroArch/config/retroarch/config/MAME 2003-Plus/mame.cfg b/configs/org.libretro.RetroArch/config/retroarch/config/MAME 2003-Plus/mame.cfg deleted file mode 100644 index 143d0b33..00000000 --- a/configs/org.libretro.RetroArch/config/retroarch/config/MAME 2003-Plus/mame.cfg +++ /dev/null @@ -1,8 +0,0 @@ -video_shader_enable = true -aspect_ratio_index = "21" -input_overlay = "/home/deck/.var/app/org.libretro.RetroArch/config/retroarch/overlays/pegasus/MAME_Horizontal.cfg" -input_overlay_auto_scale = "false" -input_overlay_enable = "true" -input_overlay_opacity = "0.700000" -input_overlay_scale_landscape = "1.170000" -video_scale_integer = "false" \ No newline at end of file diff --git a/configs/org.libretro.RetroArch/config/retroarch/config/MAME 2003-Plus/mame.glslp b/configs/org.libretro.RetroArch/config/retroarch/config/MAME 2003-Plus/mame.glslp index fb315c2e..95b33fc3 100644 --- a/configs/org.libretro.RetroArch/config/retroarch/config/MAME 2003-Plus/mame.glslp +++ b/configs/org.libretro.RetroArch/config/retroarch/config/MAME 2003-Plus/mame.glslp @@ -1 +1 @@ -#reference "/app/share/libretro/shaders/shaders_glsl/handheld/lcd3x.glslp" +#reference "/app/share/libretro/shaders/shaders_glsl/crt/crt-royale-fake-bloom.glslp" \ No newline at end of file diff --git a/configs/org.libretro.RetroArch/config/retroarch/config/MAME 2003-Plus/mame.slangp b/configs/org.libretro.RetroArch/config/retroarch/config/MAME 2003-Plus/mame.slangp index 7955d3f3..8b4a396e 100644 --- a/configs/org.libretro.RetroArch/config/retroarch/config/MAME 2003-Plus/mame.slangp +++ b/configs/org.libretro.RetroArch/config/retroarch/config/MAME 2003-Plus/mame.slangp @@ -1 +1 @@ -#reference /app/share/libretro/shaders/shaders_glsl/handheld/lcd3x.glslp +#reference /app/share/libretro/shaders/shaders_slang/crt/crt-royale-fake-bloom.slangp \ No newline at end of file diff --git a/configs/org.libretro.RetroArch/config/retroarch/config/MAME/mame.glslp b/configs/org.libretro.RetroArch/config/retroarch/config/MAME/mame.glslp new file mode 100644 index 00000000..95b33fc3 --- /dev/null +++ b/configs/org.libretro.RetroArch/config/retroarch/config/MAME/mame.glslp @@ -0,0 +1 @@ +#reference "/app/share/libretro/shaders/shaders_glsl/crt/crt-royale-fake-bloom.glslp" \ No newline at end of file diff --git a/configs/org.libretro.RetroArch/config/retroarch/config/MAME/mame.slangp b/configs/org.libretro.RetroArch/config/retroarch/config/MAME/mame.slangp new file mode 100644 index 00000000..8b4a396e --- /dev/null +++ b/configs/org.libretro.RetroArch/config/retroarch/config/MAME/mame.slangp @@ -0,0 +1 @@ +#reference /app/share/libretro/shaders/shaders_slang/crt/crt-royale-fake-bloom.slangp \ No newline at end of file diff --git a/configs/org.libretro.RetroArch/config/retroarch/config/Mesen/nes.cfg b/configs/org.libretro.RetroArch/config/retroarch/config/Mesen/nes.cfg deleted file mode 100644 index 32ab557d..00000000 --- a/configs/org.libretro.RetroArch/config/retroarch/config/Mesen/nes.cfg +++ /dev/null @@ -1,6 +0,0 @@ -input_overlay = "/home/deck/.var/app/org.libretro.RetroArch/config/retroarch/overlays/pegasus/nes.cfg" -input_overlay_auto_scale = "false" -input_overlay_enable = "true" -input_overlay_opacity = "0.700000" -input_overlay_scale_landscape = "1.070000" -video_scale_integer = "false" \ No newline at end of file diff --git a/configs/org.libretro.RetroArch/config/retroarch/config/Mesen/nes.glslp b/configs/org.libretro.RetroArch/config/retroarch/config/Mesen/nes.glslp new file mode 100644 index 00000000..95b33fc3 --- /dev/null +++ b/configs/org.libretro.RetroArch/config/retroarch/config/Mesen/nes.glslp @@ -0,0 +1 @@ +#reference "/app/share/libretro/shaders/shaders_glsl/crt/crt-royale-fake-bloom.glslp" \ No newline at end of file diff --git a/configs/org.libretro.RetroArch/config/retroarch/config/Mesen/nes.slangp b/configs/org.libretro.RetroArch/config/retroarch/config/Mesen/nes.slangp new file mode 100644 index 00000000..8b4a396e --- /dev/null +++ b/configs/org.libretro.RetroArch/config/retroarch/config/Mesen/nes.slangp @@ -0,0 +1 @@ +#reference /app/share/libretro/shaders/shaders_slang/crt/crt-royale-fake-bloom.slangp \ No newline at end of file diff --git a/configs/org.libretro.RetroArch/config/retroarch/config/Mupen64Plus-Next/Mupen64Plus-Next.cfg b/configs/org.libretro.RetroArch/config/retroarch/config/Mupen64Plus-Next/Mupen64Plus-Next.cfg deleted file mode 100644 index e66a6810..00000000 --- a/configs/org.libretro.RetroArch/config/retroarch/config/Mupen64Plus-Next/Mupen64Plus-Next.cfg +++ /dev/null @@ -1,4 +0,0 @@ -aspect_ratio_index = "0" -video_crop_overscan = "false" -video_shader_enable = "false" -video_smooth = "true" diff --git a/configs/org.libretro.RetroArch/config/retroarch/config/Mupen64Plus-Next/Mupen64Plus-Next.opt b/configs/org.libretro.RetroArch/config/retroarch/config/Mupen64Plus-Next/Mupen64Plus-Next.opt deleted file mode 100644 index bd2e616f..00000000 --- a/configs/org.libretro.RetroArch/config/retroarch/config/Mupen64Plus-Next/Mupen64Plus-Next.opt +++ /dev/null @@ -1,84 +0,0 @@ -mupen64plus-169screensize = "1920x1080" -mupen64plus-43screensize = "1280x960" -mupen64plus-alt-map = "False" -mupen64plus-angrylion-multithread = "all threads" -mupen64plus-angrylion-overscan = "disabled" -mupen64plus-angrylion-sync = "Low" -mupen64plus-angrylion-vioverlay = "Filtered" -mupen64plus-aspect = "4:3" -mupen64plus-astick-deadzone = "15" -mupen64plus-astick-sensitivity = "100" -mupen64plus-BackgroundMode = "OnePiece" -mupen64plus-BilinearMode = "standard" -mupen64plus-CorrectTexrectCoords = "Auto" -mupen64plus-CountPerOp = "0" -mupen64plus-CountPerOpDenomPot = "0" -mupen64plus-cpucore = "dynamic_recompiler" -mupen64plus-d-cbutton = "C3" -mupen64plus-DitheringPattern = "False" -mupen64plus-DitheringQuantization = "False" -mupen64plus-EnableCopyAuxToRDRAM = "False" -mupen64plus-EnableCopyColorToRDRAM = "Async" -mupen64plus-EnableCopyDepthToRDRAM = "Software" -mupen64plus-EnableEnhancedHighResStorage = "False" -mupen64plus-EnableEnhancedTextureStorage = "False" -mupen64plus-EnableFBEmulation = "True" -mupen64plus-EnableFragmentDepthWrite = "True" -mupen64plus-EnableHiResAltCRC = "False" -mupen64plus-EnableHWLighting = "False" -mupen64plus-EnableInaccurateTextureCoordinates = "False" -mupen64plus-EnableLegacyBlending = "False" -mupen64plus-EnableLODEmulation = "True" -mupen64plus-EnableN64DepthCompare = "False" -mupen64plus-EnableNativeResFactor = "4" -mupen64plus-EnableNativeResTexrects = "Optimized" -mupen64plus-EnableOverscan = "Enabled" -mupen64plus-EnableShadersStorage = "True" -mupen64plus-EnableTexCoordBounds = "True" -mupen64plus-EnableTextureCache = "True" -mupen64plus-ForceDisableExtraMem = "False" -mupen64plus-FrameDuping = "False" -mupen64plus-Framerate = "Fullspeed" -mupen64plus-FXAA = "0" -mupen64plus-GLideN64IniBehaviour = "late" -mupen64plus-HybridFilter = "False" -mupen64plus-IgnoreTLBExceptions = "False" -mupen64plus-l-cbutton = "C2" -mupen64plus-MaxHiResTxVramLimit = "0" -mupen64plus-MaxTxCacheSize = "8000" -mupen64plus-MultiSampling = "0" -mupen64plus-OverscanBottom = "0" -mupen64plus-OverscanLeft = "0" -mupen64plus-OverscanRight = "0" -mupen64plus-OverscanTop = "0" -mupen64plus-pak1 = "rumble" -mupen64plus-pak2 = "none" -mupen64plus-pak3 = "none" -mupen64plus-pak4 = "none" -mupen64plus-parallel-rdp-deinterlace-method = "Bob" -mupen64plus-parallel-rdp-dither-filter = "True" -mupen64plus-parallel-rdp-divot-filter = "True" -mupen64plus-parallel-rdp-downscaling = "disable" -mupen64plus-parallel-rdp-gamma-dither = "True" -mupen64plus-parallel-rdp-native-tex-rect = "True" -mupen64plus-parallel-rdp-native-texture-lod = "False" -mupen64plus-parallel-rdp-overscan = "0" -mupen64plus-parallel-rdp-super-sampled-read-back = "False" -mupen64plus-parallel-rdp-super-sampled-read-back-dither = "False" -mupen64plus-parallel-rdp-synchronous = "True" -mupen64plus-parallel-rdp-upscaling = "1x" -mupen64plus-parallel-rdp-vi-aa = "True" -mupen64plus-parallel-rdp-vi-bilinear = "True" -mupen64plus-r-cbutton = "C1" -mupen64plus-rdp-plugin = "gliden64" -mupen64plus-RDRAMImageDitheringMode = "False" -mupen64plus-rsp-plugin = "hle" -mupen64plus-ThreadedRenderer = "True" -mupen64plus-txCacheCompression = "True" -mupen64plus-txEnhancementMode = "As Is" -mupen64plus-txFilterIgnoreBG = "True" -mupen64plus-txFilterMode = "None" -mupen64plus-txHiresEnable = "False" -mupen64plus-txHiresFullAlphaChannel = "False" -mupen64plus-u-cbutton = "C4" -mupen64plus-virefresh = "Auto" diff --git a/configs/org.libretro.RetroArch/config/retroarch/config/Mupen64Plus-Next/n64.glslp b/configs/org.libretro.RetroArch/config/retroarch/config/Mupen64Plus-Next/n64.glslp new file mode 100644 index 00000000..95b33fc3 --- /dev/null +++ b/configs/org.libretro.RetroArch/config/retroarch/config/Mupen64Plus-Next/n64.glslp @@ -0,0 +1 @@ +#reference "/app/share/libretro/shaders/shaders_glsl/crt/crt-royale-fake-bloom.glslp" \ No newline at end of file diff --git a/configs/org.libretro.RetroArch/config/retroarch/config/Mupen64Plus-Next/n64.slangp b/configs/org.libretro.RetroArch/config/retroarch/config/Mupen64Plus-Next/n64.slangp new file mode 100644 index 00000000..8b4a396e --- /dev/null +++ b/configs/org.libretro.RetroArch/config/retroarch/config/Mupen64Plus-Next/n64.slangp @@ -0,0 +1 @@ +#reference /app/share/libretro/shaders/shaders_slang/crt/crt-royale-fake-bloom.slangp \ No newline at end of file diff --git a/configs/org.libretro.RetroArch/config/retroarch/config/Nestopia/Nestopia.opt b/configs/org.libretro.RetroArch/config/retroarch/config/Nestopia/Nestopia.opt deleted file mode 100644 index b0500cda..00000000 --- a/configs/org.libretro.RetroArch/config/retroarch/config/Nestopia/Nestopia.opt +++ /dev/null @@ -1,29 +0,0 @@ -nestopia_arkanoid_device = "mouse" -nestopia_aspect = "auto" -nestopia_audio_vol_dpcm = "100" -nestopia_audio_vol_fds = "100" -nestopia_audio_vol_mmc5 = "100" -nestopia_audio_vol_n163 = "100" -nestopia_audio_vol_noise = "100" -nestopia_audio_vol_s5b = "100" -nestopia_audio_vol_sq1 = "100" -nestopia_audio_vol_sq2 = "100" -nestopia_audio_vol_tri = "100" -nestopia_audio_vol_vrc6 = "100" -nestopia_audio_vol_vrc7 = "100" -nestopia_blargg_ntsc_filter = "disabled" -nestopia_button_shift = "disabled" -nestopia_favored_system = "auto" -nestopia_fds_auto_insert = "enabled" -nestopia_genie_distortion = "disabled" -nestopia_nospritelimit = "disabled" -nestopia_overclock = "1x" -nestopia_overscan_h = "disabled" -nestopia_overscan_v = "enabled" -nestopia_palette = "cxa2025as" -nestopia_ram_power_state = "0x00" -nestopia_select_adapter = "auto" -nestopia_show_advanced_av_settings = "disabled" -nestopia_show_crosshair = "enabled" -nestopia_turbo_pulse = "2" -nestopia_zapper_device = "lightgun" diff --git a/configs/org.libretro.RetroArch/config/retroarch/config/Nestopia/nes.cfg b/configs/org.libretro.RetroArch/config/retroarch/config/Nestopia/nes.cfg deleted file mode 100644 index 32ab557d..00000000 --- a/configs/org.libretro.RetroArch/config/retroarch/config/Nestopia/nes.cfg +++ /dev/null @@ -1,6 +0,0 @@ -input_overlay = "/home/deck/.var/app/org.libretro.RetroArch/config/retroarch/overlays/pegasus/nes.cfg" -input_overlay_auto_scale = "false" -input_overlay_enable = "true" -input_overlay_opacity = "0.700000" -input_overlay_scale_landscape = "1.070000" -video_scale_integer = "false" \ No newline at end of file diff --git a/configs/org.libretro.RetroArch/config/retroarch/config/Nestopia/nes.glslp b/configs/org.libretro.RetroArch/config/retroarch/config/Nestopia/nes.glslp new file mode 100644 index 00000000..95b33fc3 --- /dev/null +++ b/configs/org.libretro.RetroArch/config/retroarch/config/Nestopia/nes.glslp @@ -0,0 +1 @@ +#reference "/app/share/libretro/shaders/shaders_glsl/crt/crt-royale-fake-bloom.glslp" \ No newline at end of file diff --git a/configs/org.libretro.RetroArch/config/retroarch/config/Nestopia/nes.slangp b/configs/org.libretro.RetroArch/config/retroarch/config/Nestopia/nes.slangp new file mode 100644 index 00000000..8b4a396e --- /dev/null +++ b/configs/org.libretro.RetroArch/config/retroarch/config/Nestopia/nes.slangp @@ -0,0 +1 @@ +#reference /app/share/libretro/shaders/shaders_slang/crt/crt-royale-fake-bloom.slangp \ No newline at end of file diff --git a/configs/org.libretro.RetroArch/config/retroarch/config/PPSSPP/psp.cfg b/configs/org.libretro.RetroArch/config/retroarch/config/PPSSPP/psp.cfg deleted file mode 100644 index 02e06b64..00000000 --- a/configs/org.libretro.RetroArch/config/retroarch/config/PPSSPP/psp.cfg +++ /dev/null @@ -1,31 +0,0 @@ -ppsspp_auto_frameskip = "disabled" -ppsspp_block_transfer_gpu = "enabled" -ppsspp_button_preference = "Cross" -ppsspp_cheats = "disabled" -ppsspp_cpu_core = "JIT" -ppsspp_disable_slow_framebuffer_effects = "disabled" -ppsspp_fast_memory = "enabled" -ppsspp_force_lag_sync = "disabled" -ppsspp_frameskip = "Off" -ppsspp_frameskiptype = "Number of frames" -ppsspp_gpu_hardware_transform = "enabled" -ppsspp_ignore_bad_memory_access = "enabled" -ppsspp_inflight_frames = "Up to 2" -ppsspp_internal_resolution = "1440x816" -ppsspp_io_timing_method = "Fast" -ppsspp_language = "Automatic" -ppsspp_lazy_texture_caching = "disabled" -ppsspp_locked_cpu_speed = "off" -ppsspp_lower_resolution_for_effects = "Off" -ppsspp_rendering_mode = "Buffered" -ppsspp_retain_changed_textures = "disabled" -ppsspp_software_skinning = "enabled" -ppsspp_spline_quality = "Low" -ppsspp_texture_anisotropic_filtering = "off" -ppsspp_texture_deposterize = "disabled" -ppsspp_texture_filtering = "Auto" -ppsspp_texture_replacement = "enabled" -ppsspp_texture_scaling_level = "Off" -ppsspp_texture_scaling_type = "xbrz" -ppsspp_texture_shader = "Off" -ppsspp_vertex_cache = "disabled" diff --git a/configs/org.libretro.RetroArch/config/retroarch/config/PicoDrive/sega32x.cfg b/configs/org.libretro.RetroArch/config/retroarch/config/PicoDrive/sega32x.cfg deleted file mode 100644 index 8a829a6b..00000000 --- a/configs/org.libretro.RetroArch/config/retroarch/config/PicoDrive/sega32x.cfg +++ /dev/null @@ -1,5 +0,0 @@ -input_overlay = "/home/deck/.var/app/org.libretro.RetroArch/config/retroarch/overlays/pegasus/sega32x.cfg" -input_overlay_auto_scale = "false" -input_overlay_enable = "true" -input_overlay_hide_in_menu = "false" -input_overlay_scale_landscape = "1.250000" diff --git a/configs/org.libretro.RetroArch/config/retroarch/config/PicoDrive/sega32x.glslp b/configs/org.libretro.RetroArch/config/retroarch/config/PicoDrive/sega32x.glslp new file mode 100644 index 00000000..95b33fc3 --- /dev/null +++ b/configs/org.libretro.RetroArch/config/retroarch/config/PicoDrive/sega32x.glslp @@ -0,0 +1 @@ +#reference "/app/share/libretro/shaders/shaders_glsl/crt/crt-royale-fake-bloom.glslp" \ No newline at end of file diff --git a/configs/org.libretro.RetroArch/config/retroarch/config/PicoDrive/sega32x.slangp b/configs/org.libretro.RetroArch/config/retroarch/config/PicoDrive/sega32x.slangp new file mode 100644 index 00000000..8b4a396e --- /dev/null +++ b/configs/org.libretro.RetroArch/config/retroarch/config/PicoDrive/sega32x.slangp @@ -0,0 +1 @@ +#reference /app/share/libretro/shaders/shaders_slang/crt/crt-royale-fake-bloom.slangp \ No newline at end of file diff --git a/configs/org.libretro.RetroArch/config/retroarch/config/SameBoy/gb.cfg b/configs/org.libretro.RetroArch/config/retroarch/config/SameBoy/gb.cfg deleted file mode 100644 index 86e10c7d..00000000 --- a/configs/org.libretro.RetroArch/config/retroarch/config/SameBoy/gb.cfg +++ /dev/null @@ -1,36 +0,0 @@ -gambatte_dark_filter_level = "0" -gambatte_gb_bootloader = "enabled" -gambatte_gb_colorization = "internal" -gambatte_gb_hwmode = "Auto" -gambatte_gb_internal_palette = "GB - DMG" -gambatte_gb_link_mode = "Not Connected" -gambatte_gb_link_network_port = "56400" -gambatte_gb_link_network_server_ip_1 = "0" -gambatte_gb_link_network_server_ip_10 = "0" -gambatte_gb_link_network_server_ip_11 = "0" -gambatte_gb_link_network_server_ip_12 = "0" -gambatte_gb_link_network_server_ip_2 = "0" -gambatte_gb_link_network_server_ip_3 = "0" -gambatte_gb_link_network_server_ip_4 = "0" -gambatte_gb_link_network_server_ip_5 = "0" -gambatte_gb_link_network_server_ip_6 = "0" -gambatte_gb_link_network_server_ip_7 = "0" -gambatte_gb_link_network_server_ip_8 = "0" -gambatte_gb_link_network_server_ip_9 = "0" -gambatte_gb_palette_twb64_1 = "TWB64 001 - Aqours Blue" -gambatte_gb_palette_twb64_2 = "TWB64 197 - Autobot Red" -gambatte_gbc_color_correction = "GBC only" -gambatte_gbc_color_correction_mode = "accurate" -gambatte_gbc_frontlight_position = "central" -gambatte_mix_frames = "disabled" -gambatte_rumble_level = "10" -gambatte_show_gb_link_settings = "disabled" -gambatte_turbo_period = "4" -gambatte_up_down_allowed = "disabled" -aspect_ratio_index = "21" -input_overlay = "/home/deck/.var/app/org.libretro.RetroArch/config/retroarch/overlays/pegasus/gb.cfg" -input_overlay_auto_scale = "false" -input_overlay_enable = "true" -input_overlay_scale_landscape = "1.860000" -input_overlay_y_offset_landscape = "-0.150000" -video_shader_enable = "true" diff --git a/configs/org.libretro.RetroArch/config/retroarch/config/SameBoy/gbc.cfg b/configs/org.libretro.RetroArch/config/retroarch/config/SameBoy/gbc.cfg deleted file mode 100644 index b22b8117..00000000 --- a/configs/org.libretro.RetroArch/config/retroarch/config/SameBoy/gbc.cfg +++ /dev/null @@ -1,7 +0,0 @@ -aspect_ratio_index = "21" -input_overlay = "/home/deck/.var/app/org.libretro.RetroArch/config/retroarch/overlays/pegasus/gbc.cfg" -input_overlay_auto_scale = "false" -input_overlay_enable = "true" -input_overlay_scale_landscape = "1.870000" -input_overlay_y_offset_landscape = "-0.220000" -video_shader_enable = "true" diff --git a/configs/org.libretro.RetroArch/config/retroarch/config/Snes9x/snes.cfg b/configs/org.libretro.RetroArch/config/retroarch/config/Snes9x/snes.cfg deleted file mode 100644 index 88d71f96..00000000 --- a/configs/org.libretro.RetroArch/config/retroarch/config/Snes9x/snes.cfg +++ /dev/null @@ -1,6 +0,0 @@ -input_overlay = "/home/deck/.var/app/org.libretro.RetroArch/config/retroarch/overlays/pegasus/snes.cfg" -input_overlay_auto_scale = "false" -input_overlay_enable = "true" -input_overlay_opacity = "0.700000" -input_overlay_scale_landscape = "1.170000" -video_scale_integer = "false" \ No newline at end of file diff --git a/configs/org.libretro.RetroArch/config/retroarch/config/Snes9x/snes.glslp b/configs/org.libretro.RetroArch/config/retroarch/config/Snes9x/snes.glslp new file mode 100644 index 00000000..95b33fc3 --- /dev/null +++ b/configs/org.libretro.RetroArch/config/retroarch/config/Snes9x/snes.glslp @@ -0,0 +1 @@ +#reference "/app/share/libretro/shaders/shaders_glsl/crt/crt-royale-fake-bloom.glslp" \ No newline at end of file diff --git a/configs/org.libretro.RetroArch/config/retroarch/config/Snes9x/snes.slangp b/configs/org.libretro.RetroArch/config/retroarch/config/Snes9x/snes.slangp new file mode 100644 index 00000000..8b4a396e --- /dev/null +++ b/configs/org.libretro.RetroArch/config/retroarch/config/Snes9x/snes.slangp @@ -0,0 +1 @@ +#reference /app/share/libretro/shaders/shaders_slang/crt/crt-royale-fake-bloom.slangp \ No newline at end of file diff --git a/configs/org.libretro.RetroArch/config/retroarch/config/Snes9x/snes43.cfg b/configs/org.libretro.RetroArch/config/retroarch/config/Snes9x/snes43.cfg deleted file mode 100644 index 88d71f96..00000000 --- a/configs/org.libretro.RetroArch/config/retroarch/config/Snes9x/snes43.cfg +++ /dev/null @@ -1,6 +0,0 @@ -input_overlay = "/home/deck/.var/app/org.libretro.RetroArch/config/retroarch/overlays/pegasus/snes.cfg" -input_overlay_auto_scale = "false" -input_overlay_enable = "true" -input_overlay_opacity = "0.700000" -input_overlay_scale_landscape = "1.170000" -video_scale_integer = "false" \ No newline at end of file diff --git a/configs/org.libretro.RetroArch/config/retroarch/config/Snes9x/snes87.cfg b/configs/org.libretro.RetroArch/config/retroarch/config/Snes9x/snes87.cfg deleted file mode 100644 index 27eb6c2e..00000000 --- a/configs/org.libretro.RetroArch/config/retroarch/config/Snes9x/snes87.cfg +++ /dev/null @@ -1,8 +0,0 @@ -input_overlay = "/home/deck/.var/app/org.libretro.RetroArch/config/retroarch/overlays/pegasus/snes87.cfg" -input_overlay_auto_scale = "false" -input_overlay_enable = "true" -input_overlay_opacity = "0.700000" -input_overlay_scale_landscape = "1.380000" -video_scale_integer = "false" -input_overlay_aspect_adjust_landscape = "-0.170000" -aspect_ratio_index = "21" \ No newline at end of file diff --git a/configs/org.libretro.RetroArch/config/retroarch/config/Stella/atari2600.cfg b/configs/org.libretro.RetroArch/config/retroarch/config/Stella/atari2600.cfg deleted file mode 100644 index 32db0970..00000000 --- a/configs/org.libretro.RetroArch/config/retroarch/config/Stella/atari2600.cfg +++ /dev/null @@ -1,3 +0,0 @@ -input_overlay = "/home/deck/.var/app/org.libretro.RetroArch/config/retroarch/overlays/pegasus/atari2600.cfg" -input_overlay_enable = "true" -input_overlay_scale_landscape = "1.0" diff --git a/configs/org.libretro.RetroArch/config/retroarch/config/Stella/atari2600.glslp b/configs/org.libretro.RetroArch/config/retroarch/config/Stella/atari2600.glslp new file mode 100644 index 00000000..95b33fc3 --- /dev/null +++ b/configs/org.libretro.RetroArch/config/retroarch/config/Stella/atari2600.glslp @@ -0,0 +1 @@ +#reference "/app/share/libretro/shaders/shaders_glsl/crt/crt-royale-fake-bloom.glslp" \ No newline at end of file diff --git a/configs/org.libretro.RetroArch/config/retroarch/config/Stella/atari2600.slangp b/configs/org.libretro.RetroArch/config/retroarch/config/Stella/atari2600.slangp new file mode 100644 index 00000000..8b4a396e --- /dev/null +++ b/configs/org.libretro.RetroArch/config/retroarch/config/Stella/atari2600.slangp @@ -0,0 +1 @@ +#reference /app/share/libretro/shaders/shaders_slang/crt/crt-royale-fake-bloom.slangp \ No newline at end of file diff --git a/configs/org.libretro.RetroArch/config/retroarch/config/Stella/atari5200.cfg b/configs/org.libretro.RetroArch/config/retroarch/config/Stella/atari5200.cfg new file mode 100644 index 00000000..086f48b2 --- /dev/null +++ b/configs/org.libretro.RetroArch/config/retroarch/config/Stella/atari5200.cfg @@ -0,0 +1,6 @@ +aspect_ratio_index = "0" +input_overlay = "~/.var/app/org.libretro.RetroArch/config/retroarch/overlays/pegasus/atari5200.cfg" +input_overlay_enable = "true" +input_overlay_hide_in_menu = "true" +input_overlay_scale_landscape = "1.175000" +input_overlay_aspect_adjust_landscape = "0.000000" \ No newline at end of file diff --git a/configs/org.libretro.RetroArch/config/retroarch/config/Stella/atari800.glslp b/configs/org.libretro.RetroArch/config/retroarch/config/Stella/atari800.glslp new file mode 100644 index 00000000..95b33fc3 --- /dev/null +++ b/configs/org.libretro.RetroArch/config/retroarch/config/Stella/atari800.glslp @@ -0,0 +1 @@ +#reference "/app/share/libretro/shaders/shaders_glsl/crt/crt-royale-fake-bloom.glslp" \ No newline at end of file diff --git a/configs/org.libretro.RetroArch/config/retroarch/config/Stella/atari800.slangp b/configs/org.libretro.RetroArch/config/retroarch/config/Stella/atari800.slangp new file mode 100644 index 00000000..8b4a396e --- /dev/null +++ b/configs/org.libretro.RetroArch/config/retroarch/config/Stella/atari800.slangp @@ -0,0 +1 @@ +#reference /app/share/libretro/shaders/shaders_slang/crt/crt-royale-fake-bloom.slangp \ No newline at end of file diff --git a/configs/org.libretro.RetroArch/config/retroarch/config/YabaSanshiro/saturn.cfg b/configs/org.libretro.RetroArch/config/retroarch/config/YabaSanshiro/saturn.cfg new file mode 100644 index 00000000..7d2b8e94 --- /dev/null +++ b/configs/org.libretro.RetroArch/config/retroarch/config/YabaSanshiro/saturn.cfg @@ -0,0 +1,5 @@ +aspect_ratio_index = "0" +input_overlay = "~/.var/app/org.libretro.RetroArch/config/retroarch/overlays/pegasus/saturn.cfg" +input_overlay_enable = "true" +input_overlay_scale_landscape = "1.070000" +input_overlay_aspect_adjust_landscape = "0.095000" diff --git a/configs/org.libretro.RetroArch/config/retroarch/config/YabaSanshiro/saturn.glslp b/configs/org.libretro.RetroArch/config/retroarch/config/YabaSanshiro/saturn.glslp new file mode 100644 index 00000000..95b33fc3 --- /dev/null +++ b/configs/org.libretro.RetroArch/config/retroarch/config/YabaSanshiro/saturn.glslp @@ -0,0 +1 @@ +#reference "/app/share/libretro/shaders/shaders_glsl/crt/crt-royale-fake-bloom.glslp" \ No newline at end of file diff --git a/configs/org.libretro.RetroArch/config/retroarch/config/YabaSanshiro/saturn.slangp b/configs/org.libretro.RetroArch/config/retroarch/config/YabaSanshiro/saturn.slangp new file mode 100644 index 00000000..8b4a396e --- /dev/null +++ b/configs/org.libretro.RetroArch/config/retroarch/config/YabaSanshiro/saturn.slangp @@ -0,0 +1 @@ +#reference /app/share/libretro/shaders/shaders_slang/crt/crt-royale-fake-bloom.slangp \ No newline at end of file diff --git a/configs/org.libretro.RetroArch/config/retroarch/config/Yabause/saturn.glslp b/configs/org.libretro.RetroArch/config/retroarch/config/Yabause/saturn.glslp new file mode 100644 index 00000000..95b33fc3 --- /dev/null +++ b/configs/org.libretro.RetroArch/config/retroarch/config/Yabause/saturn.glslp @@ -0,0 +1 @@ +#reference "/app/share/libretro/shaders/shaders_glsl/crt/crt-royale-fake-bloom.glslp" \ No newline at end of file diff --git a/configs/org.libretro.RetroArch/config/retroarch/config/Yabause/saturn.slangp b/configs/org.libretro.RetroArch/config/retroarch/config/Yabause/saturn.slangp new file mode 100644 index 00000000..8b4a396e --- /dev/null +++ b/configs/org.libretro.RetroArch/config/retroarch/config/Yabause/saturn.slangp @@ -0,0 +1 @@ +#reference /app/share/libretro/shaders/shaders_slang/crt/crt-royale-fake-bloom.slangp \ No newline at end of file diff --git a/configs/org.libretro.RetroArch/config/retroarch/config/bsnes-hd beta/bsnes-hd beta.opt b/configs/org.libretro.RetroArch/config/retroarch/config/bsnes-hd beta/bsnes-hd beta.opt deleted file mode 100644 index 5399feb2..00000000 --- a/configs/org.libretro.RetroArch/config/retroarch/config/bsnes-hd beta/bsnes-hd beta.opt +++ /dev/null @@ -1,43 +0,0 @@ -bsnes_blur_emulation = "OFF" -bsnes_coprocessor_delayed_sync = "ON" -bsnes_coprocessor_prefer_hle = "ON" -bsnes_cpu_fastmath = "OFF" -bsnes_cpu_overclock = "100" -bsnes_cpu_sa1_overclock = "100" -bsnes_cpu_sfx_overclock = "100" -bsnes_dsp_cubic = "OFF" -bsnes_dsp_echo_shadow = "OFF" -bsnes_dsp_fast = "ON" -bsnes_entropy = "Low" -bsnes_hotfixes = "OFF" -bsnes_ips_headered = "OFF" -bsnes_mode7_bgGrad = "4" -bsnes_mode7_igwin = "outside" -bsnes_mode7_igwinx = "128" -bsnes_mode7_mosaic = "1x scale" -bsnes_mode7_perspective = "on (wide)" -bsnes_mode7_scale = "1x" -bsnes_mode7_strWin = "OFF" -bsnes_mode7_supersample = "none" -bsnes_mode7_widescreen = "16:9" -bsnes_mode7_windRad = "0" -bsnes_mode7_wsbg1 = "auto horz and vert" -bsnes_mode7_wsbg2 = "auto horz and vert" -bsnes_mode7_wsbg3 = "auto horz and vert" -bsnes_mode7_wsbg4 = "auto horz and vert" -bsnes_mode7_wsBgCol = "auto" -bsnes_mode7_wsMarker = "none" -bsnes_mode7_wsMarkerAlpha = "1/1" -bsnes_mode7_wsMode = "all" -bsnes_mode7_wsobj = "safe" -bsnes_ppu_deinterlace = "ON" -bsnes_ppu_fast = "ON" -bsnes_ppu_no_sprite_limit = "ON" -bsnes_ppu_no_vram_blocking = "OFF" -bsnes_ppu_show_overscan = "OFF" -bsnes_run_ahead_frames = "OFF" -bsnes_sgb_bios = "SGB1.sfc" -bsnes_video_aspectcorrection = "OFF" -bsnes_video_gamma = "100" -bsnes_video_luminance = "100" -bsnes_video_saturation = "100" diff --git a/configs/org.libretro.RetroArch/config/retroarch/config/bsnes-hd beta/snes.cfg b/configs/org.libretro.RetroArch/config/retroarch/config/bsnes-hd beta/snes.cfg deleted file mode 100644 index c27cce43..00000000 --- a/configs/org.libretro.RetroArch/config/retroarch/config/bsnes-hd beta/snes.cfg +++ /dev/null @@ -1 +0,0 @@ -video_scale_integer = "false" diff --git a/configs/org.libretro.RetroArch/config/retroarch/config/bsnes-hd beta/snes.glslp b/configs/org.libretro.RetroArch/config/retroarch/config/bsnes-hd beta/snes.glslp new file mode 100644 index 00000000..95b33fc3 --- /dev/null +++ b/configs/org.libretro.RetroArch/config/retroarch/config/bsnes-hd beta/snes.glslp @@ -0,0 +1 @@ +#reference "/app/share/libretro/shaders/shaders_glsl/crt/crt-royale-fake-bloom.glslp" \ No newline at end of file diff --git a/configs/org.libretro.RetroArch/config/retroarch/config/bsnes-hd beta/snes.slangp b/configs/org.libretro.RetroArch/config/retroarch/config/bsnes-hd beta/snes.slangp new file mode 100644 index 00000000..8b4a396e --- /dev/null +++ b/configs/org.libretro.RetroArch/config/retroarch/config/bsnes-hd beta/snes.slangp @@ -0,0 +1 @@ +#reference /app/share/libretro/shaders/shaders_slang/crt/crt-royale-fake-bloom.slangp \ No newline at end of file diff --git a/configs/org.libretro.RetroArch/config/retroarch/config/dolphin-emu/dolphin-emu.cfg b/configs/org.libretro.RetroArch/config/retroarch/config/dolphin-emu/dolphin-emu.cfg deleted file mode 100644 index 0c04915f..00000000 --- a/configs/org.libretro.RetroArch/config/retroarch/config/dolphin-emu/dolphin-emu.cfg +++ /dev/null @@ -1 +0,0 @@ -video_driver = "gl" diff --git a/configs/org.libretro.RetroArch/config/retroarch/config/mGBA/gba.cfg b/configs/org.libretro.RetroArch/config/retroarch/config/mGBA/gba.cfg deleted file mode 100644 index fcb4e920..00000000 --- a/configs/org.libretro.RetroArch/config/retroarch/config/mGBA/gba.cfg +++ /dev/null @@ -1,2 +0,0 @@ -aspect_ratio_index = "21" -video_shader_enable = "true" diff --git a/configs/org.libretro.RetroArch/config/retroarch/config/melonDS/nds.opt b/configs/org.libretro.RetroArch/config/retroarch/config/melonDS/nds.opt deleted file mode 100644 index 7ece0a3a..00000000 --- a/configs/org.libretro.RetroArch/config/retroarch/config/melonDS/nds.opt +++ /dev/null @@ -1,22 +0,0 @@ -melonds_audio_bitrate = "Automatic" -melonds_audio_interpolation = "None" -melonds_boot_directly = "enabled" -melonds_console_mode = "DS" -melonds_dsi_sdcard = "disabled" -melonds_hybrid_ratio = "3" -melonds_hybrid_small_screen = "Bottom" -melonds_jit_block_size = "32" -melonds_jit_branch_optimisations = "enabled" -melonds_jit_enable = "enabled" -melonds_jit_fast_memory = "enabled" -melonds_jit_literal_optimisations = "enabled" -melonds_opengl_better_polygons = "enabled" -melonds_opengl_filtering = "nearest" -melonds_opengl_renderer = "enabled" -melonds_opengl_resolution = "5x native (1280x960)" -melonds_randomize_mac_address = "disabled" -melonds_screen_gap = "0" -melonds_screen_layout = "Hybrid Top" -melonds_swapscreen_mode = "Toggle" -melonds_threaded_renderer = "disabled" -melonds_touch_mode = "Touch" diff --git a/configs/org.libretro.RetroArch/config/retroarch/overlays/pegasus/wswanc.cfg b/configs/org.libretro.RetroArch/config/retroarch/overlays/pegasus/wswanc.cfg new file mode 100644 index 00000000..444be36a --- /dev/null +++ b/configs/org.libretro.RetroArch/config/retroarch/overlays/pegasus/wswanc.cfg @@ -0,0 +1,4 @@ +overlays = 1 +overlay0_full_screen = true +overlay0_descs = 0 +overlay0_overlay = wswanc.png diff --git a/configs/org.libretro.RetroArch/config/retroarch/overlays/pegasus/wswanc.png b/configs/org.libretro.RetroArch/config/retroarch/overlays/pegasus/wswanc.png new file mode 100644 index 00000000..3e401654 Binary files /dev/null and b/configs/org.libretro.RetroArch/config/retroarch/overlays/pegasus/wswanc.png differ diff --git a/configs/org.yuzu_emu.yuzu/config/yuzu/qt-config.ini b/configs/org.yuzu_emu.yuzu/config/yuzu/qt-config.ini index d89582d8..9fda483a 100644 --- a/configs/org.yuzu_emu.yuzu/config/yuzu/qt-config.ini +++ b/configs/org.yuzu_emu.yuzu/config/yuzu/qt-config.ini @@ -891,7 +891,7 @@ shader_backend=0 shader_backend\default=false shader_feedback=false shader_feedback\default=true -speed_limit=200 +speed_limit=100 speed_limit\default=false use_asynchronous_gpu_emulation=true use_asynchronous_gpu_emulation\default=true diff --git a/configs/pcsx2qt/.config/PCSX2/inis/PCSX2.ini b/configs/pcsx2qt/.config/PCSX2/inis/PCSX2.ini new file mode 100644 index 00000000..ea40b4c4 --- /dev/null +++ b/configs/pcsx2qt/.config/PCSX2/inis/PCSX2.ini @@ -0,0 +1,454 @@ +[UI] +SettingsVersion = 1 +HideMouseCursor = true +StartFullscreen = true +MainWindowGeometry = AdnQywADAAAAAADgAAAAMQAABJUAAALNAAAA4AAAAE4AAASVAAACzQAAAAAAAAAAAyAAAADgAAAATgAABJUAAALN +MainWindowState = AAAA/wAAAAD9AAAAAAAAA7YAAAIFAAAABAAAAAQAAAAIAAAACPwAAAABAAAAAgAAAAEAAAAOAHQAbwBvAGwAQgBhAHIBAAAAAP////8AAAAAAAAAAA== +ConfirmShutdown = false + + +[EmuCore] +CdvdVerboseReads = false +CdvdDumpBlocks = false +CdvdShareWrite = false +EnablePatches = true +EnableCheats = false +EnablePINE = false +EnableWideScreenPatches = false +EnableNoInterlacingPatches = false +EnableRecordingTools = true +EnableGameFixes = true +SaveStateOnShutdown = false +ConsoleToStdio = false +HostFs = false +PatchBios = false +PatchRegion = +BackupSavestate = true +SavestateZstdCompression = true +McdEnableEjection = true +McdFolderAutoManage = true +GzipIsoIndexTemplate = $(f).pindex.tmp +BlockDumpSaveDirectory = + + +[EmuCore/Speedhacks] +EECycleRate = 0 +EECycleSkip = 0 +fastCDVD = true +IntcStat = true +WaitLoop = true +vuFlagHack = true +vuThread = true +vu1Instant = true + + +[EmuCore/CPU] +FPU.DenormalsAreZero = true +FPU.FlushToZero = true +FPU.Roundmode = 3 +AffinityControlMode = 0 +VU.DenormalsAreZero = true +VU.FlushToZero = true +VU.Roundmode = 3 + + +[EmuCore/CPU/Recompiler] +EnableEE = true +EnableIOP = true +EnableEECache = false +EnableVU0 = true +EnableVU1 = true +vuOverflow = true +vuExtraOverflow = false +vuSignOverflow = false +vuUnderflow = false +fpuOverflow = true +fpuExtraOverflow = false +fpuFullMode = false +StackFrameChecks = false +PreBlockCheckEE = false +PreBlockCheckIOP = false + + +[EmuCore/GS] +VsyncQueueSize = 2 +FrameLimitEnable = true +VsyncEnable = 0 +FramerateNTSC = 59.940000 +FrameratePAL = 50.000000 +SyncToHostRefreshRate = true +AspectRatio = Auto 4:3/3:2 +FMVAspectRatioSwitch = Off +Zoom = 100.000000 +StretchY = 100.000000 +OffsetX = 0.000000 +OffsetY = 0.000000 +pcrtc_antiblur = true +disable_interlace_offset = false +pcrtc_offsets = false +pcrtc_overscan = false +IntegerScaling = false +linear_present = true +UseDebugDevice = false +UseBlitSwapChain = false +disable_shader_cache = false +DisableDualSourceBlend = false +DisableFramebufferFetch = false +ThreadedPresentation = false +SkipDuplicateFrames = false +OsdShowMessages = true +OsdShowSpeed = false +OsdShowFPS = false +OsdShowCPU = false +OsdShowGPU = false +OsdShowResolution = false +OsdShowGSStats = false +OsdShowIndicators = true +HWDisableReadbacks = false +accurate_date = true +paltex = true +conservative_framebuffer = true +autoflush_sw = true +preload_frame_with_gs_data = false +wrap_gs_mem = false +mipmap = true +aa1 = true +UserHacks = false +UserHacks_align_sprite_X = false +UserHacks_AutoFlush = false +UserHacks_CPU_FB_Conversion = false +UserHacks_DisableDepthSupport = false +UserHacks_DisablePartialInvalidation = false +UserHacks_Disable_Safe_Features = false +UserHacks_merge_pp_sprite = false +UserHacks_WildHack = false +UserHacks_TextureInsideRt = false +fxaa = false +ShadeBoost = false +shaderfx = false +dump = false +save = false +savef = false +savet = false +savez = false +DumpReplaceableTextures = false +DumpReplaceableMipmaps = false +DumpTexturesWithFMVActive = false +DumpDirectTextures = true +DumpPaletteTextures = true +LoadTextureReplacements = true +LoadTextureReplacementsAsync = true +PrecacheTextureReplacements = true +deinterlace = 7 +OsdScale = 100 +Renderer = 14 +upscale_multiplier = 2 +mipmap_hw = -1 +accurate_blending_unit = 1 +crc_hack_level = -1 +filter = 2 +texture_preloading = 2 +GSDumpCompression = 0 +dithering_ps2 = 2 +MaxAnisotropy = 0 +extrathreads = 2 +extrathreads_height = 4 +TVShader = 0 +UserHacks_SkipDraw_Start = 0 +UserHacks_SkipDraw_End = 0 +UserHacks_Half_Bottom_Override = -1 +UserHacks_HalfPixelOffset = 0 +UserHacks_round_sprite_offset = 0 +UserHacks_TCOffsetX = 0 +UserHacks_TCOffsetY = 0 +UserHacks_CPUSpriteRenderBW = 0 +UserHacks_TriFilter = -1 +OverrideTextureBarriers = -1 +OverrideGeometryShaders = -1 +ShadeBoost_Brightness = 50 +ShadeBoost_Contrast = 50 +ShadeBoost_Saturation = 50 +saven = 0 +savel = 5000 +Adapter = AMD RADV VANGOGH +shaderfx_conf = shaders/GS_FX_Settings.ini +shaderfx_glsl = shaders/GS.fx + + +[SPU2/Mixing] +Interpolation = 5 +FinalVolume = 100 +VolumeAdjustC = 0.000000 +VolumeAdjustFL = 0.000000 +VolumeAdjustFR = 0.000000 +VolumeAdjustBL = 0.000000 +VolumeAdjustBR = 0.000000 +VolumeAdjustSL = 0.000000 +VolumeAdjustSR = 0.000000 +VolumeAdjustLFE = 0.000000 + + +[SPU2/Output] +OutputModule = cubeb +Latency = 50 +SynchMode = 0 +SpeakerConfiguration = 0 + + +[DEV9/Eth] +EthEnable = true +EthApi = Sockets +EthDevice = Auto +EthLogDNS = false +InterceptDHCP = false +PS2IP = 0.0.0.0 +Mask = 0.0.0.0 +Gateway = 0.0.0.0 +DNS1 = 0.0.0.0 +DNS2 = 0.0.0.0 +AutoMask = true +AutoGateway = true +ModeDNS1 = Auto +ModeDNS2 = Auto + + +[DEV9/Eth/Hosts] +Count = 0 + + +[DEV9/Hdd] +HddEnable = false +HddFile = DEV9hdd.raw +HddSizeSectors = 83886080 + + +[EmuCore/Gamefixes] +VuAddSubHack = false +FpuMulHack = false +FpuNegDivHack = false +XgKickHack = false +EETimingHack = false +SoftwareRendererFMVHack = false +SkipMPEGHack = false +OPHFlagHack = false +DMABusyHack = false +VIFFIFOHack = false +VIF1StallHack = false +GIFFIFOHack = false +GoemonTlbHack = false +IbitHack = false +VUSyncHack = false +VUOverflowHack = false +BlitInternalFPSHack = false + + +[EmuCore/Profiler] +Enabled = false +RecBlocks_EE = true +RecBlocks_IOP = true +RecBlocks_VU0 = true +RecBlocks_VU1 = true + + +[EmuCore/Debugger] +ShowDebuggerOnStart = false +AlignMemoryWindowStart = true +FontWidth = 8 +FontHeight = 12 +WindowWidth = 0 +WindowHeight = 0 +MemoryViewBytesPerRow = 16 + + +[EmuCore/TraceLog] +Enabled = false +EE.bitset = 0 +IOP.bitset = 0 + + +[Filenames] +BIOS = + + +[Framerate] +NominalScalar = 1.000000 +TurboScalar = 2.000000 +SlomoScalar = 0.500000 + + +[MemoryCards] +Slot1_Enable = true +Slot1_Filename = Mcd001.ps2 +Slot2_Enable = true +Slot2_Filename = Mcd002.ps2 +Multitap1_Slot2_Enable = false +Multitap1_Slot2_Filename = Mcd-Multitap1-Slot02.ps2 +Multitap1_Slot3_Enable = false +Multitap1_Slot3_Filename = Mcd-Multitap1-Slot03.ps2 +Multitap1_Slot4_Enable = false +Multitap1_Slot4_Filename = Mcd-Multitap1-Slot04.ps2 +Multitap2_Slot2_Enable = false +Multitap2_Slot2_Filename = Mcd-Multitap2-Slot02.ps2 +Multitap2_Slot3_Enable = false +Multitap2_Slot3_Filename = Mcd-Multitap2-Slot03.ps2 +Multitap2_Slot4_Enable = false +Multitap2_Slot4_Filename = Mcd-Multitap2-Slot04.ps2 + + +[Folders] +Bios = /run/media/mmcblk0p1/Emulation/bios +Snapshots = /run/media/mmcblk0p1/Emulation/storage/pcsx2/snaps +SaveStates = /run/media/mmcblk0p1/Emulation/saves/pcsx2/states +MemoryCards = /run/media/mmcblk0p1/Emulation/saves/pcsx2/saves +Logs = logs +Cheats = cheats +CheatsWS = cheats_ws +CheatsNI = cheats_ni +Cache = /run/media/mmcblk0p1/Emulation/storage/pcsx2/cache +Textures = textures +InputProfiles = inputprofiles +Covers = /run/media/mmcblk0p1/Emulation/storage/pcsx2/covers + + +[InputSources] +SDL = true +SDLControllerEnhancedMode = false +XInput = false +RawInput = false + + +[Hotkeys] +ToggleFullscreen = SDL-0/RightStick & SDL-0/LeftStick +CycleAspectRatio = Keyboard/F6 +CycleInterlaceMode = Keyboard/F5 +CycleMipmapMode = Keyboard/Insert +GSDumpMultiFrame = Keyboard/Control & Keyboard/Shift & Keyboard/F8 +Screenshot = Keyboard/F8 +GSDumpSingleFrame = Keyboard/Shift & Keyboard/F8 +ToggleSoftwareRendering = Keyboard/F9 +ZoomIn = Keyboard/Control & Keyboard/Plus +ZoomOut = Keyboard/Control & Keyboard/Minus +InputRecToggleMode = Keyboard/Shift & Keyboard/R +LoadStateFromSlot = SDL-0/Back & SDL-0/LeftShoulder +SaveStateToSlot = SDL-0/Back & SDL-0/RightShoulder +NextSaveStateSlot = Keyboard/F2 +PreviousSaveStateSlot = Keyboard/Shift & Keyboard/F2 +ShutdownVM = SDL-0/Back & SDL-0/Start +ToggleFrameLimit = Keyboard/F4 +TogglePause = SDL-0/Back & SDL-0/A +ToggleSlowMotion = SDL-0/Back & SDL-0/+LeftTrigger +ToggleTurbo = SDL-0/Back & SDL-0/+RightTrigger +HoldTurbo = Keyboard/Period +ResetVM = SDL-0/Back & SDL-0/B + + +[Pad] +MultitapPort1 = false +MultitapPort2 = false +PointerXScale = 8.000000 +PointerYScale = 8.000000 +PointerXInvert = false +PointerYInvert = false + + +[Pad1] +Type = DualShock2 +Deadzone = 0.000000 +AxisScale = 1.330000 +LargeMotorScale = 1.000000 +SmallMotorScale = 1.000000 +PressureModifier = 0.500000 +Up = SDL-0/DPadUp +Right = SDL-0/DPadRight +Down = SDL-0/DPadDown +Left = SDL-0/DPadLeft +Triangle = SDL-0/Y +Circle = SDL-0/B +Cross = SDL-0/A +Square = SDL-0/X +Select = SDL-0/Back +Start = SDL-0/Start +L1 = SDL-0/LeftShoulder +L2 = SDL-0/+LeftTrigger +R1 = SDL-0/RightShoulder +R2 = SDL-0/+RightTrigger +L3 = SDL-0/LeftStick +R3 = SDL-0/RightStick +LUp = SDL-0/-LeftY +LRight = SDL-0/+LeftX +LDown = SDL-0/+LeftY +LLeft = SDL-0/-LeftX +RUp = SDL-0/-RightY +RRight = SDL-0/+RightX +RDown = SDL-0/+RightY +RLeft = SDL-0/-RightX +Analog = SDL-0/Guide +LargeMotor = SDL-0/LargeMotor +SmallMotor = SDL-0/SmallMotor + + +[Pad2] +Type = None +Deadzone = 0.000000 +AxisScale = 1.330000 +LargeMotorScale = 1.000000 +SmallMotorScale = 1.000000 +PressureModifier = 0.500000 + + +[Pad3] +Type = None +Deadzone = 0.000000 +AxisScale = 1.330000 +LargeMotorScale = 1.000000 +SmallMotorScale = 1.000000 +PressureModifier = 0.500000 + + +[Pad4] +Type = None +Deadzone = 0.000000 +AxisScale = 1.330000 +LargeMotorScale = 1.000000 +SmallMotorScale = 1.000000 +PressureModifier = 0.500000 + + +[Pad5] +Type = None +Deadzone = 0.000000 +AxisScale = 1.330000 +LargeMotorScale = 1.000000 +SmallMotorScale = 1.000000 +PressureModifier = 0.500000 + + +[Pad6] +Type = None +Deadzone = 0.000000 +AxisScale = 1.330000 +LargeMotorScale = 1.000000 +SmallMotorScale = 1.000000 +PressureModifier = 0.500000 + + +[Pad7] +Type = None +Deadzone = 0.000000 +AxisScale = 1.330000 +LargeMotorScale = 1.000000 +SmallMotorScale = 1.000000 +PressureModifier = 0.500000 + + +[Pad8] +Type = None +Deadzone = 0.000000 +AxisScale = 1.330000 +LargeMotorScale = 1.000000 +SmallMotorScale = 1.000000 +PressureModifier = 0.500000 + + +[GameList] +RecursivePaths = /run/media/mmcblk0p1/Emulation/roms/ps2 diff --git a/configs/steam-rom-manager/userData/userConfigurations.json b/configs/steam-rom-manager/userData/userConfigurations.json index fcd5cb18..c5e6db7e 100644 --- a/configs/steam-rom-manager/userData/userConfigurations.json +++ b/configs/steam-rom-manager/userData/userConfigurations.json @@ -88,7 +88,7 @@ "useCredentials": true }, "parserInputs": { - "glob": "${title}@(.sh)" + "glob": "**/${title}@(.sh)" }, "titleFromVariable": { "limitToGroups": "", @@ -136,7 +136,7 @@ "useCredentials": true }, "parserInputs": { - "glob": "${title}@(.iso|.ISO|.bin|.BIN|.chd|.CHD|.cue|.cue)" + "glob": "**/${title}@(.iso|.ISO|.bin|.BIN|.chd|.CHD|.cue|.cue)" }, "titleFromVariable": { "limitToGroups": "${3DO}", @@ -189,7 +189,7 @@ "useCredentials": true }, "parserInputs": { - "glob": "${title}@(.adf|.ADF|.adz|.ADZ|.dms|.DMS|.fdi|.FDI|.ipf|.IPF|.hdf|.HDF|.hdz|.HDZ|.lha|.LHA|.slave|.SLAVE|.info|.INFO|.cue|.CUE|.ccd|.CCD|.chd|.CHD|.nrg|.NRG|.mds|.MDS|.iso|.ISO|.uae|.UAE|.m3u|.M3U|.zip|.ZIP|.7z|.7Z)" + "glob": "**/${title}@(.adf|.ADF|.adz|.ADZ|.dms|.DMS|.fdi|.FDI|.ipf|.IPF|.hdf|.HDF|.hdz|.HDZ|.lha|.LHA|.slave|.SLAVE|.info|.INFO|.cue|.CUE|.ccd|.CCD|.chd|.CHD|.nrg|.NRG|.mds|.MDS|.iso|.ISO|.uae|.UAE|.m3u|.M3U|.zip|.ZIP|.7z|.7Z)" }, "titleFromVariable": { "limitToGroups": "", @@ -242,7 +242,7 @@ "useCredentials": true }, "parserInputs": { - "glob": "${title}@(.adf|.ADF|.adz|.ADZ|.dms|.DMS|.fdi|.FDI|.ipf|.IPF|.hdf|.HDF|.hdz|.HDZ|.lha|.LHA|.slave|.SLAVE|.info|.INFO|.cue|.CUE|.ccd|.CCD|.chd|.CHD|.nrg|.NRG|.mds|.MDS|.iso|.ISO|.uae|.UAE|.m3u|.M3U|.zip|.ZIP|.7z|.7Z)" + "glob": "**/${title}@(.adf|.ADF|.adz|.ADZ|.dms|.DMS|.fdi|.FDI|.ipf|.IPF|.hdf|.HDF|.hdz|.HDZ|.lha|.LHA|.slave|.SLAVE|.info|.INFO|.cue|.CUE|.ccd|.CCD|.chd|.CHD|.nrg|.NRG|.mds|.MDS|.iso|.ISO|.uae|.UAE|.m3u|.M3U|.zip|.ZIP|.7z|.7Z)" }, "titleFromVariable": { "limitToGroups": "", @@ -296,7 +296,7 @@ "useCredentials": true }, "parserInputs": { - "glob": "${title}@(.adf|.ADF|.adz|.ADZ|.dms|.DMS|.fdi|.FDI|.ipf|.IPF|.hdf|.HDF|.hdz|.HDZ|.lha|.LHA|.slave|.SLAVE|.info|.INFO|.cue|.CUE|.ccd|.CCD|.chd|.CHD|.nrg|.NRG|.mds|.MDS|.iso|.ISO|.uae|.UAE|.m3u|.M3U|.zip|.ZIP|.7z|.7Z)" + "glob": "**/${title}@(.adf|.ADF|.adz|.ADZ|.dms|.DMS|.fdi|.FDI|.ipf|.IPF|.hdf|.HDF|.hdz|.HDZ|.lha|.LHA|.slave|.SLAVE|.info|.INFO|.cue|.CUE|.ccd|.CCD|.chd|.CHD|.nrg|.NRG|.mds|.MDS|.iso|.ISO|.uae|.UAE|.m3u|.M3U|.zip|.ZIP|.7z|.7Z)" }, "titleFromVariable": { "limitToGroups": "", @@ -349,7 +349,7 @@ "useCredentials": true }, "parserInputs": { - "glob": "${title}@(.adf|.ADF|.adz|.ADZ|.dms|.DMS|.fdi|.FDI|.ipf|.IPF|.hdf|.HDF|.hdz|.HDZ|.lha|.LHA|.slave|.SLAVE|.info|.INFO|.cue|.CUE|.ccd|.CCD|.chd|.CHD|.nrg|.NRG|.mds|.MDS|.iso|.ISO|.uae|.UAE|.m3u|.M3U|.zip|.ZIP|.7z|.7Z)" + "glob": "**/${title}@(.adf|.ADF|.adz|.ADZ|.dms|.DMS|.fdi|.FDI|.ipf|.IPF|.hdf|.HDF|.hdz|.HDZ|.lha|.LHA|.slave|.SLAVE|.info|.INFO|.cue|.CUE|.ccd|.CCD|.chd|.CHD|.nrg|.NRG|.mds|.MDS|.iso|.ISO|.uae|.UAE|.m3u|.M3U|.zip|.ZIP|.7z|.7Z)" }, "titleFromVariable": { "limitToGroups": "", @@ -371,9 +371,74 @@ "parserId": "164785598905398123", "version": 5 }, + { + "parserType": "Glob", + "configTitle": "Arcade - MAME (standalone)", + "steamCategory": "${Arcade}", + "steamDirectory": "/home/deck/.steam/steam", + "romDirectory": "/run/media/mmcblk0p1/Emulation/roms/arcade", + "executableArgs": "run org.mamedev.MAME \"${fileName}\"", + "executableModifier": "\"${exePath}\"", + "startInDirectory": "", + "titleModifier": "${fuzzyTitle}", + "imageProviders": [ + "SteamGridDB" + ], + "onlineImageQueries": "${${fuzzyTitle}}", + "imagePool": "${fuzzyTitle}", + "defaultImage": "", + "defaultTallImage": "", + "defaultHeroImage": "", + "defaultLogoImage": "", + "defaultIcon": "", + "localImages": "", + "localTallImages": "", + "localHeroImages": "", + "localLogoImages": "", + "localIcons": "", + "userAccounts": { + "specifiedAccounts": "", + "skipWithMissingDataDir": true, + "useCredentials": true + }, + "executable": { + "path": "/usr/bin/flatpak", + "shortcutPassthrough": false, + "appendArgsToExecutable": true + }, + "parserInputs": { + "glob": "${title}@(.zip|.ZIP)" + }, + "titleFromVariable": { + "limitToGroups": "${MAME}", + "caseInsensitiveVariables": false, + "skipFileIfVariableWasNotFound": false, + "tryToMatchTitle": true + }, + "fuzzyMatch": { + "replaceDiacritics": true, + "removeCharacters": true, + "removeBrackets": true + }, + "imageProviderAPIs": { + "SteamGridDB": { + "nsfw": false, + "humor": false, + "styles": [], + "stylesHero": [], + "stylesLogo": [], + "stylesIcon": [], + "imageMotionTypes": [ + "static" + ] + } + }, + "parserId": "165964954316677671", + "version": 10 + }, { "parserType": "Glob", - "configTitle": "Arcade - MAME 2003 Plus", + "configTitle": "Arcade - RetroArch MAME 2003 Plus", "steamCategory": "${Arcade MAME 2003+}", "executableModifier": "\"${exePath}\"", "romDirectory": "/run/media/mmcblk0p1/Emulation/roms/mame", @@ -402,7 +467,7 @@ "useCredentials": true }, "parserInputs": { - "glob": "${title}@(.zip|.ZIP)" + "glob": "**/${title}@(.zip|.ZIP)" }, "titleFromVariable": { "limitToGroups": "${MAME}", @@ -426,7 +491,7 @@ }, { "parserType": "Glob", - "configTitle": "Arcade - MAME 2010", + "configTitle": "Arcade - RetroArch MAME 2010", "steamCategory": "${Arcade MAME 2010}", "executableModifier": "\"${exePath}\"", "romDirectory": "/run/media/mmcblk0p1/Emulation/roms/mame2010", @@ -455,7 +520,7 @@ "useCredentials": true }, "parserInputs": { - "glob": "${title}@(.zip|.ZIP)" + "glob": "**/${title}@(.zip|.ZIP)" }, "titleFromVariable": { "limitToGroups": "${MAME}", @@ -479,7 +544,7 @@ }, { "parserType": "Glob", - "configTitle": "Arcade - MAME Current", + "configTitle": "Arcade - RetroArch MAME Current", "steamCategory": "${Arcade MAME Current}", "executableModifier": "\"${exePath}\"", "romDirectory": "/run/media/mmcblk0p1/Emulation/roms/arcade", @@ -508,7 +573,7 @@ "useCredentials": true }, "parserInputs": { - "glob": "${title}@(.zip|.ZIP)" + "glob": "**/${title}@(.zip|.ZIP)" }, "titleFromVariable": { "limitToGroups": "${MAME}", @@ -566,7 +631,7 @@ "useCredentials": true }, "parserInputs": { - "glob": "${title}@(7z|7Z|.zip|.ZIP)" + "glob": "**/${title}@(7z|7Z|.zip|.ZIP)" }, "titleFromVariable": { "limitToGroups": "${MAME}", @@ -614,7 +679,7 @@ "useCredentials": true }, "parserInputs": { - "glob": "${title}@(.7z|.7Z|.a26|.A26|.bin|.BIN|.zip|.ZIP)" + "glob": "**/${title}@(.7z|.7Z|.a26|.A26|.bin|.BIN|.zip|.ZIP)" }, "titleFromVariable": { "limitToGroups": "", @@ -667,7 +732,7 @@ "useCredentials": true }, "parserInputs": { - "glob": "${title}@(.7z|.7Z|.lnx|.LNX|.zip|.ZIP)" + "glob": "**/${title}@(.7z|.7Z|.lnx|.LNX|.zip|.ZIP)" }, "titleFromVariable": { "limitToGroups": "", @@ -720,7 +785,7 @@ "useCredentials": true }, "parserInputs": { - "glob": "${title}@(.7z|.7Z|.pc2|.PC2|.ws|.WS|.wsc|.WSC|.zip|.ZIP)" + "glob": "**/${title}@(.7z|.7Z|.pc2|.PC2|.ws|.WS|.wsc|.WSC|.zip|.ZIP)" }, "titleFromVariable": { "limitToGroups": "", @@ -778,7 +843,7 @@ "appendArgsToExecutable": true }, "parserInputs": { - "glob": "${title}@(.d64|.D64|.d71|.D71|.d80|.D80|.d81|.D81|.d82|.D82|.g64|.G64|.g41|.G41|.x64|.X64|.t64|.T64|.tap|.TAP|.prg|.PRG|.p00|.P00|.crt|.CRT|.bin|.BIN|.d6z|.D6Z|.d7z|.D7Z|.d8z|.D8Z|.g6z|.G6Z|.g4z|.G4Z|.x6z|.X6Z|.cmd|.CMD|.m3u|.M3U|.vsf|.VSF|.nib|.NIB|.nbz|.NBZ|.zip|.ZIP)" + "glob": "**/${title}@(.d64|.D64|.d71|.D71|.d80|.D80|.d81|.D81|.d82|.D82|.g64|.G64|.g41|.G41|.x64|.X64|.t64|.T64|.tap|.TAP|.prg|.PRG|.p00|.P00|.crt|.CRT|.bin|.BIN|.d6z|.D6Z|.d7z|.D7Z|.d8z|.D8Z|.g6z|.G6Z|.g4z|.G4Z|.x6z|.X6Z|.cmd|.CMD|.m3u|.M3U|.vsf|.VSF|.nib|.NIB|.nbz|.NBZ|.zip|.ZIP)" }, "titleFromVariable": { "limitToGroups": "", @@ -843,7 +908,7 @@ "useCredentials": true }, "parserInputs": { - "glob": "${title}@(.7z|.7Z|.zip|.ZIP)" + "glob": "**/${title}@(.7z|.7Z|.zip|.ZIP)" }, "titleFromVariable": { "limitToGroups": "", @@ -896,7 +961,7 @@ "useCredentials": true }, "parserInputs": { - "glob": "${title}@(.iso|.ISO)" + "glob": "**/${title}@(.iso|.ISO)" }, "titleFromVariable": { "limitToGroups": "", @@ -949,7 +1014,7 @@ "useCredentials": true }, "parserInputs": { - "glob": "${title}@(.iso|.ISO|.xex|.XEX)" + "glob": "**/${title}@(.iso|.ISO|.xex|.XEX)" }, "titleFromVariable": { "limitToGroups": "", @@ -997,7 +1062,7 @@ "useCredentials": true }, "parserInputs": { - "glob": "${title}@(.3ds|.3DS|.3dsx|.3DSX|.app|.APP|.axf|.AXF|.cii|.CII|.cxi|.CXI|.elf|.ELF|.cci|.CCI)" + "glob": "**/${title}@(.3ds|.3DS|.3dsx|.3DSX|.app|.APP|.axf|.AXF|.cii|.CII|.cxi|.CXI|.elf|.ELF|.cci|.CCI)" }, "titleFromVariable": { "limitToGroups": "", @@ -1050,7 +1115,7 @@ "useCredentials": true }, "parserInputs": { - "glob": "${title}@(.7z|.7Z|.bin|.BIN|.n64|.N64|.ndd|.NDD|.u1|.U1|.v64|.V64|.z64|.Z64|.zip|.ZIP)" + "glob": "**/${title}@(.7z|.7Z|.bin|.BIN|.n64|.N64|.ndd|.NDD|.u1|.U1|.v64|.V64|.z64|.Z64|.zip|.ZIP)" }, "titleFromVariable": { "limitToGroups": "", @@ -1103,7 +1168,7 @@ "useCredentials": true }, "parserInputs": { - "glob": "${title}@(.7z|.7Z|.gb|.GB|.dmg|.DMG|.zip|.ZIP)" + "glob": "**/${title}@(.7z|.7Z|.gb|.GB|.dmg|.DMG|.zip|.ZIP)" }, "titleFromVariable": { "limitToGroups": "", @@ -1156,7 +1221,7 @@ "useCredentials": true }, "parserInputs": { - "glob": "${title}@(.7z|.7Z|.gb|.GB|.gbc|.GBC|.zip|.ZIP)" + "glob": "**/${title}@(.7z|.7Z|.gb|.GB|.gbc|.GBC|.zip|.ZIP)" }, "titleFromVariable": { "limitToGroups": "", @@ -1209,7 +1274,7 @@ "useCredentials": true }, "parserInputs": { - "glob": "${title}@(.7z|.7Z|.gba|.GBA|.zip|.ZIP)" + "glob": "**/${title}@(.7z|.7Z|.gba|.GBA|.zip|.ZIP)" }, "titleFromVariable": { "limitToGroups": "", @@ -1267,7 +1332,7 @@ "useCredentials": true }, "parserInputs": { - "glob": "${title}@(.ciso|.CISO|.dol|.DOL|.elf|.ELF|.gcm|.GCM|.gcz|.GCZ|.iso|.ISO|.json|.JSON|.nkit.iso|.NKIT.ISO|.nkit.gcz|.NKIT.GCZ|.rvz|.RVZ|.wad|.WAD|.wia|.WIA)" + "glob": "**/${title}@(.ciso|.CISO|.dol|.DOL|.elf|.ELF|.gcm|.GCM|.gcz|.GCZ|.iso|.ISO|.json|.JSON|.nkit.iso|.NKIT.ISO|.nkit.gcz|.NKIT.GCZ|.rvz|.RVZ|.wad|.WAD|.wia|.WIA)" }, "titleFromVariable": { "limitToGroups": "", @@ -1286,7 +1351,7 @@ }, { "parserType": "Glob", - "configTitle": "Nintendo NES - Retroarch - Nestopia UE", + "configTitle": "Nintendo NES - Retroarch - Mesen", "steamCategory": "${NES}", "executableModifier": "\"${exePath}\"", "romDirectory": "/run/media/mmcblk0p1/Emulation/roms/nes", @@ -1315,7 +1380,7 @@ "useCredentials": true }, "parserInputs": { - "glob": "${title}@(.7z|.7Z|.nes|.NES|.fds|.FDS|.unf|.UNF|.unif|.UNIF|.zip|.ZIP)" + "glob": "**/${title}@(.7z|.7Z|.nes|.NES|.fds|.FDS|.unf|.UNF|.unif|.UNIF|.zip|.ZIP)" }, "titleFromVariable": { "limitToGroups": "", @@ -1373,7 +1438,7 @@ "useCredentials": true }, "parserInputs": { - "glob": "${title}@(.7z|.7Z|.nds|.NDS|.zip|.ZIP)" + "glob": "**/${title}@(.7z|.7Z|.nds|.NDS|.zip|.ZIP)" }, "titleFromVariable": { "limitToGroups": "", @@ -1421,7 +1486,7 @@ "useCredentials": true }, "parserInputs": { - "glob": "${title}@(.7z|.7Z|.bs|.BS|.fig|.FIG|.sfc|.SFC|.smc|.SMC|.swc|.SWC|.zip|.ZIP)" + "glob": "**/${title}@(.7z|.7Z|.bs|.BS|.fig|.FIG|.sfc|.SFC|.smc|.SMC|.swc|.SWC|.zip|.ZIP)" }, "titleFromVariable": { "limitToGroups": "", @@ -1474,7 +1539,7 @@ "useCredentials": true }, "parserInputs": { - "glob": "${title}@(.7z|.7Z|.bs|.BS|.fig|.FIG|.sfc|.SFC|.smc|.SMC|.swc|.SWC|.zip|.ZIP)" + "glob": "**/${title}@(.7z|.7Z|.bs|.BS|.fig|.FIG|.sfc|.SFC|.smc|.SMC|.swc|.SWC|.zip|.ZIP)" }, "titleFromVariable": { "limitToGroups": "", @@ -1527,7 +1592,7 @@ "useCredentials": true }, "parserInputs": { - "glob": "${title}@(.kip|.KIP|.nca|.NCA|.nro|.NRO|.nso|.NSO|.nsp|.NSP|.xci|.XCI)" + "glob": "**/${title}@(.kip|.KIP|.nca|.NCA|.nro|.NRO|.nso|.NSO|.nsp|.NSP|.xci|.XCI)" }, "titleFromVariable": { "limitToGroups": "", @@ -1585,7 +1650,7 @@ "useCredentials": true }, "parserInputs": { - "glob": "${title}@(.ciso|.CISO|.dol|.DOL|.elf|.ELF|.gcm|.GCM|.gcz|.GCZ|.iso|.ISO|.nkit.iso|.NKIT.ISO|.rvz|.RVZ|.wad|.WAD|.wia|.WIA|.wbfs)" + "glob": "**/${title}@(.ciso|.CISO|.dol|.DOL|.elf|.ELF|.gcm|.GCM|.gcz|.GCZ|.iso|.ISO|.nkit.iso|.NKIT.ISO|.rvz|.RVZ|.wad|.WAD|.wia|.WIA|.wbfs)" }, "titleFromVariable": { "limitToGroups": "", @@ -1638,7 +1703,7 @@ "useCredentials": true }, "parserInputs": { - "glob": "${title}/**/*.rpx" + "glob": "**/${title}/**/*.rpx" }, "titleFromVariable": { "limitToGroups": "", @@ -1691,7 +1756,7 @@ "useCredentials": true }, "parserInputs": { - "glob": "${title}@(7z|7Z|.zip|.ZIP|wux|wud|wua|wad|iso)" + "glob": "**/${title}@(.7z|.7Z|.zip|.ZIP|.wux|.WUX|.wud|.WUD|.wua|.WUA|.wad|.WAD|.iso|.ISO)" }, "titleFromVariable": { "limitToGroups": "", @@ -1744,7 +1809,7 @@ "useCredentials": true }, "parserInputs": { - "glob": "${title}@(.ciso|.CISO|.dol|.DOL|.elf|.ELF|.gcm|.GCM|.gcz|.GCZ|.iso|.ISO|.json|.JSON|.nkit.iso|.NKIT.ISO|.rvz|.RVZ|.wad|.WAD|.wia|.WIA|.wbfs|.WBFS)" + "glob": "**/${title}@(.ciso|.CISO|.dol|.DOL|.elf|.ELF|.gcm|.GCM|.gcz|.GCZ|.iso|.ISO|.json|.JSON|.nkit.iso|.NKIT.ISO|.rvz|.RVZ|.wad|.WAD|.wia|.WIA|.wbfs|.WBFS)" }, "titleFromVariable": { "limitToGroups": "", @@ -1792,7 +1857,7 @@ "useCredentials": true }, "parserInputs": { - "glob": "${title}@(.7z|.7Z|.32x|.32X|.bin|.BIN|.zip|.ZIP)" + "glob": "**/${title}@(.7z|.7Z|.32x|.32X|.bin|.BIN|.zip|.ZIP)" }, "titleFromVariable": { "limitToGroups": "", @@ -1845,7 +1910,7 @@ "useCredentials": true }, "parserInputs": { - "glob": "${title}@(.7z|.7Z|.iso|.ISO|.cue|.CUE|.chd|.CHD|.zip|.ZIP)" + "glob": "**/${title}@(.7z|.7Z|.iso|.ISO|.cue|.CUE|.chd|.CHD|.zip|.ZIP)" }, "titleFromVariable": { "limitToGroups": "", @@ -1898,7 +1963,7 @@ "useCredentials": true }, "parserInputs": { - "glob": "${title}@(.7z|.7Z|.cdi|.CDI|.chd|.CHD|.cue|.CUE|.gdi|.GDI)" + "glob": "**/${title}@(.7z|.7Z|.cdi|.CDI|.chd|.CHD|.cue|.CUE|.gdi|.GDI)" }, "titleFromVariable": { "limitToGroups": "", @@ -1951,7 +2016,7 @@ "useCredentials": true }, "parserInputs": { - "glob": "${title}@(.7z|.7Z|.gg|.GG|.zip|.ZIP)" + "glob": "**/${title}@(.7z|.7Z|.gg|.GG|.zip|.ZIP)" }, "titleFromVariable": { "limitToGroups": "", @@ -2009,7 +2074,7 @@ "useCredentials": true }, "parserInputs": { - "glob": "${title}@(.7z|.7Z|.bin|.BIN|.gen|.GEN|.md|.MD|.smd|.SMD|.zip|.ZIP)" + "glob": "**/${title}@(.7z|.7Z|.bin|.BIN|.gen|.GEN|.md|.MD|.smd|.SMD|.zip|.ZIP)" }, "titleFromVariable": { "limitToGroups": "", @@ -2062,7 +2127,7 @@ "useCredentials": true }, "parserInputs": { - "glob": "${title}@(.7z|.7Z|.bin|.BIN|.gen|.GEN|.md|.MD|.smd|.SMD|.zip|.ZIP)" + "glob": "**/${title}@(.7z|.7Z|.bin|.BIN|.gen|.GEN|.md|.MD|.smd|.SMD|.zip|.ZIP)" }, "titleFromVariable": { "limitToGroups": "", @@ -2110,7 +2175,7 @@ "useCredentials": true }, "parserInputs": { - "glob": "${title}@(.7z|.7Z|.sms|.SMS|.zip|.ZIP)" + "glob": "**/${title}@(.7z|.7Z|.sms|.SMS|.zip|.ZIP)" }, "titleFromVariable": { "limitToGroups": "", @@ -2163,7 +2228,7 @@ "useCredentials": true }, "parserInputs": { - "glob": "${title}@(.7z|.7Z|.cue|.CUE|.iso|.ISO|.zip|ZIP|.chd)" + "glob": "**/${title}@(.7z|.7Z|.cue|.CUE|.iso|.ISO|.zip|ZIP|.chd)" }, "titleFromVariable": { "limitToGroups": "", @@ -2217,7 +2282,7 @@ "useCredentials": true }, "parserInputs": { - "glob": "${title}@(.7z|.7Z|.ngc|.NGC|.ngp|.NGP|.zip|.ZIP)" + "glob": "**/${title}@(.7z|.7Z|.ngc|.NGC|.ngp|.NGP|.zip|.ZIP)" }, "titleFromVariable": { "limitToGroups": "", @@ -2270,7 +2335,7 @@ "useCredentials": true }, "parserInputs": { - "glob": "${title}@(.cue|.CUE|.img|.IMG|.chd|.CHD|.ecm|.ECM|.iso|.ISO|.m3u|.M3U|.mds|.MDS|.pbp|.PBP)" + "glob": "**/${title}@(.cue|.CUE|.img|.IMG|.chd|.CHD|.ecm|.ECM|.iso|.ISO|.m3u|.M3U|.mds|.MDS|.pbp|.PBP)" }, "titleFromVariable": { "limitToGroups": "", @@ -2328,7 +2393,7 @@ "useCredentials": true }, "parserInputs": { - "glob": "${title}@(.ccd|.CCD|.chd|.CHD|.cue|.CUE|.m3u|.M3U|.pbp|.PBP|.toc|.TOC)" + "glob": "**/${title}@(.ccd|.CCD|.chd|.CHD|.cue|.CUE|.m3u|.M3U|.pbp|.PBP|.toc|.TOC)" }, "titleFromVariable": { "limitToGroups": "", @@ -2349,6 +2414,71 @@ "parserType": "Glob", "configTitle": "Sony PlayStation 2 - PCSX2", "steamCategory": "${Playstation 2}", + "steamDirectory": "/home/deck/.steam/steam", + "romDirectory": "/run/media/mmcblk0p1/Emulation/roms/ps2", + "executableArgs": " -batch -fullscreen \"'${filePath}'\"", + "executableModifier": "\"${exePath}\"", + "startInDirectory": "", + "titleModifier": "${fuzzyTitle}", + "imageProviders": [ + "SteamGridDB" + ], + "onlineImageQueries": "${${fuzzyTitle}}", + "imagePool": "${fuzzyTitle}", + "defaultImage": "", + "defaultTallImage": "", + "defaultHeroImage": "", + "defaultLogoImage": "", + "defaultIcon": "", + "localImages": "", + "localTallImages": "", + "localHeroImages": "", + "localLogoImages": "", + "localIcons": "", + "userAccounts": { + "specifiedAccounts": "", + "skipWithMissingDataDir": true, + "useCredentials": true + }, + "executable": { + "path": "/run/media/mmcblk0p1/Emulation/tools/launchers/pcsx2-qt.sh", + "shortcutPassthrough": false, + "appendArgsToExecutable": true + }, + "parserInputs": { + "glob": "${title}@(.bin|.BIN|.chd|.CHD|.cso|.CSO|.dump|.DUMP|.gz|.GZ|.img|.IMG|.iso|.ISO|.mdf|.MDF|.nrg|.NRG)" + }, + "titleFromVariable": { + "limitToGroups": "", + "caseInsensitiveVariables": false, + "skipFileIfVariableWasNotFound": false, + "tryToMatchTitle": false + }, + "fuzzyMatch": { + "replaceDiacritics": true, + "removeCharacters": true, + "removeBrackets": true + }, + "imageProviderAPIs": { + "SteamGridDB": { + "nsfw": false, + "humor": false, + "styles": [], + "stylesHero": [], + "stylesLogo": [], + "stylesIcon": [], + "imageMotionTypes": [ + "static" + ] + } + }, + "parserId": "164785208872922785", + "version": 10 + }, + { + "parserType": "Glob", + "configTitle": "Sony PlayStation 2 - PCSX2 (old version)", + "steamCategory": "${Playstation 2 - Legacy}", "executableModifier": "\"${exePath}\"", "romDirectory": "/run/media/mmcblk0p1/Emulation/roms/ps2", "steamDirectory": "/home/deck/.steam/steam", @@ -2376,7 +2506,7 @@ "useCredentials": true }, "parserInputs": { - "glob": "${title}@(.bin|.BIN|.chd|.CHD|.cso|.CSO|.dump|.DUMP|.gz|.GZ|.img|.IMG|.iso|.ISO|.mdf|.MDF|.nrg|.NRG)" + "glob": "**/${title}@(.bin|.BIN|.chd|.CHD|.cso|.CSO|.dump|.DUMP|.gz|.GZ|.img|.IMG|.iso|.ISO|.mdf|.MDF|.nrg|.NRG)" }, "titleFromVariable": { "limitToGroups": "", @@ -2395,7 +2525,7 @@ "shortcutPassthrough": false, "appendArgsToExecutable": true }, - "parserId": "164785208872922785", + "parserId": "165837546068116314", "version": 5 }, { @@ -2429,7 +2559,7 @@ "useCredentials": true }, "parserInputs": { - "glob": "${title}/PS3_GAME/USRDIR/@(eboot.bin|EBOOT.BIN)" + "glob": "**/${title}/PS3_GAME/USRDIR/@(eboot.bin|EBOOT.BIN)" }, "titleFromVariable": { "limitToGroups": "${PS3}", @@ -2482,7 +2612,7 @@ "useCredentials": true }, "parserInputs": { - "glob": "${title}@(.7z|.7Z|.elf|.ELF|.cso|.CSO|.iso|.ISO|.pbp|.PBP|.prx|.PRX)" + "glob": "**/${title}@(.7z|.7Z|.elf|.ELF|.cso|.CSO|.iso|.ISO|.pbp|.PBP|.prx|.PRX)" }, "titleFromVariable": { "limitToGroups": "", @@ -2535,7 +2665,7 @@ "useCredentials": true }, "parserInputs": { - "glob": "${title}@(.7z|.7Z|.elf|.ELF|.cso|.CSO|.iso|.ISO|.pbp|.PBP|.prx|.PRX)" + "glob": "**/${title}@(.7z|.7Z|.elf|.ELF|.cso|.CSO|.iso|.ISO|.pbp|.PBP|.prx|.PRX)" }, "titleFromVariable": { "limitToGroups": "", @@ -2592,7 +2722,7 @@ "appendArgsToExecutable": true }, "parserInputs": { - "glob": "${title}/USRDIR/@(eboot.bin|EBOOT.BIN)" + "glob": "**/${title}/USRDIR/@(eboot.bin|EBOOT.BIN)" }, "titleFromVariable": { "limitToGroups": "${PS3}", @@ -2608,5 +2738,319 @@ }, "parserId": "165182011334544893", "version": 6 + }, + { + "parserType": "Glob", + "configTitle": "Arcade - Naomi", + "steamCategory": "${Arcade - Naomi}", + "steamDirectory": "/home/deck/.steam/steam", + "romDirectory": "/run/media/mmcblk0p1/Emulation/roms/naomi", + "executableArgs": "run org.libretro.RetroArch -L ${os:win|cores|${os:mac|${racores}|${os:linux|${racores}}}}${/}flycast_libretro.${os:win|dll|${os:mac|dylib|${os:linux|so}}} \"${filePath}\"", + "executableModifier": "\"${exePath}\"", + "startInDirectory": "", + "titleModifier": "${fuzzyTitle}", + "imageProviders": [ + "SteamGridDB" + ], + "onlineImageQueries": "${${fuzzyTitle}}", + "imagePool": "${fuzzyTitle}", + "defaultImage": "", + "defaultTallImage": "", + "defaultHeroImage": "", + "defaultLogoImage": "", + "defaultIcon": "", + "localImages": "", + "localTallImages": "", + "localHeroImages": "", + "localLogoImages": "", + "localIcons": "", + "userAccounts": { + "specifiedAccounts": null, + "skipWithMissingDataDir": true, + "useCredentials": true + }, + "executable": { + "path": "/usr/bin/flatpak", + "shortcutPassthrough": false, + "appendArgsToExecutable": true + }, + "parserInputs": { + "glob": "**/${title}@(.zip|.ZIP)" + }, + "titleFromVariable": { + "limitToGroups": "${MAME}", + "caseInsensitiveVariables": false, + "skipFileIfVariableWasNotFound": false, + "tryToMatchTitle": true + }, + "fuzzyMatch": { + "replaceDiacritics": true, + "removeCharacters": true, + "removeBrackets": true + }, + "imageProviderAPIs": { + "SteamGridDB": { + "nsfw": false, + "humor": false, + "styles": [], + "stylesHero": [], + "stylesLogo": [], + "stylesIcon": [], + "imageMotionTypes": [ + "static" + ] + } + }, + "parserId": "165768545254166037", + "version": 10 + }, + { + "parserType": "Glob", + "configTitle": "Nintendo Switch Ryujinx", + "steamCategory": "${Switch - Ryujinx}", + "steamDirectory": "/home/deck/.steam/steam", + "romDirectory": "/run/media/mmcblk0p1/Emulation/roms/switch", + "executableArgs": "--fullscreen \"'${filePath}'\"", + "executableModifier": "\"${exePath}\"", + "startInDirectory": "", + "titleModifier": "${fuzzyTitle}", + "imageProviders": [ + "SteamGridDB" + ], + "onlineImageQueries": "${${fuzzyTitle}}", + "imagePool": "${fuzzyTitle}", + "defaultImage": "", + "defaultTallImage": "", + "defaultHeroImage": "", + "defaultLogoImage": "", + "defaultIcon": "", + "localImages": "", + "localTallImages": "", + "localHeroImages": "", + "localLogoImages": "", + "localIcons": "", + "userAccounts": { + "specifiedAccounts": "", + "skipWithMissingDataDir": true, + "useCredentials": true + }, + "disabled": true, + "executable": { + "path": "/run/media/mmcblk0p1/Emulation/tools/launchers/ryujinx.sh", + "shortcutPassthrough": false, + "appendArgsToExecutable": true + }, + "parserInputs": { + "glob": "**/${title}@(.kip|.KIP|.nca|.NCA|.nro|.NRO|.nso|.NSO|.nsp|.NSP|.xci|.XCI)" + }, + "titleFromVariable": { + "limitToGroups": "", + "caseInsensitiveVariables": false, + "skipFileIfVariableWasNotFound": false, + "tryToMatchTitle": false + }, + "fuzzyMatch": { + "replaceDiacritics": true, + "removeCharacters": true, + "removeBrackets": true + }, + "imageProviderAPIs": { + "SteamGridDB": { + "nsfw": false, + "humor": false, + "styles": [], + "stylesHero": [], + "stylesLogo": [], + "stylesIcon": [], + "imageMotionTypes": [ + "static" + ] + } + }, + "parserId": "164788906872922785", + "version": 10 + }, + { + "parserType": "Glob", + "configTitle": "NEC PC Engine/TurboGrafx 16 - Retroarch(Flatpak) - Beetle PCE FAST", + "steamCategory": "${PCE}", + "steamDirectory": "/home/deck/.steam/steam", + "romDirectory": "/run/media/mmcblk0p1/Emulation/roms/pcengine", + "executableArgs": "run org.libretro.RetroArch -L ${os:win|cores|${os:mac|${racores}|${os:linux|${racores}}}}${/}mednafen_pce_fast_libretro.${os:win|dll|${os:mac|dylib|${os:linux|so}}} \"${filePath}\"", + "executableModifier": "\"${exePath}\"", + "startInDirectory": "", + "titleModifier": "${fuzzyTitle}", + "imageProviders": [ + "SteamGridDB" + ], + "onlineImageQueries": "${${fuzzyTitle}}", + "imagePool": "${fuzzyTitle}", + "defaultImage": "", + "defaultTallImage": "", + "defaultHeroImage": "", + "defaultLogoImage": "", + "defaultIcon": "", + "localImages": "", + "localTallImages": "", + "localHeroImages": "", + "localLogoImages": "", + "localIcons": "", + "userAccounts": { + "specifiedAccounts": "", + "skipWithMissingDataDir": true, + "useCredentials": true + }, + "executable": { + "path": "/usr/bin/flatpak", + "shortcutPassthrough": false, + "appendArgsToExecutable": true + }, + "parserInputs": { + "glob": "**/${title}@(.7z|.7Z|.bin|.BIN|.pce|.PCE|.zip|.ZIP)" + }, + "titleFromVariable": { + "limitToGroups": "", + "caseInsensitiveVariables": false, + "skipFileIfVariableWasNotFound": false, + "tryToMatchTitle": false + }, + "fuzzyMatch": { + "replaceDiacritics": true, + "removeCharacters": true, + "removeBrackets": true + }, + "imageProviderAPIs": { + "SteamGridDB": { + "nsfw": false, + "humor": false, + "styles": [], + "stylesHero": [], + "stylesLogo": [], + "stylesIcon": [], + "imageMotionTypes": [ + "static" + ] + } + }, + "parserId": "165855998563219386", + "version": 10 + }, + { + "parserType": "Glob", + "configTitle": "NEC PC Engine/TurboGrafx 16 - Retroarch(Flatpak) - Beetle PCE FAST", + "steamCategory": "${PCECD}", + "steamDirectory": "/home/deck/.steam/steam", + "romDirectory": "/run/media/mmcblk0p1/Emulation/roms/pcenginecd", + "executableArgs": "run org.libretro.RetroArch -L ${os:win|cores|${os:mac|${racores}|${os:linux|${racores}}}}${/}mednafen_pce_fast_libretro.${os:win|dll|${os:mac|dylib|${os:linux|so}}} \"${filePath}\"", + "executableModifier": "\"${exePath}\"", + "startInDirectory": "", + "titleModifier": "${fuzzyTitle}", + "imageProviders": [ + "SteamGridDB" + ], + "onlineImageQueries": "${${fuzzyTitle}}", + "imagePool": "${fuzzyTitle}", + "defaultImage": "", + "defaultTallImage": "", + "defaultHeroImage": "", + "defaultLogoImage": "", + "defaultIcon": "", + "localImages": "", + "localTallImages": "", + "localHeroImages": "", + "localLogoImages": "", + "localIcons": "", + "userAccounts": { + "specifiedAccounts": "", + "skipWithMissingDataDir": true, + "useCredentials": true + }, + "executable": { + "path": "/usr/bin/flatpak", + "shortcutPassthrough": false, + "appendArgsToExecutable": true + }, + "parserInputs": { + "glob": "**/${title}@(.7z|.7Z|.ccd|.CCD|.chd|.CHD|.cue|.CUE|.iso|.ISO|.zip|.ZIP)" + }, + "titleFromVariable": { + "limitToGroups": "", + "caseInsensitiveVariables": false, + "skipFileIfVariableWasNotFound": false, + "tryToMatchTitle": false + }, + "fuzzyMatch": { + "replaceDiacritics": true, + "removeCharacters": true, + "removeBrackets": true + }, + "imageProviderAPIs": { + "SteamGridDB": { + "nsfw": false, + "humor": false, + "styles": [], + "stylesHero": [], + "stylesLogo": [], + "stylesIcon": [], + "imageMotionTypes": [ + "static" + ] + } + }, + "parserId": "165856080826916450", + "version": 10 + }, + { + "parserType": "Glob", + "configTitle": "ZX Spectrum - Retroarch - Fuse", + "steamCategory": "${ZX Spectrum}", + "executableModifier": "\"${exePath}\"", + "romDirectory": "/run/media/mmcblk0p1/Emulation/roms/zxspectrum", + "steamDirectory": "/home/deck/.steam/steam", + "startInDirectory": "", + "titleModifier": "${fuzzyTitle}", + "executableArgs": "run org.libretro.RetroArch -L ${os:win|cores|${os:mac|${racores}|${os:linux|${racores}}}}${/}fuse_libretro.${os:win|dll|${os:mac|dylib|${os:linux|so}}} \"${filePath}\"", + "onlineImageQueries": "${${fuzzyTitle}}", + "imagePool": "${fuzzyTitle}", + "imageProviders": ["SteamGridDB"], + "defaultImage": "", + "defaultTallImage": "", + "defaultHeroImage": "", + "defaultLogoImage": "", + "defaultIcon": "", + "localImages": "", + "localTallImages": "", + "localHeroImages": "", + "localLogoImages": "", + "localIcons": "", + "disabled": false, + "advanced": false, + "userAccounts": { + "specifiedAccounts": "", + "skipWithMissingDataDir": true, + "useCredentials": true + }, + "parserInputs": { + "glob": "**/${title}@(.7z|.tzx|.tap|.z80|.rzx|.scl|.trd|.TZX|.TAP|.Z80|.RZX|.SCL|.TRD|.zip|.ZIP)" + }, + "titleFromVariable": { + "limitToGroups": "", + "caseInsensitiveVariables": false, + "skipFileIfVariableWasNotFound": false, + "tryToMatchTitle": false + }, + "fuzzyMatch": { + "use": true, + "replaceDiacritics": true, + "removeCharacters": true, + "removeBrackets": true + }, + "executable": { + "path": "/usr/bin/flatpak", + "shortcutPassthrough": false, + "appendArgsToExecutable": true + }, + "parserId": "164785583010740299", + "version": 5 } ] diff --git a/configs/steam-rom-manager/userData/userSettings.json b/configs/steam-rom-manager/userData/userSettings.json new file mode 100644 index 00000000..fca0b1f5 --- /dev/null +++ b/configs/steam-rom-manager/userData/userSettings.json @@ -0,0 +1,31 @@ +{ + "fuzzyMatcher": { + "timestamps": { + "check": 1659355215955, + "download": 1659355215955 + }, + "verbose": false, + "filterProviders": true + }, + "environmentVariables": { + "steamDirectory": "", + "romsDirectory": "", + "retroarchPath": "", + "raCoresDirectory": "", + "localImagesDirectory": "" + }, + "previewSettings": { + "retrieveCurrentSteamImages": true, + "deleteDisabledShortcuts": false, + "imageZoomPercentage": 40, + "preload": false + }, + "enabledProviders": [ + "SteamGridDB" + ], + "language": "English", + "offlineMode": false, + "navigationWidth": 765, + "clearLogOnTest": false, + "version": 3 +} diff --git a/execFn.sh b/execFn.sh new file mode 100755 index 00000000..1d33857e --- /dev/null +++ b/execFn.sh @@ -0,0 +1,3 @@ +#!/bin/bash +source "$HOME/emudeck/backend/functions/all.sh" +"${@}" \ No newline at end of file diff --git a/execFnList.sh b/execFnList.sh new file mode 100644 index 00000000..7510647b --- /dev/null +++ b/execFnList.sh @@ -0,0 +1,6 @@ +#!/bin/bash +source "$HOME/emudeck/backend/functions/all.sh" +for var in "$@" +do + "$var" +done \ No newline at end of file diff --git a/functions/EmuScripts/RetroArch_maincfg.sh b/functions/EmuScripts/RetroArch_maincfg.sh new file mode 100644 index 00000000..025509f1 --- /dev/null +++ b/functions/EmuScripts/RetroArch_maincfg.sh @@ -0,0 +1,3207 @@ +#!/bin/bash + +RetroArch_maincfg(){ +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'accessibility_enable' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'accessibility_narrator_speech_speed' '"5"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'ai_service_enable' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'ai_service_mode' '"1"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'ai_service_pause' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'ai_service_source_lang' '"0"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'ai_service_target_lang' '"0"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'ai_service_url' '"http://localhost:4404/"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'all_users_control_menu' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'apply_cheats_after_load' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'apply_cheats_after_toggle' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'aspect_ratio_index' '"22"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'assets_directory' '"/app/share/libretro/assets/"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'audio_block_frames' '"0"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'audio_device' '""' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'audio_driver' '"pulse"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'audio_dsp_plugin' '""' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'audio_enable' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'audio_enable_menu' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'audio_enable_menu_bgm' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'audio_enable_menu_cancel' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'audio_enable_menu_notice' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'audio_enable_menu_ok' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'audio_fastforward_mute' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'audio_filter_dir' '"/app/lib/retroarch/filters/audio"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'audio_latency' '"64"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'audio_max_timing_skew' '"0.050000"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'audio_mixer_mute_enable' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'audio_mixer_volume' '"0.000000"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'audio_mute_enable' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'audio_out_rate' '"48000"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'audio_rate_control' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'audio_rate_control_delta' '"0.005000"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'audio_resampler' '"sinc"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'audio_resampler_quality' '"3"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'audio_sync' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'audio_volume' '"0.000000"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'auto_overrides_enable' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'auto_remaps_enable' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'auto_screenshot_filename' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'auto_shaders_enable' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'autosave_interval' '"10"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'block_sram_overwrite' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'bluetooth_driver' '"null"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'builtin_imageviewer_enable' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'builtin_mediaplayer_enable' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'bundle_assets_dst_path' '""' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'bundle_assets_dst_path_subdir' '""' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'bundle_assets_extract_enable' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'bundle_assets_extract_last_version' '"0"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'bundle_assets_extract_version_current' '"0"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'bundle_assets_src_path' '""' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'cache_directory' '""' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'camera_allow' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'camera_device' '""' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'camera_driver' '"video4linux2"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'cheat_database_path' '"/app/share/libretro/database/cht"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'check_firmware_before_loading' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'cheevos_auto_screenshot' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'cheevos_badges_enable' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'cheevos_challenge_indicators' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'cheevos_custom_host' '""' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'cheevos_enable' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'cheevos_hardcore_mode_enable' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'cheevos_leaderboards_enable' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'cheevos_password' '""' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'cheevos_richpresence_enable' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'cheevos_start_active' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'cheevos_test_unofficial' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'cheevos_token' '""' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'cheevos_unlock_sound_enable' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'cheevos_username' '""' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'cheevos_verbose_enable' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'config_save_on_exit' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'content_database_path' '"/app/share/libretro/database/rdb"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'content_favorites_directory' '"default"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'content_favorites_path' '"~/.var/app/org.libretro.RetroArch/config/retroarch/content_favorites.lpl"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'content_favorites_size' '"200"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'content_history_directory' '"default"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'content_history_path' '"~/.var/app/org.libretro.RetroArch/config/retroarch/content_history.lpl"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'content_history_size' '"200"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'content_image_history_directory' '"default"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'content_image_history_path' '"~/.var/app/org.libretro.RetroArch/config/retroarch/content_image_history.lpl"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'content_music_history_directory' '"default"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'content_music_history_path' '"~/.var/app/org.libretro.RetroArch/config/retroarch/content_music_history.lpl"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'content_runtime_log' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'content_runtime_log_aggregate' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'content_show_add' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'content_show_add_entry' '"2"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'content_show_contentless_cores' '"2"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'content_show_explore' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'content_show_favorites' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'content_show_history' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'content_show_images' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'content_show_music' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'content_show_netplay' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'content_show_playlists' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'content_show_settings' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'content_show_settings_password' '""' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'content_show_video' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'content_video_directory' '"default"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'content_video_history_path' '"~/.var/app/org.libretro.RetroArch/config/retroarch/content_video_history.lpl"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'core_assets_directory' '"~/.var/app/org.libretro.RetroArch/config/retroarch/downloads"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'core_info_cache_enable' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'core_option_category_enable' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'core_options_path' '""' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'core_set_supports_no_game_enable' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'core_updater_auto_backup' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'core_updater_auto_backup_history_size' '"1"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'core_updater_auto_extract_archive' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'core_updater_buildbot_assets_url' '"http://buildbot.libretro.com/assets/"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'core_updater_buildbot_cores_url' '"http://buildbot.libretro.com/nightly/linux/x86_64/latest/"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'core_updater_show_experimental_cores' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'crt_switch_center_adjust' '"0"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'crt_switch_hires_menu' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'crt_switch_porch_adjust' '"0"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'crt_switch_resolution' '"0"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'crt_switch_resolution_super' '"2560"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'crt_switch_resolution_use_custom_refresh_rate' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'crt_switch_timings' '""' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'crt_video_refresh_rate' '"60.000000"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'current_resolution_id' '"0"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'cursor_directory' '"/app/share/libretro/database/cursors"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'custom_viewport_height' '"717"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'custom_viewport_width' '"956"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'custom_viewport_x' '"2"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'custom_viewport_y' '"0"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'desktop_menu_enable' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'discord_allow' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'discord_app_id' '"475456035851599874"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'driver_switch_enable' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'dynamic_wallpapers_directory' '"default"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'enable_device_vibration' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'facebook_stream_key' '""' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'fastforward_frameskip' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'fastforward_ratio' '"0.000000"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'filter_by_current_core' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'flicker_filter_enable' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'flicker_filter_index' '"0"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'fps_show' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'fps_update_interval' '"256"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'frame_time_counter_reset_after_fastforwarding' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'frame_time_counter_reset_after_load_state' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'frame_time_counter_reset_after_save_state' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'framecount_show' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'frontend_log_level' '"1"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'game_specific_options' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'gamemode_enable' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'gamma_correction' '"0"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'global_core_options' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'history_list_enable' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_ai_service' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_ai_service_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_ai_service_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_ai_service_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_analog_deadzone' '"0.000000"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_analog_sensitivity' '"1.000000"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_audio_mute' '"f9"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_audio_mute_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_audio_mute_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_audio_mute_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_auto_game_focus' '"0"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_auto_mouse_grab' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_autodetect_enable' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_axis_threshold' '"0.500000"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_bind_hold' '"2"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_bind_timeout' '"5"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_cheat_index_minus' '"t"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_cheat_index_minus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_cheat_index_minus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_cheat_index_minus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_cheat_index_plus' '"y"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_cheat_index_plus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_cheat_index_plus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_cheat_index_plus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_cheat_toggle' '"u"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_cheat_toggle_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_cheat_toggle_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_cheat_toggle_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_close_content' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_close_content_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_close_content_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_close_content_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_descriptor_hide_unbound' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_descriptor_label_show' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_desktop_menu_toggle' '"f5"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_desktop_menu_toggle_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_desktop_menu_toggle_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_desktop_menu_toggle_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_device_p1' '"0"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_device_p10' '"0"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_device_p11' '"0"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_device_p12' '"0"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_device_p13' '"0"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_device_p14' '"0"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_device_p15' '"0"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_device_p16' '"0"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_device_p2' '"0"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_device_p3' '"0"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_device_p4' '"0"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_device_p5' '"0"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_device_p6' '"0"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_device_p7' '"0"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_device_p8' '"0"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_device_p9' '"0"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_disk_eject_toggle' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_disk_eject_toggle_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_disk_eject_toggle_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_disk_eject_toggle_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_disk_next' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_disk_next_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_disk_next_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_disk_next_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_disk_prev' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_disk_prev_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_disk_prev_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_disk_prev_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_driver' '"x"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_duty_cycle' '"3"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_enable_hotkey' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_enable_hotkey_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_enable_hotkey_btn' '"4"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_enable_hotkey_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_exit_emulator' '"escape"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_exit_emulator_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_exit_emulator_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_exit_emulator_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_fps_toggle' '"f3"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_fps_toggle_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_fps_toggle_btn' '"3"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_fps_toggle_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_frame_advance' '"k"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_frame_advance_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_frame_advance_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_frame_advance_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_game_focus_toggle' '"scroll_lock"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_game_focus_toggle_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_game_focus_toggle_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_game_focus_toggle_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_grab_mouse_toggle' '"f11"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_grab_mouse_toggle_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_grab_mouse_toggle_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_grab_mouse_toggle_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_hold_fast_forward' '"l"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_hold_fast_forward_axis' '"null"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_hold_fast_forward_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_hold_fast_forward_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_hold_slowmotion' '"e"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_hold_slowmotion_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_hold_slowmotion_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_hold_slowmotion_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_hotkey_block_delay' '"5"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_joypad_driver' '"sdl2"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_keyboard_layout' '""' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_libretro_device_p1' '"1"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_libretro_device_p10' '"1"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_libretro_device_p11' '"1"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_libretro_device_p12' '"1"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_libretro_device_p13' '"1"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_libretro_device_p14' '"1"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_libretro_device_p15' '"1"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_libretro_device_p16' '"1"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_libretro_device_p2' '"1"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_libretro_device_p3' '"1"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_libretro_device_p4' '"1"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_libretro_device_p5' '"1"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_libretro_device_p6' '"1"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_libretro_device_p7' '"1"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_libretro_device_p8' '"1"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_libretro_device_p9' '"1"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_load_state' '"f4"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_load_state_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_load_state_btn' '"9"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_load_state_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_max_users' '"5"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_menu_toggle' '"f1"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_menu_toggle_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_menu_toggle_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_menu_toggle_gamepad_combo' '"2"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_menu_toggle_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_movie_record_toggle' '"o"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_movie_record_toggle_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_movie_record_toggle_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_movie_record_toggle_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_netplay_fade_chat_toggle' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_netplay_fade_chat_toggle_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_netplay_fade_chat_toggle_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_netplay_fade_chat_toggle_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_netplay_game_watch' '"i"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_netplay_game_watch_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_netplay_game_watch_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_netplay_game_watch_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_netplay_host_toggle' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_netplay_host_toggle_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_netplay_host_toggle_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_netplay_host_toggle_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_netplay_ping_toggle' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_netplay_ping_toggle_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_netplay_ping_toggle_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_netplay_ping_toggle_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_netplay_player_chat' '"tilde"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_netplay_player_chat_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_netplay_player_chat_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_netplay_player_chat_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_nowinkey_enable' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_osk_toggle' '"f12"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_osk_toggle_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_osk_toggle_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_osk_toggle_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_overlay' '""' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_overlay_aspect_adjust_landscape' '"0.000000"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_overlay_aspect_adjust_portrait' '"0.000000"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_overlay_auto_rotate' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_overlay_auto_scale' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_overlay_behind_menu' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_overlay_enable' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_overlay_enable_autopreferred' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_overlay_hide_in_menu' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_overlay_hide_when_gamepad_connected' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_overlay_next' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_overlay_next_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_overlay_next_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_overlay_next_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_overlay_opacity' '"0.700000"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_overlay_scale_landscape' '"1.000000"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_overlay_scale_portrait' '"1.000000"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_overlay_show_inputs' '"2"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_overlay_show_inputs_port' '"0"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_overlay_show_mouse_cursor' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_overlay_x_offset_landscape' '"0.000000"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_overlay_x_offset_portrait' '"0.000000"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_overlay_x_separation_landscape' '"0.000000"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_overlay_x_separation_portrait' '"0.000000"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_overlay_y_offset_landscape' '"0.000000"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_overlay_y_offset_portrait' '"0.000000"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_overlay_y_separation_landscape' '"0.000000"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_overlay_y_separation_portrait' '"0.000000"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_pause_toggle' '"p"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_pause_toggle_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_pause_toggle_btn' '"0"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_pause_toggle_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_a' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_a_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_a_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_a_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_analog_dpad_mode' '"0"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_b' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_b_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_b_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_b_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_down' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_down_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_down_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_down_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_gun_aux_a' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_gun_aux_a_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_gun_aux_a_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_gun_aux_a_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_gun_aux_b' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_gun_aux_b_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_gun_aux_b_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_gun_aux_b_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_gun_aux_c' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_gun_aux_c_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_gun_aux_c_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_gun_aux_c_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_gun_dpad_down' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_gun_dpad_down_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_gun_dpad_down_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_gun_dpad_down_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_gun_dpad_left' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_gun_dpad_left_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_gun_dpad_left_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_gun_dpad_left_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_gun_dpad_right' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_gun_dpad_right_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_gun_dpad_right_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_gun_dpad_right_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_gun_dpad_up' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_gun_dpad_up_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_gun_dpad_up_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_gun_dpad_up_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_gun_offscreen_shot' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_gun_offscreen_shot_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_gun_offscreen_shot_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_gun_offscreen_shot_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_gun_select' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_gun_select_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_gun_select_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_gun_select_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_gun_start' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_gun_start_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_gun_start_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_gun_start_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_gun_trigger' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_gun_trigger_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_gun_trigger_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_gun_trigger_mbtn' '"1"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_joypad_index' '"9"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_l' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_l2' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_l2_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_l2_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_l2_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_l3' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_l3_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_l3_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_l3_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_l_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_l_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_l_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_l_x_minus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_l_x_minus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_l_x_minus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_l_x_minus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_l_x_plus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_l_x_plus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_l_x_plus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_l_x_plus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_l_y_minus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_l_y_minus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_l_y_minus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_l_y_minus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_l_y_plus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_l_y_plus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_l_y_plus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_l_y_plus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_left' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_left_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_left_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_left_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_mouse_index' '"9"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_r' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_r2' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_r2_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_r2_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_r2_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_r3' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_r3_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_r3_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_r3_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_r_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_r_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_r_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_r_x_minus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_r_x_minus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_r_x_minus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_r_x_minus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_r_x_plus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_r_x_plus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_r_x_plus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_r_x_plus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_r_y_minus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_r_y_minus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_r_y_minus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_r_y_minus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_r_y_plus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_r_y_plus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_r_y_plus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_r_y_plus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_right' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_right_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_right_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_right_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_select' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_select_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_select_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_select_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_start' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_start_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_start_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_start_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_turbo' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_turbo_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_turbo_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_turbo_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_up' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_up_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_up_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_up_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_x' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_x_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_x_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_x_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_y' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_y_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_y_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player10_y_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_a' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_a_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_a_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_a_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_analog_dpad_mode' '"0"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_b' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_b_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_b_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_b_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_down' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_down_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_down_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_down_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_gun_aux_a' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_gun_aux_a_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_gun_aux_a_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_gun_aux_a_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_gun_aux_b' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_gun_aux_b_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_gun_aux_b_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_gun_aux_b_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_gun_aux_c' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_gun_aux_c_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_gun_aux_c_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_gun_aux_c_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_gun_dpad_down' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_gun_dpad_down_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_gun_dpad_down_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_gun_dpad_down_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_gun_dpad_left' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_gun_dpad_left_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_gun_dpad_left_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_gun_dpad_left_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_gun_dpad_right' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_gun_dpad_right_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_gun_dpad_right_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_gun_dpad_right_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_gun_dpad_up' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_gun_dpad_up_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_gun_dpad_up_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_gun_dpad_up_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_gun_offscreen_shot' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_gun_offscreen_shot_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_gun_offscreen_shot_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_gun_offscreen_shot_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_gun_select' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_gun_select_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_gun_select_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_gun_select_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_gun_start' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_gun_start_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_gun_start_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_gun_start_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_gun_trigger' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_gun_trigger_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_gun_trigger_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_gun_trigger_mbtn' '"1"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_joypad_index' '"10"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_l' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_l2' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_l2_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_l2_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_l2_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_l3' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_l3_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_l3_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_l3_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_l_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_l_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_l_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_l_x_minus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_l_x_minus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_l_x_minus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_l_x_minus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_l_x_plus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_l_x_plus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_l_x_plus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_l_x_plus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_l_y_minus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_l_y_minus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_l_y_minus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_l_y_minus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_l_y_plus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_l_y_plus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_l_y_plus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_l_y_plus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_left' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_left_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_left_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_left_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_mouse_index' '"10"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_r' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_r2' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_r2_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_r2_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_r2_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_r3' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_r3_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_r3_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_r3_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_r_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_r_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_r_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_r_x_minus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_r_x_minus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_r_x_minus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_r_x_minus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_r_x_plus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_r_x_plus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_r_x_plus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_r_x_plus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_r_y_minus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_r_y_minus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_r_y_minus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_r_y_minus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_r_y_plus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_r_y_plus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_r_y_plus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_r_y_plus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_right' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_right_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_right_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_right_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_select' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_select_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_select_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_select_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_start' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_start_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_start_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_start_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_turbo' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_turbo_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_turbo_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_turbo_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_up' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_up_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_up_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_up_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_x' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_x_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_x_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_x_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_y' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_y_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_y_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player11_y_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_a' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_a_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_a_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_a_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_analog_dpad_mode' '"0"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_b' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_b_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_b_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_b_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_down' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_down_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_down_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_down_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_gun_aux_a' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_gun_aux_a_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_gun_aux_a_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_gun_aux_a_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_gun_aux_b' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_gun_aux_b_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_gun_aux_b_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_gun_aux_b_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_gun_aux_c' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_gun_aux_c_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_gun_aux_c_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_gun_aux_c_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_gun_dpad_down' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_gun_dpad_down_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_gun_dpad_down_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_gun_dpad_down_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_gun_dpad_left' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_gun_dpad_left_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_gun_dpad_left_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_gun_dpad_left_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_gun_dpad_right' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_gun_dpad_right_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_gun_dpad_right_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_gun_dpad_right_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_gun_dpad_up' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_gun_dpad_up_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_gun_dpad_up_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_gun_dpad_up_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_gun_offscreen_shot' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_gun_offscreen_shot_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_gun_offscreen_shot_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_gun_offscreen_shot_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_gun_select' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_gun_select_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_gun_select_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_gun_select_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_gun_start' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_gun_start_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_gun_start_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_gun_start_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_gun_trigger' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_gun_trigger_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_gun_trigger_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_gun_trigger_mbtn' '"1"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_joypad_index' '"11"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_l' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_l2' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_l2_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_l2_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_l2_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_l3' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_l3_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_l3_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_l3_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_l_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_l_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_l_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_l_x_minus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_l_x_minus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_l_x_minus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_l_x_minus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_l_x_plus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_l_x_plus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_l_x_plus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_l_x_plus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_l_y_minus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_l_y_minus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_l_y_minus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_l_y_minus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_l_y_plus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_l_y_plus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_l_y_plus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_l_y_plus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_left' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_left_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_left_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_left_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_mouse_index' '"11"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_r' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_r2' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_r2_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_r2_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_r2_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_r3' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_r3_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_r3_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_r3_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_r_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_r_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_r_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_r_x_minus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_r_x_minus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_r_x_minus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_r_x_minus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_r_x_plus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_r_x_plus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_r_x_plus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_r_x_plus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_r_y_minus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_r_y_minus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_r_y_minus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_r_y_minus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_r_y_plus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_r_y_plus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_r_y_plus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_r_y_plus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_right' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_right_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_right_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_right_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_select' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_select_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_select_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_select_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_start' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_start_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_start_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_start_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_turbo' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_turbo_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_turbo_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_turbo_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_up' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_up_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_up_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_up_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_x' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_x_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_x_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_x_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_y' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_y_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_y_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player12_y_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_a' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_a_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_a_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_a_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_analog_dpad_mode' '"0"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_b' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_b_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_b_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_b_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_down' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_down_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_down_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_down_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_gun_aux_a' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_gun_aux_a_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_gun_aux_a_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_gun_aux_a_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_gun_aux_b' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_gun_aux_b_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_gun_aux_b_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_gun_aux_b_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_gun_aux_c' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_gun_aux_c_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_gun_aux_c_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_gun_aux_c_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_gun_dpad_down' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_gun_dpad_down_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_gun_dpad_down_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_gun_dpad_down_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_gun_dpad_left' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_gun_dpad_left_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_gun_dpad_left_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_gun_dpad_left_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_gun_dpad_right' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_gun_dpad_right_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_gun_dpad_right_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_gun_dpad_right_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_gun_dpad_up' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_gun_dpad_up_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_gun_dpad_up_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_gun_dpad_up_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_gun_offscreen_shot' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_gun_offscreen_shot_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_gun_offscreen_shot_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_gun_offscreen_shot_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_gun_select' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_gun_select_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_gun_select_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_gun_select_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_gun_start' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_gun_start_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_gun_start_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_gun_start_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_gun_trigger' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_gun_trigger_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_gun_trigger_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_gun_trigger_mbtn' '"1"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_joypad_index' '"12"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_l' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_l2' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_l2_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_l2_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_l2_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_l3' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_l3_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_l3_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_l3_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_l_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_l_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_l_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_l_x_minus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_l_x_minus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_l_x_minus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_l_x_minus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_l_x_plus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_l_x_plus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_l_x_plus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_l_x_plus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_l_y_minus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_l_y_minus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_l_y_minus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_l_y_minus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_l_y_plus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_l_y_plus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_l_y_plus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_l_y_plus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_left' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_left_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_left_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_left_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_mouse_index' '"12"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_r' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_r2' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_r2_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_r2_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_r2_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_r3' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_r3_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_r3_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_r3_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_r_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_r_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_r_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_r_x_minus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_r_x_minus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_r_x_minus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_r_x_minus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_r_x_plus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_r_x_plus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_r_x_plus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_r_x_plus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_r_y_minus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_r_y_minus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_r_y_minus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_r_y_minus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_r_y_plus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_r_y_plus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_r_y_plus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_r_y_plus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_right' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_right_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_right_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_right_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_select' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_select_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_select_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_select_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_start' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_start_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_start_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_start_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_turbo' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_turbo_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_turbo_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_turbo_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_up' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_up_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_up_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_up_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_x' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_x_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_x_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_x_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_y' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_y_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_y_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player13_y_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_a' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_a_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_a_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_a_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_analog_dpad_mode' '"0"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_b' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_b_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_b_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_b_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_down' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_down_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_down_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_down_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_gun_aux_a' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_gun_aux_a_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_gun_aux_a_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_gun_aux_a_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_gun_aux_b' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_gun_aux_b_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_gun_aux_b_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_gun_aux_b_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_gun_aux_c' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_gun_aux_c_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_gun_aux_c_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_gun_aux_c_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_gun_dpad_down' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_gun_dpad_down_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_gun_dpad_down_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_gun_dpad_down_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_gun_dpad_left' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_gun_dpad_left_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_gun_dpad_left_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_gun_dpad_left_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_gun_dpad_right' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_gun_dpad_right_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_gun_dpad_right_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_gun_dpad_right_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_gun_dpad_up' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_gun_dpad_up_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_gun_dpad_up_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_gun_dpad_up_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_gun_offscreen_shot' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_gun_offscreen_shot_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_gun_offscreen_shot_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_gun_offscreen_shot_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_gun_select' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_gun_select_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_gun_select_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_gun_select_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_gun_start' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_gun_start_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_gun_start_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_gun_start_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_gun_trigger' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_gun_trigger_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_gun_trigger_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_gun_trigger_mbtn' '"1"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_joypad_index' '"13"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_l' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_l2' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_l2_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_l2_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_l2_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_l3' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_l3_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_l3_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_l3_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_l_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_l_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_l_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_l_x_minus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_l_x_minus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_l_x_minus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_l_x_minus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_l_x_plus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_l_x_plus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_l_x_plus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_l_x_plus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_l_y_minus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_l_y_minus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_l_y_minus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_l_y_minus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_l_y_plus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_l_y_plus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_l_y_plus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_l_y_plus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_left' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_left_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_left_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_left_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_mouse_index' '"13"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_r' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_r2' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_r2_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_r2_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_r2_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_r3' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_r3_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_r3_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_r3_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_r_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_r_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_r_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_r_x_minus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_r_x_minus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_r_x_minus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_r_x_minus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_r_x_plus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_r_x_plus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_r_x_plus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_r_x_plus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_r_y_minus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_r_y_minus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_r_y_minus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_r_y_minus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_r_y_plus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_r_y_plus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_r_y_plus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_r_y_plus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_right' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_right_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_right_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_right_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_select' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_select_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_select_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_select_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_start' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_start_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_start_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_start_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_turbo' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_turbo_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_turbo_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_turbo_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_up' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_up_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_up_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_up_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_x' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_x_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_x_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_x_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_y' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_y_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_y_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player14_y_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_a' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_a_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_a_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_a_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_analog_dpad_mode' '"0"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_b' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_b_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_b_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_b_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_down' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_down_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_down_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_down_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_gun_aux_a' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_gun_aux_a_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_gun_aux_a_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_gun_aux_a_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_gun_aux_b' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_gun_aux_b_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_gun_aux_b_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_gun_aux_b_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_gun_aux_c' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_gun_aux_c_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_gun_aux_c_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_gun_aux_c_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_gun_dpad_down' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_gun_dpad_down_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_gun_dpad_down_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_gun_dpad_down_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_gun_dpad_left' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_gun_dpad_left_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_gun_dpad_left_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_gun_dpad_left_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_gun_dpad_right' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_gun_dpad_right_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_gun_dpad_right_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_gun_dpad_right_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_gun_dpad_up' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_gun_dpad_up_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_gun_dpad_up_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_gun_dpad_up_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_gun_offscreen_shot' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_gun_offscreen_shot_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_gun_offscreen_shot_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_gun_offscreen_shot_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_gun_select' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_gun_select_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_gun_select_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_gun_select_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_gun_start' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_gun_start_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_gun_start_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_gun_start_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_gun_trigger' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_gun_trigger_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_gun_trigger_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_gun_trigger_mbtn' '"1"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_joypad_index' '"14"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_l' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_l2' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_l2_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_l2_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_l2_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_l3' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_l3_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_l3_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_l3_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_l_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_l_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_l_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_l_x_minus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_l_x_minus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_l_x_minus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_l_x_minus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_l_x_plus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_l_x_plus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_l_x_plus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_l_x_plus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_l_y_minus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_l_y_minus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_l_y_minus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_l_y_minus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_l_y_plus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_l_y_plus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_l_y_plus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_l_y_plus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_left' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_left_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_left_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_left_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_mouse_index' '"14"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_r' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_r2' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_r2_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_r2_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_r2_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_r3' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_r3_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_r3_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_r3_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_r_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_r_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_r_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_r_x_minus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_r_x_minus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_r_x_minus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_r_x_minus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_r_x_plus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_r_x_plus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_r_x_plus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_r_x_plus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_r_y_minus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_r_y_minus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_r_y_minus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_r_y_minus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_r_y_plus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_r_y_plus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_r_y_plus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_r_y_plus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_right' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_right_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_right_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_right_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_select' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_select_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_select_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_select_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_start' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_start_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_start_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_start_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_turbo' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_turbo_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_turbo_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_turbo_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_up' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_up_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_up_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_up_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_x' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_x_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_x_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_x_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_y' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_y_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_y_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player15_y_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_a' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_a_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_a_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_a_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_analog_dpad_mode' '"0"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_b' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_b_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_b_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_b_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_down' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_down_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_down_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_down_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_gun_aux_a' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_gun_aux_a_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_gun_aux_a_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_gun_aux_a_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_gun_aux_b' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_gun_aux_b_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_gun_aux_b_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_gun_aux_b_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_gun_aux_c' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_gun_aux_c_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_gun_aux_c_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_gun_aux_c_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_gun_dpad_down' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_gun_dpad_down_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_gun_dpad_down_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_gun_dpad_down_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_gun_dpad_left' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_gun_dpad_left_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_gun_dpad_left_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_gun_dpad_left_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_gun_dpad_right' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_gun_dpad_right_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_gun_dpad_right_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_gun_dpad_right_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_gun_dpad_up' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_gun_dpad_up_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_gun_dpad_up_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_gun_dpad_up_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_gun_offscreen_shot' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_gun_offscreen_shot_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_gun_offscreen_shot_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_gun_offscreen_shot_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_gun_select' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_gun_select_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_gun_select_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_gun_select_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_gun_start' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_gun_start_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_gun_start_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_gun_start_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_gun_trigger' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_gun_trigger_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_gun_trigger_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_gun_trigger_mbtn' '"1"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_joypad_index' '"15"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_l' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_l2' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_l2_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_l2_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_l2_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_l3' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_l3_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_l3_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_l3_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_l_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_l_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_l_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_l_x_minus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_l_x_minus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_l_x_minus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_l_x_minus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_l_x_plus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_l_x_plus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_l_x_plus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_l_x_plus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_l_y_minus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_l_y_minus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_l_y_minus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_l_y_minus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_l_y_plus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_l_y_plus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_l_y_plus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_l_y_plus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_left' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_left_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_left_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_left_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_mouse_index' '"15"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_r' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_r2' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_r2_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_r2_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_r2_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_r3' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_r3_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_r3_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_r3_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_r_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_r_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_r_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_r_x_minus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_r_x_minus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_r_x_minus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_r_x_minus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_r_x_plus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_r_x_plus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_r_x_plus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_r_x_plus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_r_y_minus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_r_y_minus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_r_y_minus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_r_y_minus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_r_y_plus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_r_y_plus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_r_y_plus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_r_y_plus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_right' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_right_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_right_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_right_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_select' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_select_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_select_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_select_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_start' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_start_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_start_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_start_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_turbo' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_turbo_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_turbo_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_turbo_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_up' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_up_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_up_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_up_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_x' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_x_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_x_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_x_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_y' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_y_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_y_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player16_y_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_a' '"x"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_a_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_a_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_a_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_analog_dpad_mode' '"0"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_b' '"z"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_b_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_b_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_b_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_down' '"down"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_down_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_down_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_down_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_gun_aux_a' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_gun_aux_a_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_gun_aux_a_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_gun_aux_a_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_gun_aux_b' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_gun_aux_b_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_gun_aux_b_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_gun_aux_b_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_gun_aux_c' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_gun_aux_c_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_gun_aux_c_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_gun_aux_c_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_gun_dpad_down' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_gun_dpad_down_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_gun_dpad_down_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_gun_dpad_down_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_gun_dpad_left' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_gun_dpad_left_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_gun_dpad_left_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_gun_dpad_left_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_gun_dpad_right' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_gun_dpad_right_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_gun_dpad_right_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_gun_dpad_right_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_gun_dpad_up' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_gun_dpad_up_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_gun_dpad_up_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_gun_dpad_up_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_gun_offscreen_shot' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_gun_offscreen_shot_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_gun_offscreen_shot_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_gun_offscreen_shot_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_gun_select' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_gun_select_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_gun_select_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_gun_select_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_gun_start' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_gun_start_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_gun_start_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_gun_start_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_gun_trigger' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_gun_trigger_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_gun_trigger_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_gun_trigger_mbtn' '"1"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_joypad_index' '"0"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_l' '"q"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_l2' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_l2_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_l2_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_l2_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_l3' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_l3_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_l3_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_l3_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_l_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_l_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_l_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_l_x_minus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_l_x_minus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_l_x_minus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_l_x_minus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_l_x_plus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_l_x_plus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_l_x_plus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_l_x_plus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_l_y_minus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_l_y_minus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_l_y_minus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_l_y_minus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_l_y_plus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_l_y_plus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_l_y_plus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_l_y_plus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_left' '"left"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_left_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_left_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_left_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_mouse_index' '"0"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_r' '"w"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_r2' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_r2_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_r2_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_r2_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_r3' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_r3_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_r3_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_r3_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_r_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_r_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_r_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_r_x_minus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_r_x_minus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_r_x_minus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_r_x_minus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_r_x_plus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_r_x_plus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_r_x_plus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_r_x_plus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_r_y_minus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_r_y_minus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_r_y_minus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_r_y_minus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_r_y_plus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_r_y_plus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_r_y_plus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_r_y_plus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_right' '"right"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_right_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_right_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_right_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_select' '"rshift"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_select_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_select_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_select_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_start' '"enter"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_start_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_start_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_start_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_turbo' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_turbo_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_turbo_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_turbo_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_up' '"up"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_up_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_up_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_up_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_x' '"s"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_x_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_x_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_x_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_y' '"a"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_y_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_y_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player1_y_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_a' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_a_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_a_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_a_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_analog_dpad_mode' '"0"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_b' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_b_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_b_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_b_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_down' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_down_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_down_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_down_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_gun_aux_a' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_gun_aux_a_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_gun_aux_a_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_gun_aux_a_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_gun_aux_b' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_gun_aux_b_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_gun_aux_b_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_gun_aux_b_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_gun_aux_c' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_gun_aux_c_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_gun_aux_c_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_gun_aux_c_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_gun_dpad_down' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_gun_dpad_down_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_gun_dpad_down_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_gun_dpad_down_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_gun_dpad_left' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_gun_dpad_left_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_gun_dpad_left_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_gun_dpad_left_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_gun_dpad_right' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_gun_dpad_right_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_gun_dpad_right_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_gun_dpad_right_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_gun_dpad_up' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_gun_dpad_up_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_gun_dpad_up_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_gun_dpad_up_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_gun_offscreen_shot' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_gun_offscreen_shot_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_gun_offscreen_shot_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_gun_offscreen_shot_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_gun_select' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_gun_select_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_gun_select_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_gun_select_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_gun_start' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_gun_start_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_gun_start_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_gun_start_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_gun_trigger' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_gun_trigger_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_gun_trigger_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_gun_trigger_mbtn' '"1"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_joypad_index' '"1"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_l' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_l2' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_l2_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_l2_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_l2_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_l3' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_l3_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_l3_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_l3_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_l_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_l_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_l_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_l_x_minus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_l_x_minus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_l_x_minus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_l_x_minus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_l_x_plus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_l_x_plus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_l_x_plus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_l_x_plus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_l_y_minus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_l_y_minus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_l_y_minus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_l_y_minus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_l_y_plus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_l_y_plus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_l_y_plus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_l_y_plus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_left' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_left_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_left_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_left_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_mouse_index' '"1"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_r' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_r2' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_r2_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_r2_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_r2_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_r3' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_r3_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_r3_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_r3_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_r_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_r_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_r_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_r_x_minus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_r_x_minus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_r_x_minus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_r_x_minus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_r_x_plus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_r_x_plus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_r_x_plus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_r_x_plus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_r_y_minus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_r_y_minus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_r_y_minus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_r_y_minus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_r_y_plus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_r_y_plus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_r_y_plus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_r_y_plus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_right' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_right_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_right_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_right_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_select' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_select_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_select_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_select_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_start' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_start_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_start_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_start_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_turbo' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_turbo_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_turbo_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_turbo_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_up' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_up_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_up_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_up_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_x' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_x_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_x_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_x_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_y' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_y_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_y_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player2_y_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_a' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_a_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_a_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_a_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_analog_dpad_mode' '"0"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_b' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_b_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_b_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_b_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_down' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_down_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_down_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_down_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_gun_aux_a' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_gun_aux_a_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_gun_aux_a_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_gun_aux_a_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_gun_aux_b' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_gun_aux_b_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_gun_aux_b_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_gun_aux_b_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_gun_aux_c' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_gun_aux_c_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_gun_aux_c_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_gun_aux_c_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_gun_dpad_down' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_gun_dpad_down_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_gun_dpad_down_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_gun_dpad_down_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_gun_dpad_left' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_gun_dpad_left_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_gun_dpad_left_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_gun_dpad_left_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_gun_dpad_right' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_gun_dpad_right_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_gun_dpad_right_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_gun_dpad_right_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_gun_dpad_up' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_gun_dpad_up_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_gun_dpad_up_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_gun_dpad_up_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_gun_offscreen_shot' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_gun_offscreen_shot_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_gun_offscreen_shot_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_gun_offscreen_shot_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_gun_select' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_gun_select_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_gun_select_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_gun_select_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_gun_start' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_gun_start_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_gun_start_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_gun_start_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_gun_trigger' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_gun_trigger_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_gun_trigger_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_gun_trigger_mbtn' '"1"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_joypad_index' '"2"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_l' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_l2' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_l2_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_l2_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_l2_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_l3' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_l3_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_l3_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_l3_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_l_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_l_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_l_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_l_x_minus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_l_x_minus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_l_x_minus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_l_x_minus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_l_x_plus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_l_x_plus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_l_x_plus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_l_x_plus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_l_y_minus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_l_y_minus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_l_y_minus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_l_y_minus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_l_y_plus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_l_y_plus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_l_y_plus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_l_y_plus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_left' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_left_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_left_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_left_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_mouse_index' '"2"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_r' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_r2' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_r2_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_r2_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_r2_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_r3' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_r3_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_r3_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_r3_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_r_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_r_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_r_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_r_x_minus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_r_x_minus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_r_x_minus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_r_x_minus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_r_x_plus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_r_x_plus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_r_x_plus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_r_x_plus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_r_y_minus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_r_y_minus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_r_y_minus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_r_y_minus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_r_y_plus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_r_y_plus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_r_y_plus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_r_y_plus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_right' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_right_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_right_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_right_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_select' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_select_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_select_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_select_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_start' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_start_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_start_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_start_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_turbo' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_turbo_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_turbo_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_turbo_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_up' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_up_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_up_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_up_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_x' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_x_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_x_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_x_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_y' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_y_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_y_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player3_y_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_a' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_a_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_a_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_a_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_analog_dpad_mode' '"0"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_b' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_b_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_b_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_b_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_down' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_down_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_down_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_down_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_gun_aux_a' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_gun_aux_a_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_gun_aux_a_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_gun_aux_a_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_gun_aux_b' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_gun_aux_b_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_gun_aux_b_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_gun_aux_b_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_gun_aux_c' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_gun_aux_c_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_gun_aux_c_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_gun_aux_c_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_gun_dpad_down' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_gun_dpad_down_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_gun_dpad_down_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_gun_dpad_down_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_gun_dpad_left' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_gun_dpad_left_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_gun_dpad_left_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_gun_dpad_left_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_gun_dpad_right' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_gun_dpad_right_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_gun_dpad_right_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_gun_dpad_right_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_gun_dpad_up' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_gun_dpad_up_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_gun_dpad_up_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_gun_dpad_up_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_gun_offscreen_shot' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_gun_offscreen_shot_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_gun_offscreen_shot_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_gun_offscreen_shot_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_gun_select' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_gun_select_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_gun_select_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_gun_select_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_gun_start' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_gun_start_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_gun_start_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_gun_start_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_gun_trigger' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_gun_trigger_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_gun_trigger_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_gun_trigger_mbtn' '"1"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_joypad_index' '"3"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_l' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_l2' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_l2_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_l2_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_l2_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_l3' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_l3_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_l3_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_l3_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_l_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_l_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_l_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_l_x_minus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_l_x_minus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_l_x_minus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_l_x_minus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_l_x_plus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_l_x_plus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_l_x_plus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_l_x_plus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_l_y_minus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_l_y_minus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_l_y_minus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_l_y_minus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_l_y_plus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_l_y_plus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_l_y_plus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_l_y_plus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_left' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_left_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_left_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_left_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_mouse_index' '"3"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_r' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_r2' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_r2_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_r2_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_r2_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_r3' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_r3_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_r3_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_r3_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_r_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_r_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_r_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_r_x_minus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_r_x_minus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_r_x_minus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_r_x_minus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_r_x_plus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_r_x_plus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_r_x_plus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_r_x_plus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_r_y_minus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_r_y_minus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_r_y_minus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_r_y_minus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_r_y_plus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_r_y_plus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_r_y_plus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_r_y_plus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_right' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_right_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_right_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_right_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_select' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_select_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_select_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_select_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_start' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_start_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_start_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_start_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_turbo' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_turbo_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_turbo_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_turbo_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_up' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_up_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_up_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_up_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_x' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_x_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_x_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_x_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_y' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_y_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_y_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player4_y_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_a' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_a_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_a_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_a_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_analog_dpad_mode' '"0"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_b' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_b_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_b_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_b_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_down' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_down_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_down_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_down_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_gun_aux_a' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_gun_aux_a_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_gun_aux_a_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_gun_aux_a_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_gun_aux_b' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_gun_aux_b_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_gun_aux_b_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_gun_aux_b_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_gun_aux_c' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_gun_aux_c_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_gun_aux_c_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_gun_aux_c_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_gun_dpad_down' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_gun_dpad_down_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_gun_dpad_down_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_gun_dpad_down_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_gun_dpad_left' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_gun_dpad_left_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_gun_dpad_left_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_gun_dpad_left_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_gun_dpad_right' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_gun_dpad_right_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_gun_dpad_right_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_gun_dpad_right_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_gun_dpad_up' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_gun_dpad_up_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_gun_dpad_up_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_gun_dpad_up_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_gun_offscreen_shot' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_gun_offscreen_shot_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_gun_offscreen_shot_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_gun_offscreen_shot_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_gun_select' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_gun_select_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_gun_select_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_gun_select_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_gun_start' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_gun_start_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_gun_start_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_gun_start_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_gun_trigger' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_gun_trigger_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_gun_trigger_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_gun_trigger_mbtn' '"1"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_joypad_index' '"4"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_l' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_l2' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_l2_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_l2_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_l2_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_l3' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_l3_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_l3_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_l3_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_l_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_l_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_l_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_l_x_minus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_l_x_minus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_l_x_minus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_l_x_minus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_l_x_plus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_l_x_plus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_l_x_plus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_l_x_plus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_l_y_minus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_l_y_minus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_l_y_minus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_l_y_minus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_l_y_plus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_l_y_plus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_l_y_plus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_l_y_plus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_left' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_left_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_left_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_left_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_mouse_index' '"4"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_r' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_r2' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_r2_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_r2_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_r2_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_r3' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_r3_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_r3_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_r3_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_r_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_r_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_r_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_r_x_minus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_r_x_minus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_r_x_minus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_r_x_minus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_r_x_plus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_r_x_plus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_r_x_plus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_r_x_plus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_r_y_minus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_r_y_minus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_r_y_minus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_r_y_minus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_r_y_plus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_r_y_plus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_r_y_plus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_r_y_plus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_right' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_right_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_right_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_right_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_select' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_select_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_select_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_select_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_start' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_start_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_start_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_start_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_turbo' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_turbo_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_turbo_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_turbo_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_up' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_up_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_up_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_up_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_x' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_x_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_x_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_x_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_y' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_y_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_y_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player5_y_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_a' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_a_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_a_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_a_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_analog_dpad_mode' '"0"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_b' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_b_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_b_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_b_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_down' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_down_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_down_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_down_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_gun_aux_a' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_gun_aux_a_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_gun_aux_a_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_gun_aux_a_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_gun_aux_b' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_gun_aux_b_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_gun_aux_b_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_gun_aux_b_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_gun_aux_c' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_gun_aux_c_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_gun_aux_c_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_gun_aux_c_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_gun_dpad_down' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_gun_dpad_down_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_gun_dpad_down_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_gun_dpad_down_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_gun_dpad_left' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_gun_dpad_left_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_gun_dpad_left_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_gun_dpad_left_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_gun_dpad_right' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_gun_dpad_right_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_gun_dpad_right_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_gun_dpad_right_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_gun_dpad_up' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_gun_dpad_up_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_gun_dpad_up_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_gun_dpad_up_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_gun_offscreen_shot' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_gun_offscreen_shot_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_gun_offscreen_shot_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_gun_offscreen_shot_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_gun_select' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_gun_select_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_gun_select_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_gun_select_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_gun_start' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_gun_start_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_gun_start_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_gun_start_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_gun_trigger' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_gun_trigger_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_gun_trigger_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_gun_trigger_mbtn' '"1"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_joypad_index' '"5"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_l' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_l2' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_l2_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_l2_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_l2_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_l3' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_l3_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_l3_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_l3_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_l_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_l_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_l_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_l_x_minus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_l_x_minus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_l_x_minus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_l_x_minus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_l_x_plus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_l_x_plus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_l_x_plus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_l_x_plus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_l_y_minus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_l_y_minus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_l_y_minus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_l_y_minus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_l_y_plus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_l_y_plus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_l_y_plus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_l_y_plus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_left' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_left_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_left_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_left_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_mouse_index' '"5"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_r' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_r2' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_r2_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_r2_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_r2_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_r3' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_r3_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_r3_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_r3_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_r_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_r_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_r_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_r_x_minus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_r_x_minus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_r_x_minus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_r_x_minus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_r_x_plus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_r_x_plus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_r_x_plus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_r_x_plus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_r_y_minus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_r_y_minus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_r_y_minus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_r_y_minus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_r_y_plus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_r_y_plus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_r_y_plus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_r_y_plus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_right' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_right_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_right_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_right_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_select' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_select_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_select_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_select_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_start' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_start_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_start_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_start_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_turbo' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_turbo_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_turbo_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_turbo_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_up' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_up_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_up_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_up_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_x' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_x_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_x_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_x_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_y' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_y_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_y_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player6_y_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_a' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_a_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_a_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_a_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_analog_dpad_mode' '"0"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_b' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_b_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_b_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_b_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_down' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_down_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_down_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_down_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_gun_aux_a' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_gun_aux_a_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_gun_aux_a_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_gun_aux_a_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_gun_aux_b' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_gun_aux_b_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_gun_aux_b_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_gun_aux_b_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_gun_aux_c' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_gun_aux_c_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_gun_aux_c_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_gun_aux_c_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_gun_dpad_down' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_gun_dpad_down_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_gun_dpad_down_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_gun_dpad_down_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_gun_dpad_left' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_gun_dpad_left_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_gun_dpad_left_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_gun_dpad_left_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_gun_dpad_right' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_gun_dpad_right_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_gun_dpad_right_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_gun_dpad_right_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_gun_dpad_up' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_gun_dpad_up_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_gun_dpad_up_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_gun_dpad_up_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_gun_offscreen_shot' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_gun_offscreen_shot_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_gun_offscreen_shot_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_gun_offscreen_shot_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_gun_select' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_gun_select_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_gun_select_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_gun_select_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_gun_start' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_gun_start_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_gun_start_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_gun_start_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_gun_trigger' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_gun_trigger_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_gun_trigger_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_gun_trigger_mbtn' '"1"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_joypad_index' '"6"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_l' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_l2' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_l2_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_l2_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_l2_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_l3' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_l3_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_l3_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_l3_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_l_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_l_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_l_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_l_x_minus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_l_x_minus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_l_x_minus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_l_x_minus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_l_x_plus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_l_x_plus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_l_x_plus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_l_x_plus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_l_y_minus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_l_y_minus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_l_y_minus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_l_y_minus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_l_y_plus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_l_y_plus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_l_y_plus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_l_y_plus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_left' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_left_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_left_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_left_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_mouse_index' '"6"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_r' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_r2' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_r2_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_r2_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_r2_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_r3' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_r3_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_r3_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_r3_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_r_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_r_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_r_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_r_x_minus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_r_x_minus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_r_x_minus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_r_x_minus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_r_x_plus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_r_x_plus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_r_x_plus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_r_x_plus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_r_y_minus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_r_y_minus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_r_y_minus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_r_y_minus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_r_y_plus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_r_y_plus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_r_y_plus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_r_y_plus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_right' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_right_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_right_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_right_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_select' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_select_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_select_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_select_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_start' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_start_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_start_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_start_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_turbo' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_turbo_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_turbo_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_turbo_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_up' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_up_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_up_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_up_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_x' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_x_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_x_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_x_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_y' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_y_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_y_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player7_y_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_a' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_a_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_a_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_a_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_analog_dpad_mode' '"0"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_b' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_b_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_b_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_b_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_down' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_down_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_down_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_down_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_gun_aux_a' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_gun_aux_a_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_gun_aux_a_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_gun_aux_a_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_gun_aux_b' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_gun_aux_b_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_gun_aux_b_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_gun_aux_b_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_gun_aux_c' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_gun_aux_c_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_gun_aux_c_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_gun_aux_c_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_gun_dpad_down' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_gun_dpad_down_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_gun_dpad_down_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_gun_dpad_down_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_gun_dpad_left' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_gun_dpad_left_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_gun_dpad_left_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_gun_dpad_left_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_gun_dpad_right' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_gun_dpad_right_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_gun_dpad_right_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_gun_dpad_right_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_gun_dpad_up' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_gun_dpad_up_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_gun_dpad_up_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_gun_dpad_up_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_gun_offscreen_shot' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_gun_offscreen_shot_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_gun_offscreen_shot_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_gun_offscreen_shot_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_gun_select' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_gun_select_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_gun_select_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_gun_select_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_gun_start' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_gun_start_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_gun_start_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_gun_start_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_gun_trigger' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_gun_trigger_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_gun_trigger_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_gun_trigger_mbtn' '"1"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_joypad_index' '"7"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_l' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_l2' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_l2_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_l2_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_l2_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_l3' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_l3_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_l3_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_l3_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_l_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_l_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_l_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_l_x_minus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_l_x_minus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_l_x_minus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_l_x_minus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_l_x_plus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_l_x_plus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_l_x_plus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_l_x_plus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_l_y_minus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_l_y_minus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_l_y_minus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_l_y_minus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_l_y_plus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_l_y_plus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_l_y_plus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_l_y_plus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_left' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_left_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_left_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_left_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_mouse_index' '"7"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_r' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_r2' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_r2_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_r2_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_r2_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_r3' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_r3_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_r3_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_r3_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_r_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_r_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_r_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_r_x_minus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_r_x_minus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_r_x_minus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_r_x_minus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_r_x_plus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_r_x_plus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_r_x_plus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_r_x_plus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_r_y_minus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_r_y_minus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_r_y_minus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_r_y_minus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_r_y_plus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_r_y_plus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_r_y_plus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_r_y_plus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_right' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_right_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_right_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_right_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_select' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_select_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_select_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_select_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_start' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_start_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_start_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_start_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_turbo' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_turbo_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_turbo_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_turbo_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_up' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_up_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_up_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_up_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_x' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_x_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_x_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_x_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_y' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_y_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_y_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player8_y_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_a' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_a_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_a_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_a_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_analog_dpad_mode' '"0"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_b' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_b_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_b_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_b_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_down' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_down_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_down_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_down_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_gun_aux_a' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_gun_aux_a_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_gun_aux_a_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_gun_aux_a_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_gun_aux_b' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_gun_aux_b_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_gun_aux_b_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_gun_aux_b_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_gun_aux_c' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_gun_aux_c_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_gun_aux_c_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_gun_aux_c_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_gun_dpad_down' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_gun_dpad_down_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_gun_dpad_down_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_gun_dpad_down_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_gun_dpad_left' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_gun_dpad_left_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_gun_dpad_left_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_gun_dpad_left_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_gun_dpad_right' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_gun_dpad_right_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_gun_dpad_right_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_gun_dpad_right_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_gun_dpad_up' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_gun_dpad_up_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_gun_dpad_up_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_gun_dpad_up_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_gun_offscreen_shot' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_gun_offscreen_shot_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_gun_offscreen_shot_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_gun_offscreen_shot_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_gun_select' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_gun_select_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_gun_select_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_gun_select_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_gun_start' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_gun_start_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_gun_start_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_gun_start_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_gun_trigger' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_gun_trigger_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_gun_trigger_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_gun_trigger_mbtn' '"1"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_joypad_index' '"8"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_l' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_l2' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_l2_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_l2_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_l2_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_l3' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_l3_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_l3_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_l3_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_l_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_l_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_l_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_l_x_minus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_l_x_minus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_l_x_minus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_l_x_minus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_l_x_plus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_l_x_plus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_l_x_plus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_l_x_plus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_l_y_minus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_l_y_minus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_l_y_minus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_l_y_minus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_l_y_plus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_l_y_plus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_l_y_plus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_l_y_plus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_left' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_left_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_left_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_left_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_mouse_index' '"8"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_r' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_r2' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_r2_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_r2_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_r2_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_r3' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_r3_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_r3_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_r3_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_r_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_r_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_r_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_r_x_minus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_r_x_minus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_r_x_minus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_r_x_minus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_r_x_plus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_r_x_plus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_r_x_plus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_r_x_plus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_r_y_minus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_r_y_minus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_r_y_minus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_r_y_minus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_r_y_plus' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_r_y_plus_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_r_y_plus_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_r_y_plus_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_right' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_right_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_right_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_right_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_select' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_select_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_select_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_select_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_start' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_start_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_start_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_start_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_turbo' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_turbo_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_turbo_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_turbo_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_up' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_up_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_up_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_up_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_x' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_x_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_x_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_x_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_y' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_y_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_y_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_player9_y_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_poll_type_behavior' '"2"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_quit_gamepad_combo' '"4"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_recording_toggle' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_recording_toggle_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_recording_toggle_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_recording_toggle_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_remap_binds_enable' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_remapping_directory' '"~/.var/app/org.libretro.RetroArch/config/retroarch/config/remaps"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_reset' '"h"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_reset_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_reset_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_reset_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_rewind' '"r"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_rewind_axis' '"+4"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_rewind_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_rewind_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_rumble_gain' '"100"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_runahead_toggle' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_runahead_toggle_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_runahead_toggle_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_runahead_toggle_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_save_state' '"f2"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_save_state_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_save_state_btn' '"10"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_save_state_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_screenshot' '"f8"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_screenshot_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_screenshot_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_screenshot_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_send_debug_info' '"f10"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_send_debug_info_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_send_debug_info_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_send_debug_info_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_sensors_enable' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_shader_next' '"m"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_shader_next_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_shader_next_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_shader_next_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_shader_prev' '"n"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_shader_prev_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_shader_prev_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_shader_prev_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_state_slot_decrease' '"f6"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_state_slot_decrease_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_state_slot_decrease_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_state_slot_decrease_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_state_slot_increase' '"f7"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_state_slot_increase_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_state_slot_increase_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_state_slot_increase_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_streaming_toggle' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_streaming_toggle_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_streaming_toggle_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_streaming_toggle_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_toggle_fast_forward' '"space"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_toggle_fast_forward_axis' '"+5"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_toggle_fast_forward_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_toggle_fast_forward_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_toggle_fullscreen' '"f"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_toggle_fullscreen_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_toggle_fullscreen_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_toggle_fullscreen_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_toggle_slowmotion' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_toggle_slowmotion_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_toggle_slowmotion_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_toggle_slowmotion_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_toggle_statistics' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_toggle_statistics_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_toggle_statistics_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_toggle_statistics_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_toggle_vrr_runloop' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_toggle_vrr_runloop_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_toggle_vrr_runloop_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_toggle_vrr_runloop_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_touch_scale' '"1"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_turbo_default_button' '"0"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_turbo_mode' '"0"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_turbo_period' '"6"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_volume_down' '"subtract"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_volume_down_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_volume_down_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_volume_down_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_volume_up' '"add"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_volume_up_axis' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_volume_up_btn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'input_volume_up_mbtn' '"nul"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'joypad_autoconfig_dir' '"~/.var/app/org.libretro.RetroArch/config/retroarch/autoconfig"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'keyboard_gamepad_enable' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'keyboard_gamepad_mapping_type' '"1"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'kiosk_mode_enable' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'kiosk_mode_password' '""' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'led_driver' '"null"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'libretro_directory' '"~/.var/app/org.libretro.RetroArch/config/retroarch/cores"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'libretro_info_path' '"/app/share/libretro/info"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'libretro_log_level' '"1"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'load_dummy_on_core_shutdown' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'location_allow' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'location_driver' '"null"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'log_dir' '"~/.var/app/org.libretro.RetroArch/config/retroarch/logs"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'log_to_file' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'log_to_file_timestamp' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'log_verbosity' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'materialui_auto_rotate_nav_bar' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'materialui_dual_thumbnail_list_view_enable' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'materialui_icons_enable' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'materialui_landscape_layout_optimization' '"1"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'materialui_menu_color_theme' '"9"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'materialui_menu_transition_animation' '"0"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'materialui_playlist_icons_enable' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'materialui_show_nav_bar' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'materialui_thumbnail_background_enable' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'materialui_thumbnail_view_landscape' '"2"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'materialui_thumbnail_view_portrait' '"1"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'memory_show' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'memory_update_interval' '"256"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'menu_battery_level_enable' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'menu_core_enable' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'menu_driver' '"ozone"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'menu_dynamic_wallpaper_enable' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'menu_enable_widgets' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'menu_font_color_blue' '"255"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'menu_font_color_green' '"255"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'menu_font_color_red' '"255"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'menu_footer_opacity' '"1.000000"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'menu_framebuffer_opacity' '"0.900000"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'menu_header_opacity' '"1.000000"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'menu_horizontal_animation' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'menu_insert_disk_resume' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'menu_left_thumbnails' '"0"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'menu_linear_filter' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'menu_mouse_enable' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'menu_navigation_browser_filter_supported_extensions_enable' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'menu_navigation_wraparound_enable' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'menu_pause_libretro' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'menu_pointer_enable' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'menu_rgui_full_width_layout' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'menu_rgui_shadows' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'menu_rgui_transparency' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'menu_savestate_resume' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'menu_scale_factor' '"1.000000"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'menu_screensaver_animation' '"0"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'menu_screensaver_animation_speed' '"1.000000"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'menu_screensaver_timeout' '"0"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'menu_scroll_delay' '"256"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'menu_scroll_fast' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'menu_shader_pipeline' '"2"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'menu_show_advanced_settings' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'menu_show_configurations' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'menu_show_core_updater' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'menu_show_dump_disc' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'menu_show_help' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'menu_show_information' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'menu_show_latency' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'menu_show_legacy_thumbnail_updater' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'menu_show_load_content' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'menu_show_load_content_animation' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'menu_show_load_core' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'menu_show_load_disc' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'menu_show_online_updater' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'menu_show_overlays' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'menu_show_quit_retroarch' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'menu_show_reboot' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'menu_show_restart_retroarch' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'menu_show_rewind' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'menu_show_shutdown' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'menu_show_sublabels' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'menu_show_video_layout' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'menu_swap_ok_cancel_buttons' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'menu_throttle_framerate' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'menu_thumbnail_upscale_threshold' '"0"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'menu_thumbnails' '"3"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'menu_ticker_smooth' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'menu_ticker_speed' '"2.000000"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'menu_ticker_type' '"1"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'menu_timedate_date_separator' '"0"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'menu_timedate_enable' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'menu_timedate_style' '"11"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'menu_unified_controls' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'menu_use_preferred_system_color_theme' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'menu_wallpaper' '""' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'menu_wallpaper_opacity' '"0.300000"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'menu_widget_scale_auto' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'menu_widget_scale_factor' '"1.000000"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'menu_widget_scale_factor_windowed' '"1.000000"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'menu_xmb_animation_horizontal_highlight' '"0"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'menu_xmb_animation_move_up_down' '"0"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'menu_xmb_animation_opening_main_menu' '"0"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'menu_xmb_thumbnail_scale_factor' '"100"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'menu_xmb_title_margin' '"5"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'menu_xmb_vertical_fade_factor' '"100"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'midi_driver' '"alsa"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'midi_input' '"Off"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'midi_output' '"Off"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'midi_volume' '"100"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'netplay_allow_pausing' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'netplay_allow_slaves' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'netplay_check_frames' '"600"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'netplay_custom_mitm_server' '""' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'netplay_fade_chat' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'netplay_input_latency_frames_min' '"0"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'netplay_input_latency_frames_range' '"0"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'netplay_ip_address' '""' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'netplay_ip_port' '"55435"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'netplay_max_connections' '"3"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'netplay_max_ping' '"0"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'netplay_mitm_server' '"nyc"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'netplay_nat_traversal' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'netplay_nickname' '""' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'netplay_password' '""' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'netplay_ping_show' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'netplay_public_announce' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'netplay_request_device_p1' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'netplay_request_device_p10' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'netplay_request_device_p11' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'netplay_request_device_p12' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'netplay_request_device_p13' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'netplay_request_device_p14' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'netplay_request_device_p15' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'netplay_request_device_p16' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'netplay_request_device_p2' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'netplay_request_device_p3' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'netplay_request_device_p4' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'netplay_request_device_p5' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'netplay_request_device_p6' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'netplay_request_device_p7' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'netplay_request_device_p8' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'netplay_request_device_p9' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'netplay_require_slaves' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'netplay_share_analog' '"1"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'netplay_share_digital' '"1"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'netplay_show_only_connectable' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'netplay_spectate_password' '""' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'netplay_start_as_spectator' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'netplay_stateless_mode' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'netplay_use_mitm_server' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'network_cmd_enable' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'network_cmd_port' '"55355"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'network_on_demand_thumbnails' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'network_remote_base_port' '"55400"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'network_remote_enable' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'network_remote_enable_user_p1' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'network_remote_enable_user_p10' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'network_remote_enable_user_p11' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'network_remote_enable_user_p12' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'network_remote_enable_user_p13' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'network_remote_enable_user_p14' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'network_remote_enable_user_p15' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'network_remote_enable_user_p16' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'network_remote_enable_user_p2' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'network_remote_enable_user_p3' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'network_remote_enable_user_p4' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'network_remote_enable_user_p5' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'network_remote_enable_user_p6' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'network_remote_enable_user_p7' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'network_remote_enable_user_p8' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'network_remote_enable_user_p9' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'notification_show_autoconfig' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'notification_show_cheats_applied' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'notification_show_config_override_load' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'notification_show_fast_forward' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'notification_show_netplay_extra' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'notification_show_patch_applied' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'notification_show_refresh_rate' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'notification_show_remap_load' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'notification_show_screenshot' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'notification_show_screenshot_duration' '"0"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'notification_show_screenshot_flash' '"0"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'notification_show_set_initial_disk' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'notification_show_when_menu_is_alive' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'overlay_directory' '"/app/share/libretro/overlays"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'ozone_collapse_sidebar' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'ozone_menu_color_theme' '"1"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'ozone_scroll_content_metadata' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'ozone_sort_after_truncate_playlist_name' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'ozone_thumbnail_scale_factor' '"1.000000"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'ozone_truncate_playlist_name' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'pause_nonactive' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'perfcnt_enable' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'playlist_compression' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'playlist_directory' '"~/.var/app/org.libretro.RetroArch/config/retroarch/playlists"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'playlist_entry_remove_enable' '"1"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'playlist_entry_rename' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'playlist_fuzzy_archive_match' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'playlist_portable_paths' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'playlist_show_entry_idx' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'playlist_show_history_icons' '"0"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'playlist_show_inline_core_name' '"0"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'playlist_show_sublabels' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'playlist_sort_alphabetical' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'playlist_sublabel_last_played_style' '"0"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'playlist_sublabel_runtime_type' '"0"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'playlist_use_old_format' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'quick_menu_show_add_to_favorites' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'quick_menu_show_cheats' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'quick_menu_show_close_content' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'quick_menu_show_controls' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'quick_menu_show_core_options_flush' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'quick_menu_show_download_thumbnails' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'quick_menu_show_information' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'quick_menu_show_options' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'quick_menu_show_recording' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'quick_menu_show_reset_core_association' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'quick_menu_show_restart_content' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'quick_menu_show_resume_content' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'quick_menu_show_save_content_dir_overrides' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'quick_menu_show_save_core_overrides' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'quick_menu_show_save_game_overrides' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'quick_menu_show_save_load_state' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'quick_menu_show_set_core_association' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'quick_menu_show_shaders' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'quick_menu_show_start_recording' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'quick_menu_show_start_streaming' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'quick_menu_show_streaming' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'quick_menu_show_take_screenshot' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'quick_menu_show_undo_save_load_state' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'quit_on_close_content' '"0"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'quit_press_twice' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'record_driver' '"ffmpeg"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'recording_config_directory' '"~/.var/app/org.libretro.RetroArch/config/retroarch/records_config"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'recording_output_directory' '"~/.var/app/org.libretro.RetroArch/config/retroarch/records"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'resampler_directory' '""' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'rewind_buffer_size' '"20971520"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'rewind_buffer_size_step' '"10"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'rewind_enable' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'rewind_granularity' '"1"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'rgui_aspect_ratio' '"0"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'rgui_aspect_ratio_lock' '"0"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'rgui_background_filler_thickness_enable' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'rgui_border_filler_enable' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'rgui_border_filler_thickness_enable' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'rgui_browser_directory' '"default"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'rgui_config_directory' '"~/.var/app/org.libretro.RetroArch/config/retroarch/config"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'rgui_extended_ascii' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'rgui_inline_thumbnails' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'rgui_internal_upscale_level' '"0"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'rgui_menu_color_theme' '"4"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'rgui_menu_theme_preset' '""' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'rgui_particle_effect' '"0"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'rgui_particle_effect_screensaver' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'rgui_particle_effect_speed' '"1.000000"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'rgui_show_start_screen' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'rgui_swap_thumbnails' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'rgui_switch_icons' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'rgui_thumbnail_delay' '"0"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'rgui_thumbnail_downscaler' '"0"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'run_ahead_enabled' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'run_ahead_frames' '"1"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'run_ahead_hide_warnings' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'run_ahead_secondary_instance' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'runtime_log_directory' '"default"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'save_file_compression' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'savefile_directory' '"~/.var/app/org.libretro.RetroArch/config/retroarch/saves"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'savefiles_in_content_dir' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'savestate_auto_index' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'savestate_auto_load' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'savestate_auto_save' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'savestate_directory' '"~/.var/app/org.libretro.RetroArch/config/retroarch/states"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'savestate_file_compression' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'savestate_max_keep' '"0"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'savestate_thumbnail_enable' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'savestates_in_content_dir' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'scan_without_core_match' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'screen_brightness' '"100"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'screen_orientation' '"0"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'screenshot_directory' '"~/.var/app/org.libretro.RetroArch/config/retroarch/screenshots"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'screenshots_in_content_dir' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'settings_show_accessibility' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'settings_show_achievements' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'settings_show_ai_service' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'settings_show_audio' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'settings_show_configuration' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'settings_show_core' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'settings_show_directory' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'settings_show_drivers' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'settings_show_file_browser' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'settings_show_frame_throttle' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'settings_show_input' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'settings_show_latency' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'settings_show_logging' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'settings_show_network' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'settings_show_onscreen_display' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'settings_show_playlists' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'settings_show_power_management' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'settings_show_recording' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'settings_show_saving' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'settings_show_user' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'settings_show_user_interface' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'settings_show_video' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'show_hidden_files' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'slowmotion_ratio' '"3.000000"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'soft_filter_enable' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'soft_filter_index' '"0"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'sort_savefiles_by_content_enable' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'sort_savefiles_enable' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'sort_savestates_by_content_enable' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'sort_savestates_enable' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'sort_screenshots_by_content_enable' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'state_slot' '"0"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'statistics_show' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'stdin_cmd_enable' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'streaming_mode' '"0"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'suspend_screensaver_enable' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'sustained_performance_mode' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'system_directory' '"/run/media/mmcblk0p1/Emulation/bios/"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'systemfiles_in_content_dir' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'threaded_data_runloop_enable' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'thumbnails_directory' '"~/.var/app/org.libretro.RetroArch/config/retroarch/thumbnails"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'twitch_stream_key' '""' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'ui_companion_enable' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'ui_companion_start_on_boot' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'ui_companion_toggle' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'ui_menubar_enable' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'use_last_start_directory' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'user_language' '"0"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'vibrate_on_keypress' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'video_adaptive_vsync' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'video_allow_rotate' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'video_aspect_ratio' '"1.333300"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'video_aspect_ratio_auto' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'video_black_frame_insertion' '"0"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'video_context_driver' '""' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'video_crop_overscan' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'video_ctx_scaling' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'video_disable_composition' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'video_driver' '"vulkan"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'video_filter' '""' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'video_filter_dir' '"/app/lib/retroarch/filters/video"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'video_font_enable' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'video_font_path' '""' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'video_font_size' '"32.000000"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'video_force_aspect' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'video_force_srgb_disable' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'video_frame_delay' '"0"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'video_frame_delay_auto' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'video_fullscreen' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'video_fullscreen_x' '"0"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'video_fullscreen_y' '"0"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'video_gpu_record' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'video_gpu_screenshot' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'video_hard_sync' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'video_hard_sync_frames' '"0"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'video_hdr_display_contrast' '"5.000000"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'video_hdr_enable' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'video_hdr_expand_gamut' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'video_hdr_max_nits' '"1000.000000"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'video_hdr_paper_white_nits' '"200.000000"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'video_layout_directory' '"~/.var/app/org.libretro.RetroArch/config/retroarch/layouts"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'video_layout_enable' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'video_layout_path' '""' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'video_layout_selected_view' '"0"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'video_max_swapchain_images' '"3"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'video_message_color' '"ffff00"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'video_message_pos_x' '"0.050000"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'video_message_pos_y' '"0.050000"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'video_monitor_index' '"0"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'video_msg_bgcolor_blue' '"0"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'video_msg_bgcolor_enable' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'video_msg_bgcolor_green' '"0"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'video_msg_bgcolor_opacity' '"1.000000"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'video_msg_bgcolor_red' '"0"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'video_notch_write_over_enable' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'video_post_filter_record' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'video_record_config' '""' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'video_record_quality' '"2"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'video_record_scale_factor' '"1"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'video_record_threads' '"2"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'video_refresh_rate' '"60.000000"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'video_rotation' '"0"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'video_scale' '"3.000000"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'video_scale_integer' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'video_scale_integer_overscale' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'video_shader_delay' '"0"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'video_shader_dir' '"/app/share/libretro/shaders"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'video_shader_enable' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'video_shader_preset_save_reference_enable' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'video_shader_remember_last_dir' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'video_shader_watch_files' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'video_shared_context' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'video_smooth' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'video_stream_config' '""' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'video_stream_port' '"56400"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'video_stream_quality' '"11"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'video_stream_scale_factor' '"1"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'video_stream_url' '""' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'video_swap_interval' '"1"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'video_threaded' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'video_vsync' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'video_window_auto_height_max' '"1080"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'video_window_auto_width_max' '"1920"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'video_window_custom_size_enable' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'video_window_opacity' '"100"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'video_window_save_positions' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'video_window_show_decorations' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'video_windowed_fullscreen' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'video_windowed_position_height' '"720"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'video_windowed_position_width' '"1280"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'video_windowed_position_x' '"0"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'video_windowed_position_y' '"0"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'vrr_runloop_enable' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'vulkan_gpu_index' '"0"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'wifi_driver' '"null"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'wifi_enabled' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'xmb_alpha_factor' '"75"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'xmb_font' '""' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'xmb_layout' '"0"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'xmb_menu_color_theme' '"4"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'xmb_shadows_enable' '"true"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'xmb_theme' '"0"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'xmb_vertical_thumbnails' '"false"' +RetroArch_setOverride 'retroarch.cfg' 'retroarch' 'youtube_stream_key' '""' +} diff --git a/functions/EmuScripts/emuDeckCemu.sh b/functions/EmuScripts/emuDeckCemu.sh new file mode 100644 index 00000000..b9455cdf --- /dev/null +++ b/functions/EmuScripts/emuDeckCemu.sh @@ -0,0 +1,148 @@ +#!/bin/bash +#variables +Cemu_emuName="Cemu" +Cemu_emuType="windows" +Cemu_emuPath="${romsPath}/wiiu/cemu.exe" +Cemu_releaseURL="https://cemu.info/releases/cemu_1.26.2.zip" +Cemu_cemuSettings="${romsPath}/wiiu/settings.xml" + +#cleanupOlderThings +Cemu_cleanup(){ + echo "NYI" +} + +#Install +Cemu_install(){ + setMSG "Installing $Cemu_emuName" + + curl $Cemu_releaseURL --output "$romsPath"/wiiu/cemu.zip + mkdir -p "$romsPath"/wiiu/tmp + unzip -o "$romsPath"/wiiu/cemu.zip -d "$romsPath"/wiiu/tmp + mv "$romsPath"/wiiu/tmp/cemu_*/ "$romsPath"/wiiu/tmp/cemu/ + rsync -avzh "$romsPath"/wiiu/tmp/cemu/ "$romsPath"/wiiu/ + rm -rf "$romsPath"/wiiu/tmp + rm -f "$romsPath"/wiiu/cemu.zip + + if [ -e "${toolsPath}/launchers/cemu.sh" ]; then #retain launch settings + local launchLine=$( tail -n 1 "${toolsPath}/launchers/cemu.sh" ) + echo "cemu launch line found: $launchLine" + fi + + + cp "$EMUDECKGIT/tools/launchers/cemu.sh" "${toolsPath}/launchers/cemu.sh" + sed -i "s|/run/media/mmcblk0p1/Emulation/tools|${toolsPath}|" "${toolsPath}/launchers/cemu.sh" + sed -i "s|/run/media/mmcblk0p1/Emulation/roms|${romsPath}|" "${toolsPath}/launchers/cemu.sh" + + if [[ "$launchLine" == *"PROTONLAUNCH"* ]]; then + changeLine '"${PROTONLAUNCH}"' "$launchLine" "${toolsPath}/launchers/cemu.sh" + fi + chmod +x "${toolsPath}/launchers/cemu.sh" + + + createDesktopShortcut "$HOME/.local/share/applications/Cemu.desktop" \ + "Cemu EmuDeck" \ + "${toolsPath}/launchers/cemu.sh" \ + "False" + } + +#ApplyInitialSettings +Cemu_init(){ + setMSG "Initializing $Cemu_emuName settings." + rsync -avhp "$EMUDECKGIT/configs/info.cemu.Cemu/data/cemu/" "${romsPath}/wiiu" --backup --suffix=.bak + if [ -e "$Cemu_cemuSettings.bak" ]; then + mv -f "$Cemu_cemuSettings.bak" "$Cemu_cemuSettings" #retain cemuSettings + fi + Cemu_setEmulationFolder + Cemu_setupSaves + Cemu_addSteamInputProfile + +} + +#update +Cemu_update(){ + setMSG "Updating $Cemu_emuName settings." + rsync -avhp "$EMUDECKGIT/configs/info.cemu.Cemu/data/cemu/" "${romsPath}/wiiu" --ignore-existing + Cemu_setEmulationFolder + Cemu_setupSaves + Cemu_addSteamInputProfile +} + + +#ConfigurePaths +Cemu_setEmulationFolder(){ + setMSG "Setting $Cemu_emuName Emulation Folder" + + if [[ -f "${Cemu_cemuSettings}" ]]; then + gamePathEntryFound=$(grep -rnw "$Cemu_cemuSettings" -e "z:${romsPath}/wiiu/roms") + if [[ $gamePathEntryFound == '' ]]; then + xmlstarlet ed --inplace --subnode "content/GamePaths" --type elem -n Entry -v "z:${romsPath}/wiiu/roms" "$Cemu_cemuSettings" + fi + fi +} + +#SetupSaves +Cemu_setupSaves(){ + unlink "${savesPath}/Cemu/saves" # Fix for previous bad symlink + linkToSaveFolder Cemu saves "${romsPath}/wiiu/mlc01/usr/save" +} + + +#SetupStorage +Cemu_setupStorage(){ + echo "NYI" +} + + +#WipeSettings +Cemu_wipeSettings(){ + echo "NYI" + # rm -rf "${romPath}wiiu/" + # prob not cause roms are here +} + + +#Uninstall +Cemu_uninstall(){ + setMSG "Uninstalling $Cemu_emuName." + rm -rf "${Cemu_emuPath}" +} + +#setABXYstyle +Cemu_setABXYstyle(){ + echo "NYI" +} + +#Migrate +Cemu_migrate(){ + echo "NYI" +} + +#WideScreenOn +Cemu_wideScreenOn(){ +echo "NYI" +} + +#WideScreenOff +Cemu_wideScreenOff(){ +echo "NYI" +} + +#BezelOn +Cemu_bezelOn(){ +echo "NYI" +} + +#BezelOff +Cemu_bezelOff(){ + echo "NYI" +} + +#finalExec - Extra stuff +Cemu_finalize(){ + Cemu_cleanup +} + +Cemu_addSteamInputProfile(){ + setMSG "Adding $Cemu_emuName Steam Input Profile." + rsync -r "$EMUDECKGIT/configs/steam-input/cemu_controller_config.vdf" "$HOME/.steam/steam/controller_base/templates/" +} diff --git a/functions/EmuScripts/emuDeckCitra.sh b/functions/EmuScripts/emuDeckCitra.sh new file mode 100644 index 00000000..f53638d7 --- /dev/null +++ b/functions/EmuScripts/emuDeckCitra.sh @@ -0,0 +1,112 @@ +#!/bin/bash +#variables +Citra_emuName="Citra" +Citra_emuType="FlatPak" +Citra_emuPath="org.citra_emu.citra" +Citra_releaseURL="" + +#cleanupOlderThings +Citra_finalize(){ + echo "NYI" +} + +#Install +Citra_install(){ + setMSG "Installing $Citra_emuName" + installEmuFP "${Citra_emuName}" "${Citra_emuPath}" + flatpak override "${Citra_emuPath}" --filesystem=host --user +} + +#ApplyInitialSettings +Citra_init(){ + setMSG "Initializing $Citra_emuName settings." + configEmuFP "${Citra_emuName}" "${Citra_emuPath}" "true" + Citra_setupStorage + Citra_setEmulationFolder + Citra_setupSaves + Citra_addSteamInputProfile +} + +#update +Citra_update(){ + setMSG "Updating $Citra_emuName settings." + configEmuFP "${Citra_emuName}" "${Citra_emuPath}" + Citra_setupStorage + Citra_setEmulationFolder + Citra_setupSaves + Citra_addSteamInputProfile +} + +#ConfigurePaths +Citra_setEmulationFolder(){ + setMSG "Setting $Citra_emuName Emulation Folder" + configFile="$HOME/.var/app/org.citra_emu.citra/config/citra-emu/qt-config.ini" + gameDirOpt='Paths\\gamedirs\\3\\path=' + newGameDirOpt='Paths\\gamedirs\\3\\path='"${romsPath}/3ds" + sed -i "/${gameDirOpt}/c\\${newGameDirOpt}" "$configFile" +} + +#SetupSaves +Citra_setupSaves(){ + linkToSaveFolder citra saves "$HOME/.var/app/org.citra_emu.citra/data/citra-emu/sdmc" + linkToSaveFolder citra states "$HOME/.var/app/org.citra_emu.citra/data/citra-emu/states" +} + + +#SetupStorage +Citra_setupStorage(){ + echo "NYI" +} + + +#WipeSettings +Citra_wipe(){ + setMSG "Wiping $Citra_emuName config directory. (factory reset)" + rm -rf "$HOME/.var/app/$Citra_emuPath" +} + + +#Uninstall +Citra_uninstall(){ + setMSG "Uninstalling $Citra_emuName." + flatpak uninstall "$Citra_emuPath" --user -y +} + +#setABXYstyle +Citra_setABXYstyle(){ + echo "NYI" +} + +#Migrate +Citra_migrate(){ + echo "NYI" +} + +#WideScreenOn +Citra_wideScreenOn(){ +echo "NYI" +} + +#WideScreenOff +Citra_wideScreenOff(){ +echo "NYI" +} + +#BezelOn +Citra_bezelOn(){ +echo "NYI" +} + +#BezelOff +Citra_bezelOff(){ +echo "NYI" +} + +#finalExec - Extra stuff +Citra_finalize(){ + echo "NYI" +} + +Citra_addSteamInputProfile(){ + rsync -r "$EMUDECKGIT/configs/steam-input/citra_controller_config.vdf" "$HOME/.steam/steam/controller_base/templates/" +} \ No newline at end of file diff --git a/functions/EmuScripts/emuDeckDolphin.sh b/functions/EmuScripts/emuDeckDolphin.sh new file mode 100644 index 00000000..e6302a8c --- /dev/null +++ b/functions/EmuScripts/emuDeckDolphin.sh @@ -0,0 +1,132 @@ +#!/bin/bash +#variables +Dolphin_emuName="Dolphin" +Dolphin_emuType="FlatPak" +Dolphin_emuPath="org.DolphinEmu.dolphin-emu" +Dolphin_releaseURL="" + +#cleanupOlderThings +Dolphin_cleanup(){ + echo "NYI" +} + +#Install +Dolphin_install(){ + setMSG "${Dolphin_emuName}: Install" + echo "" + installEmuFP "${Dolphin_emuName}" "${Dolphin_emuPath}" + flatpak override "${Dolphin_emuPath}" --filesystem=host --user +} + +#ApplyInitialSettings +Dolphin_init(){ + setMSG "${Dolphin_emuName}: Apply initial config" + echo "" + configEmuFP "${Dolphin_emuName}" "${Dolphin_emuPath}" "true" + Dolphin_setupStorage + Dolphin_setEmulationFolder + Dolphin_setupSaves +} + +#update +Dolphin_update(){ + setMSG "${Dolphin_emuName}: Apply configuration Update" + echo "" + configEmuFP "${Dolphin_emuName}" "${Dolphin_emuPath}" + Dolphin_setupStorage + Dolphin_setEmulationFolder + Dolphin_setupSaves +} + +#ConfigurePaths +Dolphin_setEmulationFolder(){ + setMSG "${Dolphin_emuName}: Configure Emulation folder" + echo "" + configFile="$HOME/.var/app/org.DolphinEmu.dolphin-emu/config/dolphin-emu/Dolphin.ini" + gameDirOpt1='ISOPath0 = ' + gameDirOpt1Setting='ISOPath0 = '"${romsPath}/gc" + gameDirOpt2='ISOPath1 = ' + gameDirOpt2Setting='ISOPath1 = '"${romsPath}/wii" + sed -i "/${gameDirOpt1}/c\\${gameDirOpt1Setting}" "$configFile" + sed -i "/${gameDirOpt2}/c\\${gameDirOpt2Setting}" "$configFile" +} + +#SetupSaves +Dolphin_setupSaves(){ + setMSG "${Dolphin_emuName}: setup Saves folder" + echo "" + linkToSaveFolder dolphin GC "$HOME/.var/app/org.DolphinEmu.dolphin-emu/data/dolphin-emu/GC" + linkToSaveFolder dolphin Wii "$HOME/.var/app/org.DolphinEmu.dolphin-emu/data/dolphin-emu/Wii" + linkToSaveFolder dolphin states "$HOME/.var/app/org.DolphinEmu.dolphin-emu/data/dolphin-emu/states" +} + + +#SetupStorage +Dolphin_setupStorage(){ + echo "NYI"#TBD +} + + +#WipeSettings +Dolphin_wipe(){ + rm -rf "$HOME/.var/app/$Dolphin_emuPath" + # prob not cause roms are here +} + + +#Uninstall +Dolphin_uninstall(){ + flatpak uninstall "$Dolphin_emuPath" --user -y +} + +#setABXYstyle +Dolphin_setABXYstyle(){ + echo "NYI" +} + +#Migrate +Dolphin_migrate(){ + echo "NYI" +} + +#WideScreenOn +Dolphin_wideScreenOn(){ + setMSG "${Dolphin_emuName}: Widescreen On" + echo "" + configFile="$HOME/.var/app/org.DolphinEmu.dolphin-emu/config/dolphin-emu/GFX.ini" + wideScreenHack='wideScreenHack = ' + wideScreenHackSetting='wideScreenHack = True' + aspectRatio='AspectRatio = ' + aspectRatioSetting='AspectRatio = 1' + sed -i "/${wideScreenHack}/c\\${wideScreenHackSetting}" "$configFile" + sed -i "/${aspectRatio}/c\\${aspectRatioSetting}" "$configFile" +} + +#WideScreenOff +Dolphin_wideScreenOff(){ + setMSG "${Dolphin_emuName}: Widescreen Off" + echo "" + configFile="$HOME/.var/app/org.DolphinEmu.dolphin-emu/config/dolphin-emu/GFX.ini" + wideScreenHack='wideScreenHack = ' + wideScreenHackSetting='wideScreenHack = False' + aspectRatio='AspectRatio = ' + aspectRatioSetting='AspectRatio = 0' + sed -i "/${wideScreenHack}/c\\${wideScreenHackSetting}" "$configFile" + sed -i "/${aspectRatio}/c\\${aspectRatioSetting}" "$configFile" +} + +#BezelOn +Dolphin_bezelOn(){ +echo "NYI" +} + +#BezelOff +Dolphin_bezelOff(){ +echo "NYI" +} + +#finalExec - Extra stuff +Dolphin_finalize(){ + echo "NYI" +} + diff --git a/functions/EmuScripts/emuDeckDuckStation.sh b/functions/EmuScripts/emuDeckDuckStation.sh new file mode 100644 index 00000000..88f1690f --- /dev/null +++ b/functions/EmuScripts/emuDeckDuckStation.sh @@ -0,0 +1,132 @@ +#!/bin/bash + +#variables +DuckStation_emuName="DuckStation" +DuckStation_emuType="FlatPak" +DuckStation_emuPath="org.duckstation.DuckStation" +DuckStation_configFile="$HOME/.var/app/org.duckstation.DuckStation/data/duckstation/settings.ini" +DuckStation_releaseURL="" + +#cleanupOlderThings +DuckStation_cleanup(){ + echo "NYI" +} + +#Install +DuckStation_install(){ + setMSG "Installing $DuckStation_emuName" + + installEmuFP "${DuckStation_emuName}" "${DuckStation_emuPath}" + flatpak override "${DuckStation_emuPath}" --filesystem=host --user +} + +#ApplyInitialSettings +DuckStation_init(){ + setMSG "Initializing $DuckStation_emuName settings." + configEmuFP "${DuckStation_emuName}" "${DuckStation_emuPath}" "true" + DuckStation_setupStorage + DuckStation_setEmulationFolder + DuckStation_setupSaves + DuckStation_addSteamInputProfile +} + +#update +DuckStation_update(){ + setMSG "Updating $DuckStation_emuName settings." + configEmuFP "${DuckStation_emuName}" "${DuckStation_emuPath}" + DuckStation_setupStorage + DuckStation_setEmulationFolder + DuckStation_setupSaves + DuckStation_addSteamInputProfile +} + +#ConfigurePaths +DuckStation_setEmulationFolder(){ + setMSG "Setting $DuckStation_emuName Emulation Folder" + gameDirOpt='RecursivePaths = ' + newGameDirOpt="${gameDirOpt}""${romsPath}/psx" + biosDir='SearchDirectory = ' + biosDirSetting="${biosDir}""${biosPath}" + sed -i "/${gameDirOpt}/c\\${newGameDirOpt}" "$DuckStation_configFile" + sed -i "/${biosDir}/c\\${biosDirSetting}" "$DuckStation_configFile" +} + +#SetupSaves +DuckStation_setupSaves(){ + linkToSaveFolder duckstation saves "$HOME/.var/app/org.duckstation.DuckStation/data/duckstation/memcards" + linkToSaveFolder duckstation states "$HOME/.var/app/org.duckstation.DuckStation/data/duckstation/savestates" +} + + +#SetupStorage +DuckStation_setupStorage(){ + echo "NYI" +} + + +#WipeSettings +DuckStation_wipe(){ + setMSG "Wiping $DuckStation_emuName settings folder." + rm -rf "$HOME/.var/app/$DuckStation_emuPath" +} + + +#Uninstall +DuckStation_uninstall(){ + setMSG "Uninstalling ${DuckStation_emuName}." + flatpak uninstall "$DuckStation_emuPath" --user -y +} + +#setABXYstyle +DuckStation_setABXYstyle(){ + echo "NYI" +} + +#Migrate +DuckStation_migrate(){ + echo "NYI" +} + +#WideScreenOn +DuckStation_wideScreenOn(){ + setMSG "${DuckStation_emuName}: Widescreen On" + echo "" + wideScreenHack='WidescreenHack = ' + wideScreenHackSetting='WidescreenHack = true' + aspectRatio='AspectRatio = ' + aspectRatioSetting='AspectRatio = 16:9' + sed -i "/${wideScreenHack}/c\\${wideScreenHackSetting}" "$DuckStation_configFile" + sed -i "/${aspectRatio}/c\\${aspectRatioSetting}" "$DuckStation_configFile" +} + +#WideScreenOff +DuckStation_wideScreenOff(){ + setMSG "${DuckStation_emuName}: Widescreen Off" + echo "" + wideScreenHack='WidescreenHack = ' + wideScreenHackSetting='WidescreenHack = false' + aspectRatio='AspectRatio = ' + aspectRatioSetting='AspectRatio = 4:3' + sed -i "/${wideScreenHack}/c\\${wideScreenHackSetting}" "$DuckStation_configFile" + sed -i "/${aspectRatio}/c\\${aspectRatioSetting}" "$DuckStation_configFile" +} + +#BezelOn +DuckStation_bezelOn(){ +echo "NYI" +} + +#BezelOff +DuckStation_bezelOff(){ +echo "NYI" +} + +#finalExec - Extra stuff +DuckStation_finalize(){ + echo "NYI" +} + +DuckStation_addSteamInputProfile(){ + setMSG "Adding $DuckStation_emuName Steam Input Profile." + rsync -r "$EMUDECKGIT/configs/steam-input/duckstation_controller_config.vdf" "$HOME/.steam/steam/controller_base/templates/" +} \ No newline at end of file diff --git a/functions/EmuScripts/emuDeckMAME.sh b/functions/EmuScripts/emuDeckMAME.sh new file mode 100644 index 00000000..1e397188 --- /dev/null +++ b/functions/EmuScripts/emuDeckMAME.sh @@ -0,0 +1,103 @@ +#!/bin/bash +#variables +MAME_emuName="MAME" +MAME_emuType="FlatPak" +MAME_emuPath="org.mamedev.MAME" +MAME_releaseURL="" +MAME_configFile="$HOME/.mame/mame.ini" + +#cleanupOlderThings +MAME_cleanup(){ + echo "NYI" +} + +#Install +MAME_install(){ + installEmuFP "${MAME_emuName}" "${MAME_emuPath}" + flatpak override "${MAME_emuPath}" --filesystem=host --user + flatpak override "${MAME_emuPath}" --share=network --user +} + +#ApplyInitialSettings +MAME_init(){ + configEmuAI "${MAME_emuName}" "mame" "$HOME/.mame" "${EMUDECKGIT}/configs/mame" "true" + MAME_setupStorage + MAME_setEmulationFolder + MAME_setupSaves +} + +#update +MAME_update(){ + configEmuAI "${MAME_emuName}" "mame" "$HOME/.mame" "${EMUDECKGIT}/configs/mame" + MAME_setupStorage + MAME_setEmulationFolder + MAME_setupSaves +} + +#ConfigurePaths +MAME_setEmulationFolder(){ + + gameDirOpt='rompath ' + newGameDirOpt="$gameDirOpt""${romsPath}/arcade;${biosPath};${biosPath}/mame" + sed -i "/${gameDirOpt}/c\\${newGameDirOpt}" "$MAME_configFile" +} + +#SetupSaves +MAME_setupSaves(){ + linkToSaveFolder MAME saves "$HOME/.mame/nvram" + linkToSaveFolder MAME states "$HOME/.mame/sta" +} + + +#SetupStorage +MAME_setupStorage(){ + echo "NYI" +} + + +#WipeSettings +MAME_wipe(){ + rm -rf "$HOME/.mame" +} + + +#Uninstall +MAME_uninstall(){ + flatpak uninstall "$MAME_emuPath" --user -y +} + +#setABXYstyle +MAME_setABXYstyle(){ + echo "NYI" +} + +#Migrate +MAME_migrate(){ + echo "NYI" +} + +#WideScreenOn +MAME_wideScreenOn(){ + echo "NYI" +} + +#WideScreenOff +MAME_wideScreenOff(){ + echo "NYI" +} + +#BezelOn +MAME_bezelOn(){ +echo "NYI" +} + +#BezelOff +MAME_bezelOff(){ +echo "NYI" +} + +#finalExec - Extra stuff +MAME_finalize(){ + echo "NYI" +} + diff --git a/functions/EmuScripts/emuDeckPCSX2.sh b/functions/EmuScripts/emuDeckPCSX2.sh new file mode 100644 index 00000000..43efe80a --- /dev/null +++ b/functions/EmuScripts/emuDeckPCSX2.sh @@ -0,0 +1,121 @@ +#!/bin/bash +#variables +PCSX2_emuName="PCSX2" +PCSX2_emuType="FlatPak" +PCSX2_emuPath="net.pcsx2.PCSX2" +PCSX2_configFile="$HOME/.var/app/net.pcsx2.PCSX2/config/PCSX2/inis/PCSX2_ui.ini" + +#cleanupOlderThings +PCSX2_cleanup(){ + echo "NYI" +} + +#Install +PCSX2_install(){ + installEmuFP "${PCSX2_emuName}" "${PCSX2_emuPath}" + flatpak override "${PCSX2_emuPath}" --filesystem=host --user + flatpak override "${PCSX2_emuPath}" --share=network --user +} + +#ApplyInitialSettings +PCSX2_init(){ + setMSG "Initializing $PCSX2_emuName settings." + configEmuFP "${PCSX2_emuName}" "${PCSX2_emuPath}" "true" + PCSX2_setEmulationFolder + PCSX2_setupSaves + PCSX2_addSteamInputProfile +} + +#update +PCSX2_update(){ + setMSG "Updating $PCSX2_emuName settings." + configEmuFP "${PCSX2_emuName}" "${PCSX2_emuPath}" + PCSX2_setEmulationFolder + PCSX2_setupSaves + PCSX2_addSteamInputProfile +} + +#ConfigurePaths +PCSX2_setEmulationFolder(){ + setMSG "Setting $PCSX2_emuName Emulation Folder" + + biosDirOpt='Bios=/' + saveStatesDirOpt='Savestates=/' + memoryCardsDirOpt='MemoryCards=/' + + newBiosDirOpt='Bios='"${biosPath}" + newsaveStatesDirOpt='Savestates='"${savesPath}/pcsx2/states" + newmemoryCardsDirOpt='MemoryCards='"${savesPath}/pcsx2/saves" + + changeLine "$biosDirOpt" "$newBiosDirOpt" "$PCSX2_configFile" + changeLine "$saveStatesDirOpt" "$newsaveStatesDirOpt" "$PCSX2_configFile" + changeLine "$memoryCardsDirOpt" "$newmemoryCardsDirOpt" "$PCSX2_configFile" +} + +#SetupSaves +PCSX2_setupSaves(){ + moveSaveFolder pcsx2 saves "$HOME/.var/app/net.pcsx2.PCSX2/config/PCSX2/memcards" + moveSaveFolder pcsx2 states "$HOME/.var/app/net.pcsx2.PCSX2/config/PCSX2/sstates" + flatpak override "${PCSX2_emuPath}" --filesystem="${savesPath}/pcsx2":rw --user +} + + +#SetupStorage +PCSX2_setupStorage(){ + echo "NYI" +} + + +#WipeSettings +PCSX2_wipe(){ + setMSG "Wiping $PCSX2_emuName settings." + rm -rf "$HOME/.var/app/$PCSX2_emuPath" + # prob not cause roms are here +} + + +#Uninstall +PCSX2_uninstall(){ + setMSG "Uninstalling $PCSX2_emuName." + flatpak uninstall $PCSX2_emuPath --user -y +} + +#setABXYstyle +PCSX2_setABXYstyle(){ + echo "NYI" +} + +#Migrate +PCSX2_migrate(){ + echo "NYI" +} + +#WideScreenOn +PCSX2_wideScreenOn(){ +echo "NYI" +} + +#WideScreenOff +PCSX2_wideScreenOff(){ +echo "NYI" +} + +#BezelOn +PCSX2_bezelOn(){ +echo "NYI" +} + +#BezelOff +PCSX2_bezelOff(){ +echo "NYI" +} + +#finalExec - Extra stuff +PCSX2_finalize(){ + echo "NYI" +} + +PCSX2_addSteamInputProfile(){ + setMSG "Adding $PCSX2_emuName Steam Input Profile." + rsync -r "$EMUDECKGIT/configs/steam-input/pcsx2_controller_config.vdf" "$HOME/.steam/steam/controller_base/templates/" +} \ No newline at end of file diff --git a/functions/EmuScripts/emuDeckPCSX2QT.sh b/functions/EmuScripts/emuDeckPCSX2QT.sh new file mode 100644 index 00000000..71e3d663 --- /dev/null +++ b/functions/EmuScripts/emuDeckPCSX2QT.sh @@ -0,0 +1,152 @@ +#!/bin/bash +#variables +PCSX2QT_emuName="PCSX2-QT" +PCSX2QT_emuType="AppImage" +PCSX2QT_emuPath="$HOME/Applications/pcsx2-Qt.AppImage" +PCSX2QT_configFile="$HOME/.config/PCSX2/inis/PCSX2.ini" + +#cleanupOlderThings +PCSX2QT_cleanup(){ + echo "NYI" +} + +#Install +PCSX2QT_install(){ + echo "Begin PCSX2-QT Install" + installEmuAI "pcsx2-Qt" "$(getReleaseURLGH "PCSX2/pcsx2" "Qt.AppImage")" #pcsx2-Qt.AppImage +} + +#ApplyInitialSettings +PCSX2QT_init(){ + setMSG "Initializing $PCSX2QT_emuName settings." + configEmuAI "$PCSX2QT_emuName" "config" "$HOME/.config/PCSX2" "$EMUDECKGIT/configs/pcsx2qt/.config/PCSX2" "true" + PCSX2QT_setEmulationFolder + PCSX2QT_setupStorage + PCSX2QT_setupSaves # + PCSX2QT_addSteamInputProfile # +} + +#update +PCSX2QT_update(){ + setMSG "Updating $PCSX2QT_emuName settings." + configEmuAI "$PCSX2QT_emuName" "config" "$HOME/.config/PCSX2" "$EMUDECKGIT/configs/pcsx2qt/.config/PCSX2" + PCSX2QT_setEmulationFolder + PCSX2QT_setupStorage + PCSX2QT_setupSaves + PCSX2QT_addSteamInputProfile +} + +#ConfigurePaths +PCSX2QT_setEmulationFolder(){ + setMSG "Setting $PCSX2QT_emuName Emulation Folder" + + biosDirOpt='Bios = ' + snapShotsDirOpt='Snapshots = ' + saveStatesDirOpt='SaveStates = ' + memoryCardsDirOpt='MemoryCards = ' + cacheDirOpt='Cache = ' + texturesDirOpt='Textures = ' + coversDirOpt='Covers = ' + recursivePathsDirOpt='RecursivePaths = ' + + newBiosDirOpt='Bios = '"${biosPath}" + newsnapShotsDirOpt='Snapshots = '"${storagePath}/pcsx2/snaps" + newsaveStatesDirOpt='SaveStates = '"${savesPath}/pcsx2/states" + newmemoryCardsDirOpt='MemoryCards = '"${savesPath}/pcsx2/saves" + newcacheDirOpt='Cache = '"${storagePath}/pcsx2/cache" + newtexturesDirOpt='Textures = '"${storagePath}/pcsx2/textures" + newcoversDirOpt='Covers = '"${storagePath}/pcsx2/covers" + newrecursivePathsDirOpt='RecursivePaths = '"${romsPath}/ps2" + + + changeLine "$biosDirOpt" "$newBiosDirOpt" "$PCSX2QT_configFile" + changeLine "$snapShotsDirOpt" "$newsnapShotsDirOpt" "$PCSX2QT_configFile" + changeLine "$saveStatesDirOpt" "$newsaveStatesDirOpt" "$PCSX2QT_configFile" + changeLine "$memoryCardsDirOpt" "$newmemoryCardsDirOpt" "$PCSX2QT_configFile" + changeLine "$cacheDirOpt" "$newcacheDirOpt" "$PCSX2QT_configFile" + changeLine "$texturesDirOpt" "$newtexturesDirOpt" "$PCSX2QT_configFile" + changeLine "$coversDirOpt" "$newcoversDirOpt" "$PCSX2QT_configFile" + changeLine "$recursivePathsDirOpt" "$newrecursivePathsDirOpt" "$PCSX2QT_configFile" + + +} + +#SetupSaves +PCSX2QT_setupSaves(){ + #link fp and ap saves / states? + moveSaveFolder pcsx2 saves "$HOME/.var/app/net.pcsx2.PCSX2/config/PCSX2/memcards" + moveSaveFolder pcsx2 states "$HOME/.var/app/net.pcsx2.PCSX2/config/PCSX2/sstates" +} + + +#SetupStorage +PCSX2QT_setupStorage(){ + echo "Begin PCSX2-QT storage config" + mkdir -p "${storagePath}/pcsx2/snaps" + mkdir -p "${storagePath}/pcsx2/cache" + mkdir -p "${storagePath}/pcsx2/textures" + mkdir -p "${storagePath}/pcsx2/covers" +} + + +#WipeSettings +PCSX2QT_wipe(){ + setMSG "Wiping $PCSX2QT_emuName settings." + rm -rf "$HOME/.config/PCSX2" + # prob not cause roms are here +} + + +#Uninstall +PCSX2QT_uninstall(){ + setMSG "Uninstalling $PCSX2QT_emuName." + rm -rf "$emuPath" +} + +#setABXYstyle +PCSX2QT_setABXYstyle(){ + echo "NYI" +} + +#Migrate +PCSX2QT_migrate(){ + echo "NYI" +} + +#WideScreenOn +PCSX2QT_wideScreenOn(){ + + local EnableWideScreenPatches='EnableWideScreenPatches = ' + local EnableWideScreenPatchesOpt='EnableWideScreenPatches = '"true" + + changeLine "$EnableWideScreenPatches" "$EnableWideScreenPatchesOpt" "$PCSX2QT_configFile" + +} + +#WideScreenOff +PCSX2QT_wideScreenOff(){ + local EnableWideScreenPatches='EnableWideScreenPatches = ' + local EnableWideScreenPatchesOpt='EnableWideScreenPatches = '"false" + + changeLine "$EnableWideScreenPatches" "$EnableWideScreenPatchesOpt" "$PCSX2QT_configFile" +} + +#BezelOn +PCSX2QT_bezelOn(){ +echo "NYI" +} + +#BezelOff +PCSX2QT_bezelOff(){ +echo "NYI" +} + +#finalExec - Extra stuff +PCSX2QT_finalize(){ + echo "NYI" +} + +PCSX2QT_addSteamInputProfile(){ + setMSG "Adding $PCSX2QT_emuName Steam Input Profile." + rsync -r "$EMUDECKGIT/configs/steam-input/PCSX2QT_controller_config.vdf" "$HOME/.steam/steam/controller_base/templates/" +} \ No newline at end of file diff --git a/functions/EmuScripts/emuDeckPPSSPP.sh b/functions/EmuScripts/emuDeckPPSSPP.sh new file mode 100644 index 00000000..830b5468 --- /dev/null +++ b/functions/EmuScripts/emuDeckPPSSPP.sh @@ -0,0 +1,102 @@ +#!/bin/bash +#variables +PPSSPP_emuName="PPSSPP" +PPSSPP_emuType="FlatPak" +PPSSPP_emuPath="org.ppsspp.PPSSPP" +PPSSPP_releaseURL="" + +#cleanupOlderThings +PPSSPP_cleanup(){ + echo "NYI" +} + +#Install +PPSSPP_install(){ + installEmuFP "${PPSSPP_emuName}" "${PPSSPP_emuPath}" + flatpak override "${PPSSPP_emuPath}" --filesystem=host --user + flatpak override "${PPSSPP_emuPath}" --share=network --user +} + +#ApplyInitialSettings +PPSSPP_init(){ + configEmuFP "${PPSSPP_emuName}" "${PPSSPP_emuPath}" "true" + PPSSPP_setupStorage + PPSSPP_setEmulationFolder + PPSSPP_setupSaves +} + +#update +PPSSPP_update(){ + configEmuFP "${PPSSPP_emuName}" "${PPSSPP_emuPath}" + PPSSPP_setupStorage + PPSSPP_setEmulationFolder + PPSSPP_setupSaves +} + +#ConfigurePaths +PPSSPP_setEmulationFolder(){ + configFile="$HOME/.var/app/${PPSSPP_emuPath}/config/ppsspp/PSP/SYSTEM/ppsspp.ini" + gameDirOpt='CurrentDirectory = ' + newGameDirOpt='CurrentDirectory = '"${romsPath}/psp" + sed -i "/${gameDirOpt}/c\\${newGameDirOpt}" "$configFile" +} + +#SetupSaves +PPSSPP_setupSaves(){ + linkToSaveFolder ppsspp saves "$HOME/.var/app/org.ppsspp.PPSSPP/config/ppsspp/PSP/SAVEDATA" + linkToSaveFolder ppsspp states "$HOME/.var/app/org.ppsspp.PPSSPP/config/ppsspp/PSP/PPSSPP_STATE" +} + + +#SetupStorage +PPSSPP_setupStorage(){ + echo "NYI" +} + + +#WipeSettings +PPSSPP_wipe(){ + rm -rf "$HOME/.var/app/$PPSSPP_emuPath" +} + + +#Uninstall +PPSSPP_uninstall(){ + flatpak uninstall "$PPSSPP_emuPath" --user -y +} + +#setABXYstyle +PPSSPP_setABXYstyle(){ + echo "NYI" +} + +#Migrate +PPSSPP_migrate(){ + echo "NYI" +} + +#WideScreenOn +PPSSPP_wideScreenOn(){ + echo "NYI" +} + +#WideScreenOff +PPSSPP_wideScreenOff(){ + echo "NYI" +} + +#BezelOn +PPSSPP_bezelOn(){ +echo "NYI" +} + +#BezelOff +PPSSPP_bezelOff(){ +echo "NYI" +} + +#finalExec - Extra stuff +PPSSPP_finalize(){ + echo "NYI" +} + diff --git a/functions/EmuScripts/emuDeckPrimehack.sh b/functions/EmuScripts/emuDeckPrimehack.sh new file mode 100644 index 00000000..b114c95c --- /dev/null +++ b/functions/EmuScripts/emuDeckPrimehack.sh @@ -0,0 +1,103 @@ +#!/bin/bash + +#variables +Primehack_emuName="Primehack" +Primehack_emuType="FlatPak" +Primehack_emuPath="io.github.shiiion.primehack" +releaseURL="" + +#cleanupOlderThings +Primehack_cleanup(){ + echo "NYI" +} + +#Install +Primehack_install() { + installEmuFP "${Primehack_emuName}" "${Primehack_emuPath}" + flatpak override "${Primehack_emuPath}" --filesystem=host --user +} + +#ApplyInitialSettings +Primehack_init() { + configEmuFP "${Primehack_emuName}" "${Primehack_emuPath}" "true" + Primehack_setupStorage + Primehack_setEmulationFolder + Primehack_setupSaves +} + +#update +Primehack_update() { + configEmuFP "${Primehack_emuName}" "${Primehack_emuPath}" + Primehack_setupStorage + Primehack_setEmulationFolder + Primehack_setupSaves +} + +#ConfigurePaths +Primehack_setEmulationFolder() { + configFile="$HOME/.var/app/${Primehack_emuPath}/config/dolphin-emu/Dolphin.ini" + gameDirOpt='ISOPath0 = ' + newGameDirOpt='ISOPath0 = '"${romsPath}/primehacks" + sed -i "/${gameDirOpt}/c\\${newGameDirOpt}" "$configFile" +} + +#SetupSaves +Primehack_setupSaves(){ + linkToSaveFolder primehack GC "$HOME/.var/app/io.github.shiiion.primehack/data/dolphin-emu/GC" + linkToSaveFolder primehack Wii "$HOME/.var/app/io.github.shiiion.primehack/data/dolphin-emu/Wii" + linkToSaveFolder primehack states "$HOME/.var/app/io.github.shiiion.primehack/data/dolphin-emu/states" +} + + +#SetupStorage +Primehack_setupStorage(){ + echo "NYI" +} + + +#WipeSettings +Primehack_wipe() { + rm -rf "$HOME/.var/app/${Primehack_emuPath}" +} + + +#Uninstall +Primehack_uninstall() { + flatpak uninstall "${Primehack_emuPath}" -y +} + +#setABXYstyle +Primehack_setABXYstyle(){ + echo "NYI" +} + +#Migrate +Primehack_migrate(){ + echo "NYI" +} + +#WideScreenOn +Primehack_wideScreenOn(){ + echo "NYI" +} + +#WideScreenOff +Primehack_wideScreenOff(){ + echo "NYI" +} + +#BezelOn +Primehack_bezelOn(){ +echo "NYI" +} + +#BezelOff +Primehack_BezelOff(){ +echo "NYI" +} + +#finalExec - Extra stuff +Primehack_finalize(){ + echo "NYI" +} + diff --git a/functions/EmuScripts/emuDeckRPCS3.sh b/functions/EmuScripts/emuDeckRPCS3.sh new file mode 100644 index 00000000..652b363d --- /dev/null +++ b/functions/EmuScripts/emuDeckRPCS3.sh @@ -0,0 +1,120 @@ +#!/bin/bash +#variables +RPCS3_remuName="RPCS3" +RPCS3_emuType="FlatPak" +RPCS3_emuPath="net.rpcs3.RPCS3" +RPCS3_releaseURL="" + +#cleanupOlderThings +RPCS3_cleanup(){ + echo "NYI" +} + +#Install +RPCS3_install(){ + installEmuFP "${RPCS3_remuName}" "${RPCS3_emuPath}" + flatpak override "${RPCS3_emuPath}" --filesystem=host --user +} + +#ApplyInitialSettings +RPCS3_init(){ + configEmuFP "${RPCS3_remuName}" "${RPCS3_emuPath}" "true" + RPCS3_setupStorage + RPCS3_setEmulationFolder + RPCS3_setupSaves +} + +#update +RPCS3_update(){ + configEmuFP "${RPCS3_remuName}" "${RPCS3_emuPath}" + RPCS3_setupStorage + RPCS3_setEmulationFolder + RPCS3_setupSaves +} + +#ConfigurePaths +RPCS3_setEmulationFolder(){ + echo "NYI" +} + +#SetupSaves +RPCS3_setupSaves(){ + linkToSaveFolder rpcs3 saves "${storagePath}/rpcs3/dev_hdd0/home/00000001/savedata" +} + + +#SetupStorage +RPCS3_setupStorage(){ + rpcs3VFSConf="$HOME/.var/app/${RPCS3_emuPath}/config/rpcs3/vfs.yml" + rpcs3DevHDD0Line="/dev_hdd0/: ${storagePath}/rpcs3/dev_hdd0/" + sed -i "/dev_hdd0/c\\${rpcs3DevHDD0Line}" $rpcs3VFSConf + + mkdir -p $storagePath/rpcs3/ + + if [ ! -d "$storagePath"/rpcs3/dev_hdd0 ] && [ -d "$HOME/.var/app/${RPCS3_emuPath}/" ];then + echo "rpcs3 hdd does not exist in storagepath." + + echo -e "" + setMSG "Moving rpcs3 HDD to the Emulation/storage folder" + echo -e "" + + mkdir -p "$storagePath/rpcs3" + + if [ -d "$savesPath/rpcs3/dev_hdd0" ]; then + mv -f "$savesPath"/rpcs3/dev_hdd0 "$storagePath"/rpcs3/ + + elif [ -d "$HOME/.var/app/${RPCS3_emuPath}/config/rpcs3/dev_hdd0" ]; then + rsync -av "$HOME/.var/app/${RPCS3_emuPath}/config/rpcs3/dev_hdd0" "$storagePath"/rpcs3/ && rm -rf "$HOME/.var/app/${RPCS3_emuPath}/config/rpcs3/dev_hdd0" + + fi + fi +} + + +#WipeSettings +RPCS3_wipe(){ + rm -rf "$HOME/.var/app/$RPCS3_emuPath" + # prob not cause roms are here +} + + +#Uninstall +RPCS3_uninstall(){ + flatpak uninstall "$RPCS3_emuPath" --user -y +} + +#setABXYstyle +RPCS3_setABXYstyle(){ + echo "NYI" +} + +#Migrate +RPCS3_migrate(){ + echo "NYI" +} + +#WideScreenOn +RPCS3_wideScreenOn(){ +echo "NYI" +} + +#WideScreenOff +RPCS3_wideScreenOff(){ +echo "NYI" +} + +#BezelOn +RPCS3_bezelOn(){ +echo "NYI" +} + +#BezelOff +RPCS3_bezelOff(){ +echo "NYI" +} + +#finalExec - Extra stuff +RPCS3_finalize(){ + echo "NYI" +} + diff --git a/functions/EmuScripts/emuDeckRetroArch.sh b/functions/EmuScripts/emuDeckRetroArch.sh new file mode 100644 index 00000000..523c8def --- /dev/null +++ b/functions/EmuScripts/emuDeckRetroArch.sh @@ -0,0 +1,1567 @@ +#!/bin/bash +#variables +RetroArch_emuName="RetroArch" +RetroArch_emuType="FlatPak" +RetroArch_emuPath="org.libretro.RetroArch" +RetroArch_releaseURL="" +RetroArch_configFile="$HOME/.var/app/org.libretro.RetroArch/config/retroarch/retroarch.cfg" +RetroArch_coreConfigFolders="$HOME/.var/app/org.libretro.RetroArch/config/retroarch/config" + +#cleanupOlderThings +RetroArch_cleanup(){ + echo "NYI" +} + +RetroArch_backupConfigs(){ + cp -vp "$RetroArch_configFile" "$RetroArch_configFile.bak" + find "$RetroArch_coreConfigFolders" -type f -name "*.cfg" -o -type f -name "*.opt" -o -type f -name "*.slangp" -o -type f -name "*.glslp"| while read -r backupfile + do + cp -vp "$backupfile" "$backupfile.bak" + done +} + +#Install +RetroArch_install(){ + + installEmuFP "${RetroArch_emuName}" "${RetroArch_emuPath}" + flatpak override "${RetroArch_emuPath}" --filesystem=host --user + +} + +#ApplyInitialSettings +RetroArch_init(){ + RetroArch_backupConfigs + configEmuFP "${RetroArch_emuName}" "${RetroArch_emuPath}" "true" + RetroArch_setEmulationFolder + RetroArch_setupSaves + RetroArch_installCores + RetroArch_setUpCoreOptAll + +} + +#update +RetroArch_update(){ + RetroArch_backupConfigs + configEmuFP "${RetroArch_emuName}" "${RetroArch_emuPath}" + RetroArch_setEmulationFolder + RetroArch_setupSaves + RetroArch_installCores + RetroArch_setUpCoreOptAll + +} + +#ConfigurePaths +RetroArch_setEmulationFolder(){ + + system_directory='system_directory = ' + system_directorySetting="${system_directory}""\"${biosPath}\"" + changeLine "$system_directory" "$system_directorySetting" "$RetroArch_configFile" + +} + +#SetupSaves +RetroArch_setupSaves(){ + linkToSaveFolder retroarch states "$HOME/.var/app/org.libretro.RetroArch/config/retroarch/states" + linkToSaveFolder retroarch saves "$HOME/.var/app/org.libretro.RetroArch/config/retroarch/saves" +} + + +#SetupStorage +RetroArch_setupStorage(){ + echo "NYI" +} + + +#WipeSettings +RetroArch_wipe(){ + rm -rf "$HOME/.var/app/$RetroArch_emuPath" + # prob not cause roms are here +} + + +#Uninstall +RetroArch_uninstall(){ + flatpak uninstall "$RetroArch_emuPath" --user -y +} + +#setABXYstyle +RetroArch_setABXYstyle(){ + echo "NYI" +} + +#Migrate +RetroArch_migrate(){ + echo "NYI" +} + +#WideScreenOn +RetroArch_wideScreenOn(){ +echo "NYI" +} + +#WideScreenOff +RetroArch_wideScreenOff(){ +echo "NYI" +} + +RetroArch_setOverride(){ + local fileName=$1 + local coreName=$2 + local option=$3 + local value=$4 + local settingLine="$option = $value" + local fullPath="$RetroArch_coreConfigFolders/$coreName" + local configFile="$fullPath/$fileName" + + updateOrAppendConfigLine "$configFile" "$option =" "$settingLine" +} +RetroArch_wswanc_setConfig(){ + RetroArch_setOverride 'wonderswancolor.cfg' 'Beetle Cygne' 'input_player1_analog_dpad_mode' '"1"' + RetroArch_setOverride 'wonderswancolor.cfg' 'Beetle WonderSwan' 'input_player1_analog_dpad_mode' '"1"' +} +RetroArch_wswanc_bezelOn(){ + RetroArch_setOverride 'wonderswancolor.cfg' 'Beetle Cygne' 'input_overlay_enable' '"false"' + RetroArch_setOverride 'wonderswancolor.cfg' 'Beetle WonderSwan' 'input_overlay_enable' '"false"' +} +RetroArch_wswanc_bezelOff(){ + RetroArch_setOverride 'wonderswancolor.cfg' 'Beetle Cygne' 'input_overlay_enable' '"false"' + RetroArch_setOverride 'wonderswancolor.cfg' 'Beetle WonderSwan' 'input_overlay_enable' '"false"' +} +RetroArch_wswanc_MATshaderOn(){ + RetroArch_setOverride 'wonderswancolor.cfg' 'Beetle Cygne' 'video_shader_enable' 'true' + RetroArch_setOverride 'wonderswancolor.cfg' 'Beetle WonderSwan' 'video_shader_enable' 'true' +} + +RetroArch_wswanc_MATshaderOff(){ + RetroArch_setOverride 'wonderswancolor.cfg' 'Beetle Cygne' 'video_shader_enable' 'false' + RetroArch_setOverride 'wonderswancolor.cfg' 'Beetle WonderSwan' 'video_shader_enable' 'false' +} + +RetroArch_wswan_setConfig(){ + RetroArch_setOverride 'wonderswan.cfg' 'Beetle Cygne' 'input_player1_analog_dpad_mode' '"1"' + RetroArch_setOverride 'wonderswan.cfg' 'Beetle WonderSwan' 'input_player1_analog_dpad_mode' '"1"' +} +RetroArch_wswan_bezelOn(){ + RetroArch_setOverride 'wonderswan.cfg' 'Beetle Cygne' 'input_overlay_enable' '"false"' + RetroArch_setOverride 'wonderswan.cfg' 'Beetle WonderSwan' 'input_overlay_enable' '"false"' +} + +RetroArch_wswan_bezelOff(){ + RetroArch_setOverride 'wonderswan.cfg' 'Beetle Cygne' 'input_overlay_enable' '"false"' + RetroArch_setOverride 'wonderswan.cfg' 'Beetle WonderSwan' 'input_overlay_enable' '"false"' +} + +RetroArch_wswan_MATshaderOn(){ + RetroArch_setOverride 'wonderswan.cfg' 'Beetle Cygne' 'video_shader_enable' 'true' + RetroArch_setOverride 'wonderswan.cfg' 'Beetle WonderSwan' 'video_shader_enable' 'true' +} + +RetroArch_wswan_MATshaderOff(){ + RetroArch_setOverride 'wonderswan.cfg' 'Beetle Cygne' 'video_shader_enable' 'false' + RetroArch_setOverride 'wonderswan.cfg' 'Beetle WonderSwan' 'video_shader_enable' 'false' +} + +RetroArch_dolphin_emu_setConfig(){ + RetroArch_setOverride 'dolphin_emu.cfg' 'dolphin_emu' 'video_driver' '"gl"' + RetroArch_setOverride 'dolphin_emu.cfg' 'dolphin_emu' 'video_driver' '"gl"' +} + +RetroArch_PPSSPP_setConfig(){ + RetroArch_setOverride 'psp.cfg' 'PPSSPP' 'ppsspp_auto_frameskip' '"disabled"' + RetroArch_setOverride 'psp.cfg' 'PPSSPP' 'ppsspp_block_transfer_gpu' '"enabled"' + RetroArch_setOverride 'psp.cfg' 'PPSSPP' 'ppsspp_button_preference' '"Cross"' + RetroArch_setOverride 'psp.cfg' 'PPSSPP' 'ppsspp_cheats' '"disabled"' + RetroArch_setOverride 'psp.cfg' 'PPSSPP' 'ppsspp_cpu_core' '"JIT"' + RetroArch_setOverride 'psp.cfg' 'PPSSPP' 'ppsspp_disable_slow_framebuffer_effects' '"disabled"' + RetroArch_setOverride 'psp.cfg' 'PPSSPP' 'ppsspp_fast_memory' '"enabled"' + RetroArch_setOverride 'psp.cfg' 'PPSSPP' 'ppsspp_force_lag_sync' '"disabled"' + RetroArch_setOverride 'psp.cfg' 'PPSSPP' 'ppsspp_frameskip' '"Off"' + RetroArch_setOverride 'psp.cfg' 'PPSSPP' 'ppsspp_frameskiptype' '"Number' + RetroArch_setOverride 'psp.cfg' 'PPSSPP' 'ppsspp_gpu_hardware_transform' '"enabled"' + RetroArch_setOverride 'psp.cfg' 'PPSSPP' 'ppsspp_ignore_bad_memory_access' '"enabled"' + RetroArch_setOverride 'psp.cfg' 'PPSSPP' 'ppsspp_inflight_frames' '"Up' + RetroArch_setOverride 'psp.cfg' 'PPSSPP' 'ppsspp_internal_resolution' '"1440x816"' + RetroArch_setOverride 'psp.cfg' 'PPSSPP' 'ppsspp_io_timing_method' '"Fast"' + RetroArch_setOverride 'psp.cfg' 'PPSSPP' 'ppsspp_language' '"Automatic"' + RetroArch_setOverride 'psp.cfg' 'PPSSPP' 'ppsspp_lazy_texture_caching' '"disabled"' + RetroArch_setOverride 'psp.cfg' 'PPSSPP' 'ppsspp_locked_cpu_speed' '"off"' + RetroArch_setOverride 'psp.cfg' 'PPSSPP' 'ppsspp_lower_resolution_for_effects' '"Off"' + RetroArch_setOverride 'psp.cfg' 'PPSSPP' 'ppsspp_rendering_mode' '"Buffered"' + RetroArch_setOverride 'psp.cfg' 'PPSSPP' 'ppsspp_retain_changed_textures' '"disabled"' + RetroArch_setOverride 'psp.cfg' 'PPSSPP' 'ppsspp_software_skinning' '"enabled"' + RetroArch_setOverride 'psp.cfg' 'PPSSPP' 'ppsspp_spline_quality' '"Low"' + RetroArch_setOverride 'psp.cfg' 'PPSSPP' 'ppsspp_texture_anisotropic_filtering' '"off"' + RetroArch_setOverride 'psp.cfg' 'PPSSPP' 'ppsspp_texture_deposterize' '"disabled"' + RetroArch_setOverride 'psp.cfg' 'PPSSPP' 'ppsspp_texture_filtering' '"Auto"' + RetroArch_setOverride 'psp.cfg' 'PPSSPP' 'ppsspp_texture_replacement' '"enabled"' + RetroArch_setOverride 'psp.cfg' 'PPSSPP' 'ppsspp_texture_scaling_level' '"Off"' + RetroArch_setOverride 'psp.cfg' 'PPSSPP' 'ppsspp_texture_scaling_type' '"xbrz"' + RetroArch_setOverride 'psp.cfg' 'PPSSPP' 'ppsspp_texture_shader' '"Off"' + RetroArch_setOverride 'psp.cfg' 'PPSSPP' 'ppsspp_vertex_cache' '"disabled"' +} + +RetroArch_pcengine_setConfig(){ + RetroArch_setOverride 'pcengine.cfg' 'Beetle PCE Fast' 'input_player1_analog_dpad_mode' '"1"' + RetroArch_setOverride 'pcengine.cfg' 'Beetle PCE' 'input_player1_analog_dpad_mode' '"1"' +} +RetroArch_pcengine_bezelOn(){ + RetroArch_setOverride 'pcengine.cfg' 'Beetle PCE Fast' 'aspect_ratio_index' '"21"' + RetroArch_setOverride 'pcengine.cfg' 'Beetle PCE Fast' 'custom_viewport_height' '"1200"' + RetroArch_setOverride 'pcengine.cfg' 'Beetle PCE Fast' 'custom_viewport_x' '"0"' + RetroArch_setOverride 'pcengine.cfg' 'Beetle PCE Fast' 'input_overlay' '"~/.var/app/org.libretro.RetroArch/config/retroarch/overlays/pegasus/pcengine.cfg"' + RetroArch_setOverride 'pcengine.cfg' 'Beetle PCE Fast' 'input_overlay_aspect_adjust_landscape' '"-0.150000"' + RetroArch_setOverride 'pcengine.cfg' 'Beetle PCE Fast' 'input_overlay_enable' '"true"' + RetroArch_setOverride 'pcengine.cfg' 'Beetle PCE Fast' 'input_overlay_scale_landscape' '"1.075000"' + + RetroArch_setOverride 'pcengine.cfg' 'Beetle PCE' 'aspect_ratio_index' '"21"' + RetroArch_setOverride 'pcengine.cfg' 'Beetle PCE' 'custom_viewport_height' '"1200"' + RetroArch_setOverride 'pcengine.cfg' 'Beetle PCE' 'custom_viewport_x' '"0"' + RetroArch_setOverride 'pcengine.cfg' 'Beetle PCE' 'input_overlay' '"~/.var/app/org.libretro.RetroArch/config/retroarch/overlays/pegasus/pcengine.cfg"' + RetroArch_setOverride 'pcengine.cfg' 'Beetle PCE' 'input_overlay_aspect_adjust_landscape' '"-0.150000"' + RetroArch_setOverride 'pcengine.cfg' 'Beetle PCE' 'input_overlay_enable' '"true"' + RetroArch_setOverride 'pcengine.cfg' 'Beetle PCE' 'input_overlay_scale_landscape' '"1.075000"' + +} + +RetroArch_pcengine_bezelOff(){ + RetroArch_setOverride 'pcengine.cfg' 'Beetle PCE Fast' 'input_overlay_enable' '"false"' + + RetroArch_setOverride 'pcengine.cfg' 'Beetle PCE' 'input_overlay_enable' '"false"' +} + +RetroArch_pcengine_CRTshaderOn(){ + RetroArch_setOverride 'pcengine.cfg' 'Beetle PCE Fast' 'video_shader_enable' '"true"' + RetroArch_setOverride 'pcengine.cfg' 'Beetle PCE' 'video_shader_enable' '"true"' +} + +RetroArch_npcengine_CRTshaderOff(){ + RetroArch_setOverride 'pcengine.cfg' 'Beetle PCE Fast' 'video_shader_enable' '"false"' + RetroArch_setOverride 'pcengine.cfg' 'Beetle PCE' 'video_shader_enable' '"false"' +} + +RetroArch_nes_setConfig(){ + RetroArch_setOverride 'nes.cfg' 'Mesen' 'input_player1_analog_dpad_mode' '"1"' + RetroArch_setOverride 'nes.cfg' 'Nestopia' 'input_player1_analog_dpad_mode' '"1"' +} + +RetroArch_nes_bezelOn(){ + RetroArch_setOverride 'nes.cfg' 'Mesen' 'input_overlay' '"~/.var/app/org.libretro.RetroArch/config/retroarch/overlays/pegasus/nes.cfg"' + RetroArch_setOverride 'nes.cfg' 'Mesen' 'input_overlay_auto_scale' '"false"' + RetroArch_setOverride 'nes.cfg' 'Mesen' 'input_overlay_enable' '"true"' + RetroArch_setOverride 'nes.cfg' 'Mesen' 'input_overlay_opacity' '"0.700000"' + RetroArch_setOverride 'nes.cfg' 'Mesen' 'input_overlay_scale_landscape' '"1.070000"' + RetroArch_setOverride 'nes.cfg' 'Mesen' 'input_overlay_aspect_adjust_landscape' '"0.100000"' + RetroArch_setOverride 'nes.cfg' 'Mesen' 'video_scale_integer' '"false"' + RetroArch_setOverride 'nes.cfg' 'Mesen' 'aspect_ratio_index' '"0"' + + + + RetroArch_setOverride 'nes.cfg' 'Nestopia' 'input_overlay' '"~/.var/app/org.libretro.RetroArch/config/retroarch/overlays/pegasus/nes.cfg"' + RetroArch_setOverride 'nes.cfg' 'Nestopia' 'input_overlay_auto_scale' '"false"' + RetroArch_setOverride 'nes.cfg' 'Nestopia' 'input_overlay_enable' '"true"' + RetroArch_setOverride 'nes.cfg' 'Nestopia' 'input_overlay_opacity' '"0.700000"' + RetroArch_setOverride 'nes.cfg' 'Nestopia' 'input_overlay_scale_landscape' '"1.070000"' + RetroArch_setOverride 'nes.cfg' 'Nestopia' 'input_overlay_aspect_adjust_landscape' '"0.100000"' + RetroArch_setOverride 'nes.cfg' 'Nestopia' 'video_scale_integer' '"false"' + RetroArch_setOverride 'nes.cfg' 'Nestopia' 'aspect_ratio_index' '"0"' +} + +RetroArch_nes_bezelOff(){ + RetroArch_setOverride 'nes.cfg' 'Nestopia' 'input_overlay_enable' '"false"' + RetroArch_setOverride 'nes.cfg' 'Mesen' 'input_overlay_enable' '"false"' +} + +RetroArch_nes_CRTshaderOn(){ + RetroArch_setOverride 'nes.cfg' 'Mesen' 'video_shader_enable' '"true"' + RetroArch_setOverride 'nes.cfg' 'Nestopia' 'video_shader_enable' '"true"' +} + +RetroArch_nes_CRTshaderOff(){ + RetroArch_setOverride 'nes.cfg' 'Mesen' 'video_shader_enable' '"false"' + RetroArch_setOverride 'nes.cfg' 'Nestopia' 'video_shader_enable' '"false"' +} + +RetroArch_nes_ar43(){ + RetroArch_nes_bezelOn + RetroArch_setOverride 'nes.cfg' 'Nestopia' 'aspect_ratio_index' '"0"' + RetroArch_setOverride 'nes.cfg' 'Mesen' 'aspect_ratio_index' '"0"' +} + +RetroArch_nes_ar87(){ + RetroArch_setOverride 'nes.cfg' 'Nestopia' 'input_overlay_scale_landscape' '"1.380000"' + RetroArch_setOverride 'nes.cfg' 'Nestopia' 'input_overlay_aspect_adjust_landscape' '"-0.170000"' + RetroArch_setOverride 'nes.cfg' 'Nestopia' 'aspect_ratio_index' '"15"' + RetroArch_setOverride 'nes.cfg' 'Mesen' 'input_overlay_scale_landscape' '"1.380000"' + RetroArch_setOverride 'nes.cfg' 'Mesen' 'input_overlay_aspect_adjust_landscape' '"-0.170000"' + RetroArch_setOverride 'nes.cfg' 'Mesen' 'aspect_ratio_index' '"15"' +} + +RetroArch_nes_ar32(){ + RetroArch_setOverride 'nes.cfg' 'Nestopia' 'aspect_ratio_index' '"7"' + RetroArch_setOverride 'nes.cfg' 'Mesen' 'aspect_ratio_index' '"7"' + RetroArch_nes_bezelOff +} + +RetroArch_Mupen64Plus_Next_setConfig(){ + RetroArch_setOverride 'n64.cfg' 'Mupen64Plus-Next' 'aspect_ratio_index' '"0"' + RetroArch_setOverride 'n64.cfg' 'Mupen64Plus-Next' 'video_crop_overscan' '"false"' + RetroArch_setOverride 'n64.cfg' 'Mupen64Plus-Next' 'video_smooth' '"true"' +} + +RetroArch_n64_CRTshaderOn(){ + RetroArch_setOverride 'n64.cfg' 'Mupen64Plus-Next' 'video_shader_enable' '"true"' +} + +RetroArch_n64_CRTshaderOff(){ + RetroArch_setOverride 'n64.cfg' 'Mupen64Plus-Next' 'video_shader_enable' '"false"' +} + +RetroArch_lynx_setConfig(){ + RetroArch_setOverride 'lynx.cfg' 'Beetle Lynx' 'input_player1_analog_dpad_mode' '"1"' + RetroArch_setOverride 'atarilynx.cfg' 'Handy' 'input_player1_analog_dpad_mode' '"1"' +} + +RetroArch_lynx_bezelOn(){ + RetroArch_setOverride 'lynx.cfg' 'Beetle Lynx' 'aspect_ratio_index' '"21"' + RetroArch_setOverride 'lynx.cfg' 'Beetle Lynx' 'input_overlay' '"~/.var/app/org.libretro.RetroArch/config/retroarch/overlays/pegasus/lynx.cfg"' + RetroArch_setOverride 'lynx.cfg' 'Beetle Lynx' 'input_overlay_auto_scale' '"false"' + RetroArch_setOverride 'lynx.cfg' 'Beetle Lynx' 'input_overlay_enable' '"true"' + RetroArch_setOverride 'lynx.cfg' 'Beetle Lynx' 'input_overlay_opacity' '"0.700000"' + RetroArch_setOverride 'lynx.cfg' 'Beetle Lynx' 'input_overlay_scale_landscape' '"1.170000"' + RetroArch_setOverride 'lynx.cfg' 'Beetle Lynx' 'video_scale_integer' '"false"' + + RetroArch_setOverride 'atarilynx.cfg' 'Handy' 'aspect_ratio_index' '"21"' + RetroArch_setOverride 'atarilynx.cfg' 'Handy' 'input_overlay' '"~/.var/app/org.libretro.RetroArch/config/retroarch/overlays/pegasus/lynx.cfg"' + RetroArch_setOverride 'atarilynx.cfg' 'Handy' 'input_overlay_auto_scale' '"false"' + RetroArch_setOverride 'atarilynx.cfg' 'Handy' 'input_overlay_enable' '"true"' + RetroArch_setOverride 'atarilynx.cfg' 'Handy' 'input_overlay_opacity' '"0.700000"' + RetroArch_setOverride 'atarilynx.cfg' 'Handy' 'input_overlay_scale_landscape' '"1.170000"' + RetroArch_setOverride 'atarilynx.cfg' 'Handy' 'video_scale_integer' '"false"' +} +RetroArch_lynx_bezelOff(){ + RetroArch_setOverride 'lynx.cfg' 'Beetle Lynx' 'input_overlay_enable' '"false"' + RetroArch_setOverride 'atarilynx.cfg' 'Handy' 'input_overlay_enable' '"false"' +} +RetroArch_lynx_MATshaderOn(){ + RetroArch_setOverride 'lynx.cfg' 'Beetle Lynx' 'video_shader_enable' 'true' + RetroArch_setOverride 'atarilynx.cfg' 'Handy' 'video_shader_enable' 'true' +} + +RetroArch_lynx_MATshaderOff(){ + RetroArch_setOverride 'lynx.cfg' 'Beetle Lynx' 'video_shader_enable' 'false' + RetroArch_setOverride 'atarilynx.cfg' 'Handy' 'video_shader_enable' 'false' +} + +RetroArch_SameBoy_gb_setConfig(){ + RetroArch_setOverride 'gb.cfg' 'SameBoy' 'input_player1_analog_dpad_mode' '"1"' + RetroArch_setOverride 'gb.cfg' 'SameBoy' 'gambatte_dark_filter_level' '"0"' + RetroArch_setOverride 'gb.cfg' 'SameBoy' 'gambatte_gb_bootloader' '"enabled"' + RetroArch_setOverride 'gb.cfg' 'SameBoy' 'gambatte_gb_colorization' '"internal"' + RetroArch_setOverride 'gb.cfg' 'SameBoy' 'gambatte_gb_hwmode' '"Auto"' + RetroArch_setOverride 'gb.cfg' 'SameBoy' 'gambatte_gb_internal_palette' '"GB' + RetroArch_setOverride 'gb.cfg' 'SameBoy' 'gambatte_gb_link_mode' '"Not' + RetroArch_setOverride 'gb.cfg' 'SameBoy' 'gambatte_gb_link_network_port' '"56400"' + RetroArch_setOverride 'gb.cfg' 'SameBoy' 'gambatte_gb_link_network_server_ip_1' '"0"' + RetroArch_setOverride 'gb.cfg' 'SameBoy' 'gambatte_gb_link_network_server_ip_10' '"0"' + RetroArch_setOverride 'gb.cfg' 'SameBoy' 'gambatte_gb_link_network_server_ip_11' '"0"' + RetroArch_setOverride 'gb.cfg' 'SameBoy' 'gambatte_gb_link_network_server_ip_12' '"0"' + RetroArch_setOverride 'gb.cfg' 'SameBoy' 'gambatte_gb_link_network_server_ip_2' '"0"' + RetroArch_setOverride 'gb.cfg' 'SameBoy' 'gambatte_gb_link_network_server_ip_3' '"0"' + RetroArch_setOverride 'gb.cfg' 'SameBoy' 'gambatte_gb_link_network_server_ip_4' '"0"' + RetroArch_setOverride 'gb.cfg' 'SameBoy' 'gambatte_gb_link_network_server_ip_5' '"0"' + RetroArch_setOverride 'gb.cfg' 'SameBoy' 'gambatte_gb_link_network_server_ip_6' '"0"' + RetroArch_setOverride 'gb.cfg' 'SameBoy' 'gambatte_gb_link_network_server_ip_7' '"0"' + RetroArch_setOverride 'gb.cfg' 'SameBoy' 'gambatte_gb_link_network_server_ip_8' '"0"' + RetroArch_setOverride 'gb.cfg' 'SameBoy' 'gambatte_gb_link_network_server_ip_9' '"0"' + RetroArch_setOverride 'gb.cfg' 'SameBoy' 'gambatte_gb_palette_twb64_1' '"TWB64' + RetroArch_setOverride 'gb.cfg' 'SameBoy' 'gambatte_gb_palette_twb64_2' '"TWB64' + RetroArch_setOverride 'gb.cfg' 'SameBoy' 'gambatte_mix_frames' '"disabled"' + RetroArch_setOverride 'gb.cfg' 'SameBoy' 'gambatte_rumble_level' '"10"' + RetroArch_setOverride 'gb.cfg' 'SameBoy' 'gambatte_show_gb_link_settings' '"disabled"' + RetroArch_setOverride 'gb.cfg' 'SameBoy' 'gambatte_turbo_period' '"4"' + RetroArch_setOverride 'gb.cfg' 'SameBoy' 'gambatte_up_down_allowed' '"disabled"' +} + +RetroArch_ngp_setConfig(){ + RetroArch_setOverride 'ngp.cfg' 'Beetle NeoPop' 'input_player1_analog_dpad_mode' '"1"' +} + +RetroArch_ngp_bezelOn(){ + RetroArch_setOverride 'ngp.cfg' 'Beetle NeoPop' 'aspect_ratio_index' '"21"' + RetroArch_setOverride 'ngp.cfg' 'Beetle NeoPop' 'input_overlay' '"~/.var/app/org.libretro.RetroArch/config/retroarch/overlays/pegasus/ngpc.cfg"' + RetroArch_setOverride 'ngp.cfg' 'Beetle NeoPop' 'input_overlay_aspect_adjust_landscape' '"-0.310000"' + RetroArch_setOverride 'ngp.cfg' 'Beetle NeoPop' 'input_overlay_auto_scale' '"false"' + RetroArch_setOverride 'ngp.cfg' 'Beetle NeoPop' 'input_overlay_enable' '"true"' + RetroArch_setOverride 'ngp.cfg' 'Beetle NeoPop' 'input_overlay_hide_in_menu' '"false"' + RetroArch_setOverride 'ngp.cfg' 'Beetle NeoPop' 'input_overlay_scale_landscape' '"1.625000"' + RetroArch_setOverride 'ngp.cfg' 'Beetle NeoPop' 'input_overlay_x_separation_portrait' '"-0.010000"' + RetroArch_setOverride 'ngp.cfg' 'Beetle NeoPop' 'input_overlay_y_offset_landscape' '"-0.135000"' +} + +RetroArch_ngp_bezelOff(){ + RetroArch_setOverride 'ngp.cfg' 'Beetle NeoPop' 'input_overlay_enable' '"false"' +} + +RetroArch_ngp_MATshaderOn(){ + RetroArch_setOverride 'ngp.cfg' 'Beetle NeoPop' 'video_shader_enable' 'true' +} + +RetroArch_ngp_MATshaderOff(){ + RetroArch_setOverride 'ngp.cfg' 'Beetle NeoPop' 'video_shader_enable' 'false' +} + +RetroArch_ngpc_setConfig(){ + RetroArch_setOverride 'ngpc.cfg' 'Beetle NeoPop' 'input_player1_analog_dpad_mode' '"1"' +} + +RetroArch_ngpc_bezelOn(){ + RetroArch_setOverride 'ngpc.cfg' 'Beetle NeoPop' 'aspect_ratio_index' '"21"' + RetroArch_setOverride 'ngpc.cfg' 'Beetle NeoPop' 'input_overlay' '"~/.var/app/org.libretro.RetroArch/config/retroarch/overlays/pegasus/ngpc.cfg"' + RetroArch_setOverride 'ngpc.cfg' 'Beetle NeoPop' 'input_overlay_aspect_adjust_landscape' '"-0.170000"' + RetroArch_setOverride 'ngpc.cfg' 'Beetle NeoPop' 'input_overlay_auto_scale' '"false"' + RetroArch_setOverride 'ngpc.cfg' 'Beetle NeoPop' 'input_overlay_enable' '"true"' + RetroArch_setOverride 'ngpc.cfg' 'Beetle NeoPop' 'input_overlay_scale_landscape' '"1.615000"' + RetroArch_setOverride 'ngpc.cfg' 'Beetle NeoPop' 'input_overlay_x_separation_portrait' '"-0.010000"' + RetroArch_setOverride 'ngpc.cfg' 'Beetle NeoPop' 'input_overlay_y_offset_landscape' '"-0.135000"' +} + +RetroArch_ngpc_bezelOff(){ + RetroArch_setOverride 'ngpc.cfg' 'Beetle NeoPop' 'input_overlay_enable' '"false"' +} + +RetroArch_ngpc_MATshaderOn(){ + RetroArch_setOverride 'ngpc.cfg' 'Beetle NeoPop' 'video_shader_enable' 'true' +} + +RetroArch_ngpc_MATshaderOff(){ + RetroArch_setOverride 'ngpc.cfg' 'Beetle NeoPop' 'video_shader_enable' 'false' +} + +RetroArch_atari2600_setConfig(){ + RetroArch_setOverride 'atari2600.cfg' 'Stella' 'input_player1_analog_dpad_mode' '"1"' +} + +RetroArch_atari2600_bezelOn(){ + RetroArch_setOverride 'atari2600.cfg' 'Stella' 'input_overlay' '"~/.var/app/org.libretro.RetroArch/config/retroarch/overlays/pegasus/atari2600.cfg"' + RetroArch_setOverride 'atari2600.cfg' 'Stella' 'input_overlay_enable' '"true"' + RetroArch_setOverride 'atari2600.cfg' 'Stella' 'input_overlay_aspect_adjust_landscape' '"0.095000"' + RetroArch_setOverride 'atari2600.cfg' 'Stella' 'input_overlay_scale_landscape' '"1.070000"' + RetroArch_setOverride 'atari2600.cfg' 'Stella' 'aspect_ratio_index' '"0"' +} + +RetroArch_atari2600_bezelOff(){ + RetroArch_setOverride 'atari2600.cfg' 'Stella' 'input_overlay_enable' '"false"' +} + +RetroArch_atari2600_CRTshaderOn(){ + RetroArch_setOverride 'atari2600.cfg' 'Stella' 'video_shader_enable' 'true' +} + +RetroArch_atari2600_CRTshaderOff(){ + RetroArch_setOverride 'atari2600.cfg' 'Stella' 'video_shader_enable' '"false"' +} + +RetroArch_mame_setConfig(){ + RetroArch_setOverride 'mame.cfg' 'MAME 2003-Plus' 'input_player1_analog_dpad_mode' '"1"' + RetroArch_setOverride 'mame.cfg' 'MAME' 'input_player1_analog_dpad_mode' '"1"' +} + +RetroArch_mame_bezelOn(){ + RetroArch_setOverride 'mame.cfg' 'MAME 2003-Plus' 'input_overlay_enable' '"false"' + RetroArch_setOverride 'mame.cfg' 'MAME' 'input_overlay_enable' '"false"' +} + +RetroArch_mame_bezelOff(){ + RetroArch_setOverride 'mame.cfg' 'MAME 2003-Plus' 'input_overlay_enable' '"false"' + RetroArch_setOverride 'mame.cfg' 'MAME' 'input_overlay_enable' '"false"' +} + +RetroArch_mame_CRTshaderOn(){ + RetroArch_setOverride 'mame.cfg' 'MAME 2003-Plus' 'video_shader_enable' 'true' + RetroArch_setOverride 'mame.cfg' 'MAME' 'video_shader_enable' 'true' +} + +RetroArch_mame_CRTshaderOff(){ + RetroArch_setOverride 'mame.cfg' 'MAME 2003-Plus' 'video_shader_enable' 'false' + RetroArch_setOverride 'mame.cfg' 'MAME' 'video_shader_enable' 'false' +} + +RetroArch_segacd_setConfig(){ + RetroArch_setOverride 'megacd.cfg' 'Genesis Plus GX' 'input_player1_analog_dpad_mode' '"1"' + RetroArch_setOverride 'segacd.cfg' 'Genesis Plus GX' 'input_player1_analog_dpad_mode' '"1"' +} + +RetroArch_segacd_bezelOn(){ + RetroArch_setOverride 'megacd.cfg' 'Genesis Plus GX' 'input_overlay' '"~/.var/app/org.libretro.RetroArch/config/retroarch/overlays/pegasus/segacd.cfg"' + RetroArch_setOverride 'megacd.cfg' 'Genesis Plus GX' 'input_overlay_auto_scale' '"false"' + RetroArch_setOverride 'megacd.cfg' 'Genesis Plus GX' 'input_overlay_enable' '"true"' + RetroArch_setOverride 'megacd.cfg' 'Genesis Plus GX' 'input_overlay_hide_in_menu' '"false"' + RetroArch_setOverride 'megacd.cfg' 'Genesis Plus GX' 'input_overlay_scale_landscape' '"1.170000' + RetroArch_setOverride 'megacd.cfg' 'Genesis Plus GX' 'aspect_ratio_index' '"0"' + + RetroArch_setOverride 'segacd.cfg' 'Genesis Plus GX' 'input_overlay' '"~/.var/app/org.libretro.RetroArch/config/retroarch/overlays/pegasus/segacd.cfg"' + RetroArch_setOverride 'segacd.cfg' 'Genesis Plus GX' 'input_overlay_auto_scale' '"false"' + RetroArch_setOverride 'segacd.cfg' 'Genesis Plus GX' 'input_overlay_enable' '"true"' + RetroArch_setOverride 'segacd.cfg' 'Genesis Plus GX' 'input_overlay_hide_in_menu' '"false"' + RetroArch_setOverride 'segacd.cfg' 'Genesis Plus GX' 'input_overlay_scale_landscape' '"1.170000' + RetroArch_setOverride 'segacd.cfg' 'Genesis Plus GX' 'aspect_ratio_index' '"0"' +} +RetroArch_segacd_bezelOff(){ + RetroArch_setOverride 'megacd.cfg' 'Genesis Plus GX' 'input_overlay_enable' '"false"' + RetroArch_setOverride 'segacd.cfg' 'Genesis Plus GX' 'input_overlay_enable' '"false"' +} + +RetroArch_segacd_CRTshaderOn(){ + RetroArch_setOverride 'segacd.cfg' 'Genesis Plus GX' 'video_shader_enable' '"true"' + RetroArch_setOverride 'megacd.cfg' 'Genesis Plus GX' 'video_shader_enable' '"true"' +} + +RetroArch_segacd_CRTshaderOff(){ + RetroArch_setOverride 'segacd.cfg' 'Genesis Plus GX' 'video_shader_enable' '"false"' + RetroArch_setOverride 'megacd.cfg' 'Genesis Plus GX' 'video_shader_enable' '"false"' +} + + +RetroArch_segacd_ar32(){ + RetroArch_setOverride 'segacd.cfg' 'Genesis Plus GX' 'aspect_ratio_index' '"7"' + RetroArch_setOverride 'megacd.cfg' 'Genesis Plus GX' 'aspect_ratio_index' '"7"' + RetroArch_segacd_bezelOff +} +RetroArch_segacd_ar43(){ + RetroArch_setOverride 'segacd.cfg' 'Genesis Plus GX' 'aspect_ratio_index' '"21"' + RetroArch_setOverride 'megacd.cfg' 'Genesis Plus GX' 'aspect_ratio_index' '"21"' +} + +RetroArch_genesis_setConfig(){ + RetroArch_setOverride 'genesis.cfg' 'Genesis Plus GX' 'input_player1_analog_dpad_mode' '"1"' + RetroArch_setOverride 'megadrive.cfg' 'Genesis Plus GX' 'input_player1_analog_dpad_mode' '"1"' +} + +RetroArch_genesis_bezelOn(){ + RetroArch_setOverride 'genesis.cfg' 'Genesis Plus GX' 'input_overlay' '"~/.var/app/org.libretro.RetroArch/config/retroarch/overlays/pegasus/genesis.cfg"' + RetroArch_setOverride 'genesis.cfg' 'Genesis Plus GX' 'input_overlay_auto_scale' '"false"' + RetroArch_setOverride 'genesis.cfg' 'Genesis Plus GX' 'input_overlay_enable' '"true"' + RetroArch_setOverride 'genesis.cfg' 'Genesis Plus GX' 'input_overlay_scale_landscape' '"1.170000"' + RetroArch_setOverride 'genesis.cfg' 'Genesis Plus GX' 'aspect_ratio_index' '"0"' + + RetroArch_setOverride 'megadrive.cfg' 'Genesis Plus GX' 'input_overlay' '"~/.var/app/org.libretro.RetroArch/config/retroarch/overlays/pegasus/genesis.cfg"' + RetroArch_setOverride 'megadrive.cfg' 'Genesis Plus GX' 'input_overlay_auto_scale' '"false"' + RetroArch_setOverride 'megadrive.cfg' 'Genesis Plus GX' 'input_overlay_enable' '"true"' + RetroArch_setOverride 'megadrive.cfg' 'Genesis Plus GX' 'input_overlay_scale_landscape' '"1.170000"' + RetroArch_setOverride 'megadrive.cfg' 'Genesis Plus GX' 'aspect_ratio_index' '"0"' + +} + +RetroArch_genesis_bezelOff(){ + RetroArch_setOverride 'megadrive.cfg' 'Genesis Plus GX' 'input_overlay_enable' '"false"' + RetroArch_setOverride 'genesis.cfg' 'Genesis Plus GX' 'input_overlay_enable' '"false"' +} + +RetroArch_genesis_ar32(){ + RetroArch_setOverride 'genesis.cfg' 'Genesis Plus GX' 'aspect_ratio_index' '"7"' + RetroArch_setOverride 'megadrive.cfg' 'Genesis Plus GX' 'aspect_ratio_index' '"7"' + RetroArch_genesis_bezelOff +} + +RetroArch_genesis_ar43(){ + RetroArch_setOverride 'genesis.cfg' 'Genesis Plus GX' 'aspect_ratio_index' '"21"' + RetroArch_setOverride 'megadrive.cfg' 'Genesis Plus GX' 'aspect_ratio_index' '"21"' +} + +RetroArch_genesis_CRTshaderOn(){ + RetroArch_setOverride 'genesis.cfg' 'Genesis Plus GX' 'video_shader_enable' '"true"' + RetroArch_setOverride 'megadrive.cfg' 'Genesis Plus GX' 'video_shader_enable' '"true"' +} + +RetroArch_genesis_CRTshaderOff(){ + RetroArch_setOverride 'genesis.cfg' 'Genesis Plus GX' 'video_shader_enable' '"false"' + RetroArch_setOverride 'megadrive.cfg' 'Genesis Plus GX' 'video_shader_enable' '"false"' +} + +RetroArch_gamegear_setConfig(){ + RetroArch_setOverride 'gamegear.cfg' 'Genesis Plus GX' 'input_player1_analog_dpad_mode' '"1"' + RetroArch_setOverride 'gamegear.cfg' 'Gearsystem' 'input_player1_analog_dpad_mode' '"1"' +} + +RetroArch_gamegear_bezelOn(){ + RetroArch_setOverride 'gamegear.cfg' 'Genesis Plus GX' 'aspect_ratio_index' '"21"' + RetroArch_setOverride 'gamegear.cfg' 'Genesis Plus GX' 'input_overlay' '"~/.var/app/org.libretro.RetroArch/config/retroarch/overlays/pegasus/gg.cfg"' + RetroArch_setOverride 'gamegear.cfg' 'Genesis Plus GX' 'input_overlay_aspect_adjust_landscape' '"-0.115000"' + RetroArch_setOverride 'gamegear.cfg' 'Genesis Plus GX' 'input_overlay_auto_scale' '"false"' + RetroArch_setOverride 'gamegear.cfg' 'Genesis Plus GX' 'input_overlay_enable' '"true"' + RetroArch_setOverride 'gamegear.cfg' 'Genesis Plus GX' 'input_overlay_scale_landscape' '"1.545000"' + + RetroArch_setOverride 'gamegear.cfg' 'Gearsystem' 'aspect_ratio_index' '"21"' + RetroArch_setOverride 'gamegear.cfg' 'Gearsystem' 'input_overlay' '"~/.var/app/org.libretro.RetroArch/config/retroarch/overlays/pegasus/gg.cfg"' + RetroArch_setOverride 'gamegear.cfg' 'Gearsystem' 'input_overlay_aspect_adjust_landscape' '"-0.115000"' + RetroArch_setOverride 'gamegear.cfg' 'Gearsystem' 'input_overlay_auto_scale' '"false"' + RetroArch_setOverride 'gamegear.cfg' 'Gearsystem' 'input_overlay_enable' '"true"' + RetroArch_setOverride 'gamegear.cfg' 'Gearsystem' 'input_overlay_scale_landscape' '"1.545000"' +} + +RetroArch_gamegear_bezelOff(){ + RetroArch_setOverride 'gamegear.cfg' 'Genesis Plus GX' 'input_overlay_enable' '"false"' + + RetroArch_setOverride 'gamegear.cfg' 'Gearsystem' 'input_overlay_enable' '"false"' +} + +RetroArch_gamegear_MATshaderOn(){ + RetroArch_setOverride 'gamegear.cfg' 'Genesis Plus GX' 'video_shader_enable' '"true"' + RetroArch_setOverride 'gamegear.cfg' 'Gearsystem' 'video_shader_enable' '"true"' +} + +RetroArch_gamegear_MATshaderOff(){ + RetroArch_setOverride 'gamegear.cfg' 'Genesis Plus GX' 'video_shader_enable' '"false"' + RetroArch_setOverride 'gamegear.cfg' 'Gearsystem' 'video_shader_enable' '"false"' +} + +RetroArch_mastersystem_setConfig(){ + RetroArch_setOverride 'mastersystem.cfg' 'Genesis Plus GX' 'input_player1_analog_dpad_mode' '"1"' +} + +RetroArch_mastersystem_bezelOn(){ + RetroArch_setOverride 'mastersystem.cfg' 'Genesis Plus GX' 'aspect_ratio_index' '"21"' + RetroArch_setOverride 'mastersystem.cfg' 'Genesis Plus GX' 'input_overlay' '"~/.var/app/org.libretro.RetroArch/config/retroarch/overlays/pegasus/mastersystem.cfg"' + RetroArch_setOverride 'mastersystem.cfg' 'Genesis Plus GX' 'input_overlay_auto_scale' '"false"' + RetroArch_setOverride 'mastersystem.cfg' 'Genesis Plus GX' 'input_overlay_enable' '"true"' + RetroArch_setOverride 'mastersystem.cfg' 'Genesis Plus GX' 'input_overlay_scale_landscape' '"1.170000"' +} + +RetroArch_mastersystem_bezelOff(){ + RetroArch_setOverride 'mastersystem.cfg' 'Genesis Plus GX' 'input_overlay_enable' '"false"' +} + +RetroArch_mastersystem_ar32(){ + RetroArch_setOverride 'mastersystem.cfg' 'Genesis Plus GX' 'aspect_ratio_index' '"7"' + RetroArch_mastersystem_bezelOff +} + +RetroArch_mastersystem_CRTshaderOn(){ + RetroArch_setOverride 'mastersystem.cfg' 'Genesis Plus GX' 'video_shader_enable' '"true"' +} + +RetroArch_mastersystem_CRTshaderOff(){ + RetroArch_setOverride 'mastersystem.cfg' 'Genesis Plus GX' 'video_shader_enable' '"false"' +} + +RetroArch_mastersystem_ar43(){ + RetroArch_setOverride 'mastersystem.cfg' 'Genesis Plus GX' 'aspect_ratio_index' '"21"' +} +RetroArch_sega32x_setConfig(){ + RetroArch_setOverride 'sega32x.cfg' 'PicoDrive' 'input_player1_analog_dpad_mode' '"1"' +} +RetroArch_sega32x_bezelOn(){ + RetroArch_setOverride 'sega32x.cfg' 'PicoDrive' 'input_overlay' '"~/.var/app/org.libretro.RetroArch/config/retroarch/overlays/pegasus/sega32x.cfg"' + RetroArch_setOverride 'sega32x.cfg' 'PicoDrive' 'input_overlay_auto_scale' '"false"' + RetroArch_setOverride 'sega32x.cfg' 'PicoDrive' 'input_overlay_enable' '"true"' + RetroArch_setOverride 'sega32x.cfg' 'PicoDrive' 'input_overlay_hide_in_menu' '"false"' + RetroArch_setOverride 'sega32x.cfg' 'PicoDrive' 'input_overlay_scale_landscape' '"1.070000"' + RetroArch_setOverride 'sega32x.cfg' 'PicoDrive' 'input_overlay_aspect_adjust_landscape' '"0.095000"' + RetroArch_setOverride 'sega32x.cfg' 'PicoDrive' 'aspect_ratio_index' '"0"' +} + +RetroArch_sega32x_bezelOff(){ + RetroArch_setOverride 'sega32x.cfg' 'PicoDrive' 'input_overlay_enable' '"false"' +} + +RetroArch_sega32x_CRTshaderOn(){ + RetroArch_setOverride 'sega32x.cfg' 'PicoDrive' 'video_shader_enable' '"true"' +} + +RetroArch_sega32x_CRTshaderOff(){ + RetroArch_setOverride 'sega32x.cfg' 'PicoDrive' 'video_shader_enable' '"false"' +} + +RetroArch_sega32x_ar32(){ + RetroArch_setOverride 'sega32x.cfg' 'PicoDrive' 'aspect_ratio_index' '"7"' + RetroArch_sega32x_bezelOff +} + +RetroArch_sega32x_ar43(){ + RetroArch_setOverride 'sega32x.cfg' 'PicoDrive' 'aspect_ratio_index' '"21"' + RetroArch_sega32x_bezelOff +} + +#RetroArch_gba_bezelOn(){ +# #missing stuff? +# RetroArch_setOverride 'gba.cfg' 'mGBA' 'aspect_ratio_index' '"21"' +#} +RetroArch_gba_setConfig(){ + RetroArch_setOverride 'gba.cfg' 'mGBA' 'input_player1_analog_dpad_mode' '"1"' +} +RetroArch_gba_MATshaderOn(){ + RetroArch_setOverride 'gba.cfg' 'mGBA' 'video_shader_enable' '"true"' +} + +RetroArch_gba_MATshaderOff(){ + RetroArch_setOverride 'gba.cfg' 'mGBA' 'video_shader_enable' '"false"' +} + +RetroArch_gb_bezelOn(){ + RetroArch_setOverride 'gb.cfg' 'SameBoy' 'aspect_ratio_index' '"21"' + RetroArch_setOverride 'gb.cfg' 'SameBoy' 'input_overlay' '"~/.var/app/org.libretro.RetroArch/config/retroarch/overlays/pegasus/gb.cfg"' + RetroArch_setOverride 'gb.cfg' 'SameBoy' 'input_overlay_auto_scale' '"false"' + RetroArch_setOverride 'gb.cfg' 'SameBoy' 'input_overlay_enable' '"true"' + RetroArch_setOverride 'gb.cfg' 'SameBoy' 'input_overlay_scale_landscape' '"1.860000"' + RetroArch_setOverride 'gb.cfg' 'SameBoy' 'input_overlay_y_offset_landscape' '"-0.150000"' + + RetroArch_setOverride 'gb.cfg' 'Gambatte' 'aspect_ratio_index' '"21"' + RetroArch_setOverride 'gb.cfg' 'Gambatte' 'input_overlay' '"~/.var/app/org.libretro.RetroArch/config/retroarch/overlays/pegasus/gb.cfg"' + RetroArch_setOverride 'gb.cfg' 'Gambatte' 'input_overlay_auto_scale' '"false"' + RetroArch_setOverride 'gb.cfg' 'Gambatte' 'input_overlay_enable' '"true"' + RetroArch_setOverride 'gb.cfg' 'Gambatte' 'input_overlay_scale_landscape' '"1.860000"' + RetroArch_setOverride 'gb.cfg' 'Gambatte' 'input_overlay_y_offset_landscape' '"-0.150000"' +} + +RetroArch_gb_bezelOff(){ + RetroArch_setOverride 'gb.cfg' 'SameBoy' 'input_overlay_enable' '"false"' + + + RetroArch_setOverride 'gb.cfg' 'Gambatte' 'input_overlay_enable' '"false"' +} + +RetroArch_gb_MATshaderOn(){ + RetroArch_setOverride 'gb.cfg' 'SameBoy' 'video_shader_enable' 'true' + RetroArch_setOverride 'gb.cfg' 'Gambatte' 'video_shader_enable' '"true"' +} + +RetroArch_gb_MATshaderOff(){ + RetroArch_setOverride 'gb.cfg' 'SameBoy' 'video_shader_enable' 'false' + + RetroArch_setOverride 'gb.cfg' 'Gambatte' 'video_shader_enable' '"false"' +} + +RetroArch_SameBoy_gbc_setConfig(){ + RetroArch_setOverride 'gbc.cfg' 'SameBoy' 'input_player1_analog_dpad_mode' '"1"' + RetroArch_setOverride 'gbc.cfg' 'SameBoy' 'gambatte_gbc_color_correction' '"GBC' + RetroArch_setOverride 'gbc.cfg' 'SameBoy' 'gambatte_gbc_color_correction_mode' '"accurate"' + RetroArch_setOverride 'gbc.cfg' 'SameBoy' 'gambatte_gbc_frontlight_position' '"central"' +} + +RetroArch_gbc_bezelOn(){ + RetroArch_setOverride 'gbc.cfg' 'SameBoy' 'aspect_ratio_index' '"21"' + RetroArch_setOverride 'gbc.cfg' 'SameBoy' 'input_overlay' '"~/.var/app/org.libretro.RetroArch/config/retroarch/overlays/pegasus/gbc.cfg"' + RetroArch_setOverride 'gbc.cfg' 'SameBoy' 'input_overlay_auto_scale' '"false"' + RetroArch_setOverride 'gbc.cfg' 'SameBoy' 'input_overlay_enable' '"true"' + RetroArch_setOverride 'gbc.cfg' 'SameBoy' 'input_overlay_scale_landscape' '"1.870000"' + RetroArch_setOverride 'gbc.cfg' 'SameBoy' 'input_overlay_y_offset_landscape' '"-0.220000"' + + RetroArch_setOverride 'gbc.cfg' 'Gambatte' 'aspect_ratio_index' '"21"' + RetroArch_setOverride 'gbc.cfg' 'Gambatte' 'input_overlay' '"~/.var/app/org.libretro.RetroArch/config/retroarch/overlays/pegasus/gbc.cfg"' + RetroArch_setOverride 'gbc.cfg' 'Gambatte' 'input_overlay_auto_scale' '"false"' + RetroArch_setOverride 'gbc.cfg' 'Gambatte' 'input_overlay_enable' '"true"' + RetroArch_setOverride 'gbc.cfg' 'Gambatte' 'input_overlay_scale_landscape' '"1.870000"' + RetroArch_setOverride 'gbc.cfg' 'Gambatte' 'input_overlay_y_offset_landscape' '"-0.220000"' +} + +RetroArch_gbc_bezelOff(){ + RetroArch_setOverride 'gbc.cfg' 'SameBoy' 'input_overlay_enable' '"false"' + + + RetroArch_setOverride 'gbc.cfg' 'Gambatte' 'input_overlay_enable' '"false"' +} + +RetroArch_gbc_MATshaderOn(){ + RetroArch_setOverride 'gbc.cfg' 'SameBoy' 'video_shader_enable' 'true' + + RetroArch_setOverride 'gbc.cfg' 'Gambatte' 'video_shader_enable' 'true' +} + +RetroArch_gbc_MATshaderOff(){ + RetroArch_setOverride 'gbc.cfg' 'SameBoy' 'video_shader_enable' 'false' + + RetroArch_setOverride 'gbc.cfg' 'Gambatte' 'video_shader_enable' 'false' +} + +RetroArch_n64_bezelOn(){ + RetroArch_setOverride 'n64.cfg' 'Mupen64Plus-Next' 'aspect_ratio_index' '"0"' + RetroArch_setOverride 'n64.cfg' 'Mupen64Plus-Next' 'input_overlay' '"~/.var/app/org.libretro.RetroArch/config/retroarch/overlays/pegasus/N64.cfg"' + RetroArch_setOverride 'n64.cfg' 'Mupen64Plus-Next' 'input_overlay_aspect_adjust_landscape' '"0.085000"' + RetroArch_setOverride 'n64.cfg' 'Mupen64Plus-Next' 'input_overlay_enable' '"true"' + RetroArch_setOverride 'n64.cfg' 'Mupen64Plus-Next' 'input_overlay_scale_landscape' '"1.065000"' +} + +RetroArch_n64_bezelOff(){ + RetroArch_setOverride 'n64.cfg' 'Mupen64Plus-Next' 'input_overlay_enable' '"false"' +} + +RetroArch_atari800_setConfig(){ + RetroArch_setOverride 'atari800.cfg' 'Stella' 'input_player1_analog_dpad_mode' '"1"' +} + +RetroArch_atari800_bezelOn(){ + RetroArch_setOverride 'atari800.cfg' 'Stella' 'aspect_ratio_index' '"0"' + RetroArch_setOverride 'atari800.cfg' 'Stella' 'input_overlay' '"~/.var/app/org.libretro.RetroArch/config/retroarch/overlays/pegasus/atari800.cfg"' + RetroArch_setOverride 'atari800.cfg' 'Stella' 'input_overlay_enable' '"true"' + RetroArch_setOverride 'atari800.cfg' 'Stella' 'input_overlay_hide_in_menu' '"true"' + RetroArch_setOverride 'atari800.cfg' 'Stella' 'input_overlay_scale_landscape' '"1.175000"' + RetroArch_setOverride 'atari800.cfg' 'Stella' 'input_overlay_aspect_adjust_landscape' '"0.000000"' +} + +RetroArch_atari800_bezelOff(){ + RetroArch_setOverride 'atari800.cfg' 'Stella' 'input_overlay_enable' '"false"' +} + +RetroArch_atari5200_setConfig(){ + RetroArch_setOverride 'atari5200.cfg' 'Stella' 'input_player1_analog_dpad_mode' '"1"' +} + +RetroArch_atari5200_bezelOn(){ + RetroArch_setOverride 'atari5200.cfg' 'Stella' 'aspect_ratio_index' '"0"' + RetroArch_setOverride 'atari5200.cfg' 'Stella' 'input_overlay' '"~/.var/app/org.libretro.RetroArch/config/retroarch/overlays/pegasus/atari5200.cfg"' + RetroArch_setOverride 'atari5200.cfg' 'Stella' 'input_overlay_enable' '"true"' + RetroArch_setOverride 'atari5200.cfg' 'Stella' 'input_overlay_hide_in_menu' '"true"' + RetroArch_setOverride 'atari5200.cfg' 'Stella' 'input_overlay_scale_landscape' '"1.175000"' + RetroArch_setOverride 'atari5200.cfg' 'Stella' 'input_overlay_aspect_adjust_landscape' '"0.000000"' +} + +RetroArch_atari5200_bezelOff(){ + RetroArch_setOverride 'atari5200.cfg' 'Stella' 'input_overlay_enable' '"false"' +} + +RetroArch_dreamcast_bezelOn(){ + RetroArch_setOverride 'dreamcast.cfg' 'Flycast' 'aspect_ratio_index' '"0"' + RetroArch_setOverride 'dreamcast.cfg' 'Flycast' 'input_overlay' '"~/.var/app/org.libretro.RetroArch/config/retroarch/overlays/pegasus/Dreamcast.cfg"' + RetroArch_setOverride 'dreamcast.cfg' 'Flycast' 'input_overlay_aspect_adjust_landscape' '"0.110000"' + RetroArch_setOverride 'dreamcast.cfg' 'Flycast' 'input_overlay_enable' '"true"' + RetroArch_setOverride 'dreamcast.cfg' 'Flycast' 'input_overlay_scale_landscape' '"1.054998"' +} +RetroArch_dreamcast_bezelOff(){ + RetroArch_setOverride 'dreamcast.cfg' 'Flycast' 'input_overlay_enable' '"false"' +} + +RetroArch_dreamcast_CRTshaderOn(){ + RetroArch_setOverride 'dreamcast.cfg' 'Flycast' 'video_shader_enable' '"true"' +} + +RetroArch_dreamcast_CRTshaderOff(){ + RetroArch_setOverride 'dreamcast.cfg' 'Flycast' 'video_shader_enable' '"false"' +} + +RetroArch_saturn_setConfig(){ + RetroArch_setOverride 'saturn.cfg' 'Yabause' 'input_player1_analog_dpad_mode' '"1"' + RetroArch_setOverride 'saturn.cfg' 'YabaSanshiro' 'input_player1_analog_dpad_mode' '"1"' +} + +RetroArch_saturn_bezelOn(){ + RetroArch_setOverride 'saturn.cfg' 'Yabause' 'aspect_ratio_index' '"0"' + RetroArch_setOverride 'saturn.cfg' 'Yabause' 'input_overlay' '"~/.var/app/org.libretro.RetroArch/config/retroarch/overlays/pegasus/saturn.cfg"' + RetroArch_setOverride 'saturn.cfg' 'Yabause' 'input_overlay_enable' '"true"' + RetroArch_setOverride 'saturn.cfg' 'Yabause' 'input_overlay_scale_landscape' '"1.070000"' + RetroArch_setOverride 'saturn.cfg' 'Yabause' 'input_overlay_aspect_adjust_landscape' '"0.095000"' + + RetroArch_setOverride 'saturn.cfg' 'YabaSanshiro' 'aspect_ratio_index' '"0"' + RetroArch_setOverride 'saturn.cfg' 'YabaSanshiro' 'input_overlay' '"~/.var/app/org.libretro.RetroArch/config/retroarch/overlays/pegasus/saturn.cfg"' + RetroArch_setOverride 'saturn.cfg' 'YabaSanshiro' 'input_overlay_enable' '"true"' + RetroArch_setOverride 'saturn.cfg' 'YabaSanshiro' 'input_overlay_scale_landscape' '"1.070000"' + RetroArch_setOverride 'saturn.cfg' 'YabaSanshiro' 'input_overlay_aspect_adjust_landscape' '"0.095000"' +} + +RetroArch_saturn_bezelOff(){ + RetroArch_setOverride 'saturn.cfg' 'Yabause' 'input_overlay_enable' '"false"' + RetroArch_setOverride 'saturn.cfg' 'YabaSanshiro' 'input_overlay_enable' '"false"' +} + +RetroArch_saturn_CRTshaderOn(){ + RetroArch_setOverride 'saturn.cfg' 'Yabause' 'video_shader_enable' '"true"' + RetroArch_setOverride 'saturn.cfg' 'YabaSanshiro' 'video_shader_enable' '"true"' + +} + +RetroArch_saturn_CRTshaderOff(){ + RetroArch_setOverride 'saturn.cfg' 'Yabause' 'video_shader_enable' '"false"' + RetroArch_setOverride 'saturn.cfg' 'YabaSanshiro' 'video_shader_enable' '"false"' +} + +RetroArch_snes_setConfig(){ + RetroArch_setOverride 'snes.cfg' 'Snes9x' 'input_player1_analog_dpad_mode' '"1"' +} + +RetroArch_snes_bezelOn(){ + RetroArch_setOverride 'snes.cfg' 'Snes9x' 'input_overlay' '"~/.var/app/org.libretro.RetroArch/config/retroarch/overlays/pegasus/snes.cfg"' + RetroArch_setOverride 'snes.cfg' 'Snes9x' 'input_overlay_auto_scale' '"false"' + RetroArch_setOverride 'snes.cfg' 'Snes9x' 'input_overlay_enable' '"true"' + RetroArch_setOverride 'snes.cfg' 'Snes9x' 'input_overlay_opacity' '"0.700000"' + RetroArch_setOverride 'snes.cfg' 'Snes9x' 'video_scale_integer' '"false"' +} + +RetroArch_snes_bezelOff(){ + RetroArch_setOverride 'snes.cfg' 'Snes9x' 'input_overlay_enable' '"false"' +} + +RetroArch_snes_CRTshaderOn(){ + RetroArch_setOverride 'snes.cfg' 'Snes9x' 'video_shader_enable' '"true"' +} + +RetroArch_snes_CRTshaderOff(){ + RetroArch_setOverride 'snes.cfg' 'Snes9x' 'video_shader_enable' '"false"' +} + +RetroArch_snes_ar43(){ + RetroArch_setOverride 'snes.cfg' 'Snes9x' 'input_overlay_scale_landscape' '"1.170000"' + RetroArch_setOverride 'snes.cfg' 'Snes9x' 'input_overlay_aspect_adjust_landscape' '"0"' + RetroArch_setOverride 'snes.cfg' 'Snes9x' 'input_overlay' '"~/.var/app/org.libretro.RetroArch/config/retroarch/overlays/pegasus/snes.cfg"' +} + +RetroArch_snes_ar87(){ + RetroArch_setOverride 'snes.cfg' 'Snes9x' 'input_overlay' '"~/.var/app/org.libretro.RetroArch/config/retroarch/overlays/pegasus/snes87.cfg"' + RetroArch_setOverride 'snes.cfg' 'Snes9x' 'input_overlay_scale_landscape' '"1.380000"' + RetroArch_setOverride 'snes.cfg' 'Snes9x' 'input_overlay_aspect_adjust_landscape' '"-0.170000"' + RetroArch_setOverride 'snes.cfg' 'Snes9x' 'aspect_ratio_index' '"21"' +} + +RetroArch_snes_ar32(){ + RetroArch_setOverride 'snes.cfg' 'Snes9x' 'aspect_ratio_index' '"7"' + RetroArch_snes_bezelOff +} + + +# RetroArch_bsnes_hd_beta_bezelOn(){ +# RetroArch_setOverride 'sneshd.cfg' 'bsnes-hd beta' 'video_scale_integer' '"false"' +# } + +RetroArch_melonDS_setUpCoreOpt(){ + RetroArch_setOverride 'melonDS.opt' 'melonDS' 'melonds_audio_bitrate' '"Automatic"' + RetroArch_setOverride 'melonDS.opt' 'melonDS' 'melonds_audio_interpolation' '"None"' + RetroArch_setOverride 'melonDS.opt' 'melonDS' 'melonds_boot_directly' '"enabled"' + RetroArch_setOverride 'melonDS.opt' 'melonDS' 'melonds_console_mode' '"DS"' + RetroArch_setOverride 'melonDS.opt' 'melonDS' 'melonds_dsi_sdcard' '"disabled"' + RetroArch_setOverride 'melonDS.opt' 'melonDS' 'melonds_hybrid_ratio' '"2"' + RetroArch_setOverride 'melonDS.opt' 'melonDS' 'melonds_hybrid_small_screen' '"Duplicate"' + RetroArch_setOverride 'melonDS.opt' 'melonDS' 'melonds_jit_block_size' '"32"' + RetroArch_setOverride 'melonDS.opt' 'melonDS' 'melonds_jit_branch_optimisations' '"enabled"' + RetroArch_setOverride 'melonDS.opt' 'melonDS' 'melonds_jit_enable' '"enabled"' + RetroArch_setOverride 'melonDS.opt' 'melonDS' 'melonds_jit_fast_memory' '"enabled"' + RetroArch_setOverride 'melonDS.opt' 'melonDS' 'melonds_jit_literal_optimisations' '"enabled"' + RetroArch_setOverride 'melonDS.opt' 'melonDS' 'melonds_opengl_better_polygons' '"enabled"' + RetroArch_setOverride 'melonDS.opt' 'melonDS' 'melonds_opengl_filtering' '"nearest"' + RetroArch_setOverride 'melonDS.opt' 'melonDS' 'melonds_opengl_renderer' '"enabled"' + RetroArch_setOverride 'melonDS.opt' 'melonDS' 'melonds_opengl_resolution' '"5x native (1280x960)"' + RetroArch_setOverride 'melonDS.opt' 'melonDS' 'melonds_randomize_mac_address' '"disabled"' + RetroArch_setOverride 'melonDS.opt' 'melonDS' 'melonds_screen_gap' '"0"' + RetroArch_setOverride 'melonDS.opt' 'melonDS' 'melonds_screen_layout' '"Hybrid Bottom"' + RetroArch_setOverride 'melonDS.opt' 'melonDS' 'melonds_swapscreen_mode' '"Toggle"' + RetroArch_setOverride 'melonDS.opt' 'melonDS' 'melonds_threaded_renderer' '"disabled"' + RetroArch_setOverride 'melonDS.opt' 'melonDS' 'melonds_touch_mode' '"Touch"' +} + +RetroArch_Mupen64Plus_Next_setUpCoreOpt(){ + RetroArch_setOverride 'Mupen64Plus-Next.opt' 'Mupen64Plus-Next' 'mupen64plus-169screensize' '"1920x1080"' + RetroArch_setOverride 'Mupen64Plus-Next.opt' 'Mupen64Plus-Next' 'mupen64plus-43screensize' '"1280x960"' + RetroArch_setOverride 'Mupen64Plus-Next.opt' 'Mupen64Plus-Next' 'mupen64plus-alt-map' '"False"' + RetroArch_setOverride 'Mupen64Plus-Next.opt' 'Mupen64Plus-Next' 'mupen64plus-angrylion-multithread' '"all threads"' + RetroArch_setOverride 'Mupen64Plus-Next.opt' 'Mupen64Plus-Next' 'mupen64plus-angrylion-overscan' '"disabled"' + RetroArch_setOverride 'Mupen64Plus-Next.opt' 'Mupen64Plus-Next' 'mupen64plus-angrylion-sync' '"Low"' + RetroArch_setOverride 'Mupen64Plus-Next.opt' 'Mupen64Plus-Next' 'mupen64plus-angrylion-vioverlay' '"Filtered"' + RetroArch_setOverride 'Mupen64Plus-Next.opt' 'Mupen64Plus-Next' 'mupen64plus-aspect' '"4:3"' + RetroArch_setOverride 'Mupen64Plus-Next.opt' 'Mupen64Plus-Next' 'mupen64plus-astick-deadzone' '"15"' + RetroArch_setOverride 'Mupen64Plus-Next.opt' 'Mupen64Plus-Next' 'mupen64plus-astick-sensitivity' '"100"' + RetroArch_setOverride 'Mupen64Plus-Next.opt' 'Mupen64Plus-Next' 'mupen64plus-BackgroundMode' '"OnePiece"' + RetroArch_setOverride 'Mupen64Plus-Next.opt' 'Mupen64Plus-Next' 'mupen64plus-BilinearMode' '"standard"' + RetroArch_setOverride 'Mupen64Plus-Next.opt' 'Mupen64Plus-Next' 'mupen64plus-CorrectTexrectCoords' '"Auto"' + RetroArch_setOverride 'Mupen64Plus-Next.opt' 'Mupen64Plus-Next' 'mupen64plus-CountPerOp' '"0"' + RetroArch_setOverride 'Mupen64Plus-Next.opt' 'Mupen64Plus-Next' 'mupen64plus-CountPerOpDenomPot' '"0"' + RetroArch_setOverride 'Mupen64Plus-Next.opt' 'Mupen64Plus-Next' 'mupen64plus-cpucore' '"dynamic_recompiler"' + RetroArch_setOverride 'Mupen64Plus-Next.opt' 'Mupen64Plus-Next' 'mupen64plus-d-cbutton' '"C3"' + RetroArch_setOverride 'Mupen64Plus-Next.opt' 'Mupen64Plus-Next' 'mupen64plus-DitheringPattern' '"False"' + RetroArch_setOverride 'Mupen64Plus-Next.opt' 'Mupen64Plus-Next' 'mupen64plus-DitheringQuantization' '"False"' + RetroArch_setOverride 'Mupen64Plus-Next.opt' 'Mupen64Plus-Next' 'mupen64plus-EnableCopyAuxToRDRAM' '"False"' + RetroArch_setOverride 'Mupen64Plus-Next.opt' 'Mupen64Plus-Next' 'mupen64plus-EnableCopyColorToRDRAM' '"Async"' + RetroArch_setOverride 'Mupen64Plus-Next.opt' 'Mupen64Plus-Next' 'mupen64plus-EnableCopyDepthToRDRAM' '"Software"' + RetroArch_setOverride 'Mupen64Plus-Next.opt' 'Mupen64Plus-Next' 'mupen64plus-EnableEnhancedHighResStorage' '"False"' + RetroArch_setOverride 'Mupen64Plus-Next.opt' 'Mupen64Plus-Next' 'mupen64plus-EnableEnhancedTextureStorage' '"False"' + RetroArch_setOverride 'Mupen64Plus-Next.opt' 'Mupen64Plus-Next' 'mupen64plus-EnableFBEmulation' '"True"' + RetroArch_setOverride 'Mupen64Plus-Next.opt' 'Mupen64Plus-Next' 'mupen64plus-EnableFragmentDepthWrite' '"True"' + RetroArch_setOverride 'Mupen64Plus-Next.opt' 'Mupen64Plus-Next' 'mupen64plus-EnableHiResAltCRC' '"False"' + RetroArch_setOverride 'Mupen64Plus-Next.opt' 'Mupen64Plus-Next' 'mupen64plus-EnableHWLighting' '"False"' + RetroArch_setOverride 'Mupen64Plus-Next.opt' 'Mupen64Plus-Next' 'mupen64plus-EnableInaccurateTextureCoordinates' '"False"' + RetroArch_setOverride 'Mupen64Plus-Next.opt' 'Mupen64Plus-Next' 'mupen64plus-EnableLegacyBlending' '"False"' + RetroArch_setOverride 'Mupen64Plus-Next.opt' 'Mupen64Plus-Next' 'mupen64plus-EnableLODEmulation' '"True"' + RetroArch_setOverride 'Mupen64Plus-Next.opt' 'Mupen64Plus-Next' 'mupen64plus-EnableN64DepthCompare' '"False"' + RetroArch_setOverride 'Mupen64Plus-Next.opt' 'Mupen64Plus-Next' 'mupen64plus-EnableNativeResFactor' '"4"' + RetroArch_setOverride 'Mupen64Plus-Next.opt' 'Mupen64Plus-Next' 'mupen64plus-EnableNativeResTexrects' '"Optimized"' + RetroArch_setOverride 'Mupen64Plus-Next.opt' 'Mupen64Plus-Next' 'mupen64plus-EnableOverscan' '"Enabled"' + RetroArch_setOverride 'Mupen64Plus-Next.opt' 'Mupen64Plus-Next' 'mupen64plus-EnableShadersStorage' '"True"' + RetroArch_setOverride 'Mupen64Plus-Next.opt' 'Mupen64Plus-Next' 'mupen64plus-EnableTexCoordBounds' '"True"' + RetroArch_setOverride 'Mupen64Plus-Next.opt' 'Mupen64Plus-Next' 'mupen64plus-EnableTextureCache' '"True"' + RetroArch_setOverride 'Mupen64Plus-Next.opt' 'Mupen64Plus-Next' 'mupen64plus-ForceDisableExtraMem' '"False"' + RetroArch_setOverride 'Mupen64Plus-Next.opt' 'Mupen64Plus-Next' 'mupen64plus-FrameDuping' '"False"' + RetroArch_setOverride 'Mupen64Plus-Next.opt' 'Mupen64Plus-Next' 'mupen64plus-Framerate' '"Fullspeed"' + RetroArch_setOverride 'Mupen64Plus-Next.opt' 'Mupen64Plus-Next' 'mupen64plus-FXAA' '"0"' + RetroArch_setOverride 'Mupen64Plus-Next.opt' 'Mupen64Plus-Next' 'mupen64plus-GLideN64IniBehaviour' '"late"' + RetroArch_setOverride 'Mupen64Plus-Next.opt' 'Mupen64Plus-Next' 'mupen64plus-HybridFilter' '"False"' + RetroArch_setOverride 'Mupen64Plus-Next.opt' 'Mupen64Plus-Next' 'mupen64plus-IgnoreTLBExceptions' '"False"' + RetroArch_setOverride 'Mupen64Plus-Next.opt' 'Mupen64Plus-Next' 'mupen64plus-l-cbutton' '"C2"' + RetroArch_setOverride 'Mupen64Plus-Next.opt' 'Mupen64Plus-Next' 'mupen64plus-MaxHiResTxVramLimit' '"0"' + RetroArch_setOverride 'Mupen64Plus-Next.opt' 'Mupen64Plus-Next' 'mupen64plus-MaxTxCacheSize' '"8000"' + RetroArch_setOverride 'Mupen64Plus-Next.opt' 'Mupen64Plus-Next' 'mupen64plus-MultiSampling' '"0"' + RetroArch_setOverride 'Mupen64Plus-Next.opt' 'Mupen64Plus-Next' 'mupen64plus-OverscanBottom' '"0"' + RetroArch_setOverride 'Mupen64Plus-Next.opt' 'Mupen64Plus-Next' 'mupen64plus-OverscanLeft' '"0"' + RetroArch_setOverride 'Mupen64Plus-Next.opt' 'Mupen64Plus-Next' 'mupen64plus-OverscanRight' '"0"' + RetroArch_setOverride 'Mupen64Plus-Next.opt' 'Mupen64Plus-Next' 'mupen64plus-OverscanTop' '"0"' + RetroArch_setOverride 'Mupen64Plus-Next.opt' 'Mupen64Plus-Next' 'mupen64plus-pak1' '"memory"' + RetroArch_setOverride 'Mupen64Plus-Next.opt' 'Mupen64Plus-Next' 'mupen64plus-pak2' '"none"' + RetroArch_setOverride 'Mupen64Plus-Next.opt' 'Mupen64Plus-Next' 'mupen64plus-pak3' '"none"' + RetroArch_setOverride 'Mupen64Plus-Next.opt' 'Mupen64Plus-Next' 'mupen64plus-pak4' '"none"' + RetroArch_setOverride 'Mupen64Plus-Next.opt' 'Mupen64Plus-Next' 'mupen64plus-parallel-rdp-deinterlace-method' '"Bob"' + RetroArch_setOverride 'Mupen64Plus-Next.opt' 'Mupen64Plus-Next' 'mupen64plus-parallel-rdp-dither-filter' '"True"' + RetroArch_setOverride 'Mupen64Plus-Next.opt' 'Mupen64Plus-Next' 'mupen64plus-parallel-rdp-divot-filter' '"True"' + RetroArch_setOverride 'Mupen64Plus-Next.opt' 'Mupen64Plus-Next' 'mupen64plus-parallel-rdp-downscaling' '"disable"' + RetroArch_setOverride 'Mupen64Plus-Next.opt' 'Mupen64Plus-Next' 'mupen64plus-parallel-rdp-gamma-dither' '"True"' + RetroArch_setOverride 'Mupen64Plus-Next.opt' 'Mupen64Plus-Next' 'mupen64plus-parallel-rdp-native-tex-rect' '"True"' + RetroArch_setOverride 'Mupen64Plus-Next.opt' 'Mupen64Plus-Next' 'mupen64plus-parallel-rdp-native-texture-lod' '"False"' + RetroArch_setOverride 'Mupen64Plus-Next.opt' 'Mupen64Plus-Next' 'mupen64plus-parallel-rdp-overscan' '"0"' + RetroArch_setOverride 'Mupen64Plus-Next.opt' 'Mupen64Plus-Next' 'mupen64plus-parallel-rdp-super-sampled-read-back' '"False"' + RetroArch_setOverride 'Mupen64Plus-Next.opt' 'Mupen64Plus-Next' 'mupen64plus-parallel-rdp-super-sampled-read-back-dither' '"False"' + RetroArch_setOverride 'Mupen64Plus-Next.opt' 'Mupen64Plus-Next' 'mupen64plus-parallel-rdp-synchronous' '"True"' + RetroArch_setOverride 'Mupen64Plus-Next.opt' 'Mupen64Plus-Next' 'mupen64plus-parallel-rdp-upscaling' '"1x"' + RetroArch_setOverride 'Mupen64Plus-Next.opt' 'Mupen64Plus-Next' 'mupen64plus-parallel-rdp-vi-aa' '"True"' + RetroArch_setOverride 'Mupen64Plus-Next.opt' 'Mupen64Plus-Next' 'mupen64plus-parallel-rdp-vi-bilinear' '"True"' + RetroArch_setOverride 'Mupen64Plus-Next.opt' 'Mupen64Plus-Next' 'mupen64plus-r-cbutton' '"C1"' + RetroArch_setOverride 'Mupen64Plus-Next.opt' 'Mupen64Plus-Next' 'mupen64plus-rdp-plugin' '"gliden64"' + RetroArch_setOverride 'Mupen64Plus-Next.opt' 'Mupen64Plus-Next' 'mupen64plus-RDRAMImageDitheringMode' '"False"' + RetroArch_setOverride 'Mupen64Plus-Next.opt' 'Mupen64Plus-Next' 'mupen64plus-rsp-plugin' '"hle"' + RetroArch_setOverride 'Mupen64Plus-Next.opt' 'Mupen64Plus-Next' 'mupen64plus-ThreadedRenderer' '"True"' + RetroArch_setOverride 'Mupen64Plus-Next.opt' 'Mupen64Plus-Next' 'mupen64plus-txCacheCompression' '"True"' + RetroArch_setOverride 'Mupen64Plus-Next.opt' 'Mupen64Plus-Next' 'mupen64plus-txEnhancementMode' '"As Is"' + RetroArch_setOverride 'Mupen64Plus-Next.opt' 'Mupen64Plus-Next' 'mupen64plus-txFilterIgnoreBG' '"True"' + RetroArch_setOverride 'Mupen64Plus-Next.opt' 'Mupen64Plus-Next' 'mupen64plus-txFilterMode' '"None"' + RetroArch_setOverride 'Mupen64Plus-Next.opt' 'Mupen64Plus-Next' 'mupen64plus-txHiresEnable' '"False"' + RetroArch_setOverride 'Mupen64Plus-Next.opt' 'Mupen64Plus-Next' 'mupen64plus-txHiresFullAlphaChannel' '"False"' + RetroArch_setOverride 'Mupen64Plus-Next.opt' 'Mupen64Plus-Next' 'mupen64plus-u-cbutton' '"C4"' + RetroArch_setOverride 'Mupen64Plus-Next.opt' 'Mupen64Plus-Next' 'mupen64plus-virefresh' '"Auto"' +} + +RetroArch_Beetle_PSX_HW_setUpCoreOpt(){ + RetroArch_setOverride 'Beetle PSX HW.opt' 'Beetle PSX HW' 'beetle_psx_hw_adaptive_smoothing' '"disabled"' + RetroArch_setOverride 'Beetle PSX HW.opt' 'Beetle PSX HW' 'beetle_psx_hw_analog_calibration' '"disabled"' + RetroArch_setOverride 'Beetle PSX HW.opt' 'Beetle PSX HW' 'beetle_psx_hw_analog_toggle' '"disabled"' + RetroArch_setOverride 'Beetle PSX HW.opt' 'Beetle PSX HW' 'beetle_psx_hw_aspect_ratio' '"corrected"' + RetroArch_setOverride 'Beetle PSX HW.opt' 'Beetle PSX HW' 'beetle_psx_hw_cd_access_method' '"sync"' + RetroArch_setOverride 'Beetle PSX HW.opt' 'Beetle PSX HW' 'beetle_psx_hw_cd_fastload' '"2x(native)"' + RetroArch_setOverride 'Beetle PSX HW.opt' 'Beetle PSX HW' 'beetle_psx_hw_core_timing_fps' '"force_progressive"' + RetroArch_setOverride 'Beetle PSX HW.opt' 'Beetle PSX HW' 'beetle_psx_hw_cpu_dynarec' '"disabled"' + RetroArch_setOverride 'Beetle PSX HW.opt' 'Beetle PSX HW' 'beetle_psx_hw_cpu_freq_scale' '"100%(native)"' + RetroArch_setOverride 'Beetle PSX HW.opt' 'Beetle PSX HW' 'beetle_psx_hw_crop_overscan' '"smart"' + RetroArch_setOverride 'Beetle PSX HW.opt' 'Beetle PSX HW' 'beetle_psx_hw_crosshair_color_p1' '"red"' + RetroArch_setOverride 'Beetle PSX HW.opt' 'Beetle PSX HW' 'beetle_psx_hw_crosshair_color_p2' '"blue"' + RetroArch_setOverride 'Beetle PSX HW.opt' 'Beetle PSX HW' 'beetle_psx_hw_depth' '"16bpp(native)"' + RetroArch_setOverride 'Beetle PSX HW.opt' 'Beetle PSX HW' 'beetle_psx_hw_display_internal_fps' '"disabled"' + RetroArch_setOverride 'Beetle PSX HW.opt' 'Beetle PSX HW' 'beetle_psx_hw_display_vram' '"disabled"' + RetroArch_setOverride 'Beetle PSX HW.opt' 'Beetle PSX HW' 'beetle_psx_hw_dither_mode' '"1x(native)"' + RetroArch_setOverride 'Beetle PSX HW.opt' 'Beetle PSX HW' 'beetle_psx_hw_dump_textures' '"disabled"' + RetroArch_setOverride 'Beetle PSX HW.opt' 'Beetle PSX HW' 'beetle_psx_hw_dynarec_eventcycles' '"128"' + RetroArch_setOverride 'Beetle PSX HW.opt' 'Beetle PSX HW' 'beetle_psx_hw_dynarec_invalidate' '"full"' + RetroArch_setOverride 'Beetle PSX HW.opt' 'Beetle PSX HW' 'beetle_psx_hw_enable_memcard1' '"enabled"' + RetroArch_setOverride 'Beetle PSX HW.opt' 'Beetle PSX HW' 'beetle_psx_hw_enable_multitap_port1' '"disabled"' + RetroArch_setOverride 'Beetle PSX HW.opt' 'Beetle PSX HW' 'beetle_psx_hw_enable_multitap_port2' '"disabled"' + RetroArch_setOverride 'Beetle PSX HW.opt' 'Beetle PSX HW' 'beetle_psx_hw_filter' '"nearest"' + RetroArch_setOverride 'Beetle PSX HW.opt' 'Beetle PSX HW' 'beetle_psx_hw_filter_exclude_2d_polygon' '"disabled"' + RetroArch_setOverride 'Beetle PSX HW.opt' 'Beetle PSX HW' 'beetle_psx_hw_filter_exclude_sprite' '"disabled"' + RetroArch_setOverride 'Beetle PSX HW.opt' 'Beetle PSX HW' 'beetle_psx_hw_frame_duping' '"disabled"' + RetroArch_setOverride 'Beetle PSX HW.opt' 'Beetle PSX HW' 'beetle_psx_hw_gpu_overclock' '"1x(native)"' + RetroArch_setOverride 'Beetle PSX HW.opt' 'Beetle PSX HW' 'beetle_psx_hw_gte_overclock' '"disabled"' + RetroArch_setOverride 'Beetle PSX HW.opt' 'Beetle PSX HW' 'beetle_psx_hw_gun_cursor' '"cross"' + RetroArch_setOverride 'Beetle PSX HW.opt' 'Beetle PSX HW' 'beetle_psx_hw_gun_input_mode' '"lightgun"' + RetroArch_setOverride 'Beetle PSX HW.opt' 'Beetle PSX HW' 'beetle_psx_hw_image_crop' '"disabled"' + RetroArch_setOverride 'Beetle PSX HW.opt' 'Beetle PSX HW' 'beetle_psx_hw_image_offset' '"disabled"' + RetroArch_setOverride 'Beetle PSX HW.opt' 'Beetle PSX HW' 'beetle_psx_hw_image_offset_cycles' '"0"' + RetroArch_setOverride 'Beetle PSX HW.opt' 'Beetle PSX HW' 'beetle_psx_hw_initial_scanline' '"0"' + RetroArch_setOverride 'Beetle PSX HW.opt' 'Beetle PSX HW' 'beetle_psx_hw_initial_scanline_pal' '"0"' + RetroArch_setOverride 'Beetle PSX HW.opt' 'Beetle PSX HW' 'beetle_psx_hw_internal_resolution' '"2x"' + RetroArch_setOverride 'Beetle PSX HW.opt' 'Beetle PSX HW' 'beetle_psx_hw_last_scanline' '"239"' + RetroArch_setOverride 'Beetle PSX HW.opt' 'Beetle PSX HW' 'beetle_psx_hw_last_scanline_pal' '"287"' + RetroArch_setOverride 'Beetle PSX HW.opt' 'Beetle PSX HW' 'beetle_psx_hw_line_render' '"default"' + RetroArch_setOverride 'Beetle PSX HW.opt' 'Beetle PSX HW' 'beetle_psx_hw_mdec_yuv' '"disabled"' + RetroArch_setOverride 'Beetle PSX HW.opt' 'Beetle PSX HW' 'beetle_psx_hw_memcard_left_index' '"0"' + RetroArch_setOverride 'Beetle PSX HW.opt' 'Beetle PSX HW' 'beetle_psx_hw_memcard_right_index' '"1"' + RetroArch_setOverride 'Beetle PSX HW.opt' 'Beetle PSX HW' 'beetle_psx_hw_mouse_sensitivity' '"100%"' + RetroArch_setOverride 'Beetle PSX HW.opt' 'Beetle PSX HW' 'beetle_psx_hw_msaa' '"1x"' + RetroArch_setOverride 'Beetle PSX HW.opt' 'Beetle PSX HW' 'beetle_psx_hw_negcon_deadzone' '"0%"' + RetroArch_setOverride 'Beetle PSX HW.opt' 'Beetle PSX HW' 'beetle_psx_hw_negcon_response' '"linear"' + RetroArch_setOverride 'Beetle PSX HW.opt' 'Beetle PSX HW' 'beetle_psx_hw_override_bios' '"disabled"' + RetroArch_setOverride 'Beetle PSX HW.opt' 'Beetle PSX HW' 'beetle_psx_hw_pal_video_timing_override' '"disabled"' + RetroArch_setOverride 'Beetle PSX HW.opt' 'Beetle PSX HW' 'beetle_psx_hw_pgxp_2d_tol' '"disabled"' + RetroArch_setOverride 'Beetle PSX HW.opt' 'Beetle PSX HW' 'beetle_psx_hw_pgxp_mode' '"disabled"' + RetroArch_setOverride 'Beetle PSX HW.opt' 'Beetle PSX HW' 'beetle_psx_hw_pgxp_nclip' '"disabled"' + RetroArch_setOverride 'Beetle PSX HW.opt' 'Beetle PSX HW' 'beetle_psx_hw_pgxp_texture' '"disabled"' + RetroArch_setOverride 'Beetle PSX HW.opt' 'Beetle PSX HW' 'beetle_psx_hw_pgxp_vertex' '"disabled"' + RetroArch_setOverride 'Beetle PSX HW.opt' 'Beetle PSX HW' 'beetle_psx_hw_renderer' '"hardware"' + RetroArch_setOverride 'Beetle PSX HW.opt' 'Beetle PSX HW' 'beetle_psx_hw_renderer_software_fb' '"enabled"' + RetroArch_setOverride 'Beetle PSX HW.opt' 'Beetle PSX HW' 'beetle_psx_hw_replace_textures' '"disabled"' + RetroArch_setOverride 'Beetle PSX HW.opt' 'Beetle PSX HW' 'beetle_psx_hw_scaled_uv_offset' '"enabled"' + RetroArch_setOverride 'Beetle PSX HW.opt' 'Beetle PSX HW' 'beetle_psx_hw_shared_memory_cards' '"disabled"' + RetroArch_setOverride 'Beetle PSX HW.opt' 'Beetle PSX HW' 'beetle_psx_hw_skip_bios' '"disabled"' + RetroArch_setOverride 'Beetle PSX HW.opt' 'Beetle PSX HW' 'beetle_psx_hw_super_sampling' '"disabled"' + RetroArch_setOverride 'Beetle PSX HW.opt' 'Beetle PSX HW' 'beetle_psx_hw_track_textures' '"disabled"' + RetroArch_setOverride 'Beetle PSX HW.opt' 'Beetle PSX HW' 'beetle_psx_hw_use_mednafen_memcard0_method' '"libretro"' + RetroArch_setOverride 'Beetle PSX HW.opt' 'Beetle PSX HW' 'beetle_psx_hw_widescreen_hack' '"enabled"' + RetroArch_setOverride 'Beetle PSX HW.opt' 'Beetle PSX HW' 'beetle_psx_hw_widescreen_hack_aspect_ratio' '"16:9"' + RetroArch_setOverride 'Beetle PSX HW.opt' 'Beetle PSX HW' 'beetle_psx_hw_wireframe' '"disabled"' +} + +RetroArch_Flycast_setUpCoreOpt(){ + RetroArch_setOverride 'Flycast.opt' 'Flycast' 'reicast_allow_service_buttons' '"disabled"' + RetroArch_setOverride 'Flycast.opt' 'Flycast' 'reicast_alpha_sorting' '"per-triangle (normal)"' + RetroArch_setOverride 'Flycast.opt' 'Flycast' 'reicast_analog_stick_deadzone' '"15%"' + RetroArch_setOverride 'Flycast.opt' 'Flycast' 'reicast_anisotropic_filtering' '"4"' + RetroArch_setOverride 'Flycast.opt' 'Flycast' 'reicast_auto_skip_frame' '"disabled"' + RetroArch_setOverride 'Flycast.opt' 'Flycast' 'reicast_boot_to_bios' '"disabled"' + RetroArch_setOverride 'Flycast.opt' 'Flycast' 'reicast_broadcast' '"NTSC"' + RetroArch_setOverride 'Flycast.opt' 'Flycast' 'reicast_cable_type' '"TV' + RetroArch_setOverride 'Flycast.opt' 'Flycast' 'reicast_custom_textures' '"disabled"' + RetroArch_setOverride 'Flycast.opt' 'Flycast' 'reicast_delay_frame_swapping' '"disabled"' + RetroArch_setOverride 'Flycast.opt' 'Flycast' 'reicast_digital_triggers' '"disabled"' + RetroArch_setOverride 'Flycast.opt' 'Flycast' 'reicast_dump_textures' '"disabled"' + RetroArch_setOverride 'Flycast.opt' 'Flycast' 'reicast_enable_dsp' '"enabled"' + RetroArch_setOverride 'Flycast.opt' 'Flycast' 'reicast_enable_purupuru' '"enabled"' + RetroArch_setOverride 'Flycast.opt' 'Flycast' 'reicast_enable_rttb' '"disabled"' + RetroArch_setOverride 'Flycast.opt' 'Flycast' 'reicast_fog' '"enabled"' + RetroArch_setOverride 'Flycast.opt' 'Flycast' 'reicast_force_wince' '"disabled"' + RetroArch_setOverride 'Flycast.opt' 'Flycast' 'reicast_frame_skipping' '"disabled"' + RetroArch_setOverride 'Flycast.opt' 'Flycast' 'reicast_gdrom_fast_loading' '"disabled"' + RetroArch_setOverride 'Flycast.opt' 'Flycast' 'reicast_hle_bios' '"disabled"' + RetroArch_setOverride 'Flycast.opt' 'Flycast' 'reicast_internal_resolution' '"960x720"' + RetroArch_setOverride 'Flycast.opt' 'Flycast' 'reicast_language' '"Default"' + RetroArch_setOverride 'Flycast.opt' 'Flycast' 'reicast_lightgun1_crosshair' '"disabled"' + RetroArch_setOverride 'Flycast.opt' 'Flycast' 'reicast_lightgun2_crosshair' '"disabled"' + RetroArch_setOverride 'Flycast.opt' 'Flycast' 'reicast_lightgun3_crosshair' '"disabled"' + RetroArch_setOverride 'Flycast.opt' 'Flycast' 'reicast_lightgun4_crosshair' '"disabled"' + RetroArch_setOverride 'Flycast.opt' 'Flycast' 'reicast_mipmapping' '"enabled"' + RetroArch_setOverride 'Flycast.opt' 'Flycast' 'reicast_oit_abuffer_size' '"512MB"' + RetroArch_setOverride 'Flycast.opt' 'Flycast' 'reicast_per_content_vmus' '"disabled"' + RetroArch_setOverride 'Flycast.opt' 'Flycast' 'reicast_pvr2_filtering' '"disabled"' + RetroArch_setOverride 'Flycast.opt' 'Flycast' 'reicast_region' '"Default"' + RetroArch_setOverride 'Flycast.opt' 'Flycast' 'reicast_screen_rotation' '"horizontal"' + RetroArch_setOverride 'Flycast.opt' 'Flycast' 'reicast_show_lightgun_settings' '"disabled"' + RetroArch_setOverride 'Flycast.opt' 'Flycast' 'reicast_show_vmu_screen_settings' '"disabled"' + RetroArch_setOverride 'Flycast.opt' 'Flycast' 'reicast_texupscale' '"1"' + RetroArch_setOverride 'Flycast.opt' 'Flycast' 'reicast_texupscale_max_filtered_texture_size' '"256"' + RetroArch_setOverride 'Flycast.opt' 'Flycast' 'reicast_threaded_rendering' '"enabled"' + RetroArch_setOverride 'Flycast.opt' 'Flycast' 'reicast_trigger_deadzone' '"0%"' + RetroArch_setOverride 'Flycast.opt' 'Flycast' 'reicast_vmu1_pixel_off_color' '"DEFAULT_OFF 01"' + RetroArch_setOverride 'Flycast.opt' 'Flycast' 'reicast_vmu1_pixel_on_color' '"DEFAULT_ON 00"' + RetroArch_setOverride 'Flycast.opt' 'Flycast' 'reicast_vmu1_screen_display' '"disabled"' + RetroArch_setOverride 'Flycast.opt' 'Flycast' 'reicast_vmu1_screen_opacity' '"100%"' + RetroArch_setOverride 'Flycast.opt' 'Flycast' 'reicast_vmu1_screen_position' '"Upper Left"' + RetroArch_setOverride 'Flycast.opt' 'Flycast' 'reicast_vmu1_screen_size_mult' '"1x"' + RetroArch_setOverride 'Flycast.opt' 'Flycast' 'reicast_vmu2_pixel_off_color' '"DEFAULT_OFF 01"' + RetroArch_setOverride 'Flycast.opt' 'Flycast' 'reicast_vmu2_pixel_on_color' '"DEFAULT_ON 00"' + RetroArch_setOverride 'Flycast.opt' 'Flycast' 'reicast_vmu2_screen_display' '"disabled"' + RetroArch_setOverride 'Flycast.opt' 'Flycast' 'reicast_vmu2_screen_opacity' '"100%"' + RetroArch_setOverride 'Flycast.opt' 'Flycast' 'reicast_vmu2_screen_position' '"Upper Left"' + RetroArch_setOverride 'Flycast.opt' 'Flycast' 'reicast_vmu2_screen_size_mult' '"1x"' + RetroArch_setOverride 'Flycast.opt' 'Flycast' 'reicast_vmu3_pixel_off_color' '"DEFAULT_OFF 01"' + RetroArch_setOverride 'Flycast.opt' 'Flycast' 'reicast_vmu3_pixel_on_color' '"DEFAULT_ON 00"' + RetroArch_setOverride 'Flycast.opt' 'Flycast' 'reicast_vmu3_screen_display' '"disabled"' + RetroArch_setOverride 'Flycast.opt' 'Flycast' 'reicast_vmu3_screen_opacity' '"100%"' + RetroArch_setOverride 'Flycast.opt' 'Flycast' 'reicast_vmu3_screen_position' '"Upper Left"' + RetroArch_setOverride 'Flycast.opt' 'Flycast' 'reicast_vmu3_screen_size_mult' '"1x"' + RetroArch_setOverride 'Flycast.opt' 'Flycast' 'reicast_vmu4_pixel_off_color' '"DEFAULT_OFF 01"' + RetroArch_setOverride 'Flycast.opt' 'Flycast' 'reicast_vmu4_pixel_on_color' '"DEFAULT_ON 00"' + RetroArch_setOverride 'Flycast.opt' 'Flycast' 'reicast_vmu4_screen_display' '"disabled"' + RetroArch_setOverride 'Flycast.opt' 'Flycast' 'reicast_vmu4_screen_opacity' '"100%"' + RetroArch_setOverride 'Flycast.opt' 'Flycast' 'reicast_vmu4_screen_position' '"Upper Left"' + RetroArch_setOverride 'Flycast.opt' 'Flycast' 'reicast_vmu4_screen_size_mult' '"1x"' + RetroArch_setOverride 'Flycast.opt' 'Flycast' 'reicast_volume_modifier_enable' '"enabled"' + RetroArch_setOverride 'Flycast.opt' 'Flycast' 'reicast_widescreen_cheats' '"enabled"' + RetroArch_setOverride 'Flycast.opt' 'Flycast' 'reicast_widescreen_hack' '"enabled"' +} + +RetroArch_Gambatte_setUpCoreOpt(){ + RetroArch_setOverride 'Gambatte.opt' 'Gambatte' 'gambatte_audio_resampler' '"sinc"' + RetroArch_setOverride 'Gambatte.opt' 'Gambatte' 'gambatte_dark_filter_level' '"0"' + RetroArch_setOverride 'Gambatte.opt' 'Gambatte' 'gambatte_gb_bootloader' '"enabled"' + RetroArch_setOverride 'Gambatte.opt' 'Gambatte' 'gambatte_gb_colorization' '"auto"' + RetroArch_setOverride 'Gambatte.opt' 'Gambatte' 'gambatte_gb_hwmode' '"Auto"' + RetroArch_setOverride 'Gambatte.opt' 'Gambatte' 'gambatte_gb_internal_palette' '"GB - DMG"' + RetroArch_setOverride 'Gambatte.opt' 'Gambatte' 'gambatte_gb_link_mode' '"Not Connected"' + RetroArch_setOverride 'Gambatte.opt' 'Gambatte' 'gambatte_gb_link_network_port' '"56400"' + RetroArch_setOverride 'Gambatte.opt' 'Gambatte' 'gambatte_gb_link_network_server_ip_1' '"0"' + RetroArch_setOverride 'Gambatte.opt' 'Gambatte' 'gambatte_gb_link_network_server_ip_10' '"0"' + RetroArch_setOverride 'Gambatte.opt' 'Gambatte' 'gambatte_gb_link_network_server_ip_11' '"0"' + RetroArch_setOverride 'Gambatte.opt' 'Gambatte' 'gambatte_gb_link_network_server_ip_12' '"0"' + RetroArch_setOverride 'Gambatte.opt' 'Gambatte' 'gambatte_gb_link_network_server_ip_2' '"0"' + RetroArch_setOverride 'Gambatte.opt' 'Gambatte' 'gambatte_gb_link_network_server_ip_3' '"0"' + RetroArch_setOverride 'Gambatte.opt' 'Gambatte' 'gambatte_gb_link_network_server_ip_4' '"0"' + RetroArch_setOverride 'Gambatte.opt' 'Gambatte' 'gambatte_gb_link_network_server_ip_5' '"0"' + RetroArch_setOverride 'Gambatte.opt' 'Gambatte' 'gambatte_gb_link_network_server_ip_6' '"0"' + RetroArch_setOverride 'Gambatte.opt' 'Gambatte' 'gambatte_gb_link_network_server_ip_7' '"0"' + RetroArch_setOverride 'Gambatte.opt' 'Gambatte' 'gambatte_gb_link_network_server_ip_8' '"0"' + RetroArch_setOverride 'Gambatte.opt' 'Gambatte' 'gambatte_gb_link_network_server_ip_9' '"0"' + RetroArch_setOverride 'Gambatte.opt' 'Gambatte' 'gambatte_gb_palette_pixelshift_1' '"PixelShift 01 - Arctic Green"' + RetroArch_setOverride 'Gambatte.opt' 'Gambatte' 'gambatte_gb_palette_twb64_1' '"WB64 001 - Aqours Blue"' + RetroArch_setOverride 'Gambatte.opt' 'Gambatte' 'gambatte_gb_palette_twb64_2' '"TWB64 101 - 765PRO Pink"' + RetroArch_setOverride 'Gambatte.opt' 'Gambatte' 'gambatte_gbc_color_correction' '"GBC only"' + RetroArch_setOverride 'Gambatte.opt' 'Gambatte' 'gambatte_gbc_color_correction_mode' '"accurate"' + RetroArch_setOverride 'Gambatte.opt' 'Gambatte' 'gambatte_gbc_frontlight_position' '"central"' + RetroArch_setOverride 'Gambatte.opt' 'Gambatte' 'gambatte_mix_frames' '"disabled"' + RetroArch_setOverride 'Gambatte.opt' 'Gambatte' 'gambatte_rumble_level' '"10"' + RetroArch_setOverride 'Gambatte.opt' 'Gambatte' 'gambatte_show_gb_link_settings' '"disabled"' + RetroArch_setOverride 'Gambatte.opt' 'Gambatte' 'gambatte_turbo_period' '"4"' + RetroArch_setOverride 'Gambatte.opt' 'Gambatte' 'gambatte_up_down_allowed' '"disabled"' +} + +RetroArch_Nestopia_setUpCoreOpt(){ + RetroArch_setOverride 'Nestopia.opt' 'Nestopia' 'nestopia_arkanoid_device' '"mouse"' + RetroArch_setOverride 'Nestopia.opt' 'Nestopia' 'nestopia_aspect' '"auto"' + RetroArch_setOverride 'Nestopia.opt' 'Nestopia' 'nestopia_audio_vol_dpcm' '"100"' + RetroArch_setOverride 'Nestopia.opt' 'Nestopia' 'nestopia_audio_vol_fds' '"100"' + RetroArch_setOverride 'Nestopia.opt' 'Nestopia' 'nestopia_audio_vol_mmc5' '"100"' + RetroArch_setOverride 'Nestopia.opt' 'Nestopia' 'nestopia_audio_vol_n163' '"100"' + RetroArch_setOverride 'Nestopia.opt' 'Nestopia' 'nestopia_audio_vol_noise' '"100"' + RetroArch_setOverride 'Nestopia.opt' 'Nestopia' 'nestopia_audio_vol_s5b' '"100"' + RetroArch_setOverride 'Nestopia.opt' 'Nestopia' 'nestopia_audio_vol_sq1' '"100"' + RetroArch_setOverride 'Nestopia.opt' 'Nestopia' 'nestopia_audio_vol_sq2' '"100"' + RetroArch_setOverride 'Nestopia.opt' 'Nestopia' 'nestopia_audio_vol_tri' '"100"' + RetroArch_setOverride 'Nestopia.opt' 'Nestopia' 'nestopia_audio_vol_vrc6' '"100"' + RetroArch_setOverride 'Nestopia.opt' 'Nestopia' 'nestopia_audio_vol_vrc7' '"100"' + RetroArch_setOverride 'Nestopia.opt' 'Nestopia' 'nestopia_blargg_ntsc_filter' '"disabled"' + RetroArch_setOverride 'Nestopia.opt' 'Nestopia' 'nestopia_button_shift' '"disabled"' + RetroArch_setOverride 'Nestopia.opt' 'Nestopia' 'nestopia_favored_system' '"auto"' + RetroArch_setOverride 'Nestopia.opt' 'Nestopia' 'nestopia_fds_auto_insert' '"enabled"' + RetroArch_setOverride 'Nestopia.opt' 'Nestopia' 'nestopia_genie_distortion' '"disabled"' + RetroArch_setOverride 'Nestopia.opt' 'Nestopia' 'nestopia_nospritelimit' '"disabled"' + RetroArch_setOverride 'Nestopia.opt' 'Nestopia' 'nestopia_overclock' '"1x"' + RetroArch_setOverride 'Nestopia.opt' 'Nestopia' 'nestopia_overscan_h' '"disabled"' + RetroArch_setOverride 'Nestopia.opt' 'Nestopia' 'nestopia_overscan_v' '"enabled"' + RetroArch_setOverride 'Nestopia.opt' 'Nestopia' 'nestopia_palette' '"cxa2025as"' + RetroArch_setOverride 'Nestopia.opt' 'Nestopia' 'nestopia_ram_power_state' '"0x00"' + RetroArch_setOverride 'Nestopia.opt' 'Nestopia' 'nestopia_select_adapter' '"auto"' + RetroArch_setOverride 'Nestopia.opt' 'Nestopia' 'nestopia_show_advanced_av_settings' '"disabled"' + RetroArch_setOverride 'Nestopia.opt' 'Nestopia' 'nestopia_show_crosshair' '"enabled"' + RetroArch_setOverride 'Nestopia.opt' 'Nestopia' 'nestopia_turbo_pulse' '"2"' + RetroArch_setOverride 'Nestopia.opt' 'Nestopia' 'nestopia_zapper_device' '"lightgun"' +} +RetroArch_bsnes_hd_beta_setUpCoreOpt(){ + RetroArch_setOverride 'bsnes-hd beta.opt' 'bsnes-hd beta' 'bsnes_blur_emulation' '"OFF"' + RetroArch_setOverride 'bsnes-hd beta.opt' 'bsnes-hd beta' 'bsnes_coprocessor_delayed_sync' '"ON"' + RetroArch_setOverride 'bsnes-hd beta.opt' 'bsnes-hd beta' 'bsnes_coprocessor_prefer_hle' '"ON"' + RetroArch_setOverride 'bsnes-hd beta.opt' 'bsnes-hd beta' 'bsnes_cpu_fastmath' '"OFF"' + RetroArch_setOverride 'bsnes-hd beta.opt' 'bsnes-hd beta' 'bsnes_cpu_overclock' '"100"' + RetroArch_setOverride 'bsnes-hd beta.opt' 'bsnes-hd beta' 'bsnes_cpu_sa1_overclock' '"100"' + RetroArch_setOverride 'bsnes-hd beta.opt' 'bsnes-hd beta' 'bsnes_cpu_sfx_overclock' '"100"' + RetroArch_setOverride 'bsnes-hd beta.opt' 'bsnes-hd beta' 'bsnes_dsp_cubic' '"OFF"' + RetroArch_setOverride 'bsnes-hd beta.opt' 'bsnes-hd beta' 'bsnes_dsp_echo_shadow' '"OFF"' + RetroArch_setOverride 'bsnes-hd beta.opt' 'bsnes-hd beta' 'bsnes_dsp_fast' '"ON"' + RetroArch_setOverride 'bsnes-hd beta.opt' 'bsnes-hd beta' 'bsnes_entropy' '"Low"' + RetroArch_setOverride 'bsnes-hd beta.opt' 'bsnes-hd beta' 'bsnes_hotfixes' '"OFF"' + RetroArch_setOverride 'bsnes-hd beta.opt' 'bsnes-hd beta' 'bsnes_ips_headered' '"OFF"' + RetroArch_setOverride 'bsnes-hd beta.opt' 'bsnes-hd beta' 'bsnes_mode7_bgGrad' '"4"' + RetroArch_setOverride 'bsnes-hd beta.opt' 'bsnes-hd beta' 'bsnes_mode7_igwin' '"outside"' + RetroArch_setOverride 'bsnes-hd beta.opt' 'bsnes-hd beta' 'bsnes_mode7_igwinx' '"128"' + RetroArch_setOverride 'bsnes-hd beta.opt' 'bsnes-hd beta' 'bsnes_mode7_mosaic' '"1x scale"' + RetroArch_setOverride 'bsnes-hd beta.opt' 'bsnes-hd beta' 'bsnes_mode7_perspective' '"on' + RetroArch_setOverride 'bsnes-hd beta.opt' 'bsnes-hd beta' 'bsnes_mode7_scale' '"1x"' + RetroArch_setOverride 'bsnes-hd beta.opt' 'bsnes-hd beta' 'bsnes_mode7_strWin' '"OFF"' + RetroArch_setOverride 'bsnes-hd beta.opt' 'bsnes-hd beta' 'bsnes_mode7_supersample' '"none"' + RetroArch_setOverride 'bsnes-hd beta.opt' 'bsnes-hd beta' 'bsnes_mode7_widescreen' '"16:9"' + RetroArch_setOverride 'bsnes-hd beta.opt' 'bsnes-hd beta' 'bsnes_mode7_windRad' '"0"' + RetroArch_setOverride 'bsnes-hd beta.opt' 'bsnes-hd beta' 'bsnes_mode7_wsbg1' '"auto horz and vert"' + RetroArch_setOverride 'bsnes-hd beta.opt' 'bsnes-hd beta' 'bsnes_mode7_wsbg2' '"auto horz and vert"' + RetroArch_setOverride 'bsnes-hd beta.opt' 'bsnes-hd beta' 'bsnes_mode7_wsbg3' '"auto horz and vert"' + RetroArch_setOverride 'bsnes-hd beta.opt' 'bsnes-hd beta' 'bsnes_mode7_wsbg4' '"auto horz and vert"' + RetroArch_setOverride 'bsnes-hd beta.opt' 'bsnes-hd beta' 'bsnes_mode7_wsBgCol' '"auto"' + RetroArch_setOverride 'bsnes-hd beta.opt' 'bsnes-hd beta' 'bsnes_mode7_wsMarker' '"none"' + RetroArch_setOverride 'bsnes-hd beta.opt' 'bsnes-hd beta' 'bsnes_mode7_wsMarkerAlpha' '"1/1"' + RetroArch_setOverride 'bsnes-hd beta.opt' 'bsnes-hd beta' 'bsnes_mode7_wsMode' '"all"' + RetroArch_setOverride 'bsnes-hd beta.opt' 'bsnes-hd beta' 'bsnes_mode7_wsobj' '"safe"' + RetroArch_setOverride 'bsnes-hd beta.opt' 'bsnes-hd beta' 'bsnes_ppu_deinterlace' '"ON"' + RetroArch_setOverride 'bsnes-hd beta.opt' 'bsnes-hd beta' 'bsnes_ppu_fast' '"ON"' + RetroArch_setOverride 'bsnes-hd beta.opt' 'bsnes-hd beta' 'bsnes_ppu_no_sprite_limit' '"ON"' + RetroArch_setOverride 'bsnes-hd beta.opt' 'bsnes-hd beta' 'bsnes_ppu_no_vram_blocking' '"OFF"' + RetroArch_setOverride 'bsnes-hd beta.opt' 'bsnes-hd beta' 'bsnes_ppu_show_overscan' '"OFF"' + RetroArch_setOverride 'bsnes-hd beta.opt' 'bsnes-hd beta' 'bsnes_run_ahead_frames' '"OFF"' + RetroArch_setOverride 'bsnes-hd beta.opt' 'bsnes-hd beta' 'bsnes_sgb_bios' '"SGB1.sfc"' + RetroArch_setOverride 'bsnes-hd beta.opt' 'bsnes-hd beta' 'bsnes_video_aspectcorrection' '"OFF"' + RetroArch_setOverride 'bsnes-hd beta.opt' 'bsnes-hd beta' 'bsnes_video_gamma' '"100"' + RetroArch_setOverride 'bsnes-hd beta.opt' 'bsnes-hd beta' 'bsnes_video_luminance' '"100"' + RetroArch_setOverride 'bsnes-hd beta.opt' 'bsnes-hd beta' 'bsnes_video_saturation' '"100"' +} + +RetroArch_setUpCoreOptAll(){ + + for func in $(compgen -A 'function' | grep '\_setUpCoreOpt$') + do echo "$func" && "$func" + done +} + +RetroArch_Flycast_wideScreenOn(){ + RetroArch_setOverride 'Flycast.opt' 'Flycast' 'reicast_widescreen_cheats' '"enabled"' + RetroArch_setOverride 'Flycast.opt' 'Flycast' 'reicast_widescreen_hack' '"enabled"' + RetroArch_setOverride 'dreamcast.cfg' 'Flycast' 'aspect_ratio_index' '"1"' + RetroArch_dreamcast_bezelOff +} + +RetroArch_Flycast_wideScreenOff(){ + RetroArch_setOverride 'Flycast.opt' 'Flycast' 'reicast_widescreen_cheats' '"disabled"' + RetroArch_setOverride 'Flycast.opt' 'Flycast' 'reicast_widescreen_hack' '"disabled"' + RetroArch_setOverride 'dreamcast.cfg' 'Flycast' 'aspect_ratio_index' '"0"' + RetroArch_dreamcast_bezelOn +} + +RetroArch_Beetle_PSX_HW_wideScreenOn(){ + RetroArch_setOverride 'Beetle PSX HW.opt' 'Beetle PSX HW' 'beetle_psx_hw_widescreen_hack' '"enabled"' + RetroArch_setOverride 'Beetle PSX.opt' 'Beetle PSX' 'beetle_psx_hw_widescreen_hack' '"enabled"' +} + +RetroArch_Beetle_PSX_HW_wideScreenOff(){ + RetroArch_setOverride 'Beetle PSX HW.opt' 'Beetle PSX HW' 'beetle_psx_hw_widescreen_hack' '"disabled"' + RetroArch_setOverride 'Beetle PSX.opt' 'Beetle PSX' 'beetle_psx_hw_widescreen_hack' '"disabled"' +} + +RetroArch_psx_bezelOn(){ + RetroArch_setOverride 'psx.cfg' 'Beetle PSX HW' 'input_overlay_enable' '"true"' + RetroArch_setOverride 'psx.cfg' 'Beetle PSX HW' 'aspect_ratio_index' '"0"' + RetroArch_setOverride 'psx.cfg' 'Beetle PSX HW' 'input_overlay' '"~/.var/app/org.libretro.RetroArch/config/retroarch/overlays/pegasus/psx.cfg"' + RetroArch_setOverride 'psx.cfg' 'Beetle PSX HW' 'input_overlay_aspect_adjust_landscape' '"0.100000"' + RetroArch_setOverride 'psx.cfg' 'Beetle PSX HW' 'input_overlay_enable' '"true"' + RetroArch_setOverride 'psx.cfg' 'Beetle PSX HW' 'input_overlay_scale_landscape' '"1.060000"' + RetroArch_setOverride 'psx.cfg' 'Beetle PSX' 'input_overlay_enable' '"true"' + RetroArch_setOverride 'psx.cfg' 'Beetle PSX' 'aspect_ratio_index' '"0"' + RetroArch_setOverride 'psx.cfg' 'Beetle PSX' 'input_overlay' '"~/.var/app/org.libretro.RetroArch/config/retroarch/overlays/pegasus/psx.cfg"' + RetroArch_setOverride 'psx.cfg' 'Beetle PSX' 'input_overlay_aspect_adjust_landscape' '"0.100000"' + RetroArch_setOverride 'psx.cfg' 'Beetle PSX' 'input_overlay_enable' '"true"' + RetroArch_setOverride 'psx.cfg' 'Beetle PSX' 'input_overlay_scale_landscape' '"1.060000"' + +} + +RetroArch_psx_bezelOff(){ + RetroArch_setOverride 'psx.cfg' 'Beetle PSX HW' 'input_overlay_enable' '"false"' + RetroArch_setOverride 'psx.cfg' 'Beetle PSX' 'input_overlay_enable' '"false"' +} + +RetroArch_psx_CRTshaderOn(){ + RetroArch_setOverride 'psx.cfg' 'Beetle PSX HW' 'video_shader_enable' 'true' + RetroArch_setOverride 'psx.cfg' 'Beetle PSX' 'video_shader_enable' 'true' +} + +RetroArch_psx_CRTshaderOff(){ + RetroArch_setOverride 'psx.cfg' 'Beetle PSX HW' 'video_shader_enable' 'false' + RetroArch_setOverride 'psx.cfg' 'Beetle PSX' 'video_shader_enable' 'false' +} + +#BezelOn +RetroArch_bezelOnAll(){ + for func in $(compgen -A 'function' | grep '\_bezelOn$' | grep '^RetroArch_' | grep -v "RetroArch_bezelOn") + do echo "$func" && "$func" + done +} + +#BezelOff +RetroArch_bezelOffAll(){ + for func in $(compgen -A 'function' | grep '\_bezelOff$' | grep '^RetroArch_') + do echo "$func" && "$func" + done +} + +#shadersCRTOn +RetroArch_CRTshaderOnAll(){ + for func in $(compgen -A 'function' | grep '\_CRTshaderOn$' | grep '^RetroArch_' | grep -v "RetroArch_bezelOn") + do echo "$func" && "$func" + done +} + +#shadersCRTOff +RetroArch_CRTshaderOffAll(){ + for func in $(compgen -A 'function' | grep '\_CRTshaderOff$' | grep '^RetroArch_') + do echo "$func" && "$func" + done +} + +#shadersMATOn +RetroArch_MATshadersOnAll(){ + for func in $(compgen -A 'function' | grep '\_MATshaderOn$' | grep '^RetroArch_' | grep -v "RetroArch_bezelOn") + do echo "$func" && "$func" + done +} + +#shadersMATOff +RetroArch_MATshadersOffAll(){ + for func in $(compgen -A 'function' | grep '\_MATshaderOff$' | grep '^RetroArch_') + do echo "$func" && "$func" + done +} + + +#finalExec - Extra stuff +RetroArch_finalize(){ + echo "NYI" +} + +RetroArch_installCores(){ + + #Requests for: + #GP32 + #N-gage + #Game.com + + mkdir -p "$HOME/.var/app/org.libretro.RetroArch/config/retroarch/cores" + raUrl="https://buildbot.libretro.com/nightly/linux/x86_64/latest/" + # RAcores=(bsnes_hd_beta_libretro.so flycast_libretro.so gambatte_libretro.so genesis_plus_gx_libretro.so \ + # genesis_plus_gx_wide_libretro.so mednafen_lynx_libretro.so mednafen_ngp_libretro.so mednafen_wswan_libretro.so melonds_libretro.so \ + # mesen_libretro.so mgba_libretro.so mupen64Plus-Next_libretro.so nestopia_libretro.so picodrive_libretro.so ppsspp_libretro.so snes9x_libretro.so \ + # stella_libretro.so yabasanshiro_libretro.so yabause_libretro.so yabause_libretro.so mame2003_plus_libretro.so mame2010_libretro.so mame_libretro.so \ + # melonds_libretro.so fbneo_libretro.so bluemsx_libretro.so desmume_libretro.so sameboy_libretro.so gearsystem_libretro.so mednafen_saturn_libretro.so \ + # opera_libretro.so dosbox_core_libretro.so dosbox_pure_libretro.so dosbox_svn_libretro.so puae_libretro.so) + # setMSG "Downloading RetroArch Cores for EmuDeck" + # for i in "${RAcores[@]}" + # do + # FILE=~/.var/app/org.libretro.RetroArch/config/retroarch/cores/${i} + # if [ -f "$FILE" ]; then + # echo "${i}...Already Downloaded" + # else + # curl $raUrl$i.zip --output ~/.var/app/org.libretro.RetroArch/config/retroarch/cores/${i}.zip + # #rm ~/.var/app/org.libretro.RetroArch/config/retroarch/cores/${i}.zip + # echo "${i}...Downloaded!" + # fi + # done + + #This is all the cores combined, and dupes taken out. + RAcores=(81_libretro.so a5200_libretro.so atari800_libretro.so blastem_libretro.so bluemsx_libretro.so bsnes_hd_beta_libretro.so bsnes_libretro.so \ + bsnes_mercury_accuracy_libretro.so cap32_libretro.so chailove_libretro.so citra2018_libretro.so citra_libretro.so crocods_libretro.so desmume2015_libretro.so \ + desmume_libretro.so dolphin_libretro.so dosbox_core_libretro.so dosbox_pure_libretro.so dosbox_svn_libretro.so easyrpg_libretro.so fbalpha2012_cps1_libretro.so \ + fbalpha2012_cps3_libretro.so fbalpha2012_libretro.so fbalpha2012_neogeo_libretro.so fbneo_libretro.so fceumm_libretro.so flycast_libretro.so fmsx_libretro.so \ + fbalpha2012_cps2_libretro.so freechaf_libretro.so freeintv_libretro.so frodo_libretro.so fuse_libretro.so gambatte_libretro.so gearboy_libretro.so gearsystem_libretro.so \ + genesis_plus_gx_libretro.so genesis_plus_gx_wide_libretro.so gpsp_libretro.so gw_libretro.so handy_libretro.so hatari_libretro.so \ + kronos_libretro.so lutro_libretro.so mame2000_libretro.so mame2003_plus_libretro.so mame2010_libretro.so \ + mame_libretro.so mednafen_lynx_libretro.so mednafen_ngp_libretro.so mednafen_pce_fast_libretro.so mednafen_pce_libretro.so mednafen_pcfx_libretro.so mednafen_psx_hw_libretro.so \ + mednafen_psx_libretro.so mednafen_saturn_libretro.so mednafen_supafaust_libretro.so mednafen_supergrafx_libretro.so mednafen_vb_libretro.so mednafen_wswan_libretro.so \ + melonds_libretro.so mesen-s_libretro.so mesen_libretro.so mgba_libretro.so mu_libretro.so mupen64plus_next_libretro.so \ + nekop2_libretro.so neocd_libretro.so nestopia_libretro.so np2kai_libretro.so nxengine_libretro.so o2em_libretro.so \ + opera_libretro.so parallel_n64_libretro.so pcsx2_libretro.so pcsx_rearmed_libretro.so picodrive_libretro.so pokemini_libretro.so ppsspp_libretro.so prboom_libretro.so \ + prosystem_libretro.so puae_libretro.so px68k_libretro.so quasi88_libretro.so quicknes_libretro.so race_libretro.so \ + sameboy_libretro.so scummvm_libretro.so smsplus_libretro.so snes9x2010_libretro.so snes9x_libretro.so squirreljme_libretro.so stella2014_libretro.so \ + stella_libretro.so swanstation_libretro.so tgbdual_libretro.so theodore_libretro.so uzem_libretro.so vba_next_libretro.so vbam_libretro.so vecx_libretro.so \ + vice_x128_libretro.so vice_x64_libretro.so vice_x64sc_libretro.so vice_xscpu64_libretro.so vice_xvic_libretro.so virtualjaguar_libretro.so x1_libretro.so \ + yabasanshiro_libretro.so yabause_libretro.so) + setMSG "Downloading RetroArch Cores for EmuDeck" + for i in "${RAcores[@]}" + do + FILE=~/.var/app/org.libretro.RetroArch/config/retroarch/cores/${i} + if [ -f "$FILE" ]; then + echo "${i}...Already Downloaded" + else + curl $raUrl$i.zip --output ~/.var/app/org.libretro.RetroArch/config/retroarch/cores/${i}.zip + #rm ~/.var/app/org.libretro.RetroArch/config/retroarch/cores/${i}.zip + echo "${i}...Downloaded!" + fi + done + + + for entry in ~/.var/app/org.libretro.RetroArch/config/retroarch/cores/*.zip + do + unzip -o "$entry" -d ~/.var/app/org.libretro.RetroArch/config/retroarch/cores/ + done + + for entry in ~/.var/app/org.libretro.RetroArch/config/retroarch/cores/*.zip + do + rm -f "$entry" + done + + #RetroArch_dlAdditionalFiles + +} + +function RetroArch_dlAdditionalFiles(){ + #EasyRPG + mkdir -p "$biosPath/rtp/2000" + mkdir -p "$biosPath/rtp/2003" + + curl -L https://dl.degica.com/rpgmakerweb/run-time-packages/rpg2003_rtp_installer.zip --output "$biosPath/rtp/2003/rpg2003.zip" + curl -L https://dl.degica.com/rpgmakerweb/run-time-packages/rpg2000_rtp_installer.exe --output "$biosPath/rtp/2000/rpg2000.zip" + + 7z x "$biosPath/rtp/2003/rpg2003.zip" -o"$biosPath/rtp/2003" && rm "$biosPath/rtp/2003/rpg2003.zip" + 7z x "$biosPath/rtp/2003/rpg2003_rtp_installer.exe" -o"$biosPath/rtp/2003" && rm "$biosPath/rtp/2003/rpg2003_rtp_installer.exe" + 7z x "$biosPath/rtp/2000/rpg2000.zip" -o"$biosPath/rtp/2000" && rm "$biosPath/rtp/2000/rpg2000.zip" +} + + +function RetroArch_resetCoreConfigs(){ + + find "$RetroArch_coreConfigFolders" -type f -iname "*.cfg" -o -type f -iname "*.opt"| while read file + do + rm "$file" + done + RetroArch_init +} + +RetroArch_autoSaveOn(){ + changeLine 'savestate_auto_load = ' 'savestate_auto_load = "true"' "$RetroArch_configFile" + changeLine 'savestate_auto_save = ' 'savestate_auto_save = "true"' "$RetroArch_configFile" +} +RetroArch_autoSaveOff(){ + changeLine 'savestate_auto_load = ' 'savestate_auto_load = "false"' "$RetroArch_configFile" + changeLine 'savestate_auto_save = ' 'savestate_auto_save = "false"' "$RetroArch_configFile" +} +RetroArch_retroAchievementsOn(){ + changeLine 'cheevos_enable = ' 'cheevos_enable = "true"' "$RetroArch_configFile" + #Mame fix + #RetroArch_setOverride 'mame.cfg' 'MAME 2003-Plus' 'cheevos_enable' '"false"' + #RetroArch_setOverride 'mame.cfg' 'MAME' 'cheevos_enable' '"false"' +} +RetroArch_retroAchievementsOff(){ + changeLine 'cheevos_enable = ' 'cheevos_enable = "false"' "$RetroArch_configFile" + #Mame fix + #RetroArch_setOverride 'mame.cfg' 'MAME 2003-Plus' 'cheevos_enable' '"false"' + #RetroArch_setOverride 'mame.cfg' 'MAME' 'cheevos_enable' '"false"' +} +RetroArch_retroAchievementsPromptLogin(){ + text=$(printf "Do you want to use RetroAchievments on Retroarch?\n\nYou need to have an account on https://retroachievements.org\n\nActivating RetroAchievments will disable save states unless you disable hardcore mode\n\n\n\nPress STEAM + X to get the onscreen Keyboard\n\nMake sure your RetroAchievments account is validated on the website or RetroArch will crash") + RAInput=$(zenity --forms \ + --title="Retroachievements Sign in" \ + --text="$text" \ + --add-entry="Username: " \ + --add-password="Password: " \ + --separator="," 2>/dev/null) + ans=$? + if [ $ans -eq 0 ]; then + echo "RetroAchievment Login" + echo "$RAInput" | awk -F "," '{print $1}' > "$HOME/emudeck/.rau" + echo "$RAInput" | awk -F "," '{print $2}' > "$HOME/emudeck/.rap" + else + echo "Cancel RetroAchievment Login" + fi +} +RetroArch_retroAchievementsSetLogin(){ + rap=$(cat ~/emudeck/.rap) + rau=$(cat ~/emudeck/.rau) + echo "Evaluate RetroAchievements Login." + if [ ${#rap} -lt 1 ]; then + echo "--No password." + elif [ ${#rau} -lt 1 ]; then + echo "--No username." + else + echo "Valid Retroachievements Username and Password length" + changeLine 'cheevos_username = ' 'cheevos_username = "'"${rau}"'"' "$RetroArch_configFile" + changeLine 'cheevos_password = ' 'cheevos_password = "'"${rap}"'"' "$RetroArch_configFile" + fi +} +RetroArch_setSNESAR(){ + if [ "$SNESAR" == 87 ]; then + RetroArch_snes_ar87 + else + RetroArch_snes_ar43 + fi +} +RetroArch_setBezels(){ + if [ "$RABezels" == true ]; then + RetroArch_bezelOnAll + else + RetroArch_bezelOffAll + fi +} +RetroArch_setShadersCRT(){ + if [ "$RAHandClassic2D" == true ]; then + RetroArch_CRTshaderOnAll + else + RetroArch_CRTshaderOffAll + fi +} +RetroArch_setShadersMAT(){ + if [ "$RAHandHeldShader" == true ]; then + RetroArch_MATshadersOnAll + else + RetroArch_MATshadersOffAll + fi +} diff --git a/functions/EmuScripts/emuDeckRyujinx.sh b/functions/EmuScripts/emuDeckRyujinx.sh new file mode 100644 index 00000000..4f309207 --- /dev/null +++ b/functions/EmuScripts/emuDeckRyujinx.sh @@ -0,0 +1,186 @@ +#!/bin/bash + +#variables +Ryujinx_emuName="Ryujinx" +Ryujinx_emuType="Binary" +Ryujinx_emuPath="$HOME/Applications/publish" + +#cleanupOlderThings +Ryujinx_cleanup(){ + echo "Begin Ryujinx Cleanup" +} + +#Install +Ryujinx_install(){ + echo "Begin Ryujinx Install" + installEmuBI "Ryujinx" "$(getReleaseURLGH "Ryujinx/release-channel-master" "-linux_x64.tar.gz")" "Ryujinx" "tar.gz" + tar -xvf "$HOME/Applications/Ryujinx.tar.gz" -C "$HOME/Applications/" + chmod +x "$HOME/Applications/publish/Ryujinx" + rm -rf "$HOME/Applications/Ryujinx.tar.gz" +} + +#ApplyInitialSettings +Ryujinx_init(){ + echo "Begin Ryujinx Init" + + configEmuAI "Ryujinx" "config" "$HOME/.config/Ryujinx" "$EMUDECKGIT/configs/Ryujinx" "true" + + Ryujinx_setEmulationFolder + Ryujinx_setupStorage + Ryujinx_finalize + +} + +#update +Ryujinx_update(){ + echo "Begin Ryujinx update" + + configEmuAI "yuzu" "config" "$HOME/.config/Ryujinx" "$EMUDECKGIT/configs/Ryujinx" + + Ryujinx_setEmulationFolder + Ryujinx_setupStorage + Ryujinx_finalize +} + + + +#ConfigurePaths +Ryujinx_setEmulationFolder(){ + echo "Begin Ryujinx Path Config" +# configFile="$HOME/.config/yuzu/qt-config.ini" +# screenshotDirOpt='Screenshots\\screenshot_path=' +# gameDirOpt='Paths\\gamedirs\\4\\path=' +# dumpDirOpt='dump_directory=' +# loadDir='load_directory=' +# nandDirOpt='nand_directory=' +# sdmcDirOpt='sdmc_directory=' +# tasDirOpt='tas_directory=' +# newScreenshotDirOpt='Screenshots\\screenshot_path='"${storagePath}/yuzu/screenshots" +# newGameDirOpt='Paths\\gamedirs\\4\\path='"${romsPath}/switch" +# newDumpDirOpt='dump_directory='"${storagePath}/yuzu/dump" +# newLoadDir='load_directory='"${storagePath}/yuzu/load" +# newNandDirOpt='nand_directory='"${storagePath}/yuzu/nand" +# newSdmcDirOpt='sdmc_directory='"${storagePath}/yuzu/sdmc" +# newTasDirOpt='tas_directory='"${storagePath}/yuzu/tas" +# +# +# sed -i "/${screenshotDirOpt}/c\\${newScreenshotDirOpt}" "$configFile" +# sed -i "/${gameDirOpt}/c\\${newGameDirOpt}" "$configFile" +# sed -i "/${dumpDirOpt}/c\\${newDumpDirOpt}" "$configFile" +# sed -i "/${loadDir}/c\\${newLoadDir}" "$configFile" +# sed -i "/${nandDirOpt}/c\\${newNandDirOpt}" "$configFile" +# sed -i "/${sdmcDirOpt}/c\\${newSdmcDirOpt}" "$configFile" +# sed -i "/${tasDirOpt}/c\\${newTasDirOpt}" "$configFile" + + #Setup Bios symlinks + unlink "${biosPath}/ryujinx/keys" + mkdir -p "$HOME/.config/Ryujinx/system/" + mkdir -p "${biosPath}/ryujinx/" + ln -sn "$HOME/.config/Ryujinx/system" "${biosPath}/ryujinx/keys" +- + + sed -i "s|/run/media/mmcblk0p1/Emulation/roms|${romsPath}|g" "$HOME/.config/Ryujinx/Config.json" + + + +} + +#SetupSaves +Ryujinx_setupSaves(){ + echo "Begin Ryujinx save link" + #Ryu saves the games in the same folder as the shaders... + #linkToSaveFolder ryujinx saves "${storagePath}/ryujinx/games/" +} + + +#SetupStorage +Ryujinx_setupStorage(){ + echo "Begin Ryujinx storage config" + + origPath="$HOME/.config/" + mkdir -p "${storagePath}/ryujinx/" + rsync -av "${origPath}/Ryujinx/games/" "${storagePath}/ryujinx/games/" && rm -rf "${origPath}Ryujinx/games" + ln -ns "${storagePath}/ryujinx/games/" "${origPath}/Ryujinx/games" + +} + + +#WipeSettings +Ryujinx_wipe(){ + echo "Begin Ryujinx delete config directories" + rm -rf "$HOME/.config/Ryujinx" +} + + +#Uninstall +Ryujinx_uninstall(){ + echo "Begin Ryujinx uninstall" + rm -rf "$Ryujinx_emuPath" +} + +#Migrate +Ryujinx_migrate(){ + echo "Begin Ryujinx Migration" + emu="Ryujinx" +# migrationFlag="$HOME/emudeck/.${emu}MigrationCompleted" +# #check if we have a nomigrateflag for $emu +# if [ ! -f "$migrationFlag" ]; then +# #yuzu flatpak to appimage +# #From -- > to +# migrationTable=() +# migrationTable+=("$HOME/.var/app/org.yuzu_emu.yuzu/data/yuzu" "$HOME/.local/share/yuzu") +# migrationTable+=("$HOME/.var/app/org.yuzu_emu.yuzu/config/yuzu" "$HOME/.config/yuzu") +# +# migrateAndLinkConfig "$emu" "$migrationTable" +# fi + + #move data from hidden folders out to these folders in case the user already put stuff here. + origPath="$HOME/.config" + + Ryujinx_setupStorage + + rsync -av "${origPath}/Ryujinx/games" "${storagePath}/ryujinx/games" && rm -rf "${origPath}/Ryujinx/games" + ln -s "${storagePath}/ryujinx/games" "${origPath}/ryujinx/games" #may want to unlink this before hand? +} + +Ryujinx_convertFromYuzu(){ + echo "Begin converting firmware from Yuzu" + for entry in "$biosPath"/yuzu/firmware/*.nca + do + folder=${entry##*/} + mkdir -p "$HOME/.config/Ryujinx/bis/system/Contents/registered/$folder/" + cp "$entry" "$HOME/.config/Ryujinx/bis/system/Contents/registered/$folder/00" + + done +} + + +#setABXYstyle +Ryujinx_setABXYstyle(){ +echo "NYI" +} + +#WideScreenOn +Ryujinx_wideScreenOn(){ +echo "NYI" +} + +#WideScreenOff +Ryujinx_wideScreenOff(){ +echo "NYI" +} + +#BezelOn +Ryujinx_bezelOn(){ +echo "NYI" +} + +#BezelOff +Ryujinx_bezelOff(){ +echo "NYI" +} + +#finalExec - Extra stuff +Ryujinx_finalize(){ + echo "Begin Ryujinx finalize" +} \ No newline at end of file diff --git a/functions/EmuScripts/emuDeckXemu.sh b/functions/EmuScripts/emuDeckXemu.sh new file mode 100644 index 00000000..d59a9d90 --- /dev/null +++ b/functions/EmuScripts/emuDeckXemu.sh @@ -0,0 +1,139 @@ +#!/bin/bash +#variables +Xemu_emuName="Xemu-Emu" +Xemu_emuType="FlatPak" +Xemu_emuPath="app.xemu.xemu" + +#cleanupOlderThings +Xemu_cleanup(){ + echo "NYI" +} + +#Install +Xemu_install() { + installEmuFP "${Xemu_emuName}" "${Xemu_emuPath}" + flatpak override "${Xemu_emuPath}" --filesystem=host --user +} + +#ApplyInitialSettings +Xemu_init() { + configEmuFP "${Xemu_emuName}" "${Xemu_emuPath}" "true" + Xemu_migrate + Xemu_setupStorage + Xemu_setEmulationFolder +} + +#update +Xemu_update() { + configEmuFP "${Xemu_emuName}" "${Xemu_emuPath}" + Xemu_migrate + Xemu_setupStorage + Xemu_setEmulationFolder +} + +#ConfigurePaths +Xemu_setEmulationFolder(){ + configFile="$HOME/.var/app/app.xemu.xemu/data/xemu/xemu/xemu.toml" + + bootrrom_path='bootrom_path = ' + flashrom_path='flashrom_path = ' + eeprom_path='eeprom_path = ' + hdd_path='hdd_path = ' + + bootrrom_pathSetting="${bootrrom_path}""'${biosPath}/mcpx_1.0.bin'" + flashrom_pathSetting="${flashrom_path}""'${biosPath}/Complex_4627v1.03.bin'" + eeprom_pathSetting="${eeprom_path}""'${storagePath}/xemu/eeprom.bin'" + hdd_pathSetting="${hdd_path}""'${storagePath}/xemu/xbox_hdd.qcow2'" + + changeLine "${bootrrom_path}" "${bootrrom_pathSetting}" "$configFile" + changeLine "${flashrom_path}" "${flashrom_pathSetting}" "$configFile" + changeLine "${eeprom_path}" "${eeprom_pathSetting}" "$configFile" + changeLine "${hdd_path}" "${hdd_pathSetting}" "$configFile" +} + +#SetupSaves +Xemu_setupSaves(){ + echo "NYI" +} + + +#SetupStorage +Xemu_setupStorage(){ + mkdir -p "${storagePath}/xemu" + flatpak override app.xemu.xemu --filesystem="${storagePath}/xemu":rw --user + if [[ ! -f "${storagePath}/xemu/xbox_hdd.qcow2" ]]; then + mkdir -p "${storagePath}/xemu" + cd "${storagePath}/xemu" + curl -L https://github.com/mborgerson/xemu-hdd-image/releases/latest/download/xbox_hdd.qcow2.zip -o xbox_hdd.qcow2.zip && unzip -j xbox_hdd.qcow2.zip && rm -rf xbox_hdd.qcow2.zip + fi +} + + +#WipeSettings +Xemu_wipe() { + rm -rf "$HOME/.var/app/$Xemu_emuPath" + # prob not cause roms are here +} + + +#Uninstall +Xemu_uninstall() { + flatpak uninstall "$Xemu_emuPath" --user -y +} + +#setABXYstyle +Xemu_setABXYstyle(){ + echo "NYI" +} + +#Migrate +Xemu_migrate(){ + if [ ! -f "$storagePath/xemu/xbox_hdd.qcow2" ] && [ -d "$HOME/.var/app/app.xemu.xemu" ]; then + + echo "xbox hdd does not exist in storagepath." + echo -e "" + setMSG "Moving Xemu HDD and EEPROM to the Emulation/storage folder" + echo -e "" + + if [ -f "${savesPath}/xemu/xbox_hdd.qcow2" ]; then + mv -fv ${savesPath}/xemu/* ${storagePath}/xemu/ && rm -rf ${savesPath}/xemu/ + + elif [ -f "$HOME/.var/app/app.xemu.xemu/data/xemu/xemu/xbox_hdd.qcow2" ]; then + mv "$HOME/.var/app/app.xemu.xemu/data/xemu/xemu/xbox_hdd.qcow2" $storagePath/xemu/ + mv "$HOME/.var/app/app.xemu.xemu/data/xemu/xemu/eeprom.bin" $storagePath/xemu/ + + fi + fi +} + +#WideScreenOn +Xemu_wideScreenOn(){ + configFile="$HOME/.var/app/app.xemu.xemu/data/xemu/xemu/xemu.toml" + fit='fit = ' + fitSetting="${fit}scale_16_9" + changeLine "${fit}" "${fitSetting}" "$configFile" +} + +#WideScreenOff +Xemu_WideScreenOff(){ + configFile="$HOME/.var/app/app.xemu.xemu/data/xemu/xemu/xemu.toml" + fit='fit = ' + fitSetting="${fit}scale_4_3" + changeLine "${fit}" "${fitSetting}" "$configFile" +} + +#BezelOn +Xemu_bezelOn(){ +echo "NYI" +} + +#BezelOff +Xemu_bezelOff(){ +echo "NYI" +} + +#finalExec - Extra stuff +Xemu_finalize(){ + echo "NYI" +} + diff --git a/functions/EmuScripts/emuDeckXenia.sh b/functions/EmuScripts/emuDeckXenia.sh new file mode 100644 index 00000000..a6d65b49 --- /dev/null +++ b/functions/EmuScripts/emuDeckXenia.sh @@ -0,0 +1,99 @@ +#!/bin/bash +#variables +Xenia_emuName="Xenia" +Xenia_emuType="windows" +Xenia_emuPath="${romsPath}/xbox360/Xenia.exe" +Xenia_releaseURL="https://github.com/xenia-project/release-builds-windows/releases/latest/download/xenia_master.zip" +Xenia_XeniaSettings="${romsPath}/xbox360/settings.xml" + +#cleanupOlderThings +Xenia_cleanup(){ + echo "NYI" +} + +#Install +Xenia_install(){ + setMSG "Installing Xenia" + + curl -L "$Xenia_releaseURL" --output "$romsPath"/xbox360/xenia_master.zip + mkdir -p "$romsPath"/xbox360/tmp + unzip -o "$romsPath"/xbox360/xenia_master.zip -d "$romsPath"/xbox360/tmp + mv "$romsPath"/xbox360/tmp/* "$romsPath"/xbox360 + rm -rf "$romsPath"/xbox360/tmp + rm -f "$romsPath"/xbox360/xenia_master.zip +} + +#ApplyInitialSettings +Xenia_init(){ + setMSG "Initializing Xenia Config" + rsync -avhp $EMUDECKGIT/configs/xenia/ "$romsPath"/xbox360 +} + +#update +Xenia_update(){ + echo "NYI" +} + +#ConfigurePaths +Xenia_setEmulationFolder(){ + echo "NYI" +} + +#SetupSaves +Xenia_setupSaves(){ + echo "NYI" +} + + +#SetupStorage +Xenia_setupStorage(){ + echo "NYI" +} + + +#WipeSettings +Xenia_wipeSettings(){ + echo "NYI" +} + + +#Uninstall +Xenia_uninstall(){ + rm -rf "${Xenia_emuPath}" +} + +#setABXYstyle +Xenia_setABXYstyle(){ + echo "NYI" +} + +#Migrate +Xenia_migrate(){ + echo "NYI" +} + +#WideScreenOn +Xenia_wideScreenOn(){ + echo "NYI" +} + +#WideScreenOff +Xenia_wideScreenOff(){ + echo "NYI" +} + +#BezelOn +Xenia_bezelOn(){ + echo "NYI" +} + +#BezelOff +Xenia_bezelOff(){ + echo "NYI" +} + +#finalExec - Extra stuff +Xenia_finalize(){ + Xenia_cleanup +} + diff --git a/functions/EmuScripts/emuDeckYuzu.sh b/functions/EmuScripts/emuDeckYuzu.sh new file mode 100644 index 00000000..7caad1d2 --- /dev/null +++ b/functions/EmuScripts/emuDeckYuzu.sh @@ -0,0 +1,191 @@ +#!/bin/bash + +#variables +Yuzu_emuName="Yuzu" +Yuzu_emuType="AppImage" +Yuzu_emuPath="$HOME/Applications/yuzu.AppImage" + +#cleanupOlderThings +Yuzu_cleanup(){ + echo "Begin Yuzu Cleanup" + #Fixes repeated Symlink for older installations + unlink "$HOME/.var/app/org.yuzu_emu.yuzu/data/yuzu/keys/keys" + unlink "$HOME/.var/app/org.yuzu_emu.yuzu/data/yuzu/nand/system/Contents/registered/registered" + +} + +#Install +Yuzu_install(){ + echo "Begin Yuzu Install" + installEmuAI "yuzu" "$(getReleaseURLGH "yuzu-emu/yuzu-mainline" "AppImage")" #needs to be lowercase yuzu for EsDE to find it. + flatpak override org.yuzu_emu.yuzu --filesystem=host --user # still doing this, as we do link the appimage / flatpak config. if the user ever decides to install the flatpak, we do want it to work. +} + +#ApplyInitialSettings +Yuzu_init(){ + echo "Begin Yuzu Init" + + Yuzu_migrate + + configEmuAI "yuzu" "config" "$HOME/.config/yuzu" "$EMUDECKGIT/configs/org.yuzu_emu.yuzu/config/yuzu" "true" + configEmuAI "yuzu" "data" "$HOME/.local/share/yuzu" "$EMUDECKGIT/configs/org.yuzu_emu.yuzu/data/yuzu" "true" + + Yuzu_setEmulationFolder + Yuzu_setupStorage + Yuzu_finalize + +} + +#update +Yuzu_update(){ + echo "Begin Yuzu update" + + Yuzu_migrate + + configEmuAI "yuzu" "config" "$HOME/.config/yuzu" "$EMUDECKGIT/configs/org.yuzu_emu.yuzu/config/yuzu" + configEmuAI "yuzu" "data" "$HOME/.local/share/yuzu" "$EMUDECKGIT/configs/org.yuzu_emu.yuzu/data/yuzu" + + Yuzu_setEmulationFolder + Yuzu_setupStorage + Yuzu_finalize +} + + + +#ConfigurePaths +Yuzu_setEmulationFolder(){ + echo "Begin Yuzu Path Config" + configFile="$HOME/.config/yuzu/qt-config.ini" + screenshotDirOpt='Screenshots\\screenshot_path=' + gameDirOpt='Paths\\gamedirs\\4\\path=' + dumpDirOpt='dump_directory=' + loadDir='load_directory=' + nandDirOpt='nand_directory=' + sdmcDirOpt='sdmc_directory=' + tasDirOpt='tas_directory=' + newScreenshotDirOpt='Screenshots\\screenshot_path='"${storagePath}/yuzu/screenshots" + newGameDirOpt='Paths\\gamedirs\\4\\path='"${romsPath}/switch" + newDumpDirOpt='dump_directory='"${storagePath}/yuzu/dump" + newLoadDir='load_directory='"${storagePath}/yuzu/load" + newNandDirOpt='nand_directory='"${storagePath}/yuzu/nand" + newSdmcDirOpt='sdmc_directory='"${storagePath}/yuzu/sdmc" + newTasDirOpt='tas_directory='"${storagePath}/yuzu/tas" + + + sed -i "/${screenshotDirOpt}/c\\${newScreenshotDirOpt}" "$configFile" + sed -i "/${gameDirOpt}/c\\${newGameDirOpt}" "$configFile" + sed -i "/${dumpDirOpt}/c\\${newDumpDirOpt}" "$configFile" + sed -i "/${loadDir}/c\\${newLoadDir}" "$configFile" + sed -i "/${nandDirOpt}/c\\${newNandDirOpt}" "$configFile" + sed -i "/${sdmcDirOpt}/c\\${newSdmcDirOpt}" "$configFile" + sed -i "/${tasDirOpt}/c\\${newTasDirOpt}" "$configFile" + + #Setup Bios symlinks + unlink "${biosPath}/yuzu/keys" 2>/dev/null + unlink "${biosPath}/yuzu/firmware"2>/dev/null + + mkdir -p "$HOME/.local/share/yuzu/keys/" + mkdir -p "${storagePath}/yuzu/nand/system/Contents/registered/" + + ln -sn "$HOME/.local/share/yuzu/keys/" "${biosPath}/yuzu/keys" + ln -sn "${storagePath}/yuzu/nand/system/Contents/registered/" "${biosPath}/yuzu/firmware" + + touch "${storagePath}/yuzu/nand/system/Contents/registered/putfirmwarehere.txt" + +} + +#SetupSaves +Yuzu_setupSaves(){ + echo "Begin Yuzu save link" + unlink "${savesPath}/yuzu/saves" 2>/dev/null # Fix for previous bad symlink2>/dev/null + linkToSaveFolder yuzu saves "${storagePath}/yuzu/nand/user/save/" +} + + +#SetupStorage +Yuzu_setupStorage(){ + echo "Begin Yuzu storage config" + mkdir -p "${storagePath}/yuzu/dump" + mkdir -p "${storagePath}/yuzu/load" + mkdir -p "${storagePath}/yuzu/sdmc" + mkdir -p "${storagePath}/yuzu/nand" + mkdir -p "${storagePath}/yuzu/screenshots" + mkdir -p "${storagePath}/yuzu/tas" +} + + +#WipeSettings +Yuzu_wipe(){ + echo "Begin Yuzu delete config directories" + rm -rf "$HOME/.config/yuzu" + rm -rf "$HOME/.local/share/yuzu" +} + + +#Uninstall +Yuzu_uninstall(){ + echo "Begin Yuzu uninstall" + rm -rf "$Yuzu_emuPath" +} + + +#Migrate +Yuzu_migrate(){ + echo "Begin Yuzu Migration" + emu="Yuzu" + migrationFlag="$HOME/emudeck/.${emu}MigrationCompleted" + #check if we have a nomigrateflag for $emu + if [ ! -f "$migrationFlag" ]; then + #yuzu flatpak to appimage + #From -- > to + migrationTable=() + migrationTable+=("$HOME/.var/app/org.yuzu_emu.yuzu/data/yuzu" "$HOME/.local/share/yuzu") + migrationTable+=("$HOME/.var/app/org.yuzu_emu.yuzu/config/yuzu" "$HOME/.config/yuzu") + + migrateAndLinkConfig "$emu" "$migrationTable" + fi + + #move data from hidden folders out to these folders in case the user already put stuff here. + origPath="$HOME/.local/share/" + + Yuzu_setupStorage + + rsync -av "${origPath}yuzu/dump" "${storagePath}/yuzu/" && rm -rf "${origPath}yuzu/dump" + rsync -av "${origPath}yuzu/load" "${storagePath}/yuzu/" && rm -rf "${origPath}yuzu/load" + rsync -av "${origPath}yuzu/sdmc" "${storagePath}/yuzu/" && rm -rf "${origPath}yuzu/sdmc" + rsync -av "${origPath}yuzu/nand" "${storagePath}/yuzu/" && rm -rf "${origPath}yuzu/nand" + rsync -av "${origPath}yuzu/screenshots" "${storagePath}/yuzu/" && rm -rf "${origPath}yuzu/screenshots" + rsync -av "${origPath}yuzu/tas" "${storagePath}/yuzu/" && rm -rf "${origPath}yuzu/tas" +} + +#setABXYstyle +Yuzu_setABXYstyle(){ +echo "NYI" +} + +#WideScreenOn +Yuzu_wideScreenOn(){ +echo "NYI" +} + +#WideScreenOff +Yuzu_wideScreenOff(){ +echo "NYI" +} + +#BezelOn +Yuzu_bezelOn(){ +echo "NYI" +} + +#BezelOff +Yuzu_bezelOff(){ +echo "NYI" +} + +#finalExec - Extra stuff +Yuzu_finalize(){ + echo "Begin Yuzu finalize" + Yuzu_cleanup +} + diff --git a/functions/RAAchievment.sh b/functions/RAAchievment.sh deleted file mode 100644 index 7e658255..00000000 --- a/functions/RAAchievment.sh +++ /dev/null @@ -1,43 +0,0 @@ -#!/bin/bash -RAAchievment(){ -#if there is no rap file and we have said to enable retroachieve, we have to ask. Also if the user wants to change their sign in, we ask. -if [[ ! -f ~/emudeck/.rap && $doRAEnable == true ]] || [[ $doRASignIn == true ]]; then - - text=$(printf "Do you want to use RetroAchievments on Retroarch?\n\nYou need to have an account on https://retroachievements.org\n\nActivating RetroAchievments will disable save states unless you disable hardcore mode\n\n\n\nPress STEAM + X to get the onscreen Keyboard\n\nMake sure your RetroAchievments account is validated on the website or RetroArch will crash") - RAInput=$(zenity --forms \ - --title="Retroachievements Sign in" \ - --text="$text" \ - --add-entry="Username: " \ - --add-password="Password: " \ - --separator="," 2>/dev/null) - ans=$? - if [ $ans -eq 0 ]; then - echo "RetroAchievment Login" - echo $RAInput | awk -F "," '{print $1}' > ~/emudeck/.rau - echo $RAInput | awk -F "," '{print $2}' > ~/emudeck/.rap - rap=$(cat ~/emudeck/.rap) - rau=$(cat ~/emudeck/.rau) - if [ ${#rap} -lt 1 ]; then - echo "No password" - doRAEnable=false - elif [ ${#rau} -lt 1 ]; then - echo "No username" - doRAEnable=false - else - echo "Valid Username and Password" - fi - else - echo "Cancel RetroAchievment Login" - fi -fi - -#if we have a rap file already, and the user wanted to enable retroachievements, but didn't want to set a new username and pw. -if [[ -f ~/emudeck/.rap && $doRAEnable == true ]]; then - rap=$(cat ~/emudeck/.rap) - rau=$(cat ~/emudeck/.rau) - - sed -i "s|cheevos_password = \"\"|cheevos_password = \"${rap}\"|g" $raConfigFile - sed -i "s|cheevos_username = \"\"|cheevos_username = \"${rau}\"|g" $raConfigFile - sed -i "s|cheevos_enable = \"false\"|cheevos_enable = \"true\"|g" $raConfigFile -fi -} diff --git a/functions/RABezels.sh b/functions/RABezels.sh deleted file mode 100644 index f242c796..00000000 --- a/functions/RABezels.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/bash -RABezels(){ - if [ $RABezels == true ]; then - find ~/.var/app/org.libretro.RetroArch/config/retroarch/config/ -type f -name "*.bak" | while read f; do mv -v "$f" "${f%.*}.cfg"; done - else - find ~/.var/app/org.libretro.RetroArch/config/retroarch/config/ -type f -name "*.cfg" | while read f; do mv -v "$f" "${f%.*}.bak"; done - fi -} diff --git a/functions/RACores.sh b/functions/RACores.sh deleted file mode 100644 index 162a3150..00000000 --- a/functions/RACores.sh +++ /dev/null @@ -1,44 +0,0 @@ -#!/bin/bash -RACores(){ - mkdir -p ~/.var/app/org.libretro.RetroArch/config/retroarch/cores - raUrl="https://buildbot.libretro.com/nightly/linux/x86_64/latest/" - RAcores=(bsnes_hd_beta_libretro.so flycast_libretro.so gambatte_libretro.so genesis_plus_gx_libretro.so genesis_plus_gx_wide_libretro.so mednafen_lynx_libretro.so mednafen_ngp_libretro.so mednafen_wswan_libretro.so melonds_libretro.so mesen_libretro.so mgba_libretro.so mupen64plus_next_libretro.so nestopia_libretro.so picodrive_libretro.so ppsspp_libretro.so snes9x_libretro.so stella_libretro.so yabasanshiro_libretro.so yabause_libretro.so yabause_libretro.so mame2003_plus_libretro.so mame2010_libretro.so mame_libretro.so melonds_libretro.so fbneo_libretro.so bluemsx_libretro.so desmume_libretro.so sameboy_libretro.so gearsystem_libretro.so mednafen_saturn_libretro.so opera_libretro.so dosbox_core_libretro.so dosbox_pure_libretro.so dosbox_svn_libretro.so puae_libretro.so) - setMSG "Downloading RetroArch Cores for EmuDeck" - for i in "${RAcores[@]}" - do - FILE=~/.var/app/org.libretro.RetroArch/config/retroarch/cores/${i} - if [ -f "$FILE" ]; then - echo "${i}...Already Downloaded" - else - curl $raUrl$i.zip --output ~/.var/app/org.libretro.RetroArch/config/retroarch/cores/${i}.zip - #rm ~/.var/app/org.libretro.RetroArch/config/retroarch/cores/${i}.zip - echo "${i}...Downloaded!" - fi - done - - if [ $doInstallESDE == true ]; then - RAcores=(a5200_libretro.so 81_libretro.so atari800_libretro.so bluemsx_libretro.so chailove_libretro.so fbneo_libretro.so freechaf_libretro.so freeintv_libretro.so fuse_libretro.so gearsystem_libretro.so gw_libretro.so hatari_libretro.so lutro_libretro.so mednafen_pcfx_libretro.so mednafen_vb_libretro.so mednafen_wswan_libretro.so mu_libretro.so neocd_libretro.so nestopia_libretro.so nxengine_libretro.so o2em_libretro.so picodrive_libretro.so pokemini_libretro.so prboom_libretro.so prosystem_libretro.so px68k_libretro.so quasi88_libretro.so scummvm_libretro.so squirreljme_libretro.so theodore_libretro.so uzem_libretro.so vecx_libretro.so vice_xvic_libretro.so virtualjaguar_libretro.so x1_libretro.so mednafen_lynx_libretro.so mednafen_ngp_libretro.so mednafen_pce_libretro.so mednafen_pce_fast_libretro.so mednafen_psx_libretro.so mednafen_psx_hw_libretro.so mednafen_saturn_libretro.so mednafen_supafaust_libretro.so mednafen_supergrafx_libretro.so blastem_libretro.so bluemsx_libretro.so bsnes_libretro.so bsnes_mercury_accuracy_libretro.so cap32_libretro.so citra2018_libretro.so citra_libretro.so crocods_libretro.so desmume2015_libretro.so desmume_libretro.so dolphin_libretro.so dosbox_core_libretro.so dosbox_pure_libretro.so dosbox_svn_libretro.so fbalpha2012_cps1_libretro.so fbalpha2012_cps2_libretro.so fbalpha2012_cps3_libretro.so fbalpha2012_libretro.so fbalpha2012_neogeo_libretro.so fceumm_libretro.so fbneo_libretro.so flycast_libretro.so fmsx_libretro.so frodo_libretro.so gambatte_libretro.so gearboy_libretro.so gearsystem_libretro.so genesis_plus_gx_libretro.so genesis_plus_gx_wide_libretro.so gpsp_libretro.so handy_libretro.so kronos_libretro.so mame2000_libretro.so mame2003_plus_libretro.so mame2010_libretro.so mame_libretro.so melonds_libretro.so mesen_libretro.so mesen-s_libretro.so mgba_libretro.so mupen64plus_next_libretro.so nekop2_libretro.so np2kai_libretro.so nestopia_libretro.so parallel_n64_libretro.so pcsx2_libretro.so pcsx_rearmed_libretro.so picodrive_libretro.so ppsspp_libretro.so puae_libretro.so quicknes_libretro.so race_libretro.so sameboy_libretro.so smsplus_libretro.so snes9x2010_libretro.so snes9x_libretro.so stella2014_libretro.so stella_libretro.so tgbdual_libretro.so vbam_libretro.so vba_next_libretro.so vice_x128_libretro.so vice_x64_libretro.so vice_x64sc_libretro.so vice_xscpu64_libretro.so yabasanshiro_libretro.so yabause_libretro.so bsnes_hd_beta_libretro.so swanstation_libretro.so) - setMSG "Downloading RetroArch Cores for EmulationStation DE" - for i in "${RAcores[@]}" - do - FILE=~/.var/app/org.libretro.RetroArch/config/retroarch/cores/${i} - if [ -f "$FILE" ]; then - echo "${i}...Already Downloaded" - else - curl $raUrl$i.zip --output ~/.var/app/org.libretro.RetroArch/config/retroarch/cores/${i}.zip - #rm ~/.var/app/org.libretro.RetroArch/config/retroarch/cores/${i}.zip - echo "${i}...Downloaded!" - fi - done - fi - - for entry in ~/.var/app/org.libretro.RetroArch/config/retroarch/cores/*.zip - do - unzip -o "$entry" -d ~/.var/app/org.libretro.RetroArch/config/retroarch/cores/ - done - - for entry in ~/.var/app/org.libretro.RetroArch/config/retroarch/cores/*.zip - do - rm -f "$entry" - done -} diff --git a/functions/RASNES.sh b/functions/RASNES.sh deleted file mode 100644 index f7ed1e76..00000000 --- a/functions/RASNES.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/bash -RASNES(){ - if [ $SNESAR == 43 ]; then - cp ~/.var/app/org.libretro.RetroArch/config/retroarch/config/Snes9x/snes43.cfg ~/.var/app/org.libretro.RetroArch/config/retroarch/config/Snes9x/snes.cfg - else - cp ~/.var/app/org.libretro.RetroArch/config/retroarch/config/Snes9x/snes87.cfg ~/.var/app/org.libretro.RetroArch/config/retroarch/config/Snes9x/snes.cfg - fi -} diff --git a/functions/RAautoSave.sh b/functions/RAautoSave.sh deleted file mode 100644 index 44e74f06..00000000 --- a/functions/RAautoSave.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash -RAautoSave(){ - if [ $RAautoSave == true ]; then - sed -i 's|savestate_auto_load = "false"|savestate_auto_load = "true"|g' $raConfigFile - sed -i 's|savestate_auto_save = "false"|savestate_auto_save = "true"|g' $raConfigFile - else - sed -i 's|savestate_auto_load = "true"|savestate_auto_load = "false"|g' $raConfigFile - sed -i 's|savestate_auto_save = "true"|savestate_auto_save = "false"|g' $raConfigFile - fi -} diff --git a/functions/ToolScripts/emuDeckBINUP.sh b/functions/ToolScripts/emuDeckBINUP.sh new file mode 100644 index 00000000..d7207385 --- /dev/null +++ b/functions/ToolScripts/emuDeckBINUP.sh @@ -0,0 +1,20 @@ +#!/bin/bash + +BINUP_toolName="EmuDeck Tool Updater" +BINUP_toolType="script" +BINUP_toolPath="${toolsPath}/binupdate/binupdate.sh" +BINUP_Shortcutlocation="$HOME/Desktop/EmuDeckBinUpdate.desktop" + + + +BINUP_install(){ + + rsync -avhp --mkpath "$EMUDECKGIT/tools/binupdate" "$toolsPath/" + + chmod +x "$BINUP_toolPath" + #update the paths in the script + sed -i "s|/run/media/mmcblk0p1/Emulation/roms|${romsPath}|g" "$BINUP_toolPath" + sed -i "s|/run/media/mmcblk0p1/Emulation/tools|${toolsPath}|g" "$BINUP_toolPath" + + createDesktopShortcut "$BINUP_Shortcutlocation" "$BINUP_toolName" "bash $BINUP_toolPath" "True" +} diff --git a/functions/ToolScripts/emuDeckCHD.sh b/functions/ToolScripts/emuDeckCHD.sh new file mode 100644 index 00000000..a5d7cf4e --- /dev/null +++ b/functions/ToolScripts/emuDeckCHD.sh @@ -0,0 +1,21 @@ +#!/bin/bash + +CHD_toolName="EmuDeck Compression Tool" +CHD_toolType="script" +CHD_toolPath="${toolsPath}/chdconv/chddeck.sh" +CHD_Shortcutlocation="$HOME/Desktop/EmuDeckCHD.desktop" + +CHD_install(){ + + rsync -avhp --mkpath "$EMUDECKGIT/tools/chdconv" "$toolsPath/" + + chmod +x "$CHD_toolPath" + chmod +x "$toolsPath"/chdconv/chdman5 + + #update the paths in the script + sed -i "s|/run/media/mmcblk0p1/Emulation/roms|${romsPath}|g" "$CHD_toolPath" + sed -i "s|/run/media/mmcblk0p1/Emulation/tools|${toolsPath}|g" "$CHD_toolPath" + + createDesktopShortcut "$CHD_Shortcutlocation" "$CHD_toolName" "bash $CHD_toolPath" "True" +} + diff --git a/functions/ToolScripts/emuDeckESDE.sh b/functions/ToolScripts/emuDeckESDE.sh new file mode 100644 index 00000000..02a4d986 --- /dev/null +++ b/functions/ToolScripts/emuDeckESDE.sh @@ -0,0 +1,210 @@ +#!/bin/bash +#variables +ESDE_toolName="EmulationStation-DE" +ESDE_toolType="AppImage" +ESDE_toolPath="${toolsPath}/EmulationStation-DE-x64_SteamDeck.AppImage" +ESDE_releaseURL="https://gitlab.com/es-de/emulationstation-de/-/raw/master/es-app/assets/latest_steam_deck_appimage.txt" + +es_systemsFile="$HOME/.emulationstation/custom_systems/es_systems.xml" +es_settingsFile="$HOME/.emulationstation/es_settings.xml" + +#cleanupOlderThings +ESDE_cleanup(){ + echo "NYI" +} + +#Install +ESDE_install(){ + setMSG "Installing $ESDE_toolName" + + curl $ESDE_releaseURL --output "$toolsPath/latesturl.txt" + latestURL=$(grep "https://gitlab" "$toolsPath/latesturl.txt") + + curl "$latestURL" --output "$ESDE_toolPath" + rm "$toolsPath/latesturl.txt" + chmod +x "$ESDE_toolPath" + +} + +#ApplyInitialSettings +ESDE_init(){ + + setMSG "Setting up $ESDE_toolName" + + mkdir -p "$HOME/.emulationstation/custom_systems/" + + rsync -avhp --mkpath "$EMUDECKGIT/configs/emulationstation/es_settings.xml" "$es_settingsFile" --backup --suffix=.bak + rsync -avhp --mkpath "$EMUDECKGIT/configs/emulationstation/custom_systems/es_systems.xml" "$es_systemsFile" --backup --suffix=.bak + + ESDE_addCustomSystems + ESDE_setEmulationFolder + ESDE_setDefaultEmulators + ESDE_applyTheme "$esdeTheme" + ESDE_migrateDownloadedMedia + ESDE_finalize +} + + + +ESDE_update(){ + + + setMSG "Setting up $ESDE_toolName" + + mkdir -p "$HOME/.emulationstation/custom_systems/" + + #update es_settings.xml + rsync -avhp --mkpath "$EMUDECKGIT/configs/emulationstation/es_settings.xml" "$es_settingsFile" --ignore-existing + rsync -avhp --mkpath "$EMUDECKGIT/configs/emulationstation/custom_systems/es_systems.xml" "$es_systemsFile" --ignore-existing + + ESDE_addCustomSystems + ESDE_setEmulationFolder + ESDE_setDefaultEmulators + ESDE_applyTheme "$esdeTheme" + ESDE_migrateDownloadedMedia + ESDE_finalize +} + +ESDE_addCustomSystems(){ + + + #insert cemu custom system if it doesn't exist, but the file does + if [[ $(grep -rnw "$es_systemsFile" -e 'Cemu (Proton)') == "" ]]; then + xmlstarlet ed --inplace --subnode '/systemList' --type elem --name 'system' \ + --var newSystem '$prev' \ + --subnode '$newSystem' --type elem --name 'name' -v 'wiiu' \ + --subnode '$newSystem' --type elem --name 'fullname' -v 'Nintendo Wii U' \ + --subnode '$newSystem' --type elem --name 'path' -v '%ROMPATH%/wiiu/roms' \ + --subnode '$newSystem' --type elem --name 'extension' -v '.rpx .RPX .wud .WUD .wux .WUX .elf .ELF .iso .ISO .wad .WAD .wua .WUA' \ + --subnode '$newSystem' --type elem --name 'command' -v "/usr/bin/bash ${toolsPath}/launchers/cemu.sh -f -g z:%ROM%" \ + --insert '$newSystem/command' --type attr --name 'label' --value "Cemu (Proton)" \ + --subnode '$newSystem' --type elem --name 'platform' -v 'wiiu' \ + --subnode '$newSystem' --type elem --name 'theme' -v 'wiiu' \ + "$es_systemsFile" + fi + #Custom Systems config end + + +} + +#update +ESDE_applyTheme(){ + defaultTheme="EPICNOIR" + local theme=$1 + if [[ "${theme}" == "" ]]; then + echo "ESDE: applyTheme parameter not set." + theme="$defaultTheme" + fi + echo "ESDE: applyTheme $theme" + mkdir -p "$HOME/.emulationstation/themes/" + git clone https://github.com/dragoonDorise/es-theme-epicnoir.git "$HOME/.emulationstation/themes/es-epicnoir" >> /dev/null + cd "$HOME/.emulationstation/themes/es-epicnoir" && git reset --hard HEAD && git clean -f -d && git pull + echo -e "OK!" + + if [[ "$theme" == *"EPICNOIR"* ]]; then + changeLine '' "$es_settingsFile" + fi + if [[ "$theme" == *"MODERN-DE"* ]]; then + changeLine '' "$es_settingsFile" + fi + if [[ "$theme" == *"RBSIMPLE-DE"* ]]; then + changeLine '' "$es_settingsFile" + fi +} + +#ConfigurePaths +ESDE_setEmulationFolder(){ + + #update cemu custom system launcher to correct path by just replacing the line, if it exists. + echo "updating $es_systemsFile" + commandString="/usr/bin/bash ${toolsPath}/launchers/cemu.sh -f -g z:%ROM%" + xmlstarlet ed -L -u '/systemList/system/command[@label="Cemu (Proton)"]' -v "$commandString" "$es_systemsFile" + + + + + echo "updating $es_settingsFile" + #configure roms Directory + esDE_romDir="" #roms + + changeLine '" + #search for media dir in xml, if not found, change to ours. If it's blank, also change to ours. + mediaDirFound=$(grep -rnw "$es_settingsFile" -e 'MediaDirectory') + mediaDirEmpty=$(grep -rnw "$es_settingsFile" -e '') + if [[ $mediaDirFound == '' ]]; then + echo "adding ES-DE ${esDE_MediaDir}" + sed -i -e '$a'"${esDE_MediaDir}" "$es_settingsFile" # use config file instead of link + elif [[ ! $mediaDirEmpty == '' ]]; then + echo "setting ES-DE MediaDirectory to ${esDE_MediaDir}" + changeLine '' $gamelistFile + fi + alternativeEmu=$(grep -rnw $gamelistFile -e 'alternativeEmulator') + if [[ $alternativeEmu == '' ]]; then + echo "" >> $gamelistFile + fi + sed -i "s|||g" $gamelistFile + fi +} \ No newline at end of file diff --git a/functions/ToolScripts/emuDeckPlugins.sh b/functions/ToolScripts/emuDeckPlugins.sh new file mode 100644 index 00000000..300ca05f --- /dev/null +++ b/functions/ToolScripts/emuDeckPlugins.sh @@ -0,0 +1,24 @@ +#!/bin/bash + +Plugins_installPluginLoader(){ + local PluginLoader_releaseURL="https://github.com/SteamDeckHomebrew/PluginLoader/raw/main/dist/install_prerelease.sh" + mkdir -p "$HOME/homebrew" + sudo chown -R deck:deck "$HOME/homebrew" + curl -L $PluginLoader_releaseURL | sh + touch "$HOME/.steam/steam/.cef-enable-remote-debugging" + sudo systemctl disable --now steam-web-debug-portforward.service +} + +Plugins_installPowerTools(){ + local ptHash + ptHash=$(curl https://beta.deckbrew.xyz/plugins | jq -r '.[] | select(.name=="PowerTools").versions[0].hash') + local url="https://cdn.tzatzikiweeb.moe/file/steam-deck-homebrew/versions/$ptHash.zip" + sudo rm -rf "$HOME/homebrew/plugins/PowerTools" + curl -l "$url" --output "$HOME/homebrew/PowerTools.zip" + sudo unzip "$HOME/homebrew/PowerTools.zip" -d "$HOME/homebrew/plugins/" && rm "$HOME/homebrew/PowerTools.zip" +} + +Plugins_installSteamDeckGyroDSU(){ + InstallGyro=$(bash <(curl -sL https://github.com/kmicki/SteamDeckGyroDSU/raw/master/pkg/update.sh)) + printf '%s' "$InstallGyro" +} diff --git a/functions/ToolScripts/emuDeckSRM.sh b/functions/ToolScripts/emuDeckSRM.sh new file mode 100644 index 00000000..90ac9ae3 --- /dev/null +++ b/functions/ToolScripts/emuDeckSRM.sh @@ -0,0 +1,65 @@ +#!/bin/bash +#variables +SRM_toolName="Steam Rom Manager" +SRM_toolType="AppImage" +SRM_toolPath="${toolsPath}/srm/Steam-ROM-Manager.AppImage" +SRM_releaseURL="$(getLatestReleaseURLGH "SteamGridDB/steam-rom-manager" "AppImage")" + +#cleanupOlderThings +SRM_cleanup(){ + rm -f "$HOME/Desktop/Steam-ROM-Manager-2.3.29.AppImage" + rm -f "$HOME/Desktop/Steam-ROM-Manager.AppImage" +} + +SRM_install(){ + setMSG "Installing Steam Rom Manager" + SRM_cleanup + mkdir -p "${toolsPath}/srm" + curl -L "$SRM_releaseURL" -o "$SRM_toolPath" + chmod +x "$SRM_toolPath" + SRM_createDesktopShortcut "$HOME/Desktop/SteamRomManager.desktop" +} + +SRM_createDesktopShortcut(){ + SRM_Shortcutlocation=$1 + + if [[ "$SRM_Shortcutlocation" == "" ]]; then + + SRM_Shortcutlocation="$HOME/Desktop/SteamRomManager.desktop" + + fi + +echo "#!/usr/bin/env xdg-open +[Desktop Entry] +Name=Steam Rom Manager +Exec=kill -15 \$(pidof steam) & $SRM_toolPath +Icon=steamdeck-gaming-return +Terminal=false +Type=Application +StartupNotify=false" > "$SRM_Shortcutlocation" + chmod +x "$SRM_Shortcutlocation" +} + +SRM_init(){ + setMSG "Configuring Steam Rom Manager..." + mkdir -p "$HOME/.config/steam-rom-manager/userData/" + cp "$EMUDECKGIT/configs/steam-rom-manager/userData/userConfigurations.json" "$HOME/.config/steam-rom-manager/userData/userConfigurations.json" + cp "$EMUDECKGIT/configs/steam-rom-manager/userData/userSettings.json" "$HOME/.config/steam-rom-manager/userData/userSettings.json" + + sleep 3 + tmp=$(mktemp) + jq -r --arg STEAMDIR "$HOME/.steam/steam" '.environmentVariables.steamDirectory = "\($STEAMDIR)"' \ + "$HOME/.config/steam-rom-manager/userData/userSettings.json" > "$tmp"\ + && mv "$tmp" "$HOME/.config/steam-rom-manager/userData/userSettings.json" + + tmp=$(mktemp) + jq -r --arg ROMSDIR "$romsPath" '.environmentVariables.romsDirectory = "\($ROMSDIR)"' \ + "$HOME/.config/steam-rom-manager/userData/userSettings.json" > "$tmp" \ + && mv "$tmp" "$HOME/.config/steam-rom-manager/userData/userSettings.json" + + sed -i "s|/run/media/mmcblk0p1/Emulation/roms|${romsPath}|g" "$HOME/.config/steam-rom-manager/userData/userConfigurations.json" + sed -i "s|/run/media/mmcblk0p1/Emulation/tools|${toolsPath}|g" "$HOME/.config/steam-rom-manager/userData/userConfigurations.json" + sed -i "s|/run/media/mmcblk0p1/Emulation/storage|${storagePath}|g" "$HOME/.config/steam-rom-manager/userData/userConfigurations.json" + sed -i "s|/home/deck|$HOME|g" "$HOME/.config/steam-rom-manager/userData/userConfigurations.json" + echo -e "OK!" +} \ No newline at end of file diff --git a/functions/ToolScripts/emuDeckSaveSync.sh b/functions/ToolScripts/emuDeckSaveSync.sh new file mode 100644 index 00000000..ed8db1f2 --- /dev/null +++ b/functions/ToolScripts/emuDeckSaveSync.sh @@ -0,0 +1,62 @@ +#!/bin/bash + +SAVESYNC_toolName="EmuDeck SaveSync" +SAVESYNC_toolType="AppImage" +SAVESYNC_toolPath="$HOME/Applications/EmuDeck_SaveSync.AppImage" +SAVESYNC_systemd_path="$HOME/.config/systemd/user" +#SAVESYNC_Shortcutlocation="$HOME/Desktop/EmuDeckBinUpdate.desktop" + + + +SAVESYNC_install(){ + + rm "$SAVESYNC_toolPath" + curl -L "$(getReleaseURLGH "withertech/savesync" "AppImage")" --output "$SAVESYNC_toolPath" + chmod +x "$SAVESYNC_toolPath" + +} + +#$1 = gdrive,dropbox,onedrive,box,nextcloud +SAVESYNC_setup(){ + local cloudProvider=$1 + if [[ -z "$cloudProvider" ]]; then + echo "no cloud provider selected" + else + echo "cloud provider: $cloudProvider" + systemctl --user stop emudeck_savesync.service + + mv "${toolsPath}/savesync/config.yml" "${toolsPath}/savesync/config.yml.bak" + mv "$HOME/.config/rclone/rclone.conf" "$HOME/.config/rclone/rclone.conf.bak" + + "$SAVESYNC_toolPath" "$emulationPath" --setup "$cloudProvider" + echo "pausing before creating service" + sleep 20 + SAVESYNC_createService + fi +} + +SAVESYNC_createService(){ + echo "Creating SaveSync service" + systemctl --user stop emudeck_savesync.service + + mkdir -p "$SAVESYNC_systemd_path" + echo \ + "[Unit] + Description=Emudeck SaveSync service + + [Service] + Type=simple + Restart=always + RestartSec=1 + ExecStart=$SAVESYNC_toolPath --sync $emulationPath + + [Install] + WantedBy=default.target" > "$SAVESYNC_systemd_path/emudeck_savesync.service" + chmod +x "$SAVESYNC_systemd_path/emudeck_savesync.service" + + echo "Setting SaveSync service to start on boot" + systemctl --user enable emudeck_savesync.service + + echo "Starting SaveSync Service. First run may take a while." + systemctl --user start emudeck_savesync.service +} \ No newline at end of file diff --git a/functions/all.sh b/functions/all.sh index e179060e..c2305ac8 100644 --- a/functions/all.sh +++ b/functions/all.sh @@ -1,30 +1,64 @@ #!/bin/bash +if [[ "$EMUDECKGIT" == "" ]]; then + EMUDECKGIT="$HOME/emudeck/backend" +fi + +#load helpers first, just in case +source "$EMUDECKGIT"/functions/helperFunctions.sh + +SETTINGSFILE="$HOME/emudeck/settings.sh" +if [ -f "$SETTINGSFILE" ]; then + # shellcheck source=./settings.sh + source "$SETTINGSFILE" +else + cp "$EMUDECKGIT/settings.sh" "$SETTINGSFILE" +fi + +export PATH="${EMUDECKGIT}/tools/binaries/:$PATH" +chmod +x "${EMUDECKGIT}/tools/binaries/xmlstarlet" + source "$EMUDECKGIT"/functions/checkPSBIOS.sh source "$EMUDECKGIT"/functions/configEmuAI.sh source "$EMUDECKGIT"/functions/configEmuFP.sh -source "$EMUDECKGIT"/functions/configESDE.sh -source "$EMUDECKGIT"/functions/configSRM.sh source "$EMUDECKGIT"/functions/createDesktopIcons.sh -source "$EMUDECKGIT"/functions/createSaveFolders.sh -source "$EMUDECKGIT"/functions/installCHD.sh source "$EMUDECKGIT"/functions/installEmuFP.sh -source "$EMUDECKGIT"/functions/installESDE.sh -source "$EMUDECKGIT"/functions/installPowerTools.sh -source "$EMUDECKGIT"/functions/installSRM.sh -source "$EMUDECKGIT"/functions/RAAchievment.sh -source "$EMUDECKGIT"/functions/RAautoSave.sh -source "$EMUDECKGIT"/functions/RABezels.sh -source "$EMUDECKGIT"/functions/RACores.sh -source "$EMUDECKGIT"/functions/RASNES.sh -source "$EMUDECKGIT"/functions/setESDEEmus.sh source "$EMUDECKGIT"/functions/setMSG.sh -source "$EMUDECKGIT"/functions/setUpHolo.sh -source "$EMUDECKGIT"/functions/setWide.sh -source "$EMUDECKGIT"/functions/testLocationValid.sh -source "$EMUDECKGIT"/functions/setSetting.sh -source "$EMUDECKGIT"/functions/linkToSaveFolder.sh +source "$EMUDECKGIT"/functions/emuDeckPrereqs.sh source "$EMUDECKGIT"/functions/installEmuAI.sh -source "$EMUDECKGIT"/functions/getLatestReleaseURLGH.sh +source "$EMUDECKGIT"/functions/installEmuBI.sh source "$EMUDECKGIT"/functions/migrateAndLinkConfig.sh -source "$EMUDECKGIT"/functions/doMigrations.sh -source "$EMUDECKGIT"/functions/installBinUp.sh \ No newline at end of file +source "$EMUDECKGIT"/functions/nonDeck.sh +source "$EMUDECKGIT"/functions/dialogBox.sh +source "$EMUDECKGIT"/functions/updateEmuFP.sh + +#toolScripts +source "$EMUDECKGIT"/functions/ToolScripts/emuDeckESDE.sh +source "$EMUDECKGIT"/functions/ToolScripts/emuDeckPlugins.sh +source "$EMUDECKGIT"/functions/ToolScripts/emuDeckSRM.sh +source "$EMUDECKGIT"/functions/ToolScripts/emuDeckCHD.sh +source "$EMUDECKGIT"/functions/ToolScripts/emuDeckBINUP.sh +source "$EMUDECKGIT"/functions/ToolScripts/emuDeckSaveSync.sh + +#emuscripts +source "$EMUDECKGIT"/functions/EmuScripts/emuDeckYuzu.sh +source "$EMUDECKGIT"/functions/EmuScripts/emuDeckCemu.sh +source "$EMUDECKGIT"/functions/EmuScripts/emuDeckPCSX2.sh +source "$EMUDECKGIT"/functions/EmuScripts/emuDeckRPCS3.sh +source "$EMUDECKGIT"/functions/EmuScripts/emuDeckCitra.sh +source "$EMUDECKGIT"/functions/EmuScripts/emuDeckDolphin.sh +source "$EMUDECKGIT"/functions/EmuScripts/emuDeckPrimehack.sh +source "$EMUDECKGIT"/functions/EmuScripts/emuDeckRetroArch.sh +source "$EMUDECKGIT"/functions/EmuScripts/emuDeckRyujinx.sh +source "$EMUDECKGIT"/functions/EmuScripts/emuDeckPPSSPP.sh +source "$EMUDECKGIT"/functions/EmuScripts/emuDeckDuckStation.sh +source "$EMUDECKGIT"/functions/EmuScripts/emuDeckXemu.sh +source "$EMUDECKGIT"/functions/EmuScripts/emuDeckXenia.sh +source "$EMUDECKGIT"/functions/EmuScripts/emuDeckPCSX2QT.sh +source "$EMUDECKGIT"/functions/EmuScripts/emuDeckMAME.sh + +#Soon +#source "$EMUDECKGIT"/EmuScripts/emuDeckMelonDS.sh +#source "$EMUDECKGIT"/EmuScripts/emuDeckMgba.sh +#source "$EMUDECKGIT"/EmuScripts/emuDeckRedream.sh +#source "$EMUDECKGIT"/EmuScripts/emuDeckMAMEProton.sh + diff --git a/functions/configESDE.sh b/functions/configESDE.sh deleted file mode 100644 index 7084ef6e..00000000 --- a/functions/configESDE.sh +++ /dev/null @@ -1,146 +0,0 @@ -#!/bin/bash -configESDE(){ - reset=$1 - - if [[ $reset == 'reset' ]]; then - setMSG "Resetting EmulationStation DE..." - else - setMSG "Configuring EmulationStation DE..." - fi - mkdir -p ~/.emulationstation/ - mkdir -p ~/.emulationstation/custom_systems/ - es_systemsFile="$HOME/.emulationstation/custom_systems/es_systems.xml" - es_settingsFile="$HOME/.emulationstation/es_settings.xml" - - #Custom Systems config Begin - if [[ ! -f "$es_systemsFile" || $reset == "true" ]]; then - cp ~/dragoonDoriseTools/EmuDeck/configs/emulationstation/custom_systems/es_systems.xml $es_systemsFile - fi - - #update cemu custom system launcher to correct path by just replacing the line, if it exists. - commandString="/usr/bin/bash ${toolsPath}launchers/cemu.sh -f -g z:%ROM%" - xmlstarlet ed -L -u '/systemList/system/command[@label="Cemu (Proton)"]' -v "$commandString" $es_systemsFile - - #insert cemu custom system if it doesn't exist, but the file does - if [[ $(grep -rnw $es_systemsFile -e 'Cemu (Proton)') == "" ]]; then - xmlstarlet ed --inplace --subnode '/systemList' --type elem --name 'system' \ - --var newSystem '$prev' \ - --subnode '$newSystem' --type elem --name 'name' -v 'wiiu' \ - --subnode '$newSystem' --type elem --name 'fullname' -v 'Nintendo Wii U' \ - --subnode '$newSystem' --type elem --name 'path' -v '%ROMPATH%/wiiu/roms' \ - --subnode '$newSystem' --type elem --name 'extension' -v '.rpx .RPX .wud .WUD .wux .WUX .elf .ELF .iso .ISO .wad .WAD .wua .WUA' \ - --subnode '$newSystem' --type elem --name 'command' -v "/usr/bin/bash ${toolsPath}launchers/cemu.sh -f -g z:%ROM%" \ - --insert '$newSystem/command' --type attr --name 'label' --value "Cemu (Proton)" \ - --subnode '$newSystem' --type elem --name 'platform' -v 'wiiu' \ - --subnode '$newSystem' --type elem --name 'theme' -v 'wiiu' \ - $es_systemsFile - fi - #Custom Systems config end - - #update es_settings.xml - if [[ ! -f "$es_settingsFile" || $reset == 'reset' ]]; then - cp ~/dragoonDoriseTools/EmuDeck/configs/emulationstation/es_settings.xml $es_settingsFile - fi - - #configure roms Directory - esDE_romDir="" - romDirEmpty=$(grep -rnw $es_settingsFile -e '') - sed -i "s|/run/media/mmcblk0p1/Emulation/roms/|${romsPath}|g" $es_settingsFile - if [[ ! $romDirEmpty == '' ]]; then - sed -i "//c\\${esDE_romDir}" $es_settingsFile - fi - - #Configure Downloaded_media folder - esDE_MediaDir="" - #search for media dir in xml, if not found, change to ours. If it's blank, also change to ours. - mediaDirFound=$(grep -rnw $es_settingsFile -e 'MediaDirectory') - mediaDirEmpty=$(grep -rnw $es_settingsFile -e '') - if [[ $mediaDirFound == '' ]]; then - sed -i -e '$a'"${esDE_MediaDir}" $es_settingsFile # use config file instead of link - elif [[ ! $mediaDirEmpty == '' ]]; then - sed -i "//c\\${esDE_MediaDir}" $es_settingsFile - fi - - #We check if we have downloaded_media data on ESDE so we can move it to the SD card - - originalESMediaFolder="$HOME/.emulationstation/downloaded_media" - echo "processing $originalESMediaFolder" - if [ -L ${originalESMediaFolder} ] ; then - echo "link found" - unlink ${originalESMediaFolder} && echo "unlinked" - elif [ -e ${originalESMediaFolder} ] ; then - if [ -d "${originalESMediaFolder}" ]; then - echo -e "" - echo -e "Moving EmulationStation-DE downloaded_media to $toolsPath" - echo -e "" - rsync -a $originalESMediaFolder $toolsPath && rm -rf $originalESMediaFolder #move it, merging files if in both locations - fi - else - echo "downloaded_media not found on original location" - fi - - - if [[ $doESDEThemePicker == true ]]; then - if [[ $expert == true ]]; then - text="Which theme do you want to set as default on EmulationStation DE?" - esdeTheme=$(zenity --list \ - --title="EmuDeck" \ - --height=250 \ - --width=250 \ - --ok-label="OK" \ - --cancel-label="Exit" \ - --text="${text}" \ - --radiolist \ - --column="" \ - --column="Theme" \ - 1 "EPICNOIR" \ - 2 "MODERN-DE" \ - 3 "RBSIMPLE-DE" 2>/dev/null) - ans=$? - if [ $ans -eq 0 ]; then - echo "Theme selected" - fi - fi - fi - - mkdir -p ~/.emulationstation/themes/ - git clone https://github.com/dragoonDorise/es-theme-epicnoir.git ~/.emulationstation/themes/es-epicnoir &>> /dev/null - cd ~/.emulationstation/themes/es-epicnoir && git pull - echo -e "OK!" - - #Do this properly with wildcards - if [[ "$esdeTheme" == *"EPICNOIR"* ]]; then - sed -i "s|rbsimple-DE|es-epicnoir|" $es_settingsFile - sed -i "s|modern-DE|es-epicnoir|" $es_settingsFile - sed -i "s|es-epicnoir|es-epicnoir|" $es_settingsFile - fi - if [[ "$esdeTheme" == *"MODERN-DE"* ]]; then - sed -i "s|rbsimple-DE|modern-DE|" $es_settingsFile - sed -i "s|modern-DE|modern-DE|" $es_settingsFile - sed -i "s|es-epicnoir|modern-DE|" $es_settingsFile - fi - if [[ "$esdeTheme" == *"RBSIMPLE-DE"* ]]; then - sed -i "s|rbsimple-DE|rbsimple-DE|" $es_settingsFile - sed -i "s|modern-DE|rbsimple-DE|" $es_settingsFile - sed -i "s|es-epicnoir|rbsimple-DE|" $es_settingsFile - fi - - - #ESDE default emulators - mkdir -p ~/.emulationstation/gamelists/ - setESDEEmus 'Dolphin (Standalone)' gc - setESDEEmus 'PPSSPP (Standalone)' psp - setESDEEmus 'Dolphin (Standalone)' wii - setESDEEmus 'PCSX2 (Standalone)' ps2 - setESDEEmus 'melonDS' nds - setESDEEmus 'Citra (Standalone)' n3ds - - #Symlinks for ESDE compatibility - cd $(echo $romsPath | tr -d '\r') - ln -sn gamecube gc - ln -sn 3ds n3ds - ln -sn arcade mamecurrent - ln -sn mame mame2003 - ln -sn lynx atarilynx - -} \ No newline at end of file diff --git a/functions/configEmuAI.sh b/functions/configEmuAI.sh index 5f7b67e0..9279ca3f 100644 --- a/functions/configEmuAI.sh +++ b/functions/configEmuAI.sh @@ -7,17 +7,15 @@ configEmuAI(){ gitLocation=$4 overwrite=$5 - if [[ ! $overwrite == 'true' ]]; then - overwrite="--ignore-existing" + if [[ $overwrite == 'true' ]]; then + overwrite="--backup --suffix=.bak" else - overwrite="" + overwrite="--ignore-existing" fi + + setMSG "Updating $emu $folderName using $overwrite" - setMSG "Backing up ${emu} ${folderName}..." - rm -rf ${folderPath}_bak - cp -r ${folderPath} ${folderPath}_bak + rsync -avhp --mkpath $gitLocation/ $folderPath $overwrite - rsync -avhp $gitLocation/ $folderPath $overwrite - } \ No newline at end of file diff --git a/functions/configEmuFP.sh b/functions/configEmuFP.sh index b8b753b9..4a4116f8 100644 --- a/functions/configEmuFP.sh +++ b/functions/configEmuFP.sh @@ -2,20 +2,17 @@ configEmuFP(){ name=$1 - ID=$2 + ID=$2 + overwrite=$3 - FOLDER=~/.var/app/"${ID}"/config_bak - if [ ! -d "$FOLDER" ]; then - setMSG "Backing up ${name} Config..." - cp -r ~/.var/app/"${ID}"/config ~/.var/app/"${ID}"/config_bak - fi + if [[ $overwrite == 'true' ]]; then + overwrite="--backup --suffix=.bak" + else + overwrite="--ignore-existing" + fi + setMSG "Updating $name Config using $overwrite" - FOLDER=~/.var/app/"${ID}"/data_bak - if [ ! -d "$FOLDER" ]; then - setMSG "Backing up ${name} Data..." - cp -r ~/.var/app/"${ID}"/data ~/.var/app/"${ID}"/data_bak - fi - - rsync -avhp ~/dragoonDoriseTools/EmuDeck/configs/"${ID}"/ ~/.var/app/"${ID}"/ + rsync -avhp --mkpath "$EMUDECKGIT/configs/${ID}" "$HOME/.var/app/" $overwrite + } \ No newline at end of file diff --git a/functions/configSRM.sh b/functions/configSRM.sh deleted file mode 100644 index 308114a1..00000000 --- a/functions/configSRM.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash -configSRM(){ - setMSG "Configuring Steam Rom Manager..." - mkdir -p ~/.config/steam-rom-manager/userData/ - cp ~/dragoonDoriseTools/EmuDeck/configs/steam-rom-manager/userData/userConfigurations.json ~/.config/steam-rom-manager/userData/userConfigurations.json - sleep 3 - sed -i "s|/run/media/mmcblk0p1/Emulation/roms/|${romsPath}|g" ~/.config/steam-rom-manager/userData/userConfigurations.json - sed -i "s|/run/media/mmcblk0p1/Emulation/tools/|${toolsPath}|g" ~/.config/steam-rom-manager/userData/userConfigurations.json - sed -i "s|/run/media/mmcblk0p1/Emulation/storage/|${storagePath}|g" ~/.config/steam-rom-manager/userData/userConfigurations.json - echo -e "OK!" -} \ No newline at end of file diff --git a/functions/createDesktopIcons.sh b/functions/createDesktopIcons.sh index da7709ad..d26a99a6 100644 --- a/functions/createDesktopIcons.sh +++ b/functions/createDesktopIcons.sh @@ -17,11 +17,24 @@ createDesktopIcons(){ rm -rf ~/Desktop/EmuDeckSD.desktop 2>/dev/null echo "#!/usr/bin/env xdg-open [Desktop Entry] - Name=EmuDeck (${version}) + Name=Update EmuDeck Exec=curl https://raw.githubusercontent.com/dragoonDorise/EmuDeck/main/install.sh | bash -s -- SD Icon=steamdeck-gaming-return Terminal=true Type=Application StartupNotify=false" > ~/Desktop/EmuDeck.desktop chmod +x ~/Desktop/EmuDeck.desktop -} \ No newline at end of file + + #Nova fix' + # echo "#!/usr/bin/env xdg-open + # [Desktop Entry] + # Name=EmuDeck AppImage + # Exec=$HOME/Applications/EmuDeck.AppImage + # Icon=steamdeck-gaming-return + # Terminal=false + # Type=Application + # StartupNotify=false" > ~/Desktop/EmuDeckAppImage.desktop + # chmod +x ~/Desktop/EmuDeckAppImage.desktop + # chmod +x ~/Applications/EmuDeck.AppImage + +} diff --git a/functions/createSaveFolders.sh b/functions/createSaveFolders.sh deleted file mode 100644 index ddef3242..00000000 --- a/functions/createSaveFolders.sh +++ /dev/null @@ -1,47 +0,0 @@ -#!/bin/bash -createSaveFolders(){ - - #linkToSaveFolder emuname foldername pathtolink - - #RA - linkToSaveFolder retroarch states ~/.var/app/org.libretro.RetroArch/config/retroarch/states - linkToSaveFolder retroarch saves ~/.var/app/org.libretro.RetroArch/config/retroarch/saves - - #Dolphin - linkToSaveFolder dolphin GC ~/.var/app/org.DolphinEmu.dolphin-emu/data/dolphin-emu/GC - linkToSaveFolder dolphin Wii ~/.var/app/org.DolphinEmu.dolphin-emu/data/dolphin-emu/Wii - linkToSaveFolder dolphin states ~/.var/app/org.DolphinEmu.dolphin-emu/data/dolphin-emu/states - - #PrimeHack - linkToSaveFolder primehack GC ~/.var/app/io.github.shiiion.primehack/data/dolphin-emu/GC - linkToSaveFolder primehack Wii ~/.var/app/io.github.shiiion.primehack/data/dolphin-emu/Wii - linkToSaveFolder primehack states ~/.var/app/io.github.shiiion.primehack/data/dolphin-emu/states - - #Yuzu - unlink "${savesPath}yuzu/saves" # Fix for previous bad symlink - linkToSaveFolder yuzu saves "${storagePath}yuzu/nand/user/save/" - - #Duckstation - linkToSaveFolder duckstation saves ~/.var/app/org.duckstation.DuckStation/data/duckstation/memcards - linkToSaveFolder duckstation states ~/.var/app/org.duckstation.DuckStation/data/duckstation/savestates - - #PCSX2 - linkToSaveFolder pcsx2 saves ~/.var/app/net.pcsx2.PCSX2/config/PCSX2/memcards - linkToSaveFolder pcsx2 states ~/.var/app/net.pcsx2.PCSX2/config/PCSX2/sstates - - #Citra - linkToSaveFolder citra saves ~/.var/app/org.citra_emu.citra/data/citra-emu/sdmc - linkToSaveFolder citra states ~/.var/app/org.citra_emu.citra/data/citra-emu/states - - #PPSSPP - linkToSaveFolder ppsspp saves ~/.var/app/org.ppsspp.PPSSPP/config/ppsspp/PSP/SAVEDATA - linkToSaveFolder ppsspp states ~/.var/app/org.ppsspp.PPSSPP/config/ppsspp/PSP/PPSSPP_STATE - - #xemu - - - #rpcs3 - #add links for the actual saves here. - linkToSaveFolder rpcs3 saves "${storagePath}rpcs3/dev_hdd0/home/00000001/savedata" - -} \ No newline at end of file diff --git a/functions/dialogBox.sh b/functions/dialogBox.sh new file mode 100644 index 00000000..86b019dc --- /dev/null +++ b/functions/dialogBox.sh @@ -0,0 +1,80 @@ +#!/bin/bash + +dialogCLI(){ + local HEIGHT=15 + local HEIGHT=15 + local WIDTH=40 + local CHOICE_HEIGHT=4 + local BACKTITLE="EmuDeck CLI" + local TITLE="Choose your fate" + local MENU=$1 ; shift + local OPTIONS=( "$@" ) + local cliCHOICE + + cliCHOICE=$(whiptail --clear \ + --backtitle "$BACKTITLE" \ + --title "$TITLE" \ + --menu "$MENU" \ + $HEIGHT $WIDTH $CHOICE_HEIGHT \ + "${OPTIONS[@]}" \ + 2>&1 >/dev/tty) + + echo "$cliCHOICE" +} + +function Filebrowser() +{ +# first parameter is Menu Title +# second parameter is optional dir path to starting folder +# otherwise current folder is selected + + if [ -z $2 ] ; then + dir_list=$(ls -lhp | awk -F ' ' ' { print $9 " " $5 } ') + else + cd "$2" + dir_list=$(ls -lhp | awk -F ' ' ' { print $9 " " $5 } ') + fi + + curdir=$(pwd) + if [ "$curdir" == "/" ] ; then # Check if you are at root folder + selection=$(whiptail --title "$1" \ + --menu "PgUp/PgDn/Arrow Enter Selects File/Folder\nor Tab Key\n$curdir" 0 0 0 \ + --cancel-button Cancel \ + --ok-button Select $dir_list 3>&1 1>&2 2>&3) + else # Not Root Dir so show ../ BACK Selection in Menu + selection=$(whiptail --title "$1" \ + --menu "PgUp/PgDn/Arrow Enter Selects File/Folder\nor Tab Key\n$curdir" 0 0 0 \ + --cancel-button Cancel \ + --ok-button Select ../ BACK $dir_list 3>&1 1>&2 2>&3) + fi + + RET=$? + if [ $RET -eq 1 ]; then # Check if User Selected Cancel + return 1 + elif [ $RET -eq 0 ]; then + if [[ -d "$selection" ]]; then # Check if Directory Selected + Filebrowser "$1" "$selection" + elif [[ -f "$selection" ]]; then # Check if File Selected + if [[ $selection == *$filext ]]; then # Check if selected File has .jpg extension + if (whiptail --title "Confirm Selection" --yesno "DirPath : $curdir\nFileName: $selection" 0 0 \ + --yes-button "Confirm" \ + --no-button "Retry"); then + filename="$selection" + filepath="$curdir" # Return full filepath and filename as selection variables + else + Filebrowser "$1" "$curdir" + fi + else # Not correct extension so Inform User and restart + whiptail --title "ERROR: File Must have $filext Extension" \ + --msgbox "$selection\nYou Must Select a $filext file" 0 0 + Filebrowser "$1" "$curdir" + fi + else + # Could not detect a file or folder so Try Again + whiptail --title "ERROR: Selection Error" \ + --msgbox "Error Changing to Path $selection" 0 0 + Filebrowser "$1" "$curdir" + fi + fi +} + diff --git a/functions/doMigrations.sh b/functions/doMigrations.sh deleted file mode 100644 index b9ed970e..00000000 --- a/functions/doMigrations.sh +++ /dev/null @@ -1,85 +0,0 @@ -#!/bin/bash -doMigrations(){ - - ##nonstandard## - #Xemu files to storage if we have a xemu app folder - if [ ! -f "$storagePath/xemu/xbox_hdd.qcow2" ] && [ -d "$HOME/.var/app/app.xemu.xemu" ]; then - - echo "xbox hdd does not exist in storagepath." - mkdir -p "$storagePath/xemu" - flatpak override app.xemu.xemu --filesystem="$storagePath"xemu:rw --user - - xemuConf="$HOME/.var/app/app.xemu.xemu/data/xemu/xemu/xemu.toml" - xemuHDDLine="hdd_path = '${storagePath}xemu/xbox_hdd.qcow2'" - xemuEEPLine="eeprom_path = '${storagePath}xemu/eeprom.bin'" - sed -i "/hdd_path/c\\${xemuHDDLine}" $xemuConf - sed -i "/eeprom_path/c\\${xemuEEPLine}" $xemuConf - - echo -e "" - setMSG "Moving Xemu HDD and EEPROM to the Emulation/storage folder" - echo -e "" - - if [ -f "${savesPath}xemu/xbox_hdd.qcow2" ]; then - mv -fv ${savesPath}xemu/* ${storagePath}xemu/ && rm -rf ${savesPath}xemu/ - - elif [ -f "$HOME/.var/app/app.xemu.xemu/data/xemu/xemu/xbox_hdd.qcow2" ]; then - mv "$HOME/.var/app/app.xemu.xemu/data/xemu/xemu/xbox_hdd.qcow2" $storagePath/xemu/ - mv "$HOME/.var/app/app.xemu.xemu/data/xemu/xemu/eeprom.bin" $storagePath/xemu/ - - fi - fi - - #RPCS3 files to storage - if [ ! -d "$storagePath"rpcs3/dev_hdd0 ] && [ -d "$HOME/.var/app/net.rpcs3.RPCS3/" ];then - echo "rpcs3 hdd does not exist in storagepath." - #update config file for the new loc $(emulatorDir) is in the file. made this annoying. - rpcs3VFSConf="$HOME/.var/app/net.rpcs3.RPCS3/config/rpcs3/vfs.yml" - rpcs3DevHDD0Line="/dev_hdd0/: ${storagePath}rpcs3/dev_hdd0/" - sed -i "/dev_hdd0/c\\${rpcs3DevHDD0Line}" $rpcs3VFSConf - - echo -e "" - setMSG "Moving rpcs3 HDD to the Emulation/storage folder" - echo -e "" - - mkdir -p "$storagePath/rpcs3" - - if [ -d "$savesPath/rpcs3/dev_hdd0" ]; then - mv -f "$savesPath"rpcs3/dev_hdd0 "$storagePath"rpcs3/ - - elif [ -d "$HOME/.var/app/net.rpcs3.RPCS3/config/rpcs3/dev_hdd0" ]; then - rsync -av "$HOME/.var/app/net.rpcs3.RPCS3/config/rpcs3/dev_hdd0" "$storagePath"rpcs3/ && rm -rf "$HOME/.var/app/net.rpcs3.RPCS3/config/rpcs3/dev_hdd0" - - fi - fi - - emu="Yuzu" - migrationFlag="$HOME/emudeck/.${emu}MigrationCompleted" - #check if we have a nomigrateflag for $emu - if [ ! -f "$migrationFlag" ]; then - #yuzu flatpak to appimage - #From -- > to - migrationTable=() - migrationTable+=("$HOME/.var/app/org.yuzu_emu.yuzu/data/yuzu" "$HOME/.local/share/yuzu") - migrationTable+=("$HOME/.var/app/org.yuzu_emu.yuzu/config/yuzu" "$HOME/.config/yuzu") - - migrateAndLinkConfig $emu $migrationTable - fi - - #move data from hidden folders out to these folders in case the user already put stuff here. - origPath="$HOME/.local/share/" - - mkdir -p ${storagePath}yuzu/dump - mkdir -p ${storagePath}yuzu/load - mkdir -p ${storagePath}yuzu/sdmc - mkdir -p ${storagePath}yuzu/nand - mkdir -p ${storagePath}yuzu/screenshots - mkdir -p ${storagePath}yuzu/tas - - rsync -av ${origPath}yuzu/dump ${storagePath}yuzu/ && rm -rf ${origPath}yuzu/dump - rsync -av ${origPath}yuzu/load ${storagePath}yuzu/ && rm -rf ${origPath}yuzu/load - rsync -av ${origPath}yuzu/sdmc ${storagePath}yuzu/ && rm -rf ${origPath}yuzu/sdmc - rsync -av ${origPath}yuzu/nand ${storagePath}yuzu/ && rm -rf ${origPath}yuzu/nand - rsync -av ${origPath}yuzu/screenshots ${storagePath}yuzu/ && rm -rf ${origPath}yuzu/screenshots - rsync -av ${origPath}yuzu/tas ${storagePath}yuzu/ && rm -rf ${origPath}yuzu/tas - -} \ No newline at end of file diff --git a/functions/setUpHolo.sh b/functions/emuDeckPrereqs.sh similarity index 90% rename from functions/setUpHolo.sh rename to functions/emuDeckPrereqs.sh index 9b8aeacd..355100da 100644 --- a/functions/setUpHolo.sh +++ b/functions/emuDeckPrereqs.sh @@ -1,8 +1,8 @@ #!/bin/bash -setUpHolo(){ +OS_setupPrereqsArch(){ #Ensure the dependencies are installed before proceeding. - for package in packagekit-qt5 flatpak rsync unzip jq + for package in packagekit-qt5 flatpak rsync unzip jq bash curl do pacman -Q ${package} || sudo pacman -Sy --noconfirm ${package} done diff --git a/functions/getLatestReleaseURLGH.sh b/functions/getLatestReleaseURLGH.sh deleted file mode 100644 index a1b7a94b..00000000 --- a/functions/getLatestReleaseURLGH.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash -getLatestReleaseURLGH(){ - -repository=$1 -fileType=$2 - -url="$(curl -sL https://api.github.com/repos/${repository}/releases/latest | jq -r ".assets[].browser_download_url" | grep .${fileType}\$)" - -echo "$url" -} \ No newline at end of file diff --git a/functions/helperFunctions.sh b/functions/helperFunctions.sh new file mode 100644 index 00000000..7c4f7c04 --- /dev/null +++ b/functions/helperFunctions.sh @@ -0,0 +1,447 @@ +#!/bin/bash + +#Global variables +emuDecksettingsFile="$HOME/emudeck/settings.sh" + +function getScreenAR(){ + local productName + productName=$(getProductName) + case $productName in + Win600) return=169 ;; + Jupiter) return=1610 ;; + *) resolution=$(xrandr --current | grep 'primary' | uniq | awk '{print $4}'| cut -d '+' -f1) + Xaxis=$(echo "$resolution" | awk '{print $1}' | cut -d 'x' -f2) + Yaxis=$(echo "$resolution" | awk '{print $1}' | cut -d 'x' -f1) + + screenWidth=$Xaxis + screenHeight=$Yaxis + + + ##Is rotated? + if [[ $Yaxis > $Xaxis ]]; then + screenWidth=$Yaxis + screenHeight=$Xaxis + fi + + aspectRatio=$(awk -v screenWidth="$screenWidth" -v screenHeight="$screenHeight" 'BEGIN{printf "%.2f\n", (screenWidth/screenHeight)}') + if [ "$aspectRatio" == 1.60 ]; then + ar=1610 + elif [ "$aspectRatio" == 1.78 ]; then + ar=169 + else + ar=0 + fi + return=$ar ;; + esac + + echo $return +} + +function pause(){ + read -rp "$*" +} + +# keyword replacement file. Only matches start of word +function changeLine() { + local KEYWORD=$1; shift + local REPLACE=$1; shift + local FILE=$1 + + local OLD=$(escapeSedKeyword "$KEYWORD") + local NEW=$(escapeSedValue "$REPLACE") + + echo "Updating: $FILE" + echo "Old: "$(cat "$FILE" | grep "^$OLD") + sed -i "/^${OLD}/c\\${NEW}" "$FILE" + echo "New: "$(cat "$FILE" | grep "^$OLD") + +} +function escapeSedKeyword(){ + local INPUT=$1; + printf '%s\n' "$INPUT" | sed -e 's/[]\/$*.^[]/\\&/g' +} + +function escapeSedValue(){ + local INPUT=$1 + printf '%s\n' "$INPUT" | sed -e 's/[\/&]/\\&/g' +} + +function getSDPath(){ + if [ -b "/dev/mmcblk0p1" ]; then + findmnt -n --raw --evaluate --output=target -S /dev/mmcblk0p1 + fi +} + +function getProductName(){ + cat /sys/devices/virtual/dmi/id/product_name +} + +function testRealDeck(){ + case $(getProductName) in + 'Win600'|'Jupiter') isRealDeck=true + ;; + *) + isRealDeck=false + ;; + esac +} + +function testLocationValid(){ + local locationName=$1 + local testLocation=$2 + local return="" + + touch "$testLocation/testwrite" + + if [ ! -f "$testLocation/testwrite" ]; then + return="Invalid: $locationName not Writable" + else + ln -s "$testLocation/testwrite" "$testLocation/testwrite.link" + if [ ! -f "$testLocation/testwrite.link" ]; then + return="Invalid: $locationName not Linkable" + else + return="Valid" + fi + fi + rm -f "$testLocation/testwrite" "$testLocation/testwrite.link" + echo $return +} + +function makeFunction(){ + + find "$HOME/emudeck/backend/configs/org.libretro.RetroArch/config/retroarch/config" -type f -iname "*.cfg" | while read file + do + + folderOverride="$(basename "${file}")" + foldername="$(dirname "${file}")" + coreName="$(basename "${foldername}")" + echo "RetroArch_${folderOverride%.*}_bezelOn(){" + IFS=$'\n' + for line in $(cat "$file") + do + local option=$(echo "$line" | awk '{print $1}') + local value=$(echo "$line" | awk '{print $3}') + echo "RetroArch_setOverride '$folderOverride' '$coreName' '$option' '$value'" + done + echo '}' + done +} + +function deleteConfigs(){ + + find "$HOME/emudeck/backend/configs/org.libretro.RetroArch/config/retroarch/config" -type f -iname "*.opt" -o -type f -iname "*.cfg"| while read file + do + rm "$file" + done +} + + +function customLocation(){ + zenity --file-selection --directory --title="Select a destination for the Emulation directory." 2>/dev/null +} + +function refreshSource(){ + source "$EMUDECKGIT/functions/all.sh" +} + +function setAllEmuPaths(){ + for func in $(compgen -A 'function' | grep '_setEmulationFolder') + do $func + done +} + +function setSetting () { + local var=$1 + local new_val=$2 + + settingExists=$(grep -rw "$emuDecksettingsFile" -e "$var") + if [[ $settingExists == '' ]]; then + #insert setting to end + echo "variable not found in settings. Adding $var=$new_val to $emuDecksettingsFile" + sed -i -e '$a\'"$var=$new_val" "$emuDecksettingsFile" + elif [[ ! $settingExists == '' ]]; then + echo "Old value $settingExists" + if [[ $settingExists == "$var=$new_val" ]]; then + echo "Setting unchanged, skipping" + else + changeLine "$var=" "$var=$new_val" "$emuDecksettingsFile" + fi + fi + #Update values + # shellcheck source=settings.sh + source "$emuDecksettingsFile" +} + +function installAll(){ + for func in $(compgen -A 'function' | grep '\_install$') + do $func + done +} + + +function initAll(){ + for func in $(compgen -A 'function' | grep '\_init$') + do $func + done +} + +function updateOrAppendConfigLine(){ + local configFile=$1 + local option=$2 + local replacement=$3 + + local fullPath=$(dirname "$configFile") + mkdir -p "$fullPath" + touch "$configFile" + + local optionFound=$(grep -rnw "$configFile" -e "$option") + if [[ "$optionFound" == '' ]]; then + echo "appending: $replacement to $configFile" + echo "$replacement" >> "$configFile" + else + changeLine "$option" "$replacement" "$configFile" + fi +} + +function getEnvironmentDetails(){ + local sdpath=$(getSDPath) + local sdValid=$(testLocationValid "sd" "$sdpath") + if [ -f "$HOME/emudeck/.finished" ]; then + firstRun="false" + else + firstRun="true" + fi + local uname=$(uname -a) + local productName=$(getProductName) + local aspectRatio=$(getScreenAR) + local json="{ \"Home\": \"$HOME\", \"Hostname\": \"$HOSTNAME\", \"Username\": \"$USER\", \"SDPath\": \"$sdpath\", \"IsSDValid?\": \"$sdValid\", \"FirstRun?\": \"$firstRun\",\"ProductName\": \"$productName\",\"AspectRatio\": \"$aspectRatio\",\"UName\": \"$uname\" }" + jq -r <<< "$json" +} + +function getSetting(){ + local setting=$1 + cut -d "=" -f2 <<< "$(grep -r "^${setting}=" "$emuDecksettingsFile")" +} + +function createUpdateSettingsFile(){ + #!/bin/bash + + if [ ! -e "$emuDecksettingsFile" ]; then + echo "#!/bin/bash"> "$emuDecksettingsFile" + fi + local defaultSettingsList=() + defaultSettingsList+=("expert=false") + defaultSettingsList+=("doSetupRA=true") + defaultSettingsList+=("doSetupDolphin=true") + defaultSettingsList+=("doSetupPCSX2=true") + defaultSettingsList+=("doSetupRPCS3=true") + defaultSettingsList+=("doSetupYuzu=true") + defaultSettingsList+=("doSetupCitra=true") + defaultSettingsList+=("doSetupDuck=true") + defaultSettingsList+=("doSetupCemu=true") + defaultSettingsList+=("doSetupXenia=false") + defaultSettingsList+=("doSetupRyujinx=true") + defaultSettingsList+=("doSetupMAME=true") + defaultSettingsList+=("doSetupPrimeHacks=true") + defaultSettingsList+=("doSetupPPSSPP=true") + defaultSettingsList+=("doSetupXemu=true") + defaultSettingsList+=("doSetupESDE=true") + defaultSettingsList+=("doSetupSRM=true") + defaultSettingsList+=("doSetupPCSX2QT=true") + #defaultSettingsList+=("doSetupMelon=true") + defaultSettingsList+=("doInstallSRM=true") + defaultSettingsList+=("doInstallESDE=true") + defaultSettingsList+=("doInstallRA=true") + defaultSettingsList+=("doInstallDolphin=true") + defaultSettingsList+=("doInstallPCSX2=true") + defaultSettingsList+=("doInstallMAME=true") + defaultSettingsList+=("doInstallRyujinx=true") + defaultSettingsList+=("doInstallRPCS3=true") + defaultSettingsList+=("doInstallYuzu=true") + defaultSettingsList+=("doInstallCitra=true") + defaultSettingsList+=("doInstallDuck=true") + defaultSettingsList+=("doInstallCemu=true") + defaultSettingsList+=("doInstallXenia=true") + defaultSettingsList+=("doInstallPrimeHacks=true") + defaultSettingsList+=("doInstallPPSSPP=true") + defaultSettingsList+=("doInstallXemu=true") + defaultSettingsList+=("doInstallPCSX2QT=true") + #defaultSettingsList+=("doInstallMelon=false") + defaultSettingsList+=("doInstallCHD=true") + defaultSettingsList+=("doInstallPowertools=false") + defaultSettingsList+=("doInstallGyro=false") + defaultSettingsList+=("installString='Installing'") + defaultSettingsList+=("RABezels=true") + defaultSettingsList+=("RAautoSave=false") + defaultSettingsList+=("SNESAR=43") + defaultSettingsList+=("duckWide=false") + defaultSettingsList+=("DolphinWide=false") + defaultSettingsList+=("DreamcastWide=false") + defaultSettingsList+=("BeetleWide=false") + defaultSettingsList+=("pcsx2QTWide=false") + defaultSettingsList+=("emulationPath=$HOME/Emulation") + defaultSettingsList+=("romsPath=$HOME/Emulation/roms") + defaultSettingsList+=("toolsPath=$HOME/Emulation/tools") + defaultSettingsList+=("biosPath=$HOME/Emulation/bios") + defaultSettingsList+=("savesPath=$HOME/Emulation/saves") + defaultSettingsList+=("storagePath=$HOME/Emulation/storage") + defaultSettingsList+=("ESDEscrapData=$HOME/Emulation/tools/downloaded_media") + defaultSettingsList+=("esdeTheme=EPICNOIR") + defaultSettingsList+=("doSelectWideScreen=false") + defaultSettingsList+=("doRASignIn=false") + defaultSettingsList+=("doRAEnable=false") + defaultSettingsList+=("doESDEThemePicker=false") + defaultSettingsList+=("doSelectEmulators=false") + defaultSettingsList+=("doResetEmulators=false") + defaultSettingsList+=("XemuWide=false") + defaultSettingsList+=("achievementsPass=false") + defaultSettingsList+=("achievementsUser=false") + defaultSettingsList+=("arClassic3D=43") + defaultSettingsList+=("arDolphin=43") + defaultSettingsList+=("arSega=43") + defaultSettingsList+=("arSnes=43") + defaultSettingsList+=("RAHandClassic2D=false") + defaultSettingsList+=("RAHandHeldShader=false") + + tmp=$(mktemp) + #sort "$emuDecksettingsFile" | uniq -u > "$tmp" && mv "$tmp" "$emuDecksettingsFile" + + cat "$emuDecksettingsFile" | awk '!unique[$0]++' > "$tmp" && mv "$tmp" "$emuDecksettingsFile" + for setting in "${defaultSettingsList[@]}" + do + local settingName=$(cut -d "=" -f1 <<< "$setting") + local settingVal=$(cut -d "=" -f2 <<< "$setting") + if grep -r "^${settingName}=" "$emuDecksettingsFile" &>/dev/null; then + echo "Setting: $settingName found. CurrentValue: $(getSetting "$settingName")" + else + echo "Setting: $settingName NOT found. adding to $emuDecksettingsFile with default value: $settingVal" + setSetting "$settingName" "$settingVal" + fi + done + + +} + +function checkForFile(){ + local file=$1 + local delete=$2 + local finished=false + while [ $finished == false ] + do + test=$(test -f "$file" && echo true) + if [[ $test == true ]]; then + finished=true; + clear + if [[ $delete == 'delete' ]]; then + rm "$file" + fi + echo 'true'; + break + fi + done +} + + +function getLatestReleaseURLGH(){ + local repository=$1 + local fileType=$2 + local url + + if [ "$url" == "" ]; then + url="https://api.github.com/repos/${repository}/releases/latest" + fi + + url="$(curl -sL $url | jq -r ".assets[].browser_download_url" | grep -ve 'i386' | grep .${fileType}\$)" + echo "$url" +} + +function getReleaseURLGH(){ + local repository=$1 + local fileType=$2 + local url + + if [ "$url" == "" ]; then + url="https://api.github.com/repos/$repository/releases" + fi + curl -fSs "$url" | \ + jq -r '[ .[].assets[] | select(.name | endswith("'"$fileType"'")).browser_download_url ][0]' + +} + + +function linkToSaveFolder(){ + local emu=$1 + local folderName=$2 + local path=$3 + + if [ ! -d "$savesPath/$emu/$folderName" ]; then + mkdir -p $savesPath/$emu + setMSG "Linking $emu $folderName to the Emulation/saves folder" + mkdir -p $path + ln -sn $path $savesPath/$emu/$folderName + fi + +} + +function moveSaveFolder(){ + local emu=$1 + local folderName=$2 + local path=$3 + + local linkedTarget=$(readlink -f "$savesPath/$emu/$folderName") + + unlink "$savesPath/$emu/$folderName" + + if [[ ! -e "$savesPath/$emu/$folderName" ]]; then + mkdir -p "$savesPath/$emu/$folderName" + if [[ "$linkedTarget" == "$path" ]]; then + setMSG "Moving $emu $folderName to the Emulation/saves/$emu/$folderName folder" + rsync -avh "$path/" "$savesPath/$emu/$folderName" && rm -rf "${path:?}" + ln -sn "$savesPath/$emu/$folderName" "$path" + fi + fi + +} + + +# +# local Shortcutlocation=$1 +# local name=$2 +# local exec=$3 +# local terminal=$4 #Optional +# +# +function createDesktopShortcut(){ + + + local Shortcutlocation=$1 + local name=$2 + local exec=$3 + local terminal=$4 + local icon + + mkdir -p "$HOME/.local/share/icons/emudeck/" + cp -v "$EMUDECKGIT/icons/$(cut -d " " -f1 <<< "$name")."{svg,jpg,png} "$HOME/.local/share/icons/emudeck/" 2>/dev/null + icon=$(find "$HOME/.local/share/icons/emudeck/" -type f -iname "$(cut -d " " -f1 <<< "$name").*") + + if [ -z "$icon" ]; then + icon="steamdeck-gaming-return" + fi + + if [ -z "$terminal" ]; then + terminal="False" + fi + + echo "#!/usr/bin/env xdg-open + [Desktop Entry] + Name=$name + Exec=$exec + Icon=$icon + Terminal=$terminal + Type=Application + Categories=Game; + StartupNotify=false" > "$Shortcutlocation" + chmod +x "$Shortcutlocation" + + echo "$Shortcutlocation created" +} \ No newline at end of file diff --git a/functions/installBinUp.sh b/functions/installBinUp.sh deleted file mode 100644 index fff843e6..00000000 --- a/functions/installBinUp.sh +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/bash -installBinUp(){ - mkdir -p "$toolsPath"binupdate/ - rsync -avhp ~/dragoonDoriseTools/EmuDeck/tools/binupdate/ "$toolsPath"binupdate/ - - rm -rf ~/Desktop/EmuDeckBinUpdate.desktop 2>/dev/null - echo "#!/usr/bin/env xdg-open - [Desktop Entry] - Name=EmuDeck Tool Updater - Exec=bash "$toolsPath"binupdate/binupdate.sh - Icon=steamdeck-gaming-return - Terminal=true - Type=Application - StartupNotify=false" > ~/Desktop/EmuDeckBinUpdate.desktop - chmod +x ~/Desktop/EmuDeckBinUpdate.desktop - chmod +x "$toolsPath"binupdate/binupdate.sh - #update the paths in the script - sed -i "s|/run/media/mmcblk0p1/Emulation/roms/|${romsPath}|g" "$toolsPath"binupdate/binupdate.sh - sed -i "s|/run/media/mmcblk0p1/Emulation/tools/|${toolsPath}|g" "$toolsPath"binupdate/binupdate.sh -} \ No newline at end of file diff --git a/functions/installCHD.sh b/functions/installCHD.sh deleted file mode 100644 index 2b770182..00000000 --- a/functions/installCHD.sh +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/bash -installCHD(){ - mkdir -p "$toolsPath"chdconv/ - rsync -avhp ~/dragoonDoriseTools/EmuDeck/tools/chdconv/ "$toolsPath"chdconv/ - - rm -rf ~/Desktop/EmuDeckCHD.desktop 2>/dev/null - echo "#!/usr/bin/env xdg-open - [Desktop Entry] - Name=EmuDeck CHD Script - Exec=bash "$toolsPath"chdconv/chddeck.sh - Icon=steamdeck-gaming-return - Terminal=true - Type=Application - StartupNotify=false" > ~/Desktop/EmuDeckCHD.desktop - chmod +x ~/Desktop/EmuDeckCHD.desktop - chmod +x "$toolsPath"chdconv/chddeck.sh - chmod +x "$toolsPath"chdconv/chdman5 - #update the paths in the script - sed -i "s|/run/media/mmcblk0p1/Emulation/roms/|${romsPath}|g" "$toolsPath"chdconv/chddeck.sh - sed -i "s|/run/media/mmcblk0p1/Emulation/tools/|${toolsPath}|g" "$toolsPath"chdconv/chddeck.sh -} \ No newline at end of file diff --git a/functions/installESDE.sh b/functions/installESDE.sh deleted file mode 100644 index 90a17fc8..00000000 --- a/functions/installESDE.sh +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/bash -installESDE(){ - - setMSG "${installString} EmulationStation Desktop Edition" - curl https://gitlab.com/leonstyhre/emulationstation-de/-/raw/master/es-app/assets/latest_steam_deck_appimage.txt --output "$toolsPath"/latesturl.txt - latestURL=$(grep "https://gitlab" "$toolsPath"/latesturl.txt) - - #New repo if the other fails - if [ -z $latestURL ]; then - curl https://gitlab.com/es-de/emulationstation-de/-/raw/master/es-app/assets/latest_steam_deck_appimage.txt --output "$toolsPath"/latesturl.txt - latestURL=$(grep "https://gitlab" "$toolsPath"/latesturl.txt) - fi - curl $latestURL --output "$toolsPath"/EmulationStation-DE-x64_SteamDeck.AppImage - rm "$toolsPath"/latesturl.txt - chmod +x "$toolsPath"/EmulationStation-DE-x64_SteamDeck.AppImage - -} \ No newline at end of file diff --git a/functions/installEmuAI.sh b/functions/installEmuAI.sh index 72decbfc..6a186ec4 100644 --- a/functions/installEmuAI.sh +++ b/functions/installEmuAI.sh @@ -8,16 +8,39 @@ installEmuAI(){ if [[ $altName == "" ]]; then altName=$name fi - - mkdir -p $HOME/Applications - cd $HOME/Applications + echo $name + echo $url + echo $altName + + rm -f "$HOME/Applications/$altName.AppImage" + mkdir -p "$HOME/Applications" + curl -L "$url" -o "$HOME/Applications/$altName.AppImage" + chmod +x "$HOME/Applications/$altName.AppImage" + - curl -Lo "$altName.AppImage" "$url" - chmod +x "$altName.AppImage" shName=$(echo "$name" | awk '{print tolower($0)}') - - find "${toolsPath}"launchers/ -type f -iname $shName.sh | while read f; do echo "deleting $f"; rm -f "$f"; done; - cp "${EMUDECKGIT}"/tools/launchers/"${shName}".sh "${toolsPath}"launchers/"${shName}".sh - chmod +x "${toolsPath}"launchers/"${shName}".sh - + find "${toolsPath}/launchers/" -type f -iname "$shName.sh" -o -type f -iname "$shName-emu.sh" | \ + while read -r f + do + echo "deleting $f" + rm -f "$f" + done + + find "${EMUDECKGIT}/tools/launchers/" -type f -iname "$shName.sh" -o -type f -iname "$shName-emu.sh" | \ + while read -r l + do + echo "deploying $l" + launcherFileName=$(basename "$l") + chmod +x "$l" + cp -v "$l" "${toolsPath}/launchers/" + chmod +x "${toolsPath}/launchers/"* + + createDesktopShortcut "$HOME/.local/share/applications/$altName.desktop" \ + "$altName EmuDeck" \ + "${toolsPath}/launchers/$launcherFileName" \ + "false" + done + + + } diff --git a/functions/installEmuBI.sh b/functions/installEmuBI.sh new file mode 100644 index 00000000..4421403c --- /dev/null +++ b/functions/installEmuBI.sh @@ -0,0 +1,44 @@ +#!/bin/bash +installEmuBI(){ + + name=$1 + url=$2 + altName=$3 + format=$4 + + if [[ $altName == "" ]]; then + altName=$name + fi + echo $name + echo $url + echo $altName + + rm -f "$HOME/Applications/$altName" + mkdir -p "$HOME/Applications" + curl -L "$url" -o "$HOME/Applications/$altName.$format" + + + + shName=$(echo "$name" | awk '{print tolower($0)}') + find "${toolsPath}/launchers/" -type f -iname "$shName.sh" -o -type f -iname "$shName-emu.sh" | \ + while read -r f + do + echo "deleting $f" + rm -f "$f" + done + + find "${EMUDECKGIT}/tools/launchers/" -type f -iname "$shName.sh" -o -type f -iname "$shName-emu.sh" | \ + while read -r l + do + echo "deploying $l" + launcherFileName=$(basename "$l") + chmod +x "$l" + cp -v "$l" "${toolsPath}/launchers/" + chmod +x "${toolsPath}/launchers/"* + + createDesktopShortcut "$HOME/.local/share/applications/$altName.desktop" \ + "$altName EmuDeck" \ + "${toolsPath}/launchers/$launcherFileName" \ + "false" + done +} \ No newline at end of file diff --git a/functions/installEmuFP.sh b/functions/installEmuFP.sh index d474ad5f..80a38b14 100644 --- a/functions/installEmuFP.sh +++ b/functions/installEmuFP.sh @@ -12,8 +12,8 @@ installEmuFP(){ shName=$(echo "$name" | awk '{print tolower($0)}') - find "${toolsPath}"launchers/ -type f -iname $shName.sh | while read f; do echo "deleting $f"; rm -f "$f"; done; - cp "${EMUDECKGIT}"/tools/launchers/"${shName}".sh "${toolsPath}"launchers/"${shName}".sh - chmod +x "${toolsPath}"launchers/"${shName}".sh + find "${toolsPath}/launchers/" -type f -iname "$shName.sh" -o -type f -iname "$shName-emu.sh" | while read -r f; do echo "deleting $f"; rm -f "$f"; done; + find "${EMUDECKGIT}/tools/launchers/" -type f -iname "$shName.sh" -o -type f -iname "$shName-emu.sh" | while read -r l; do echo "deploying $l"; chmod +x "$l"; cp -v "$l" "${toolsPath}/launchers/"; done; + } diff --git a/functions/installPowerTools.sh b/functions/installPowerTools.sh deleted file mode 100644 index 4c365526..00000000 --- a/functions/installPowerTools.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/bash -installPowerTools(){ -#should use sudo password piped into cache earlier. -releaseURL='https://github.com/SteamDeckHomebrew/PluginLoader/raw/legacy/dist/install_release.sh' -mkdir -p $HOME/homebrew -sudo chown -R deck:deck $HOME/homebrew -curl -L "$releaseURL" | sh -sudo rm -rf ~/homebrew/plugins/PowerTools -sudo git clone https://github.com/NGnius/PowerTools.git ~/homebrew/plugins/PowerTools -sleep 1 -cd ~/homebrew/plugins/PowerTools -sudo git checkout tags/v0.6.0 -text="$(printf "To finish the installation of Plugin Loader and PowerTools you will need to go into the Steam UI Settings\n\nUnder System -> System Settings toggle Enable Developer Mode\n\nScroll the sidebar all the way down and click on Developer\n\nUnder Miscellaneous, enable CEF Remote Debugging\n\nIn order to improve performance on Yuzu or Dolphin try configuring Powertools to activate only 4 CPU Cores\n\nYou can Access Powertools by presing the ... button and selecting the new Plugins Menu\n\n -\n\nIMPORTANT - The Powertools menu is touch ONLY.\n\n")" -zenity --info \ - --title="EmuDeck" \ - --width=450 \ - --text="${text}" 2>/dev/null -} diff --git a/functions/installSRM.sh b/functions/installSRM.sh deleted file mode 100644 index bebdd82a..00000000 --- a/functions/installSRM.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/bash -installSRM(){ - setMSG "${installString} Steam Rom Manager" - rm -f ~/Desktop/Steam-ROM-Manager-2.3.29.AppImage - rm -f ~/Desktop/Steam-ROM-Manager.AppImage - mkdir -p "${toolsPath}"/srm - curl -L "$(curl -s https://api.github.com/repos/SteamGridDB/steam-rom-manager/releases/latest | grep -E 'browser_download_url.*AppImage' | grep -ve 'i386' | cut -d '"' -f 4)" > "${toolsPath}"srm/Steam-ROM-Manager.AppImage - #Nova fix' - echo "#!/usr/bin/env xdg-open - [Desktop Entry] - Name=Steam Rom Manager - Exec=kill -15 \`pidof steam\` & ${toolsPath}srm/Steam-ROM-Manager.AppImage - Icon=steamdeck-gaming-return - Terminal=false - Type=Application - StartupNotify=false" > ~/Desktop/SteamRomManager.desktop - chmod +x ~/Desktop/SteamRomManager.desktop - chmod +x "${toolsPath}"/srm/Steam-ROM-Manager.AppImage -} \ No newline at end of file diff --git a/functions/linkToSaveFolder.sh b/functions/linkToSaveFolder.sh deleted file mode 100644 index 6079518c..00000000 --- a/functions/linkToSaveFolder.sh +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/bash -linkToSaveFolder(){ - emu=$1 - folderName=$2 - path=$3 - - if [ ! -d "$savesPath/$emu/$folderName" ]; then - mkdir -p $savesPath/$emu - echo -e "" - echo -e "Linking $emu $folderName to the Emulation/saves folder" - echo -e "" - mkdir -p $path - ln -sn $path $savesPath/$emu/$folderName - fi - -} \ No newline at end of file diff --git a/functions/nonDeck.sh b/functions/nonDeck.sh new file mode 100644 index 00000000..7eab8252 --- /dev/null +++ b/functions/nonDeck.sh @@ -0,0 +1,206 @@ +#!/bin/bash + +nonDeck_169Screen(){ + + #Redo this using livedeth fancy functions for RA + #RetroArch_setOverride 'wswanc.cfg' 'Beetle Cygne' 'aspect_ratio_index' '"21"' + + setMSG "Applying RetroArch bezel corrections for 16:9 screens..." + #RApath=~/.var/app/org.libretro.RetroArch/config/retroarch/config/ + + #Mesen + #Nestopia + # mesenPath="${RApath}Mesen/" + # nestopiaPath="${RApath}Nestopia/" + + # sed -i "s|input_overlay_scale_landscape = \"1.070000\"|input_overlay_scale_landscape = \"1.055000\"|" "${nestopiaPath}nes.cfg" + # sed -i "s|input_overlay_aspect_adjust_landscape = \"0.000000\"|input_overlay_aspect_adjust_landscape = \"-0.090000\"|" "${nestopiaPath}nes.cfg" + + # sed -i "s|input_overlay_scale_landscape = \"1.070000\"|input_overlay_scale_landscape = \"1.055000\"|" "${mesenPath}nes.cfg" + # sed -i "s|input_overlay_aspect_adjust_landscape = \"0.000000\"|input_overlay_aspect_adjust_landscape = \"-0.090000\"|" "${mesenPath}nes.cfg" + + find "$RetroArch_coreConfigFolders" -type f -name "nes.cfg"| while read -r configFile + do + + updateOrAppendConfigLine "$configFile" "input_overlay_scale_landscape =" 'input_overlay_scale_landscape = "1.055000"' + updateOrAppendConfigLine "$configFile" "input_overlay_aspect_adjust_landscape =" 'input_overlay_aspect_adjust_landscape = "0.000000"' + + done + + #Beetle PCE Fast + #Beetle PCE + # PCEPath="${RApath}Beetle PCE Fast/" + # PCEfastPath="${RApath}Beetle PCE/" + # sed -i "s|aspect_ratio_index = \"21\"|aspect_ratio_index = \"0\"|" "${PCEfastPath}pcengine.cfg" + # sed -i "s|input_overlay_aspect_adjust_landscape = \"-0.130000\"|input_overlay_aspect_adjust_landscape = \"-0.000000\"|" "${PCEfastPath}pcengine.cfg" + # sed -i "s|input_overlay_scale_landscape = \"1.060000\"|input_overlay_scale_landscape = \"1.055000\"|" "${PCEfastPath}pcengine.cfg" + # sed -i "s|input_overlay_x_separation_landscape = \"0.010000\"|input_overlay_x_separation_landscape = \"0.000000\"|" "${PCEfastPath}pcengine.cfg" + + # sed -i "s|aspect_ratio_index = \"21\"|aspect_ratio_index = \"0\"|" "${PCEPath}pcengine.cfg" + # sed -i "s|input_overlay_aspect_adjust_landscape = \"-0.130000\"|input_overlay_aspect_adjust_landscape = \"-0.000000\"|" "${PCEPath}pcengine.cfg" + # sed -i "s|input_overlay_scale_landscape = \"1.060000\"|input_overlay_scale_landscape = \"1.055000\"|" "${PCEPath}pcengine.cfg" + # sed -i "s|input_overlay_x_separation_landscape = \"0.010000\"|input_overlay_x_separation_landscape = \"0.000000\"|" "${PCEPath}pcengine.cfg" + + + find "$RetroArch_coreConfigFolders" -type f -name "pcengine.cfg"| while read -r configFile + do + + updateOrAppendConfigLine "$configFile" "aspect_ratio_index =" 'aspect_ratio_index = "0"' + updateOrAppendConfigLine "$configFile" "input_overlay_aspect_adjust_landscape =" 'input_overlay_aspect_adjust_landscape = "0"' + updateOrAppendConfigLine "$configFile" "input_overlay_scale_landscape =" 'input_overlay_scale_landscape = "1.055000"' + updateOrAppendConfigLine "$configFile" "input_overlay_x_separation_landscape =" 'input_overlay_x_separation_landscape = "0"' + + done + + #Stella + # StellaPath="${RApath}Stella/" + # sed -i "s|input_overlay_aspect_adjust_landscape = \"0.000000\"|input_overlay_aspect_adjust_landscape = \"-0.025000\"|" "${StellaPath}atari800.cfg" + # sed -i "s|input_overlay_scale_landscape = \"1.175000\"|input_overlay_scale_landscape = \"1.080000\"|" "${StellaPath}atari800.cfg" + # sed -i "s|input_overlay_aspect_adjust_landscape = \"0.000000\"|input_overlay_aspect_adjust_landscape = \"-0.025000\"|" "${StellaPath}atari2600.cfg" + # sed -i "s|input_overlay_scale_landscape = \"1.175000\"|input_overlay_scale_landscape = \"1.080000\"|" "${StellaPath}atari2600.cfg" + # sed -i "s|input_overlay_aspect_adjust_landscape = \"0.000000\"|input_overlay_aspect_adjust_landscape = \"-0.025000\"|" "${StellaPath}atari5200.cfg" + # sed -i "s|input_overlay_scale_landscape = \"1.175000\"|input_overlay_scale_landscape = \"1.080000\"|" "${StellaPath}atari5200.cfg" + + + find "$RetroArch_coreConfigFolders" -type f -name "atari800.cfg" -o -type f -name "atari2600.cfg" -o -type f -name "atari5200.cfg"| while read -r configFile + do + + updateOrAppendConfigLine "$configFile" "aspect_ratio_index =" 'aspect_ratio_index = "0"' + updateOrAppendConfigLine "$configFile" "input_overlay_aspect_adjust_landscape =" 'input_overlay_aspect_adjust_landscape = "0"' + updateOrAppendConfigLine "$configFile" "input_overlay_scale_landscape =" 'input_overlay_scale_landscape = "1.055000"' + updateOrAppendConfigLine "$configFile" "input_overlay_x_separation_landscape =" 'input_overlay_x_separation_landscape = "0"' + + done + + #Beetle NeoPop + # NeoPopPath="${RApath}Beetle NeoPop/" + # sed -i "s|input_overlay_scale_landscape = \"1.615000\"|input_overlay_scale_landscape = \"1.575000\"|" "${NeoPopPath}ngpc.cfg" + # sed -i "s|input_overlay_x_separation_portrait = \"-0.010000\"|input_overlay_x_separation_portrait = \"0.000000\"|" "${NeoPopPath}ngpc.cfg" + # sed -i "s|input_overlay_y_offset_landscape = \"-0.135000\"|input_overlay_y_offset_landscape = \"-0.130000\"|" "${NeoPopPath}ngpc.cfg" + # sed -i "s|input_overlay_aspect_adjust_landscape = \"-0.160000\"|input_overlay_aspect_adjust_landscape = \"-0.275000\"|" "${NeoPopPath}ngpc.cfg" + + # sed -i "s|input_overlay_scale_landscape = \"1.615000\"|input_overlay_scale_landscape = \"1.575000\"|" "${NeoPopPath}ngp.cfg" + # sed -i "s|input_overlay_x_separation_portrait = \"-0.010000\"|input_overlay_x_separation_portrait = \"0.000000\"|" "${NeoPopPath}ngp.cfg" + # sed -i "s|input_overlay_y_offset_landscape = \"-0.135000\"|input_overlay_y_offset_landscape = \"-0.130000\"|" "${NeoPopPath}ngp.cfg" + # sed -i "s|input_overlay_aspect_adjust_landscape = \"-0.160000\"|input_overlay_aspect_adjust_landscape = \"-0.275000\"|" "${NeoPopPath}ngp.cfg" + + + find "$RetroArch_coreConfigFolders" -type f -name "ngpc.cfg" -o -type f -name "ngp.cfg"| while read -r configFile + do + + updateOrAppendConfigLine "$configFile" "input_overlay_x_separation_portrait =" 'input_overlay_x_separation_portrait = "0"' + updateOrAppendConfigLine "$configFile" "input_overlay_aspect_adjust_landscape =" 'input_overlay_aspect_adjust_landscape = "-0.285000"' + updateOrAppendConfigLine "$configFile" "input_overlay_scale_landscape =" 'input_overlay_scale_landscape = "1.605000"' + updateOrAppendConfigLine "$configFile" "input_overlay_y_offset_landscape =" 'input_overlay_y_offset_landscape = "-0.130000"' + + done + + #Gambatte + # GambattePath="${RApath}Gambatte/" + # sed -i "s|input_overlay_scale_landscape = \"1.860000\"|input_overlay_scale_landscape = \"1.670000\"|" "${GambattePath}gb.cfg" + # sed -i "s|input_overlay_scale_landscape = \"1.870000\"|input_overlay_scale_landscape = \"1.680000\"|" "${GambattePath}gbc.cfg" + #SameBoy + # SameBoyPath="${RApath}SameBoy/" + # sed -i "s|input_overlay_scale_landscape = \"1.860000\"|input_overlay_scale_landscape = \"1.670000\"|" "${SameBoyPath}gb.cfg" + # sed -i "s|input_overlay_scale_landscape = \"1.870000\"|input_overlay_scale_landscape = \"1.680000\"|" "${SameBoyPath}gbc.cfg" + find "$RetroArch_coreConfigFolders" -type f -name "gb.cfg"| while read -r configFile + do + updateOrAppendConfigLine "$configFile" "input_overlay_scale_landscape =" 'input_overlay_scale_landscape = "1.670000"' + done + + find "$RetroArch_coreConfigFolders" -type f -name "gbc.cfg"| while read -r configFile + do + updateOrAppendConfigLine "$configFile" "input_overlay_scale_landscape =" 'input_overlay_scale_landscape = "1.680000"' + done + + #Genesis Plus GX + #GenesisPath="${RApath}Genesis Plus GX/" + #sed -i "s|input_overlay_aspect_adjust_landscape = \"-0.080000\"|input_overlay_aspect_adjust_landscape = \"-0.200000\"|" "${GenesisPath}gamegear.cfg" + #sed -i "s|input_overlay_scale_landscape = \"1.170000\"|input_overlay_scale_landscape = \"1.055000\"|" "${GenesisPath}genesis.cfg" + #sed -i "s|input_overlay_aspect_adjust_landscape = \"0.095000\"|input_overlay_aspect_adjust_landscape = \"-0.010000\"|" "${GenesisPath}genesis.cfg" + + #sed -i "s|input_overlay_scale_landscape = \"1.170000\"|input_overlay_scale_landscape = \"1.055000\"|" "${GenesisPath}mastersystem.cfg" + #sed -i "s|input_overlay_scale_landscape = \"1.170000\"|input_overlay_scale_landscape = \"1.055000\"|" "${GenesisPath}megacd.cfg" + #sed -i "s|input_overlay_scale_landscape = \"1.170000\"|input_overlay_scale_landscape = \"1.055000\"|" "${GenesisPath}segacd.cfg" + + + #sed -i "s|input_overlay_aspect_adjust_landscape = \"0.000000\"|input_overlay_aspect_adjust_landscape = \"-0.110000\"|" "${GenesisPath}megacd.cfg" + #sed -i "s|input_overlay_aspect_adjust_landscape = \"0.000000\"|input_overlay_aspect_adjust_landscape = \"-0.110000\"|" "${GenesisPath}segacd.cfg" + #Gearsystem + #GearsystemPath="${RApath}Gearsystem/" + #sed -i "s|input_overlay_scale_landscape = \"1.545000\"|input_overlay_scale_landscape = \"1.500000\"|" "${GearsystemPath}gamegear.cfg" ### Why is this so different from the other gamegear one? Shouldn't they be using the same overlay? Doesn't make sense? Not implmemented yet. + + find "$RetroArch_coreConfigFolders" -type f -name "gamegear.cfg"| while read -r configFile + do + updateOrAppendConfigLine "$configFile" "input_overlay_scale_landscape =" 'input_overlay_scale_landscape = "-0.010000"' + updateOrAppendConfigLine "$configFile" "input_overlay_aspect_adjust_landscape =" 'input_overlay_aspect_adjust_landscape = "-0.020000"' + done + + find "$RetroArch_coreConfigFolders" -type f -name "mastersystem.cfg"| while read -r configFile + do + updateOrAppendConfigLine "$configFile" "input_overlay_scale_landscape =" 'input_overlay_scale_landscape = "1.055000"' + done + + find "$RetroArch_coreConfigFolders" -type f -name "genesis.cfg" -o -type f -name "megadrive.cfg"| while read -r configFile + do + updateOrAppendConfigLine "$configFile" "input_overlay_scale_landscape =" 'input_overlay_scale_landscape = "1.055000"' + updateOrAppendConfigLine "$configFile" "input_overlay_aspect_adjust_landscape =" 'input_overlay_aspect_adjust_landscape = "-0.010000"' + done + + find "$RetroArch_coreConfigFolders" -type f -name "megacd.cfg" -o -type f -name "segacd.cfg"| while read -r configFile + do + updateOrAppendConfigLine "$configFile" "input_overlay_scale_landscape =" 'input_overlay_scale_landscape = "1.055000"' + updateOrAppendConfigLine "$configFile" "input_overlay_aspect_adjust_landscape =" 'input_overlay_aspect_adjust_landscape = "0.000000"' + done + + #PicoDrive + #PicoPath="${RApath}PicoDrive/" + #sed -i "s|input_overlay_scale_landscape = \"1.170000\"|input_overlay_scale_landscape = \"1.075000\"|" "${PicoPath}sega32x.cfg" + + find "$RetroArch_coreConfigFolders" -type f -name "sega32x.cfg"| while read -r configFile + do + updateOrAppendConfigLine "$configFile" "input_overlay_scale_landscape =" 'input_overlay_scale_landscape = "1.070000"' + updateOrAppendConfigLine "$configFile" "input_overlay_aspect_adjust_landscape =" 'input_overlay_aspect_adjust_landscape = "-0.010000"' + done + + + + #Snes9x + #Snes9xPath="${RApath}Snes9x/" + #sed -i "s|input_overlay_scale_landscape = \"1.170000\"|input_overlay_scale_landscape = \"1.055000\"|" "${Snes9xPath}snes.cfg" + + find "$RetroArch_coreConfigFolders" -type f -name "snes.cfg"| while read -r configFile + do + updateOrAppendConfigLine "$configFile" "input_overlay_scale_landscape =" 'input_overlay_scale_landscape = "1.055000"' + done + + #Mupen64 + #Mupen64Path="${RApath}Mupen64Plus-Next/" + #sed -i "s|input_overlay_aspect_adjust_landscape = \"0.085000\"|input_overlay_aspect_adjust_landscape = \"-0.025000\"|" "${Mupen64Path}n64.cfg" + find "$RetroArch_coreConfigFolders" -type f -name "n64.cfg" | while read -r configFile + do + updateOrAppendConfigLine "$configFile" "input_overlay_aspect_adjust_landscape =" 'input_overlay_aspect_adjust_landscape = "-0.025000"' + done + + #Flycast + #FlycastPath="${RApath}Flycast/" + #sed -i "s|input_overlay_aspect_adjust_landscape = \"0.110000\"|input_overlay_aspect_adjust_landscape = \"0.000000\"|" "${FlycastPath}dreamcast.cfg" + find "$RetroArch_coreConfigFolders" -type f -name "dreamcast.cfg" | while read -r configFile + do + updateOrAppendConfigLine "$configFile" "input_overlay_aspect_adjust_landscape =" 'input_overlay_aspect_adjust_landscape = "0"' + done + + #Beetle Saturn + #BeetleSaturnPath="${RApath}Yabause/" + #sed -i "s|input_overlay_aspect_adjust_landscape = \"0.095000\"|input_overlay_aspect_adjust_landscape = \"0.000000\"|" "${BeetleSaturnPath}saturn.cfg" + find "$RetroArch_coreConfigFolders" -type f -name "saturn.cfg" | while read -r configFile + do + updateOrAppendConfigLine "$configFile" "input_overlay_aspect_adjust_landscape =" 'input_overlay_aspect_adjust_landscape = "0"' + done + +} + + +nonDeck_win600(){ + echo "Fixes for Win600 Hardware" +} \ No newline at end of file diff --git a/functions/setESDEEmus.sh b/functions/setESDEEmus.sh deleted file mode 100644 index 0973a67b..00000000 --- a/functions/setESDEEmus.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/bash -setESDEEmus(){ - emu=$1 - system=$2 - FILE=~/.emulationstation/gamelists/$system/gamelist.xml - if [ ! -f "$FILE" ]; then - mkdir -p ~/.emulationstation/gamelists/$system && cp ~/dragoonDoriseTools/EmuDeck/configs/emulationstation/gamelists/$system/gamelist.xml $FILE - else - gamelistFound=$(grep -rnw $FILE -e 'gameList') - if [[ $gamelistFound == '' ]]; then - sed -i -e '$a\' $FILE - fi - alternativeEmu=$(grep -rnw $FILE -e 'alternativeEmulator') - if [[ $alternativeEmu == '' ]]; then - echo "" >> $FILE - fi - sed -i "s|||g" $FILE - fi -} \ No newline at end of file diff --git a/functions/setMSG.sh b/functions/setMSG.sh index fd74a309..00586837 100644 --- a/functions/setMSG.sh +++ b/functions/setMSG.sh @@ -6,6 +6,7 @@ setMSG(){ progressBar=90 fi echo "$progressBar" > ~/emudeck/msg.log - echo "# $1" >> ~/emudeck/msg.log + echo "# $1" >> ~/emudeck/msg.log + echo "$1" sleep 0.5 } \ No newline at end of file diff --git a/functions/setSetting.sh b/functions/setSetting.sh deleted file mode 100644 index 28114505..00000000 --- a/functions/setSetting.sh +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/bash -setSetting () { - var=$1 - new_val=$2 - file=~/emudeck/settings.sh - settingExists=$(grep -rnw $file -e $var) - if [[ $settingExists == '' ]]; then - #insert setting to end - sed -i -e '$a\'"$var=$new_val" $FILE - elif [[ ! $settingExists == '' ]]; then - #update setting - sed -i "s|^$var *= *.*|$var=$new_val|; s|^$var [^=]*$|$var $new_val|" "$file" - fi - #Update values - source ~/emudeck/settings.sh -} \ No newline at end of file diff --git a/functions/setWide.sh b/functions/setWide.sh deleted file mode 100644 index 3979dc5d..00000000 --- a/functions/setWide.sh +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/bash -setWide(){ - if [ $duckWide == true ]; then - sed -i "s|WidescreenHack = false|WidescreenHack = true|g" ~/.var/app/org.duckstation.DuckStation/data/duckstation/settings.ini - else - sed -i "s|WidescreenHack = true|WidescreenHack = false|g" ~/.var/app/org.duckstation.DuckStation/data/duckstation/settings.ini - fi - if [ $DolphinWide == true ]; then - sed -i "s|wideScreenHack = False|wideScreenHack = True|g" ~/.var/app/org.DolphinEmu.dolphin-emu/config/dolphin-emu/GFX.ini - sed -i "s|AspectRatio = 0|AspectRatio = 1|g" ~/.var/app/org.DolphinEmu.dolphin-emu/config/dolphin-emu/GFX.ini - else - sed -i "s|wideScreenHack = True|wideScreenHack = False|g" ~/.var/app/org.DolphinEmu.dolphin-emu/config/dolphin-emu/GFX.ini - sed -i "s|AspectRatio = 1|AspectRatio = 0|g" ~/.var/app/org.DolphinEmu.dolphin-emu/config/dolphin-emu/GFX.ini - fi - if [ $DreamcastWide == true ]; then - sed -i "s|reicast_widescreen_hack = \"disabled\"|reicast_widescreen_hack = \"enabled\"|g" ~/.var/app/org.libretro.RetroArch/config/retroarch/config/Flycast/Flycast.opt - else - sed -i "s|reicast_widescreen_hack = \"enabled\"|reicast_widescreen_hack = \"disabled\"|g" ~/.var/app/org.libretro.RetroArch/config/retroarch/config/Flycast/Flycast.opt - fi - - if [ $BeetleWide == true ]; then - sed -i "s|beetle_psx_hw_widescreen_hack = \"disabled\"|beetle_psx_hw_widescreen_hack = \"enabled\"|g" "$HOME/.var/app/org.libretro.RetroArch/config/retroarch/config/Beetle PSX HW/Beetle PSX HW.opt" - else - sed -i "s|beetle_psx_hw_widescreen_hack = \"enabled\"|beetle_psx_hw_widescreen_hack = \"disabled\"|g" "$HOME/.var/app/org.libretro.RetroArch/config/retroarch/config/Beetle PSX HW/Beetle PSX HW.opt" - fi -} \ No newline at end of file diff --git a/functions/testLocationValid.sh b/functions/testLocationValid.sh deleted file mode 100644 index ba0ad279..00000000 --- a/functions/testLocationValid.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/bash -testLocationValid(){ - testLocation=$2 - touch $testLocation/testwrite - return="" - if [ ! -f $testLocation/testwrite ]; then - #echo "$testLocation not writeable" - return="invalid" - else - #echo "$testLocation writable" - - ln -s $testLocation/testwrite $testLocation/testwrite.link - if [ ! -f $testLocation/testwrite.link ]; then - #echo "Symlink creation failed in $testLocation" - return="invalid" - else - return="valid" - #doesn't work? scope issue? - #locationTable+=(FALSE "$1" "$testLocation") #valid only if location is writable and linkable - fi - fi - rm -f "$testLocation/testwrite" "$testLocation/testwrite.link" - echo $return -} \ No newline at end of file diff --git a/functions/updateEmuFP.sh b/functions/updateEmuFP.sh new file mode 100644 index 00000000..3aec636f --- /dev/null +++ b/functions/updateEmuFP.sh @@ -0,0 +1,19 @@ +#!/bin/bash +updateEmuFP(){ + + name=$1 + ID=$2 + + setMSG "Updating $name" + + flatpak update $ID -y --system + flatpak override $ID --filesystem=host --user + flatpak override $ID --share=network --user + + shName=$(echo "$name" | awk '{print tolower($0)}') + + find "${toolsPath}"launchers/ -type f -iname $shName.sh | while read f; do echo "deleting $f"; rm -f "$f"; done; + cp "${EMUDECKGIT}"/tools/launchers/"${shName}".sh "${toolsPath}"launchers/"${shName}".sh + chmod +x "${toolsPath}"launchers/"${shName}".sh + +} diff --git a/icons/Cemu.png b/icons/Cemu.png new file mode 100644 index 00000000..20c1d4c7 Binary files /dev/null and b/icons/Cemu.png differ diff --git a/icons/Ryujinx.svg b/icons/Ryujinx.svg new file mode 100644 index 00000000..ff1e7efa --- /dev/null +++ b/icons/Ryujinx.svg @@ -0,0 +1 @@ + diff --git a/icons/pcsx2-Qt.png b/icons/pcsx2-Qt.png new file mode 100644 index 00000000..ce17247a Binary files /dev/null and b/icons/pcsx2-Qt.png differ diff --git a/icons/yuzu.svg b/icons/yuzu.svg new file mode 100644 index 00000000..89e2ca95 --- /dev/null +++ b/icons/yuzu.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/install.sh b/install.sh index 8a94f926..6d9a46ed 100644 --- a/install.sh +++ b/install.sh @@ -2,102 +2,167 @@ # ## -## Downloading files... +## Pid Lock... +## +# +mkdir -p "$HOME/emudeck" +PIDFILE="$HOME/emudeck/install.pid" + +devMode=$1 + +if [ -f "$PIDFILE" ]; then + PID=$(cat "$PIDFILE") + ps -p "$PID" > /dev/null 2>&1 + if [ $? -eq 0 ]; then + echo "Process already running" + exit 1 + else + ## Process not found assume not running + echo $$ > "$PIDFILE" + if [ $? -ne 0 ]; then + echo "Could not create PID file" + exit 1 + fi + fi +else + echo $$ > "$PIDFILE" + if [ $? -ne 0 ]; then + echo "Could not create PID file" + exit 1 + fi +fi + +function finish { + echo "Script terminating. Exit code $?" + finished=true + rm "$MSG" + killall zenity +} +trap finish EXIT + + +# +## +## Init... This code is needed for both Zenity and non Zenity modes ## # -# Which branch? -devMode=$1 -case $devMode in - "BETA") - branch="beta" - ;; - "DEV") - branch="dev" - ;; - *) - branch="main" - ;; -esac +# +## +## Do we need Zenity?... Anything in the second param will skip zenity +## +# +if [ -z "$2" ]; then + zenity=true +else + zenity="$2" +fi + + #Clean up previous installations rm ~/emudek.log 2>/dev/null # This is emudeck's old log file, it's not a typo! rm -rf ~/dragoonDoriseTools -mkdir -p ~/emudeck #Creating log file -echo "" > ~/emudeck/emudeck.log -LOGFILE=~/emudeck/emudeck.log -exec > >(tee ${LOGFILE}) 2>&1 +LOGFILE="$HOME/emudeck/emudeck.log" +mv "${LOGFILE}" "$HOME/emudeck/emudeck.last.log" #backup last log + +echo "${@}" > "${LOGFILE}" #might as well log out the parameters of the run +exec > >(tee "${LOGFILE}") 2>&1 +date "+%Y.%m.%d-%H:%M:%S %Z" #Mark if this not a fresh install -FOLDER=~/emudeck/ +FOLDER="$HOME/emudeck/" if [ -d "$FOLDER" ]; then - echo "" > ~/emudeck/.finished + echo "" > "$HOME/emudeck/.finished" fi sleep 1 -SECONDTIME=~/emudeck/.finished +SECONDTIME="$HOME/emudeck/.finished" + # Seeting up the progress Bar for the rest of the installation -finished=false -echo "0" > ~/emudeck/msg.log -echo "# Downloading files from $branch channel..." >> ~/emudeck/msg.log -MSG=~/emudeck/msg.log -( - while [ $finished == false ] - do - cat $MSG - if grep -q "100" "$MSG"; then - finished=true - break - fi - - done & -) | -zenity --progress \ - --title="Installing EmuDeck" \ - --text="Downloading files from $branch channel..." \ - --percentage=0 \ - --no-cancel \ - --pulsate \ - --auto-close \ - --width=300 \ & -if [ "$?" = -1 ] ; then - zenity --error \ - --text="Update canceled." +if [[ $zenity == true ]]; then + finished=false + MSG=~/emudeck/msg.log + echo "0" > "$MSG" + echo "# Installing EmuDeck" >> "$MSG" + + ( + while [ $finished == false ] + do + cat "$MSG" + if grep -q "100" "$MSG"; then + finished=true + break + fi + # sleep 10 + done + ) | zenity --progress \ + --title="Installing EmuDeck" \ + --text="Installing EmuDeck..." \ + --percentage=0 \ + --no-cancel \ + --pulsate \ + --auto-close \ + --width=300 2>/dev/null & + + if [ "$?" == -1 ] ; then + zenity --error \ + --text="Update canceled." 2>/dev/null + fi fi + + + +# +## +## set backend location +## +# I think this should just be in the source, so there's one spot for initialization. hrm, no i'm wrong. Here is best. +EMUDECKGIT="$HOME/emudeck/backend" + +# +## +echo 'Downloading files...' +## +# +# +## +## Branch to download +## +# + +case $devMode in + "BETA") branch="beta" ;; + "beta") branch="beta" ;; + "DEV") branch="dev" ;; + "dev") branch="dev" ;; + *) branch="main" ;; +esac + +echo $branch > "$HOME/emudeck/branch.txt" + + + #We create all the needed folders for installation -mkdir -p ~/dragoonDoriseTools/EmuDeck -cd ~/dragoonDoriseTools +if [[ ! -e $EMUDECKGIT/.git/config ]]; then + mkdir -p "$EMUDECKGIT" -#Cloning EmuDeck files -git clone https://github.com/dragoonDorise/EmuDeck.git ~/dragoonDoriseTools/EmuDeck -if [ ! -z "$devMode" ]; then - cd ~/dragoonDoriseTools/EmuDeck - git checkout $branch + #Cloning EmuDeck files + git clone https://github.com/dragoonDorise/EmuDeck.git "$EMUDECKGIT" +fi + +git status "$EMUDECKGIT" --porcelain +if [[ ! $noPull == true ]]; then + cd "$EMUDECKGIT" + git fetch origin && git checkout origin/$branch && git reset --hard origin/$branch && git clean -ffdx + fi -#Test if we have a successful clone -EMUDECKGIT=~/dragoonDoriseTools/EmuDeck -if [ -d "$EMUDECKGIT" ]; then - echo -e "Files Downloaded!" -clear -cat ~/dragoonDoriseTools/EmuDeck/logo.ans -version=$(cat ~/dragoonDoriseTools/EmuDeck/version.md) -echo -e "${BOLD}EmuDeck ${version}${NONE}" -echo -e "" -cat ~/dragoonDoriseTools/EmuDeck/latest.md - -else - echo -e "" - echo -e "We couldn't download the needed files, exiting in a few seconds" - echo -e "Please close this window and try again in a few minutes" - sleep 999999 - exit -fi # ## @@ -105,396 +170,373 @@ fi ## # +#Test if we have a successful clone +if [ -d "$EMUDECKGIT" ]; then + echo -e "Files Downloaded!" +clear +#cat $EMUDECKGIT/logo.ans +version=$(cat "$EMUDECKGIT/version.md") +echo -e "${BOLD}EmuDeck ${version}${NONE}" +echo -e "" +cat "$EMUDECKGIT/latest.md" -# -## Settings -# -#Check for config file -FILE=~/emudeck/settings.sh -if [ -f "$FILE" ]; then - source $FILE - else - cp "$EMUDECKGIT"/settings.sh ~/emudeck/settings.sh -fi - -# -## Functions -# - -source "$EMUDECKGIT"/functions/all.sh - -# -## extra Binaries to path -# -export PATH="${EMUDECKGIT}/tools/binaries/:$PATH" -chmod +x "${EMUDECKGIT}/tools/binaries/xmlstarlet" - -# -## Splash screen -# - -latest=$(cat ~/dragoonDoriseTools/EmuDeck/latest.md) -if [ -f "$SECONDTIME" ]; then - text="$(printf "Hi, this is the changelog of the new features added in this version\n\n${latest}")" - width=1000 else - text="$(printf "Welcome to EmuDeck!")" - width=300 -fi - zenity --info \ ---title="EmuDeck" \ ---width=${width} \ ---text="${text}" 2>/dev/null + echo -e "" + echo -e "Backend Files are missing!" + echo -e "Please close this window and try again in a few minutes" + sleep 999999 + exit +fi +# +## +## Source all functions and previous values if they exist. +## We source the settings.sh from the emudeck folder if it exists, inside here too. +## +# + +source "$EMUDECKGIT/functions/all.sh" + +# +#Environment Check +# +echo "" +echo "Env Details: " +getEnvironmentDetails +testRealDeck + +#this sets up the settings file with defaults, in case they don't have a new setting we've added. +#also echos them all out so they are in the log. +echo "Setup Settings File: " +createUpdateSettingsFile + + + +if [ "$zenity" == true ]; then + + #This part of the code is where all the settings are created -# -#Hardware Check for Holo Users -# -if [[ "$(cat /sys/devices/virtual/dmi/id/product_name)" =~ Jupiter ]]; then - isRealDeck=true -else - isRealDeck=false -fi - -# -# Initialize locations -# -locationTable=() -locationTable+=(TRUE "Internal" "$HOME") #always valid - -#built in SD Card reader -if [ -b "/dev/mmcblk0p1" ]; then - #test if card is writable and linkable - sdCardFull="$(findmnt -n --raw --evaluate --output=target -S /dev/mmcblk0p1)" - echo "SD Card found; testing $sdCardFull for validity." - sdValid=$(testLocationValid "SD" $sdCardFull) - echo "SD Card at $sdCardFull is valid? Return val: $sdValid" - if [[ $sdValid == "valid" ]]; then + + + # + ## Splash screen + # + + latest=$(cat "$EMUDECKGIT/latest.md") + if [ -f "$SECONDTIME" ]; then + text="$(printf "Hi, this is the changelog of the new features added in this version\n\n${latest}")" + width=1000 + else + text="$(printf "Welcome to EmuDeck!")" + width=300 + fi + zenity --info \ + --title="EmuDeck" \ + --width="${width}" \ + --text="${text}" 2>/dev/null + + + + # + # Initialize locations + # + locationTable=() + locationTable+=(TRUE "Internal" "$HOME") #always valid + + #built in SD Card reader + sdCardFull=$(getSDPath) + sdValid=$(testLocationValid "SD" "$sdCardFull") + echo "$sdCardFull $sdValid" + if [[ ! $sdValid =~ "Invalid" ]]; then locationTable+=(FALSE "SD Card" "$sdCardFull") fi -fi -# -# Installation mode selection -# - -text="`printf "Hi!\nDo you want to run EmuDeck on Easy or Expert mode?\n\nEasy Mode takes care of everything for you, it is an unattended installation.\n\nExpert mode gives you a bit more of control on how EmuDeck configures your system like giving you the option to install PowerTools or keep your custom configurations per Emulator"`" -zenity --question \ - --title="EmuDeck" \ - --width=250 \ - --ok-label="Expert Mode" \ - --cancel-label="Easy Mode" \ - --text="${text}" 2>/dev/null -ans=$? -if [ $ans -eq 0 ]; then - setSetting expert true - echo "Mode selected: Expert" - locationTable+=(FALSE "Custom" "CUSTOM") #in expert mode we'll allow the user to pick an arbitrary place. -else - setSetting expert false - echo "Mode selected: Easy" -fi - -# -#Storage Selection -# - -if [[ ${#locationTable[@]} -gt 3 ]]; then # -gt 3 because there's 3 entries per row. - destination=$(zenity --list \ - --title="Where would you like Emudeck to be installed?" \ - --radiolist \ - --width=400 --height=225 \ - --column="" --column="Install Location" --column="value" \ - --hide-column=3 --print-column=3 \ - "${locationTable[@]}" 2>/dev/null) + # + # Installation mode selection + # + + text="$(printf "Hi!\nDo you want to run EmuDeck on Easy or Expert mode?\n\nEasy Mode takes care of everything for you, it is an unattended installation.\n\nExpert mode gives you a bit more of control on how EmuDeck configures your system like giving you the option to install PowerTools or keep your custom configurations per Emulator")" + zenity --question \ + --title="EmuDeck" \ + --width=250 \ + --ok-label="Expert Mode" \ + --cancel-label="Easy Mode" \ + --text="${text}" 2>/dev/null ans=$? if [ $ans -eq 0 ]; then - echo "Storage: ${destination}" + setSetting expert true + echo "Mode selected: Expert" + locationTable+=(FALSE "Custom" "CUSTOM") #in expert mode we'll allow the user to pick an arbitrary place. else - echo "No storage choice made" - exit + setSetting expert false + echo "Mode selected: Easy" fi -else - destination="$HOME" -fi - -if [[ $destination == "CUSTOM" ]]; then - destination=$(zenity --file-selection --directory --title="Select a destination for the Emulation directory." 2>/dev/null) - if [[ $destination != "CUSTOM" ]]; then - echo "Storage: ${destination}" - customValid=$(testLocationValid "Custom" "${destination}") - - if [[ $customValid != "valid" ]]; then - echo "Valid location not chosen. Exiting" + + # + #Storage Selection + # + + if [[ ${#locationTable[@]} -gt 3 ]]; then # -gt 3 because there's 3 entries per row. + destination=$(zenity --list \ + --title="Where would you like Emudeck to be installed?" \ + --radiolist \ + --width=400 --height=225 \ + --column="" --column="Install Location" --column="value" \ + --hide-column=3 --print-column=3 \ + "${locationTable[@]}" 2>/dev/null) + ans=$? + if [ $ans -eq 0 ]; then + echo "Storage: ${destination}" + else + echo "No storage choice made" exit fi - else - echo "User didn't choose. Exiting." - exit + destination="$HOME" fi -fi - -#New paths based on where the user picked. -setSetting emulationPath "${destination}/Emulation/" -setSetting romsPath "${destination}/Emulation/roms/" -setSetting toolsPath "${destination}/Emulation/tools/" -setSetting biosPath "${destination}/Emulation/bios/" -setSetting savesPath "${destination}/Emulation/saves/" -setSetting storagePath "${destination}/Emulation/storage/" -ESDEscrapData="${destination}/Emulation/tools/downloaded_media" - -#Folder creation... -mkdir -p "$emulationPath" -mkdir -p "$toolsPath"launchers -mkdir -p "$savesPath" -mkdir -p "$romsPath" -mkdir -p "$storagePath" -mkdir -p "$biosPath"yuzu - -##Generate rom folders -setMSG "Creating roms folder in $destination" - -sleep 3 -rsync -r --ignore-existing ~/dragoonDoriseTools/EmuDeck/roms/ "$romsPath" - -# -# Start of Expert mode configuration -# The idea is that Easy mode is unatended, so everything that's out -# out of the ordinary has to had its flag enabled/disabled on Expert mode -# - -if [ $expert == "true" ]; then - echo "Expert mode begin" - #set all features to false - doInstallCHD=false - doInstallPowertools=false - doInstallGyro=false - doSetupSRM=false - doInstallESDE=false - doSelectEmulators=false - doResetEmulators=false - doSelectRABezels=false - doSelectRAAutoSave=false - doSNESAR87=false - doSelectWideScreen=false - doRASignIn=false - doRAEnable=false - doESDEThemePicker=false - doXboxButtons=false - #one entry per expert mode feature - table=() - table+=(TRUE "CHDScript" "Install the latest version of our CHD conversion script?") - table+=(TRUE "PowerTools" "Install Power Tools for CPU control? (password required)") - table+=(TRUE "SteamGyro" "Setup the SteamDeckGyroDSU for gyro control (password required)") - table+=(TRUE "updateSRM" "Install/Update Steam Rom Manager? Customizations will not be reset.") - table+=(TRUE "updateESDE" "Install/Update Emulation Station DE? Customizations and scrapes will not be reset.") - table+=(TRUE "selectEmulators" "Select the emulators to install.") - table+=(TRUE "selectEmulatorConfig" "Customize the emulator configuration reset. (note: Fixes will be skipped if boxes are unchecked)") - table+=(TRUE "selectRABezels" "Turn on Bezels for Retroarch?") - table+=(TRUE "selectRAAutoSave" "Turn on Retroarch AutoSave/Restore state?") - table+=(TRUE "snesAR" "SNES 8:7 Aspect Ratio? (unchecked is 4:3)") - table+=(TRUE "selectWideScreen" "Customize Emulator Widescreen Selection?") - table+=(TRUE "setRAEnabled" "Enable Retroachievments in Retroarch?") - table+=(TRUE "setRASignIn" "Change RetroAchievements Sign in?") - table+=(TRUE "doESDEThemePicker" "Choose your EmulationStation-DE Theme?") - #table+=(TRUE "doXboxButtons" "Should facebutton letters match between Nintendo and Steamdeck? (default is matched location)") + if [[ $destination == "CUSTOM" ]]; then + destination=$(customLocation) + customValid=$(testLocationValid "Custom" "${destination}") + echo "$customValid" + if [[ $customValid =~ "Invalid" ]]; then + echo "User chose invalid location. Exiting." + #zenity pop up explaining why + exit + fi + fi + + #New paths based on where the user picked. + setSetting emulationPath "${destination}/Emulation" + setSetting romsPath "${destination}/Emulation/roms" + setSetting toolsPath "${destination}/Emulation/tools" + setSetting biosPath "${destination}/Emulation/bios" + setSetting savesPath "${destination}/Emulation/saves" + setSetting storagePath "${destination}/Emulation/storage" + setSetting ESDEscrapData "${destination}/Emulation/tools/downloaded_media/" - declare -i height=(${#table[@]}*40) + #Folder creation... This code is repeated outside of this if for the no zenity mode + mkdir -p "$emulationPath" + mkdir -p "$toolsPath"/launchers + mkdir -p "$savesPath" + mkdir -p "$romsPath" + mkdir -p "$storagePath" + mkdir -p "$biosPath"/yuzu + mkdir -p "$biosPath"/HdPacks + mkdir -p "$emulationPath"/hdpacks - expertModeFeatureList=$(zenity --list --checklist --width=1000 --height=${height} \ - --column="Select?" \ - --column="Features" \ - --column="Description" \ - --hide-column=2 \ - "${table[@]}" 2>/dev/null) - echo "user selected: $expertModeFeatureList" - #set flags to true for selected expert mode features - if [[ "$expertModeFeatureList" == *"CHDScript"* ]]; then - doInstallCHD=true - fi - if [[ "$expertModeFeatureList" == *"PowerTools"* ]]; then - doInstallPowertools=true - fi - if [[ "$expertModeFeatureList" == *"SteamGyro"* ]]; then - doInstallGyro=true - fi - if [[ "$expertModeFeatureList" == *"updateSRM"* ]]; then - doSetupSRM=true - else - doSetupSRM=false - fi - if [[ "$expertModeFeatureList" == *"updateESDE"* ]]; then - doInstallESDE=true - else - doInstallESDE=false - fi - if [[ "$expertModeFeatureList" == *"selectEmulators"* ]]; then - doSelectEmulators=true - fi - if [[ "$expertModeFeatureList" == *"selectEmulatorConfig"* ]]; then - doResetEmulators=true - fi - if [[ "$expertModeFeatureList" == *"selectRABezels"* ]]; then - RABezels=true - else - RABezels=false - fi - if [[ "$expertModeFeatureList" == *"selectRAAutoSave"* ]]; then - RAautoSave=true - else - RAautoSave=false - fi - if [[ "$expertModeFeatureList" == *"snesAR"* ]]; then - SNESAR=43 - else - SNESAR=87 - fi - if [[ "$expertModeFeatureList" == *"selectWideScreen"* ]]; then - doSelectWideScreen=true - fi - if [[ "$expertModeFeatureList" == *"setRASignIn"* ]]; then - doRASignIn=true - fi - if [[ "$expertModeFeatureList" == *"setRAEnable"* ]]; then - doRAEnable=true - fi - if [[ "$expertModeFeatureList" == *"doESDEThemePicker"* ]]; then - doESDEThemePicker=true - fi + + unlink "$emulationPath"/hdpacks/Mesen 2>/dev/null #refresh link if moved + ln -s "$biosPath"/HdPacks/ "$emulationPath"/hdpacks/Mesen + echo "Put your Mesen HD Packs here. Remember to put the pack inside a folder here with the exact name of the rom" > "$biosPath"/HdPacks/readme.txt + + ##Generate rom folders + setMSG "Creating roms folder in $destination" + + sleep 3 + rsync -r --ignore-existing "$EMUDECKGIT/roms/" "$romsPath"/ + #End repeated code + + # + # Start of Expert mode configuration + # The idea is that Easy mode is unatended, so everything that's out + # out of the ordinary has to had its flag enabled/disabled on Expert mode + # + + if [ "$expert" == "true" ]; then + echo "Expert mode begin" - - if [[ $doInstallPowertools == "true" || $doInstallGyro == "true" || $isRealDeck == "false" ]]; then - hasPass=$(passwd -S $(whoami) | awk -F " " '{print $2}') - if [[ ! $hasPass == "P" ]]; then - text="`printf "Password not set.\n Please set one now in the terminal.\nYou will not see text entry in the terminal for your password. This is normal.\nOnce set, you will be prompted to enter it in a new window."`" - zenity --error \ - --title="EmuDeck" \ - --width=400 \ - --text="${text}" 2>/dev/null - passwd + #one entry per expert mode feature + table=() + #table+=(TRUE "CHDScript" "Install the latest version of our CHD conversion script?") + table+=(TRUE "PowerTools" "Install Power Tools for CPU control? (password required)") + table+=(TRUE "SteamGyro" "Setup the SteamDeckGyroDSU for gyro control (password required)") + table+=(TRUE "updateSRM" "Install/Update Steam Rom Manager? Customizations will not be reset.") + table+=(TRUE "updateESDE" "Install/Update Emulation Station DE? Customizations and scrapes will not be reset.") + table+=(TRUE "selectEmulators" "Select the emulators to install.") + table+=(TRUE "selectEmulatorConfig" "Customize the emulator configuration reset. (note: Fixes will be skipped if boxes are unchecked)") + table+=(TRUE "selectRABezels" "Turn on Bezels for Retroarch?") + table+=(TRUE "selectRAAutoSave" "Turn on Retroarch AutoSave/Restore state?") + table+=(TRUE "snesAR" "SNES 8:7 Aspect Ratio? (unchecked is 4:3)") + table+=(TRUE "selectWideScreen" "Customize Emulator Widescreen Selection?") + table+=(TRUE "setRAEnabled" "Enable Retroachievments in Retroarch?") + table+=(TRUE "setRASignIn" "Change RetroAchievements Sign in?") + table+=(TRUE "doESDEThemePicker" "Choose your EmulationStation-DE Theme?") + #table+=(TRUE "doXboxButtons" "Should facebutton letters match between Nintendo and Steamdeck? (default is matched location)") + + if [[ ! $devMode == "main" ]]; then + table+=(TRUE "SaveSync" "Setup Save Synchronization for Emudeck to a cloud provider") fi - PASSWD="$(zenity --password --title="Enter Deck User Password (not Steam account!)" 2>/dev/null)" - echo $PASSWD | sudo -v -S - ans=$? - if [[ $ans == 1 ]]; then - #incorrect password - PASSWD="$(zenity --password --title="Password was incorrect. Try again. (Did you remember to set a password for linux before running this?)" 2>/dev/null)" - echo $PASSWD | sudo -v -S + + declare -i height=(${#table[@]}*40) + + expertModeFeatureList=$(zenity --list --checklist --width=1000 --height="${height}" \ + --column="Select?" \ + --column="Features" \ + --column="Description" \ + --hide-column=2 \ + "${table[@]}" 2>/dev/null) + echo "user selected: $expertModeFeatureList" + #set flags to true for selected expert mode features + #if [[ "$expertModeFeatureList" == *"CHDScript"* ]]; then + # setSetting doInstallCHD true + #fi + if [[ "$expertModeFeatureList" == *"PowerTools"* ]]; then + setSetting doInstallPowertools true + else + setSetting doInstallPowertools false + fi + if [[ "$expertModeFeatureList" == *"SteamGyro"* ]]; then + setSetting doInstallGyro true + else + setSetting doInstallGyro false + fi + if [[ "$expertModeFeatureList" == *"SaveSync"* ]]; then + setSetting doSetupSaveSync true + else + setSetting doSetupSaveSync false + fi + if [[ "$expertModeFeatureList" == *"updateSRM"* ]]; then + setSetting doSetupSRM true + else + setSetting doSetupSRM false + fi + if [[ "$expertModeFeatureList" == *"updateESDE"* ]]; then + setSetting doInstallESDE true + else + setSetting doInstallESDE false + fi + if [[ "$expertModeFeatureList" == *"selectEmulators"* ]]; then + setSetting doSelectEmulators true + else + setSetting doSelectEmulators false + fi + if [[ "$expertModeFeatureList" == *"selectEmulatorConfig"* ]]; then + setSetting doResetEmulators true + else + setSetting doResetEmulators false + fi + if [[ "$expertModeFeatureList" == *"selectRABezels"* ]]; then + setSetting RABezels true + else + setSetting RABezels false + fi + if [[ "$expertModeFeatureList" == *"selectRAAutoSave"* ]]; then + setSetting RAautoSave true + else + setSetting RAautoSave false + fi + if [[ "$expertModeFeatureList" == *"snesAR"* ]]; then + setSetting SNESAR 43 + else + setSetting SNESAR 87 + fi + if [[ "$expertModeFeatureList" == *"selectWideScreen"* ]]; then + setSetting doSelectWideScreen true + else + setSetting doSelectWideScreen false + fi + if [[ "$expertModeFeatureList" == *"setRASignIn"* ]]; then + setSetting doRASignIn true + else + setSetting doRASignIn false + fi + if [[ "$expertModeFeatureList" == *"setRAEnable"* ]]; then + setSetting doRAEnable true + else + setSetting doRAEnable false + fi + if [[ "$expertModeFeatureList" == *"doESDEThemePicker"* ]]; then + setSetting doESDEThemePicker true + else + setSetting doESDEThemePicker false + fi + + + if [[ $doInstallPowertools == "true" || $doInstallGyro == "true" || $isRealDeck == "false" ]]; then + hasPass=$(passwd -S "$USER" | awk -F " " '{print $2}') + if [[ ! $hasPass == "P" ]]; then + text="$(printf "Password not set.\n Please set one now in the terminal.\nYou will not see text entry in the terminal for your password. This is normal.\nOnce set, you will be prompted to enter it in a new window.")" + zenity --error \ + --title="EmuDeck" \ + --width=400 \ + --text="${text}" 2>/dev/null + sleep 1 + clear + echo "Enter a new password for the local Deck account here. You will have to enter it twice. No visual indication of typing will occur." + echo "Please remember it." + passwd + ans=$? + if [[ $ans == 1 ]]; then + echo "Setting password failed." + fi + fi + PASSWD="$(zenity --password --title="Password Entry" --text="Enter Deck User Password (not Steam account!)" 2>/dev/null)" + echo "$PASSWD" | sudo -v -S ans=$? if [[ $ans == 1 ]]; then - text="`printf "Password not accepted.\n Expert mode tools which require a password will not work. Disabling them."`" - zenity --error \ - --title="EmuDeck" \ - --width=400 \ - --text="${text}" 2>/dev/null - doInstallPowertools=false - doInstallGyro=false + #incorrect password + PASSWD="$(zenity --password --title="Password Entry" --text="Password was incorrect. Try again. (Did you remember to set a password for linux before running this?)" 2>/dev/null)" + echo "$PASSWD" | sudo -v -S + ans=$? + if [[ $ans == 1 ]]; then + text="$(printf "Password not accepted.\n Expert mode tools which require a password will not work. Disabling them.")" + zenity --error \ + --title="EmuDeck" \ + --width=400 \ + --text="${text}" 2>/dev/null + setSetting doInstallPowertools false + setSetting doInstallGyro false + fi fi fi + if [[ $doESDEThemePicker == true ]]; then + text="Which theme do you want to set for EmulationStation-DE?" + esdeTheme=$(zenity --list \ + --title="EmuDeck" \ + --height=250 \ + --width=250 \ + --ok-label="OK" \ + --cancel-label="Exit" \ + --text="${text}" \ + --radiolist \ + --column="" \ + --column="Theme" \ + 1 "EPICNOIR" \ + 2 "MODERN-DE" \ + 3 "RBSIMPLE-DE" 2>/dev/null) + ans=$? + if [ $ans -eq 0 ]; then + echo "Theme selected: $esdeTheme" + setSetting esdeTheme $esdeTheme + fi fi - - - if [[ $doSelectEmulators == "true" ]]; then - - emuTable=() - emuTable+=(TRUE "Multiple" "RetroArch") - emuTable+=(TRUE "Metroid Prime" "PrimeHack") - emuTable+=(TRUE "PS2" "PCSX2") - emuTable+=(TRUE "PS3" "RPCS3") - emuTable+=(TRUE "3DS" "Citra") - emuTable+=(TRUE "GC/Wii" "Dolphin") - emuTable+=(TRUE "PSX" "Duckstation") - emuTable+=(TRUE "PSP" "PPSSPP") - emuTable+=(TRUE "Switch" "Yuzu") - emuTable+=(TRUE "WiiU" "Cemu") - emuTable+=(TRUE "XBox" "Xemu") - #if we are in beta / dev install, allow Xenia. Still false by default though. Will only work on expert mode, and explicitly turned on. - if [[ $branch=="beta" || $branch=="dev" ]]; then - emuTable+=(FALSE "Xbox360" "Xenia") - fi - - #Emulator selector - text="`printf "What emulators do you want to install?"`" - emusToInstall=$(zenity --list \ - --title="EmuDeck" \ - --height=500 \ - --width=250 \ - --ok-label="OK" \ - --cancel-label="Exit" \ - --text="${text}" \ - --checklist \ - --column="Select" \ - --column="System" \ - --column="Emulator" \ - --print-column=3 \ - "${emuTable[@]}" 2>/dev/null) - ans=$? - - if [ $ans -eq 0 ]; then - echo "User selected: $emusToInstall" - if [[ "$emusToInstall" == *"RetroArch"* ]]; then - doInstallRA=true - fi - if [[ "$emusToInstall" == *"PrimeHack"* ]]; then - doInstallPrimeHacks=true - fi - if [[ "$emusToInstall" == *"PCSX2"* ]]; then - doInstallPCSX2=true - fi - if [[ "$emusToInstall" == *"RPCS3"* ]]; then - doInstallRPCS3=true - fi - if [[ "$emusToInstall" == *"Citra"* ]]; then - doInstallCitra=true - fi - if [[ "$emusToInstall" == *"Dolphin"* ]]; then - doInstallDolphin=true - fi - if [[ "$emusToInstall" == *"Duckstation"* ]]; then - doInstallDuck=true - fi - if [[ "$emusToInstall" == *"PPSSPP"* ]]; then - doInstallPPSSPP=true - fi - if [[ "$emusToInstall" == *"Yuzu"* ]]; then - doInstallYuzu=true - fi - if [[ "$emusToInstall" == *"Cemu"* ]]; then - doInstallCemu=true - fi - if [[ "$emusToInstall" == *"Xemu"* ]]; then - doInstallXemu=true - fi - if [[ "$emusToInstall" == *"Xenia"* ]]; then - doInstallXenia=true - fi - #if [[ "$emusToInstall" == *"MelonDS"* ]]; then - # doInstallMelon=true - #fi - - - else - exit - fi - fi - #We force new Cemu install if we detect an older version exists - DIR=$romsPath/wiiu/roms/ - if [ -d "$DIR" ]; then #this is always true i think. - doInstallCemu=true - fi - - if [[ $doSelectWideScreen == "true" ]]; then - #Emulators screenHacks - emuTable=() - emuTable+=(TRUE "Dolphin") - emuTable+=(TRUE "Duckstation") - emuTable+=(TRUE "BeetlePSX") - emuTable+=(TRUE "Dreamcast") - text="`printf "Selected Emulators will use WideScreen Hacks"`" - wideToInstall=$(zenity --list \ + if [[ $doSelectEmulators == "true" ]]; then + + emuTable=() + emuTable+=(TRUE "Multiple" "RetroArch") + emuTable+=(TRUE "Arcade" "MAME") + emuTable+=(TRUE "Metroid Prime" "PrimeHack") + emuTable+=(TRUE "PS2" "PCSX2-Legacy") + emuTable+=(TRUE "PS2" "PCSX2-QT") + emuTable+=(TRUE "PS3" "RPCS3") + emuTable+=(TRUE "3DS" "Citra") + emuTable+=(TRUE "GC/Wii" "Dolphin") + emuTable+=(TRUE "PSX" "Duckstation") + emuTable+=(TRUE "PSP" "PPSSPP") + emuTable+=(TRUE "Switch" "Yuzu") + emuTable+=(TRUE "Switch" "Ryujinx") + emuTable+=(TRUE "WiiU" "Cemu") + emuTable+=(TRUE "XBox" "Xemu") + #if we are in beta / dev install, allow Xenia. Still false by default though. Will only work on expert mode, and explicitly turned on. + if [[ $branch == "beta" || $branch == "dev" ]]; then + emuTable+=(FALSE "Xbox360" "Xenia") + fi + + #Emulator selector + text="$(printf "What emulators do you want to install?")" + emusToInstall=$(zenity --list \ --title="EmuDeck" \ --height=500 \ --width=250 \ @@ -502,427 +544,555 @@ if [ $expert == "true" ]; then --cancel-label="Exit" \ --text="${text}" \ --checklist \ - --column="Widescreen?" \ + --column="Select" \ + --column="System" \ --column="Emulator" \ - "${emuTable[@]}" 2>/dev/null) - ans=$? - if [ $ans -eq 0 ]; then - echo "User selected: $wideToInstall" - if [[ "$wideToInstall" == *"Duckstation"* ]]; then - duckWide=true - else - duckWide=false - fi - if [[ "$wideToInstall" == *"Dolphin"* ]]; then - DolphinWide=true - else - DolphinWide=false - fi - if [[ "$wideToInstall" == *"Dreamcast"* ]]; then - DreamcastWide=true - else - DreamcastWide=false - fi - if [[ "$wideToInstall" == *"BeetlePSX"* ]]; then - BeetleWide=true - else - BeetleWide=false - fi - + --print-column=3 \ + "${emuTable[@]}" 2>/dev/null) + ans=$? - else - exit - fi - fi - #We mark we've made a custom configuration for future updates - echo "" > ~/emudeck/.custom + if [ $ans -eq 0 ]; then + echo "Emu Install selected: $emusToInstall" + if [[ "$emusToInstall" == *"RetroArch"* ]]; then + setSetting doInstallRA true + else + setSetting doInstallRA false + fi + if [[ "$emusToInstall" == *"PrimeHack"* ]]; then + setSetting doInstallPrimeHacks true + else + setSetting doInstallPrimeHacks false + fi + if [[ "$emusToInstall" == *"PCSX2-Legacy"* ]]; then + setSetting doInstallPCSX2 true + else + setSetting doInstallPCSX2 false + fi + if [[ "$emusToInstall" == *"PCSX2-QT"* ]]; then + setSetting doInstallPCSX2QT true + else + setSetting doInstallPCSX2QT false + fi + if [[ "$emusToInstall" == *"RPCS3"* ]]; then + setSetting doInstallRPCS3 true + else + setSetting doInstallRPCS3 false + fi + if [[ "$emusToInstall" == *"Citra"* ]]; then + setSetting doInstallCitra true + else + setSetting doInstallCitra false + fi + if [[ "$emusToInstall" == *"Dolphin"* ]]; then + setSetting doInstallDolphin true + else + setSetting doInstallDolphin false + fi + if [[ "$emusToInstall" == *"Duckstation"* ]]; then + setSetting doInstallDuck true + else + setSetting doInstallDuck false + fi + if [[ "$emusToInstall" == *"PPSSPP"* ]]; then + setSetting doInstallPPSSPP true + else + setSetting doInstallPPSSPP false + fi + if [[ "$emusToInstall" == *"Yuzu"* ]]; then + setSetting doInstallYuzu true + else + setSetting doInstallYuzu false + fi + if [[ "$emusToInstall" == *"Ryujinx"* ]]; then + setSetting doInstallRyujinx true + else + setSetting doInstallRyujinx false + fi + if [[ "$emusToInstall" == *"Cemu"* ]]; then + setSetting doInstallCemu true + else + setSetting doInstallCemu false + fi + if [[ "$emusToInstall" == *"Xemu"* ]]; then + setSetting doInstallXemu true + else + setSetting doInstallXemu false + fi + if [[ "$emusToInstall" == *"Xenia"* ]]; then + setSetting doInstallXenia true + else + setSetting doInstallXenia false + fi + #if [[ "$emusToInstall" == *"MelonDS"* ]]; then + # doInstallMelon=true + #fi + + + else + exit + fi + fi + - if [[ $doResetEmulators == "true" ]]; then - # Configuration that only appplies to previous users - if [ -f "$SECONDTIME" ]; then - #We make sure all the emus can write its saves outside its own folders. - #Also needed for certain emus to open certain menus for adding rom directories in the front end. - #flatpak override net.pcsx2.PCSX2 --filesystem=host --user - flatpak override net.pcsx2.PCSX2 --share=network --user # for network access / online play - flatpak override io.github.shiiion.primehack --filesystem=host --user - flatpak override net.rpcs3.RPCS3 --filesystem=host --user - flatpak override org.citra_emu.citra --filesystem=host --user - flatpak override org.DolphinEmu.dolphin-emu --filesystem=host --user - #flatpak override org.duckstation.DuckStation --filesystem=host --user - #flatpak override org.libretro.RetroArch --filesystem=host --user - #flatpak override org.ppsspp.PPSSPP --filesystem=host --user - flatpak override org.yuzu_emu.yuzu --filesystem=host --user - flatpak override app.xemu.xemu --filesystem=/run/media:rw --user - flatpak override app.xemu.xemu --filesystem="$savesPath"xemu:rw --user - - installString='Updating' - + if [[ $doSelectWideScreen == "true" ]]; then + #Emulators screenHacks emuTable=() - emuTable+=(TRUE "RetroArch") - emuTable+=(TRUE "PrimeHack") - emuTable+=(TRUE "PCSX2") - emuTable+=(TRUE "RPCS3") - emuTable+=(TRUE "Citra") emuTable+=(TRUE "Dolphin") emuTable+=(TRUE "Duckstation") - emuTable+=(TRUE "PPSSPP") - emuTable+=(TRUE "Yuzu") - emuTable+=(TRUE "Cemu") + emuTable+=(TRUE "PCSX2-QT") + emuTable+=(TRUE "RA-BeetlePSX") + emuTable+=(TRUE "RA-Flycast") emuTable+=(TRUE "Xemu") - emuTable+=(TRUE "Steam Rom Manager") - emuTable+=(TRUE "EmulationStation DE") - - text="`printf "EmuDeck will reset the following Emulator's configurations by default.\nWhich systems do you want reset to the newest version of the defaults?\nWe recommend you keep all of them checked so everything gets updated and known issues are fixed.\nIf you want to mantain any custom configuration on an emulator unselect its name from this list."`" - emusToReset=$(zenity --list \ - --title="EmuDeck" \ - --height=500 \ - --width=250 \ - --ok-label="OK" \ - --cancel-label="Exit" \ - --text="${text}" \ - --checklist \ - --column="Reset?" \ - --column="Emulator" \ - "${emuTable[@]}" 2>/dev/null) - ans=$? - #Nova fix' - cat ~/dragoonDoriseTools/EmuDeck/logo.ans - echo -e "EmuDeck ${version}" + + text="$(printf "Selected Emulators will use WideScreen Hacks")" + wideToInstall=$(zenity --list \ + --title="EmuDeck" \ + --height=500 \ + --width=250 \ + --ok-label="OK" \ + --cancel-label="Exit" \ + --text="${text}" \ + --checklist \ + --column="Widescreen?" \ + --column="Emulator" \ + "${emuTable[@]}" 2>/dev/null) + ans=$? if [ $ans -eq 0 ]; then - echo "User selected: $emusToReset" - if [[ "$emusToReset" == *"RetroArch"* ]]; then - doSetupRA=true + echo "Widescreen choices: $wideToInstall" + if [[ "$wideToInstall" == *"Duckstation"* ]]; then + setSetting duckWide true + else + setSetting duckWide false fi - if [[ "$emusToReset" == *"PrimeHack"* ]]; then - doSetupPrimeHacks=true + if [[ "$wideToInstall" == *"Dolphin"* ]]; then + setSetting DolphinWide true + else + setSetting DolphinWide false fi - if [[ "$emusToReset" == *"PCSX2"* ]]; then - doSetupPCSX2=true + if [[ "$wideToInstall" == *"RA-Flycast"* ]]; then + setSetting DreamcastWide true + else + setSetting DreamcastWide false + fi + if [[ "$wideToInstall" == *"BeetlePSX"* ]]; then + setSetting BeetleWide true + else + setSetting BeetleWide false + fi + if [[ "$wideToInstall" == *"Xemu"* ]]; then + setSetting XemuWide true + else + setSetting XemuWide false + fi + if [[ "$wideToInstall" == *"PCSX2-QT"* ]]; then + setSetting PCSX2QTWide true + else + setSetting PCSX2QTWide false fi - if [[ "$emusToReset" == *"RPCS3"* ]]; then - doSetupRPCS3=true - fi - if [[ "$emusToReset" == *"Citra"* ]]; then - doSetupCitra=true - fi - if [[ "$emusToReset" == *"Dolphin"* ]]; then - doSetupDolphin=true - fi - if [[ "$emusToReset" == *"Duckstation"* ]]; then - doSetupDuck=true - fi - if [[ "$emusToReset" == *"PPSSPP"* ]]; then - doSetupPPSSPP=true - fi - if [[ "$emusToReset" == *"Yuzu"* ]]; then - doSetupYuzu=true - fi - if [[ "$emusToReset" == *"Cemu"* ]]; then - doSetupCemu=true - fi - if [[ "$emusToReset" == *"Xemu"* ]]; then - doSetupXemu=true - fi - if [[ "$emusToReset" == *"Xenia"* ]]; then - doSetupXenia=false #false until we add above - fi - #if [[ "$emusToReset" == *"MelonDS"* ]]; then - # doSetupMelon=false - #fi - if [[ "$emusToReset" == *"Steam Rom Manager"* ]]; then - doSetupSRM=true - fi - if [[ "$emusToReset" == *"EmulationStation DE"* ]]; then - doSetupESDE=true - fi - - - else - echo "" - fi - + else + exit + fi fi - fi + + if [[ $doResetEmulators == "true" ]]; then + # Configuration that only appplies to previous users + if [ -f "$SECONDTIME" ]; then + + emuTable=() + emuTable+=(TRUE "RetroArch") + emuTable+=(TRUE "MAME") + emuTable+=(TRUE "PrimeHack") + emuTable+=(TRUE "PCSX2-Legacy") + emuTable+=(TRUE "PCSX2-QT") + emuTable+=(TRUE "RPCS3") + emuTable+=(TRUE "Citra") + emuTable+=(TRUE "Dolphin") + emuTable+=(TRUE "Duckstation") + emuTable+=(TRUE "PPSSPP") + emuTable+=(TRUE "Yuzu") + emuTable+=(TRUE "Ryujinx") + emuTable+=(TRUE "Cemu") + emuTable+=(TRUE "Xemu") + emuTable+=(TRUE "Steam Rom Manager") + emuTable+=(TRUE "EmulationStation DE") + + text="$(printf "EmuDeck will reset the following Emulator's configurations by default.\nWhich systems do you want reset to the newest version of the defaults?\nWe recommend you keep all of them checked so everything gets updated and known issues are fixed.\nIf you want to mantain any custom configuration on an emulator unselect its name from this list.")" + emusToReset=$(zenity --list \ + --title="EmuDeck" \ + --height=500 \ + --width=250 \ + --ok-label="OK" \ + --cancel-label="Exit" \ + --text="${text}" \ + --checklist \ + --column="Reset?" \ + --column="Emulator" \ + "${emuTable[@]}" 2>/dev/null) + ans=$? + #Nova fix' + cat "$EMUDECKGIT/logo.ans" + echo -e "EmuDeck ${version}" + if [ $ans -eq 0 ]; then + echo "Emulators to reinstall selected: $emusToReset" + if [[ "$emusToReset" == *"RetroArch"* ]]; then + setSetting doSetupRA true + else + setSetting doSetupRA false + fi + if [[ "$emusToReset" == *"PrimeHack"* ]]; then + setSetting doSetupPrimeHacks true + else + setSetting doSetupPrimeHacks false + fi + if [[ "$emusToReset" == *"PCSX2-Legacy"* ]]; then + setSetting doSetupPCSX2 true + else + setSetting doSetupPCSX2 false + fi + if [[ "$emusToReset" == *"PCSX2-QT"* ]]; then + setSetting doSetupPCSX2QT true + else + setSetting doSetupPCSX2QT false + fi + if [[ "$emusToReset" == *"RPCS3"* ]]; then + setSetting doSetupRPCS3 true + else + setSetting doSetupRPCS3 false + fi + if [[ "$emusToReset" == *"Citra"* ]]; then + setSetting doSetupCitra true + else + setSetting doSetupCitra false + fi + if [[ "$emusToReset" == *"Dolphin"* ]]; then + setSetting doSetupDolphin true + else + setSetting doSetupDolphin false + fi + if [[ "$emusToReset" == *"Duckstation"* ]]; then + setSetting doSetupDuck true + else + setSetting doSetupDuck false + fi + if [[ "$emusToReset" == *"PPSSPP"* ]]; then + setSetting doSetupPPSSPP true + else + setSetting doSetupPPSSPP false + fi + if [[ "$emusToReset" == *"Yuzu"* ]]; then + setSetting doSetupYuzu true + else + setSetting doSetupYuzu false + fi + if [[ "$emusToReset" == *"Ryujinx"* ]]; then + setSetting doSetupRyujinx true + else + setSetting doSetupRyujinx false + fi + if [[ "$emusToReset" == *"Cemu"* ]]; then + setSetting doSetupCemu true + else + setSetting doSetupCemu false + fi + if [[ "$emusToReset" == *"Xemu"* ]]; then + setSetting doSetupXemu true + else + setSetting doSetupXemu false + fi + if [[ "$emusToReset" == *"Xenia"* ]]; then + setSetting doSetupXenia true #false until we add above + else + setSetting doSetupXenia false + fi + #if [[ "$emusToReset" == *"MelonDS"* ]]; then + # setSetting doSetupMelonDS true + #else + # setSetting doSetupRA false + #fi + if [[ "$emusToReset" == *"Steam Rom Manager"* ]]; then + setSetting doSetupSRM true + else + setSetting doSetupSRM false + fi + if [[ "$emusToReset" == *"EmulationStation DE"* ]]; then + setSetting doSetupESDE true + else + setSetting doSetupESDE false + fi + + + else + echo "" + fi + + fi + fi + else + echo "Applying Easy mode Settings" + #easy mode settings + setSetting doInstallRA true + setSetting doInstallDolphin true + setSetting doInstallPCSX2 false + setSetting doInstallPCSX2QT true + setSetting doInstallRPCS3 true + setSetting doInstallYuzu true + setSetting doInstallRyujinx true + setSetting doInstallCitra true + setSetting doInstallDuck true + setSetting doInstallCemu true + setSetting doInstallXenia false + setSetting doInstallPrimeHacks true + setSetting doInstallPPSSPP true + setSetting doInstallXemu true + setSetting doInstallMAME true + setSetting doInstallXenia false + #doInstallMelon=true + + setSetting doSetupRA true + setSetting doSetupPrimeHacks true + setSetting doSetupDolphin true + setSetting doSetupPCSX2 false + setSetting doSetupPCSX2QT true + setSetting doSetupRPCS3 true + setSetting doSetupCitra true + setSetting doSetupDuck true + setSetting doSetupYuzu true + setSetting doSetupRyujinx true + setSetting doSetupPPSSPP true + setSetting doSetupXemu true + setSetting doSetupMAME true + setSetting doSetupCemu true + setSetting doSetupXenia false + + + #widescreen off by default + setSetting duckWide false + setSetting DolphinWide false + setSetting DreamcastWide false + setSetting BeetleWide false + setSetting XemuWide false + setSetting PCSX2QTWide false + + fi # end Expert if + + else - #easy mode settings - doInstallRA=true - doInstallDolphin=true - doInstallPCSX2=true - doInstallRPCS3=true - doInstallYuzu=true - doInstallCitra=true - doInstallDuck=true - doInstallCemu=true - doInstallXenia=false - doInstallPrimeHacks=true - doInstallPPSSPP=true - doInstallXemu=true - #doInstallMelon=true + #We only load functions and config when no Zenity selected + #source "$EMUDECKGIT"/functions/all.sh - if we ALWAYS source, + #then we can do stuff like having the settings exactly the way they were on second run. + #source $HOME/emudeck/settings.sh put it inside all.sh + + #Folder creation... This code is repeated outside of this if for the yes zenity mode + mkdir -p "$emulationPath" + mkdir -p "$toolsPath"/launchers + mkdir -p "$savesPath" + mkdir -p "$romsPath" + mkdir -p "$storagePath" + mkdir -p "$biosPath"/yuzu + mkdir -p "$biosPath"/HdPacks + mkdir -p "$emulationPath"/hdpacks - #widescreen off by default - duckWide=false - DolphinWide=false - DreamcastWide=false - BeetleWide=false + unlink "$emulationPath"/hdpacks/Mesen 2>/dev/null #refresh link if moved + ln -s "$biosPath"/HdPacks/ "$emulationPath"/hdpacks/Mesen + echo "Put your Mesen HD Packs here. Remember to put the pack inside a folder here with the exact name of the rom" > "$biosPath"/HdPacks/readme.txt + + ##Generate rom folders + setMSG "Creating roms folder in $romsPath" + + sleep 3 + rsync -r --ignore-existing "$EMUDECKGIT/roms/" "$romsPath" + #End repeated code +fi -fi # end Expert if +# ## -## -## End of configuration +## End of Zenity configuration ## -## - - - - -## +# + +source "$EMUDECKGIT/functions/all.sh" +echo "Current Settings: " +cat "$emuDecksettingsFile" + +# ## ## Start of installation ## -## -## First up - migrate things that need to move. -echo "begin migrations" -doMigrations +# + +#Support for non-holo based OS's +#Only on Zenity for now +if [ "$zenity" == true ]; then + if [[ $isRealDeck == false ]]; then + echo "OS_setupPrereqsArch" + OS_setupPrereqsArch + fi +fi +#setup Proton-Launch.sh +#because this path gets updated by sed, we really should be installing it every time and allowing it to be updated every time. In case the user changes their path. +cp "$EMUDECKGIT/tools/proton-launch.sh" "${toolsPath}/proton-launch.sh" +chmod +x "${toolsPath}/proton-launch.sh" #ESDE Installation if [ $doInstallESDE == "true" ]; then - installESDE + echo "install esde" + ESDE_install fi - #SRM Installation if [ $doInstallSRM == "true" ]; then - installSRM + echo "install srm" + SRM_install fi - -#Support for non-valve hardware. -#if [[ $isRealDeck == false ]]; then -# setUpHolo -#fi - #Emulators Installation -if [ $doInstallPCSX2 == "true" ]; then - installEmuFP "PCSX2" "net.pcsx2.PCSX2" +if [ "$doInstallPCSX2" == "true" ]; then + echo "install pcsx2" + PCSX2_install +fi +if [ "$doInstallPCSX2QT" == "true" ]; then + echo "install pcsx2Qt" + PCSX2QT_install fi if [ $doInstallPrimeHacks == "true" ]; then - installEmuFP "PrimeHack" "io.github.shiiion.primehack" + echo "install primehack" + Primehack_install fi if [ $doInstallRPCS3 == "true" ]; then - installEmuFP "RPCS3" "net.rpcs3.RPCS3" + echo "install rpcs3" + RPCS3_install fi if [ $doInstallCitra == "true" ]; then - installEmuFP "Citra" "org.citra_emu.citra" + echo "install Citra" + Citra_install fi if [ $doInstallDolphin == "true" ]; then - installEmuFP "dolphin-emu" "org.DolphinEmu.dolphin-emu" + echo "install Dolphin" + Dolphin_install fi if [ $doInstallDuck == "true" ]; then - installEmuFP "DuckStation" "org.duckstation.DuckStation" + echo "DuckStation_install" + DuckStation_install fi if [ $doInstallRA == "true" ]; then - installEmuFP "RetroArch" "org.libretro.RetroArch" + echo "RetroArch_install" + RetroArch_install fi if [ $doInstallPPSSPP == "true" ]; then - installEmuFP "PPSSPP" "org.ppsspp.PPSSPP" + echo "PPSSPP_install" + PPSSPP_install fi -if [ $doInstallYuzu == "true" ]; then - #installEmuFP "Yuzu" "org.yuzu_emu.yuzu" - installEmuAI "yuzu" $(getLatestReleaseURLGH "yuzu-emu/yuzu-mainline" "AppImage") #needs to be lowercase yuzu for EsDE to find it. +if [ $doInstallYuzu == "true" ]; then + echo "Yuzu_install" + Yuzu_install +fi +if [ $doInstallRyujinx == "true" ]; then + echo "Ryujinx_install" + Ryujinx_install +fi +if [ $doInstallMAME == "true" ]; then + echo "MAME_install" + MAME_install fi if [ $doInstallXemu == "true" ]; then - installEmuFP "Xemu-Emu" "app.xemu.xemu" + echo "Xemu_install" + Xemu_install fi - - - - -#Cemu - We need to install Cemu after creating the Roms folders! if [ $doInstallCemu == "true" ]; then - setMSG "Installing Cemu" - FILE="${romsPath}/wiiu/Cemu.exe" - if [ -f "$FILE" ]; then - echo "Cemu.exe already exists" - else - curl https://cemu.info/releases/cemu_1.26.2.zip --output "$romsPath"wiiu/cemu_1.26.2.zip - mkdir -p "$romsPath"wiiu/tmp - unzip -o "$romsPath"wiiu/cemu_1.26.2.zip -d "$romsPath"wiiu/tmp - mv "$romsPath"wiiu/tmp/*/* "$romsPath"/wiiu - rm -rf "$romsPath"wiiu/tmp - rm -f "$romsPath"wiiu/cemu_1.26.2.zip - fi - - #because this path gets updated by sed, we really should be installing it every time and allowing it to be updated every time. In case the user changes their path. - cp ~/dragoonDoriseTools/EmuDeck/tools/proton-launch.sh "${toolsPath}"proton-launch.sh - chmod +x "${toolsPath}"proton-launch.sh - cp ~/dragoonDoriseTools/EmuDeck/tools/launchers/cemu.sh "${toolsPath}"launchers/cemu.sh - sed -i "s|/run/media/mmcblk0p1/Emulation/tools|${toolsPath}|" "${toolsPath}"launchers/cemu.sh - sed -i "s|/run/media/mmcblk0p1/Emulation/roms/wiiu|${romsPath}wiiu|" "${toolsPath}"launchers/cemu.sh - chmod +x "${toolsPath}"launchers/cemu.sh - - + echo "Cemu_install" + Cemu_install fi #Xenia - We need to install Xenia after creating the Roms folders! -if [ $doInstallXenia == "true" ]; then - setMSG "Installing Xenia" - FILE="${romsPath}xbox360/xenia.exe" - if [ -f "$FILE" ]; then - echo "" 2>/dev/null - else - curl -L https://github.com/xenia-project/release-builds-windows/releases/latest/download/xenia_master.zip --output "$romsPath"xbox360/xenia_master.zip - mkdir -p "$romsPath"xbox360/tmp - unzip -o "$romsPath"xbox360/xenia_master.zip -d "$romsPath"xbox360/tmp - mv "$romsPath"xbox360/tmp/* "$romsPath"xbox360 - rm -rf "$romsPath"xbox360/tmp - rm -f "$romsPath"xbox360/xenia_master.zip - fi - +if [ "$doInstallXenia" == "true" ]; then + echo "Xenia_install" + Xenia_install fi #Steam RomManager Config -if [ $doSetupSRM == "true" ]; then - configSRM +if [ "$doSetupSRM" == "true" ]; then + echo "SRM_init" + SRM_init fi #ESDE Config -if [ $doSetupESDE == "true" ]; then - configESDE +if [ "$doSetupESDE" == "true" ]; then + echo "ESDE_init" + ESDE_update fi #Emus config -setMSG "Configuring Steam Input for emulators.." -rsync -r ~/dragoonDoriseTools/EmuDeck/configs/steam-input/ ~/.steam/steam/controller_base/templates/ +#setMSG "Configuring Steam Input for emulators.." moved to emu install + setMSG "Configuring emulators.." -echo -e "" -if [ $doSetupRA == "true" ]; then - mkdir -p ~/.var/app/org.libretro.RetroArch - mkdir -p ~/.var/app/org.libretro.RetroArch/config - mkdir -p ~/.var/app/org.libretro.RetroArch/config/retroarch - - RACores - - raConfigFile=~/.var/app/org.libretro.RetroArch/config/retroarch/retroarch.cfg - FILE=~/.var/app/org.libretro.RetroArch/config/retroarch/retroarch.cfg.bak - if [ -f "$FILE" ]; then - echo -e "" 2>/dev/null - else - setMSG "Backing up RA..." - cp ~/.var/app/org.libretro.RetroArch/config/retroarch/retroarch.cfg ~/.var/app/org.libretro.RetroArch/config/retroarch/retroarch.cfg.bak - fi - #mkdir -p ~/.var/app/org.libretro.RetroArch/config/retroarch/overlays - - #Cleaning up cfg files that the user could have created on Expert mode - find ~/.var/app/org.libretro.RetroArch/config/retroarch/config/ -type f -name "*.cfg" | while read f; do rm -f "$f"; done - find ~/.var/app/org.libretro.RetroArch/config/retroarch/config/ -type f -name "*.bak" | while read f; do rm -f "$f"; done - - rsync -r ~/dragoonDoriseTools/EmuDeck/configs/org.libretro.RetroArch/config/ ~/.var/app/org.libretro.RetroArch/config/ - - sed -i "s|/run/media/mmcblk0p1/Emulation|${emulationPath}|g" $raConfigFile - +if [ "$doSetupRA" == "true" ]; then + echo "RetroArch_init" + RetroArch_init fi -echo -e "" -setMSG "Applying Emu configurations..." -if [ $doSetupPrimeHacks == "true" ]; then - configEmuFP "PrimeHack" "io.github.shiiion.primehack" - sed -i "s|/run/media/mmcblk0p1/Emulation/roms/|${romsPath}|g" ~/.var/app/io.github.shiiion.primehack/config/dolphin-emu/Dolphin.ini +if [ "$doSetupPrimeHacks" == "true" ]; then + echo "Primehack_init" + Primehack_init fi -if [ $doSetupDolphin == "true" ]; then - configEmuFP "Dolphin" "org.DolphinEmu.dolphin-emu" - sed -i "s|/run/media/mmcblk0p1/Emulation/roms/|${romsPath}|g" ~/.var/app/org.DolphinEmu.dolphin-emu/config/dolphin-emu/Dolphin.ini +if [ "$doSetupDolphin" == "true" ]; then + echo "Dolphin_init" + Dolphin_init fi -if [ $doSetupPCSX2 == "true" ]; then - configEmuFP "PCSX2" "net.pcsx2.PCSX2" - #Bios Fix - sed -i "s|/run/media/mmcblk0p1/Emulation/bios|${biosPath}|g" ~/.var/app/net.pcsx2.PCSX2/config/PCSX2/inis/PCSX2_ui.ini +if [ "$doSetupPCSX2" == "true" ]; then + echo "PCSX2_init" + PCSX2_init fi -if [ $doSetupRPCS3 == "true" ]; then - configEmuFP "RPCS3" "net.rpcs3.RPCS3" - #HDD Config - sed -i 's| $(EmulatorDir)dev_hdd0/| '$storagePath'/rpcs3/dev_hdd0/|g' $HOME/.var/app/net.rpcs3.RPCS3/config/rpcs3/vfs.yml - mkdir -p $storagePath/rpcs3/ +if [ "$doSetupPCSX2QT" == "true" ]; then + echo "PCSX2QT_init" + PCSX2QT_init fi -if [ $doSetupCitra == "true" ]; then - configEmuFP "Citra" "org.citra_emu.citra" - #Roms Path - sed -i "s|/run/media/mmcblk0p1/Emulation/roms/|${romsPath}|g" $HOME/.var/app/org.citra_emu.citra/config/citra-emu/qt-config.ini +if [ "$doSetupRPCS3" == "true" ]; then + echo "RPCS3_init" + RPCS3_init fi -if [ $doSetupDuck == "true" ]; then - configEmuFP "DuckStation" "org.duckstation.DuckStation" - #Bios Path - sed -i "s|/run/media/mmcblk0p1/Emulation/bios/|${biosPath}|g" ~/.var/app/org.duckstation.DuckStation/data/duckstation/settings.ini - sed -i "s|/run/media/mmcblk0p1/Emulation/roms/|${romsPath}|g" ~/.var/app/org.duckstation.DuckStation/data/duckstation/settings.ini +if [ "$doSetupCitra" == "true" ]; then + echo "Citra_init" + Citra_init fi -if [ $doSetupYuzu == "true" ]; then - configEmuAI "yuzu" "config" "$HOME/.config/yuzu" "$HOME/dragoonDoriseTools/EmuDeck/configs/org.yuzu_emu.yuzu/config/yuzu" "true" - configEmuAI "yuzu" "data" "$HOME/.local/share/yuzu" "$HOME/dragoonDoriseTools/EmuDeck/configs/org.yuzu_emu.yuzu/data/yuzu" "true" - #Roms Path - sed -i "s|/run/media/mmcblk0p1/|${destination}/|g" "$HOME/.config/yuzu/qt-config.ini" - mkdir -p ${storagePath}yuzu/dump - mkdir -p ${storagePath}yuzu/load - mkdir -p ${storagePath}yuzu/sdmc - mkdir -p ${storagePath}yuzu/nand - mkdir -p ${storagePath}yuzu/screenshots - mkdir -p ${storagePath}yuzu/tas +if [ "$doSetupDuck" == "true" ]; then + echo "DuckStation_init" + DuckStation_init fi - -if [ $doSetupPPSSPP == "true" ]; then - configEmuFP "PPSSPP" "org.ppsspp.PPSSPP" +if [ "$doSetupYuzu" == "true" ]; then + echo "Yuzu_init" + Yuzu_init fi -if [ $doSetupXemu == "true" ]; then - configEmuFP "Xemu" "app.xemu.xemu" - #Bios Fix - sed -i "s|/run/media/mmcblk0p1/Emulation/bios/|${biosPath}|g" ~/.var/app/app.xemu.xemu/data/xemu/xemu/xemu.ini - sed -i "s|/run/media/mmcblk0p1/Emulation/bios/|${biosPath}|g" ~/.var/app/app.xemu.xemu/data/xemu/xemu/xemu.toml - sed -i "s|/run/media/mmcblk0p1/Emulation/saves/|${storagePath}|g" ~/.var/app/app.xemu.xemu/data/xemu/xemu/xemu.toml - if [[ ! -f "${storagePath}xemu/xbox_hdd.qcow2" ]]; then - mkdir -p "${storagePath}xemu" - cd "${storagePath}xemu" - curl -Lo "xbox_hdd.qcow2.zip" "https://github.com/mborgerson/xemu-hdd-image/releases/latest/download/xbox_hdd.qcow2.zip" && unzip -j xbox_hdd.qcow2.zip && rm -rf xbox_hdd.qcow2.zip - fi +if [ "$doSetupRyujinx" == "true" ]; then + echo "Ryujinx_init" + Ryujinx_init +fi +if [ "$doSetupPPSSPP" == "true" ]; then + echo "PPSSPP_init" + PPSSPP_init +fi +if [ "$doSetupXemu" == "true" ]; then + echo "Xemu_init" + Xemu_init +fi +if [ "$doSetupMAME" == "true" ]; then + echo "MAME_init" + MAME_init fi - #Proton Emus -if [ $doSetupCemu == "true" ]; then - echo "" - #Commented until we get CEMU flatpak working - #rsync -avhp ~/dragoonDoriseTools/EmuDeck/configs/info.cemu.Cemu/ ~/.var/app/info.cemu.Cemu/ - cemuSettings="${romsPath}wiiu/settings.xml" - mv -f $cemuSettings $cemuSettings.bak #retain cemusettings if it exists to stop wiping peoples mods. Just insert our search path for installed games. - rsync -avhp ~/dragoonDoriseTools/EmuDeck/configs/info.cemu.Cemu/data/cemu/ "${romsPath}wiiu" - rm $cemuSettings - mv -f $cemuSettings.bak $cemuSettings - if [[ -f "${cemuSettings}" ]]; then - gamePathEntryFound=$(grep -rnw $cemuSettings -e "z:${romsPath}wiiu/roms") - if [[ $gamePathEntryFound == '' ]]; then - xmlstarlet ed --inplace --subnode "content/GamePaths" --type elem -n Entry -v "z:${romsPath}wiiu/roms" $cemuSettings - fi - fi +if [ "$doSetupCemu" == "true" ]; then + echo "Cemu_init" + Cemu_init fi -if [ $doSetupXenia == "true" ]; then - echo "" - rsync -avhp ~/dragoonDoriseTools/EmuDeck/configs/xenia/ "$romsPath"/xbox360 +if [ "$doSetupXenia" == "true" ]; then + echo "Xenia_init" + Xenia_init fi -#Setup Bios symlinks -unlink ${biosPath}yuzu/keys -mkdir -p "$HOME/.local/share/yuzu/keys/" -ln -sn "$HOME/.local/share/yuzu/keys/" ${biosPath}yuzu/keys - -unlink ${biosPath}yuzu/firmware -mkdir -p ${storagePath}yuzu/nand/system/Contents/registered/ -touch ${storagePath}yuzu/nand/system/Contents/registered/putfirmwarehere.txt -ln -sn ${storagePath}yuzu/nand/system/Contents/registered/ ${biosPath}yuzu/firmware - #Fixes repeated Symlink for older installations -cd ~/.var/app/org.yuzu_emu.yuzu/data/yuzu/keys/ -unlink keys -cd ~/.var/app/org.yuzu_emu.yuzu/data/yuzu/nand/system/Contents/registered/ -unlink registered +# Yuzu_finalize move into update / init to clean up install script @@ -933,6 +1103,244 @@ unlink registered # + + +## +## +## Customizations. +## +## + + +#RA Bezels +RetroArch_setBezels #needs to change + +#ESDE_applyTheme "$esdeTheme" should apply in the init, from the setting + +#RA AutoSave +if [ "$RAautoSave" == true ]; then + RetroArch_autoSaveOn +else + RetroArch_autoSaveOff +fi + + + +if [ "$zenity" == true ]; then + + #Old Widescreen hacks + if [ "$duckWide" == true ]; then + DuckStation_wideScreenOn + else + DuckStation_wideScreenOff + fi + if [ "$PCSX2QTWide" == true ]; then + PCSX2QT_wideScreenOn + else + PCSX2QT_wideScreenOff + fi + if [ "$DolphinWide" == true ]; then + Dolphin_wideScreenOn + else + Dolphin_wideScreenOff + fi + if [ "$XemuWide" == true ]; then + Xemu_wideScreenOn + else + Xemu_wideScreenOff + fi + if [ "$DreamcastWide" == true ]; then + RetroArch_Flycast_wideScreenOn + else + RetroArch_Flycast_wideScreenOff + fi + + #RA SNES Aspect Ratio + RetroArch_setSNESAR #needs to change + +else + + # + #New Aspect Ratios + # + + #Sega Games + #Master System + #Genesis + #Sega CD + #Sega 32X + + case $arSega in + "32") + RetroArch_mastersystem_ar32 + RetroArch_genesis_ar32 + RetroArch_segacd_ar32 + RetroArch_sega32x_ar32 + ;; + *) + RetroArch_mastersystem_ar43 + RetroArch_genesis_ar43 + RetroArch_segacd_ar43 + RetroArch_sega32x_ar43 + if [ "$RABezels" == true ]; then + RetroArch_mastersystem_bezelOn + RetroArch_genesis_bezelOn + RetroArch_segacd_bezelOn + RetroArch_sega32x_bezelOn + fi + ;; + esac + + #Snes and NES + case $arSnes in + "87") + if [ "$RABezels" == true ]; then + RetroArch_snes_bezelOn + fi + RetroArch_snes_ar87 + RetroArch_nes_ar87 + ;; + "32") + RetroArch_snes_ar32 + RetroArch_nes_ar32 + ;; + *) + RetroArch_snes_ar43 + RetroArch_nes_ar43 + if [ "$RABezels" == true ]; then + RetroArch_snes_bezelOn + fi + ;; + esac + + # Classic 3D Games + #Dreamcast + #PSX + #Nintendo 64 + #Saturn + #Xbox + if [ "$arClassic3D" == 169 ]; then + RetroArch_Beetle_PSX_HW_wideScreenOn + DuckStation_wideScreenOn + RetroArch_Flycast_wideScreenOn + Xemu_wideScreenOn + #"Bezels off" + RetroArch_Flycast_bezelOff + RetroArch_Beetle_PSX_HW_bezelOff + else + #"SET 4:3" + RetroArch_Flycast_wideScreenOff + RetroArch_Beetle_PSX_HW_wideScreenOff + DuckStation_wideScreenOff + Xemu_wideScreenOff + #"Bezels on" + if [ "$RABezels" == true ]; then + RetroArch_Flycast_bezelOn + RetroArch_Beetle_PSX_HW_bezelOn + fi + fi + + # GameCube + if [ "$arDolphin" == 169 ]; then + Dolphin_wideScreenOn + else + Dolphin_wideScreenOff + fi + +fi + + + + + + +# +#New Shaders +# +RetroArch_setShadersCRT +RetroArch_setShadersMAT + +#RetroAchievments +if [ "$doRASignIn" == "true" ]; then + RetroArch_retroAchievementsPromptLogin + RetroArch_retroAchievementsSetLogin + RetroArch_retroAchievementsOn +fi + +if [ "$doRAEnable" == "true" ]; then + RetroArch_retroAchievementsOn +fi + +if [[ ! $devMode == "main" ]]; then + if [[ $doSetupSaveSync == "true" ]]; then + + cloudProviders=() + cloudProviders+=(1 "gdrive") + cloudProviders+=(2 "dropbox") + cloudProviders+=(3 "onedrive") + cloudProviders+=(4 "box") + cloudProviders+=(5 "nextcloud") + + syncProvider=$(zenity --list \ + --title="EmuDeck SaveSync Host" \ + --height=500 \ + --width=500 \ + --ok-label="OK" \ + --cancel-label="Exit" \ + --text="Choose the service you would like to use to host your cloud saves.\n\nKeep in mind they can take a fair amount of space.\n\nThis will open a browser window for you to sign into your chosen cloud provider." \ + --radiolist \ + --column="Select" \ + --column="Provider" \ + "${cloudProviders[@]}" 2>/dev/null) + if [[ -n "$syncProvider" ]]; then + SAVESYNC_install + SAVESYNC_setup "$syncProvider" + fi + fi +fi +#Sudo Required! + +if [ "$expert" == "true" ]; then + echo "$PASSWD" | sudo -v -S #refresh sudo cache + if [ "$doInstallGyro" == "true" ]; then + Plugins_installSteamDeckGyroDSU + fi + + if [ "$doInstallPowertools" == "true" ]; then + Plugins_installPluginLoader + Plugins_installPowerTools + fi +fi + +#Always install +BINUP_install +CHD_install + +# +## +## Overrides for non Steam hardware... +## +# + + +# +#Fixes for 16:9 Screens +# + +if [ "$(getScreenAR)" == 169 ];then + nonDeck_169Screen +fi + +#Anbernic Win600 Special configuration +if [ "$(getProductName)" == "Win600" ];then + nonDeck_win600 +fi + + +if [ "$branch" == 'main' ];then + createDesktopIcons +fi + # ## ##Validations @@ -947,105 +1355,70 @@ FILE="$HOME/.local/share/yuzu/keys/prod.keys" if [ -f "$FILE" ]; then echo -e "" 2>/dev/null else - - text="`printf "Yuzu is not configured\nYou need to copy your Keys and firmware to: \n${biosPath}yuzu/keys\n${biosPath}yuzu/firmware\n\nMake sure to copy your files inside the folders. Do not overwrite them"`" + if [ "$zenity" == true ]; then + text="$(printf "Yuzu is not configured\nYou need to copy your Keys and firmware to: \n${biosPath}/yuzu/keys\n${biosPath}\yuzu/firmware\n\nMake sure to copy your files inside the folders. Do not overwrite them")" zenity --error \ --title="EmuDeck" \ --width=400 \ --text="${text}" 2>/dev/null -fi - - -## -## -## RetroArch Customizations. -## -## - - -#RA Bezels -RABezels - -#RA SNES Aspect Ratio -RASNES - -#RA AutoSave -RAautoSave - - - -## -## -## Other Customizations. -## -## - - -#Widescreen hacks -setWide - -#We move all the saved folders to the emulation path -createSaveFolders - -#RetroAchievments -RAAchievment - - -if [ $doInstallCHD == "true" ]; then - installCHD -fi - -if [ $doInstallGyro == "true" ]; then - InstallGyro=$(bash <(curl -sL https://github.com/kmicki/SteamDeckGyroDSU/raw/master/pkg/update.sh)) - echo $InstallGyro -fi - - -if [ $doInstallPowertools == "true" ]; then - installPowerTools -fi - -if [ $branch == 'main' ];then - createDesktopIcons -fi - -installBinUp - -setMSG "Cleaning up downloaded files..." -rm -rf ~/dragoonDoriseTools -clear - -# We mark the script as finished -echo "" > ~/emudeck/.finished -echo "100" > ~/emudeck/msg.log -echo "# Installation Complete" >> ~/emudeck/msg.log -finished=true - -text="`printf "Done!\n\nRemember to add your games here:\n${romsPath}\nAnd your Bios (PS1, PS2, Yuzu) here:\n${biosPath}\n\nOpen Steam Rom Manager on your Desktop to add your games to your SteamUI Interface.\n\nThere is a bug in RetroArch that if you are using Bezels you can not set save configuration files unless you close your current game. Use overrides for your custom configurations or use expert mode to disabled them\n\nIf you encounter any problem please visit our Discord:\nhttps://discord.gg/b9F7GpXtFP\n\nTo Update EmuDeck in the future, just run this App again.\n\nEnjoy!"`" - -zenity --question \ - --title="EmuDeck" \ - --width=450 \ - --ok-label="Open Steam Rom Manager" \ - --cancel-label="Exit" \ - --text="${text}" 2>/dev/null -ans=$? -if [ $ans -eq 0 ]; then - kill -15 `pidof steam` - cd ${toolsPath}/srm - ./Steam-ROM-Manager.AppImage - zenity --question \ - --title="EmuDeck" \ - --width=350 \ - --text="Return to Game Mode?" \ - --ok-label="Yes" \ - --cancel-label="No" 2>/dev/null - ans2=$? - if [ $ans2 -eq 0 ]; then - qdbus org.kde.Shutdown /Shutdown org.kde.Shutdown.logout + else + echo "$text" fi - exit -else - exit - echo -e "Exit" 2>/dev/null fi + +FILE="$HOME/.config/Ryujinx/system/prod.keys" +if [ -f "$FILE" ]; then + echo -e "" 2>/dev/null +else + if [ "$zenity" == true ]; then + text="$(printf "Ryujinx is not configured\nYou need to copy your Keys to: \n${biosPath}/ryujinx/keys\n\nMake sure to copy your files inside the folders. Do not overwrite them. You might need to install your firmware using the Ryujinx Install Firmware option inside the emulator")" + zenity --error \ + --title="EmuDeck" \ + --width=400 \ + --text="${text}" 2>/dev/null + else + echo "$text" + fi +fi + +# +# We mark the script as finished +# +echo "" > "$HOME/emudeck/.finished" +echo "" > "$HOME/emudeck/.electron-finished" +echo "100" > "$HOME/emudeck/msg.log" +echo "# Installation Complete" >> "$HOME/emudeck/msg.log" +finished=true +rm "$PIDFILE" + +if [ "$zenity" == true ]; then + + text="$(printf "Done!\n\nRemember to add your games here:\n${romsPath}\nAnd your Bios (PS1, PS2, Yuzu, Ryujinx) here:\n${biosPath}\n\nOpen Steam Rom Manager on your Desktop to add your games to your SteamUI Interface.\n\nThere is a bug in RetroArch that if you are using Bezels you can not set save configuration files unless you close your current game. Use overrides for your custom configurations or use expert mode to disabled them\n\nIf you encounter any problem please visit our Discord:\nhttps://discord.gg/b9F7GpXtFP\n\nTo Update EmuDeck in the future, just run this App again.\n\nEnjoy!")" + + zenity --question \ + --title="EmuDeck" \ + --width=450 \ + --ok-label="Open Steam Rom Manager" \ + --cancel-label="Exit" \ + --text="${text}" 2>/dev/null + ans=$? + if [ $ans -eq 0 ]; then + kill -15 "$(pidof steam)" + "${toolsPath}/srm/Steam-ROM-Manager.AppImage" + zenity --question \ + --title="EmuDeck" \ + --width=350 \ + --text="Return to Game Mode?" \ + --ok-label="Yes" \ + --cancel-label="No" 2>/dev/null + ans2=$? + if [ $ans2 -eq 0 ]; then + qdbus org.kde.Shutdown /Shutdown org.kde.Shutdown.logout + fi + exit + else + exit + echo -e "Exit" 2>/dev/null + fi + +fi \ No newline at end of file diff --git a/installCLI.sh b/installCLI.sh new file mode 100755 index 00000000..c3f6a769 --- /dev/null +++ b/installCLI.sh @@ -0,0 +1,1114 @@ +#!/bin/bash + +# +## +## Pid Lock... +## +# +mkdir -p "$HOME/emudeck" +PIDFILE="$HOME/emudeck/installCLI.pid" + +devMode=$1 + +if [ -f "$PIDFILE" ]; then + PID=$(cat "$PIDFILE") + ps -p "$PID" > /dev/null 2>&1 + if [ $? -eq 0 ]; then + echo "Process already running" + exit 1 + else + ## Process not found assume not running + echo $$ > "$PIDFILE" + if [ $? -ne 0 ]; then + echo "Could not create PID file" + exit 1 + fi + fi +else + echo $$ > "$PIDFILE" + if [ $? -ne 0 ]; then + echo "Could not create PID file" + exit 1 + fi +fi + +function finish { + echo "Script terminating. Exit code $?" + + + +} +trap finish EXIT + + +# +## +## Init... This code is needed for both Zenity and non Zenity modes +## +# + +# +## +## Do we need Zenity?... Anything in the second param will skip zenity +## +# + + + + +#Clean up previous installations +rm ~/emudek.log 2>/dev/null # This is emudeck's old log file, it's not a typo! +rm -rf ~/dragoonDoriseTools + +#Creating log file +LOGFILE="$HOME/emudeck/emudeckCLI.log" +mv "$LOGFILE" "$HOME/emudeck/emudeckCLI.last.log" #backup last log +echo "${@}" > "$LOGFILE" #might as well log out the parameters of the run + +exec > >(tee "${LOGFILE}") 2>&1 +date "+%Y.%m.%d-%H:%M:%S %Z" +#Mark if this not a fresh install +FOLDER="$HOME/emudeck/" +if [ -d "$FOLDER" ]; then + echo "" > "$HOME/emudeck/.finished" +fi +sleep 1 +SECONDTIME="$HOME/emudeck/.finished" + + +# Seeting up the progress Bar for the rest of the installation + + +# +## +## set backend location +## +# I think this should just be in the source, so there's one spot for initialization. hrm, no i'm wrong. Here is best. +EMUDECKGIT="$HOME/emudeck/backend" + +# +## +echo 'Downloading files...' +## +# +# +## +## Branch to download +## +# + +case $devMode in + "BETA") branch="beta" ;; + "DEV") branch="dev" ;; + "EmuReorg") branch="EmuReorg" ;; + *) branch="main" ;; +esac + +echo $branch > "$HOME/emudeck/branch.txt" + + + +#We create all the needed folders for installation +if [[ ! -e $EMUDECKGIT ]]; then + mkdir -p "$EMUDECKGIT" + + #Cloning EmuDeck files + git clone https://github.com/dragoonDorise/EmuDeck.git "$EMUDECKGIT" + +else + git status "$EMUDECKGIT" --porcelain + if [[ ! $noPull == true ]]; then + echo "Resetting install files." + #git fetch origin + #git reset --hard origin/$branch + #git clean -ffdx + fi + +fi + + +# +## +## EmuDeck is installed, start setting up stuff +## +# + +#Test if we have a successful clone +if [ -d "$EMUDECKGIT" ]; then + echo -e "Files Downloaded!" +clear +#cat $EMUDECKGIT/logo.ans +version=$(cat "$EMUDECKGIT/version.md") +echo -e "${BOLD}EmuDeck ${version}${NONE}" +echo -e "" +cat "$EMUDECKGIT/latest.md" + +else + echo -e "" + echo -e "Backend Files are missing!" + echo -e "Please close this window and try again in a few minutes" + sleep 999999 + exit +fi +# +## +## Source all functions and previous values if they exist. +## We source the settings.sh from the emudeck folder if it exists, inside here too. +## +# + +source "$EMUDECKGIT/functions/all.sh" + +# +#Environment Check +# + +getEnvironmentDetails +testRealDeck + + + + +#This part of the code is where all the settings are created + +STARTOPTIONS=(1 "Rerun Emudeck" + 2 "Change a Config Option" + 3 "Install or update an Emulator" + 4 "Full reset an Emulator") + +RUNCHOICE=$(dialogCLI "What should we do today?" "${STARTOPTIONS[@]}") + + +case $RUNCHOICE in + 1) echo "You chose to rerun EmuDeck" + ;; + 2) echo "Change a Config Option" + ;; + 3) echo "Install or update an Emulator" + ;; + 4) echo "Full reset an Emulator" + ;; + *) echo "Cancelled" + ;; +esac +if [ -z "$RUNCHOICE" ]; then + echo "No choice made" + exit +fi +if [ "$RUNCHOICE" == 1 ]; then + + # + # Initialize locations + # + locationTable=() + locationTable+=("Internal" "$HOME") #always valid + + #built in SD Card reader + sdCardFull=$(getSDPath) + sdValid=$(testLocationValid "SD" "$sdCardFull") + echo "$sdCardFull $sdValid" + if [[ ! $sdValid =~ "Invalid" ]]; then + locationTable+=("SD Card" "$sdCardFull") + fi + + # + # Installation mode selection + # + OPTIONS=(1 "Easy Mode" + 2 "Expert Mode") + + modeChoice=$(dialogCLI "Do you want to use Easy Mode or Expert Mode?" "${OPTIONS[@]}") + + if [ "$modeChoice" == "2" ]; then + setSetting expert true + echo "Mode selected: Expert" + locationTable+=("Custom" "CUSTOM") #in expert mode we'll allow the user to pick an arbitrary place. + else + setSetting expert false + echo "Mode selected: Easy" + fi + + # + #Storage Selection + # + storageSelection(){ + destination=$(dialogCLI "Where would you like Emudeck to be installed? SDCardStatus: $sdValid" "${locationTable[@]}") + + + if [ -n "$destination" ]; then + echo "Storage: ${destination}" + if [[ $destination == "Custom" ]]; then + clear + echo "type your custom location. It will be tested for validity." + read -r destination + customValid=$(testLocationValid "Custom" "${destination}") + echo "$customValid" + if [[ $customValid =~ "Invalid" ]]; then + echo "User chose invalid location. Retry." + #zenity pop up explaining why + pause + storageSelection + fi + fi + else + echo "No storage choice made" + exit + fi + } + + storageSelection + + #New paths based on where the user picked. + setSetting emulationPath "${destination}/Emulation" + setSetting romsPath "${destination}/Emulation/roms" + setSetting toolsPath "${destination}/Emulation/tools" + setSetting biosPath "${destination}/Emulation/bios" + setSetting savesPath "${destination}/Emulation/saves" + setSetting storagePath "${destination}/Emulation/storage" + setSetting ESDEscrapData "${destination}/Emulation/tools/downloaded_media/" + + #Folder creation... This code is repeated outside of this if for the no zenity mode + mkdir -p "$emulationPath" + mkdir -p "$toolsPath"/launchers + mkdir -p "$savesPath" + mkdir -p "$romsPath" + mkdir -p "$storagePath" + mkdir -p "$biosPath"/yuzu + + ##Generate rom folders + setMSG "Creating roms folder in $destination" + + sleep 3 + rsync -r --ignore-existing "$EMUDECKGIT/roms/" "$romsPath"/ + #End repeated code + + # + # Start of Expert mode configuration + # The idea is that Easy mode is unatended, so everything that's out + # out of the ordinary has to had its flag enabled/disabled on Expert mode + # + + if [ "$expert" == "true" ]; then + echo "Expert mode begin" + + #one entry per expert mode feature + table=() + table+=( "CHDScript" "Install the latest version of our CHD conversion script?" ON ) + table+=( "PowerTools" "Install Power Tools for CPU control? (password required)" ON ) + table+=( "SteamGyro" "Setup the SteamDeckGyroDSU for gyro control (password required)" ON ) + table+=( "updateSRM" "Install/Update Steam Rom Manager? Customizations will not be reset." ON ) + table+=( "updateESDE" "Install/Update Emulation Station DE? Customizations and scrapes will not be reset." ON ) + table+=( "selectEmulators" "Select the emulators to install." ON ) + table+=( "selectEmulatorConfig" "Customize the emulator configuration reset. (note: Fixes will be skipped if boxes are unchecked)" ON ) + table+=( "selectRABezels" "Turn on Bezels for Retroarch?" ON ) + table+=( "selectRAAutoSave" "Turn on Retroarch AutoSave/Restore state?" ON ) + table+=( "snesAR" "SNES 8:7 Aspect Ratio? (unchecked is 4:3)" ON ) + table+=( "selectWideScreen" "Customize Emulator Widescreen Selection?" ON ) + table+=( "setRAEnabled" "Enable Retroachievments in Retroarch?" ON ) + table+=( "setRASignIn" "Change RetroAchievements Sign in?" ON ) + table+=( "doESDEThemePicker" "Choose your EmulationStation-DE Theme?" ON ) + #table+=(TRUE "doXboxButtons" "Should facebutton letters match between Nintendo and Steamdeck? (default is matched location)") + expertModeFeatureList=$(whiptail --title "Check list example" --checklist "Choose user's permissions" 50 78 4 "${table[@]}") + + echo "user selected: $expertModeFeatureList" + #set flags to true for selected expert mode features + if [[ "$expertModeFeatureList" == *"CHDScript"* ]]; then + setSetting doInstallCHD true + fi + if [[ "$expertModeFeatureList" == *"PowerTools"* ]]; then + setSetting doInstallPowertools true + fi + if [[ "$expertModeFeatureList" == *"SteamGyro"* ]]; then + setSetting doInstallGyro true + fi + if [[ "$expertModeFeatureList" == *"updateSRM"* ]]; then + setSetting doSetupSRM true + fi + if [[ "$expertModeFeatureList" == *"updateESDE"* ]]; then + setSetting doInstallESDE true + fi + if [[ "$expertModeFeatureList" == *"selectEmulators"* ]]; then + setSetting doSelectEmulators true + fi + if [[ "$expertModeFeatureList" == *"selectEmulatorConfig"* ]]; then + setSetting doResetEmulators true + fi + if [[ "$expertModeFeatureList" == *"selectRABezels"* ]]; then + setSetting RABezels true + fi + if [[ "$expertModeFeatureList" == *"selectRAAutoSave"* ]]; then + setSetting RAautoSave true + fi + if [[ "$expertModeFeatureList" == *"snesAR"* ]]; then + setSetting SNESAR 43 + fi + if [[ "$expertModeFeatureList" == *"selectWideScreen"* ]]; then + setSetting doSelectWideScreen true + fi + if [[ "$expertModeFeatureList" == *"setRASignIn"* ]]; then + setSetting doRASignIn true + fi + if [[ "$expertModeFeatureList" == *"setRAEnable"* ]]; then + setSetting doRAEnable true + fi + if [[ "$expertModeFeatureList" == *"doESDEThemePicker"* ]]; then + setSetting doESDEThemePicker true + fi + + + if [[ $doInstallPowertools == "true" || $doInstallGyro == "true" || $isRealDeck == "false" ]]; then + hasPass=$(passwd -S "$USER" | awk -F " " '{print $2}') + if [[ ! $hasPass == "P" ]]; then + text="$(printf "Password not set.\n Please set one now in the terminal.\nYou will not see text entry in the terminal for your password. This is normal.\nOnce set, you will be prompted to enter it in a new window.")" + zenity --error \ + --title="EmuDeck" \ + --width=400 \ + --text="${text}" 2>/dev/null + sleep 1 + clear + echo "Enter a new password for the local Deck account here. You will have to enter it twice. No visual indication of typing will occur." + echo "Please remember it." + passwd + ans=$? + if [[ $ans == 1 ]]; then + echo "Setting password failed." + fi + fi + PASSWD="$(zenity --password --title="Password Entry" --text="Enter Deck User Password (not Steam account!)" 2>/dev/null)" + echo "$PASSWD" | sudo -v -S + ans=$? + if [[ $ans == 1 ]]; then + #incorrect password + PASSWD="$(zenity --password --title="Password Entry" --text="Password was incorrect. Try again. (Did you remember to set a password for linux before running this?)" 2>/dev/null)" + echo "$PASSWD" | sudo -v -S + ans=$? + if [[ $ans == 1 ]]; then + text="$(printf "Password not accepted.\n Expert mode tools which require a password will not work. Disabling them.")" + zenity --error \ + --title="EmuDeck" \ + --width=400 \ + --text="${text}" 2>/dev/null + setSetting doInstallPowertools false + setSetting doInstallGyro false + fi + fi + fi + + + if [[ $doSelectEmulators == "true" ]]; then + + emuTable=() + emuTable+=(TRUE "Multiple" "RetroArch") + emuTable+=(TRUE "Metroid Prime" "PrimeHack") + emuTable+=(TRUE "PS2" "PCSX2") + emuTable+=(TRUE "PS2" "PCSX2-QT") + emuTable+=(TRUE "PS3" "RPCS3") + emuTable+=(TRUE "3DS" "Citra") + emuTable+=(TRUE "GC/Wii" "Dolphin") + emuTable+=(TRUE "PSX" "Duckstation") + emuTable+=(TRUE "PSP" "PPSSPP") + emuTable+=(TRUE "Switch" "Yuzu") + emuTable+=(TRUE "WiiU" "Cemu") + emuTable+=(TRUE "XBox" "Xemu") + #if we are in beta / dev install, allow Xenia. Still false by default though. Will only work on expert mode, and explicitly turned on. + if [[ $branch == "beta" || $branch == "dev" ]]; then + emuTable+=(FALSE "Xbox360" "Xenia") + fi + + #Emulator selector + text="$(printf "What emulators do you want to install?")" + emusToInstall=$(zenity --list \ + --title="EmuDeck" \ + --height=500 \ + --width=250 \ + --ok-label="OK" \ + --cancel-label="Exit" \ + --text="${text}" \ + --checklist \ + --column="Select" \ + --column="System" \ + --column="Emulator" \ + --print-column=3 \ + "${emuTable[@]}" 2>/dev/null) + ans=$? + + if [ $ans -eq 0 ]; then + echo "Emu Install selected: $emusToInstall" + if [[ "$emusToInstall" == *"RetroArch"* ]]; then + setSetting doInstallRA true + fi + if [[ "$emusToInstall" == *"PrimeHack"* ]]; then + setSetting doInstallPrimeHacks true + fi + if [[ "$emusToInstall" == *"PCSX2"* ]]; then + setSetting doInstallPCSX2 true + fi + if [[ "$emusToInstall" == *"PCSX2-QT"* ]]; then + setSetting doInstallPCSX2QT true + fi + if [[ "$emusToInstall" == *"RPCS3"* ]]; then + setSetting doInstallRPCS3 true + fi + if [[ "$emusToInstall" == *"Citra"* ]]; then + setSetting doInstallCitra true + fi + if [[ "$emusToInstall" == *"Dolphin"* ]]; then + setSetting doInstallDolphin true + fi + if [[ "$emusToInstall" == *"Duckstation"* ]]; then + setSetting doInstallDuck true + fi + if [[ "$emusToInstall" == *"PPSSPP"* ]]; then + setSetting doInstallPPSSPP true + fi + if [[ "$emusToInstall" == *"Yuzu"* ]]; then + setSetting doInstallYuzu true + fi + if [[ "$emusToInstall" == *"Cemu"* ]]; then + setSetting doInstallCemu true + fi + if [[ "$emusToInstall" == *"Xemu"* ]]; then + setSetting doInstallXemu true + fi + if [[ "$emusToInstall" == *"Xenia"* ]]; then + setSetting doInstallXenia true + fi + #if [[ "$emusToInstall" == *"MelonDS"* ]]; then + # doInstallMelon=true + #fi + + + else + exit + fi + fi + + + if [[ $doSelectWideScreen == "true" ]]; then + #Emulators screenHacks + emuTable=() + emuTable+=(TRUE "Dolphin") + emuTable+=(TRUE "Duckstation") + emuTable+=(TRUE "PCSX2-QT") + emuTable+=(TRUE "RA-BeetlePSX") + emuTable+=(TRUE "RA-Flycast") + emuTable+=(TRUE "Xemu") + + text="$(printf "Selected Emulators will use WideScreen Hacks")" + wideToInstall=$(zenity --list \ + --title="EmuDeck" \ + --height=500 \ + --width=250 \ + --ok-label="OK" \ + --cancel-label="Exit" \ + --text="${text}" \ + --checklist \ + --column="Widescreen?" \ + --column="Emulator" \ + "${emuTable[@]}" 2>/dev/null) + ans=$? + if [ $ans -eq 0 ]; then + echo "Widescreen choices: $wideToInstall" + if [[ "$wideToInstall" == *"Duckstation"* ]]; then + setSetting duckWide true + else + setSetting duckWide false + fi + if [[ "$wideToInstall" == *"Dolphin"* ]]; then + setSetting DolphinWide true + else + setSetting DolphinWide false + fi + if [[ "$wideToInstall" == *"RA-Flycast"* ]]; then + setSetting DreamcastWide true + else + setSetting DreamcastWide false + fi + if [[ "$wideToInstall" == *"BeetlePSX"* ]]; then + setSetting BeetleWide true + else + setSetting BeetleWide false + fi + if [[ "$wideToInstall" == *"Xemu"* ]]; then + setSetting XemuWide true + else + setSetting XemuWide false + fi + if [[ "$wideToInstall" == *"PCSX2-QT"* ]]; then + setSetting PCSX2QTWide true + else + setSetting PCSX2QTWide false + fi + else + exit + fi + fi + + if [[ $doResetEmulators == "true" ]]; then + # Configuration that only appplies to previous users + if [ -f "$SECONDTIME" ]; then + + emuTable=() + emuTable+=(TRUE "RetroArch") + emuTable+=(TRUE "PrimeHack") + emuTable+=(TRUE "PCSX2") + emuTable+=(TRUE "PCSX2-QT") + emuTable+=(TRUE "RPCS3") + emuTable+=(TRUE "Citra") + emuTable+=(TRUE "Dolphin") + emuTable+=(TRUE "Duckstation") + emuTable+=(TRUE "PPSSPP") + emuTable+=(TRUE "Yuzu") + emuTable+=(TRUE "Cemu") + emuTable+=(TRUE "Xemu") + emuTable+=(TRUE "Steam Rom Manager") + emuTable+=(TRUE "EmulationStation DE") + + text="$(printf "EmuDeck will reset the following Emulator's configurations by default.\nWhich systems do you want reset to the newest version of the defaults?\nWe recommend you keep all of them checked so everything gets updated and known issues are fixed.\nIf you want to mantain any custom configuration on an emulator unselect its name from this list.")" + emusToReset=$(zenity --list \ + --title="EmuDeck" \ + --height=500 \ + --width=250 \ + --ok-label="OK" \ + --cancel-label="Exit" \ + --text="${text}" \ + --checklist \ + --column="Reset?" \ + --column="Emulator" \ + "${emuTable[@]}" 2>/dev/null) + ans=$? + #Nova fix' + cat "$EMUDECKGIT/logo.ans" + echo -e "EmuDeck ${version}" + if [ $ans -eq 0 ]; then + echo "Emulators to reinstall selected: $emusToReset" + if [[ "$emusToReset" == *"RetroArch"* ]]; then + setSetting doSetupRA true + fi + if [[ "$emusToReset" == *"PrimeHack"* ]]; then + setSetting doSetupPrimeHacks true + fi + if [[ "$emusToReset" == *"PCSX2"* ]]; then + setSetting doSetupPCSX2 true + fi + if [[ "$emusToReset" == *"PCSX2"* ]]; then + setSetting doSetupPCSX2QT true + fi + if [[ "$emusToReset" == *"RPCS3"* ]]; then + setSetting doSetupRPCS3 true + fi + if [[ "$emusToReset" == *"Citra"* ]]; then + setSetting doSetupCitra true + fi + if [[ "$emusToReset" == *"Dolphin"* ]]; then + setSetting doSetupDolphin true + fi + if [[ "$emusToReset" == *"Duckstation"* ]]; then + setSetting doSetupDuck true + fi + if [[ "$emusToReset" == *"PPSSPP"* ]]; then + setSetting doSetupPPSSPP true + fi + if [[ "$emusToReset" == *"Yuzu"* ]]; then + setSetting doSetupYuzu true + fi + if [[ "$emusToReset" == *"Cemu"* ]]; then + setSetting doSetupCemu true + fi + if [[ "$emusToReset" == *"Xemu"* ]]; then + setSetting doSetupXemu true + fi + if [[ "$emusToReset" == *"Xenia"* ]]; then + setSetting doSetupXenia false #false until we add above + fi + #if [[ "$emusToReset" == *"MelonDS"* ]]; then + # setSetting doSetupMelonDS true + #fi + if [[ "$emusToReset" == *"Steam Rom Manager"* ]]; then + setSetting doSetupSRM true + fi + if [[ "$emusToReset" == *"EmulationStation DE"* ]]; then + setSetting doSetupESDE true + fi + + + else + echo "" + fi + + fi + fi + else + #easy mode settings + setSetting doInstallRA true + setSetting doInstallDolphin true + setSetting doInstallPCSX2 true + setSetting doInstallPCSX2QT true + setSetting doInstallRPCS3 true + setSetting doInstallYuzu true + setSetting doInstallCitra true + setSetting doInstallDuck true + setSetting doInstallCemu true + setSetting doInstallXenia false + setSetting doInstallPrimeHacks true + setSetting doInstallPPSSPP true + setSetting doInstallXemu true + #doInstallMelon=true + + #widescreen off by default + setSetting duckWide false + setSetting DolphinWide false + setSetting DreamcastWide false + setSetting BeetleWide false + setSetting XemuWide false + setSetting pcsx2QTWide false + + fi # end Expert if + + +else + #We only load functions and config when no Zenity selected + #source "$EMUDECKGIT"/functions/all.sh - if we ALWAYS source, + #then we can do stuff like having the settings exactly the way they were on second run. + #source $HOME/emudeck/settings.sh put it inside all.sh + + #Folder creation... This code is repeated outside of this if for the yes zenity mode + mkdir -p "$emulationPath" + mkdir -p "$toolsPath"/launchers + mkdir -p "$savesPath" + mkdir -p "$romsPath" + mkdir -p "$storagePath" + mkdir -p "$biosPath"/yuzu + + ##Generate rom folders + setMSG "Creating roms folder in $romsPath" + + sleep 3 + rsync -r --ignore-existing "$EMUDECKGIT/roms/" "$romsPath" + #End repeated code +fi + + +# +## +## End of Zenity configuration +## +# + + + + +# +## +## Start of installation +## +# + +#Support for non-holo based OS's +#Only on Zenity for now +if [ "$zenity" == true ]; then + if [[ $isRealDeck == false ]]; then + OS_setupPrereqsArch + fi +fi +#setup Proton-Launch.sh +#because this path gets updated by sed, we really should be installing it every time and allowing it to be updated every time. In case the user changes their path. +cp "$EMUDECKGIT/tools/proton-launch.sh" "${toolsPath}/proton-launch.sh" +chmod +x "${toolsPath}/proton-launch.sh" + +#ESDE Installation +if [ $doInstallESDE == "true" ]; then + ESDE_install +fi +#SRM Installation +if [ $doInstallSRM == "true" ]; then + SRM_install +fi +#Emulators Installation +if [ "$doInstallPCSX2" == "true" ]; then + PCSX2_install +fi +if [ "$doInstallPCSX2QT" == "true" ]; then + PCSX2QT_install +fi +if [ $doInstallPrimeHacks == "true" ]; then + Primehack_install +fi +if [ $doInstallRPCS3 == "true" ]; then + RPCS3_install +fi +if [ $doInstallCitra == "true" ]; then + Citra_install +fi +if [ $doInstallDolphin == "true" ]; then + Dolphin_install +fi +if [ $doInstallDuck == "true" ]; then + DuckStation_install +fi +if [ $doInstallRA == "true" ]; then + RetroArch_install +fi +if [ $doInstallPPSSPP == "true" ]; then + PPSSPP_install +fi +if [ $doInstallYuzu == "true" ]; then + Yuzu_install +fi +if [ $doInstallXemu == "true" ]; then + Xemu_install +fi +if [ $doInstallCemu == "true" ]; then + Cemu_install +fi + +#Xenia - We need to install Xenia after creating the Roms folders! +if [ "$doInstallXenia" == "true" ]; then + Xenia_install +fi + +#Steam RomManager Config + +if [ "$doSetupSRM" == "true" ]; then + SRM_init +fi + +#ESDE Config +if [ "$doSetupESDE" == "true" ]; then + ESDE_init +fi + +#Emus config +#setMSG "Configuring Steam Input for emulators.." moved to emu install + + +setMSG "Configuring emulators.." + +if [ "$doSetupRA" == "true" ]; then + RetroArch_init +fi +if [ "$doSetupPrimeHacks" == "true" ]; then + Primehack_init +fi +if [ "$doSetupDolphin" == "true" ]; then + Dolphin_init +fi +if [ "$doSetupPCSX2" == "true" ]; then + PCSX2_init +fi +if [ "$doSetupPCSX2QT" == "true" ]; then + PCSX2QT_init +fi +if [ "$doSetupRPCS3" == "true" ]; then + RPCS3_init +fi +if [ "$doSetupCitra" == "true" ]; then + Citra_init +fi +if [ "$doSetupDuck" == "true" ]; then + DuckStation_init +fi +if [ "$doSetupYuzu" == "true" ]; then + Yuzu_init +fi +if [ "$doSetupPPSSPP" == "true" ]; then + PPSSPP_init +fi +if [ "$doSetupXemu" == "true" ]; then + Xemu_init +fi +#Proton Emus +if [ "$doSetupCemu" == "true" ]; then + Cemu_init +fi +if [ "$doSetupXenia" == "true" ]; then + Xenia_init +fi + + + +#Fixes repeated Symlink for older installations +Yuzu_finalize + + + +# +## +##End of installation +## +# + + + + +## +## +## Customizations. +## +## + + +#RA Bezels +RetroArch_setBezels #needs to change + + + +#RA AutoSave +if [ "$RAautoSave" == true ]; then + RetroArch_autoSaveOn +else + RetroArch_autoSaveOff +fi + + + +if [ "$zenity" == true ]; then + + #Old Widescreen hacks + if [ "$duckWide" == true ]; then + DuckStation_wideScreenOn + else + DuckStation_wideScreenOff + fi + if [ "$pcsx2QTWide" == true ]; then + PCSX2QT_wideScreenOn + else + PCSX2QT_wideScreenOff + fi + if [ "$DolphinWide" == true ]; then + Dolphin_wideScreenOn + else + Dolphin_wideScreenOff + fi + if [ "$XemuWide" == true ]; then + Xemu_wideScreenOn + else + Xemu_wideScreenOff + fi + if [ "$DreamcastWide" == true ]; then + RetroArch_Flycast_wideScreenOn + else + RetroArch_Flycast_wideScreenOff + fi + + #RA SNES Aspect Ratio + RetroArch_setSNESAR #needs to change + +else + + # + #New Aspect Ratios + # + + #Sega Games + #Master System + #Genesis + #Sega CD + #Sega 32X + + case $arSega in + "32") + RetroArch_mastersystem_ar32 + RetroArch_genesis_ar32 + RetroArch_segacd_ar32 + RetroArch_sega32x_ar32 + ;; + *) + RetroArch_mastersystem_ar43 + RetroArch_genesis_ar43 + RetroArch_segacd_ar43 + RetroArch_sega32x_ar43 + if [ "$RABezels" == true ]; then + RetroArch_mastersystem_bezelOn + RetroArch_genesis_bezelOn + RetroArch_segacd_bezelOn + RetroArch_sega32x_bezelOn + fi + ;; + esac + + #Snes and NES + case $arSnes in + "87") + if [ "$RABezels" == true ]; then + RetroArch_snes_bezelOn + fi + RetroArch_snes_ar87 + RetroArch_nes_ar87 + ;; + "32") + RetroArch_snes_ar32 + RetroArch_nes_ar32 + ;; + *) + RetroArch_snes_ar43 + RetroArch_nes_ar43 + if [ "$RABezels" == true ]; then + RetroArch_snes_bezelOn + fi + ;; + esac + + # Classic 3D Games + #Dreamcast + #PSX + #Nintendo 64 + #Saturn + #Xbox + if [ "$arClassic3D" == 169 ]; then + RetroArch_Beetle_PSX_HW_wideScreenOn + DuckStation_wideScreenOn + RetroArch_Flycast_wideScreenOn + Xemu_wideScreenOn + #"Bezels off" + RetroArch_Flycast_bezelOff + RetroArch_Beetle_PSX_HW_bezelOff + else + #"SET 4:3" + RetroArch_Flycast_wideScreenOff + RetroArch_Beetle_PSX_HW_wideScreenOff + DuckStation_wideScreenOff + Xemu_wideScreenOff + #"Bezels on" + if [ "$RABezels" == true ]; then + RetroArch_Flycast_bezelOn + RetroArch_Beetle_PSX_HW_bezelOn + fi + fi + + # GameCube + if [ "$arDolphin" == 169 ]; then + Dolphin_wideScreenOn + else + Dolphin_wideScreenOff + fi + +fi + + +# +#New Shaders +# +RetroArch_setShadersCRT +RetroArch_setShadersMAT + +#RetroAchievments +if [ "$doRASignIn" == "true" ]; then + RetroArch_retroAchievementsPromptLogin + RetroArch_retroAchievementsSetLogin + RetroArch_retroAchievementsOn +fi + +if [ "$doRAEnable" == "true" ]; then + RetroArch_retroAchievementsOn +fi + + +if [ "$doInstallCHD" == "true" ]; then + CHD_install +fi + +if [ "$doInstallGyro" == "true" ]; then + Plugins_installSteamDeckGyroDSU +fi + + +if [ "$doInstallPowertools" == "true" ]; then + Plugins_installPluginLoader + Plugins_installPowerTools +fi + +if [ "$branch" == 'main' ];then + createDesktopIcons +fi + +BINUP_install + + +# +## +##Validations +## +# + +#PS Bios +checkPSBIOS + +#Yuzu Keys & Firmware +FILE="$HOME/.local/share/yuzu/keys/prod.keys" +if [ -f "$FILE" ]; then + echo -e "" 2>/dev/null +else + if [ "$zenity" == true ]; then + text="$(printf "Yuzu is not configured\nYou need to copy your Keys and firmware to: \n${biosPath}yuzu/keys\n${biosPath}yuzu/firmware\n\nMake sure to copy your files inside the folders. Do not overwrite them")" + zenity --error \ + --title="EmuDeck" \ + --width=400 \ + --text="${text}" 2>/dev/null + else + echo "$text" + fi +fi + +# +## +## Overrides for non Steam hardware... +## +# + + +# +#Fixes for 16:9 Screens +# + +if [ "$(getScreenAR)" == 169 ];then + nonDeck_169Screen +fi + +#Anbernic Win600 Special configuration +if [ "$(getProductName)" == "Win600" ];then + nonDeck_win600 +fi + + +# +# We mark the script as finished +# +echo "" > "$HOME/emudeck/.finished" +echo "" > "$HOME/emudeck/.electron-finished" +echo "100" > "$HOME/emudeck/msg.log" +echo "# Installation Complete" >> "$HOME/emudeck/msg.log" +finished=true +rm "$PIDFILE" + +if [ "$zenity" == true ]; then + + text="$(printf "Done!\n\nRemember to add your games here:\n${romsPath}\nAnd your Bios (PS1, PS2, Yuzu) here:\n${biosPath}\n\nOpen Steam Rom Manager on your Desktop to add your games to your SteamUI Interface.\n\nThere is a bug in RetroArch that if you are using Bezels you can not set save configuration files unless you close your current game. Use overrides for your custom configurations or use expert mode to disabled them\n\nIf you encounter any problem please visit our Discord:\nhttps://discord.gg/b9F7GpXtFP\n\nTo Update EmuDeck in the future, just run this App again.\n\nEnjoy!")" + + zenity --question \ + --title="EmuDeck" \ + --width=450 \ + --ok-label="Open Steam Rom Manager" \ + --cancel-label="Exit" \ + --text="${text}" 2>/dev/null + ans=$? + if [ $ans -eq 0 ]; then + kill -15 "$(pidof steam)" + "${toolsPath}/srm/Steam-ROM-Manager.AppImage" + zenity --question \ + --title="EmuDeck" \ + --width=350 \ + --text="Return to Game Mode?" \ + --ok-label="Yes" \ + --cancel-label="No" 2>/dev/null + ans2=$? + if [ $ans2 -eq 0 ]; then + qdbus org.kde.Shutdown /Shutdown org.kde.Shutdown.logout + fi + exit + else + exit + echo -e "Exit" 2>/dev/null + fi + +fi \ No newline at end of file diff --git a/latest.md b/latest.md index bf0f531a..84f1a6a9 100644 --- a/latest.md +++ b/latest.md @@ -1,29 +1,21 @@ -0.17.5 - -- New - Steam Input Template for DuckStation with left trackpad Touchinput (Thanks Moskeeto) -- New - Yuzu AppImage ( Seemingly better performance than the one in discover store, also right click to open menus work! ) - It is VERY important you let Emudeck run the updates on Yuzu so the - data migration can happen seamlessly. You will be notified if we find data in the default appimage location - and can choose to keep and migrate the old Flatpak data, or you can use the existing AppImage data you have. - The chosen data will be migrated to the AppImage location, and linked back to the flatpak data location. - Steam Rom Manager users will need to re-parse for Yuzu games to use the new AppImage. - The Flatpak installation is NOT removed, but must be for EmulationStation-DE to use the AppImage instead. -- New - Storage folder to keep Xemu, Yuzu, and RPCS3 data in the Emulation folder. Migration will happen at the start. - You may need to re-parse for rpcs3 installed files. -- New - Binary Updater tool added. Ths new tool can update EmulationStation-DE, SteamRomManager, Cemu, Yuzu, or Xenia - to their latest versions without going through the EmuDeck install process. -- New - CHD Script now handles wii / gc iso --> rvz conversion -- Fix - Dolphin pointer is now right trackpad and works more smoothly. If you have SteamGyro setup, motion now works. - \*You may need to set the controller to Default Gamepad With Mouse Trackpad if steam decided to use Touchpad as Joystick instead. -- Fix - DuckStation rom path added. New hotkeys added to coincide with Steam Input Template. Changed quickMenu to Esc. (Steam + Dpad Left) -- Fix - Widescreen Hacks are now off by default for all emulators. They can be enabled by running in Expert Mode. -- Fix - PCSX2 Steam Input profile updated so it wont pause on RT. (Thanks Wintermute) -- Fix - Citra Steam Input. R5 only closes Citra after a long a press -- Fix - Updates won't wipe out EmulationStation-DE custom systems and EmulationStation-DE metadata info anymore. -- Fix - Updates won't wipe out Cemu graphics pack settings anymore. -- Fix - EmulationStation-DE's hidden downloaded_media wouldn't get moved - to the Emulation/tools directory if the setting existed but was blank. -- Fix - Expert Mode: Widescreen Hacks Selection. -- Fix - Expert Mode: Emulator install and reconfiguration selection. -- Fix - Expert Mode: Entering a password wrong in the pop up will make it re-pop. - You have 2 chances and then it will disable the Expert mode settings that require a password. +0.17.6 +- Added 16:9 bezel support for holoISO and Anbernic Win600 (or other 16:9 devices) +- Left Analog stick mirrors the d-pad controls for older systems +- Recursive SRM parsers. Now you can organize your games in folders +- Icon renamed to Update EmuDeck to avoid confusion +- Fixed Atari Bezels. Added bezels to Dreamcast, N64 and Saturn +- Fixed Dolphin and Primehack from sending button presses as part of hotkeys as in-game button presses +- Added Naomi (flycast) parser for Steam Rom Manager. Uses roms/naomi folder +- Fixed retroachievements not working for users with certain special characters in their passwords. +- Added easyRPG core to RA. Required additional files are not yet downloaded. You can add them manually. +- Added PCSX2-Qt AppImage and Steam Rom Manager Parser. This can live side by side with your existing pcsx2, but it should be removed. +- Migrate pcsx2 saves files to the Emulation folder. This is no longer a link. +- Both versions of Pcsx2 use the same saves location in their config so no matter which, you can save / load state. +- Expert mode settings are remembered. + If you run expert mode, and change a setting it will be retained and used on the next run of easy mode. (except install / reconfigure) +- RetroArch settings will be backed up before update. Settings files for this are no longer replaced. The options are updated or appended. +- Installing PluginLoader (powertools) now activates dev mode and installs the new version of the loader and plugin. Reboot may be required +- CHD script Renamed to Emudeck Compression Tool. New support for Wii games to convert them to rvz format +- Preserve custom Artwork on Steam Rom Manager on second scans +- Support for Mesen HD Packs +- ... too much more to fit here! diff --git a/settings.sh b/settings.sh index dc032559..72bb23cd 100644 --- a/settings.sh +++ b/settings.sh @@ -1,3 +1,4 @@ +#!/bin/bash #Expert mode off by default expert=false @@ -15,11 +16,13 @@ doSetupDuck=true doSetupCemu=true doSetupXenia=false doSetupRyujinx=true +doSetupMame=true doSetupPrimeHacks=true doSetupPPSSPP=true doSetupXemu=true doSetupESDE=true doSetupSRM=true +doSetupPCSX2QT=true #doSetupMelon=true #Install all systems by default @@ -34,13 +37,17 @@ doInstallCitra=false doInstallDuck=false doInstallCemu=false doInstallXenia=false +doInstallRyujinx=false doInstallPrimeHacks=false doInstallPPSSPP=false doInstallXemu=false +doInstallPCSX2QT=false +doInstallMAME=true #doInstallMelon=false doInstallCHD=false doInstallPowertools=false doInstallGyro=false + installString='Installing' #Default RetroArch configuration @@ -49,19 +56,42 @@ RAautoSave=false SNESAR=43 #Default widescreen -duckWide=true -DolphinWide=true -DreamcastWide=true -BeetleWide=true + +duckWide=false +DolphinWide=false +DreamcastWide=false +BeetleWide=false +pcsx2QTWide=false #Default installation folders -emulationPath=~/Emulation/ -romsPath=~/Emulation/roms/ -toolsPath=~/Emulation/tools/ -biosPath=~/Emulation/bios/ -savesPath=~/Emulation/saves/ -storagePath=~/Emulation/storage/ +emulationPath=~/Emulation +romsPath=~/Emulation/roms +toolsPath=~/Emulation/tools +biosPath=~/Emulation/bios +savesPath=~/Emulation/saves +storagePath=~/Emulation/storage +ESDEscrapData=~/Emulation/tools/downloaded_media #Default ESDE Theme esdeTheme="EPICNOIR" + +#Advanced settings +doSelectWideScreen=false +doRASignIn=false +doRAEnable=false +doESDEThemePicker=false +doSelectEmulators=false +doResetEmulators=false +XemuWide=false + +#New UI settings +achievementsPass=false +achievementsUser=false +arClassic3D=43 +arDolphin=43 +arSega=43 +arSnes=43 +RAHandClassic2D=false +RAHandHeldShader=true +doSetupSaveSync=false \ No newline at end of file diff --git a/tools/binaries/xmlstarlet b/tools/binaries/xmlstarlet old mode 100644 new mode 100755 diff --git a/tools/binupdate/binupdate.sh b/tools/binupdate/binupdate.sh index e1ace587..de38c74c 100644 --- a/tools/binupdate/binupdate.sh +++ b/tools/binupdate/binupdate.sh @@ -1,78 +1,16 @@ #!/bin/bash #while this is in testing, i'm copying in the functions. once we leave the original repo in place and don't delete it, i'd like to use the functions we already made. -installESDE(){ +source "$HOME/emudeck/backend/functions/all.sh" +if [ "$?" == "1" ]; then + echo "functions could not be loaded." + zenity --error \ + --text="EmuDeck Functions could not be loaded. Please re-run Emudeck install." + exit +fi - #New repo - - curl https://gitlab.com/es-de/emulationstation-de/-/raw/master/es-app/assets/latest_steam_deck_appimage.txt --output "$toolsPath"/latesturl.txt - latestURL=$(grep "https://gitlab" "$toolsPath"/latesturl.txt) - - curl $latestURL --output "$toolsPath"/EmulationStation-DE-x64_SteamDeck.AppImage - rm "$toolsPath"/latesturl.txt - chmod +x "$toolsPath"/EmulationStation-DE-x64_SteamDeck.AppImage - -} - -installSRM(){ - #setMSG "${installString} Steam Rom Manager" - rm -f ~/Desktop/Steam-ROM-Manager-2.3.29.AppImage - rm -f ~/Desktop/Steam-ROM-Manager.AppImage - mkdir -p "${toolsPath}"srm - curl -L "$(curl -s https://api.github.com/repos/SteamGridDB/steam-rom-manager/releases/latest | grep -E 'browser_download_url.*AppImage' | grep -ve 'i386' | cut -d '"' -f 4)" > "${toolsPath}"srm/Steam-ROM-Manager.AppImage - chmod +x "${toolsPath}"srm/Steam-ROM-Manager.AppImage -} - #paths update via sed in main script - romsPath="/run/media/mmcblk0p1/Emulation/roms/" - toolsPath="/run/media/mmcblk0p1/Emulation/tools/" - scriptPath="${toolsPath}binupdate/" - - #initialize log - TIMESTAMP=`date "+%Y%m%d_%H%M%S"` - LOGFILE="${scriptPath}binupdate-$TIMESTAMP.log" - exec > >(tee ${LOGFILE}) 2>&1 - - binTable=() - binTable+=(TRUE "EmulationStation-DE" "esde") - binTable+=(TRUE "Steam Rom Manager" "srm") - binTable+=(TRUE "Nintendo Switch Emu" "yuzu") - binTable+=(TRUE "Nintendo WiiU Emu" "cemu") - binTable+=(FALSE "Xbox 360 Emu - TESTING ONLY" "xenia") - -#Binary selector - text="`printf "What tools do you want to get the latest version of?\n This tool will simply overwrite what you have with the newest available."`" - binsToDL=$(zenity --list \ - --title="EmuDeck" \ - --height=500 \ - --width=250 \ - --ok-label="OK" \ - --cancel-label="Exit" \ - --text="${text}" \ - --checklist \ - --column="Select" \ - --column="System" \ - --column="Name" \ - --print-column=3 \ - "${binTable[@]}" 2>/dev/null) - ans=$? - - if [ $ans -eq 0 ]; then - echo "User selected: $binsToDL" - if [[ "$binsToDL" == *"esde"* ]]; then - installESDE - fi - if [[ "$binsToDL" == *"srm"* ]]; then - installSRM - fi - if [[ "$binsToDL" == *"yuzu"* ]]; then - mkdir -p $HOME/Applications - cd $HOME/Applications - url="$(curl -sL https://api.github.com/repos/yuzu-emu/yuzu-mainline/releases/latest | jq -r ".assets[].browser_download_url" | grep .AppImage\$)" - curl -Lo "yuzu.AppImage" "$url" - fi - if [[ "$binsToDL" == *"cemu"* ]]; then - - releasesStr=$(curl -sL https://cemu.info | awk 'BEGIN{ +updateCemu(){ + releasesStr=$(curl -sL https://cemu.info | awk 'BEGIN{ RS="" IGNORECASE=1 } @@ -86,10 +24,10 @@ installSRM(){ } }' | grep releases) - releases=($releasesStr) + mapfile -t releases <<< "$releasesStr" releaseTable=() - for release in ${releases[@]}; do + for release in "${releases[@]}"; do releaseTable+=(false "$release") echo "release: $release" done @@ -106,23 +44,118 @@ installSRM(){ --column="Release" \ "${releaseTable[@]}" 2>/dev/null) - curl $releaseChoice --output "$romsPath"wiiu/cemu.zip + curl "$releaseChoice" --output "$romsPath/wiiu/cemu.zip" - mkdir -p "$romsPath"wiiu/tmp - unzip -o "$romsPath"wiiu/cemu.zip -d "$romsPath"wiiu/tmp - mv "$romsPath"wiiu/tmp/cemu_*/ "$romsPath"wiiu/tmp/cemu/ - rsync -avzh "$romsPath"wiiu/tmp/cemu/ "$romsPath"wiiu/ - rm -rf "$romsPath"wiiu/tmp - rm -f "$romsPath"wiiu/cemu.zip + mkdir -p "$romsPath/wiiu/tmp" + unzip -o "$romsPath/wiiu/cemu.zip" -d "$romsPath/wiiu/tmp" + mv "$romsPath"/wiiu/tmp/cemu_*/ "$romsPath/wiiu/tmp/cemu/" #don't quote the * + rsync -avzh "$romsPath/wiiu/tmp/cemu/" "$romsPath/wiiu/" + rm -rf "$romsPath/wiiu/tmp" + rm -f "$romsPath/wiiu/cemu.zip" +} + + + #begin script + #paths update via sed in main script + #source the all.sh, these should be pulled correctly! + scriptPath="${toolsPath}/binupdate" + + #initialize log + TIMESTAMP=$(date "+%Y%m%d_%H%M%S") + LOGFILE="${scriptPath}/binupdate-$TIMESTAMP.log" + exec > >(tee "${LOGFILE}") 2>&1 + + binTable=() + binTable+=(TRUE "EmulationStation-DE" "esde") + binTable+=(TRUE "Steam Rom Manager" "srm") + binTable+=(TRUE "Nintendo Switch Emu" "yuzu") + binTable+=(TRUE "Nintendo Switch Emu" "ryujinx") + binTable+=(TRUE "Sony PlayStation 2 Emu" "pcsx2-qt") + binTable+=(TRUE "Nintendo WiiU Emu" "cemu") + binTable+=(FALSE "Xbox 360 Emu - TESTING ONLY" "xenia") + +#Binary selector + text="$(printf "What tools do you want to get the latest version of?\n This tool will simply overwrite what you have with the newest available.")" + binsToDL=$(zenity --list \ + --title="EmuDeck" \ + --height=500 \ + --width=250 \ + --ok-label="OK" \ + --cancel-label="Exit" \ + --text="${text}" \ + --checklist \ + --column="Select" \ + --column="System" \ + --column="Name" \ + --print-column=3 \ + "${binTable[@]}" 2>/dev/null) + ans=$? + messages=() + if [ $ans -eq 0 ]; then + echo "User selected: $binsToDL" + if [[ "$binsToDL" == *"esde"* ]]; then + ESDE_install + if [ "$?" == "0" ]; then + messages+=("EmulationStation-DE Updated Successfully") + else + messages+=("There was a problem updating EmulationStation-DE") + fi + fi + if [[ "$binsToDL" == *"srm"* ]]; then + SRM_install + if [ "$?" == "0" ]; then + messages+=("SteamRomManager Updated Successfully") + else + messages+=("There was a problem updating SteamRomManager") + fi + fi + if [[ "$binsToDL" == *"yuzu"* ]]; then + Yuzu_install + if [ "$?" == "0" ]; then + messages+=("Yuzu Updated Successfully") + else + messages+=("There was a problem updating Yuzu") + fi + fi + if [[ "$binsToDL" == *"pcsx2-qt"* ]]; then + PCSX2QT_install + if [ "$?" == "0" ]; then + messages+=("PCSX2-QT Updated Successfully") + else + messages+=("There was a problem updating PCSX2-QT") + fi + fi + if [[ "$binsToDL" == *"ryujinx"* ]]; then + Ryujinx_install + if [ "$?" == "0" ]; then + messages+=("Ryujinx Updated Successfully") + else + messages+=("There was a problem updating Ryujinx") + fi + fi + if [[ "$binsToDL" == *"cemu"* ]]; then + updateCemu + if [ "$?" == "0" ]; then + messages+=("Cemu Updated Successfully") + else + messages+=("There was a problem updating Cemu") + fi fi if [[ "$binsToDL" == *"xenia"* ]]; then - curl -L https://github.com/xenia-project/release-builds-windows/releases/latest/download/xenia_master.zip --output "$romsPath"xbox360/xenia_master.zip - mkdir -p "$romsPath"xbox360/tmp - unzip -o "$romsPath"xbox360/xenia_master.zip -d "$romsPath"xbox360/tmp - mv "$romsPath"xbox360/tmp/* "$romsPath"xbox360 - rm -rf "$romsPath"xbox360/tmp - rm -f "$romsPath"xbox360/xenia_master.zip + Xenia_install + if [ "$?" == "0" ]; then + messages+=("Xenia Updated Successfully") + else + messages+=("There was a problem updating Xenia") + fi + fi + if [[ ${#messages[@]} -gt 0 ]]; then + zenity --list \ + --title="Update Status" \ + --text="" \ + --column="Messages" \ + "${messages[@]}" fi fi diff --git a/tools/chdconv/DolphinTool.exe b/tools/chdconv/DolphinTool.exe deleted file mode 100644 index 3d890dbb..00000000 Binary files a/tools/chdconv/DolphinTool.exe and /dev/null differ diff --git a/tools/chdconv/chddeck.sh b/tools/chdconv/chddeck.sh index 85f36239..b3be4ad3 100644 --- a/tools/chdconv/chddeck.sh +++ b/tools/chdconv/chddeck.sh @@ -1,6 +1,6 @@ #!/bin/bash -text="`printf "Hi\nWelcome to EmuDeck's CHD conversion script!\n\nThis is currently a BETA feature. Please be very careful and make sure you have backups of roms.\n\nThis script will scan the roms folder you choose and convert all your .cue/.bin and .gdi files to the superior CHD format.\n\nThis action will delete the old files if the conversion to chd succeeds"`" +text="$(printf "Hi\nWelcome to EmuDeck's Game Compression script!\n\nPlease be very careful and make sure you have backups of roms.\n\nThis script will scan the roms folder you choose and will compress the files it can to the best available format.\n\nThis action will delete the old files if the compression succeeds")" #Nova fix' zenity --question \ --title="EmuDeck" \ @@ -10,54 +10,55 @@ zenity --question \ --text="${text}" 2>/dev/null ans=$? if [ $ans -eq 0 ]; then - + #paths update via sed in main script - romsPath="/run/media/mmcblk0p1/Emulation/roms/" - toolsPath="/run/media/mmcblk0p1/Emulation/tools/" - chdPath="${toolsPath}chdconv/" - - + romsPath="/run/media/mmcblk0p1/Emulation/roms" + toolsPath="/run/media/mmcblk0p1/Emulation/tools" + chdPath="${toolsPath}/chdconv/" + + #initialize log - TIMESTAMP=`date "+%Y%m%d_%H%M%S"` + TIMESTAMP=$(date "+%Y%m%d_%H%M%S") LOGFILE="$chdPath/chdman-$TIMESTAMP.log" - exec > >(tee ${LOGFILE}) 2>&1 - + exec > >(tee "${LOGFILE}") 2>&1 + #ask user if they want to pick manually or run a search for eligible files. Manual will need to ask the user to pick a file, and then it will need to ask the type to convert to. (chd, rvz, cso) echo "Checking $romsPath for files eligible for conversion." - + #whitelist declare -a chdfolderWhiteList=("dreamcast" "psx" "segacd" "3do" "saturn" "tg-cd" "pcenginecd" "pcfx" "amigacd32" "neogeocd" "megacd" "ps2") declare -a rvzfolderWhiteList=("gamecube" "wii") declare -a searchFolderList - echo $chdfolderWhiteList + export PATH="${chdPath}/:$PATH" #find file types we support within whitelist of folders - for romfolder in ${chdfolderWhiteList[@]}; do - echo "Checking ${romsPath}${romfolder}/" - files=(`find "${romsPath}${romfolder}/" -type f -iname "*.gdi" -o -type f -iname "*.cue" -o -type f -iname "*.iso"`) - if [ ${#files[@]} -gt 0 ]; then - echo "found in $romfolder" - searchFolderList+=("$romfolder") - fi - done - - for romfolder in ${rvzfolderWhiteList[@]}; do - echo "Checking ${romsPath}${romfolder}/" - files=(`find "${romsPath}${romfolder}/" -type f -iname "*.gcm" -o -type f -iname "*.iso"`) + for romfolder in "${chdfolderWhiteList[@]}"; do + echo "Checking ${romsPath}/${romfolder}/" + mapfile -t files < <(find "${romsPath}/${romfolder}/" -type f -iname "*.gdi" -o -type f -iname "*.cue" -o -type f -iname "*.iso") if [ ${#files[@]} -gt 0 ]; then echo "found in $romfolder" searchFolderList+=("$romfolder") fi done - + if [[ -f "/var/lib/flatpak/app/org.DolphinEmu.dolphin-emu/current/active/files/bin/dolphin-tool" ]]; then #ensure tools are in place + for romfolder in "${rvzfolderWhiteList[@]}"; do + echo "Checking ${romsPath}/${romfolder}/" + mapfile -t files < <(find "${romsPath}/${romfolder}/" -type f -iname "*.gcm" -o -type f -iname "*.iso") + if [ ${#files[@]} -gt 0 ]; then + echo "found in $romfolder" + searchFolderList+=("$romfolder") + fi + done + fi + if (( ${#searchFolderList[@]} == 0 )); then echo "No eligible files found." - text="`printf "No suitable roms were found for conversion.\n\nPlease check if you have any cue / gdi / iso files for compatible systems."`" + text="$(printf "No suitable roms were found for conversion.\n\nPlease check if you have any cue / gdi / iso files for compatible systems.")" zenity --error \ --title="EmuDeck" \ --width=250 \ @@ -68,23 +69,23 @@ if [ $ans -eq 0 ]; then declare -i height=(${#searchFolderList[@]}*100) - selectColumnStr="RomFolder " + selectColumnStr="RomFolder " for (( i=1; i<=${#searchFolderList[@]}; i++ )); do selectColumnStr+="$i ${searchFolderList[$i-1]} " ; done - text="`printf "What folders do you want to convert?"`" + text="$(printf "What folders do you want to convert?")" folderstoconvert=$(zenity --list \ --title="EmuDeck" \ - --height=$height \ + --height="$height" \ --width=250 \ --ok-label="OK" \ --cancel-label="Exit" \ --text="${text}" \ --checklist \ --column="" \ - --column=${selectColumnStr}) + --column=${selectColumnStr}) #goddamnit shellcheck broke this. array! do not quote. echo "User selected $folderstoconvert" 2>/dev/null - + IFS="|" read -r -a romfolders <<< "$folderstoconvert" - + #query user about FileTypes? maybe they only want to convert bin/cue? Iso? Gdi? #check list here? @@ -98,25 +99,65 @@ if [ $ans -eq 0 ]; then #CHD - for romfolder in ${romfolders[@]}; do + for romfolder in "${romfolders[@]}"; do if [[ " ${chdfolderWhiteList[*]} " =~ " ${romfolder} " ]]; then - find "$romsPath$romfolder" -type f -iname "*.cue" | while read f; do echo "Converting: $f"; chdman5 createcd -i "$f" -o "${f%.*}.chd" && rm -rf "$f" && rm -rf "${f%.*}.bin"; done; - find "$romsPath$romfolder" -type f -iname "*.gdi" | while read f; do echo "Converting: $f"; chdman5 createcd -i "$f" -o "${f%.*}.chd" && rm -rf "$f"; done; #going to need work - find "$romsPath$romfolder" -type f -iname "*.iso" | while read f; do echo "Converting: $f"; chdman5 createcd -i "$f" -o "${f%.*}.chd" && rm -rf "$f"; done; + + find "$romsPath/$romfolder" -type f -iname "*.gdi" | while read -r f + do + echo "Converting: $f" + CUEDIR="$(dirname "${f}")" + chdman5 createcd -i "$f" -o "${f%.*}.chd" && successful="true" + if [[ $successful == "true" ]]; then + echo "successfully created ${f%.*}.chd" + find "${CUEDIR}" -maxdepth 1 -type f | while read -r b + do + fileName="$(basename "${b}")" + found=$(grep "${fileName}" "${f}") + if [[ ! $found = '' ]]; then + echo "Deleting ${b}" + rm "${b}" + fi + done + rm "${f}" + else + echo "Conversion of ${f} failed." + fi + + done + find "$romsPath/$romfolder" -type f -iname "*.cue" | while read -r f + do + echo "Converting: $f" + CUEDIR="$(dirname "${f}")" + chdman5 createcd -i "$f" -o "${f%.*}.chd" && successful="true" + if [[ $successful == "true" ]]; then + echo "successfully created ${f%.*}.chd" + find "${CUEDIR}" -maxdepth 1 -type f | while read -r b + do + fileName="$(basename "${b}")" + found=$(grep "${fileName}" "${f}") + if [[ ! $found = '' ]]; then + echo "Deleting ${b}" + rm "${b}" + fi + done + rm "${f}" + else + echo "Conversion of ${f} failed." + fi + + done + find "$romsPath/$romfolder" -type f -iname "*.iso" | while read -r f; do echo "Converting: $f"; chdman5 createcd -i "$f" -o "${f%.*}.chd" && rm -rf "$f"; done; fi done #rvz - if [[ -f "${toolsPath}proton-launch.sh" && -f "${chdPath}DolphinTool.exe" ]]; then #ensure tools are in place - for romfolder in ${romfolders[@]}; do - if [[ " ${rvzfolderWhiteList[*]} " =~ " ${romfolder} " ]]; then - find "$romsPath$romfolder" -type f -iname "*.iso" | while read f; do echo "Converting: $f"; ${toolsPath}proton-launch.sh ${chdPath}DolphinTool.exe convert -f rvz -b 131072 -c zstd -l 5 -i "z:$f" -o "z:${f%.*}.rvz" && rm -rf "$f"; done; - find "$romsPath$romfolder" -type f -iname "*.gcm" | while read f; do echo "Converting: $f"; ${toolsPath}proton-launch.sh ${chdPath}DolphinTool.exe convert -f rvz -b 131072 -c zstd -l 5 -i "z:$f" -o "z:${f%.*}.rvz" && rm -rf "$f"; done; - fi - done - else - echo "missing tools" - fi + + for romfolder in "${romfolders[@]}"; do + if [[ " ${rvzfolderWhiteList[*]} " =~ " ${romfolder} " ]]; then + find "$romsPath/$romfolder" -type f -iname "*.gcm" -o -type f -iname "*.iso" | while read -r f; do echo "Converting: $f"; /var/lib/flatpak/app/org.DolphinEmu.dolphin-emu/current/active/files/bin/dolphin-tool convert -f rvz -b 131072 -c zstd -l 5 -i "$f" -o "${f%.*}.rvz" && rm -rf "$f"; done; + fi + done + #cso # @@ -124,7 +165,7 @@ else exit fi -text="`printf "Done!\n\n If you use Steam Rom Manager to catalog your games you will need to open it now to update your games"`" +text="$(printf "Done!\n\n If you use Steam Rom Manager to catalog your games you will need to open it now to update your games")" zenity --question \ --title="EmuDeck" \ --width=450 \ @@ -133,9 +174,8 @@ zenity --question \ --text="${text}" 2>/dev/null ans=$? if [ $ans -eq 0 ]; then - cd ~/Desktop/ echo "user launched SRM" - ./Steam-ROM-Manager.AppImage + "${toolsPath}/srm/Steam-ROM-Manager.AppImage" exit else exit diff --git a/tools/flatpakupdate/flatpakupdate.sh b/tools/flatpakupdate/flatpakupdate.sh new file mode 100644 index 00000000..d27fef53 --- /dev/null +++ b/tools/flatpakupdate/flatpakupdate.sh @@ -0,0 +1,91 @@ +#!/bin/bash +source "$HOME/emudeck/backend/functions/all.sh" +emuTable=() +emuTable+=(TRUE "Multiple" "RetroArch") +emuTable+=(TRUE "Metroid Prime" "PrimeHack") +emuTable+=(TRUE "PS3" "RPCS3") +emuTable+=(TRUE "3DS" "Citra") +emuTable+=(TRUE "GC/Wii" "Dolphin") +emuTable+=(TRUE "PSX" "Duckstation") +emuTable+=(TRUE "PSP" "PPSSPP") +emuTable+=(TRUE "XBox" "Xemu") + + +#Emulator selector +text="$(printf "Which emulators do you want to update?")" +emusToInstall=$(zenity --list \ + --title="EmuDeck" \ + --height=500 \ + --width=250 \ + --ok-label="OK" \ + --cancel-label="Exit" \ + --text="${text}" \ + --checklist \ + --column="Select" \ + --column="System" \ + --column="Emulator" \ + --print-column=3 \ + "${emuTable[@]}" 2>/dev/null) +ans=$? + +if [ $ans -eq 0 ]; then + echo "User selected: $emusToInstall" + if [[ "$emusToInstall" == *"RetroArch"* ]]; then + doUpdateRA=true + fi + if [[ "$emusToInstall" == *"PrimeHack"* ]]; then + doUpdatePrimeHacks=true + fi + if [[ "$emusToInstall" == *"RPCS3"* ]]; then + doUpdateRPCS3=true + fi + if [[ "$emusToInstall" == *"Citra"* ]]; then + doUpdateCitra=true + fi + if [[ "$emusToInstall" == *"Dolphin"* ]]; then + doUpdateDolphin=true + fi + if [[ "$emusToInstall" == *"Duckstation"* ]]; then + doUpdateDuck=true + fi + if [[ "$emusToInstall" == *"PPSSPP"* ]]; then + doUpdatePPSSPP=true + fi + if [[ "$emusToInstall" == *"Xemu"* ]]; then + doUpdateXemu=true + fi + #if [[ "$emusToInstall" == *"MelonDS"* ]]; then + # doUpdateMelon=true + #fi + + +else + exit +fi + + +if [ $doUpdatePrimeHacks == "true" ]; then + updateEmuFP "PrimeHack" "io.github.shiiion.primehack" +fi +if [ $doUpdateRPCS3 == "true" ]; then + updateEmuFP "RPCS3" "net.rpcs3.RPCS3" +fi +if [ $doUpdateCitra == "true" ]; then + updateEmuFP "Citra" "org.citra_emu.citra" +fi +if [ $doUpdateDolphin == "true" ]; then + updateEmuFP "dolphin-emu" "org.DolphinEmu.dolphin-emu" +fi +if [ $doUpdateDuck == "true" ]; then + updateEmuFP "DuckStation" "org.duckstation.DuckStation" +fi +if [ $doUpdateRA == "true" ]; then + updateEmuFP "RetroArch" "org.libretro.RetroArch" +fi +if [ $doUpdatePPSSPP == "true" ]; then + updateEmuFP "PPSSPP" "org.ppsspp.PPSSPP" +fi + +if [ $doUpdateXemu == "true" ]; then + updateEmuFP "Xemu-Emu" "app.xemu.xemu" +fi \ No newline at end of file diff --git a/tools/launchers/mame.sh b/tools/launchers/mame.sh new file mode 100644 index 00000000..1aa1109f --- /dev/null +++ b/tools/launchers/mame.sh @@ -0,0 +1,2 @@ +#!/bin/sh +/usr/bin/flatpak run org.mamedev.MAME \ No newline at end of file diff --git a/tools/launchers/pcsx2-qt.sh b/tools/launchers/pcsx2-qt.sh new file mode 100755 index 00000000..08e6dd8a --- /dev/null +++ b/tools/launchers/pcsx2-qt.sh @@ -0,0 +1,24 @@ +#!/bin/sh +emuName="pcsx2-Qt" #parameterize me +emufolder="$HOME/Applications" # has to be applications for ES-DE to find it + +#find full path to emu executable +exe=$(find $emufolder -iname "${emuName}*.AppImage" | sort -n | cut -d' ' -f 2- | tail -n 1 2>/dev/null) + +#if appimage doesn't exist fall back to flatpak. +if [[ $exe == '' ]]; then + #flatpak + flatpakApp=$(flatpak list --app --columns=application | grep $emuName) + exe="/usr/bin/flatpak run "$flatpakApp +else +#make sure that file is executable + chmod +x $exe +fi +#run the executable with the params. +#Fix first ' +param="${@}" +substituteWith='"' +param=${param/\'/"$substituteWith"} +#Fix last ' on command +param=$(echo "$param" | sed 's/.$/"/') +eval "${exe} ${param}" diff --git a/tools/launchers/ryujinx.sh b/tools/launchers/ryujinx.sh new file mode 100755 index 00000000..0cc9a8f7 --- /dev/null +++ b/tools/launchers/ryujinx.sh @@ -0,0 +1,24 @@ +#!/bin/sh +emuName="Ryujinx" #parameterize me +emufolder="$HOME/Applications/publish" # has to be applications for ES-DE to find it + +#find full path to emu executable +exe=$(find $emufolder -iname "${emuName}" | sort -n | cut -d' ' -f 2- | tail -n 1 2>/dev/null) + +#if appimage doesn't exist fall back to flatpak. +if [[ $exe == '' ]]; then + #flatpak + flatpakApp=$(flatpak list --app --columns=application | grep $emuName) + exe="/usr/bin/flatpak run "$flatpakApp +else +#make sure that file is executable + chmod +x $exe +fi +#run the executable with the params. +#Fix first ' +param="${@}" +substituteWith='"' +param=${param/\'/"$substituteWith"} +#Fix last ' on command +param=$(echo "$param" | sed 's/.$/"/') +eval "${exe} ${param}" diff --git a/tools/passwd.desktop b/tools/passwd.desktop new file mode 100644 index 00000000..629db5db --- /dev/null +++ b/tools/passwd.desktop @@ -0,0 +1,8 @@ +#!/usr/bin/env xdg-open +[Desktop Entry] +Name=Set passwd +Exec=echo "Type your password. You will not see any text entry in the terminal while you type. This is normal." && passwd && exit +Icon=steamdeck-gaming-return +Terminal=true +Type=Application +StartupNotify=false \ No newline at end of file diff --git a/tools/proton-launch.sh b/tools/proton-launch.sh index 75d1ebdf..4454fad9 100644 --- a/tools/proton-launch.sh +++ b/tools/proton-launch.sh @@ -43,10 +43,11 @@ set_env () { if ! [ -d ${STEAM_COMPAT_DATA_PATH} ]; then install -d ${STEAM_COMPAT_DATA_PATH} || exit 1 fi - - echo "STEAM_COMPAT_DATA_PATH: ${STEAM_COMPAT_DATA_PATH}" >> "${LOGFILE}" - echo "SteamAppId: ${SteamAppId}" >> "${LOGFILE}" - echo "STEAM_COMPAT_CLIENT_INSTALL_PATH: ${STEAM_COMPAT_CLIENT_INSTALL_PATH}" >> "${LOGFILE}" + { + echo "STEAM_COMPAT_DATA_PATH: ${STEAM_COMPAT_DATA_PATH}" + echo "SteamAppId: ${SteamAppId}" + echo "STEAM_COMPAT_CLIENT_INSTALL_PATH: ${STEAM_COMPAT_CLIENT_INSTALL_PATH}" + } >> "${LOGFILE}" } # Main Start @@ -78,16 +79,29 @@ main () { if [ -f "${STEAMPATH}/steamapps/common/Proton ${PROTONVER}/proton" ]; then PROTON="${STEAMPATH}/steamapps/common/Proton ${PROTONVER}/proton" COMPATDATA="${STEAMPATH}/steamapps/compatdata" - echo "Proton Version: ${PROTONVER}" >> "${LOGFILE}" - echo "Proton Path: ${PROTON}" >> "${LOGFILE}" - echo "COMPATDATA: ${COMPATDATA}" >> "${LOGFILE}" + { + echo "Proton Version: ${PROTONVER}" + echo "Proton Path: ${PROTON}" + echo "COMPATDATA: ${COMPATDATA}" + } >> "${LOGFILE}" + # Check for Custom Proton paths + elif [ -f "${STEAMPATH}/compatibilitytools.d/${PROTONVER}/proton" ]; then + PROTON="${STEAMPATH}/compatibilitytools.d/${PROTONVER}/proton" + COMPATDATA="${STEAMPATH}/steamapps/compatdata" + { + echo "Proton Version: ${PROTONVER}" + echo "Proton Path: ${PROTON}" + echo "COMPATDATA: ${COMPATDATA}" + } >> "${LOGFILE}" # If we can't find the default path, try the alternate one - loop here through all Steamapps? - elif [ ! -z ${ALTSTEAM+x} ] && [ -f "${ALTSTEAM}/common/Proton ${PROTONVER}/proton" ]; then + elif [ -n "${ALTSTEAM+x}" ] && [ -f "${ALTSTEAM}/common/Proton ${PROTONVER}/proton" ]; then PROTON="${ALTSTEAM}/common/Proton ${PROTONVER}/proton" COMPATDATA="${ALTSTEAM}/compatdata" - echo "Proton Version: ${PROTONVER}" >> "${LOGFILE}" - echo "Proton Path: ${PROTON}" >> "${LOGFILE}" - echo "COMPATDATA: ${COMPATDATA}" >> "${LOGFILE}" + { + echo "Proton Version: ${PROTONVER}" + echo "Proton Path: ${PROTON}" + echo "COMPATDATA: ${COMPATDATA}" + } >> "${LOGFILE}" # Couldn't find either path else echo "Proton version is not installed." >> "${LOGFILE}" @@ -159,7 +173,7 @@ main () { set_env # Start application with Proton - echo "Running python ${PROTON} waitforexitandrun ${@}" >> "${LOGFILE}" # Send command to log just in case + echo "Running python ${PROTON} waitforexitandrun $*" >> "${LOGFILE}" # Send command to log just in case python "${PROTON}" waitforexitandrun "${@}" } diff --git a/uninstall.sh b/uninstall.sh index a07c7313..f84efdd1 100644 --- a/uninstall.sh +++ b/uninstall.sh @@ -16,6 +16,7 @@ doUninstallDolphin=false doUninstallPCSX2=false doUninstallRPCS3=false doUninstallYuzu=false +doUninstallRyujinx=false doUninstallCitra=false doUninstallDuck=false doUninstallCemu=false @@ -66,10 +67,11 @@ if [ "$doUninstall" == true ]; then 7 "Duckstation" \ 8 "PPSSPP" \ 9 "Yuzu" \ - 10 "Xemu" \ - 11 "Cemu" \ - 12 "SteamRomManager" \ - 13 "EmulationStationDE") + 10 "Ryujinx" \ + 11 "Xemu" \ + 12 "Cemu" \ + 13 "SteamRomManager" \ + 14 "EmulationStationDE") ans=$? if [ $ans -eq 0 ]; then @@ -100,6 +102,9 @@ if [ "$doUninstall" == true ]; then if [[ "$emusToUninstall" == *"Yuzu"* ]]; then doUninstallYuzu=true fi + if [[ "$emusToUninstall" == *"Ryujinx"* ]]; then + doUninstallRyujinx=true + fi if [[ "$emusToUninstall" == *"Cemu"* ]]; then doUninstallCemu=true fi @@ -157,6 +162,10 @@ if [ "$doUninstall" == true ]; then flatpak uninstall org.yuzu_emu.yuzu --system -y rm -rf ~/.var/app/org.yuzu_emu.yuzu &>> /dev/null fi + if [[ "$doUninstallRyujinx" == true ]]; then + rm -rf ~/.config/Ryujinx &>> /dev/null + rm -rf ~/Applications/publish &>> /dev/null + fi if [[ "$doUninstallCemu" == true ]]; then #flatpak uninstall info.cemu.Cemu #rm -f ~/.var/app/info.cemu.Cemu &>> /dev/null diff --git a/version.md b/version.md index c6b577f0..5543a76e 100644 --- a/version.md +++ b/version.md @@ -1 +1 @@ -0.17.5 \ No newline at end of file +0.17.6