diff --git a/.gitignore b/.gitignore
index d2569309..05fda91c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -21,6 +21,7 @@ rd-submodules/es-de/patches-tmp*
.local/
buildid
*.bak
+incconfigs/
# Python #
##########
diff --git a/automation_tools/flatpak_build_only_persistent.sh b/automation_tools/flatpak_build_only_persistent.sh
index 4121cf9f..d9dc99ef 100755
--- a/automation_tools/flatpak_build_only_persistent.sh
+++ b/automation_tools/flatpak_build_only_persistent.sh
@@ -19,6 +19,8 @@ mkdir -vp ${$BUILD_DIR}/"$FOLDER"
flatpak-builder --user --force-clean \
--install-deps-from=flathub \
--install-deps-from=flathub-beta \
+--keep-build-dirs \
+--rebuild-on-sdk-change \
--repo="${BUILD_DIR}/.local" \
--disable-download \
"${BUILD_DIR}/${FOLDER}" \
diff --git a/developer_toolbox/inject_framework.sh b/developer_toolbox/inject_framework.sh
index 8f6dd779..6952cf09 100755
--- a/developer_toolbox/inject_framework.sh
+++ b/developer_toolbox/inject_framework.sh
@@ -23,7 +23,7 @@ fi
sudo cp -vfr "retrodeck.sh" "$app/bin/"
sudo cp -vfr "functions/"** "$app/libexec/"
-sudo cp -vfr "tools" "$app/tools"
+sudo cp -vfr "tools" "$app"
sudo cp -vfr "emu-configs/"** "$app/retrodeck/emu-configs/"
sudo cp -vfr "es-configs/es_find_rules.xml" "$app/share/es-de/resources/systems/linux/"
sudo cp -vfr "es-configs/es_systems.xml" "$app/share/es-de/resources/systems/linux/"
diff --git a/emu-configs/cemu/settings.xml b/emu-configs/cemu/settings.xml
index af643efb..62a1e269 100644
--- a/emu-configs/cemu/settings.xml
+++ b/emu-configs/cemu/settings.xml
@@ -101,7 +101,7 @@
2147483649
false
- 0
+ 1
1
@@ -110,4 +110,4 @@
-
\ No newline at end of file
+
diff --git a/emu-configs/citra/qt-config.ini b/emu-configs/citra/qt-config.ini
new file mode 100644
index 00000000..f6a1dccd
--- /dev/null
+++ b/emu-configs/citra/qt-config.ini
@@ -0,0 +1,570 @@
+[Audio]
+audio_emulation=0
+audio_emulation\default=true
+enable_audio_stretching=true
+enable_audio_stretching\default=true
+input_device=auto
+input_device\default=true
+input_type=0
+input_type\default=true
+mic_input_device=Default
+mic_input_device\default=true
+mic_input_type=0
+mic_input_type\default=true
+output_device=auto
+output_device\default=true
+output_engine=auto
+output_engine\default=true
+output_type=0
+output_type\default=true
+volume=1
+volume\default=true
+
+[Camera]
+camera_inner_config=
+camera_inner_config\default=true
+camera_inner_flip=0
+camera_inner_flip\default=true
+camera_inner_name=blank
+camera_inner_name\default=true
+camera_outer_left_config=
+camera_outer_left_config\default=true
+camera_outer_left_flip=0
+camera_outer_left_flip\default=true
+camera_outer_left_name=blank
+camera_outer_left_name\default=true
+camera_outer_right_config=
+camera_outer_right_config\default=true
+camera_outer_right_flip=0
+camera_outer_right_flip\default=true
+camera_outer_right_name=blank
+camera_outer_right_name\default=true
+
+[Controls]
+profile=0
+profile\default=true
+profiles\1\button_a="button:0,engine:sdl,guid:030079f6de280000ff11000001000000,port:0"
+profiles\1\button_a\default=false
+profiles\1\button_b="button:1,engine:sdl,guid:030079f6de280000ff11000001000000,port:0"
+profiles\1\button_b\default=false
+profiles\1\button_debug="code:79,engine:keyboard"
+profiles\1\button_debug\default=true
+profiles\1\button_down="direction:down,engine:sdl,guid:030079f6de280000ff11000001000000,hat:0,port:0"
+profiles\1\button_down\default=false
+profiles\1\button_gpio14="code:80,engine:keyboard"
+profiles\1\button_gpio14\default=true
+profiles\1\button_home="code:66,engine:keyboard"
+profiles\1\button_home\default=true
+profiles\1\button_l="axis:2,direction:+,engine:sdl,guid:030079f6de280000ff11000001000000,port:0,threshold:0.5"
+profiles\1\button_l\default=false
+profiles\1\button_left="direction:left,engine:sdl,guid:030079f6de280000ff11000001000000,hat:0,port:0"
+profiles\1\button_left\default=false
+profiles\1\button_power="code:86,engine:keyboard"
+profiles\1\button_power\default=true
+profiles\1\button_r="axis:5,direction:+,engine:sdl,guid:030079f6de280000ff11000001000000,port:0,threshold:0.5"
+profiles\1\button_r\default=false
+profiles\1\button_right="direction:right,engine:sdl,guid:030079f6de280000ff11000001000000,hat:0,port:0"
+profiles\1\button_right\default=false
+profiles\1\button_select="button:6,engine:sdl,guid:030079f6de280000ff11000001000000,port:0"
+profiles\1\button_select\default=false
+profiles\1\button_start="button:7,engine:sdl,guid:030079f6de280000ff11000001000000,port:0"
+profiles\1\button_start\default=false
+profiles\1\button_up="direction:up,engine:sdl,guid:030079f6de280000ff11000001000000,hat:0,port:0"
+profiles\1\button_up\default=false
+profiles\1\button_x="button:2,engine:sdl,guid:030079f6de280000ff11000001000000,port:0"
+profiles\1\button_x\default=false
+profiles\1\button_y="button:3,engine:sdl,guid:030079f6de280000ff11000001000000,port:0"
+profiles\1\button_y\default=false
+profiles\1\button_zl="button:4,engine:sdl,guid:030079f6de280000ff11000001000000,port:0"
+profiles\1\button_zl\default=false
+profiles\1\button_zr="button:5,engine:sdl,guid:030079f6de280000ff11000001000000,port:0"
+profiles\1\button_zr\default=false
+profiles\1\c_stick="axis_x:3,axis_y:4,deadzone:0.100000,engine:sdl,guid:030079f6de280000ff11000001000000,port:0"
+profiles\1\c_stick\default=false
+profiles\1\circle_pad="axis_x:0,axis_y:1,deadzone:0.100000,engine:sdl,guid:030079f6de280000ff11000001000000,port:0"
+profiles\1\circle_pad\default=false
+profiles\1\motion_device=engine:cemuhookudp
+profiles\1\motion_device\default=false
+profiles\1\name=default
+profiles\1\name\default=true
+profiles\1\touch_device=engine:emu_window
+profiles\1\touch_device\default=true
+profiles\1\touch_from_button_map=0
+profiles\1\touch_from_button_map\default=true
+profiles\1\udp_input_address=127.0.0.1
+profiles\1\udp_input_address\default=true
+profiles\1\udp_input_port=26760
+profiles\1\udp_input_port\default=true
+profiles\1\udp_pad_index=0
+profiles\1\udp_pad_index\default=true
+profiles\1\use_touch_from_button=false
+profiles\1\use_touch_from_button\default=true
+profiles\size=1
+touch_from_button_maps\1\entries\size=0
+touch_from_button_maps\1\name=default
+touch_from_button_maps\1\name\default=true
+touch_from_button_maps\size=1
+
+[Core]
+cpu_clock_percentage=100
+cpu_clock_percentage\default=true
+use_cpu_jit=true
+use_cpu_jit\default=true
+
+[Data%20Storage]
+nand_directory=RETRODECKHOMEDIR/saves/n3ds/citra/nand/
+nand_directory\default=false
+sdmc_directory=RETRODECKHOMEDIR/saves/n3ds/citra/sdmc/
+sdmc_directory\default=false
+use_custom_storage=true
+use_custom_storage\default=false
+use_virtual_sd=true
+use_virtual_sd\default=true
+
+[Debugging]
+LLE\AC=false
+LLE\AC\default=true
+LLE\ACT=false
+LLE\ACT\default=true
+LLE\AM=false
+LLE\AM\default=true
+LLE\BOSS=false
+LLE\BOSS\default=true
+LLE\CAM=false
+LLE\CAM\default=true
+LLE\CDC=false
+LLE\CDC\default=true
+LLE\CECD=false
+LLE\CECD\default=true
+LLE\CFG=false
+LLE\CFG\default=true
+LLE\CSND=false
+LLE\CSND\default=true
+LLE\DLP=false
+LLE\DLP\default=true
+LLE\DSP=false
+LLE\DSP\default=true
+LLE\ERR=false
+LLE\ERR\default=true
+LLE\FRD=false
+LLE\FRD\default=true
+LLE\FS=false
+LLE\FS\default=true
+LLE\GPIO=false
+LLE\GPIO\default=true
+LLE\GSP=false
+LLE\GSP\default=true
+LLE\HID=false
+LLE\HID\default=true
+LLE\HTTP=false
+LLE\HTTP\default=true
+LLE\I2C=false
+LLE\I2C\default=true
+LLE\IR=false
+LLE\IR\default=true
+LLE\LDR=false
+LLE\LDR\default=true
+LLE\MCU=false
+LLE\MCU\default=true
+LLE\MIC=false
+LLE\MIC\default=true
+LLE\MP=false
+LLE\MP\default=true
+LLE\MVD=false
+LLE\MVD\default=true
+LLE\NDM=false
+LLE\NDM\default=true
+LLE\NEWS=false
+LLE\NEWS\default=true
+LLE\NFC=false
+LLE\NFC\default=true
+LLE\NIM=false
+LLE\NIM\default=true
+LLE\NS=false
+LLE\NS\default=true
+LLE\NWM=false
+LLE\NWM\default=true
+LLE\PDN=false
+LLE\PDN\default=true
+LLE\PLGLDR=false
+LLE\PLGLDR\default=true
+LLE\PM=false
+LLE\PM\default=true
+LLE\PS=false
+LLE\PS\default=true
+LLE\PTM=false
+LLE\PTM\default=true
+LLE\PXI=false
+LLE\PXI\default=true
+LLE\QTM=false
+LLE\QTM\default=true
+LLE\SOC=false
+LLE\SOC\default=true
+LLE\SPI=false
+LLE\SPI\default=true
+LLE\SSL=false
+LLE\SSL\default=true
+gdbstub_port=24689
+gdbstub_port\default=true
+record_frame_times=false
+renderer_debug=false
+renderer_debug\default=true
+use_gdbstub=false
+use_gdbstub\default=true
+
+[Layout]
+anaglyph_shader_name=dubois (builtin)
+anaglyph_shader_name\default=true
+custom_bottom_bottom=480
+custom_bottom_bottom\default=true
+custom_bottom_left=40
+custom_bottom_left\default=true
+custom_bottom_right=360
+custom_bottom_right\default=true
+custom_bottom_top=240
+custom_bottom_top\default=true
+custom_layout=false
+custom_layout\default=true
+custom_second_layer_opacity=100
+custom_second_layer_opacity\default=true
+custom_top_bottom=240
+custom_top_bottom\default=true
+custom_top_left=0
+custom_top_left\default=true
+custom_top_right=400
+custom_top_right\default=true
+custom_top_top=0
+custom_top_top\default=true
+factor_3d=0
+factor_3d\default=true
+filter_mode=true
+filter_mode\default=true
+large_screen_proportion=4
+large_screen_proportion\default=true
+layout_option=4
+layout_option\default=false
+mono_render_option=0
+mono_render_option\default=true
+pp_shader_name=none (builtin)
+pp_shader_name\default=true
+render_3d=0
+render_3d\default=true
+swap_screen=true
+swap_screen\default=false
+upright_screen=false
+upright_screen\default=true
+
+[Miscellaneous]
+log_filter=*:Info
+log_filter\default=true
+
+[Renderer]
+async_presentation=true
+async_presentation\default=true
+async_shader_compilation=false
+async_shader_compilation\default=true
+bg_blue=0
+bg_blue\default=true
+bg_green=0
+bg_green\default=true
+bg_red=0
+bg_red\default=true
+frame_limit=100
+frame_limit\default=true
+frame_limit_alternate=500
+graphics_api=1
+graphics_api\default=true
+physical_device=0
+physical_device\default=true
+resolution_factor=2
+resolution_factor\default=false
+shaders_accurate_mul=true
+shaders_accurate_mul\default=true
+spirv_shader_gen=true
+spirv_shader_gen\default=true
+texture_filter=0
+texture_filter\default=true
+texture_filter_name=Linear (Default)
+texture_filter_name\default=false
+use_disk_shader_cache=true
+use_disk_shader_cache\default=true
+use_hw_renderer=true
+use_hw_renderer\default=true
+use_hw_shader=true
+use_hw_shader\default=true
+use_shader_jit=true
+use_shader_jit\default=true
+use_vsync_new=true
+use_vsync_new\default=true
+
+[System]
+allow_plugin_loader=true
+allow_plugin_loader\default=true
+init_clock=0
+init_clock\default=true
+init_time=@Variant(\0\0\0\x84\0\0\0\0\x38m5\xbd)
+init_time\default=true
+init_time_offset=@Variant(\0\0\0\x81\0\0\0\0\0\0\0\0)
+init_time_offset\default=true
+is_new_3ds=true
+is_new_3ds\default=true
+plugin_loader=false
+plugin_loader\default=true
+region_value=-1
+region_value\default=true
+
+[UI]
+GameList\hideNoIcon=false
+GameList\hideNoIcon\default=true
+GameList\iconSize=2
+GameList\iconSize\default=true
+GameList\row1=2
+GameList\row1\default=true
+GameList\row2=0
+GameList\row2\default=true
+GameList\show_compat_column=true
+GameList\show_compat_column\default=true
+GameList\show_region_column=true
+GameList\show_region_column\default=true
+GameList\show_size_column=true
+GameList\show_size_column\default=true
+GameList\show_type_column=true
+GameList\show_type_column\default=true
+GameList\singleLineMode=false
+GameList\singleLineMode\default=true
+Multiplayer\game_id=0
+Multiplayer\game_id\default=true
+Multiplayer\host_type=0
+Multiplayer\host_type\default=true
+Multiplayer\ip=
+Multiplayer\ip\default=true
+Multiplayer\ip_ban_list\size=0
+Multiplayer\max_player=8
+Multiplayer\max_player\default=true
+Multiplayer\nickname=
+Multiplayer\nickname\default=true
+Multiplayer\port=24872
+Multiplayer\port\default=true
+Multiplayer\room_description=
+Multiplayer\room_description\default=true
+Multiplayer\room_name=
+Multiplayer\room_name\default=true
+Multiplayer\room_nickname=
+Multiplayer\room_nickname\default=true
+Multiplayer\room_port=24872
+Multiplayer\room_port\default=true
+Multiplayer\username_ban_list\size=0
+Paths\gamedirs\1\deep_scan=false
+Paths\gamedirs\1\deep_scan\default=true
+Paths\gamedirs\1\expanded=true
+Paths\gamedirs\1\expanded\default=true
+Paths\gamedirs\1\path=INSTALLED
+Paths\gamedirs\2\deep_scan=false
+Paths\gamedirs\2\deep_scan\default=true
+Paths\gamedirs\2\expanded=true
+Paths\gamedirs\2\expanded\default=true
+Paths\gamedirs\2\path=SYSTEM
+Paths\gamedirs\3\deep_scan=false
+Paths\gamedirs\3\deep_scan\default=true
+Paths\gamedirs\3\expanded=true
+Paths\gamedirs\3\expanded\default=true
+Paths\gamedirs\3\path=RETRODECKHOMEDIR/roms/n3ds
+Paths\gamedirs\size=3
+Paths\language=en
+Paths\language\default=false
+Paths\moviePlaybackPath=
+Paths\movieRecordPath=
+Paths\recentFiles=@Invalid()
+Paths\romsPath=
+Paths\screenshotPath=RETRODECKHOMEDIR/screenshots
+Paths\screenshotPath\default=false
+Paths\symbolsPath=
+Paths\videoDumpingPath=
+Shortcuts\Main%20Window\Advance%20Frame\Context=1
+Shortcuts\Main%20Window\Advance%20Frame\Context\default=false
+Shortcuts\Main%20Window\Advance%20Frame\KeySeq=
+Shortcuts\Main%20Window\Advance%20Frame\KeySeq\default=true
+Shortcuts\Main%20Window\Capture%20Screenshot\Context=3
+Shortcuts\Main%20Window\Capture%20Screenshot\Context\default=true
+Shortcuts\Main%20Window\Capture%20Screenshot\KeySeq=Ctrl+X
+Shortcuts\Main%20Window\Capture%20Screenshot\KeySeq\default=false
+Shortcuts\Main%20Window\Continue\Pause%20Emulation\Context=1
+Shortcuts\Main%20Window\Continue\Pause%20Emulation\Context\default=true
+Shortcuts\Main%20Window\Continue\Pause%20Emulation\KeySeq=Ctrl+P
+Shortcuts\Main%20Window\Continue\Pause%20Emulation\KeySeq\default=false
+Shortcuts\Main%20Window\Decrease%203D%20Factor\Context=1
+Shortcuts\Main%20Window\Decrease%203D%20Factor\Context\default=false
+Shortcuts\Main%20Window\Decrease%203D%20Factor\KeySeq=
+Shortcuts\Main%20Window\Decrease%203D%20Factor\KeySeq\default=false
+Shortcuts\Main%20Window\Decrease%20Speed%20Limit\Context=2
+Shortcuts\Main%20Window\Decrease%20Speed%20Limit\Context\default=true
+Shortcuts\Main%20Window\Decrease%20Speed%20Limit\KeySeq=Ctrl+2
+Shortcuts\Main%20Window\Decrease%20Speed%20Limit\KeySeq\default=false
+Shortcuts\Main%20Window\Exit%20Citra\Context=1
+Shortcuts\Main%20Window\Exit%20Citra\Context\default=true
+Shortcuts\Main%20Window\Exit%20Citra\KeySeq=Ctrl+Q
+Shortcuts\Main%20Window\Exit%20Citra\KeySeq\default=true
+Shortcuts\Main%20Window\Exit%20Fullscreen\Context=1
+Shortcuts\Main%20Window\Exit%20Fullscreen\Context\default=true
+Shortcuts\Main%20Window\Exit%20Fullscreen\KeySeq=Ctrl+O
+Shortcuts\Main%20Window\Exit%20Fullscreen\KeySeq\default=false
+Shortcuts\Main%20Window\Fullscreen\Context=1
+Shortcuts\Main%20Window\Fullscreen\Context\default=true
+Shortcuts\Main%20Window\Fullscreen\KeySeq=Ctrl+Return
+Shortcuts\Main%20Window\Fullscreen\KeySeq\default=false
+Shortcuts\Main%20Window\Increase%203D%20Factor\Context=1
+Shortcuts\Main%20Window\Increase%203D%20Factor\Context\default=false
+Shortcuts\Main%20Window\Increase%203D%20Factor\KeySeq=
+Shortcuts\Main%20Window\Increase%203D%20Factor\KeySeq\default=false
+Shortcuts\Main%20Window\Increase%20Speed%20Limit\Context=2
+Shortcuts\Main%20Window\Increase%20Speed%20Limit\Context\default=true
+Shortcuts\Main%20Window\Increase%20Speed%20Limit\KeySeq=Ctrl+1
+Shortcuts\Main%20Window\Increase%20Speed%20Limit\KeySeq\default=false
+Shortcuts\Main%20Window\Load%20Amiibo\Context=3
+Shortcuts\Main%20Window\Load%20Amiibo\Context\default=true
+Shortcuts\Main%20Window\Load%20Amiibo\KeySeq=Alt+M
+Shortcuts\Main%20Window\Load%20Amiibo\KeySeq\default=false
+Shortcuts\Main%20Window\Load%20File\Context=1
+Shortcuts\Main%20Window\Load%20File\Context\default=false
+Shortcuts\Main%20Window\Load%20File\KeySeq=
+Shortcuts\Main%20Window\Load%20File\KeySeq\default=false
+Shortcuts\Main%20Window\Load%20from%20Newest%20Slot\Context=1
+Shortcuts\Main%20Window\Load%20from%20Newest%20Slot\Context\default=true
+Shortcuts\Main%20Window\Load%20from%20Newest%20Slot\KeySeq=Ctrl+A
+Shortcuts\Main%20Window\Load%20from%20Newest%20Slot\KeySeq\default=false
+Shortcuts\Main%20Window\Mute%20Audio\Context=1
+Shortcuts\Main%20Window\Mute%20Audio\Context\default=true
+Shortcuts\Main%20Window\Mute%20Audio\KeySeq=
+Shortcuts\Main%20Window\Mute%20Audio\KeySeq\default=false
+Shortcuts\Main%20Window\Remove%20Amiibo\Context=2
+Shortcuts\Main%20Window\Remove%20Amiibo\Context\default=true
+Shortcuts\Main%20Window\Remove%20Amiibo\KeySeq=Alt+N
+Shortcuts\Main%20Window\Remove%20Amiibo\KeySeq\default=false
+Shortcuts\Main%20Window\Restart%20Emulation\Context=1
+Shortcuts\Main%20Window\Restart%20Emulation\Context\default=true
+Shortcuts\Main%20Window\Restart%20Emulation\KeySeq=Ctrl+R
+Shortcuts\Main%20Window\Restart%20Emulation\KeySeq\default=false
+Shortcuts\Main%20Window\Rotate%20Screens%20Upright\Context=1
+Shortcuts\Main%20Window\Rotate%20Screens%20Upright\Context\default=true
+Shortcuts\Main%20Window\Rotate%20Screens%20Upright\KeySeq=
+Shortcuts\Main%20Window\Rotate%20Screens%20Upright\KeySeq\default=false
+Shortcuts\Main%20Window\Save%20to%20Oldest%20Slot\Context=1
+Shortcuts\Main%20Window\Save%20to%20Oldest%20Slot\Context\default=true
+Shortcuts\Main%20Window\Save%20to%20Oldest%20Slot\KeySeq=Ctrl+S
+Shortcuts\Main%20Window\Save%20to%20Oldest%20Slot\KeySeq\default=false
+Shortcuts\Main%20Window\Stop%20Emulation\Context=1
+Shortcuts\Main%20Window\Stop%20Emulation\Context\default=true
+Shortcuts\Main%20Window\Stop%20Emulation\KeySeq=
+Shortcuts\Main%20Window\Stop%20Emulation\KeySeq\default=false
+Shortcuts\Main%20Window\Swap%20Screens\Context=1
+Shortcuts\Main%20Window\Swap%20Screens\Context\default=true
+Shortcuts\Main%20Window\Swap%20Screens\KeySeq=Ctrl+Tab
+Shortcuts\Main%20Window\Swap%20Screens\KeySeq\default=false
+Shortcuts\Main%20Window\Toggle%203D\Context=1
+Shortcuts\Main%20Window\Toggle%203D\Context\default=false
+Shortcuts\Main%20Window\Toggle%203D\KeySeq=
+Shortcuts\Main%20Window\Toggle%203D\KeySeq\default=false
+Shortcuts\Main%20Window\Toggle%20Custom%20Textures\Context=2
+Shortcuts\Main%20Window\Toggle%20Custom%20Textures\Context\default=true
+Shortcuts\Main%20Window\Toggle%20Custom%20Textures\KeySeq=F7
+Shortcuts\Main%20Window\Toggle%20Custom%20Textures\KeySeq\default=false
+Shortcuts\Main%20Window\Toggle%20Filter%20Bar\Context=1
+Shortcuts\Main%20Window\Toggle%20Filter%20Bar\Context\default=true
+Shortcuts\Main%20Window\Toggle%20Filter%20Bar\KeySeq=
+Shortcuts\Main%20Window\Toggle%20Filter%20Bar\KeySeq\default=false
+Shortcuts\Main%20Window\Toggle%20Frame%20Advancing\Context=1
+Shortcuts\Main%20Window\Toggle%20Frame%20Advancing\Context\default=false
+Shortcuts\Main%20Window\Toggle%20Frame%20Advancing\KeySeq=
+Shortcuts\Main%20Window\Toggle%20Frame%20Advancing\KeySeq\default=false
+Shortcuts\Main%20Window\Toggle%20Per-Game%20Speed\Context=1
+Shortcuts\Main%20Window\Toggle%20Per-Game%20Speed\Context\default=true
+Shortcuts\Main%20Window\Toggle%20Per-Game%20Speed\KeySeq=
+Shortcuts\Main%20Window\Toggle%20Per-Game%20Speed\KeySeq\default=false
+Shortcuts\Main%20Window\Toggle%20Screen%20Layout\Context=1
+Shortcuts\Main%20Window\Toggle%20Screen%20Layout\Context\default=true
+Shortcuts\Main%20Window\Toggle%20Screen%20Layout\KeySeq=Ctrl+L
+Shortcuts\Main%20Window\Toggle%20Screen%20Layout\KeySeq\default=false
+Shortcuts\Main%20Window\Toggle%20Status%20Bar\Context=1
+Shortcuts\Main%20Window\Toggle%20Status%20Bar\Context\default=false
+Shortcuts\Main%20Window\Toggle%20Status%20Bar\KeySeq=Ctrl+S
+Shortcuts\Main%20Window\Toggle%20Status%20Bar\KeySeq\default=false
+Shortcuts\Main%20Window\Toggle%20Texture%20Dumping\Context=1
+Shortcuts\Main%20Window\Toggle%20Texture%20Dumping\Context\default=false
+Shortcuts\Main%20Window\Toggle%20Texture%20Dumping\KeySeq=
+Shortcuts\Main%20Window\Toggle%20Texture%20Dumping\KeySeq\default=false
+UILayout\gameListHeaderState=@ByteArray(\0\0\0\xff\0\0\0\0\0\0\0\x1\0\0\0\x1\0\0\0\x5\x1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\n\0\0\0\0\x5\x1\x1\0\x1\0\0\0\0\0\0\0\0\0\0\0\0\x64\xff\xff\xff\xff\0\0\0\x81\0\0\0\0\0\0\0\x5\0\0\x2\x80\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\x6T\0\0\0\x1\0\0\0\0\0\0\x3\xe8\0\0\0\0\x64\0\0\0\0)
+UILayout\geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\xd6\0\0\0\xb4\0\0\x4*\0\0\x2\x43\0\0\0\xd6\0\0\0\xb4\0\0\x4*\0\0\x2\x43\0\0\0\0\0\0\0\0\x5\0\0\0\0\xd6\0\0\0\xb4\0\0\x4*\0\0\x2\x43)
+UILayout\geometryRenderWindow=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\0\0\0\0\x14\0\0\0\x63\0\0\0\x31\0\0\0\0\0\0\0\x14\0\0\0\x63\0\0\0\x31\0\0\0\0\0\0\0\0\x4\xfd\0\0\0\0\0\0\0\x14\0\0\0\x63\0\0\0\x31)
+UILayout\microProfileDialogGeometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\x1\0\0\0\x19\0\0\x3\xe8\0\0\x2p\0\0\0\x1\0\0\0\x19\0\0\x3\xe8\0\0\x2p\0\0\0\0\0\0\0\0\x5\0\0\0\0\x1\0\0\0\x19\0\0\x3\xe8\0\0\x2p)
+UILayout\microProfileDialogVisible=false
+UILayout\microProfileDialogVisible\default=true
+UILayout\state=@ByteArray(\0\0\0\xff\0\0\0\0\xfd\0\0\0\x2\0\0\0\0\0\0\0\0\0\0\0\0\xfc\x2\0\0\0\x1\xfb\0\0\0\x1c\0W\0\x61\0i\0t\0T\0r\0\x65\0\x65\0W\0i\0\x64\0g\0\x65\0t\0\0\0\0\0\xff\xff\xff\xff\0\0\0V\0\xff\xff\xff\0\0\0\x1\0\0\0\0\0\0\0\0\xfc\x2\0\0\0\b\xfb\0\0\0\x18\0\x41\0R\0M\0R\0\x65\0g\0i\0s\0t\0\x65\0r\0s\0\0\0\0\0\xff\xff\xff\xff\0\0\0h\0\xff\xff\xff\xfb\0\0\0 \0G\0r\0\x61\0p\0h\0i\0\x63\0s\0\x44\0\x65\0\x62\0u\0g\0g\0\x65\0r\0\0\0\0\0\xff\xff\xff\xff\0\0\0V\0\xff\xff\xff\xfb\0\0\0\"\0P\0i\0\x63\0\x61\0 \0\x43\0o\0m\0m\0\x61\0n\0\x64\0 \0L\0i\0s\0t\0\0\0\0\0\xff\xff\xff\xff\0\0\0\x87\0\xff\xff\xff\xfb\0\0\0*\0P\0i\0\x63\0\x61\0\x42\0r\0\x65\0\x61\0k\0P\0o\0i\0n\0t\0s\0W\0i\0\x64\0g\0\x65\0t\0\0\0\0\0\xff\xff\xff\xff\0\0\0\x87\0\xff\xff\xff\xfb\0\0\0 \0P\0i\0\x63\0\x61\0V\0\x65\0r\0t\0\x65\0x\0S\0h\0\x61\0\x64\0\x65\0r\0\0\0\0\0\xff\xff\xff\xff\0\0\x1\xa9\0\xff\xff\xff\xfb\0\0\0\x12\0\x43\0i\0T\0r\0\x61\0\x63\0i\0n\0g\0\0\0\0\0\xff\xff\xff\xff\0\0\0\x41\0\xff\xff\xff\xfb\0\0\0.\0L\0L\0\x45\0S\0\x65\0r\0v\0i\0\x63\0\x65\0M\0o\0\x64\0u\0l\0\x65\0s\0W\0i\0\x64\0g\0\x65\0t\0\0\0\0\0\xff\xff\xff\xff\0\0\0V\0\xff\xff\xff\xfb\0\0\0\x16\0I\0P\0\x43\0R\0\x65\0\x63\0o\0r\0\x64\0\x65\0r\0\0\0\0\0\xff\xff\xff\xff\0\0\0\xc2\0\xff\xff\xff\0\0\x5\0\0\0\x3 \0\0\0\x4\0\0\0\x4\0\0\0\b\0\0\0\b\xfc\0\0\0\0)
+Updater\check_for_update_on_start=true
+Updater\check_for_update_on_start\default=true
+Updater\update_on_close=false
+Updater\update_on_close\default=true
+calloutFlags=1
+calloutFlags\default=false
+confirmClose=false
+confirmClose\default=false
+displayTitleBars=true
+displayTitleBars\default=true
+enable_discord_presence=true
+enable_discord_presence\default=true
+firstStart=false
+firstStart\default=false
+fullscreen=true
+fullscreen\default=false
+hideInactiveMouse=false
+hideInactiveMouse\default=true
+pauseWhenInBackground=false
+pauseWhenInBackground\default=true
+saveStateWarning=true
+saveStateWarning\default=true
+screenshot_resolution_factor=0
+screenshot_resolution_factor\default=true
+showConsole=false
+showConsole\default=true
+showFilterBar=true
+showFilterBar\default=true
+showStatusBar=true
+showStatusBar\default=true
+singleWindowMode=true
+singleWindowMode\default=true
+theme=colorful_dark
+theme\default=false
+
+[Utility]
+async_custom_loading=true
+async_custom_loading\default=true
+custom_textures=false
+custom_textures\default=true
+dump_textures=false
+dump_textures\default=true
+preload_textures=false
+preload_textures\default=true
+
+[VideoDumping]
+audio_bitrate=64000
+audio_bitrate\default=true
+audio_encoder=libvorbis
+audio_encoder\default=true
+audio_encoder_options=
+audio_encoder_options\default=true
+format_options=
+output_format=webm
+output_format\default=true
+video_bitrate=2500000
+video_bitrate\default=true
+video_encoder=libvpx-vp9
+video_encoder\default=true
+video_encoder_options="quality:realtime,speed:6,tile-columns:4,frame-parallel:1,threads:8,row-mt:1"
+video_encoder_options\default=true
+
+[WebService]
+citra_token=
+citra_username=RetroDECK
+enable_telemetry=false
+enable_telemetry\default=false
+web_api_url=https://api.citra-emu.org
+web_api_url\default=true
\ No newline at end of file
diff --git a/emu-configs/defaults/citra/citra-qt-config.ini b/emu-configs/defaults/citra/citra-qt-config.ini
new file mode 100644
index 00000000..4b9877e3
--- /dev/null
+++ b/emu-configs/defaults/citra/citra-qt-config.ini
@@ -0,0 +1,535 @@
+[Audio]
+audio_emulation=0
+audio_emulation\default=true
+enable_audio_stretching=true
+enable_audio_stretching\default=true
+input_device=auto
+input_device\default=true
+input_type=0
+input_type\default=true
+mic_input_device=Default
+mic_input_device\default=true
+mic_input_type=0
+mic_input_type\default=true
+output_device=auto
+output_device\default=true
+output_engine=auto
+output_engine\default=true
+output_type=0
+output_type\default=true
+volume=@Variant(\0\0\0\x87?\x80\0\0)
+volume\default=true
+
+[Camera]
+camera_inner_config=
+camera_inner_config\default=true
+camera_inner_flip=0
+camera_inner_flip\default=true
+camera_inner_name=blank
+camera_inner_name\default=true
+camera_outer_left_config=
+camera_outer_left_config\default=true
+camera_outer_left_flip=0
+camera_outer_left_flip\default=true
+camera_outer_left_name=blank
+camera_outer_left_name\default=true
+camera_outer_right_config=
+camera_outer_right_config\default=true
+camera_outer_right_flip=0
+camera_outer_right_flip\default=true
+camera_outer_right_name=blank
+camera_outer_right_name\default=true
+
+[Controls]
+profile=0
+profile\default=true
+profiles\1\button_a="code:65,engine:keyboard"
+profiles\1\button_a\default=true
+profiles\1\button_b="code:83,engine:keyboard"
+profiles\1\button_b\default=true
+profiles\1\button_debug="code:79,engine:keyboard"
+profiles\1\button_debug\default=true
+profiles\1\button_down="code:71,engine:keyboard"
+profiles\1\button_down\default=true
+profiles\1\button_gpio14="code:80,engine:keyboard"
+profiles\1\button_gpio14\default=true
+profiles\1\button_home="code:66,engine:keyboard"
+profiles\1\button_home\default=true
+profiles\1\button_l="code:81,engine:keyboard"
+profiles\1\button_l\default=true
+profiles\1\button_left="code:70,engine:keyboard"
+profiles\1\button_left\default=true
+profiles\1\button_r="code:87,engine:keyboard"
+profiles\1\button_r\default=true
+profiles\1\button_right="code:72,engine:keyboard"
+profiles\1\button_right\default=true
+profiles\1\button_select="code:78,engine:keyboard"
+profiles\1\button_select\default=true
+profiles\1\button_start="code:77,engine:keyboard"
+profiles\1\button_start\default=true
+profiles\1\button_up="code:84,engine:keyboard"
+profiles\1\button_up\default=true
+profiles\1\button_x="code:90,engine:keyboard"
+profiles\1\button_x\default=true
+profiles\1\button_y="code:88,engine:keyboard"
+profiles\1\button_y\default=true
+profiles\1\button_zl="code:49,engine:keyboard"
+profiles\1\button_zl\default=true
+profiles\1\button_zr="code:50,engine:keyboard"
+profiles\1\button_zr\default=true
+profiles\1\c_stick="down:code$075$1engine$0keyboard,engine:analog_from_button,left:code$074$1engine$0keyboard,modifier:code$068$1engine$0keyboard,modifier_scale:0.500000,right:code$076$1engine$0keyboard,up:code$073$1engine$0keyboard"
+profiles\1\c_stick\default=true
+profiles\1\circle_pad="down:code$016777237$1engine$0keyboard,engine:analog_from_button,left:code$016777234$1engine$0keyboard,modifier:code$068$1engine$0keyboard,modifier_scale:0.500000,right:code$016777236$1engine$0keyboard,up:code$016777235$1engine$0keyboard"
+profiles\1\circle_pad\default=true
+profiles\1\motion_device="engine:motion_emu,update_period:100,sensitivity:0.01,tilt_clamp:90.0"
+profiles\1\motion_device\default=true
+profiles\1\name=default
+profiles\1\name\default=true
+profiles\1\touch_device=engine:emu_window
+profiles\1\touch_device\default=true
+profiles\1\touch_from_button_map=0
+profiles\1\touch_from_button_map\default=true
+profiles\1\udp_input_address=127.0.0.1
+profiles\1\udp_input_address\default=true
+profiles\1\udp_input_port=26760
+profiles\1\udp_input_port\default=true
+profiles\1\udp_pad_index=0
+profiles\1\udp_pad_index\default=true
+profiles\1\use_touch_from_button=false
+profiles\1\use_touch_from_button\default=true
+profiles\size=1
+touch_from_button_maps\1\entries\size=0
+touch_from_button_maps\1\name=default
+touch_from_button_maps\1\name\default=true
+touch_from_button_maps\size=1
+
+[Core]
+cpu_clock_percentage=100
+cpu_clock_percentage\default=true
+use_cpu_jit=true
+use_cpu_jit\default=true
+
+[Data%20Storage]
+nand_directory=
+nand_directory\default=true
+sdmc_directory=
+sdmc_directory\default=true
+use_virtual_sd=true
+use_virtual_sd\default=true
+
+[Debugging]
+LLE\AC=false
+LLE\AC\default=true
+LLE\ACT=false
+LLE\ACT\default=true
+LLE\AM=false
+LLE\AM\default=true
+LLE\BOSS=false
+LLE\BOSS\default=true
+LLE\CAM=false
+LLE\CAM\default=true
+LLE\CDC=false
+LLE\CDC\default=true
+LLE\CECD=false
+LLE\CECD\default=true
+LLE\CFG=false
+LLE\CFG\default=true
+LLE\CSND=false
+LLE\CSND\default=true
+LLE\DLP=false
+LLE\DLP\default=true
+LLE\DSP=false
+LLE\DSP\default=true
+LLE\ERR=false
+LLE\ERR\default=true
+LLE\FRD=false
+LLE\FRD\default=true
+LLE\FS=false
+LLE\FS\default=true
+LLE\GPIO=false
+LLE\GPIO\default=true
+LLE\GSP=false
+LLE\GSP\default=true
+LLE\HID=false
+LLE\HID\default=true
+LLE\HTTP=false
+LLE\HTTP\default=true
+LLE\I2C=false
+LLE\I2C\default=true
+LLE\IR=false
+LLE\IR\default=true
+LLE\LDR=false
+LLE\LDR\default=true
+LLE\MCU=false
+LLE\MCU\default=true
+LLE\MIC=false
+LLE\MIC\default=true
+LLE\MP=false
+LLE\MP\default=true
+LLE\MVD=false
+LLE\MVD\default=true
+LLE\NDM=false
+LLE\NDM\default=true
+LLE\NEWS=false
+LLE\NEWS\default=true
+LLE\NFC=false
+LLE\NFC\default=true
+LLE\NIM=false
+LLE\NIM\default=true
+LLE\NS=false
+LLE\NS\default=true
+LLE\NWM=false
+LLE\NWM\default=true
+LLE\PDN=false
+LLE\PDN\default=true
+LLE\PLGLDR=false
+LLE\PLGLDR\default=true
+LLE\PM=false
+LLE\PM\default=true
+LLE\PS=false
+LLE\PS\default=true
+LLE\PTM=false
+LLE\PTM\default=true
+LLE\PXI=false
+LLE\PXI\default=true
+LLE\QTM=false
+LLE\QTM\default=true
+LLE\SOC=false
+LLE\SOC\default=true
+LLE\SPI=false
+LLE\SPI\default=true
+LLE\SSL=false
+LLE\SSL\default=true
+gdbstub_port=24689
+gdbstub_port\default=true
+record_frame_times=false
+renderer_debug=false
+renderer_debug\default=true
+use_gdbstub=false
+use_gdbstub\default=true
+
+[Layout]
+anaglyph_shader_name=dubois (builtin)
+anaglyph_shader_name\default=true
+custom_bottom_bottom=480
+custom_bottom_bottom\default=true
+custom_bottom_left=40
+custom_bottom_left\default=true
+custom_bottom_right=360
+custom_bottom_right\default=true
+custom_bottom_top=240
+custom_bottom_top\default=true
+custom_layout=false
+custom_layout\default=true
+custom_second_layer_opacity=100
+custom_second_layer_opacity\default=true
+custom_top_bottom=240
+custom_top_bottom\default=true
+custom_top_left=0
+custom_top_left\default=true
+custom_top_right=400
+custom_top_right\default=true
+custom_top_top=0
+custom_top_top\default=true
+factor_3d=0
+factor_3d\default=true
+filter_mode=true
+filter_mode\default=true
+layout_option=0
+pp_shader_name=none (builtin)
+pp_shader_name\default=true
+render_3d=0
+render_3d\default=true
+swap_screen=false
+swap_screen\default=true
+upright_screen=false
+upright_screen\default=true
+
+[Miscellaneous]
+log_filter=*:Info
+log_filter\default=true
+
+[Renderer]
+bg_blue=0
+bg_blue\default=true
+bg_green=0
+bg_green\default=true
+bg_red=0
+bg_red\default=true
+frame_limit=100
+frame_limit\default=true
+graphics_api=1
+graphics_api\default=true
+resolution_factor=1
+resolution_factor\default=true
+shaders_accurate_mul=true
+shaders_accurate_mul\default=true
+texture_filter=0
+texture_filter\default=true
+texture_filter_name=Linear (Default)
+texture_filter_name\default=false
+use_disk_shader_cache=true
+use_disk_shader_cache\default=true
+use_hw_renderer=true
+use_hw_renderer\default=true
+use_hw_shader=true
+use_hw_shader\default=true
+use_shader_jit=true
+use_shader_jit\default=true
+use_vsync_new=true
+use_vsync_new\default=true
+
+[System]
+allow_plugin_loader=true
+allow_plugin_loader\default=true
+init_clock=0
+init_clock\default=true
+init_time=946681277
+init_time\default=true
+is_new_3ds=true
+is_new_3ds\default=true
+plugin_loader=false
+plugin_loader\default=true
+region_value=-1
+region_value\default=true
+
+[UI]
+GameList\hideNoIcon=false
+GameList\hideNoIcon\default=true
+GameList\iconSize=2
+GameList\iconSize\default=true
+GameList\row1=2
+GameList\row1\default=true
+GameList\row2=0
+GameList\row2\default=true
+GameList\singleLineMode=false
+GameList\singleLineMode\default=true
+Multiplayer\game_id=0
+Multiplayer\game_id\default=true
+Multiplayer\host_type=0
+Multiplayer\host_type\default=true
+Multiplayer\ip=
+Multiplayer\ip\default=true
+Multiplayer\ip_ban_list\size=0
+Multiplayer\max_player=8
+Multiplayer\max_player\default=true
+Multiplayer\nickname=
+Multiplayer\nickname\default=true
+Multiplayer\port=24872
+Multiplayer\port\default=true
+Multiplayer\room_description=
+Multiplayer\room_description\default=true
+Multiplayer\room_name=
+Multiplayer\room_name\default=true
+Multiplayer\room_nickname=
+Multiplayer\room_nickname\default=true
+Multiplayer\room_port=24872
+Multiplayer\room_port\default=true
+Multiplayer\username_ban_list\size=0
+Paths\gamedirs\1\deep_scan=false
+Paths\gamedirs\1\deep_scan\default=true
+Paths\gamedirs\1\expanded=true
+Paths\gamedirs\1\expanded\default=true
+Paths\gamedirs\1\path=INSTALLED
+Paths\gamedirs\2\deep_scan=false
+Paths\gamedirs\2\deep_scan\default=true
+Paths\gamedirs\2\expanded=true
+Paths\gamedirs\2\expanded\default=true
+Paths\gamedirs\2\path=SYSTEM
+Paths\gamedirs\3\deep_scan=false
+Paths\gamedirs\3\deep_scan\default=true
+Paths\gamedirs\3\expanded=true
+Paths\gamedirs\3\expanded\default=true
+Paths\gamedirs\3\path=
+Paths\gamedirs\size=3
+Paths\language=en
+Paths\language\default=false
+Paths\moviePlaybackPath=
+Paths\movieRecordPath=
+Paths\recentFiles=@Invalid()
+Paths\romsPath=
+Paths\screenshotPath=RETRODECKHOMEDIR/screenshots
+Paths\symbolsPath=
+Paths\videoDumpingPath=
+Shortcuts\Main%20Window\Advance%20Frame\Context=2
+Shortcuts\Main%20Window\Advance%20Frame\Context\default=true
+Shortcuts\Main%20Window\Advance%20Frame\KeySeq=\\
+Shortcuts\Main%20Window\Advance%20Frame\KeySeq\default=true
+Shortcuts\Main%20Window\Capture%20Screenshot\Context=2
+Shortcuts\Main%20Window\Capture%20Screenshot\Context\default=true
+Shortcuts\Main%20Window\Capture%20Screenshot\KeySeq=Ctrl+P
+Shortcuts\Main%20Window\Capture%20Screenshot\KeySeq\default=true
+Shortcuts\Main%20Window\Continue\Pause%20Emulation\Context=1
+Shortcuts\Main%20Window\Continue\Pause%20Emulation\Context\default=true
+Shortcuts\Main%20Window\Continue\Pause%20Emulation\KeySeq=F4
+Shortcuts\Main%20Window\Continue\Pause%20Emulation\KeySeq\default=true
+Shortcuts\Main%20Window\Decrease%203D%20Factor\Context=1
+Shortcuts\Main%20Window\Decrease%203D%20Factor\Context\default=false
+Shortcuts\Main%20Window\Decrease%203D%20Factor\KeySeq=
+Shortcuts\Main%20Window\Decrease%203D%20Factor\KeySeq\default=false
+Shortcuts\Main%20Window\Decrease%20Speed%20Limit\Context=2
+Shortcuts\Main%20Window\Decrease%20Speed%20Limit\Context\default=true
+Shortcuts\Main%20Window\Decrease%20Speed%20Limit\KeySeq=-
+Shortcuts\Main%20Window\Decrease%20Speed%20Limit\KeySeq\default=true
+Shortcuts\Main%20Window\Exit%20Citra\Context=1
+Shortcuts\Main%20Window\Exit%20Citra\Context\default=true
+Shortcuts\Main%20Window\Exit%20Citra\KeySeq=Ctrl+Q
+Shortcuts\Main%20Window\Exit%20Citra\KeySeq\default=true
+Shortcuts\Main%20Window\Exit%20Fullscreen\Context=1
+Shortcuts\Main%20Window\Exit%20Fullscreen\Context\default=true
+Shortcuts\Main%20Window\Exit%20Fullscreen\KeySeq=
+Shortcuts\Main%20Window\Exit%20Fullscreen\KeySeq\default=true
+Shortcuts\Main%20Window\Fullscreen\Context=1
+Shortcuts\Main%20Window\Fullscreen\Context\default=true
+Shortcuts\Main%20Window\Fullscreen\KeySeq=F11
+Shortcuts\Main%20Window\Fullscreen\KeySeq\default=true
+Shortcuts\Main%20Window\Increase%203D%20Factor\Context=1
+Shortcuts\Main%20Window\Increase%203D%20Factor\Context\default=false
+Shortcuts\Main%20Window\Increase%203D%20Factor\KeySeq=
+Shortcuts\Main%20Window\Increase%203D%20Factor\KeySeq\default=false
+Shortcuts\Main%20Window\Increase%20Speed%20Limit\Context=2
+Shortcuts\Main%20Window\Increase%20Speed%20Limit\Context\default=true
+Shortcuts\Main%20Window\Increase%20Speed%20Limit\KeySeq=+
+Shortcuts\Main%20Window\Increase%20Speed%20Limit\KeySeq\default=true
+Shortcuts\Main%20Window\Load%20Amiibo\Context=2
+Shortcuts\Main%20Window\Load%20Amiibo\Context\default=true
+Shortcuts\Main%20Window\Load%20Amiibo\KeySeq=F2
+Shortcuts\Main%20Window\Load%20Amiibo\KeySeq\default=true
+Shortcuts\Main%20Window\Load%20File\Context=1
+Shortcuts\Main%20Window\Load%20File\Context\default=true
+Shortcuts\Main%20Window\Load%20File\KeySeq=Ctrl+O
+Shortcuts\Main%20Window\Load%20File\KeySeq\default=true
+Shortcuts\Main%20Window\Load%20from%20Newest%20Slot\Context=1
+Shortcuts\Main%20Window\Load%20from%20Newest%20Slot\Context\default=true
+Shortcuts\Main%20Window\Load%20from%20Newest%20Slot\KeySeq=Ctrl+V
+Shortcuts\Main%20Window\Load%20from%20Newest%20Slot\KeySeq\default=true
+Shortcuts\Main%20Window\Remove%20Amiibo\Context=2
+Shortcuts\Main%20Window\Remove%20Amiibo\Context\default=true
+Shortcuts\Main%20Window\Remove%20Amiibo\KeySeq=F3
+Shortcuts\Main%20Window\Remove%20Amiibo\KeySeq\default=true
+Shortcuts\Main%20Window\Restart%20Emulation\Context=1
+Shortcuts\Main%20Window\Restart%20Emulation\Context\default=true
+Shortcuts\Main%20Window\Restart%20Emulation\KeySeq=F6
+Shortcuts\Main%20Window\Restart%20Emulation\KeySeq\default=true
+Shortcuts\Main%20Window\Rotate%20Screens%20Upright\Context=1
+Shortcuts\Main%20Window\Rotate%20Screens%20Upright\Context\default=true
+Shortcuts\Main%20Window\Rotate%20Screens%20Upright\KeySeq=F8
+Shortcuts\Main%20Window\Rotate%20Screens%20Upright\KeySeq\default=true
+Shortcuts\Main%20Window\Save%20to%20Oldest%20Slot\Context=1
+Shortcuts\Main%20Window\Save%20to%20Oldest%20Slot\Context\default=true
+Shortcuts\Main%20Window\Save%20to%20Oldest%20Slot\KeySeq=Ctrl+C
+Shortcuts\Main%20Window\Save%20to%20Oldest%20Slot\KeySeq\default=true
+Shortcuts\Main%20Window\Stop%20Emulation\Context=1
+Shortcuts\Main%20Window\Stop%20Emulation\Context\default=true
+Shortcuts\Main%20Window\Stop%20Emulation\KeySeq=F5
+Shortcuts\Main%20Window\Stop%20Emulation\KeySeq\default=true
+Shortcuts\Main%20Window\Swap%20Screens\Context=1
+Shortcuts\Main%20Window\Swap%20Screens\Context\default=true
+Shortcuts\Main%20Window\Swap%20Screens\KeySeq=F9
+Shortcuts\Main%20Window\Swap%20Screens\KeySeq\default=false
+Shortcuts\Main%20Window\Toggle%203D\Context=1
+Shortcuts\Main%20Window\Toggle%203D\Context\default=false
+Shortcuts\Main%20Window\Toggle%203D\KeySeq=
+Shortcuts\Main%20Window\Toggle%203D\KeySeq\default=false
+Shortcuts\Main%20Window\Toggle%20Custom%20Textures\Context=2
+Shortcuts\Main%20Window\Toggle%20Custom%20Textures\Context\default=true
+Shortcuts\Main%20Window\Toggle%20Custom%20Textures\KeySeq=Ctrl+Z
+Shortcuts\Main%20Window\Toggle%20Custom%20Textures\KeySeq\default=false
+Shortcuts\Main%20Window\Toggle%20Filter%20Bar\Context=1
+Shortcuts\Main%20Window\Toggle%20Filter%20Bar\Context\default=true
+Shortcuts\Main%20Window\Toggle%20Filter%20Bar\KeySeq=Ctrl+F
+Shortcuts\Main%20Window\Toggle%20Filter%20Bar\KeySeq\default=true
+Shortcuts\Main%20Window\Toggle%20Frame%20Advancing\Context=1
+Shortcuts\Main%20Window\Toggle%20Frame%20Advancing\Context\default=true
+Shortcuts\Main%20Window\Toggle%20Frame%20Advancing\KeySeq=Ctrl+A
+Shortcuts\Main%20Window\Toggle%20Frame%20Advancing\KeySeq\default=true
+Shortcuts\Main%20Window\Toggle%20Per-Game%20Speed\Context=1
+Shortcuts\Main%20Window\Toggle%20Per-Game%20Speed\Context\default=true
+Shortcuts\Main%20Window\Toggle%20Per-Game%20Speed\KeySeq=
+Shortcuts\Main%20Window\Toggle%20Per-Game%20Speed\KeySeq\default=false
+Shortcuts\Main%20Window\Toggle%20Screen%20Layout\Context=1
+Shortcuts\Main%20Window\Toggle%20Screen%20Layout\Context\default=true
+Shortcuts\Main%20Window\Toggle%20Screen%20Layout\KeySeq=F10
+Shortcuts\Main%20Window\Toggle%20Screen%20Layout\KeySeq\default=true
+Shortcuts\Main%20Window\Toggle%20Status%20Bar\Context=1
+Shortcuts\Main%20Window\Toggle%20Status%20Bar\Context\default=true
+Shortcuts\Main%20Window\Toggle%20Status%20Bar\KeySeq=Ctrl+S
+Shortcuts\Main%20Window\Toggle%20Status%20Bar\KeySeq\default=true
+Shortcuts\Main%20Window\Toggle%20Texture%20Dumping\Context=2
+Shortcuts\Main%20Window\Toggle%20Texture%20Dumping\Context\default=true
+Shortcuts\Main%20Window\Toggle%20Texture%20Dumping\KeySeq=Ctrl+D
+Shortcuts\Main%20Window\Toggle%20Texture%20Dumping\KeySeq\default=true
+UILayout\gameListHeaderState=@ByteArray(\0\0\0\xff\0\0\0\0\0\0\0\x1\0\0\0\x1\0\0\0\x5\x1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x4\x33\0\0\0\x5\x1\x1\0\x1\0\0\0\0\0\0\0\0\0\0\0\0\x64\xff\xff\xff\xff\0\0\0\x81\0\0\0\0\0\0\0\x5\0\0\x2\x80\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\x87\0\0\0\x1\0\0\0\0\0\0\x3\xe8\0\0\0\0\x64)
+UILayout\geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\x1\r\0\0\0\xbb\0\0\x5?\0\0\x2\xb6\0\0\x1\r\0\0\0\xd8\0\0\x5?\0\0\x2\xb6\0\0\0\0\0\0\0\0\x6M\0\0\x1\r\0\0\0\xd8\0\0\x5?\0\0\x2\xb6)
+UILayout\geometryRenderWindow=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\0\0\0\0\0\0\0\0\x63\0\0\0\x1d\0\0\0\0\0\0\0\0\0\0\0\x63\0\0\0\x1d\0\0\0\0\0\0\0\0\x6M\0\0\0\0\0\0\0\0\0\0\0\x63\0\0\0\x1d)
+UILayout\microProfileDialogGeometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\0\0\0\0\0\0\0\x3\xe7\0\0\x2W\0\0\0\0\0\0\0\0\0\0\x3\xe7\0\0\x2W\0\0\0\0\0\0\0\0\x6M\0\0\0\0\0\0\0\0\0\0\x3\xe7\0\0\x2W)
+UILayout\microProfileDialogVisible=false
+UILayout\microProfileDialogVisible\default=true
+UILayout\state=@ByteArray(\0\0\0\xff\0\0\0\0\xfd\0\0\0\x2\0\0\0\0\0\0\0\0\0\0\0\0\xfc\x2\0\0\0\x1\xfb\0\0\0\x1c\0W\0\x61\0i\0t\0T\0r\0\x65\0\x65\0W\0i\0\x64\0g\0\x65\0t\0\0\0\0\0\xff\xff\xff\xff\0\0\0y\x1\0\0\x3\0\0\0\x1\0\0\0\0\0\0\0\0\xfc\x2\0\0\0\b\xfb\0\0\0\x18\0\x41\0R\0M\0R\0\x65\0g\0i\0s\0t\0\x65\0r\0s\0\0\0\0\0\xff\xff\xff\xff\0\0\0\x85\x1\0\0\x3\xfb\0\0\0 \0G\0r\0\x61\0p\0h\0i\0\x63\0s\0\x44\0\x65\0\x62\0u\0g\0g\0\x65\0r\0\0\0\0\0\xff\xff\xff\xff\0\0\0y\x1\0\0\x3\xfb\0\0\0\"\0P\0i\0\x63\0\x61\0 \0\x43\0o\0m\0m\0\x61\0n\0\x64\0 \0L\0i\0s\0t\0\0\0\0\0\xff\xff\xff\xff\0\0\0\xad\x1\0\0\x3\xfb\0\0\0*\0P\0i\0\x63\0\x61\0\x42\0r\0\x65\0\x61\0k\0P\0o\0i\0n\0t\0s\0W\0i\0\x64\0g\0\x65\0t\0\0\0\0\0\xff\xff\xff\xff\0\0\0\xad\x1\0\0\x3\xfb\0\0\0 \0P\0i\0\x63\0\x61\0V\0\x65\0r\0t\0\x65\0x\0S\0h\0\x61\0\x64\0\x65\0r\0\0\0\0\0\xff\xff\xff\xff\0\0\x1\xde\x1\0\0\x3\xfb\0\0\0\x12\0\x43\0i\0T\0r\0\x61\0\x63\0i\0n\0g\0\0\0\0\0\xff\xff\xff\xff\0\0\0P\x1\0\0\x3\xfb\0\0\0.\0L\0L\0\x45\0S\0\x65\0r\0v\0i\0\x63\0\x65\0M\0o\0\x64\0u\0l\0\x65\0s\0W\0i\0\x64\0g\0\x65\0t\0\0\0\0\0\xff\xff\xff\xff\0\0\0y\x1\0\0\x3\xfb\0\0\0\x16\0I\0P\0\x43\0R\0\x65\0\x63\0o\0r\0\x64\0\x65\0r\0\0\0\0\0\xff\xff\xff\xff\0\0\0\xef\x1\0\0\x3\0\0\x4\x33\0\0\x1\xa2\0\0\0\x4\0\0\0\x4\0\0\0\b\0\0\0\b\xfc\0\0\0\0)
+Updater\check_for_update_on_start=true
+Updater\check_for_update_on_start\default=true
+Updater\update_on_close=false
+Updater\update_on_close\default=true
+calloutFlags=1
+calloutFlags\default=false
+confirmClose=true
+confirmClose\default=true
+displayTitleBars=true
+displayTitleBars\default=true
+enable_discord_presence=true
+enable_discord_presence\default=true
+firstStart=false
+firstStart\default=false
+fullscreen=false
+fullscreen\default=true
+hideInactiveMouse=false
+hideInactiveMouse\default=true
+pauseWhenInBackground=false
+pauseWhenInBackground\default=true
+screenshot_resolution_factor=0
+screenshot_resolution_factor\default=true
+showConsole=false
+showConsole\default=true
+showFilterBar=true
+showFilterBar\default=true
+showStatusBar=true
+showStatusBar\default=true
+singleWindowMode=true
+singleWindowMode\default=true
+theme=default
+theme\default=true
+
+[Utility]
+async_custom_loading=true
+async_custom_loading\default=true
+custom_textures=false
+custom_textures\default=true
+dump_textures=false
+dump_textures\default=true
+preload_textures=false
+preload_textures\default=true
+
+[VideoDumping]
+audio_bitrate=64000
+audio_bitrate\default=true
+audio_encoder=libvorbis
+audio_encoder\default=true
+audio_encoder_options=
+audio_encoder_options\default=true
+format_options=
+output_format=webm
+output_format\default=true
+video_bitrate=2500000
+video_bitrate\default=true
+video_encoder=libvpx-vp9
+video_encoder\default=true
+video_encoder_options="quality:realtime,speed:6,tile-columns:4,frame-parallel:1,threads:8,row-mt:1"
+video_encoder_options\default=true
+
+[WebService]
+citra_token=
+citra_username=
+enable_telemetry=false
+enable_telemetry\default=false
+web_api_url=https://api.citra-emu.org
+web_api_url\default=true
diff --git a/emu-configs/defaults/retrodeck/presets/citra_presets.cfg b/emu-configs/defaults/retrodeck/presets/citra_presets.cfg
index 465dafe1..05b0d7b0 100644
--- a/emu-configs/defaults/retrodeck/presets/citra_presets.cfg
+++ b/emu-configs/defaults/retrodeck/presets/citra_presets.cfg
@@ -4,4 +4,4 @@ change^ask_to_exit^confirmClose\default^true^UI^$citraconf^$emuconfigs/citra/qt-
change^abxy_button_swap^profiles\1\button_a^button:1,engine:sdl,guid:030079f6de280000ff11000001000000,port:0^Controls^$citraconf^$emuconfigs/citra/qt-config.ini
change^abxy_button_swap^profiles\1\button_b^button:0,engine:sdl,guid:030079f6de280000ff11000001000000,port:0^Controls^$citraconf^$emuconfigs/citra/qt-config.ini
change^abxy_button_swap^profiles\1\button_x^button:3,engine:sdl,guid:030079f6de280000ff11000001000000,port:0^Controls^$citraconf^$emuconfigs/citra/qt-config.ini
-change^abxy_button_swap^profiles\1\button_y^button:2,engine:sdl,guid:030079f6de280000ff11000001000000,port:0^Controls^$citraconf^$emuconfigs/citra/qt-config.ini
\ No newline at end of file
+change^abxy_button_swap^profiles\1\button_y^button:2,engine:sdl,guid:030079f6de280000ff11000001000000,port:0^Controls^$citraconf^$emuconfigs/citra/qt-config.ini
diff --git a/emu-configs/defaults/retrodeck/presets/yuzu_presets.cfg b/emu-configs/defaults/retrodeck/presets/yuzu_presets.cfg
new file mode 100644
index 00000000..e03474f1
--- /dev/null
+++ b/emu-configs/defaults/retrodeck/presets/yuzu_presets.cfg
@@ -0,0 +1,7 @@
+config_file_format^yuzu
+change^ask_to_exit^confirmClose^true^UI^$yuzuconf^$emuconfigs/yuzu/qt-config.ini
+change^ask_to_exit^confirmClose\default^true^UI^$yuzuconf^$emuconfigs/yuzu/qt-config.ini
+change^abxy_button_swap^player_0_button_a^"engine:sdl,guid:03000000de280000ff11000001000000,port:0,button:0,pad:0"^Controls^$yuzuconf^$emuconfigs/yuzu/qt-config.ini
+change^abxy_button_swap^player_0_button_b^"engine:sdl,guid:03000000de280000ff11000001000000,port:0,button:1,pad:0"^Controls^$yuzuconf^$emuconfigs/yuzu/qt-config.ini
+change^abxy_button_swap^player_0_button_x^"engine:sdl,guid:03000000de280000ff11000001000000,port:0,button:2,pad:0"^Controls^$yuzuconf^$emuconfigs/yuzu/qt-config.ini
+change^abxy_button_swap^player_0_button_y^"engine:sdl,guid:03000000de280000ff11000001000000,port:0,button:3,pad:0"^Controls^$yuzuconf^$emuconfigs/yuzu/qt-config.ini
diff --git a/emu-configs/defaults/retrodeck/reference_lists/multi_user_emulator_config_dirs.cfg b/emu-configs/defaults/retrodeck/reference_lists/multi_user_emulator_config_dirs.cfg
index 2987647c..f717c3b0 100644
--- a/emu-configs/defaults/retrodeck/reference_lists/multi_user_emulator_config_dirs.cfg
+++ b/emu-configs/defaults/retrodeck/reference_lists/multi_user_emulator_config_dirs.cfg
@@ -8,3 +8,5 @@ primehack
rpcs3
Ryujinx
xemu
+yuzu
+citra-emu
diff --git a/emu-configs/defaults/retrodeck/reference_lists/pretty_system_names.cfg b/emu-configs/defaults/retrodeck/reference_lists/pretty_system_names.cfg
index f0c2a4c0..a1a6b65d 100644
--- a/emu-configs/defaults/retrodeck/reference_lists/pretty_system_names.cfg
+++ b/emu-configs/defaults/retrodeck/reference_lists/pretty_system_names.cfg
@@ -13,3 +13,5 @@ psx_ra^Sony Playstation (RetroArch Core)
retroarch^RetroArch (Multi-emulator Frontend)
ryujinx^Ryujinx (Nintendo Switch Standalone Emulator)
snes^Nintendo Super Nintendo
+yuzu^Yuzu (Nintendo Switch Standalone Emulator, via Ponzu)
+citra^Citra (Nintendo Switch Standalone Emulator, via Ponzu)
\ No newline at end of file
diff --git a/emu-configs/defaults/retrodeck/retrodeck.cfg b/emu-configs/defaults/retrodeck/retrodeck.cfg
index 37bd1f84..4056cc07 100644
--- a/emu-configs/defaults/retrodeck/retrodeck.cfg
+++ b/emu-configs/defaults/retrodeck/retrodeck.cfg
@@ -28,6 +28,8 @@ multi_user_mode=false
ask_default_user=true
default_user=
developer_options=false
+kiroi_ponzu=false
+akai_ponzu=false
[cheevos]
duckstation=false
@@ -69,6 +71,7 @@ gba=false
gbc=false
n64=false
snes=false
+citra=false
[quick_resume]
retroarch=true
@@ -78,3 +81,4 @@ dolphin=false
duckstation=false
pcsx2=false
primehack=false
+citra=false
diff --git a/emu-configs/defaults/yuzu/qt-config.ini b/emu-configs/defaults/yuzu/qt-config.ini
new file mode 100644
index 00000000..36b5f350
--- /dev/null
+++ b/emu-configs/defaults/yuzu/qt-config.ini
@@ -0,0 +1,1277 @@
+[Audio]
+input_device=auto
+input_device\default=true
+output_device=auto
+output_device\default=true
+output_engine=auto
+output_engine\default=true
+volume=100
+volume\default=true
+
+[Controls]
+controller_navigation=true
+controller_navigation\default=true
+debug_pad_button_a="toggle:0,code:67,engine:keyboard"
+debug_pad_button_a\default=true
+debug_pad_button_b="toggle:0,code:88,engine:keyboard"
+debug_pad_button_b\default=true
+debug_pad_button_ddown="toggle:0,code:16777237,engine:keyboard"
+debug_pad_button_ddown\default=true
+debug_pad_button_dleft="toggle:0,code:16777234,engine:keyboard"
+debug_pad_button_dleft\default=true
+debug_pad_button_dright="toggle:0,code:16777236,engine:keyboard"
+debug_pad_button_dright\default=true
+debug_pad_button_dup="toggle:0,code:16777235,engine:keyboard"
+debug_pad_button_dup\default=true
+debug_pad_button_home="toggle:0,code:0,engine:keyboard"
+debug_pad_button_home\default=true
+debug_pad_button_l="toggle:0,code:81,engine:keyboard"
+debug_pad_button_l\default=true
+debug_pad_button_lstick="toggle:0,code:70,engine:keyboard"
+debug_pad_button_lstick\default=true
+debug_pad_button_minus="toggle:0,code:78,engine:keyboard"
+debug_pad_button_minus\default=true
+debug_pad_button_plus="toggle:0,code:77,engine:keyboard"
+debug_pad_button_plus\default=true
+debug_pad_button_r="toggle:0,code:69,engine:keyboard"
+debug_pad_button_r\default=true
+debug_pad_button_rstick="toggle:0,code:71,engine:keyboard"
+debug_pad_button_rstick\default=true
+debug_pad_button_screenshot="toggle:0,code:0,engine:keyboard"
+debug_pad_button_screenshot\default=true
+debug_pad_button_sl="toggle:0,code:81,engine:keyboard"
+debug_pad_button_sl\default=true
+debug_pad_button_sr="toggle:0,code:69,engine:keyboard"
+debug_pad_button_sr\default=true
+debug_pad_button_x="toggle:0,code:86,engine:keyboard"
+debug_pad_button_x\default=true
+debug_pad_button_y="toggle:0,code:90,engine:keyboard"
+debug_pad_button_y\default=true
+debug_pad_button_zl="toggle:0,code:82,engine:keyboard"
+debug_pad_button_zl\default=true
+debug_pad_button_zr="toggle:0,code:84,engine:keyboard"
+debug_pad_button_zr\default=true
+debug_pad_enabled=false
+debug_pad_enabled\default=true
+debug_pad_lstick="modifier_scale:0.500000,modifier:toggle$00$1code$016777248$1engine$0keyboard,right:toggle$00$1code$068$1engine$0keyboard,left:toggle$00$1code$065$1engine$0keyboard,down:toggle$00$1code$083$1engine$0keyboard,up:toggle$00$1code$087$1engine$0keyboard,engine:analog_from_button"
+debug_pad_lstick\default=true
+debug_pad_rstick="modifier_scale:0.500000,modifier:toggle$00$1code$00$1engine$0keyboard,right:toggle$00$1code$076$1engine$0keyboard,left:toggle$00$1code$074$1engine$0keyboard,down:toggle$00$1code$075$1engine$0keyboard,up:toggle$00$1code$073$1engine$0keyboard,engine:analog_from_button"
+debug_pad_rstick\default=true
+emulate_analog_keyboard=false
+emulate_analog_keyboard\default=true
+enable_accurate_vibrations=false
+enable_accurate_vibrations\default=true
+enable_ir_sensor=false
+enable_ir_sensor\default=true
+enable_joycon_driver=true
+enable_joycon_driver\default=true
+enable_procon_driver=false
+enable_procon_driver\default=true
+enable_raw_input=false
+enable_raw_input\default=true
+enable_ring_controller=true
+enable_ring_controller\default=true
+enable_udp_controller=false
+enable_udp_controller\default=true
+ir_sensor_device=auto
+ir_sensor_device\default=true
+keyboard_enabled=false
+keyboard_enabled\default=true
+motion_enabled=true
+motion_enabled\default=true
+mouse_enabled=false
+mouse_enabled\default=true
+mouse_panning_sensitivity=10
+mouse_panning_sensitivity\default=true
+pause_tas_on_load=true
+pause_tas_on_load\default=true
+player_0_body_color_left=4278893030
+player_0_body_color_left\default=false
+player_0_body_color_right=4294917160
+player_0_body_color_right\default=false
+player_0_button_a="button:1,guid:03000000de280000ff11000001000000,port:0,engine:sdl"
+player_0_button_a\default=false
+player_0_button_b="button:0,guid:03000000de280000ff11000001000000,port:0,engine:sdl"
+player_0_button_b\default=false
+player_0_button_color_left=4278197790
+player_0_button_color_left\default=false
+player_0_button_color_right=4280158730
+player_0_button_color_right\default=false
+player_0_button_ddown="hat:0,direction:down,guid:03000000de280000ff11000001000000,port:0,engine:sdl"
+player_0_button_ddown\default=false
+player_0_button_dleft="hat:0,direction:left,guid:03000000de280000ff11000001000000,port:0,engine:sdl"
+player_0_button_dleft\default=false
+player_0_button_dright="hat:0,direction:right,guid:03000000de280000ff11000001000000,port:0,engine:sdl"
+player_0_button_dright\default=false
+player_0_button_dup="hat:0,direction:up,guid:03000000de280000ff11000001000000,port:0,engine:sdl"
+player_0_button_dup\default=false
+player_0_button_home="button:8,guid:03000000de280000ff11000001000000,port:0,engine:sdl"
+player_0_button_home\default=false
+player_0_button_l="button:4,guid:03000000de280000ff11000001000000,port:0,engine:sdl"
+player_0_button_l\default=false
+player_0_button_lstick="button:9,guid:03000000de280000ff11000001000000,port:0,engine:sdl"
+player_0_button_lstick\default=false
+player_0_button_minus="button:6,guid:03000000de280000ff11000001000000,port:0,engine:sdl"
+player_0_button_minus\default=false
+player_0_button_plus="button:7,guid:03000000de280000ff11000001000000,port:0,engine:sdl"
+player_0_button_plus\default=false
+player_0_button_r="button:5,guid:03000000de280000ff11000001000000,port:0,engine:sdl"
+player_0_button_r\default=false
+player_0_button_rstick="button:10,guid:03000000de280000ff11000001000000,port:0,engine:sdl"
+player_0_button_rstick\default=false
+player_0_button_screenshot=[empty]
+player_0_button_screenshot\default=false
+player_0_button_sl="button:4,guid:03000000de280000ff11000001000000,port:0,engine:sdl"
+player_0_button_sl\default=false
+player_0_button_sr="button:5,guid:03000000de280000ff11000001000000,port:0,engine:sdl"
+player_0_button_sr\default=false
+player_0_button_x="button:3,guid:03000000de280000ff11000001000000,port:0,engine:sdl"
+player_0_button_x\default=false
+player_0_button_y="button:2,guid:03000000de280000ff11000001000000,port:0,engine:sdl"
+player_0_button_y\default=false
+player_0_button_zl="threshold:0.500000,axis:2,guid:03000000de280000ff11000001000000,port:0,invert:+,engine:sdl"
+player_0_button_zl\default=false
+player_0_button_zr="threshold:0.500000,axis:5,guid:03000000de280000ff11000001000000,port:0,invert:+,engine:sdl"
+player_0_button_zr\default=false
+player_0_connected=true
+player_0_connected\default=true
+player_0_lstick="deadzone:0.150000,invert_y:+,invert_x:+,offset_y:0.000000,axis_y:1,offset_x:-0.000000,axis_x:0,guid:03000000de280000ff11000001000000,port:0,engine:sdl"
+player_0_lstick\default=false
+player_0_motionleft="motion:0,pad:0,port:26760,guid:0000000000000000000000007f000001,engine:cemuhookudp"
+player_0_motionleft\default=false
+player_0_motionright=[empty]
+player_0_motionright\default=false
+player_0_rstick="deadzone:0.150000,invert_y:+,invert_x:+,offset_y:0.000000,axis_y:4,offset_x:-0.000000,axis_x:3,guid:03000000de280000ff11000001000000,port:0,engine:sdl"
+player_0_rstick\default=false
+player_0_type=0
+player_0_type\default=true
+player_0_vibration_enabled=true
+player_0_vibration_enabled\default=true
+player_0_vibration_strength=100
+player_0_vibration_strength\default=true
+player_1_body_color_left=4278893030
+player_1_body_color_left\default=false
+player_1_body_color_right=4294917160
+player_1_body_color_right\default=false
+player_1_button_a="button:1,guid:03000000de280000ff11000001000000,port:1,engine:sdl"
+player_1_button_a\default=false
+player_1_button_b="button:0,guid:03000000de280000ff11000001000000,port:1,engine:sdl"
+player_1_button_b\default=false
+player_1_button_color_left=4278197790
+player_1_button_color_left\default=false
+player_1_button_color_right=4280158730
+player_1_button_color_right\default=false
+player_1_button_ddown="hat:0,direction:down,guid:03000000de280000ff11000001000000,port:1,engine:sdl"
+player_1_button_ddown\default=false
+player_1_button_dleft="hat:0,direction:left,guid:03000000de280000ff11000001000000,port:1,engine:sdl"
+player_1_button_dleft\default=false
+player_1_button_dright="hat:0,direction:right,guid:03000000de280000ff11000001000000,port:1,engine:sdl"
+player_1_button_dright\default=false
+player_1_button_dup="hat:0,direction:up,guid:03000000de280000ff11000001000000,port:1,engine:sdl"
+player_1_button_dup\default=false
+player_1_button_home="button:8,guid:03000000de280000ff11000001000000,port:1,engine:sdl"
+player_1_button_home\default=false
+player_1_button_l="button:4,guid:03000000de280000ff11000001000000,port:1,engine:sdl"
+player_1_button_l\default=false
+player_1_button_lstick="button:9,guid:03000000de280000ff11000001000000,port:1,engine:sdl"
+player_1_button_lstick\default=false
+player_1_button_minus="button:6,guid:03000000de280000ff11000001000000,port:1,engine:sdl"
+player_1_button_minus\default=false
+player_1_button_plus="button:7,guid:03000000de280000ff11000001000000,port:1,engine:sdl"
+player_1_button_plus\default=false
+player_1_button_r="button:5,guid:03000000de280000ff11000001000000,port:1,engine:sdl"
+player_1_button_r\default=false
+player_1_button_rstick="button:10,guid:03000000de280000ff11000001000000,port:1,engine:sdl"
+player_1_button_rstick\default=false
+player_1_button_screenshot=[empty]
+player_1_button_screenshot\default=false
+player_1_button_sl="button:4,guid:03000000de280000ff11000001000000,port:1,engine:sdl"
+player_1_button_sl\default=false
+player_1_button_sr="button:5,guid:03000000de280000ff11000001000000,port:1,engine:sdl"
+player_1_button_sr\default=false
+player_1_button_x="button:3,guid:03000000de280000ff11000001000000,port:1,engine:sdl"
+player_1_button_x\default=false
+player_1_button_y="button:2,guid:03000000de280000ff11000001000000,port:1,engine:sdl"
+player_1_button_y\default=false
+player_1_button_zl="threshold:0.500000,axis:2,guid:03000000de280000ff11000001000000,port:1,invert:+,engine:sdl"
+player_1_button_zl\default=false
+player_1_button_zr="threshold:0.500000,axis:5,guid:03000000de280000ff11000001000000,port:1,invert:+,engine:sdl"
+player_1_button_zr\default=false
+player_1_connected=true
+player_1_connected\default=false
+player_1_lstick="deadzone:0.150000,invert_y:+,invert_x:+,offset_y:0.000000,axis_y:1,offset_x:-0.000000,axis_x:0,guid:03000000de280000ff11000001000000,port:1,engine:sdl"
+player_1_lstick\default=false
+player_1_motionleft=[empty]
+player_1_motionleft\default=false
+player_1_motionright=[empty]
+player_1_motionright\default=false
+player_1_rstick="deadzone:0.150000,invert_y:+,invert_x:+,offset_y:0.000000,axis_y:4,offset_x:-0.000000,axis_x:3,guid:03000000de280000ff11000001000000,port:1,engine:sdl"
+player_1_rstick\default=false
+player_1_type=0
+player_1_type\default=true
+player_1_vibration_enabled=true
+player_1_vibration_enabled\default=true
+player_1_vibration_strength=100
+player_1_vibration_strength\default=true
+player_2_body_color_left=4278893030
+player_2_body_color_left\default=false
+player_2_body_color_right=4294917160
+player_2_body_color_right\default=false
+player_2_button_a="button:1,guid:03000000de280000ff11000001000000,port:2,engine:sdl"
+player_2_button_a\default=false
+player_2_button_b="button:0,guid:03000000de280000ff11000001000000,port:2,engine:sdl"
+player_2_button_b\default=false
+player_2_button_color_left=4278197790
+player_2_button_color_left\default=false
+player_2_button_color_right=4280158730
+player_2_button_color_right\default=false
+player_2_button_ddown="hat:0,direction:down,guid:03000000de280000ff11000001000000,port:2,engine:sdl"
+player_2_button_ddown\default=false
+player_2_button_dleft="hat:0,direction:left,guid:03000000de280000ff11000001000000,port:2,engine:sdl"
+player_2_button_dleft\default=false
+player_2_button_dright="hat:0,direction:right,guid:03000000de280000ff11000001000000,port:2,engine:sdl"
+player_2_button_dright\default=false
+player_2_button_dup="hat:0,direction:up,guid:03000000de280000ff11000001000000,port:2,engine:sdl"
+player_2_button_dup\default=false
+player_2_button_home="button:8,guid:03000000de280000ff11000001000000,port:2,engine:sdl"
+player_2_button_home\default=false
+player_2_button_l="button:4,guid:03000000de280000ff11000001000000,port:2,engine:sdl"
+player_2_button_l\default=false
+player_2_button_lstick="button:9,guid:03000000de280000ff11000001000000,port:2,engine:sdl"
+player_2_button_lstick\default=false
+player_2_button_minus="button:6,guid:03000000de280000ff11000001000000,port:2,engine:sdl"
+player_2_button_minus\default=false
+player_2_button_plus="button:7,guid:03000000de280000ff11000001000000,port:2,engine:sdl"
+player_2_button_plus\default=false
+player_2_button_r="button:5,guid:03000000de280000ff11000001000000,port:2,engine:sdl"
+player_2_button_r\default=false
+player_2_button_rstick="button:10,guid:03000000de280000ff11000001000000,port:2,engine:sdl"
+player_2_button_rstick\default=false
+player_2_button_screenshot=[empty]
+player_2_button_screenshot\default=false
+player_2_button_sl="button:4,guid:03000000de280000ff11000001000000,port:2,engine:sdl"
+player_2_button_sl\default=false
+player_2_button_sr="button:5,guid:03000000de280000ff11000001000000,port:2,engine:sdl"
+player_2_button_sr\default=false
+player_2_button_x="button:3,guid:03000000de280000ff11000001000000,port:2,engine:sdl"
+player_2_button_x\default=false
+player_2_button_y="button:2,guid:03000000de280000ff11000001000000,port:2,engine:sdl"
+player_2_button_y\default=false
+player_2_button_zl="threshold:0.500000,axis:2,guid:03000000de280000ff11000001000000,port:2,invert:+,engine:sdl"
+player_2_button_zl\default=false
+player_2_button_zr="threshold:0.500000,axis:5,guid:03000000de280000ff11000001000000,port:2,invert:+,engine:sdl"
+player_2_button_zr\default=false
+player_2_connected=true
+player_2_connected\default=false
+player_2_lstick="deadzone:0.150000,invert_y:+,invert_x:+,offset_y:0.000000,axis_y:1,offset_x:-0.000000,axis_x:0,guid:03000000de280000ff11000001000000,port:2,engine:sdl"
+player_2_lstick\default=false
+player_2_motionleft=[empty]
+player_2_motionleft\default=false
+player_2_motionright=[empty]
+player_2_motionright\default=false
+player_2_rstick="deadzone:0.150000,invert_y:+,invert_x:+,offset_y:0.000000,axis_y:4,offset_x:-0.000000,axis_x:3,guid:03000000de280000ff11000001000000,port:2,engine:sdl"
+player_2_rstick\default=false
+player_2_type=0
+player_2_type\default=true
+player_2_vibration_enabled=true
+player_2_vibration_enabled\default=true
+player_2_vibration_strength=100
+player_2_vibration_strength\default=true
+player_3_body_color_left=4278893030
+player_3_body_color_left\default=false
+player_3_body_color_right=4294917160
+player_3_body_color_right\default=false
+player_3_button_a="button:1,guid:03000000de280000ff11000001000000,port:3,engine:sdl"
+player_3_button_a\default=false
+player_3_button_b="button:0,guid:03000000de280000ff11000001000000,port:3,engine:sdl"
+player_3_button_b\default=false
+player_3_button_color_left=4278197790
+player_3_button_color_left\default=false
+player_3_button_color_right=4280158730
+player_3_button_color_right\default=false
+player_3_button_ddown="hat:0,direction:down,guid:03000000de280000ff11000001000000,port:3,engine:sdl"
+player_3_button_ddown\default=false
+player_3_button_dleft="hat:0,direction:left,guid:03000000de280000ff11000001000000,port:3,engine:sdl"
+player_3_button_dleft\default=false
+player_3_button_dright="hat:0,direction:right,guid:03000000de280000ff11000001000000,port:3,engine:sdl"
+player_3_button_dright\default=false
+player_3_button_dup="hat:0,direction:up,guid:03000000de280000ff11000001000000,port:3,engine:sdl"
+player_3_button_dup\default=false
+player_3_button_home="button:8,guid:03000000de280000ff11000001000000,port:3,engine:sdl"
+player_3_button_home\default=false
+player_3_button_l="button:4,guid:03000000de280000ff11000001000000,port:3,engine:sdl"
+player_3_button_l\default=false
+player_3_button_lstick="button:9,guid:03000000de280000ff11000001000000,port:3,engine:sdl"
+player_3_button_lstick\default=false
+player_3_button_minus="button:6,guid:03000000de280000ff11000001000000,port:3,engine:sdl"
+player_3_button_minus\default=false
+player_3_button_plus="button:7,guid:03000000de280000ff11000001000000,port:3,engine:sdl"
+player_3_button_plus\default=false
+player_3_button_r="button:5,guid:03000000de280000ff11000001000000,port:3,engine:sdl"
+player_3_button_r\default=false
+player_3_button_rstick="button:10,guid:03000000de280000ff11000001000000,port:3,engine:sdl"
+player_3_button_rstick\default=false
+player_3_button_screenshot=[empty]
+player_3_button_screenshot\default=false
+player_3_button_sl="button:4,guid:03000000de280000ff11000001000000,port:3,engine:sdl"
+player_3_button_sl\default=false
+player_3_button_sr="button:5,guid:03000000de280000ff11000001000000,port:3,engine:sdl"
+player_3_button_sr\default=false
+player_3_button_x="button:3,guid:03000000de280000ff11000001000000,port:3,engine:sdl"
+player_3_button_x\default=false
+player_3_button_y="button:2,guid:03000000de280000ff11000001000000,port:3,engine:sdl"
+player_3_button_y\default=false
+player_3_button_zl="threshold:0.5,axis:2,guid:03000000de280000ff11000001000000,port:3,invert:+,engine:sdl"
+player_3_button_zl\default=false
+player_3_button_zr="threshold:0.5,axis:5,guid:03000000de280000ff11000001000000,port:3,invert:+,engine:sdl"
+player_3_button_zr\default=false
+player_3_connected=true
+player_3_connected\default=false
+player_3_lstick="invert_y:+,invert_x:+,offset_y:0.000000,axis_y:1,offset_x:-0.000000,axis_x:0,guid:03000000de280000ff11000001000000,port:3,engine:sdl"
+player_3_lstick\default=false
+player_3_motionleft=[empty]
+player_3_motionleft\default=false
+player_3_motionright=[empty]
+player_3_motionright\default=false
+player_3_rstick="invert_y:+,invert_x:+,offset_y:0.000000,axis_y:4,offset_x:-0.000000,axis_x:3,guid:03000000de280000ff11000001000000,port:3,engine:sdl"
+player_3_rstick\default=false
+player_3_type=0
+player_3_type\default=true
+player_3_vibration_enabled=true
+player_3_vibration_enabled\default=true
+player_3_vibration_strength=100
+player_3_vibration_strength\default=true
+player_4_body_color_left=4278893030
+player_4_body_color_left\default=false
+player_4_body_color_right=4294917160
+player_4_body_color_right\default=false
+player_4_button_a="toggle:0,code:67,engine:keyboard"
+player_4_button_a\default=true
+player_4_button_b="toggle:0,code:88,engine:keyboard"
+player_4_button_b\default=true
+player_4_button_color_left=4278197790
+player_4_button_color_left\default=false
+player_4_button_color_right=4280158730
+player_4_button_color_right\default=false
+player_4_button_ddown="toggle:0,code:16777237,engine:keyboard"
+player_4_button_ddown\default=true
+player_4_button_dleft="toggle:0,code:16777234,engine:keyboard"
+player_4_button_dleft\default=true
+player_4_button_dright="toggle:0,code:16777236,engine:keyboard"
+player_4_button_dright\default=true
+player_4_button_dup="toggle:0,code:16777235,engine:keyboard"
+player_4_button_dup\default=true
+player_4_button_home="toggle:0,code:0,engine:keyboard"
+player_4_button_home\default=true
+player_4_button_l="toggle:0,code:81,engine:keyboard"
+player_4_button_l\default=true
+player_4_button_lstick="toggle:0,code:70,engine:keyboard"
+player_4_button_lstick\default=true
+player_4_button_minus="toggle:0,code:78,engine:keyboard"
+player_4_button_minus\default=true
+player_4_button_plus="toggle:0,code:77,engine:keyboard"
+player_4_button_plus\default=true
+player_4_button_r="toggle:0,code:69,engine:keyboard"
+player_4_button_r\default=true
+player_4_button_rstick="toggle:0,code:71,engine:keyboard"
+player_4_button_rstick\default=true
+player_4_button_screenshot="toggle:0,code:0,engine:keyboard"
+player_4_button_screenshot\default=true
+player_4_button_sl="toggle:0,code:81,engine:keyboard"
+player_4_button_sl\default=true
+player_4_button_sr="toggle:0,code:69,engine:keyboard"
+player_4_button_sr\default=true
+player_4_button_x="toggle:0,code:86,engine:keyboard"
+player_4_button_x\default=true
+player_4_button_y="toggle:0,code:90,engine:keyboard"
+player_4_button_y\default=true
+player_4_button_zl="toggle:0,code:82,engine:keyboard"
+player_4_button_zl\default=true
+player_4_button_zr="toggle:0,code:84,engine:keyboard"
+player_4_button_zr\default=true
+player_4_connected=false
+player_4_connected\default=true
+player_4_lstick="modifier_scale:0.500000,modifier:toggle$00$1code$016777248$1engine$0keyboard,right:toggle$00$1code$068$1engine$0keyboard,left:toggle$00$1code$065$1engine$0keyboard,down:toggle$00$1code$083$1engine$0keyboard,up:toggle$00$1code$087$1engine$0keyboard,engine:analog_from_button"
+player_4_lstick\default=true
+player_4_motionleft="toggle:0,code:55,engine:keyboard"
+player_4_motionleft\default=true
+player_4_motionright="toggle:0,code:56,engine:keyboard"
+player_4_motionright\default=true
+player_4_rstick="modifier_scale:0.500000,modifier:toggle$00$1code$00$1engine$0keyboard,right:toggle$00$1code$076$1engine$0keyboard,left:toggle$00$1code$074$1engine$0keyboard,down:toggle$00$1code$075$1engine$0keyboard,up:toggle$00$1code$073$1engine$0keyboard,engine:analog_from_button"
+player_4_rstick\default=true
+player_4_type=0
+player_4_type\default=true
+player_4_vibration_enabled=true
+player_4_vibration_enabled\default=true
+player_4_vibration_strength=100
+player_4_vibration_strength\default=true
+player_5_body_color_left=4278893030
+player_5_body_color_left\default=false
+player_5_body_color_right=4294917160
+player_5_body_color_right\default=false
+player_5_button_a="toggle:0,code:67,engine:keyboard"
+player_5_button_a\default=true
+player_5_button_b="toggle:0,code:88,engine:keyboard"
+player_5_button_b\default=true
+player_5_button_color_left=4278197790
+player_5_button_color_left\default=false
+player_5_button_color_right=4280158730
+player_5_button_color_right\default=false
+player_5_button_ddown="toggle:0,code:16777237,engine:keyboard"
+player_5_button_ddown\default=true
+player_5_button_dleft="toggle:0,code:16777234,engine:keyboard"
+player_5_button_dleft\default=true
+player_5_button_dright="toggle:0,code:16777236,engine:keyboard"
+player_5_button_dright\default=true
+player_5_button_dup="toggle:0,code:16777235,engine:keyboard"
+player_5_button_dup\default=true
+player_5_button_home="toggle:0,code:0,engine:keyboard"
+player_5_button_home\default=true
+player_5_button_l="toggle:0,code:81,engine:keyboard"
+player_5_button_l\default=true
+player_5_button_lstick="toggle:0,code:70,engine:keyboard"
+player_5_button_lstick\default=true
+player_5_button_minus="toggle:0,code:78,engine:keyboard"
+player_5_button_minus\default=true
+player_5_button_plus="toggle:0,code:77,engine:keyboard"
+player_5_button_plus\default=true
+player_5_button_r="toggle:0,code:69,engine:keyboard"
+player_5_button_r\default=true
+player_5_button_rstick="toggle:0,code:71,engine:keyboard"
+player_5_button_rstick\default=true
+player_5_button_screenshot="toggle:0,code:0,engine:keyboard"
+player_5_button_screenshot\default=true
+player_5_button_sl="toggle:0,code:81,engine:keyboard"
+player_5_button_sl\default=true
+player_5_button_sr="toggle:0,code:69,engine:keyboard"
+player_5_button_sr\default=true
+player_5_button_x="toggle:0,code:86,engine:keyboard"
+player_5_button_x\default=true
+player_5_button_y="toggle:0,code:90,engine:keyboard"
+player_5_button_y\default=true
+player_5_button_zl="toggle:0,code:82,engine:keyboard"
+player_5_button_zl\default=true
+player_5_button_zr="toggle:0,code:84,engine:keyboard"
+player_5_button_zr\default=true
+player_5_connected=false
+player_5_connected\default=true
+player_5_lstick="modifier_scale:0.500000,modifier:toggle$00$1code$016777248$1engine$0keyboard,right:toggle$00$1code$068$1engine$0keyboard,left:toggle$00$1code$065$1engine$0keyboard,down:toggle$00$1code$083$1engine$0keyboard,up:toggle$00$1code$087$1engine$0keyboard,engine:analog_from_button"
+player_5_lstick\default=true
+player_5_motionleft="toggle:0,code:55,engine:keyboard"
+player_5_motionleft\default=true
+player_5_motionright="toggle:0,code:56,engine:keyboard"
+player_5_motionright\default=true
+player_5_rstick="modifier_scale:0.500000,modifier:toggle$00$1code$00$1engine$0keyboard,right:toggle$00$1code$076$1engine$0keyboard,left:toggle$00$1code$074$1engine$0keyboard,down:toggle$00$1code$075$1engine$0keyboard,up:toggle$00$1code$073$1engine$0keyboard,engine:analog_from_button"
+player_5_rstick\default=true
+player_5_type=0
+player_5_type\default=true
+player_5_vibration_enabled=true
+player_5_vibration_enabled\default=true
+player_5_vibration_strength=100
+player_5_vibration_strength\default=true
+player_6_body_color_left=4278893030
+player_6_body_color_left\default=false
+player_6_body_color_right=4294917160
+player_6_body_color_right\default=false
+player_6_button_a="toggle:0,code:67,engine:keyboard"
+player_6_button_a\default=true
+player_6_button_b="toggle:0,code:88,engine:keyboard"
+player_6_button_b\default=true
+player_6_button_color_left=4278197790
+player_6_button_color_left\default=false
+player_6_button_color_right=4280158730
+player_6_button_color_right\default=false
+player_6_button_ddown="toggle:0,code:16777237,engine:keyboard"
+player_6_button_ddown\default=true
+player_6_button_dleft="toggle:0,code:16777234,engine:keyboard"
+player_6_button_dleft\default=true
+player_6_button_dright="toggle:0,code:16777236,engine:keyboard"
+player_6_button_dright\default=true
+player_6_button_dup="toggle:0,code:16777235,engine:keyboard"
+player_6_button_dup\default=true
+player_6_button_home="toggle:0,code:0,engine:keyboard"
+player_6_button_home\default=true
+player_6_button_l="toggle:0,code:81,engine:keyboard"
+player_6_button_l\default=true
+player_6_button_lstick="toggle:0,code:70,engine:keyboard"
+player_6_button_lstick\default=true
+player_6_button_minus="toggle:0,code:78,engine:keyboard"
+player_6_button_minus\default=true
+player_6_button_plus="toggle:0,code:77,engine:keyboard"
+player_6_button_plus\default=true
+player_6_button_r="toggle:0,code:69,engine:keyboard"
+player_6_button_r\default=true
+player_6_button_rstick="toggle:0,code:71,engine:keyboard"
+player_6_button_rstick\default=true
+player_6_button_screenshot="toggle:0,code:0,engine:keyboard"
+player_6_button_screenshot\default=true
+player_6_button_sl="toggle:0,code:81,engine:keyboard"
+player_6_button_sl\default=true
+player_6_button_sr="toggle:0,code:69,engine:keyboard"
+player_6_button_sr\default=true
+player_6_button_x="toggle:0,code:86,engine:keyboard"
+player_6_button_x\default=true
+player_6_button_y="toggle:0,code:90,engine:keyboard"
+player_6_button_y\default=true
+player_6_button_zl="toggle:0,code:82,engine:keyboard"
+player_6_button_zl\default=true
+player_6_button_zr="toggle:0,code:84,engine:keyboard"
+player_6_button_zr\default=true
+player_6_connected=false
+player_6_connected\default=true
+player_6_lstick="modifier_scale:0.500000,modifier:toggle$00$1code$016777248$1engine$0keyboard,right:toggle$00$1code$068$1engine$0keyboard,left:toggle$00$1code$065$1engine$0keyboard,down:toggle$00$1code$083$1engine$0keyboard,up:toggle$00$1code$087$1engine$0keyboard,engine:analog_from_button"
+player_6_lstick\default=true
+player_6_motionleft="toggle:0,code:55,engine:keyboard"
+player_6_motionleft\default=true
+player_6_motionright="toggle:0,code:56,engine:keyboard"
+player_6_motionright\default=true
+player_6_rstick="modifier_scale:0.500000,modifier:toggle$00$1code$00$1engine$0keyboard,right:toggle$00$1code$076$1engine$0keyboard,left:toggle$00$1code$074$1engine$0keyboard,down:toggle$00$1code$075$1engine$0keyboard,up:toggle$00$1code$073$1engine$0keyboard,engine:analog_from_button"
+player_6_rstick\default=true
+player_6_type=0
+player_6_type\default=true
+player_6_vibration_enabled=true
+player_6_vibration_enabled\default=true
+player_6_vibration_strength=100
+player_6_vibration_strength\default=true
+player_7_body_color_left=4278893030
+player_7_body_color_left\default=false
+player_7_body_color_right=4294917160
+player_7_body_color_right\default=false
+player_7_button_a="toggle:0,code:67,engine:keyboard"
+player_7_button_a\default=true
+player_7_button_b="toggle:0,code:88,engine:keyboard"
+player_7_button_b\default=true
+player_7_button_color_left=4278197790
+player_7_button_color_left\default=false
+player_7_button_color_right=4280158730
+player_7_button_color_right\default=false
+player_7_button_ddown="toggle:0,code:16777237,engine:keyboard"
+player_7_button_ddown\default=true
+player_7_button_dleft="toggle:0,code:16777234,engine:keyboard"
+player_7_button_dleft\default=true
+player_7_button_dright="toggle:0,code:16777236,engine:keyboard"
+player_7_button_dright\default=true
+player_7_button_dup="toggle:0,code:16777235,engine:keyboard"
+player_7_button_dup\default=true
+player_7_button_home="toggle:0,code:0,engine:keyboard"
+player_7_button_home\default=true
+player_7_button_l="toggle:0,code:81,engine:keyboard"
+player_7_button_l\default=true
+player_7_button_lstick="toggle:0,code:70,engine:keyboard"
+player_7_button_lstick\default=true
+player_7_button_minus="toggle:0,code:78,engine:keyboard"
+player_7_button_minus\default=true
+player_7_button_plus="toggle:0,code:77,engine:keyboard"
+player_7_button_plus\default=true
+player_7_button_r="toggle:0,code:69,engine:keyboard"
+player_7_button_r\default=true
+player_7_button_rstick="toggle:0,code:71,engine:keyboard"
+player_7_button_rstick\default=true
+player_7_button_screenshot="toggle:0,code:0,engine:keyboard"
+player_7_button_screenshot\default=true
+player_7_button_sl="toggle:0,code:81,engine:keyboard"
+player_7_button_sl\default=true
+player_7_button_sr="toggle:0,code:69,engine:keyboard"
+player_7_button_sr\default=true
+player_7_button_x="toggle:0,code:86,engine:keyboard"
+player_7_button_x\default=true
+player_7_button_y="toggle:0,code:90,engine:keyboard"
+player_7_button_y\default=true
+player_7_button_zl="toggle:0,code:82,engine:keyboard"
+player_7_button_zl\default=true
+player_7_button_zr="toggle:0,code:84,engine:keyboard"
+player_7_button_zr\default=true
+player_7_connected=false
+player_7_connected\default=true
+player_7_lstick="modifier_scale:0.500000,modifier:toggle$00$1code$016777248$1engine$0keyboard,right:toggle$00$1code$068$1engine$0keyboard,left:toggle$00$1code$065$1engine$0keyboard,down:toggle$00$1code$083$1engine$0keyboard,up:toggle$00$1code$087$1engine$0keyboard,engine:analog_from_button"
+player_7_lstick\default=true
+player_7_motionleft="toggle:0,code:55,engine:keyboard"
+player_7_motionleft\default=true
+player_7_motionright="toggle:0,code:56,engine:keyboard"
+player_7_motionright\default=true
+player_7_rstick="modifier_scale:0.500000,modifier:toggle$00$1code$00$1engine$0keyboard,right:toggle$00$1code$076$1engine$0keyboard,left:toggle$00$1code$074$1engine$0keyboard,down:toggle$00$1code$075$1engine$0keyboard,up:toggle$00$1code$073$1engine$0keyboard,engine:analog_from_button"
+player_7_rstick\default=true
+player_7_type=0
+player_7_type\default=true
+player_7_vibration_enabled=true
+player_7_vibration_enabled\default=true
+player_7_vibration_strength=100
+player_7_vibration_strength\default=true
+player_8_body_color_left=702950
+player_8_body_color_left\default=true
+player_8_body_color_right=16727080
+player_8_body_color_right\default=true
+player_8_button_a="toggle:0,code:67,engine:keyboard"
+player_8_button_a\default=true
+player_8_button_b="toggle:0,code:88,engine:keyboard"
+player_8_button_b\default=true
+player_8_button_color_left=7710
+player_8_button_color_left\default=true
+player_8_button_color_right=1968650
+player_8_button_color_right\default=true
+player_8_button_ddown="toggle:0,code:16777237,engine:keyboard"
+player_8_button_ddown\default=true
+player_8_button_dleft="toggle:0,code:16777234,engine:keyboard"
+player_8_button_dleft\default=true
+player_8_button_dright="toggle:0,code:16777236,engine:keyboard"
+player_8_button_dright\default=true
+player_8_button_dup="toggle:0,code:16777235,engine:keyboard"
+player_8_button_dup\default=true
+player_8_button_home="toggle:0,code:0,engine:keyboard"
+player_8_button_home\default=true
+player_8_button_l="toggle:0,code:81,engine:keyboard"
+player_8_button_l\default=true
+player_8_button_lstick="toggle:0,code:70,engine:keyboard"
+player_8_button_lstick\default=true
+player_8_button_minus="toggle:0,code:78,engine:keyboard"
+player_8_button_minus\default=true
+player_8_button_plus="toggle:0,code:77,engine:keyboard"
+player_8_button_plus\default=true
+player_8_button_r="toggle:0,code:69,engine:keyboard"
+player_8_button_r\default=true
+player_8_button_rstick="toggle:0,code:71,engine:keyboard"
+player_8_button_rstick\default=true
+player_8_button_screenshot="toggle:0,code:0,engine:keyboard"
+player_8_button_screenshot\default=true
+player_8_button_sl="toggle:0,code:81,engine:keyboard"
+player_8_button_sl\default=true
+player_8_button_sr="toggle:0,code:69,engine:keyboard"
+player_8_button_sr\default=true
+player_8_button_x="toggle:0,code:86,engine:keyboard"
+player_8_button_x\default=true
+player_8_button_y="toggle:0,code:90,engine:keyboard"
+player_8_button_y\default=true
+player_8_button_zl="toggle:0,code:82,engine:keyboard"
+player_8_button_zl\default=true
+player_8_button_zr="toggle:0,code:84,engine:keyboard"
+player_8_button_zr\default=true
+player_8_connected=false
+player_8_connected\default=true
+player_8_lstick="modifier_scale:0.500000,modifier:toggle$00$1code$016777248$1engine$0keyboard,right:toggle$00$1code$068$1engine$0keyboard,left:toggle$00$1code$065$1engine$0keyboard,down:toggle$00$1code$083$1engine$0keyboard,up:toggle$00$1code$087$1engine$0keyboard,engine:analog_from_button"
+player_8_lstick\default=true
+player_8_motionleft="toggle:0,code:55,engine:keyboard"
+player_8_motionleft\default=true
+player_8_motionright="toggle:0,code:56,engine:keyboard"
+player_8_motionright\default=true
+player_8_rstick="modifier_scale:0.500000,modifier:toggle$00$1code$00$1engine$0keyboard,right:toggle$00$1code$076$1engine$0keyboard,left:toggle$00$1code$074$1engine$0keyboard,down:toggle$00$1code$075$1engine$0keyboard,up:toggle$00$1code$073$1engine$0keyboard,engine:analog_from_button"
+player_8_rstick\default=true
+player_8_type=0
+player_8_type\default=true
+player_8_vibration_enabled=true
+player_8_vibration_enabled\default=true
+player_8_vibration_strength=100
+player_8_vibration_strength\default=true
+player_9_body_color_left=702950
+player_9_body_color_left\default=true
+player_9_body_color_right=16727080
+player_9_body_color_right\default=true
+player_9_button_a="toggle:0,code:67,engine:keyboard"
+player_9_button_a\default=true
+player_9_button_b="toggle:0,code:88,engine:keyboard"
+player_9_button_b\default=true
+player_9_button_color_left=7710
+player_9_button_color_left\default=true
+player_9_button_color_right=1968650
+player_9_button_color_right\default=true
+player_9_button_ddown="toggle:0,code:16777237,engine:keyboard"
+player_9_button_ddown\default=true
+player_9_button_dleft="toggle:0,code:16777234,engine:keyboard"
+player_9_button_dleft\default=true
+player_9_button_dright="toggle:0,code:16777236,engine:keyboard"
+player_9_button_dright\default=true
+player_9_button_dup="toggle:0,code:16777235,engine:keyboard"
+player_9_button_dup\default=true
+player_9_button_home="toggle:0,code:0,engine:keyboard"
+player_9_button_home\default=true
+player_9_button_l="toggle:0,code:81,engine:keyboard"
+player_9_button_l\default=true
+player_9_button_lstick="toggle:0,code:70,engine:keyboard"
+player_9_button_lstick\default=true
+player_9_button_minus="toggle:0,code:78,engine:keyboard"
+player_9_button_minus\default=true
+player_9_button_plus="toggle:0,code:77,engine:keyboard"
+player_9_button_plus\default=true
+player_9_button_r="toggle:0,code:69,engine:keyboard"
+player_9_button_r\default=true
+player_9_button_rstick="toggle:0,code:71,engine:keyboard"
+player_9_button_rstick\default=true
+player_9_button_screenshot="toggle:0,code:0,engine:keyboard"
+player_9_button_screenshot\default=true
+player_9_button_sl="toggle:0,code:81,engine:keyboard"
+player_9_button_sl\default=true
+player_9_button_sr="toggle:0,code:69,engine:keyboard"
+player_9_button_sr\default=true
+player_9_button_x="toggle:0,code:86,engine:keyboard"
+player_9_button_x\default=true
+player_9_button_y="toggle:0,code:90,engine:keyboard"
+player_9_button_y\default=true
+player_9_button_zl="toggle:0,code:82,engine:keyboard"
+player_9_button_zl\default=true
+player_9_button_zr="toggle:0,code:84,engine:keyboard"
+player_9_button_zr\default=true
+player_9_connected=false
+player_9_connected\default=true
+player_9_lstick="modifier_scale:0.500000,modifier:toggle$00$1code$016777248$1engine$0keyboard,right:toggle$00$1code$068$1engine$0keyboard,left:toggle$00$1code$065$1engine$0keyboard,down:toggle$00$1code$083$1engine$0keyboard,up:toggle$00$1code$087$1engine$0keyboard,engine:analog_from_button"
+player_9_lstick\default=true
+player_9_motionleft="toggle:0,code:55,engine:keyboard"
+player_9_motionleft\default=true
+player_9_motionright="toggle:0,code:56,engine:keyboard"
+player_9_motionright\default=true
+player_9_rstick="modifier_scale:0.500000,modifier:toggle$00$1code$00$1engine$0keyboard,right:toggle$00$1code$076$1engine$0keyboard,left:toggle$00$1code$074$1engine$0keyboard,down:toggle$00$1code$075$1engine$0keyboard,up:toggle$00$1code$073$1engine$0keyboard,engine:analog_from_button"
+player_9_rstick\default=true
+player_9_type=0
+player_9_type\default=true
+player_9_vibration_enabled=true
+player_9_vibration_enabled\default=true
+player_9_vibration_strength=100
+player_9_vibration_strength\default=true
+ring_controller="modifier_scale:0.050000,modifier:toggle$00$1code$00$1engine$0keyboard,right:toggle$00$1code$068$1engine$0keyboard,left:toggle$00$1code$065$1engine$0keyboard,down:toggle$00$1code$00$1engine$0keyboard,up:toggle$00$1code$00$1engine$0keyboard,engine:analog_from_button"
+ring_controller\default=true
+tas_enable=false
+tas_enable\default=true
+tas_loop=false
+tas_loop\default=true
+touch_device="min_x:100,min_y:50,max_x:1800,max_y:850"
+touch_device\default=true
+touch_from_button_map=0
+touch_from_button_map\default=true
+touch_from_button_maps\1\entries\size=0
+touch_from_button_maps\1\name=default
+touch_from_button_maps\1\name\default=true
+touch_from_button_maps\size=1
+touchscreen_angle=0
+touchscreen_angle\default=true
+touchscreen_diameter_x=15
+touchscreen_diameter_x\default=true
+touchscreen_diameter_y=15
+touchscreen_diameter_y\default=true
+touchscreen_enabled=true
+touchscreen_enabled\default=true
+udp_input_servers=127.0.0.1:26760
+udp_input_servers\default=true
+use_docked_mode=false
+use_docked_mode\default=false
+vibration_enabled=true
+vibration_enabled\default=true
+
+[Core]
+use_extended_memory_layout=false
+use_extended_memory_layout\default=true
+use_multi_core=true
+use_multi_core\default=true
+
+[Cpu]
+cpu_accuracy=0
+cpu_accuracy\default=true
+cpu_accuracy_first_time=false
+cpu_accuracy_first_time\default=false
+cpu_debug_mode=false
+cpu_debug_mode\default=true
+cpuopt_block_linking=true
+cpuopt_block_linking\default=true
+cpuopt_const_prop=true
+cpuopt_const_prop\default=true
+cpuopt_context_elimination=true
+cpuopt_context_elimination\default=true
+cpuopt_fast_dispatcher=true
+cpuopt_fast_dispatcher\default=true
+cpuopt_fastmem=true
+cpuopt_fastmem\default=true
+cpuopt_fastmem_exclusives=true
+cpuopt_fastmem_exclusives\default=true
+cpuopt_ignore_memory_aborts=true
+cpuopt_ignore_memory_aborts\default=true
+cpuopt_misc_ir=true
+cpuopt_misc_ir\default=true
+cpuopt_page_tables=true
+cpuopt_page_tables\default=true
+cpuopt_recompile_exclusives=true
+cpuopt_recompile_exclusives\default=true
+cpuopt_reduce_misalign_checks=true
+cpuopt_reduce_misalign_checks\default=true
+cpuopt_return_stack_buffer=true
+cpuopt_return_stack_buffer\default=true
+cpuopt_unsafe_fastmem_check=true
+cpuopt_unsafe_fastmem_check\default=true
+cpuopt_unsafe_ignore_global_monitor=true
+cpuopt_unsafe_ignore_global_monitor\default=true
+cpuopt_unsafe_ignore_standard_fpcr=true
+cpuopt_unsafe_ignore_standard_fpcr\default=true
+cpuopt_unsafe_inaccurate_nan=true
+cpuopt_unsafe_inaccurate_nan\default=true
+cpuopt_unsafe_reduce_fp_error=true
+cpuopt_unsafe_reduce_fp_error\default=true
+cpuopt_unsafe_unfuse_fma=true
+cpuopt_unsafe_unfuse_fma\default=true
+
+[Data%20Storage]
+dump_directory=/var/data/yuzu/dump
+dump_directory\default=true
+gamecard_current_game=false
+gamecard_current_game\default=true
+gamecard_inserted=false
+gamecard_inserted\default=true
+gamecard_path=
+gamecard_path\default=true
+load_directory=/var/data/yuzu/load
+load_directory\default=true
+nand_directory=RETRODECKHOMEDIR/saves/switch/nand
+nand_directory\default=true
+sdmc_directory=RETRODECKHOMEDIR/saves/switch/sdmc
+sdmc_directory\default=true
+tas_directory=/var/data/yuzu/tas
+tas_directory\default=true
+use_virtual_sd=true
+use_virtual_sd\default=true
+
+[Debugging]
+create_crash_dumps=false
+create_crash_dumps\default=true
+disable_macro_hle=false
+disable_macro_hle\default=true
+disable_macro_jit=false
+disable_macro_jit\default=true
+dump_exefs=false
+dump_exefs\default=true
+dump_nso=false
+dump_nso\default=true
+enable_all_controllers=false
+enable_all_controllers\default=true
+enable_fs_access_log=false
+enable_fs_access_log\default=true
+gdbstub_port=6543
+gdbstub_port\default=true
+perform_vulkan_check=true
+perform_vulkan_check\default=true
+program_args=
+program_args\default=true
+quest_flag=false
+quest_flag\default=true
+record_frame_times=false
+use_debug_asserts=false
+use_debug_asserts\default=true
+use_gdbstub=false
+use_gdbstub\default=true
+
+[DisabledAddOns]
+1\disabled\size=0
+1\title_id=@Variant(\0\0\0\x84\x1\0\xa3\xd0\b\xc5\xc0\0)
+1\title_id\default=false
+size=1
+
+[Miscellaneous]
+log_filter=*:Info
+log_filter\default=true
+use_dev_keys=false
+use_dev_keys\default=true
+
+[Multiplayer]
+game_id=0
+game_id\default=true
+host_type=0
+host_type\default=true
+ip=
+ip\default=true
+ip_ban_list\size=0
+max_player=8
+max_player\default=true
+nickname=
+nickname\default=true
+port=24872
+port\default=true
+room_description=
+room_description\default=true
+room_name=
+room_name\default=true
+room_nickname=RetroDECK
+room_nickname\default=true
+room_port=24872
+room_port\default=true
+username_ban_list\size=0
+
+[Renderer]
+accelerate_astc=true
+accelerate_astc\default=true
+anti_aliasing=0
+anti_aliasing\default=true
+aspect_ratio=0
+aspect_ratio\default=true
+async_astc=false
+async_astc\default=true
+backend=1
+backend\default=true
+bg_blue=0
+bg_blue\default=true
+bg_green=0
+bg_green\default=true
+bg_red=0
+bg_red\default=true
+debug=false
+debug\default=true
+disable_shader_loop_safety_checks=false
+disable_shader_loop_safety_checks\default=true
+force_max_clock=false
+force_max_clock\default=true
+fsr_sharpening_slider=25
+fsr_sharpening_slider\default=true
+fullscreen_mode=1
+fullscreen_mode\default=true
+gpu_accuracy=0
+gpu_accuracy\default=false
+max_anisotropy=1
+max_anisotropy\default=false
+nsight_aftermath=false
+nsight_aftermath\default=true
+nvdec_emulation=2
+nvdec_emulation\default=true
+resolution_setup=2
+resolution_setup\default=true
+scaling_filter=5
+scaling_filter\default=false
+shader_backend=0
+shader_backend\default=true
+shader_feedback=false
+shader_feedback\default=true
+speed_limit=100
+speed_limit\default=true
+use_asynchronous_gpu_emulation=true
+use_asynchronous_gpu_emulation\default=true
+use_asynchronous_shaders=true
+use_asynchronous_shaders\default=false
+use_disk_shader_cache=true
+use_disk_shader_cache\default=true
+use_fast_gpu_time=true
+use_fast_gpu_time\default=true
+use_pessimistic_flushes=false
+use_pessimistic_flushes\default=true
+use_vsync=true
+use_vsync\default=true
+use_vulkan_driver_pipeline_cache=true
+use_vulkan_driver_pipeline_cache\default=true
+vulkan_device=0
+vulkan_device\default=true
+
+[Services]
+network_interface=wlan0
+network_interface\default=false
+
+[System]
+current_user=0
+current_user\default=true
+custom_rtc=0
+custom_rtc\default=true
+custom_rtc_enabled=false
+custom_rtc_enabled\default=true
+device_name=RetroDECK
+device_name\default=false
+language_index=12
+language_index\default=false
+region_index=2
+region_index\default=false
+rng_seed=0
+rng_seed\default=true
+rng_seed_enabled=false
+rng_seed_enabled\default=true
+sound_index=1
+sound_index\default=true
+time_zone_index=0
+time_zone_index\default=true
+
+[UI]
+Multiplayer\game_id=0
+Multiplayer\game_id\default=true
+Multiplayer\host_type=0
+Multiplayer\host_type\default=true
+Multiplayer\ip=
+Multiplayer\ip\default=true
+Multiplayer\ip_ban_list\size=0
+Multiplayer\max_player=8
+Multiplayer\max_player\default=true
+Multiplayer\nickname=
+Multiplayer\nickname\default=true
+Multiplayer\port=24872
+Multiplayer\port\default=true
+Multiplayer\room_description=
+Multiplayer\room_description\default=true
+Multiplayer\room_name=
+Multiplayer\room_name\default=true
+Multiplayer\room_nickname=
+Multiplayer\room_nickname\default=true
+Multiplayer\room_port=24872
+Multiplayer\room_port\default=true
+Multiplayer\username_ban_list\size=0
+Paths\gamedirs\1\deep_scan=false
+Paths\gamedirs\1\deep_scan\default=true
+Paths\gamedirs\1\expanded=true
+Paths\gamedirs\1\expanded\default=true
+Paths\gamedirs\1\path=SDMC
+Paths\gamedirs\2\deep_scan=false
+Paths\gamedirs\2\deep_scan\default=true
+Paths\gamedirs\2\expanded=true
+Paths\gamedirs\2\expanded\default=true
+Paths\gamedirs\2\path=UserNAND
+Paths\gamedirs\3\deep_scan=false
+Paths\gamedirs\3\deep_scan\default=true
+Paths\gamedirs\3\expanded=true
+Paths\gamedirs\3\expanded\default=true
+Paths\gamedirs\3\path=SysNAND
+Paths\gamedirs\4\deep_scan=false
+Paths\gamedirs\4\deep_scan\default=true
+Paths\gamedirs\4\expanded=true
+Paths\gamedirs\4\expanded\default=true
+Paths\gamedirs\4\path=RETRODECKHOMEDIR/roms/switch
+Paths\gamedirs\size=4
+Paths\language=en
+Paths\language\default=false
+Paths\recentFiles=@Invalid()
+Paths\romsPath=
+Paths\symbolsPath=
+Screenshots\enable_screenshot_save_as=true
+Screenshots\enable_screenshot_save_as\default=true
+Screenshots\screenshot_path=RETRODECKHOMEDIR/screenshots/
+Shortcuts\Main%20Window\Audio%20Mute\Unmute\Context=1
+Shortcuts\Main%20Window\Audio%20Mute\Unmute\Context\default=true
+Shortcuts\Main%20Window\Audio%20Mute\Unmute\Controller_KeySeq=
+Shortcuts\Main%20Window\Audio%20Mute\Unmute\Controller_KeySeq\default=false
+Shortcuts\Main%20Window\Audio%20Mute\Unmute\KeySeq=
+Shortcuts\Main%20Window\Audio%20Mute\Unmute\KeySeq\default=false
+Shortcuts\Main%20Window\Audio%20Mute\Unmute\Repeat=false
+Shortcuts\Main%20Window\Audio%20Mute\Unmute\Repeat\default=true
+Shortcuts\Main%20Window\Audio%20Volume%20Down\Context=1
+Shortcuts\Main%20Window\Audio%20Volume%20Down\Context\default=false
+Shortcuts\Main%20Window\Audio%20Volume%20Down\Controller_KeySeq=
+Shortcuts\Main%20Window\Audio%20Volume%20Down\Controller_KeySeq\default=false
+Shortcuts\Main%20Window\Audio%20Volume%20Down\KeySeq=
+Shortcuts\Main%20Window\Audio%20Volume%20Down\KeySeq\default=false
+Shortcuts\Main%20Window\Audio%20Volume%20Down\Repeat=true
+Shortcuts\Main%20Window\Audio%20Volume%20Down\Repeat\default=true
+Shortcuts\Main%20Window\Audio%20Volume%20Up\Context=1
+Shortcuts\Main%20Window\Audio%20Volume%20Up\Context\default=false
+Shortcuts\Main%20Window\Audio%20Volume%20Up\Controller_KeySeq=
+Shortcuts\Main%20Window\Audio%20Volume%20Up\Controller_KeySeq\default=false
+Shortcuts\Main%20Window\Audio%20Volume%20Up\KeySeq=
+Shortcuts\Main%20Window\Audio%20Volume%20Up\KeySeq\default=false
+Shortcuts\Main%20Window\Audio%20Volume%20Up\Repeat=true
+Shortcuts\Main%20Window\Audio%20Volume%20Up\Repeat\default=true
+Shortcuts\Main%20Window\Capture%20Screenshot\Context=3
+Shortcuts\Main%20Window\Capture%20Screenshot\Context\default=true
+Shortcuts\Main%20Window\Capture%20Screenshot\Controller_KeySeq=
+Shortcuts\Main%20Window\Capture%20Screenshot\Controller_KeySeq\default=false
+Shortcuts\Main%20Window\Capture%20Screenshot\KeySeq=Ctrl+X
+Shortcuts\Main%20Window\Capture%20Screenshot\KeySeq\default=false
+Shortcuts\Main%20Window\Capture%20Screenshot\Repeat=false
+Shortcuts\Main%20Window\Capture%20Screenshot\Repeat\default=true
+Shortcuts\Main%20Window\Change%20Adapting%20Filter\Context=1
+Shortcuts\Main%20Window\Change%20Adapting%20Filter\Context\default=false
+Shortcuts\Main%20Window\Change%20Adapting%20Filter\Controller_KeySeq=
+Shortcuts\Main%20Window\Change%20Adapting%20Filter\Controller_KeySeq\default=false
+Shortcuts\Main%20Window\Change%20Adapting%20Filter\KeySeq=
+Shortcuts\Main%20Window\Change%20Adapting%20Filter\KeySeq\default=false
+Shortcuts\Main%20Window\Change%20Adapting%20Filter\Repeat=false
+Shortcuts\Main%20Window\Change%20Adapting%20Filter\Repeat\default=true
+Shortcuts\Main%20Window\Change%20Docked%20Mode\Context=2
+Shortcuts\Main%20Window\Change%20Docked%20Mode\Context\default=true
+Shortcuts\Main%20Window\Change%20Docked%20Mode\Controller_KeySeq=
+Shortcuts\Main%20Window\Change%20Docked%20Mode\Controller_KeySeq\default=false
+Shortcuts\Main%20Window\Change%20Docked%20Mode\KeySeq=Alt+D
+Shortcuts\Main%20Window\Change%20Docked%20Mode\KeySeq\default=false
+Shortcuts\Main%20Window\Change%20Docked%20Mode\Repeat=false
+Shortcuts\Main%20Window\Change%20Docked%20Mode\Repeat\default=true
+Shortcuts\Main%20Window\Change%20GPU%20Accuracy\Context=2
+Shortcuts\Main%20Window\Change%20GPU%20Accuracy\Context\default=true
+Shortcuts\Main%20Window\Change%20GPU%20Accuracy\Controller_KeySeq=
+Shortcuts\Main%20Window\Change%20GPU%20Accuracy\Controller_KeySeq\default=false
+Shortcuts\Main%20Window\Change%20GPU%20Accuracy\KeySeq=Alt+G
+Shortcuts\Main%20Window\Change%20GPU%20Accuracy\KeySeq\default=false
+Shortcuts\Main%20Window\Change%20GPU%20Accuracy\Repeat=false
+Shortcuts\Main%20Window\Change%20GPU%20Accuracy\Repeat\default=true
+Shortcuts\Main%20Window\Continue\Pause%20Emulation\Context=1
+Shortcuts\Main%20Window\Continue\Pause%20Emulation\Context\default=true
+Shortcuts\Main%20Window\Continue\Pause%20Emulation\Controller_KeySeq=
+Shortcuts\Main%20Window\Continue\Pause%20Emulation\Controller_KeySeq\default=false
+Shortcuts\Main%20Window\Continue\Pause%20Emulation\KeySeq=Ctrl+P
+Shortcuts\Main%20Window\Continue\Pause%20Emulation\KeySeq\default=false
+Shortcuts\Main%20Window\Continue\Pause%20Emulation\Repeat=false
+Shortcuts\Main%20Window\Continue\Pause%20Emulation\Repeat\default=true
+Shortcuts\Main%20Window\Exit%20Fullscreen\Context=1
+Shortcuts\Main%20Window\Exit%20Fullscreen\Context\default=true
+Shortcuts\Main%20Window\Exit%20Fullscreen\Controller_KeySeq=
+Shortcuts\Main%20Window\Exit%20Fullscreen\Controller_KeySeq\default=true
+Shortcuts\Main%20Window\Exit%20Fullscreen\KeySeq=Ctrl+O
+Shortcuts\Main%20Window\Exit%20Fullscreen\KeySeq\default=false
+Shortcuts\Main%20Window\Exit%20Fullscreen\Repeat=false
+Shortcuts\Main%20Window\Exit%20Fullscreen\Repeat\default=true
+Shortcuts\Main%20Window\Exit%20yuzu\Context=1
+Shortcuts\Main%20Window\Exit%20yuzu\Context\default=true
+Shortcuts\Main%20Window\Exit%20yuzu\Controller_KeySeq=
+Shortcuts\Main%20Window\Exit%20yuzu\Controller_KeySeq\default=false
+Shortcuts\Main%20Window\Exit%20yuzu\KeySeq=Ctrl+Q
+Shortcuts\Main%20Window\Exit%20yuzu\KeySeq\default=false
+Shortcuts\Main%20Window\Exit%20yuzu\Repeat=false
+Shortcuts\Main%20Window\Exit%20yuzu\Repeat\default=true
+Shortcuts\Main%20Window\Fullscreen\Context=1
+Shortcuts\Main%20Window\Fullscreen\Context\default=true
+Shortcuts\Main%20Window\Fullscreen\Controller_KeySeq=
+Shortcuts\Main%20Window\Fullscreen\Controller_KeySeq\default=false
+Shortcuts\Main%20Window\Fullscreen\KeySeq=Ctrl+Return
+Shortcuts\Main%20Window\Fullscreen\KeySeq\default=false
+Shortcuts\Main%20Window\Fullscreen\Repeat=false
+Shortcuts\Main%20Window\Fullscreen\Repeat\default=true
+Shortcuts\Main%20Window\Load%20File\Context=1
+Shortcuts\Main%20Window\Load%20File\Context\default=false
+Shortcuts\Main%20Window\Load%20File\Controller_KeySeq=
+Shortcuts\Main%20Window\Load%20File\Controller_KeySeq\default=true
+Shortcuts\Main%20Window\Load%20File\KeySeq=
+Shortcuts\Main%20Window\Load%20File\KeySeq\default=false
+Shortcuts\Main%20Window\Load%20File\Repeat=false
+Shortcuts\Main%20Window\Load%20File\Repeat\default=true
+Shortcuts\Main%20Window\Load\Remove%20Amiibo\Context=3
+Shortcuts\Main%20Window\Load\Remove%20Amiibo\Context\default=true
+Shortcuts\Main%20Window\Load\Remove%20Amiibo\Controller_KeySeq=
+Shortcuts\Main%20Window\Load\Remove%20Amiibo\Controller_KeySeq\default=false
+Shortcuts\Main%20Window\Load\Remove%20Amiibo\KeySeq=Alt+M
+Shortcuts\Main%20Window\Load\Remove%20Amiibo\KeySeq\default=false
+Shortcuts\Main%20Window\Load\Remove%20Amiibo\Repeat=false
+Shortcuts\Main%20Window\Load\Remove%20Amiibo\Repeat\default=true
+Shortcuts\Main%20Window\Restart%20Emulation\Context=1
+Shortcuts\Main%20Window\Restart%20Emulation\Context\default=true
+Shortcuts\Main%20Window\Restart%20Emulation\Controller_KeySeq=
+Shortcuts\Main%20Window\Restart%20Emulation\Controller_KeySeq\default=true
+Shortcuts\Main%20Window\Restart%20Emulation\KeySeq=Ctrl+R
+Shortcuts\Main%20Window\Restart%20Emulation\KeySeq\default=false
+Shortcuts\Main%20Window\Restart%20Emulation\Repeat=false
+Shortcuts\Main%20Window\Restart%20Emulation\Repeat\default=true
+Shortcuts\Main%20Window\Stop%20Emulation\Context=1
+Shortcuts\Main%20Window\Stop%20Emulation\Context\default=true
+Shortcuts\Main%20Window\Stop%20Emulation\Controller_KeySeq=
+Shortcuts\Main%20Window\Stop%20Emulation\Controller_KeySeq\default=true
+Shortcuts\Main%20Window\Stop%20Emulation\KeySeq=
+Shortcuts\Main%20Window\Stop%20Emulation\KeySeq\default=false
+Shortcuts\Main%20Window\Stop%20Emulation\Repeat=false
+Shortcuts\Main%20Window\Stop%20Emulation\Repeat\default=true
+Shortcuts\Main%20Window\TAS%20Record\Context=1
+Shortcuts\Main%20Window\TAS%20Record\Context\default=false
+Shortcuts\Main%20Window\TAS%20Record\Controller_KeySeq=
+Shortcuts\Main%20Window\TAS%20Record\Controller_KeySeq\default=true
+Shortcuts\Main%20Window\TAS%20Record\KeySeq=
+Shortcuts\Main%20Window\TAS%20Record\KeySeq\default=false
+Shortcuts\Main%20Window\TAS%20Record\Repeat=false
+Shortcuts\Main%20Window\TAS%20Record\Repeat\default=true
+Shortcuts\Main%20Window\TAS%20Reset\Context=1
+Shortcuts\Main%20Window\TAS%20Reset\Context\default=false
+Shortcuts\Main%20Window\TAS%20Reset\Controller_KeySeq=
+Shortcuts\Main%20Window\TAS%20Reset\Controller_KeySeq\default=true
+Shortcuts\Main%20Window\TAS%20Reset\KeySeq=
+Shortcuts\Main%20Window\TAS%20Reset\KeySeq\default=false
+Shortcuts\Main%20Window\TAS%20Reset\Repeat=false
+Shortcuts\Main%20Window\TAS%20Reset\Repeat\default=true
+Shortcuts\Main%20Window\TAS%20Start\Stop\Context=1
+Shortcuts\Main%20Window\TAS%20Start\Stop\Context\default=false
+Shortcuts\Main%20Window\TAS%20Start\Stop\Controller_KeySeq=
+Shortcuts\Main%20Window\TAS%20Start\Stop\Controller_KeySeq\default=true
+Shortcuts\Main%20Window\TAS%20Start\Stop\KeySeq=
+Shortcuts\Main%20Window\TAS%20Start\Stop\KeySeq\default=false
+Shortcuts\Main%20Window\TAS%20Start\Stop\Repeat=false
+Shortcuts\Main%20Window\TAS%20Start\Stop\Repeat\default=true
+Shortcuts\Main%20Window\Toggle%20Filter%20Bar\Context=1
+Shortcuts\Main%20Window\Toggle%20Filter%20Bar\Context\default=true
+Shortcuts\Main%20Window\Toggle%20Filter%20Bar\Controller_KeySeq=
+Shortcuts\Main%20Window\Toggle%20Filter%20Bar\Controller_KeySeq\default=true
+Shortcuts\Main%20Window\Toggle%20Filter%20Bar\KeySeq=
+Shortcuts\Main%20Window\Toggle%20Filter%20Bar\KeySeq\default=false
+Shortcuts\Main%20Window\Toggle%20Filter%20Bar\Repeat=false
+Shortcuts\Main%20Window\Toggle%20Filter%20Bar\Repeat\default=true
+Shortcuts\Main%20Window\Toggle%20Framerate%20Limit\Context=2
+Shortcuts\Main%20Window\Toggle%20Framerate%20Limit\Context\default=true
+Shortcuts\Main%20Window\Toggle%20Framerate%20Limit\Controller_KeySeq=
+Shortcuts\Main%20Window\Toggle%20Framerate%20Limit\Controller_KeySeq\default=false
+Shortcuts\Main%20Window\Toggle%20Framerate%20Limit\KeySeq=Ctrl+Z
+Shortcuts\Main%20Window\Toggle%20Framerate%20Limit\KeySeq\default=false
+Shortcuts\Main%20Window\Toggle%20Framerate%20Limit\Repeat=false
+Shortcuts\Main%20Window\Toggle%20Framerate%20Limit\Repeat\default=true
+Shortcuts\Main%20Window\Toggle%20Mouse%20Panning\Context=1
+Shortcuts\Main%20Window\Toggle%20Mouse%20Panning\Context\default=false
+Shortcuts\Main%20Window\Toggle%20Mouse%20Panning\Controller_KeySeq=
+Shortcuts\Main%20Window\Toggle%20Mouse%20Panning\Controller_KeySeq\default=true
+Shortcuts\Main%20Window\Toggle%20Mouse%20Panning\KeySeq=
+Shortcuts\Main%20Window\Toggle%20Mouse%20Panning\KeySeq\default=false
+Shortcuts\Main%20Window\Toggle%20Mouse%20Panning\Repeat=false
+Shortcuts\Main%20Window\Toggle%20Mouse%20Panning\Repeat\default=true
+Shortcuts\Main%20Window\Toggle%20Status%20Bar\Context=1
+Shortcuts\Main%20Window\Toggle%20Status%20Bar\Context\default=true
+Shortcuts\Main%20Window\Toggle%20Status%20Bar\Controller_KeySeq=
+Shortcuts\Main%20Window\Toggle%20Status%20Bar\Controller_KeySeq\default=true
+Shortcuts\Main%20Window\Toggle%20Status%20Bar\KeySeq=
+Shortcuts\Main%20Window\Toggle%20Status%20Bar\KeySeq\default=false
+Shortcuts\Main%20Window\Toggle%20Status%20Bar\Repeat=false
+Shortcuts\Main%20Window\Toggle%20Status%20Bar\Repeat\default=true
+UIGameList\cache_game_list=true
+UIGameList\cache_game_list\default=true
+UIGameList\favorites\size=0
+UIGameList\favorites_expanded=true
+UIGameList\favorites_expanded\default=true
+UIGameList\folder_icon_size=48
+UIGameList\folder_icon_size\default=true
+UIGameList\game_icon_size=64
+UIGameList\game_icon_size\default=true
+UIGameList\row_1_text_id=3
+UIGameList\row_1_text_id\default=true
+UIGameList\row_2_text_id=2
+UIGameList\row_2_text_id\default=true
+UIGameList\show_add_ons=true
+UIGameList\show_add_ons\default=true
+UIGameList\show_compat=false
+UIGameList\show_compat\default=true
+UIGameList\show_size=true
+UIGameList\show_size\default=true
+UIGameList\show_types=true
+UIGameList\show_types\default=true
+UILayout\gameListHeaderState=@ByteArray(\0\0\0\xff\0\0\0\0\0\0\0\x1\0\0\0\x1\0\0\0\x5\x1\0\0\0\0\0\0\0\0\0\0\0\x5\x2\0\0\0\x1\0\0\0\x1\0\0\0\x64\0\0\x4X\0\0\0\x5\x1\x1\0\x1\0\0\0\0\0\0\0\0\0\0\0\0\x64\xff\xff\xff\xff\0\0\0\x81\0\0\0\0\0\0\0\x5\0\0\x2\x80\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\x1\x10\0\0\0\x1\0\0\0\0\0\0\x3\xe8\0\0\0\0\x64)
+UILayout\geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\0\0\0\0\0\0\0\x4W\0\0\x2\x14\0\0\0\0\0\0\0\0\0\0\x4W\0\0\x2\x14\0\0\0\0\0\0\0\0\x4\xfd\0\0\0\0\0\0\0\0\0\0\x4W\0\0\x2\x14)
+UILayout\geometryRenderWindow=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\0\0\0\0\x14\0\0\0\x63\0\0\0\x31\0\0\0\0\0\0\0\x14\0\0\0\x63\0\0\0\x31\0\0\0\0\0\0\0\0\x4\xfd\0\0\0\0\0\0\0\x14\0\0\0\x63\0\0\0\x31)
+UILayout\microProfileDialogGeometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\0\0\0\0\x14\0\0\x3\xe7\0\0\x2k\0\0\0\0\0\0\0\x14\0\0\x3\xe7\0\0\x2k\0\0\0\0\0\0\0\0\x4\xfd\0\0\0\0\0\0\0\x14\0\0\x3\xe7\0\0\x2k)
+UILayout\microProfileDialogVisible=false
+UILayout\microProfileDialogVisible\default=true
+UILayout\state=@ByteArray(\0\0\0\xff\0\0\0\0\xfd\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\0\xfc\x2\0\0\0\x1\xfb\0\0\0\x1c\0W\0\x61\0i\0t\0T\0r\0\x65\0\x65\0W\0i\0\x64\0g\0\x65\0t\0\0\0\0\0\xff\xff\xff\xff\0\0\0V\0\xff\xff\xff\0\0\x4X\0\0\x1\xeb\0\0\0\x4\0\0\0\x4\0\0\0\b\0\0\0\b\xfc\0\0\0\0)
+calloutFlags=1
+calloutFlags\default=false
+confirmClose=false
+confirmClose\default=false
+disable_web_applet=false
+disable_web_applet\default=false
+displayTitleBars=true
+displayTitleBars\default=true
+enable_discord_presence=true
+enable_discord_presence\default=true
+firstStart=false
+firstStart\default=false
+fullscreen=false
+fullscreen\default=true
+hideInactiveMouse=true
+hideInactiveMouse\default=true
+muteWhenInBackground=false
+muteWhenInBackground\default=true
+pauseWhenInBackground=false
+pauseWhenInBackground\default=true
+select_user_on_boot=false
+select_user_on_boot\default=true
+showConsole=false
+showConsole\default=true
+showFilterBar=true
+showFilterBar\default=true
+showStatusBar=true
+showStatusBar\default=true
+singleWindowMode=true
+singleWindowMode\default=true
+theme=colorful_dark
+theme\default=false
+
+[WebService]
+enable_telemetry=false
+enable_telemetry\default=false
+web_api_url=https://api.yuzu-emu.org
+web_api_url\default=true
+yuzu_token=
+yuzu_token\default=true
+yuzu_username=RetroDECK
+yuzu_username\default=true
diff --git a/emu-configs/gzdoom/brightmaps.pk3 b/emu-configs/gzdoom/brightmaps.pk3
deleted file mode 100644
index 5c46b870..00000000
Binary files a/emu-configs/gzdoom/brightmaps.pk3 and /dev/null differ
diff --git a/emu-configs/gzdoom/game_support.pk3 b/emu-configs/gzdoom/game_support.pk3
deleted file mode 100644
index fb4c2d71..00000000
Binary files a/emu-configs/gzdoom/game_support.pk3 and /dev/null differ
diff --git a/emu-configs/gzdoom/game_widescreen_gfx.pk3 b/emu-configs/gzdoom/game_widescreen_gfx.pk3
deleted file mode 100644
index 6f5eb072..00000000
Binary files a/emu-configs/gzdoom/game_widescreen_gfx.pk3 and /dev/null differ
diff --git a/emu-configs/gzdoom/gzdoom.ini b/emu-configs/gzdoom/gzdoom.ini
index 1ab62d1c..a7c35b3f 100644
--- a/emu-configs/gzdoom/gzdoom.ini
+++ b/emu-configs/gzdoom/gzdoom.ini
@@ -1,4 +1,4 @@
-# This file was generated by GZDoom g4.11.3-m on 2023-11-25 14:33:14
+# This file was generated by GZDoom g4.11.3-m on 2024-03-10 09:34:01
# These are the directories to automatically search for IWADs.
# Each directory should be on a separate line, preceded by Path=
[IWADSearch.Directories]
@@ -6,9 +6,7 @@ Path=.
Path=$DOOMWADDIR
Path=$HOME
Path=$PROGDIR
-Path=/var/config/gzdoom
-Path=/var/data/gzdoom
-Path=RETRODECKROMSDIR/doom
+Path=/home/jay/retrodeck/roms/doom
Path=/app/share/games/doom/
# These are the directories to search for wads added with the -file
@@ -18,8 +16,7 @@ Path=/app/share/games/doom/
Path=$PROGDIR
Path=$DOOMWADDIR
Path=/var/config/gzdoom
-Path=/var/data/gzdoom
-Path=RETRODECKROMSDIR/doom
+Path=/home/jay/retrodeck/roms/doom
Path=/app/share/games/doom/
# These are the directories to search for soundfonts that let listed in the menu.
@@ -27,7 +24,10 @@ Path=/app/share/games/doom/
[SoundfontSearch.Directories]
Path=$PROGDIR/soundfonts
Path=$PROGDIR/fm_banks
+Path=/var/data/gzdoom/audio
Path=/var/data/gzdoom
+Path=/app/share/games/doom/soundfonts
+Path=/app/share/games/doom/fm_banks
# Files to automatically execute when running the corresponding game.
# Each file should be on its own line, preceded by Path=
@@ -203,7 +203,7 @@ fluid_chorus_voices=3
fluid_gain=0.5
fluid_interp=1
fluid_lib=
-fluid_patchset=gzdoom
+fluid_patchset=/app/share/games/doom/soundfonts/gzdoom.sf2
fluid_reverb=false
fluid_reverb_damping=0.23
fluid_reverb_level=0.57
@@ -265,7 +265,7 @@ gl_texture_hqresizemult=1
gl_usecolorblending=true
gme_stereodepth=0
gus_memsize=0
-gus_patchdir=
+gus_patchdir=/data/gzdoom/midi
i_discordrpc=false
i_pauseinbackground=true
i_soundinbackground=false
@@ -343,7 +343,7 @@ r_skipmats=false
r_sprite_distance_cull=0
r_spriteadjust=2
r_ticstability=true
-save_dir=RETRODECKSAVESDIR/doom/gzdoom
+save_dir=RETRODECKHOMEDIR/saves/doom/gzdoom
save_formatted=false
saveloadconfirmation=true
savestatistics=0
@@ -374,7 +374,7 @@ strictdecorate=false
telezoom=true
timidity_channel_pressure=false
timidity_chorus=0
-timidity_config=gzdoom
+timidity_config=/app/share/games/doom/soundfonts/gzdoom.sf2
timidity_drum_effect=false
timidity_drum_power=1
timidity_key_adjust=0
@@ -430,11 +430,11 @@ vr_ipd=0.062
vr_mode=0
vr_screendist=0.8
vr_swap_eyes=false
-wildmidi_config=
+wildmidi_config=/app/share/games/doom/soundfonts/gzdoom.sf2
wildmidi_enhanced_resampling=true
wildmidi_reverb=false
win_h=640
-win_maximized=false
+win_maximized=true
win_w=1024
win_x=-1
win_y=-1
@@ -466,8 +466,8 @@ vr_enable_quadbuffered=
[Doom.Player]
autoaim=35
classicflight=false
-color=a0 0f 80
-colorset=-1
+color=40 cf 00
+colorset=0
fov=90
fviewbob=true
gender=other
@@ -804,15 +804,22 @@ Ins=+movedown
Del=+lookdown
Mouse1=+attack
Mouse2=+altattack
-MWheelUp=weapnext
-MWheelDown=weapprev
+MWheelUp=weapprev
+MWheelDown=weapnext
MWheelRight=invnext
MWheelLeft=invprev
+DPadUp=togglemap
DPadDown=invuse
DPadLeft=invprev
DPadRight=invnext
Pad_Start=pause
Pad_Back=menu_main
+LShoulder=weapprev
+RShoulder=weapnext
+LTrigger=+altattack
+RTrigger=+attack
+Pad_A=+use
+Pad_Y=+jump
W=+forward
E=+use
A=+moveleft
@@ -823,36 +830,22 @@ I=di_toggleinfrared
P=di_showupgrades_bind
F=di_useitem_bind
M=di_modscreen
+R=+reload
C=+crouch
,=di_prevSong
.=di_skipSong
UpArrow=+forward
-LeftArrow=+back
+LeftArrow=+moveleft
RightArrow=+moveright
-DownArrow=+moveleft
-Joy10=toggle cl_run
-Joy11=turn180
-Joy2=+jump
-Joy7=togglemap
-POV1Up=+moveup
-POV1Right=weapnext
-POV1Down=+movedown
-POV1Left=weapprev
-Axis1Plus=+moveright
-Axis1Minus=+moveleft
-Axis2Plus=+back
-Axis2Minus=+forward
-Axis4Plus=+right
-Axis4Minus=+left
-Axis5Plus=+lookdown
-Axis5Minus=+lookup
-Axis3Plus=+reload
-Axis6Plus=+altattack
-Joy3=+crouch
-Joy8=menu_options
+DownArrow=+back
Joy1=+use
-Joy5=+zoom
-Joy6=+attack
+Joy3=+reload
+Joy4=+jump
+Joy5=weapprev
+Joy6=weapnext
+Joy8=menu_main
+Joy10=toggle cl_run
+Joy11=crouch
[Doom.DoubleBindings]
@@ -1177,6 +1170,7 @@ sv_smartaim=0
0=slot 0
-=sizedown
Equals=sizeup
+Backspace=use ArtiTomeOfPower
Tab=togglemap
W=+forward
E=+use
@@ -1190,8 +1184,9 @@ D=+moveright
`=toggleconsole
Shift=+speed
\=+showscores
-CapsLock=toggle cl_run
+C=crouch
Space=+jump
+CapsLock=toggle cl_run
F1=menu_help
F2=menu_save
F3=menu_load
@@ -1202,9 +1197,8 @@ F7=menu_endgame
F8=togglemessages
F9=quickload
F10=menu_quit
-Scroll=+showscores
F11=bumpgamma
-F12=spynext
+F12=screenshot
SysRq=screenshot
Pause=pause
Home=land
@@ -1215,55 +1209,37 @@ Ins=+movedown
Del=+lookdown
Mouse1=+attack
Mouse2=+altattack
-MWheelUp=weapnext
-MWheelDown=weapprev
+MWheelUp=weapprev
+MWheelDown=weapnext
MWheelRight=invnext
MWheelLeft=invprev
+DPadUp=togglemap
DPadDown=invuse
DPadLeft=invprev
DPadRight=invnext
Pad_Start=pause
Pad_Back=menu_main
-W=+forward
-E=+use
-A=+moveleft
-S=+back
-D=+moveright
-Q=di_taunttoggle
-I=di_toggleinfrared
-P=di_showupgrades_bind
-F=di_useitem_bind
-M=di_modscreen
+LShoulder=weapprev
+RShoulder=weapnext
+LTrigger=+altattack
+RTrigger=+attack
+Pad_A=+use
+Pad_Y=+jump
+Q=+zoom
+R=+reload
C=+crouch
-,=di_prevSong
-.=di_skipSong
UpArrow=+forward
-LeftArrow=+back
+LeftArrow=+moveleft
RightArrow=+moveright
-DownArrow=+moveleft
-Joy10=toggle cl_run
-Joy11=turn180
-Joy2=+jump
-Joy7=togglemap
-POV1Up=+moveup
-POV1Right=weapnext
-POV1Down=+movedown
-POV1Left=weapprev
-Axis1Plus=+moveright
-Axis1Minus=+moveleft
-Axis2Plus=+back
-Axis2Minus=+forward
-Axis4Plus=+right
-Axis4Minus=+left
-Axis5Plus=+lookdown
-Axis5Minus=+lookup
-Axis3Plus=+reload
-Axis6Plus=+altattack
-Joy3=+crouch
-Joy8=menu_options
+DownArrow=+back
Joy1=+use
-Joy5=+zoom
-Joy6=+attack
+Joy3=+reload
+Joy4=+jump
+Joy5=weapprev
+Joy6=weapnext
+Joy8=menu_main
+Joy10=toggle cl_run
+Joy11=crouch
[Heretic.DoubleBindings]
@@ -1580,12 +1556,12 @@ sv_smartaim=0
2=slot 2
3=slot 3
4=slot 4
-5=slot 5
-6=slot 6
-7=slot 7
-8=slot 8
-9=slot 9
-0=slot 0
+5=use ArtiInvulnerability2
+6=use ArtiPork
+7=use ArtiTeleportOther
+8=use ArtiTeleport
+9=use ArtiBlastRadius
+0=useflechette
-=sizedown
Equals=sizeup
Tab=togglemap
@@ -1600,8 +1576,7 @@ S=+back
D=+moveright
`=toggleconsole
Shift=+speed
-\=+showscores
-CapsLock=toggle cl_run
+\=use ArtiHealth
Space=+jump
F1=menu_help
F2=menu_save
@@ -1615,7 +1590,7 @@ F9=quickload
F10=menu_quit
Scroll=+showscores
F11=bumpgamma
-F12=spynext
+F12=screenshot
SysRq=screenshot
Pause=pause
Home=land
@@ -1626,15 +1601,22 @@ Ins=+movedown
Del=+lookdown
Mouse1=+attack
Mouse2=+altattack
-MWheelUp=weapnext
-MWheelDown=weapprev
+MWheelUp=weapprev
+MWheelDown=weapnext
MWheelRight=invnext
MWheelLeft=invprev
+DPadUp=togglemap
DPadDown=invuse
DPadLeft=invprev
DPadRight=invnext
Pad_Start=pause
Pad_Back=menu_main
+LShoulder=weapprev
+RShoulder=weapnext
+LTrigger=+altattack
+RTrigger=+attack
+Pad_A=+use
+Pad_Y=+jump
W=+forward
E=+use
A=+moveleft
@@ -1645,36 +1627,22 @@ I=di_toggleinfrared
P=di_showupgrades_bind
F=di_useitem_bind
M=di_modscreen
+R=+reload
C=+crouch
,=di_prevSong
.=di_skipSong
UpArrow=+forward
-LeftArrow=+back
+LeftArrow=+moveleft
RightArrow=+moveright
-DownArrow=+moveleft
-Joy10=toggle cl_run
-Joy11=turn180
-Joy2=+jump
-Joy7=togglemap
-POV1Up=+moveup
-POV1Right=weapnext
-POV1Down=+movedown
-POV1Left=weapprev
-Axis1Plus=+moveright
-Axis1Minus=+moveleft
-Axis2Plus=+back
-Axis2Minus=+forward
-Axis4Plus=+right
-Axis4Minus=+left
-Axis5Plus=+lookdown
-Axis5Minus=+lookup
-Axis3Plus=+reload
-Axis6Plus=+altattack
-Joy3=+crouch
-Joy8=menu_options
+DownArrow=+back
Joy1=+use
-Joy5=+zoom
-Joy6=+attack
+Joy3=+reload
+Joy4=+jump
+Joy5=weapprev
+Joy6=weapnext
+Joy8=menu_main
+Joy10=toggle cl_run
+Joy11=crouch
[Hexen.DoubleBindings]
@@ -1997,7 +1965,9 @@ sv_smartaim=0
0=slot 0
-=sizedown
Equals=sizeup
+Backspace=invdrop
Tab=togglemap
+Q=+zoom
W=+forward
E=+use
T=messagemode
@@ -2007,11 +1977,15 @@ Enter=invuse
A=+moveleft
S=+back
D=+moveright
+K=showpop 2
`=toggleconsole
Shift=+speed
\=+showscores
-CapsLock=toggle cl_run
+Z=showpop 3
+X=crouch
+C=+crouch
Space=+jump
+CapsLock=toggle cl_run
F1=menu_help
F2=menu_save
F3=menu_load
@@ -2022,9 +1996,8 @@ F7=menu_endgame
F8=togglemessages
F9=quickload
F10=menu_quit
-Scroll=+showscores
F11=bumpgamma
-F12=spynext
+F12=screenshot
SysRq=screenshot
Pause=pause
Home=land
@@ -2035,55 +2008,35 @@ Ins=+movedown
Del=+lookdown
Mouse1=+attack
Mouse2=+altattack
-MWheelUp=weapnext
-MWheelDown=weapprev
+MWheelUp=weapprev
+MWheelDown=weapnext
MWheelRight=invnext
MWheelLeft=invprev
+DPadUp=togglemap
DPadDown=invuse
DPadLeft=invprev
DPadRight=invnext
Pad_Start=pause
Pad_Back=menu_main
-W=+forward
-E=+use
-A=+moveleft
-S=+back
-D=+moveright
-Q=di_taunttoggle
-I=di_toggleinfrared
-P=di_showupgrades_bind
-F=di_useitem_bind
-M=di_modscreen
-C=+crouch
-,=di_prevSong
-.=di_skipSong
+LShoulder=weapprev
+RShoulder=weapnext
+LTrigger=+altattack
+RTrigger=+attack
+Pad_A=+use
+Pad_Y=+jump
+R=+reload
UpArrow=+forward
-LeftArrow=+back
+LeftArrow=+moveleft
RightArrow=+moveright
-DownArrow=+moveleft
-Joy10=toggle cl_run
-Joy11=turn180
-Joy2=+jump
-Joy7=togglemap
-POV1Up=+moveup
-POV1Right=weapnext
-POV1Down=+movedown
-POV1Left=weapprev
-Axis1Plus=+moveright
-Axis1Minus=+moveleft
-Axis2Plus=+back
-Axis2Minus=+forward
-Axis4Plus=+right
-Axis4Minus=+left
-Axis5Plus=+lookdown
-Axis5Minus=+lookup
-Axis3Plus=+reload
-Axis6Plus=+altattack
-Joy3=+crouch
-Joy8=menu_options
+DownArrow=+back
Joy1=+use
-Joy5=+zoom
-Joy6=+attack
+Joy3=+reload
+Joy4=+jump
+Joy5=weapprev
+Joy6=weapnext
+Joy8=menu_main
+Joy10=toggle cl_run
+Joy11=crouch
[Strife.DoubleBindings]
@@ -2419,8 +2372,9 @@ D=+moveright
`=toggleconsole
Shift=+speed
\=+showscores
-CapsLock=toggle cl_run
+X=crouch
Space=+jump
+CapsLock=toggle cl_run
F1=menu_help
F2=menu_save
F3=menu_load
@@ -2431,9 +2385,8 @@ F7=menu_endgame
F8=togglemessages
F9=quickload
F10=menu_quit
-Scroll=+showscores
F11=bumpgamma
-F12=spynext
+F12=screenshot
SysRq=screenshot
Pause=pause
Home=land
@@ -2444,55 +2397,26 @@ Ins=+movedown
Del=+lookdown
Mouse1=+attack
Mouse2=+altattack
-MWheelUp=weapnext
-MWheelDown=weapprev
+MWheelUp=weapprev
+MWheelDown=weapnext
MWheelRight=invnext
MWheelLeft=invprev
+DPadUp=togglemap
DPadDown=invuse
DPadLeft=invprev
DPadRight=invnext
Pad_Start=pause
Pad_Back=menu_main
-W=+forward
-E=+use
-A=+moveleft
-S=+back
-D=+moveright
-Q=di_taunttoggle
-I=di_toggleinfrared
-P=di_showupgrades_bind
-F=di_useitem_bind
-M=di_modscreen
+LThumb=crouch
+LShoulder=weapprev
+RShoulder=weapnext
+LTrigger=+altattack
+RTrigger=+attack
+Pad_A=+use
+Pad_Y=+jump
+Q=+zoom
+R=+reload
C=+crouch
-,=di_prevSong
-.=di_skipSong
-UpArrow=+forward
-LeftArrow=+back
-RightArrow=+moveright
-DownArrow=+moveleft
-Joy10=toggle cl_run
-Joy11=turn180
-Joy2=+jump
-Joy7=togglemap
-POV1Up=+moveup
-POV1Right=weapnext
-POV1Down=+movedown
-POV1Left=weapprev
-Axis1Plus=+moveright
-Axis1Minus=+moveleft
-Axis2Plus=+back
-Axis2Minus=+forward
-Axis4Plus=+right
-Axis4Minus=+left
-Axis5Plus=+lookdown
-Axis5Minus=+lookup
-Axis3Plus=+reload
-Axis6Plus=+altattack
-Joy3=+crouch
-Joy8=menu_options
-Joy1=+use
-Joy5=+zoom
-Joy6=+attack
[Chex.DoubleBindings]
@@ -2831,8 +2755,9 @@ D=+moveright
`=toggleconsole
Shift=+speed
\=+showscores
-CapsLock=toggle cl_run
+X=crouch
Space=+jump
+CapsLock=toggle cl_run
F1=menu_help
F2=menu_save
F3=menu_load
@@ -2843,9 +2768,8 @@ F7=menu_endgame
F8=togglemessages
F9=quickload
F10=menu_quit
-Scroll=+showscores
F11=bumpgamma
-F12=spynext
+F12=screenshot
SysRq=screenshot
Pause=pause
Home=land
@@ -2856,55 +2780,38 @@ Ins=+movedown
Del=+lookdown
Mouse1=+attack
Mouse2=+altattack
-MWheelUp=weapnext
-MWheelDown=weapprev
+MWheelUp=weapprev
+MWheelDown=weapnext
MWheelRight=invnext
MWheelLeft=invprev
+DPadUp=togglemap
DPadDown=invuse
DPadLeft=invprev
DPadRight=invnext
Pad_Start=pause
Pad_Back=menu_main
-W=+forward
-E=+use
-A=+moveleft
-S=+back
-D=+moveright
-Q=di_taunttoggle
-I=di_toggleinfrared
-P=di_showupgrades_bind
-F=di_useitem_bind
-M=di_modscreen
C=+crouch
-,=di_prevSong
-.=di_skipSong
+LShoulder=weapprev
+RShoulder=weapnext
+LTrigger=+altattack
+RTrigger=+attack
+Pad_A=+use
+Pad_Y=+jump
+Q=+zoom
+R=+reload
+C=+crouch
UpArrow=+forward
-LeftArrow=+back
+LeftArrow=+moveleft
RightArrow=+moveright
-DownArrow=+moveleft
-Joy10=toggle cl_run
-Joy11=turn180
-Joy2=+jump
-Joy7=togglemap
-POV1Up=+moveup
-POV1Right=weapnext
-POV1Down=+movedown
-POV1Left=weapprev
-Axis1Plus=+moveright
-Axis1Minus=+moveleft
-Axis2Plus=+back
-Axis2Minus=+forward
-Axis4Plus=+right
-Axis4Minus=+left
-Axis5Plus=+lookdown
-Axis5Minus=+lookup
-Axis3Plus=+reload
-Axis6Plus=+altattack
-Joy3=+crouch
-Joy8=menu_options
+DownArrow=+back
Joy1=+use
-Joy5=+zoom
-Joy6=+attack
+Joy3=+reload
+Joy4=+jump
+Joy5=weapprev
+Joy6=weapnext
+Joy8=menu_main
+Joy10=toggle cl_run
+Joy11=crouch
[Harmony.DoubleBindings]
@@ -3243,8 +3150,9 @@ D=+moveright
`=toggleconsole
Shift=+speed
\=+showscores
-CapsLock=toggle cl_run
+X=crouch
Space=+jump
+CapsLock=toggle cl_run
F1=menu_help
F2=menu_save
F3=menu_load
@@ -3255,9 +3163,8 @@ F7=menu_endgame
F8=togglemessages
F9=quickload
F10=menu_quit
-Scroll=+showscores
F11=bumpgamma
-F12=spynext
+F12=screenshot
SysRq=screenshot
Pause=pause
Home=land
@@ -3268,55 +3175,38 @@ Ins=+movedown
Del=+lookdown
Mouse1=+attack
Mouse2=+altattack
-MWheelUp=weapnext
-MWheelDown=weapprev
+MWheelUp=weapprev
+MWheelDown=weapnext
MWheelRight=invnext
MWheelLeft=invprev
+DPadUp=togglemap
DPadDown=invuse
DPadLeft=invprev
DPadRight=invnext
Pad_Start=pause
Pad_Back=menu_main
-W=+forward
-E=+use
-A=+moveleft
-S=+back
-D=+moveright
-Q=di_taunttoggle
-I=di_toggleinfrared
-P=di_showupgrades_bind
-F=di_useitem_bind
-M=di_modscreen
C=+crouch
-,=di_prevSong
-.=di_skipSong
+LShoulder=weapprev
+RShoulder=weapnext
+LTrigger=+altattack
+RTrigger=+attack
+Pad_A=+use
+Pad_Y=+jump
+Q=+zoom
+R=+reload
+C=+crouch
UpArrow=+forward
-LeftArrow=+back
+LeftArrow=+moveleft
RightArrow=+moveright
-DownArrow=+moveleft
-Joy10=toggle cl_run
-Joy11=turn180
-Joy2=+jump
-Joy7=togglemap
-POV1Up=+moveup
-POV1Right=weapnext
-POV1Down=+movedown
-POV1Left=weapprev
-Axis1Plus=+moveright
-Axis1Minus=+moveleft
-Axis2Plus=+back
-Axis2Minus=+forward
-Axis4Plus=+right
-Axis4Minus=+left
-Axis5Plus=+lookdown
-Axis5Minus=+lookup
-Axis3Plus=+reload
-Axis6Plus=+altattack
-Joy3=+crouch
-Joy8=menu_options
+DownArrow=+back
Joy1=+use
-Joy5=+zoom
-Joy6=+attack
+Joy3=+reload
+Joy4=+jump
+Joy5=weapprev
+Joy6=weapnext
+Joy8=menu_main
+Joy10=toggle cl_run
+Joy11=crouch
[WoolBall.DoubleBindings]
@@ -3664,8 +3554,9 @@ D=+moveright
`=toggleconsole
Shift=+speed
\=+showscores
-CapsLock=toggle cl_run
+X=crouch
Space=+jump
+CapsLock=toggle cl_run
F1=menu_help
F2=menu_save
F3=menu_load
@@ -3676,9 +3567,8 @@ F7=menu_endgame
F8=togglemessages
F9=quickload
F10=menu_quit
-Scroll=+showscores
F11=bumpgamma
-F12=spynext
+F12=screenshot
SysRq=screenshot
Pause=pause
Home=land
@@ -3689,55 +3579,38 @@ Ins=+movedown
Del=+lookdown
Mouse1=+attack
Mouse2=+altattack
-MWheelUp=weapnext
-MWheelDown=weapprev
+MWheelUp=weapprev
+MWheelDown=weapnext
MWheelRight=invnext
MWheelLeft=invprev
+DPadUp=togglemap
DPadDown=invuse
DPadLeft=invprev
DPadRight=invnext
Pad_Start=pause
Pad_Back=menu_main
-W=+forward
-E=+use
-A=+moveleft
-S=+back
-D=+moveright
-Q=di_taunttoggle
-I=di_toggleinfrared
-P=di_showupgrades_bind
-F=di_useitem_bind
-M=di_modscreen
C=+crouch
-,=di_prevSong
-.=di_skipSong
+LShoulder=weapprev
+RShoulder=weapnext
+LTrigger=+altattack
+RTrigger=+attack
+Pad_A=+use
+Pad_Y=+jump
+Q=+zoom
+R=+reload
+C=+crouch
UpArrow=+forward
-LeftArrow=+back
+LeftArrow=+moveleft
RightArrow=+moveright
-DownArrow=+moveleft
-Joy10=toggle cl_run
-Joy11=turn180
-Joy2=+jump
-Joy7=togglemap
-POV1Up=+moveup
-POV1Right=weapnext
-POV1Down=+movedown
-POV1Left=weapprev
-Axis1Plus=+moveright
-Axis1Minus=+moveleft
-Axis2Plus=+back
-Axis2Minus=+forward
-Axis4Plus=+right
-Axis4Minus=+left
-Axis5Plus=+lookdown
-Axis5Minus=+lookup
-Axis3Plus=+reload
-Axis6Plus=+altattack
-Joy3=+crouch
-Joy8=menu_options
+DownArrow=+back
Joy1=+use
-Joy5=+zoom
-Joy6=+attack
+Joy3=+reload
+Joy4=+jump
+Joy5=weapprev
+Joy6=weapnext
+Joy8=menu_main
+Joy10=toggle cl_run
+Joy11=crouch
[Square.DoubleBindings]
@@ -4202,4 +4075,3 @@ Axis3deadzone=0.450001
Axis4deadzone=0.25
Axis4map=1
Axis5deadzone=0.100001
-
diff --git a/emu-configs/gzdoom/gzdoom.pk3 b/emu-configs/gzdoom/gzdoom.pk3
deleted file mode 100644
index 47548904..00000000
Binary files a/emu-configs/gzdoom/gzdoom.pk3 and /dev/null differ
diff --git a/emu-configs/yuzu/qt-config.ini b/emu-configs/yuzu/qt-config.ini
new file mode 100644
index 00000000..8fbb3621
--- /dev/null
+++ b/emu-configs/yuzu/qt-config.ini
@@ -0,0 +1,1277 @@
+[Audio]
+input_device=auto
+input_device\default=true
+output_device=auto
+output_device\default=true
+output_engine=auto
+output_engine\default=true
+volume=100
+volume\default=true
+
+[Controls]
+controller_navigation=true
+controller_navigation\default=true
+debug_pad_button_a="toggle:0,code:67,engine:keyboard"
+debug_pad_button_a\default=true
+debug_pad_button_b="toggle:0,code:88,engine:keyboard"
+debug_pad_button_b\default=true
+debug_pad_button_ddown="toggle:0,code:16777237,engine:keyboard"
+debug_pad_button_ddown\default=true
+debug_pad_button_dleft="toggle:0,code:16777234,engine:keyboard"
+debug_pad_button_dleft\default=true
+debug_pad_button_dright="toggle:0,code:16777236,engine:keyboard"
+debug_pad_button_dright\default=true
+debug_pad_button_dup="toggle:0,code:16777235,engine:keyboard"
+debug_pad_button_dup\default=true
+debug_pad_button_home="toggle:0,code:0,engine:keyboard"
+debug_pad_button_home\default=true
+debug_pad_button_l="toggle:0,code:81,engine:keyboard"
+debug_pad_button_l\default=true
+debug_pad_button_lstick="toggle:0,code:70,engine:keyboard"
+debug_pad_button_lstick\default=true
+debug_pad_button_minus="toggle:0,code:78,engine:keyboard"
+debug_pad_button_minus\default=true
+debug_pad_button_plus="toggle:0,code:77,engine:keyboard"
+debug_pad_button_plus\default=true
+debug_pad_button_r="toggle:0,code:69,engine:keyboard"
+debug_pad_button_r\default=true
+debug_pad_button_rstick="toggle:0,code:71,engine:keyboard"
+debug_pad_button_rstick\default=true
+debug_pad_button_screenshot="toggle:0,code:0,engine:keyboard"
+debug_pad_button_screenshot\default=true
+debug_pad_button_sl="toggle:0,code:81,engine:keyboard"
+debug_pad_button_sl\default=true
+debug_pad_button_sr="toggle:0,code:69,engine:keyboard"
+debug_pad_button_sr\default=true
+debug_pad_button_x="toggle:0,code:86,engine:keyboard"
+debug_pad_button_x\default=true
+debug_pad_button_y="toggle:0,code:90,engine:keyboard"
+debug_pad_button_y\default=true
+debug_pad_button_zl="toggle:0,code:82,engine:keyboard"
+debug_pad_button_zl\default=true
+debug_pad_button_zr="toggle:0,code:84,engine:keyboard"
+debug_pad_button_zr\default=true
+debug_pad_enabled=false
+debug_pad_enabled\default=true
+debug_pad_lstick="modifier_scale:0.500000,modifier:toggle$00$1code$016777248$1engine$0keyboard,right:toggle$00$1code$068$1engine$0keyboard,left:toggle$00$1code$065$1engine$0keyboard,down:toggle$00$1code$083$1engine$0keyboard,up:toggle$00$1code$087$1engine$0keyboard,engine:analog_from_button"
+debug_pad_lstick\default=true
+debug_pad_rstick="modifier_scale:0.500000,modifier:toggle$00$1code$00$1engine$0keyboard,right:toggle$00$1code$076$1engine$0keyboard,left:toggle$00$1code$074$1engine$0keyboard,down:toggle$00$1code$075$1engine$0keyboard,up:toggle$00$1code$073$1engine$0keyboard,engine:analog_from_button"
+debug_pad_rstick\default=true
+emulate_analog_keyboard=false
+emulate_analog_keyboard\default=true
+enable_accurate_vibrations=false
+enable_accurate_vibrations\default=true
+enable_ir_sensor=false
+enable_ir_sensor\default=true
+enable_joycon_driver=true
+enable_joycon_driver\default=true
+enable_procon_driver=false
+enable_procon_driver\default=true
+enable_raw_input=false
+enable_raw_input\default=true
+enable_ring_controller=true
+enable_ring_controller\default=true
+enable_udp_controller=false
+enable_udp_controller\default=true
+ir_sensor_device=auto
+ir_sensor_device\default=true
+keyboard_enabled=false
+keyboard_enabled\default=true
+motion_enabled=true
+motion_enabled\default=true
+mouse_enabled=false
+mouse_enabled\default=true
+mouse_panning_sensitivity=10
+mouse_panning_sensitivity\default=true
+pause_tas_on_load=true
+pause_tas_on_load\default=true
+player_0_body_color_left=4278893030
+player_0_body_color_left\default=false
+player_0_body_color_right=4294917160
+player_0_body_color_right\default=false
+player_0_button_a="button:1,guid:03000000de280000ff11000001000000,port:0,engine:sdl"
+player_0_button_a\default=false
+player_0_button_b="button:0,guid:03000000de280000ff11000001000000,port:0,engine:sdl"
+player_0_button_b\default=false
+player_0_button_color_left=4278197790
+player_0_button_color_left\default=false
+player_0_button_color_right=4280158730
+player_0_button_color_right\default=false
+player_0_button_ddown="hat:0,direction:down,guid:03000000de280000ff11000001000000,port:0,engine:sdl"
+player_0_button_ddown\default=false
+player_0_button_dleft="hat:0,direction:left,guid:03000000de280000ff11000001000000,port:0,engine:sdl"
+player_0_button_dleft\default=false
+player_0_button_dright="hat:0,direction:right,guid:03000000de280000ff11000001000000,port:0,engine:sdl"
+player_0_button_dright\default=false
+player_0_button_dup="hat:0,direction:up,guid:03000000de280000ff11000001000000,port:0,engine:sdl"
+player_0_button_dup\default=false
+player_0_button_home="button:8,guid:03000000de280000ff11000001000000,port:0,engine:sdl"
+player_0_button_home\default=false
+player_0_button_l="button:4,guid:03000000de280000ff11000001000000,port:0,engine:sdl"
+player_0_button_l\default=false
+player_0_button_lstick="button:9,guid:03000000de280000ff11000001000000,port:0,engine:sdl"
+player_0_button_lstick\default=false
+player_0_button_minus="button:6,guid:03000000de280000ff11000001000000,port:0,engine:sdl"
+player_0_button_minus\default=false
+player_0_button_plus="button:7,guid:03000000de280000ff11000001000000,port:0,engine:sdl"
+player_0_button_plus\default=false
+player_0_button_r="button:5,guid:03000000de280000ff11000001000000,port:0,engine:sdl"
+player_0_button_r\default=false
+player_0_button_rstick="button:10,guid:03000000de280000ff11000001000000,port:0,engine:sdl"
+player_0_button_rstick\default=false
+player_0_button_screenshot=[empty]
+player_0_button_screenshot\default=false
+player_0_button_sl="button:4,guid:03000000de280000ff11000001000000,port:0,engine:sdl"
+player_0_button_sl\default=false
+player_0_button_sr="button:5,guid:03000000de280000ff11000001000000,port:0,engine:sdl"
+player_0_button_sr\default=false
+player_0_button_x="button:3,guid:03000000de280000ff11000001000000,port:0,engine:sdl"
+player_0_button_x\default=false
+player_0_button_y="button:2,guid:03000000de280000ff11000001000000,port:0,engine:sdl"
+player_0_button_y\default=false
+player_0_button_zl="threshold:0.500000,axis:2,guid:03000000de280000ff11000001000000,port:0,invert:+,engine:sdl"
+player_0_button_zl\default=false
+player_0_button_zr="threshold:0.500000,axis:5,guid:03000000de280000ff11000001000000,port:0,invert:+,engine:sdl"
+player_0_button_zr\default=false
+player_0_connected=true
+player_0_connected\default=true
+player_0_lstick="deadzone:0.150000,invert_y:+,invert_x:+,offset_y:0.000000,axis_y:1,offset_x:-0.000000,axis_x:0,guid:03000000de280000ff11000001000000,port:0,engine:sdl"
+player_0_lstick\default=false
+player_0_motionleft="motion:0,pad:0,port:26760,guid:0000000000000000000000007f000001,engine:cemuhookudp"
+player_0_motionleft\default=false
+player_0_motionright=[empty]
+player_0_motionright\default=false
+player_0_rstick="deadzone:0.150000,invert_y:+,invert_x:+,offset_y:0.000000,axis_y:4,offset_x:-0.000000,axis_x:3,guid:03000000de280000ff11000001000000,port:0,engine:sdl"
+player_0_rstick\default=false
+player_0_type=0
+player_0_type\default=true
+player_0_vibration_enabled=true
+player_0_vibration_enabled\default=true
+player_0_vibration_strength=100
+player_0_vibration_strength\default=true
+player_1_body_color_left=4278893030
+player_1_body_color_left\default=false
+player_1_body_color_right=4294917160
+player_1_body_color_right\default=false
+player_1_button_a="button:1,guid:03000000de280000ff11000001000000,port:1,engine:sdl"
+player_1_button_a\default=false
+player_1_button_b="button:0,guid:03000000de280000ff11000001000000,port:1,engine:sdl"
+player_1_button_b\default=false
+player_1_button_color_left=4278197790
+player_1_button_color_left\default=false
+player_1_button_color_right=4280158730
+player_1_button_color_right\default=false
+player_1_button_ddown="hat:0,direction:down,guid:03000000de280000ff11000001000000,port:1,engine:sdl"
+player_1_button_ddown\default=false
+player_1_button_dleft="hat:0,direction:left,guid:03000000de280000ff11000001000000,port:1,engine:sdl"
+player_1_button_dleft\default=false
+player_1_button_dright="hat:0,direction:right,guid:03000000de280000ff11000001000000,port:1,engine:sdl"
+player_1_button_dright\default=false
+player_1_button_dup="hat:0,direction:up,guid:03000000de280000ff11000001000000,port:1,engine:sdl"
+player_1_button_dup\default=false
+player_1_button_home="button:8,guid:03000000de280000ff11000001000000,port:1,engine:sdl"
+player_1_button_home\default=false
+player_1_button_l="button:4,guid:03000000de280000ff11000001000000,port:1,engine:sdl"
+player_1_button_l\default=false
+player_1_button_lstick="button:9,guid:03000000de280000ff11000001000000,port:1,engine:sdl"
+player_1_button_lstick\default=false
+player_1_button_minus="button:6,guid:03000000de280000ff11000001000000,port:1,engine:sdl"
+player_1_button_minus\default=false
+player_1_button_plus="button:7,guid:03000000de280000ff11000001000000,port:1,engine:sdl"
+player_1_button_plus\default=false
+player_1_button_r="button:5,guid:03000000de280000ff11000001000000,port:1,engine:sdl"
+player_1_button_r\default=false
+player_1_button_rstick="button:10,guid:03000000de280000ff11000001000000,port:1,engine:sdl"
+player_1_button_rstick\default=false
+player_1_button_screenshot=[empty]
+player_1_button_screenshot\default=false
+player_1_button_sl="button:4,guid:03000000de280000ff11000001000000,port:1,engine:sdl"
+player_1_button_sl\default=false
+player_1_button_sr="button:5,guid:03000000de280000ff11000001000000,port:1,engine:sdl"
+player_1_button_sr\default=false
+player_1_button_x="button:3,guid:03000000de280000ff11000001000000,port:1,engine:sdl"
+player_1_button_x\default=false
+player_1_button_y="button:2,guid:03000000de280000ff11000001000000,port:1,engine:sdl"
+player_1_button_y\default=false
+player_1_button_zl="threshold:0.500000,axis:2,guid:03000000de280000ff11000001000000,port:1,invert:+,engine:sdl"
+player_1_button_zl\default=false
+player_1_button_zr="threshold:0.500000,axis:5,guid:03000000de280000ff11000001000000,port:1,invert:+,engine:sdl"
+player_1_button_zr\default=false
+player_1_connected=true
+player_1_connected\default=false
+player_1_lstick="deadzone:0.150000,invert_y:+,invert_x:+,offset_y:0.000000,axis_y:1,offset_x:-0.000000,axis_x:0,guid:03000000de280000ff11000001000000,port:1,engine:sdl"
+player_1_lstick\default=false
+player_1_motionleft=[empty]
+player_1_motionleft\default=false
+player_1_motionright=[empty]
+player_1_motionright\default=false
+player_1_rstick="deadzone:0.150000,invert_y:+,invert_x:+,offset_y:0.000000,axis_y:4,offset_x:-0.000000,axis_x:3,guid:03000000de280000ff11000001000000,port:1,engine:sdl"
+player_1_rstick\default=false
+player_1_type=0
+player_1_type\default=true
+player_1_vibration_enabled=true
+player_1_vibration_enabled\default=true
+player_1_vibration_strength=100
+player_1_vibration_strength\default=true
+player_2_body_color_left=4278893030
+player_2_body_color_left\default=false
+player_2_body_color_right=4294917160
+player_2_body_color_right\default=false
+player_2_button_a="button:1,guid:03000000de280000ff11000001000000,port:2,engine:sdl"
+player_2_button_a\default=false
+player_2_button_b="button:0,guid:03000000de280000ff11000001000000,port:2,engine:sdl"
+player_2_button_b\default=false
+player_2_button_color_left=4278197790
+player_2_button_color_left\default=false
+player_2_button_color_right=4280158730
+player_2_button_color_right\default=false
+player_2_button_ddown="hat:0,direction:down,guid:03000000de280000ff11000001000000,port:2,engine:sdl"
+player_2_button_ddown\default=false
+player_2_button_dleft="hat:0,direction:left,guid:03000000de280000ff11000001000000,port:2,engine:sdl"
+player_2_button_dleft\default=false
+player_2_button_dright="hat:0,direction:right,guid:03000000de280000ff11000001000000,port:2,engine:sdl"
+player_2_button_dright\default=false
+player_2_button_dup="hat:0,direction:up,guid:03000000de280000ff11000001000000,port:2,engine:sdl"
+player_2_button_dup\default=false
+player_2_button_home="button:8,guid:03000000de280000ff11000001000000,port:2,engine:sdl"
+player_2_button_home\default=false
+player_2_button_l="button:4,guid:03000000de280000ff11000001000000,port:2,engine:sdl"
+player_2_button_l\default=false
+player_2_button_lstick="button:9,guid:03000000de280000ff11000001000000,port:2,engine:sdl"
+player_2_button_lstick\default=false
+player_2_button_minus="button:6,guid:03000000de280000ff11000001000000,port:2,engine:sdl"
+player_2_button_minus\default=false
+player_2_button_plus="button:7,guid:03000000de280000ff11000001000000,port:2,engine:sdl"
+player_2_button_plus\default=false
+player_2_button_r="button:5,guid:03000000de280000ff11000001000000,port:2,engine:sdl"
+player_2_button_r\default=false
+player_2_button_rstick="button:10,guid:03000000de280000ff11000001000000,port:2,engine:sdl"
+player_2_button_rstick\default=false
+player_2_button_screenshot=[empty]
+player_2_button_screenshot\default=false
+player_2_button_sl="button:4,guid:03000000de280000ff11000001000000,port:2,engine:sdl"
+player_2_button_sl\default=false
+player_2_button_sr="button:5,guid:03000000de280000ff11000001000000,port:2,engine:sdl"
+player_2_button_sr\default=false
+player_2_button_x="button:3,guid:03000000de280000ff11000001000000,port:2,engine:sdl"
+player_2_button_x\default=false
+player_2_button_y="button:2,guid:03000000de280000ff11000001000000,port:2,engine:sdl"
+player_2_button_y\default=false
+player_2_button_zl="threshold:0.500000,axis:2,guid:03000000de280000ff11000001000000,port:2,invert:+,engine:sdl"
+player_2_button_zl\default=false
+player_2_button_zr="threshold:0.500000,axis:5,guid:03000000de280000ff11000001000000,port:2,invert:+,engine:sdl"
+player_2_button_zr\default=false
+player_2_connected=true
+player_2_connected\default=false
+player_2_lstick="deadzone:0.150000,invert_y:+,invert_x:+,offset_y:0.000000,axis_y:1,offset_x:-0.000000,axis_x:0,guid:03000000de280000ff11000001000000,port:2,engine:sdl"
+player_2_lstick\default=false
+player_2_motionleft=[empty]
+player_2_motionleft\default=false
+player_2_motionright=[empty]
+player_2_motionright\default=false
+player_2_rstick="deadzone:0.150000,invert_y:+,invert_x:+,offset_y:0.000000,axis_y:4,offset_x:-0.000000,axis_x:3,guid:03000000de280000ff11000001000000,port:2,engine:sdl"
+player_2_rstick\default=false
+player_2_type=0
+player_2_type\default=true
+player_2_vibration_enabled=true
+player_2_vibration_enabled\default=true
+player_2_vibration_strength=100
+player_2_vibration_strength\default=true
+player_3_body_color_left=4278893030
+player_3_body_color_left\default=false
+player_3_body_color_right=4294917160
+player_3_body_color_right\default=false
+player_3_button_a="button:1,guid:03000000de280000ff11000001000000,port:3,engine:sdl"
+player_3_button_a\default=false
+player_3_button_b="button:0,guid:03000000de280000ff11000001000000,port:3,engine:sdl"
+player_3_button_b\default=false
+player_3_button_color_left=4278197790
+player_3_button_color_left\default=false
+player_3_button_color_right=4280158730
+player_3_button_color_right\default=false
+player_3_button_ddown="hat:0,direction:down,guid:03000000de280000ff11000001000000,port:3,engine:sdl"
+player_3_button_ddown\default=false
+player_3_button_dleft="hat:0,direction:left,guid:03000000de280000ff11000001000000,port:3,engine:sdl"
+player_3_button_dleft\default=false
+player_3_button_dright="hat:0,direction:right,guid:03000000de280000ff11000001000000,port:3,engine:sdl"
+player_3_button_dright\default=false
+player_3_button_dup="hat:0,direction:up,guid:03000000de280000ff11000001000000,port:3,engine:sdl"
+player_3_button_dup\default=false
+player_3_button_home="button:8,guid:03000000de280000ff11000001000000,port:3,engine:sdl"
+player_3_button_home\default=false
+player_3_button_l="button:4,guid:03000000de280000ff11000001000000,port:3,engine:sdl"
+player_3_button_l\default=false
+player_3_button_lstick="button:9,guid:03000000de280000ff11000001000000,port:3,engine:sdl"
+player_3_button_lstick\default=false
+player_3_button_minus="button:6,guid:03000000de280000ff11000001000000,port:3,engine:sdl"
+player_3_button_minus\default=false
+player_3_button_plus="button:7,guid:03000000de280000ff11000001000000,port:3,engine:sdl"
+player_3_button_plus\default=false
+player_3_button_r="button:5,guid:03000000de280000ff11000001000000,port:3,engine:sdl"
+player_3_button_r\default=false
+player_3_button_rstick="button:10,guid:03000000de280000ff11000001000000,port:3,engine:sdl"
+player_3_button_rstick\default=false
+player_3_button_screenshot=[empty]
+player_3_button_screenshot\default=false
+player_3_button_sl="button:4,guid:03000000de280000ff11000001000000,port:3,engine:sdl"
+player_3_button_sl\default=false
+player_3_button_sr="button:5,guid:03000000de280000ff11000001000000,port:3,engine:sdl"
+player_3_button_sr\default=false
+player_3_button_x="button:3,guid:03000000de280000ff11000001000000,port:3,engine:sdl"
+player_3_button_x\default=false
+player_3_button_y="button:2,guid:03000000de280000ff11000001000000,port:3,engine:sdl"
+player_3_button_y\default=false
+player_3_button_zl="threshold:0.5,axis:2,guid:03000000de280000ff11000001000000,port:3,invert:+,engine:sdl"
+player_3_button_zl\default=false
+player_3_button_zr="threshold:0.5,axis:5,guid:03000000de280000ff11000001000000,port:3,invert:+,engine:sdl"
+player_3_button_zr\default=false
+player_3_connected=true
+player_3_connected\default=false
+player_3_lstick="invert_y:+,invert_x:+,offset_y:0.000000,axis_y:1,offset_x:-0.000000,axis_x:0,guid:03000000de280000ff11000001000000,port:3,engine:sdl"
+player_3_lstick\default=false
+player_3_motionleft=[empty]
+player_3_motionleft\default=false
+player_3_motionright=[empty]
+player_3_motionright\default=false
+player_3_rstick="invert_y:+,invert_x:+,offset_y:0.000000,axis_y:4,offset_x:-0.000000,axis_x:3,guid:03000000de280000ff11000001000000,port:3,engine:sdl"
+player_3_rstick\default=false
+player_3_type=0
+player_3_type\default=true
+player_3_vibration_enabled=true
+player_3_vibration_enabled\default=true
+player_3_vibration_strength=100
+player_3_vibration_strength\default=true
+player_4_body_color_left=4278893030
+player_4_body_color_left\default=false
+player_4_body_color_right=4294917160
+player_4_body_color_right\default=false
+player_4_button_a="toggle:0,code:67,engine:keyboard"
+player_4_button_a\default=true
+player_4_button_b="toggle:0,code:88,engine:keyboard"
+player_4_button_b\default=true
+player_4_button_color_left=4278197790
+player_4_button_color_left\default=false
+player_4_button_color_right=4280158730
+player_4_button_color_right\default=false
+player_4_button_ddown="toggle:0,code:16777237,engine:keyboard"
+player_4_button_ddown\default=true
+player_4_button_dleft="toggle:0,code:16777234,engine:keyboard"
+player_4_button_dleft\default=true
+player_4_button_dright="toggle:0,code:16777236,engine:keyboard"
+player_4_button_dright\default=true
+player_4_button_dup="toggle:0,code:16777235,engine:keyboard"
+player_4_button_dup\default=true
+player_4_button_home="toggle:0,code:0,engine:keyboard"
+player_4_button_home\default=true
+player_4_button_l="toggle:0,code:81,engine:keyboard"
+player_4_button_l\default=true
+player_4_button_lstick="toggle:0,code:70,engine:keyboard"
+player_4_button_lstick\default=true
+player_4_button_minus="toggle:0,code:78,engine:keyboard"
+player_4_button_minus\default=true
+player_4_button_plus="toggle:0,code:77,engine:keyboard"
+player_4_button_plus\default=true
+player_4_button_r="toggle:0,code:69,engine:keyboard"
+player_4_button_r\default=true
+player_4_button_rstick="toggle:0,code:71,engine:keyboard"
+player_4_button_rstick\default=true
+player_4_button_screenshot="toggle:0,code:0,engine:keyboard"
+player_4_button_screenshot\default=true
+player_4_button_sl="toggle:0,code:81,engine:keyboard"
+player_4_button_sl\default=true
+player_4_button_sr="toggle:0,code:69,engine:keyboard"
+player_4_button_sr\default=true
+player_4_button_x="toggle:0,code:86,engine:keyboard"
+player_4_button_x\default=true
+player_4_button_y="toggle:0,code:90,engine:keyboard"
+player_4_button_y\default=true
+player_4_button_zl="toggle:0,code:82,engine:keyboard"
+player_4_button_zl\default=true
+player_4_button_zr="toggle:0,code:84,engine:keyboard"
+player_4_button_zr\default=true
+player_4_connected=false
+player_4_connected\default=true
+player_4_lstick="modifier_scale:0.500000,modifier:toggle$00$1code$016777248$1engine$0keyboard,right:toggle$00$1code$068$1engine$0keyboard,left:toggle$00$1code$065$1engine$0keyboard,down:toggle$00$1code$083$1engine$0keyboard,up:toggle$00$1code$087$1engine$0keyboard,engine:analog_from_button"
+player_4_lstick\default=true
+player_4_motionleft="toggle:0,code:55,engine:keyboard"
+player_4_motionleft\default=true
+player_4_motionright="toggle:0,code:56,engine:keyboard"
+player_4_motionright\default=true
+player_4_rstick="modifier_scale:0.500000,modifier:toggle$00$1code$00$1engine$0keyboard,right:toggle$00$1code$076$1engine$0keyboard,left:toggle$00$1code$074$1engine$0keyboard,down:toggle$00$1code$075$1engine$0keyboard,up:toggle$00$1code$073$1engine$0keyboard,engine:analog_from_button"
+player_4_rstick\default=true
+player_4_type=0
+player_4_type\default=true
+player_4_vibration_enabled=true
+player_4_vibration_enabled\default=true
+player_4_vibration_strength=100
+player_4_vibration_strength\default=true
+player_5_body_color_left=4278893030
+player_5_body_color_left\default=false
+player_5_body_color_right=4294917160
+player_5_body_color_right\default=false
+player_5_button_a="toggle:0,code:67,engine:keyboard"
+player_5_button_a\default=true
+player_5_button_b="toggle:0,code:88,engine:keyboard"
+player_5_button_b\default=true
+player_5_button_color_left=4278197790
+player_5_button_color_left\default=false
+player_5_button_color_right=4280158730
+player_5_button_color_right\default=false
+player_5_button_ddown="toggle:0,code:16777237,engine:keyboard"
+player_5_button_ddown\default=true
+player_5_button_dleft="toggle:0,code:16777234,engine:keyboard"
+player_5_button_dleft\default=true
+player_5_button_dright="toggle:0,code:16777236,engine:keyboard"
+player_5_button_dright\default=true
+player_5_button_dup="toggle:0,code:16777235,engine:keyboard"
+player_5_button_dup\default=true
+player_5_button_home="toggle:0,code:0,engine:keyboard"
+player_5_button_home\default=true
+player_5_button_l="toggle:0,code:81,engine:keyboard"
+player_5_button_l\default=true
+player_5_button_lstick="toggle:0,code:70,engine:keyboard"
+player_5_button_lstick\default=true
+player_5_button_minus="toggle:0,code:78,engine:keyboard"
+player_5_button_minus\default=true
+player_5_button_plus="toggle:0,code:77,engine:keyboard"
+player_5_button_plus\default=true
+player_5_button_r="toggle:0,code:69,engine:keyboard"
+player_5_button_r\default=true
+player_5_button_rstick="toggle:0,code:71,engine:keyboard"
+player_5_button_rstick\default=true
+player_5_button_screenshot="toggle:0,code:0,engine:keyboard"
+player_5_button_screenshot\default=true
+player_5_button_sl="toggle:0,code:81,engine:keyboard"
+player_5_button_sl\default=true
+player_5_button_sr="toggle:0,code:69,engine:keyboard"
+player_5_button_sr\default=true
+player_5_button_x="toggle:0,code:86,engine:keyboard"
+player_5_button_x\default=true
+player_5_button_y="toggle:0,code:90,engine:keyboard"
+player_5_button_y\default=true
+player_5_button_zl="toggle:0,code:82,engine:keyboard"
+player_5_button_zl\default=true
+player_5_button_zr="toggle:0,code:84,engine:keyboard"
+player_5_button_zr\default=true
+player_5_connected=false
+player_5_connected\default=true
+player_5_lstick="modifier_scale:0.500000,modifier:toggle$00$1code$016777248$1engine$0keyboard,right:toggle$00$1code$068$1engine$0keyboard,left:toggle$00$1code$065$1engine$0keyboard,down:toggle$00$1code$083$1engine$0keyboard,up:toggle$00$1code$087$1engine$0keyboard,engine:analog_from_button"
+player_5_lstick\default=true
+player_5_motionleft="toggle:0,code:55,engine:keyboard"
+player_5_motionleft\default=true
+player_5_motionright="toggle:0,code:56,engine:keyboard"
+player_5_motionright\default=true
+player_5_rstick="modifier_scale:0.500000,modifier:toggle$00$1code$00$1engine$0keyboard,right:toggle$00$1code$076$1engine$0keyboard,left:toggle$00$1code$074$1engine$0keyboard,down:toggle$00$1code$075$1engine$0keyboard,up:toggle$00$1code$073$1engine$0keyboard,engine:analog_from_button"
+player_5_rstick\default=true
+player_5_type=0
+player_5_type\default=true
+player_5_vibration_enabled=true
+player_5_vibration_enabled\default=true
+player_5_vibration_strength=100
+player_5_vibration_strength\default=true
+player_6_body_color_left=4278893030
+player_6_body_color_left\default=false
+player_6_body_color_right=4294917160
+player_6_body_color_right\default=false
+player_6_button_a="toggle:0,code:67,engine:keyboard"
+player_6_button_a\default=true
+player_6_button_b="toggle:0,code:88,engine:keyboard"
+player_6_button_b\default=true
+player_6_button_color_left=4278197790
+player_6_button_color_left\default=false
+player_6_button_color_right=4280158730
+player_6_button_color_right\default=false
+player_6_button_ddown="toggle:0,code:16777237,engine:keyboard"
+player_6_button_ddown\default=true
+player_6_button_dleft="toggle:0,code:16777234,engine:keyboard"
+player_6_button_dleft\default=true
+player_6_button_dright="toggle:0,code:16777236,engine:keyboard"
+player_6_button_dright\default=true
+player_6_button_dup="toggle:0,code:16777235,engine:keyboard"
+player_6_button_dup\default=true
+player_6_button_home="toggle:0,code:0,engine:keyboard"
+player_6_button_home\default=true
+player_6_button_l="toggle:0,code:81,engine:keyboard"
+player_6_button_l\default=true
+player_6_button_lstick="toggle:0,code:70,engine:keyboard"
+player_6_button_lstick\default=true
+player_6_button_minus="toggle:0,code:78,engine:keyboard"
+player_6_button_minus\default=true
+player_6_button_plus="toggle:0,code:77,engine:keyboard"
+player_6_button_plus\default=true
+player_6_button_r="toggle:0,code:69,engine:keyboard"
+player_6_button_r\default=true
+player_6_button_rstick="toggle:0,code:71,engine:keyboard"
+player_6_button_rstick\default=true
+player_6_button_screenshot="toggle:0,code:0,engine:keyboard"
+player_6_button_screenshot\default=true
+player_6_button_sl="toggle:0,code:81,engine:keyboard"
+player_6_button_sl\default=true
+player_6_button_sr="toggle:0,code:69,engine:keyboard"
+player_6_button_sr\default=true
+player_6_button_x="toggle:0,code:86,engine:keyboard"
+player_6_button_x\default=true
+player_6_button_y="toggle:0,code:90,engine:keyboard"
+player_6_button_y\default=true
+player_6_button_zl="toggle:0,code:82,engine:keyboard"
+player_6_button_zl\default=true
+player_6_button_zr="toggle:0,code:84,engine:keyboard"
+player_6_button_zr\default=true
+player_6_connected=false
+player_6_connected\default=true
+player_6_lstick="modifier_scale:0.500000,modifier:toggle$00$1code$016777248$1engine$0keyboard,right:toggle$00$1code$068$1engine$0keyboard,left:toggle$00$1code$065$1engine$0keyboard,down:toggle$00$1code$083$1engine$0keyboard,up:toggle$00$1code$087$1engine$0keyboard,engine:analog_from_button"
+player_6_lstick\default=true
+player_6_motionleft="toggle:0,code:55,engine:keyboard"
+player_6_motionleft\default=true
+player_6_motionright="toggle:0,code:56,engine:keyboard"
+player_6_motionright\default=true
+player_6_rstick="modifier_scale:0.500000,modifier:toggle$00$1code$00$1engine$0keyboard,right:toggle$00$1code$076$1engine$0keyboard,left:toggle$00$1code$074$1engine$0keyboard,down:toggle$00$1code$075$1engine$0keyboard,up:toggle$00$1code$073$1engine$0keyboard,engine:analog_from_button"
+player_6_rstick\default=true
+player_6_type=0
+player_6_type\default=true
+player_6_vibration_enabled=true
+player_6_vibration_enabled\default=true
+player_6_vibration_strength=100
+player_6_vibration_strength\default=true
+player_7_body_color_left=4278893030
+player_7_body_color_left\default=false
+player_7_body_color_right=4294917160
+player_7_body_color_right\default=false
+player_7_button_a="toggle:0,code:67,engine:keyboard"
+player_7_button_a\default=true
+player_7_button_b="toggle:0,code:88,engine:keyboard"
+player_7_button_b\default=true
+player_7_button_color_left=4278197790
+player_7_button_color_left\default=false
+player_7_button_color_right=4280158730
+player_7_button_color_right\default=false
+player_7_button_ddown="toggle:0,code:16777237,engine:keyboard"
+player_7_button_ddown\default=true
+player_7_button_dleft="toggle:0,code:16777234,engine:keyboard"
+player_7_button_dleft\default=true
+player_7_button_dright="toggle:0,code:16777236,engine:keyboard"
+player_7_button_dright\default=true
+player_7_button_dup="toggle:0,code:16777235,engine:keyboard"
+player_7_button_dup\default=true
+player_7_button_home="toggle:0,code:0,engine:keyboard"
+player_7_button_home\default=true
+player_7_button_l="toggle:0,code:81,engine:keyboard"
+player_7_button_l\default=true
+player_7_button_lstick="toggle:0,code:70,engine:keyboard"
+player_7_button_lstick\default=true
+player_7_button_minus="toggle:0,code:78,engine:keyboard"
+player_7_button_minus\default=true
+player_7_button_plus="toggle:0,code:77,engine:keyboard"
+player_7_button_plus\default=true
+player_7_button_r="toggle:0,code:69,engine:keyboard"
+player_7_button_r\default=true
+player_7_button_rstick="toggle:0,code:71,engine:keyboard"
+player_7_button_rstick\default=true
+player_7_button_screenshot="toggle:0,code:0,engine:keyboard"
+player_7_button_screenshot\default=true
+player_7_button_sl="toggle:0,code:81,engine:keyboard"
+player_7_button_sl\default=true
+player_7_button_sr="toggle:0,code:69,engine:keyboard"
+player_7_button_sr\default=true
+player_7_button_x="toggle:0,code:86,engine:keyboard"
+player_7_button_x\default=true
+player_7_button_y="toggle:0,code:90,engine:keyboard"
+player_7_button_y\default=true
+player_7_button_zl="toggle:0,code:82,engine:keyboard"
+player_7_button_zl\default=true
+player_7_button_zr="toggle:0,code:84,engine:keyboard"
+player_7_button_zr\default=true
+player_7_connected=false
+player_7_connected\default=true
+player_7_lstick="modifier_scale:0.500000,modifier:toggle$00$1code$016777248$1engine$0keyboard,right:toggle$00$1code$068$1engine$0keyboard,left:toggle$00$1code$065$1engine$0keyboard,down:toggle$00$1code$083$1engine$0keyboard,up:toggle$00$1code$087$1engine$0keyboard,engine:analog_from_button"
+player_7_lstick\default=true
+player_7_motionleft="toggle:0,code:55,engine:keyboard"
+player_7_motionleft\default=true
+player_7_motionright="toggle:0,code:56,engine:keyboard"
+player_7_motionright\default=true
+player_7_rstick="modifier_scale:0.500000,modifier:toggle$00$1code$00$1engine$0keyboard,right:toggle$00$1code$076$1engine$0keyboard,left:toggle$00$1code$074$1engine$0keyboard,down:toggle$00$1code$075$1engine$0keyboard,up:toggle$00$1code$073$1engine$0keyboard,engine:analog_from_button"
+player_7_rstick\default=true
+player_7_type=0
+player_7_type\default=true
+player_7_vibration_enabled=true
+player_7_vibration_enabled\default=true
+player_7_vibration_strength=100
+player_7_vibration_strength\default=true
+player_8_body_color_left=702950
+player_8_body_color_left\default=true
+player_8_body_color_right=16727080
+player_8_body_color_right\default=true
+player_8_button_a="toggle:0,code:67,engine:keyboard"
+player_8_button_a\default=true
+player_8_button_b="toggle:0,code:88,engine:keyboard"
+player_8_button_b\default=true
+player_8_button_color_left=7710
+player_8_button_color_left\default=true
+player_8_button_color_right=1968650
+player_8_button_color_right\default=true
+player_8_button_ddown="toggle:0,code:16777237,engine:keyboard"
+player_8_button_ddown\default=true
+player_8_button_dleft="toggle:0,code:16777234,engine:keyboard"
+player_8_button_dleft\default=true
+player_8_button_dright="toggle:0,code:16777236,engine:keyboard"
+player_8_button_dright\default=true
+player_8_button_dup="toggle:0,code:16777235,engine:keyboard"
+player_8_button_dup\default=true
+player_8_button_home="toggle:0,code:0,engine:keyboard"
+player_8_button_home\default=true
+player_8_button_l="toggle:0,code:81,engine:keyboard"
+player_8_button_l\default=true
+player_8_button_lstick="toggle:0,code:70,engine:keyboard"
+player_8_button_lstick\default=true
+player_8_button_minus="toggle:0,code:78,engine:keyboard"
+player_8_button_minus\default=true
+player_8_button_plus="toggle:0,code:77,engine:keyboard"
+player_8_button_plus\default=true
+player_8_button_r="toggle:0,code:69,engine:keyboard"
+player_8_button_r\default=true
+player_8_button_rstick="toggle:0,code:71,engine:keyboard"
+player_8_button_rstick\default=true
+player_8_button_screenshot="toggle:0,code:0,engine:keyboard"
+player_8_button_screenshot\default=true
+player_8_button_sl="toggle:0,code:81,engine:keyboard"
+player_8_button_sl\default=true
+player_8_button_sr="toggle:0,code:69,engine:keyboard"
+player_8_button_sr\default=true
+player_8_button_x="toggle:0,code:86,engine:keyboard"
+player_8_button_x\default=true
+player_8_button_y="toggle:0,code:90,engine:keyboard"
+player_8_button_y\default=true
+player_8_button_zl="toggle:0,code:82,engine:keyboard"
+player_8_button_zl\default=true
+player_8_button_zr="toggle:0,code:84,engine:keyboard"
+player_8_button_zr\default=true
+player_8_connected=false
+player_8_connected\default=true
+player_8_lstick="modifier_scale:0.500000,modifier:toggle$00$1code$016777248$1engine$0keyboard,right:toggle$00$1code$068$1engine$0keyboard,left:toggle$00$1code$065$1engine$0keyboard,down:toggle$00$1code$083$1engine$0keyboard,up:toggle$00$1code$087$1engine$0keyboard,engine:analog_from_button"
+player_8_lstick\default=true
+player_8_motionleft="toggle:0,code:55,engine:keyboard"
+player_8_motionleft\default=true
+player_8_motionright="toggle:0,code:56,engine:keyboard"
+player_8_motionright\default=true
+player_8_rstick="modifier_scale:0.500000,modifier:toggle$00$1code$00$1engine$0keyboard,right:toggle$00$1code$076$1engine$0keyboard,left:toggle$00$1code$074$1engine$0keyboard,down:toggle$00$1code$075$1engine$0keyboard,up:toggle$00$1code$073$1engine$0keyboard,engine:analog_from_button"
+player_8_rstick\default=true
+player_8_type=0
+player_8_type\default=true
+player_8_vibration_enabled=true
+player_8_vibration_enabled\default=true
+player_8_vibration_strength=100
+player_8_vibration_strength\default=true
+player_9_body_color_left=702950
+player_9_body_color_left\default=true
+player_9_body_color_right=16727080
+player_9_body_color_right\default=true
+player_9_button_a="toggle:0,code:67,engine:keyboard"
+player_9_button_a\default=true
+player_9_button_b="toggle:0,code:88,engine:keyboard"
+player_9_button_b\default=true
+player_9_button_color_left=7710
+player_9_button_color_left\default=true
+player_9_button_color_right=1968650
+player_9_button_color_right\default=true
+player_9_button_ddown="toggle:0,code:16777237,engine:keyboard"
+player_9_button_ddown\default=true
+player_9_button_dleft="toggle:0,code:16777234,engine:keyboard"
+player_9_button_dleft\default=true
+player_9_button_dright="toggle:0,code:16777236,engine:keyboard"
+player_9_button_dright\default=true
+player_9_button_dup="toggle:0,code:16777235,engine:keyboard"
+player_9_button_dup\default=true
+player_9_button_home="toggle:0,code:0,engine:keyboard"
+player_9_button_home\default=true
+player_9_button_l="toggle:0,code:81,engine:keyboard"
+player_9_button_l\default=true
+player_9_button_lstick="toggle:0,code:70,engine:keyboard"
+player_9_button_lstick\default=true
+player_9_button_minus="toggle:0,code:78,engine:keyboard"
+player_9_button_minus\default=true
+player_9_button_plus="toggle:0,code:77,engine:keyboard"
+player_9_button_plus\default=true
+player_9_button_r="toggle:0,code:69,engine:keyboard"
+player_9_button_r\default=true
+player_9_button_rstick="toggle:0,code:71,engine:keyboard"
+player_9_button_rstick\default=true
+player_9_button_screenshot="toggle:0,code:0,engine:keyboard"
+player_9_button_screenshot\default=true
+player_9_button_sl="toggle:0,code:81,engine:keyboard"
+player_9_button_sl\default=true
+player_9_button_sr="toggle:0,code:69,engine:keyboard"
+player_9_button_sr\default=true
+player_9_button_x="toggle:0,code:86,engine:keyboard"
+player_9_button_x\default=true
+player_9_button_y="toggle:0,code:90,engine:keyboard"
+player_9_button_y\default=true
+player_9_button_zl="toggle:0,code:82,engine:keyboard"
+player_9_button_zl\default=true
+player_9_button_zr="toggle:0,code:84,engine:keyboard"
+player_9_button_zr\default=true
+player_9_connected=false
+player_9_connected\default=true
+player_9_lstick="modifier_scale:0.500000,modifier:toggle$00$1code$016777248$1engine$0keyboard,right:toggle$00$1code$068$1engine$0keyboard,left:toggle$00$1code$065$1engine$0keyboard,down:toggle$00$1code$083$1engine$0keyboard,up:toggle$00$1code$087$1engine$0keyboard,engine:analog_from_button"
+player_9_lstick\default=true
+player_9_motionleft="toggle:0,code:55,engine:keyboard"
+player_9_motionleft\default=true
+player_9_motionright="toggle:0,code:56,engine:keyboard"
+player_9_motionright\default=true
+player_9_rstick="modifier_scale:0.500000,modifier:toggle$00$1code$00$1engine$0keyboard,right:toggle$00$1code$076$1engine$0keyboard,left:toggle$00$1code$074$1engine$0keyboard,down:toggle$00$1code$075$1engine$0keyboard,up:toggle$00$1code$073$1engine$0keyboard,engine:analog_from_button"
+player_9_rstick\default=true
+player_9_type=0
+player_9_type\default=true
+player_9_vibration_enabled=true
+player_9_vibration_enabled\default=true
+player_9_vibration_strength=100
+player_9_vibration_strength\default=true
+ring_controller="modifier_scale:0.050000,modifier:toggle$00$1code$00$1engine$0keyboard,right:toggle$00$1code$068$1engine$0keyboard,left:toggle$00$1code$065$1engine$0keyboard,down:toggle$00$1code$00$1engine$0keyboard,up:toggle$00$1code$00$1engine$0keyboard,engine:analog_from_button"
+ring_controller\default=true
+tas_enable=false
+tas_enable\default=true
+tas_loop=false
+tas_loop\default=true
+touch_device="min_x:100,min_y:50,max_x:1800,max_y:850"
+touch_device\default=true
+touch_from_button_map=0
+touch_from_button_map\default=true
+touch_from_button_maps\1\entries\size=0
+touch_from_button_maps\1\name=default
+touch_from_button_maps\1\name\default=true
+touch_from_button_maps\size=1
+touchscreen_angle=0
+touchscreen_angle\default=true
+touchscreen_diameter_x=15
+touchscreen_diameter_x\default=true
+touchscreen_diameter_y=15
+touchscreen_diameter_y\default=true
+touchscreen_enabled=true
+touchscreen_enabled\default=true
+udp_input_servers=127.0.0.1:26760
+udp_input_servers\default=true
+use_docked_mode=false
+use_docked_mode\default=false
+vibration_enabled=true
+vibration_enabled\default=true
+
+[Core]
+use_extended_memory_layout=false
+use_extended_memory_layout\default=true
+use_multi_core=true
+use_multi_core\default=true
+
+[Cpu]
+cpu_accuracy=0
+cpu_accuracy\default=true
+cpu_accuracy_first_time=false
+cpu_accuracy_first_time\default=false
+cpu_debug_mode=false
+cpu_debug_mode\default=true
+cpuopt_block_linking=true
+cpuopt_block_linking\default=true
+cpuopt_const_prop=true
+cpuopt_const_prop\default=true
+cpuopt_context_elimination=true
+cpuopt_context_elimination\default=true
+cpuopt_fast_dispatcher=true
+cpuopt_fast_dispatcher\default=true
+cpuopt_fastmem=true
+cpuopt_fastmem\default=true
+cpuopt_fastmem_exclusives=true
+cpuopt_fastmem_exclusives\default=true
+cpuopt_ignore_memory_aborts=true
+cpuopt_ignore_memory_aborts\default=true
+cpuopt_misc_ir=true
+cpuopt_misc_ir\default=true
+cpuopt_page_tables=true
+cpuopt_page_tables\default=true
+cpuopt_recompile_exclusives=true
+cpuopt_recompile_exclusives\default=true
+cpuopt_reduce_misalign_checks=true
+cpuopt_reduce_misalign_checks\default=true
+cpuopt_return_stack_buffer=true
+cpuopt_return_stack_buffer\default=true
+cpuopt_unsafe_fastmem_check=true
+cpuopt_unsafe_fastmem_check\default=true
+cpuopt_unsafe_ignore_global_monitor=true
+cpuopt_unsafe_ignore_global_monitor\default=true
+cpuopt_unsafe_ignore_standard_fpcr=true
+cpuopt_unsafe_ignore_standard_fpcr\default=true
+cpuopt_unsafe_inaccurate_nan=true
+cpuopt_unsafe_inaccurate_nan\default=true
+cpuopt_unsafe_reduce_fp_error=true
+cpuopt_unsafe_reduce_fp_error\default=true
+cpuopt_unsafe_unfuse_fma=true
+cpuopt_unsafe_unfuse_fma\default=true
+
+[Data%20Storage]
+dump_directory=/var/data/yuzu/dump
+dump_directory\default=true
+gamecard_current_game=false
+gamecard_current_game\default=true
+gamecard_inserted=false
+gamecard_inserted\default=true
+gamecard_path=
+gamecard_path\default=true
+load_directory=/var/data/yuzu/load
+load_directory\default=true
+nand_directory=RETRODECKHOMEDIR/saves/switch/nand
+nand_directory\default=true
+sdmc_directory=RETRODECKHOMEDIR/saves/switch/sdmc
+sdmc_directory\default=true
+tas_directory=/var/data/yuzu/tas
+tas_directory\default=true
+use_virtual_sd=true
+use_virtual_sd\default=true
+
+[Debugging]
+create_crash_dumps=false
+create_crash_dumps\default=true
+disable_macro_hle=false
+disable_macro_hle\default=true
+disable_macro_jit=false
+disable_macro_jit\default=true
+dump_exefs=false
+dump_exefs\default=true
+dump_nso=false
+dump_nso\default=true
+enable_all_controllers=false
+enable_all_controllers\default=true
+enable_fs_access_log=false
+enable_fs_access_log\default=true
+gdbstub_port=6543
+gdbstub_port\default=true
+perform_vulkan_check=true
+perform_vulkan_check\default=true
+program_args=
+program_args\default=true
+quest_flag=false
+quest_flag\default=true
+record_frame_times=false
+use_debug_asserts=false
+use_debug_asserts\default=true
+use_gdbstub=false
+use_gdbstub\default=true
+
+[DisabledAddOns]
+1\disabled\size=0
+1\title_id=@Variant(\0\0\0\x84\x1\0\xa3\xd0\b\xc5\xc0\0)
+1\title_id\default=false
+size=1
+
+[Miscellaneous]
+log_filter=*:Info
+log_filter\default=true
+use_dev_keys=false
+use_dev_keys\default=true
+
+[Multiplayer]
+game_id=0
+game_id\default=true
+host_type=0
+host_type\default=true
+ip=
+ip\default=true
+ip_ban_list\size=0
+max_player=8
+max_player\default=true
+nickname=
+nickname\default=true
+port=24872
+port\default=true
+room_description=
+room_description\default=true
+room_name=
+room_name\default=true
+room_nickname=RetroDECK
+room_nickname\default=true
+room_port=24872
+room_port\default=true
+username_ban_list\size=0
+
+[Renderer]
+accelerate_astc=true
+accelerate_astc\default=true
+anti_aliasing=0
+anti_aliasing\default=true
+aspect_ratio=0
+aspect_ratio\default=true
+async_astc=false
+async_astc\default=true
+backend=1
+backend\default=true
+bg_blue=0
+bg_blue\default=true
+bg_green=0
+bg_green\default=true
+bg_red=0
+bg_red\default=true
+debug=false
+debug\default=true
+disable_shader_loop_safety_checks=false
+disable_shader_loop_safety_checks\default=true
+force_max_clock=false
+force_max_clock\default=true
+fsr_sharpening_slider=25
+fsr_sharpening_slider\default=true
+fullscreen_mode=1
+fullscreen_mode\default=true
+gpu_accuracy=0
+gpu_accuracy\default=false
+max_anisotropy=1
+max_anisotropy\default=false
+nsight_aftermath=false
+nsight_aftermath\default=true
+nvdec_emulation=2
+nvdec_emulation\default=true
+resolution_setup=2
+resolution_setup\default=true
+scaling_filter=5
+scaling_filter\default=false
+shader_backend=0
+shader_backend\default=true
+shader_feedback=false
+shader_feedback\default=true
+speed_limit=100
+speed_limit\default=true
+use_asynchronous_gpu_emulation=true
+use_asynchronous_gpu_emulation\default=true
+use_asynchronous_shaders=true
+use_asynchronous_shaders\default=false
+use_disk_shader_cache=true
+use_disk_shader_cache\default=true
+use_fast_gpu_time=true
+use_fast_gpu_time\default=true
+use_pessimistic_flushes=false
+use_pessimistic_flushes\default=true
+use_vsync=true
+use_vsync\default=true
+use_vulkan_driver_pipeline_cache=true
+use_vulkan_driver_pipeline_cache\default=true
+vulkan_device=0
+vulkan_device\default=true
+
+[Services]
+network_interface=wlan0
+network_interface\default=false
+
+[System]
+current_user=0
+current_user\default=true
+custom_rtc=0
+custom_rtc\default=true
+custom_rtc_enabled=false
+custom_rtc_enabled\default=true
+device_name=RetroDECK
+device_name\default=false
+language_index=12
+language_index\default=false
+region_index=2
+region_index\default=false
+rng_seed=0
+rng_seed\default=true
+rng_seed_enabled=false
+rng_seed_enabled\default=true
+sound_index=1
+sound_index\default=true
+time_zone_index=0
+time_zone_index\default=true
+
+[UI]
+Multiplayer\game_id=0
+Multiplayer\game_id\default=true
+Multiplayer\host_type=0
+Multiplayer\host_type\default=true
+Multiplayer\ip=
+Multiplayer\ip\default=true
+Multiplayer\ip_ban_list\size=0
+Multiplayer\max_player=8
+Multiplayer\max_player\default=true
+Multiplayer\nickname=
+Multiplayer\nickname\default=true
+Multiplayer\port=24872
+Multiplayer\port\default=true
+Multiplayer\room_description=
+Multiplayer\room_description\default=true
+Multiplayer\room_name=
+Multiplayer\room_name\default=true
+Multiplayer\room_nickname=
+Multiplayer\room_nickname\default=true
+Multiplayer\room_port=24872
+Multiplayer\room_port\default=true
+Multiplayer\username_ban_list\size=0
+Paths\gamedirs\1\deep_scan=false
+Paths\gamedirs\1\deep_scan\default=true
+Paths\gamedirs\1\expanded=true
+Paths\gamedirs\1\expanded\default=true
+Paths\gamedirs\1\path=SDMC
+Paths\gamedirs\2\deep_scan=false
+Paths\gamedirs\2\deep_scan\default=true
+Paths\gamedirs\2\expanded=true
+Paths\gamedirs\2\expanded\default=true
+Paths\gamedirs\2\path=UserNAND
+Paths\gamedirs\3\deep_scan=false
+Paths\gamedirs\3\deep_scan\default=true
+Paths\gamedirs\3\expanded=true
+Paths\gamedirs\3\expanded\default=true
+Paths\gamedirs\3\path=SysNAND
+Paths\gamedirs\4\deep_scan=false
+Paths\gamedirs\4\deep_scan\default=true
+Paths\gamedirs\4\expanded=true
+Paths\gamedirs\4\expanded\default=true
+Paths\gamedirs\4\path=RETRODECKHOMEDIR/roms/switch
+Paths\gamedirs\size=4
+Paths\language=en
+Paths\language\default=false
+Paths\recentFiles=@Invalid()
+Paths\romsPath=
+Paths\symbolsPath=
+Screenshots\enable_screenshot_save_as=true
+Screenshots\enable_screenshot_save_as\default=true
+Screenshots\screenshot_path=RETRODECKHOMEDIR/screenshots/
+Shortcuts\Main%20Window\Audio%20Mute\Unmute\Context=1
+Shortcuts\Main%20Window\Audio%20Mute\Unmute\Context\default=true
+Shortcuts\Main%20Window\Audio%20Mute\Unmute\Controller_KeySeq=
+Shortcuts\Main%20Window\Audio%20Mute\Unmute\Controller_KeySeq\default=false
+Shortcuts\Main%20Window\Audio%20Mute\Unmute\KeySeq=
+Shortcuts\Main%20Window\Audio%20Mute\Unmute\KeySeq\default=false
+Shortcuts\Main%20Window\Audio%20Mute\Unmute\Repeat=false
+Shortcuts\Main%20Window\Audio%20Mute\Unmute\Repeat\default=true
+Shortcuts\Main%20Window\Audio%20Volume%20Down\Context=1
+Shortcuts\Main%20Window\Audio%20Volume%20Down\Context\default=false
+Shortcuts\Main%20Window\Audio%20Volume%20Down\Controller_KeySeq=
+Shortcuts\Main%20Window\Audio%20Volume%20Down\Controller_KeySeq\default=false
+Shortcuts\Main%20Window\Audio%20Volume%20Down\KeySeq=
+Shortcuts\Main%20Window\Audio%20Volume%20Down\KeySeq\default=false
+Shortcuts\Main%20Window\Audio%20Volume%20Down\Repeat=true
+Shortcuts\Main%20Window\Audio%20Volume%20Down\Repeat\default=true
+Shortcuts\Main%20Window\Audio%20Volume%20Up\Context=1
+Shortcuts\Main%20Window\Audio%20Volume%20Up\Context\default=false
+Shortcuts\Main%20Window\Audio%20Volume%20Up\Controller_KeySeq=
+Shortcuts\Main%20Window\Audio%20Volume%20Up\Controller_KeySeq\default=false
+Shortcuts\Main%20Window\Audio%20Volume%20Up\KeySeq=
+Shortcuts\Main%20Window\Audio%20Volume%20Up\KeySeq\default=false
+Shortcuts\Main%20Window\Audio%20Volume%20Up\Repeat=true
+Shortcuts\Main%20Window\Audio%20Volume%20Up\Repeat\default=true
+Shortcuts\Main%20Window\Capture%20Screenshot\Context=3
+Shortcuts\Main%20Window\Capture%20Screenshot\Context\default=true
+Shortcuts\Main%20Window\Capture%20Screenshot\Controller_KeySeq=
+Shortcuts\Main%20Window\Capture%20Screenshot\Controller_KeySeq\default=false
+Shortcuts\Main%20Window\Capture%20Screenshot\KeySeq=Ctrl+X
+Shortcuts\Main%20Window\Capture%20Screenshot\KeySeq\default=false
+Shortcuts\Main%20Window\Capture%20Screenshot\Repeat=false
+Shortcuts\Main%20Window\Capture%20Screenshot\Repeat\default=true
+Shortcuts\Main%20Window\Change%20Adapting%20Filter\Context=1
+Shortcuts\Main%20Window\Change%20Adapting%20Filter\Context\default=false
+Shortcuts\Main%20Window\Change%20Adapting%20Filter\Controller_KeySeq=
+Shortcuts\Main%20Window\Change%20Adapting%20Filter\Controller_KeySeq\default=false
+Shortcuts\Main%20Window\Change%20Adapting%20Filter\KeySeq=
+Shortcuts\Main%20Window\Change%20Adapting%20Filter\KeySeq\default=false
+Shortcuts\Main%20Window\Change%20Adapting%20Filter\Repeat=false
+Shortcuts\Main%20Window\Change%20Adapting%20Filter\Repeat\default=true
+Shortcuts\Main%20Window\Change%20Docked%20Mode\Context=2
+Shortcuts\Main%20Window\Change%20Docked%20Mode\Context\default=true
+Shortcuts\Main%20Window\Change%20Docked%20Mode\Controller_KeySeq=
+Shortcuts\Main%20Window\Change%20Docked%20Mode\Controller_KeySeq\default=false
+Shortcuts\Main%20Window\Change%20Docked%20Mode\KeySeq=Alt+D
+Shortcuts\Main%20Window\Change%20Docked%20Mode\KeySeq\default=false
+Shortcuts\Main%20Window\Change%20Docked%20Mode\Repeat=false
+Shortcuts\Main%20Window\Change%20Docked%20Mode\Repeat\default=true
+Shortcuts\Main%20Window\Change%20GPU%20Accuracy\Context=2
+Shortcuts\Main%20Window\Change%20GPU%20Accuracy\Context\default=true
+Shortcuts\Main%20Window\Change%20GPU%20Accuracy\Controller_KeySeq=
+Shortcuts\Main%20Window\Change%20GPU%20Accuracy\Controller_KeySeq\default=false
+Shortcuts\Main%20Window\Change%20GPU%20Accuracy\KeySeq=Alt+G
+Shortcuts\Main%20Window\Change%20GPU%20Accuracy\KeySeq\default=false
+Shortcuts\Main%20Window\Change%20GPU%20Accuracy\Repeat=false
+Shortcuts\Main%20Window\Change%20GPU%20Accuracy\Repeat\default=true
+Shortcuts\Main%20Window\Continue\Pause%20Emulation\Context=1
+Shortcuts\Main%20Window\Continue\Pause%20Emulation\Context\default=true
+Shortcuts\Main%20Window\Continue\Pause%20Emulation\Controller_KeySeq=
+Shortcuts\Main%20Window\Continue\Pause%20Emulation\Controller_KeySeq\default=false
+Shortcuts\Main%20Window\Continue\Pause%20Emulation\KeySeq=Ctrl+P
+Shortcuts\Main%20Window\Continue\Pause%20Emulation\KeySeq\default=false
+Shortcuts\Main%20Window\Continue\Pause%20Emulation\Repeat=false
+Shortcuts\Main%20Window\Continue\Pause%20Emulation\Repeat\default=true
+Shortcuts\Main%20Window\Exit%20Fullscreen\Context=1
+Shortcuts\Main%20Window\Exit%20Fullscreen\Context\default=true
+Shortcuts\Main%20Window\Exit%20Fullscreen\Controller_KeySeq=
+Shortcuts\Main%20Window\Exit%20Fullscreen\Controller_KeySeq\default=true
+Shortcuts\Main%20Window\Exit%20Fullscreen\KeySeq=Ctrl+O
+Shortcuts\Main%20Window\Exit%20Fullscreen\KeySeq\default=false
+Shortcuts\Main%20Window\Exit%20Fullscreen\Repeat=false
+Shortcuts\Main%20Window\Exit%20Fullscreen\Repeat\default=true
+Shortcuts\Main%20Window\Exit%20yuzu\Context=1
+Shortcuts\Main%20Window\Exit%20yuzu\Context\default=true
+Shortcuts\Main%20Window\Exit%20yuzu\Controller_KeySeq=
+Shortcuts\Main%20Window\Exit%20yuzu\Controller_KeySeq\default=false
+Shortcuts\Main%20Window\Exit%20yuzu\KeySeq=Ctrl+Q
+Shortcuts\Main%20Window\Exit%20yuzu\KeySeq\default=false
+Shortcuts\Main%20Window\Exit%20yuzu\Repeat=false
+Shortcuts\Main%20Window\Exit%20yuzu\Repeat\default=true
+Shortcuts\Main%20Window\Fullscreen\Context=1
+Shortcuts\Main%20Window\Fullscreen\Context\default=true
+Shortcuts\Main%20Window\Fullscreen\Controller_KeySeq=
+Shortcuts\Main%20Window\Fullscreen\Controller_KeySeq\default=false
+Shortcuts\Main%20Window\Fullscreen\KeySeq=Ctrl+Return
+Shortcuts\Main%20Window\Fullscreen\KeySeq\default=false
+Shortcuts\Main%20Window\Fullscreen\Repeat=false
+Shortcuts\Main%20Window\Fullscreen\Repeat\default=true
+Shortcuts\Main%20Window\Load%20File\Context=1
+Shortcuts\Main%20Window\Load%20File\Context\default=false
+Shortcuts\Main%20Window\Load%20File\Controller_KeySeq=
+Shortcuts\Main%20Window\Load%20File\Controller_KeySeq\default=true
+Shortcuts\Main%20Window\Load%20File\KeySeq=
+Shortcuts\Main%20Window\Load%20File\KeySeq\default=false
+Shortcuts\Main%20Window\Load%20File\Repeat=false
+Shortcuts\Main%20Window\Load%20File\Repeat\default=true
+Shortcuts\Main%20Window\Load\Remove%20Amiibo\Context=3
+Shortcuts\Main%20Window\Load\Remove%20Amiibo\Context\default=true
+Shortcuts\Main%20Window\Load\Remove%20Amiibo\Controller_KeySeq=
+Shortcuts\Main%20Window\Load\Remove%20Amiibo\Controller_KeySeq\default=false
+Shortcuts\Main%20Window\Load\Remove%20Amiibo\KeySeq=Alt+M
+Shortcuts\Main%20Window\Load\Remove%20Amiibo\KeySeq\default=false
+Shortcuts\Main%20Window\Load\Remove%20Amiibo\Repeat=false
+Shortcuts\Main%20Window\Load\Remove%20Amiibo\Repeat\default=true
+Shortcuts\Main%20Window\Restart%20Emulation\Context=1
+Shortcuts\Main%20Window\Restart%20Emulation\Context\default=true
+Shortcuts\Main%20Window\Restart%20Emulation\Controller_KeySeq=
+Shortcuts\Main%20Window\Restart%20Emulation\Controller_KeySeq\default=true
+Shortcuts\Main%20Window\Restart%20Emulation\KeySeq=Ctrl+R
+Shortcuts\Main%20Window\Restart%20Emulation\KeySeq\default=false
+Shortcuts\Main%20Window\Restart%20Emulation\Repeat=false
+Shortcuts\Main%20Window\Restart%20Emulation\Repeat\default=true
+Shortcuts\Main%20Window\Stop%20Emulation\Context=1
+Shortcuts\Main%20Window\Stop%20Emulation\Context\default=true
+Shortcuts\Main%20Window\Stop%20Emulation\Controller_KeySeq=
+Shortcuts\Main%20Window\Stop%20Emulation\Controller_KeySeq\default=true
+Shortcuts\Main%20Window\Stop%20Emulation\KeySeq=
+Shortcuts\Main%20Window\Stop%20Emulation\KeySeq\default=false
+Shortcuts\Main%20Window\Stop%20Emulation\Repeat=false
+Shortcuts\Main%20Window\Stop%20Emulation\Repeat\default=true
+Shortcuts\Main%20Window\TAS%20Record\Context=1
+Shortcuts\Main%20Window\TAS%20Record\Context\default=false
+Shortcuts\Main%20Window\TAS%20Record\Controller_KeySeq=
+Shortcuts\Main%20Window\TAS%20Record\Controller_KeySeq\default=true
+Shortcuts\Main%20Window\TAS%20Record\KeySeq=
+Shortcuts\Main%20Window\TAS%20Record\KeySeq\default=false
+Shortcuts\Main%20Window\TAS%20Record\Repeat=false
+Shortcuts\Main%20Window\TAS%20Record\Repeat\default=true
+Shortcuts\Main%20Window\TAS%20Reset\Context=1
+Shortcuts\Main%20Window\TAS%20Reset\Context\default=false
+Shortcuts\Main%20Window\TAS%20Reset\Controller_KeySeq=
+Shortcuts\Main%20Window\TAS%20Reset\Controller_KeySeq\default=true
+Shortcuts\Main%20Window\TAS%20Reset\KeySeq=
+Shortcuts\Main%20Window\TAS%20Reset\KeySeq\default=false
+Shortcuts\Main%20Window\TAS%20Reset\Repeat=false
+Shortcuts\Main%20Window\TAS%20Reset\Repeat\default=true
+Shortcuts\Main%20Window\TAS%20Start\Stop\Context=1
+Shortcuts\Main%20Window\TAS%20Start\Stop\Context\default=false
+Shortcuts\Main%20Window\TAS%20Start\Stop\Controller_KeySeq=
+Shortcuts\Main%20Window\TAS%20Start\Stop\Controller_KeySeq\default=true
+Shortcuts\Main%20Window\TAS%20Start\Stop\KeySeq=
+Shortcuts\Main%20Window\TAS%20Start\Stop\KeySeq\default=false
+Shortcuts\Main%20Window\TAS%20Start\Stop\Repeat=false
+Shortcuts\Main%20Window\TAS%20Start\Stop\Repeat\default=true
+Shortcuts\Main%20Window\Toggle%20Filter%20Bar\Context=1
+Shortcuts\Main%20Window\Toggle%20Filter%20Bar\Context\default=true
+Shortcuts\Main%20Window\Toggle%20Filter%20Bar\Controller_KeySeq=
+Shortcuts\Main%20Window\Toggle%20Filter%20Bar\Controller_KeySeq\default=true
+Shortcuts\Main%20Window\Toggle%20Filter%20Bar\KeySeq=
+Shortcuts\Main%20Window\Toggle%20Filter%20Bar\KeySeq\default=false
+Shortcuts\Main%20Window\Toggle%20Filter%20Bar\Repeat=false
+Shortcuts\Main%20Window\Toggle%20Filter%20Bar\Repeat\default=true
+Shortcuts\Main%20Window\Toggle%20Framerate%20Limit\Context=2
+Shortcuts\Main%20Window\Toggle%20Framerate%20Limit\Context\default=true
+Shortcuts\Main%20Window\Toggle%20Framerate%20Limit\Controller_KeySeq=
+Shortcuts\Main%20Window\Toggle%20Framerate%20Limit\Controller_KeySeq\default=false
+Shortcuts\Main%20Window\Toggle%20Framerate%20Limit\KeySeq=Ctrl+Z
+Shortcuts\Main%20Window\Toggle%20Framerate%20Limit\KeySeq\default=false
+Shortcuts\Main%20Window\Toggle%20Framerate%20Limit\Repeat=false
+Shortcuts\Main%20Window\Toggle%20Framerate%20Limit\Repeat\default=true
+Shortcuts\Main%20Window\Toggle%20Mouse%20Panning\Context=1
+Shortcuts\Main%20Window\Toggle%20Mouse%20Panning\Context\default=false
+Shortcuts\Main%20Window\Toggle%20Mouse%20Panning\Controller_KeySeq=
+Shortcuts\Main%20Window\Toggle%20Mouse%20Panning\Controller_KeySeq\default=true
+Shortcuts\Main%20Window\Toggle%20Mouse%20Panning\KeySeq=
+Shortcuts\Main%20Window\Toggle%20Mouse%20Panning\KeySeq\default=false
+Shortcuts\Main%20Window\Toggle%20Mouse%20Panning\Repeat=false
+Shortcuts\Main%20Window\Toggle%20Mouse%20Panning\Repeat\default=true
+Shortcuts\Main%20Window\Toggle%20Status%20Bar\Context=1
+Shortcuts\Main%20Window\Toggle%20Status%20Bar\Context\default=true
+Shortcuts\Main%20Window\Toggle%20Status%20Bar\Controller_KeySeq=
+Shortcuts\Main%20Window\Toggle%20Status%20Bar\Controller_KeySeq\default=true
+Shortcuts\Main%20Window\Toggle%20Status%20Bar\KeySeq=
+Shortcuts\Main%20Window\Toggle%20Status%20Bar\KeySeq\default=false
+Shortcuts\Main%20Window\Toggle%20Status%20Bar\Repeat=false
+Shortcuts\Main%20Window\Toggle%20Status%20Bar\Repeat\default=true
+UIGameList\cache_game_list=true
+UIGameList\cache_game_list\default=true
+UIGameList\favorites\size=0
+UIGameList\favorites_expanded=true
+UIGameList\favorites_expanded\default=true
+UIGameList\folder_icon_size=48
+UIGameList\folder_icon_size\default=true
+UIGameList\game_icon_size=64
+UIGameList\game_icon_size\default=true
+UIGameList\row_1_text_id=3
+UIGameList\row_1_text_id\default=true
+UIGameList\row_2_text_id=2
+UIGameList\row_2_text_id\default=true
+UIGameList\show_add_ons=true
+UIGameList\show_add_ons\default=true
+UIGameList\show_compat=false
+UIGameList\show_compat\default=true
+UIGameList\show_size=true
+UIGameList\show_size\default=true
+UIGameList\show_types=true
+UIGameList\show_types\default=true
+UILayout\gameListHeaderState=@ByteArray(\0\0\0\xff\0\0\0\0\0\0\0\x1\0\0\0\x1\0\0\0\x5\x1\0\0\0\0\0\0\0\0\0\0\0\x5\x2\0\0\0\x1\0\0\0\x1\0\0\0\x64\0\0\x4X\0\0\0\x5\x1\x1\0\x1\0\0\0\0\0\0\0\0\0\0\0\0\x64\xff\xff\xff\xff\0\0\0\x81\0\0\0\0\0\0\0\x5\0\0\x2\x80\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\x1\x10\0\0\0\x1\0\0\0\0\0\0\x3\xe8\0\0\0\0\x64)
+UILayout\geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\0\0\0\0\0\0\0\x4W\0\0\x2\x14\0\0\0\0\0\0\0\0\0\0\x4W\0\0\x2\x14\0\0\0\0\0\0\0\0\x4\xfd\0\0\0\0\0\0\0\0\0\0\x4W\0\0\x2\x14)
+UILayout\geometryRenderWindow=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\0\0\0\0\x14\0\0\0\x63\0\0\0\x31\0\0\0\0\0\0\0\x14\0\0\0\x63\0\0\0\x31\0\0\0\0\0\0\0\0\x4\xfd\0\0\0\0\0\0\0\x14\0\0\0\x63\0\0\0\x31)
+UILayout\microProfileDialogGeometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\0\0\0\0\x14\0\0\x3\xe7\0\0\x2k\0\0\0\0\0\0\0\x14\0\0\x3\xe7\0\0\x2k\0\0\0\0\0\0\0\0\x4\xfd\0\0\0\0\0\0\0\x14\0\0\x3\xe7\0\0\x2k)
+UILayout\microProfileDialogVisible=false
+UILayout\microProfileDialogVisible\default=true
+UILayout\state=@ByteArray(\0\0\0\xff\0\0\0\0\xfd\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\0\xfc\x2\0\0\0\x1\xfb\0\0\0\x1c\0W\0\x61\0i\0t\0T\0r\0\x65\0\x65\0W\0i\0\x64\0g\0\x65\0t\0\0\0\0\0\xff\xff\xff\xff\0\0\0V\0\xff\xff\xff\0\0\x4X\0\0\x1\xeb\0\0\0\x4\0\0\0\x4\0\0\0\b\0\0\0\b\xfc\0\0\0\0)
+calloutFlags=1
+calloutFlags\default=false
+confirmClose=false
+confirmClose\default=false
+disable_web_applet=false
+disable_web_applet\default=false
+displayTitleBars=true
+displayTitleBars\default=true
+enable_discord_presence=true
+enable_discord_presence\default=true
+firstStart=false
+firstStart\default=false
+fullscreen=false
+fullscreen\default=true
+hideInactiveMouse=true
+hideInactiveMouse\default=true
+muteWhenInBackground=false
+muteWhenInBackground\default=true
+pauseWhenInBackground=false
+pauseWhenInBackground\default=true
+select_user_on_boot=false
+select_user_on_boot\default=true
+showConsole=false
+showConsole\default=true
+showFilterBar=true
+showFilterBar\default=true
+showStatusBar=true
+showStatusBar\default=true
+singleWindowMode=true
+singleWindowMode\default=true
+theme=colorful_dark
+theme\default=false
+
+[WebService]
+enable_telemetry=false
+enable_telemetry\default=false
+web_api_url=
+web_api_url\default=true
+yuzu_token=
+yuzu_token\default=true
+yuzu_username=RetroDECK
+yuzu_username\default=true
diff --git a/es-configs/es_find_rules.xml b/es-configs/es_find_rules.xml
index 8f4a6cc7..f8369bba 100644
--- a/es-configs/es_find_rules.xml
+++ b/es-configs/es_find_rules.xml
@@ -170,6 +170,7 @@
org.citra_emu.citra
+ /var/data/ponzu/Citra/bin/citra-qt
~/Applications/citra-qt*.AppImage
~/.local/share/applications/citra-qt*.AppImage
~/.local/bin/citra-qt*.AppImage
@@ -1049,6 +1050,22 @@
~/bin/xroar/xroar
+
+
+
+ yuzu
+ org.yuzu_emu.yuzu
+
+
+ /var/data/ponzu/Yuzu/bin/yuzu
+ ~/Applications/yuzu*.AppImage
+ ~/.local/share/applications/yuzu*.AppImage
+ ~/.local/bin/yuzu*.AppImage
+ ~/bin/yuzu*.AppImage
+ /var/lib/flatpak/exports/bin/org.yuzu_emu.yuzu
+ ~/.local/share/flatpak/exports/bin/org.yuzu_emu.yuzu
+
+
diff --git a/es-configs/es_systems.xml b/es-configs/es_systems.xml
index ae96fb54..dea5a026 100644
--- a/es-configs/es_systems.xml
+++ b/es-configs/es_systems.xml
@@ -1172,9 +1172,9 @@
Nintendo 3DS
%ROMPATH%/n3ds
.3ds .3DS .3dsx .3DSX .app .APP .axf .AXF .cci .CCI .cxi .CXI .elf .ELF .7z .7Z .zip .ZIP
-
%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/citra_libretro.so %ROM%
%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/citra2018_libretro.so %ROM%
+ %EMULATOR_CITRA% %ROM%
n3ds
n3ds
@@ -1878,6 +1878,7 @@
%ROMPATH%/switch
.nca .NCA .nro .NRO .nso .NSO .nsp .NSP .xci .XCI
%EMULATOR_RYUJINX% %ROM%
+ %INJECT%=%BASENAME%.esprefix %EMULATOR_YUZU% -f -g %ROM%
switch
switch
diff --git a/functions/functions.sh b/functions/functions.sh
index dd8ee2bf..ea480070 100644
--- a/functions/functions.sh
+++ b/functions/functions.sh
@@ -657,6 +657,98 @@ manage_ryujinx_keys() {
fi
}
+ponzu() {
+ # This function is used to extract some specific appimages
+ # Check if any of the specified files exist
+ # If RetroDECK is reset Ponzu must re-cooked
+
+ log d "Checking for Ponzu"
+
+ local tmp_folder="/tmp/extracted"
+ local ponzu_files=("$rdhome"/ponzu/Citra*.AppImage "$rdhome"/ponzu/citra*.AppImage "$rdhome"/ponzu/Yuzu*.AppImage "$rdhome"/ponzu/yuzu*.AppImage)
+ local data_dir
+ local appimage
+ local executable
+
+ # Loop through all ponzu files
+ for ponzu_file in "${ponzu_files[@]}"; do
+ # Check if the current ponzu file exists
+ if [ -f "$ponzu_file" ]; then
+ if [[ "$ponzu_file" == *itra* ]]; then
+ log i "Found akai ponzu! Elaborating it"
+ data_dir="/var/data/ponzu/Citra"
+ local message="Akai ponzu is served, enjoy"
+ elif [[ "$ponzu_file" == *uzu* ]]; then
+ log i "Found kiroi ponzu! Elaborating it"
+ data_dir="/var/data/ponzu/Yuzu"
+ local message="Kiroi ponzu is served, enjoy"
+ else
+ log e "AppImage not recognized, not a ponzu ingredient!"
+ exit 1
+ fi
+ appimage="$ponzu_file"
+ chmod +x "$ponzu_file"
+ create_dir "$data_dir"
+ log d "Moving AppImage in \"$data_dir\""
+ mv "$appimage" "$data_dir"
+ cd "$data_dir"
+ local filename=$(basename "$ponzu_file")
+ log d "Setting appimage=$data_dir/$filename"
+ appimage="$data_dir/$filename"
+ log d "Extracting AppImage"
+ "$appimage" --appimage-extract
+ create_dir "$tmp_folder"
+ log d "Cleaning up"
+ cp -r squashfs-root/* "$tmp_folder"
+ rm -rf *
+ if [[ "$ponzu_file" == *itra* ]]; then
+ mv "$tmp_folder/usr/"** .
+ executable="$data_dir/bin/citra-qt"
+ log d "Making $executable executable"
+ chmod +x "$executable"
+ prepare_component "reset" "yuzu"
+ set_setting_value $rd_conf "akai_ponzu" "true" retrodeck "options"
+ elif [[ "$ponzu_file" == *uzu* ]]; then
+ mv "$tmp_folder/usr/"** .
+ executable="$data_dir/bin/yuzu"
+ log d "Making $executable executable"
+ chmod +x "$executable"
+ prepare_component "reset" "citra"
+ set_setting_value $rd_conf "kiroi_ponzu" "true" retrodeck "options"
+ fi
+
+ cd -
+ log i "$message"
+ rm -rf "$tmp_folder"
+ fi
+ done
+ rm -rf "$rdhome/ponzu"
+}
+
+ponzu_remove(){
+
+ # Call me with yuzu or citra and I will remove them
+
+ if [[ "$1" == "citra" ]]; then
+ if [[ $(configurator_generic_question_dialog "Ponzu - Remove Citra" "Do you really want to remove Citra binaries?\n\nYour games and saves will not be deleted.") == "true" ]]; then
+ log i "Ponzu: removing Citra"
+ rm -rf "/var/data/ponzu/Citra"
+ set_setting_value $rd_conf "akai_ponzu" "false" retrodeck "options"
+ configurator_generic_dialog "Ponzu - Remove Citra" "Done, Citra is now removed from RetroDECK"
+ fi
+ elif [[ "$1" == "yuzu" ]]; then
+ if [[ $(configurator_generic_question_dialog "Ponzu - Remove Yuzu" "Do you really want to remove Yuzu binaries?\n\nYour games and saves will not be deleted.") == "true" ]]; then
+ log i "Ponzu: removing Yuzu"
+ rm -rf "/var/data/ponzu/Yuzu"
+ set_setting_value $rd_conf "kiroi_ponzu" "false" retrodeck "options"
+ configurator_generic_dialog "Ponzu - Remove Yuzu" "Done, Yuzu is now removed from RetroDECK"
+ fi
+ else
+ log e "Ponzu: \"$1\" is not a vaild choice for removal, quitting"
+ fi
+ configurator_retrodeck_tools_dialog
+}
+
# TODO: this function is not yet used
branch_selector() {
log d "Fetch branches from GitHub API excluding \"main\""
@@ -726,6 +818,7 @@ quit_retrodeck() {
start_retrodeck() {
easter_eggs # Check if today has a surprise splashscreen and load it if so
+ ponzu
log i "Starting RetroDECK v$version"
es-de --home /var/config/
}
diff --git a/functions/global.sh b/functions/global.sh
index ca6a3fa5..70a603f2 100644
--- a/functions/global.sh
+++ b/functions/global.sh
@@ -59,6 +59,8 @@ duckstationconf="/var/config/duckstation/settings.ini"
melondsconf="/var/config/melonDS/melonDS.ini"
ryujinxconf="/var/config/Ryujinx/Config.json"
xemuconf="/var/config/xemu/xemu.toml"
+yuzuconf="/var/config/yuzu/qt-config.ini"
+citraconf="/var/config/citra-emu/qt-config.ini"
# ES-DE config files
diff --git a/functions/patching.sh b/functions/patching.sh
index 3b646950..87d8188b 100644
--- a/functions/patching.sh
+++ b/functions/patching.sh
@@ -12,7 +12,7 @@ set_setting_value() {
case $4 in
- "retrodeck" | "melonds" | "libretro_scummvm" )
+ "retrodeck" | "melonds" | "yuzu" | "citra" | "libretro_scummvm" )
if [[ -z $current_section_name ]]; then
sed -i 's^\^'"$setting_name_to_change"'=.*^'"$setting_name_to_change"'='"$setting_value_to_change"'^' "$1"
else
@@ -107,7 +107,7 @@ get_setting_value() {
case $3 in
- "retrodeck" | "melonds" ) # For files with this syntax - setting_name=setting_value
+ "retrodeck" | "melonds" | "yuzu" ) # For files with this syntax - setting_name=setting_value
if [[ -z $current_section_name ]]; then
echo $(grep -o -P "(?<=^$current_setting_name=).*" "$1")
else
diff --git a/functions/prepare_component.sh b/functions/prepare_component.sh
index 66069d84..c7cb19b4 100644
--- a/functions/prepare_component.sh
+++ b/functions/prepare_component.sh
@@ -171,6 +171,51 @@ prepare_component() {
fi
fi
+ if [[ "$component" =~ ^(citra|citra-emu|Citra|all)$ ]]; then
+ if [[ "$action" == "reset" ]]; then # Run reset-only commands
+ log i "------------------------"
+ log i "Prepearing CITRA"
+ log i "------------------------"
+ if [[ $multi_user_mode == "true" ]]; then # Multi-user actions
+ create_dir -d "$multi_user_data_folder/$SteamAppUser/config/citra-emu"
+ cp -fv $emuconfigs/citra/qt-config.ini "$multi_user_data_folder/$SteamAppUser/config/citra-emu/qt-config.ini"
+ set_setting_value "$multi_user_data_folder/$SteamAppUser/config/citra-emu/qt-config.ini" "nand_directory" "$saves_folder/n3ds/citra/nand/" "citra" "Data%20Storage"
+ set_setting_value "$multi_user_data_folder/$SteamAppUser/config/citra-emu/qt-config.ini" "sdmc_directory" "$saves_folder/n3ds/citra/sdmc/" "citra" "Data%20Storage"
+ set_setting_value "$multi_user_data_folder/$SteamAppUser/config/citra-emu/qt-config.ini" "Paths\gamedirs\3\path" "$roms_folder/n3ds" "citra" "UI"
+ set_setting_value "$multi_user_data_folder/$SteamAppUser/config/citra-emu/qt-config.ini" "Paths\screenshotPath" "$screenshots_folder" "citra" "UI"
+ dir_prep "$multi_user_data_folder/$SteamAppUser/config/citra-emu" "/var/config/citra-emu"
+ else # Single-user actions
+ create_dir -d /var/config/citra-emu/
+ cp -f $emuconfigs/citra/qt-config.ini /var/config/citra-emu/qt-config.ini
+ set_setting_value "$citraconf" "nand_directory" "$saves_folder/n3ds/citra/nand/" "citra" "Data%20Storage"
+ set_setting_value "$citraconf" "sdmc_directory" "$saves_folder/n3ds/citra/sdmc/" "citra" "Data%20Storage"
+ set_setting_value "$citraconf" "Paths\gamedirs\3\path" "$roms_folder/n3ds" "citra" "UI"
+ set_setting_value "$citraconf" "Paths\screenshotPath" "$screenshots_folder" "citra" "UI"
+ fi
+ # Shared actions
+ create_dir "$saves_folder/n3ds/citra/nand/"
+ create_dir "$saves_folder/n3ds/citra/sdmc/"
+ dir_prep "$bios_folder/citra/sysdata" "/var/data/citra-emu/sysdata"
+ dir_prep "$logs_folder/citra" "/var/data/citra-emu/log"
+ dir_prep "$mods_folder/Citra" "/var/data/citra-emu/load/mods"
+ dir_prep "$texture_packs_folder/Citra" "/var/data/citra-emu/load/textures"
+
+ # Reset default preset settings
+ set_setting_value "$rd_conf" "citra" "$(get_setting_value "$rd_defaults" "citra" "retrodeck" "abxy_button_swap")" "retrodeck" "abxy_button_swap"
+ set_setting_value "$rd_conf" "citra" "$(get_setting_value "$rd_defaults" "citra" "retrodeck" "ask_to_exit")" "retrodeck" "ask_to_exit"
+ fi
+ if [[ "$action" == "postmove" ]]; then # Run only post-move commands
+ dir_prep "$rdhome/bios/citra/sysdata" "/var/data/citra-emu/sysdata"
+ dir_prep "$rdhome/logs/citra" "/var/data/citra-emu/log"
+ dir_prep "$mods_folder/Citra" "/var/data/citra-emu/load/mods"
+ dir_prep "$texture_packs_folder/Citra" "/var/data/citra-emu/load/textures"
+ set_setting_value "$citraconf" "nand_directory" "$saves_folder/n3ds/citra/nand/" "citra" "Data%20Storage"
+ set_setting_value "$citraconf" "sdmc_directory" "$saves_folder/n3ds/citra/sdmc/" "citra" "Data%20Storage"
+ set_setting_value "$citraconf" "Paths\gamedirs\3\path" "$roms_folder/n3ds" "citra" "UI"
+ set_setting_value "$citraconf" "Paths\screenshotPath" "$screenshots_folder" "citra" "UI"
+ fi
+ fi
+
if [[ "$component" =~ ^(cemu|Cemu|all)$ ]]; then
if [[ "$action" == "reset" ]]; then # Run reset-only commands
log i "----------------------"
@@ -537,6 +582,60 @@ prepare_component() {
fi
fi
+ if [[ "$component" =~ ^(yuzu|Yuzu|all)$ ]]; then
+ if [[ "$action" == "reset" ]]; then # Run reset-only commands
+ log i "----------------------"
+ log i "Prepearing YUZU"
+ log i "----------------------"
+ if [[ $multi_user_mode == "true" ]]; then # Multi-user actions
+ create_dir -d "$multi_user_data_folder/$SteamAppUser/config/yuzu"
+ cp -fvr "$emuconfigs/yuzu/"* "$multi_user_data_folder/$SteamAppUser/config/yuzu/"
+ set_setting_value "$multi_user_data_folder/$SteamAppUser/config/yuzu/qt-config.ini" "nand_directory" "$saves_folder/switch/yuzu/nand" "yuzu" "Data%20Storage"
+ set_setting_value "$multi_user_data_folder/$SteamAppUser/config/yuzu/qt-config.ini" "sdmc_directory" "$saves_folder/switch/yuzu/sdmc" "yuzu" "Data%20Storage"
+ set_setting_value "$multi_user_data_folder/$SteamAppUser/config/yuzu/qt-config.ini" "Paths\gamedirs\4\path" "$roms_folder/switch" "yuzu" "UI"
+ set_setting_value "$multi_user_data_folder/$SteamAppUser/config/yuzu/qt-config.ini" "Screenshots\screenshot_path" "$screenshots_folder" "yuzu" "UI"
+ dir_prep "$multi_user_data_folder/$SteamAppUser/config/yuzu" "/var/config/yuzu"
+ else # Single-user actions
+ create_dir -d /var/config/yuzu/
+ cp -fvr "$emuconfigs/yuzu/"* /var/config/yuzu/
+ set_setting_value "$yuzuconf" "nand_directory" "$saves_folder/switch/yuzu/nand" "yuzu" "Data%20Storage"
+ set_setting_value "$yuzuconf" "sdmc_directory" "$saves_folder/switch/yuzu/sdmc" "yuzu" "Data%20Storage"
+ set_setting_value "$yuzuconf" "Paths\gamedirs\4\path" "$roms_folder/switch" "yuzu" "UI"
+ set_setting_value "$yuzuconf" "Screenshots\screenshot_path" "$screenshots_folder" "yuzu" "UI"
+ fi
+ # Shared actions
+ dir_prep "$saves_folder/switch/yuzu/nand" "/var/data/yuzu/nand"
+ dir_prep "$saves_folder/switch/yuzu/sdmc" "/var/data/yuzu/sdmc"
+ dir_prep "$bios_folder/switch/keys" "/var/data/yuzu/keys"
+ dir_prep "$bios_folder/switch/firmware" "/var/data/yuzu/nand/system/Contents/registered"
+ dir_prep "$logs_folder/yuzu" "/var/data/yuzu/log"
+ dir_prep "$screenshots_folder" "/var/data/yuzu/screenshots"
+ dir_prep "$mods_folder/Yuzu" "/var/data/yuzu/load"
+ create_dir "$rdhome/customs/yuzu"
+ # removing dead symlinks as they were present in a past version
+ if [ -d $bios_folder/switch ]; then
+ find $bios_folder/switch -xtype l -exec rm {} \;
+ fi
+
+ # Reset default preset settings
+ set_setting_value "$rd_conf" "yuzu" "$(get_setting_value "$rd_defaults" "yuzu" "retrodeck" "abxy_button_swap")" "retrodeck" "abxy_button_swap"
+ set_setting_value "$rd_conf" "yuzu" "$(get_setting_value "$rd_defaults" "yuzu" "retrodeck" "ask_to_exit")" "retrodeck" "ask_to_exit"
+ fi
+ if [[ "$action" == "postmove" ]]; then # Run only post-move commands
+ dir_prep "$bios_folder/switch/keys" "/var/data/yuzu/keys"
+ dir_prep "$bios_folder/switch/firmware" "/var/data/yuzu/nand/system/Contents/registered"
+ dir_prep "$saves_folder/switch/yuzu/nand" "/var/data/yuzu/nand"
+ dir_prep "$saves_folder/switch/yuzu/sdmc" "/var/data/yuzu/sdmc"
+ dir_prep "$logs_folder/yuzu" "/var/data/yuzu/log"
+ dir_prep "$screenshots_folder" "/var/data/yuzu/screenshots"
+ dir_prep "$mods_folder/Yuzu" "/var/data/yuzu/load"
+ set_setting_value "$yuzuconf" "nand_directory" "$saves_folder/switch/yuzu/nand" "yuzu" "Data%20Storage"
+ set_setting_value "$yuzuconf" "sdmc_directory" "$saves_folder/switch/yuzu/sdmc" "yuzu" "Data%20Storage"
+ set_setting_value "$yuzuconf" "Paths\gamedirs\4\path" "$roms_folder/switch" "yuzu" "UI"
+ set_setting_value "$yuzuconf" "Screenshots\screenshot_path" "$screenshots_folder" "yuzu" "UI"
+ fi
+ fi
+
if [[ "$component" =~ ^(xemu|XEMU|all)$ ]]; then
if [[ "$action" == "reset" ]]; then # Run reset-only commands
log i "------------------------"
@@ -678,9 +777,8 @@ prepare_component() {
log i "----------------------"
create_dir "/var/config/gzdoom"
- create_dir -d "/var/data/gzdoom"
+ create_dir "/data/gzdoom/audio/midi"
cp -fvr "$emuconfigs/gzdoom/gzdoom.ini" "/var/config/gzdoom"
- cp -fvr "$emuconfigs/gzdoom/"*".pk3" "/var/data/gzdoom"
sed -i 's#RETRODECKROMSDIR#'$roms_folder'#g' "/var/config/gzdoom/gzdoom.ini" # This is an unfortunate one-off because set_setting_value does not currently support JSON
sed -i 's#RETRODECKSAVESDIR#'$saves_folder'#g' "/var/config/gzdoom/gzdoom.ini" # This is an unfortunate one-off because set_setting_value does not currently support JSON
diff --git a/functions/steam-sync/steam-sync.py b/functions/steam-sync/steam-sync.py
index b89d9fc6..11b078b2 100644
--- a/functions/steam-sync/steam-sync.py
+++ b/functions/steam-sync/steam-sync.py
@@ -129,7 +129,8 @@ command_list_default={
"x68000": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/px68k_libretro.so",
"zx81": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/81_libretro.so",
"zxspectrum": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/fuse_libretro.so",
-"n3ds": "flatpak run --command=citra net.retrodeck.retrodeck",
+"switch": "flatpak run --command=/var/data/ponzu/Yuzu/bin/yuzu net.retrodeck.retrodeck -f -g",
+"n3ds": "flatpak run --command=/var/data/ponzu/Citra/bin/citra-qt net.retrodeck.retrodeck",
"ps2": "flatpak run --command=pcsx2-qt net.retrodeck.retrodeck -batch",
"wiiu": "flatpak run --command=Cemu-wrapper net.retrodeck.retrodeck -g",
"gc": "flatpak run --command=dolphin-emu-wrapper net.retrodeck.retrodeck -b -e",
@@ -169,6 +170,8 @@ alt_command_list={
"Beetle Saturn": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_saturn_libretro.so",
"Snes 9x - Current": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/snes9x_libretro.so",
"Beetle SuperGrafx": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_supergrafx_libretro.so",
+"Yuzu (Standalone)": "flatpak run --command=yuzu net.retrodeck.retrodeck -f -g",
+"Citra (Standalone)": "flatpak run --command=citra net.retrodeck.retrodeck",
"PCSX2 (Standalone)": "flatpak run --command=pcsx2-qt net.retrodeck.retrodeck -batch",
"Dolphin (Standalone)": "flatpak run --command=dolphin-emu-wrapper net.retrodeck.retrodeck -b -e",
"RPCS3 Directory (Standalone)": "flatpak run --command=pcsx3 net.retrodeck.retrodeck --no-gui",
diff --git a/incconfigs/todo.readme b/incconfigs/todo.readme
index 7e2aa52c..f4e9974a 100644
--- a/incconfigs/todo.readme
+++ b/incconfigs/todo.readme
@@ -1,4 +1,34 @@
Vita3K
+
+Fix the bindings and make sure everything works
+
MAME
+
+Double check all the inputs and hotkeys for Player 1 to 4
+
GZDoom
-Solarus
+
+Fix the config.
+Feel if the bindings are right when everything is done and all works as excpected.
+
+Primehack
+
+See what bindings works best
+
+Dolphin
+
+Look into Rotational controls while holding two buttons + right joystick.
+
+RetroArch
+
+User complained about Touchscreen
+Make sure the config is SDL
+
+ALL
+
+Test all inputs after everything is done
+
+
+Question:
+
+Does the X/Y A/B switcher needs to be updated?
diff --git a/incconfigs/whatis.readme b/incconfigs/whatis.readme
index 46bb1f7a..e69de29b 100644
--- a/incconfigs/whatis.readme
+++ b/incconfigs/whatis.readme
@@ -1,3 +0,0 @@
-DONE :)
-- Xargon
-
diff --git a/net.retrodeck.retrodeck.appdata.xml b/net.retrodeck.retrodeck.appdata.xml
index 2b99f16f..47404392 100644
--- a/net.retrodeck.retrodeck.appdata.xml
+++ b/net.retrodeck.retrodeck.appdata.xml
@@ -75,8 +75,9 @@
Changes:
- ES-DE: updated to 3.0
- - CITRA-SA: Removed, the libretro core is now the default emulator
- - YUZU: Removed, Ryujinx is now the default emulator
+ - PONZU: added
+ - CITRA-SA: Removed, the libretro core is now the default emulator, they will available trough Ponzu
+ - YUZU: Removed, Ryujinx is now the default emulator, they will available trough Ponzu
- Added new system: RYUJINX
- Added new system: SOLARUS
- Added new engine: GZDOOM
@@ -119,15 +120,11 @@
Issues:
- - Vita3K firmware downloader is failing. Workaround: run the downloader twice
- - GZDOOM: the controller for player 2+ is not correctly configured
- quit_retrodeck function seems to not working correctly
Missing:
- - GZDOOM: hotkeys
- SOLARUS: hotkeys
- - A proper reset script for the new emulators, now it's just a draft (only Vita3K is done)
diff --git a/tools/configurator.sh b/tools/configurator.sh
index 16182fe7..c2b8f6eb 100644
--- a/tools/configurator.sh
+++ b/tools/configurator.sh
@@ -27,6 +27,7 @@ source /app/libexec/global.sh
# - Open Emulator (Behind one-time power user warning dialog)
# - RetroArch
# - Cemu
+# - Citra
# - Dolphin
# - Duckstation
# - MAME
@@ -38,6 +39,7 @@ source /app/libexec/global.sh
# - Ryujinx
# - Vita3K
# - XEMU
+# - Yuzu
# - Tools
# - Tool: Move Folders
# - Move all of RetroDECK
@@ -70,6 +72,7 @@ source /app/libexec/global.sh
# - Reset Specific Emulator
# - Reset RetroArch
# - Reset Cemu
+# - Reset Citra
# - Reset Dolphin
# - Reset Duckstation
# - Reset GZDoom
@@ -82,6 +85,7 @@ source /app/libexec/global.sh
# - Reset Ryujinx
# - Reset Vita3k
# - Reset XEMU
+# - Reset Yuzu
# - Reset All Emulators
# - Reset EmulationStation DE
# - Reset RetroDECK
@@ -425,25 +429,38 @@ configurator_power_user_warning_dialog() {
}
configurator_open_emulator_dialog() {
+
+ local emulator_list=(
+ "RetroArch" "Open the multi-emulator frontend RetroArch"
+ "Cemu" "Open the Wii U emulator CEMU"
+ "Dolphin" "Open the Wii & GC emulator Dolphin"
+ "Duckstation" "Open the PSX emulator Duckstation"
+ "MAME" "Open the Multiple Arcade Machine Emulator emulator MAME"
+ "MelonDS" "Open the NDS emulator MelonDS"
+ "PCSX2" "Open the PS2 emulator PSXC2"
+ "PPSSPP" "Open the PSP emulator PPSSPP"
+ "Primehack" "Open the Metroid Prime emulator Primehack"
+ "RPCS3" "Open the PS3 emulator RPCS3"
+ "Ryujinx" "Open the Switch emulator Ryujinx"
+ "Vita3K" "Open the PSVita emulator Vita3K"
+ "XEMU" "Open the Xbox emulator XEMU"
+ )
+
+ # Check if any ponzu is true before adding Yuzu or Citra to the list
+ if [[ $(get_setting_value "$rd_conf" "kiroi_ponzu" "retrodeck" "options") == "true" ]]; then
+ emulator_list+=("Yuzu" "Open the Switch emulator Yuzu")
+ fi
+ if [[ $(get_setting_value "$rd_conf" "akai_ponzu" "retrodeck" "options") == "true" ]]; then
+ emulator_list+=("Citra" "Open the 3DS emulator Citra")
+ fi
+
emulator=$(zenity --list \
--title "RetroDECK Configurator Utility - Open Emulator" --cancel-label="Back" \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --width=1200 --height=720 \
--text="Which emulator do you want to launch?" \
--hide-header \
--column="Emulator" --column="Action" \
- "RetroArch" "Open the multi-emulator frontend RetroArch" \
- "Cemu" "Open the Wii U emulator CEMU" \
- "Dolphin" "Open the Wii & GC emulator Dolphin" \
- "Duckstation" "Open the PSX emulator Duckstation" \
- "MAME" "Open the Multiple Arcade Machine Emulator emulator MAME" \
- "MelonDS" "Open the NDS emulator MelonDS" \
- "PCSX2" "Open the PS2 emulator PSXC2" \
- "PPSSPP" "Open the PSP emulator PPSSPP" \
- "Primehack" "Open the Metroid Prime emulator Primehack" \
- "RPCS3" "Open the PS3 emulator RPCS3" \
- "Ryujinx" "Open the Switch emulator Ryujinx" \
- "Vita3K" "Open the PSVita emulator Vita3K" \
- "XEMU" "Open the Xbox emulator XEMU" )
+ "${emulator_list[@]}")
case $emulator in
@@ -457,6 +474,11 @@ configurator_open_emulator_dialog() {
Cemu-wrapper
;;
+ "Citra" )
+ log i "Configurator: \"$emulator\""
+ /var/data/ponzu/Citra/bin/citra-qt
+ ;;
+
"Dolphin" )
log i "Configurator: \"$emulator\""
dolphin-emu
@@ -512,6 +534,11 @@ configurator_open_emulator_dialog() {
xemu
;;
+ "Yuzu" )
+ log i "Configurator: \"$emulator\""
+ /var/data/ponzu/Yuzu/bin/yuzu
+ ;;
+
"" ) # No selection made or Back button clicked
log i "Configurator: going back"
configurator_welcome_dialog
@@ -523,15 +550,27 @@ configurator_open_emulator_dialog() {
}
configurator_retrodeck_tools_dialog() {
+
+ local choices=(
+ "Tool: Move Folders" "Move RetroDECK folders between internal/SD card or to a custom location"
+ "Tool: Compress Games" "Compress games for systems that support it"
+ "Install: RetroDECK SD Controller Profile" "Install the custom RetroDECK controller layout for the Steam Deck"
+ "Install: PS3 Firmware" "Download and install PS3 firmware for use with the RPCS3 emulator"
+ "Install: PS Vita Firmware" "Download and install PS Vita firmware for use with the Vita3K emulator"
+ "RetroDECK: Change Update Setting" "Enable or disable online checks for new versions of RetroDECK"
+ )
+
+ if [[ $(get_setting_value "$rd_conf" "kiroi_ponzu" "retrodeck" "options") == "true" ]]; then
+ choices+=("Ponzu - Remove Yuzu" "Run Ponzu to remove Yuzu from RetroDECK. Configurations and saves will be mantained.")
+ fi
+ if [[ $(get_setting_value "$rd_conf" "akai_ponzu" "retrodeck" "options") == "true" ]]; then
+ choices+=("Ponzu - Remove Citra" "Run Ponzu to remove Citra from RetroDECK. Configurations and saves will be mantained.")
+ fi
+
choice=$(zenity --list --title="RetroDECK Configurator Utility - RetroDECK: Tools" --cancel-label="Back" \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --width=1200 --height=720 \
--column="Choice" --column="Action" \
- "Tool: Move Folders" "Move RetroDECK folders between internal/SD card or to a custom location" \
- "Tool: Compress Games" "Compress games for systems that support it" \
- "Install: RetroDECK SD Controller Profile" "Install the custom RetroDECK controller layout for the Steam Deck" \
- "Install: PS3 Firmware" "Download and install PS3 firmware for use with the RPCS3 emulator" \
- "Install: PS Vita Firmware" "Download and install PS Vita firmware for use with the Vita3K emulator" \
- "RetroDECK: Change Update Setting" "Enable or disable online checks for new versions of RetroDECK" )
+ "${choices[@]}")
case $choice in
@@ -598,6 +637,14 @@ configurator_retrodeck_tools_dialog() {
configurator_online_update_setting_dialog
;;
+"Ponzu - Remove Yuzu" )
+ ponzu_remove "yuzu"
+;;
+
+"Ponzu - Remove Citra" )
+ ponzu_remove "citra"
+;;
+
"" ) # No selection made or Back button clicked
log i "Configurator: going back"
configurator_welcome_dialog
@@ -1032,13 +1079,43 @@ configurator_check_multifile_game_structure() {
}
configurator_reset_dialog() {
+
+ local choices=(
+ "Reset Specific Emulator" "Reset only one specific emulator or engine to default settings"
+ "Reset RetroDECK Component" "Reset a single component, components are parts of RetroDECK that are not emulators"
+ "Reset All Emulators and Components" "Reset all emulators and components to default settings"
+ "Reset RetroDECK" "Reset RetroDECK to default settings"
+ )
+
choice=$(zenity --list --title="RetroDECK Configurator Utility - RetroDECK: Reset" --cancel-label="Back" \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --width=1200 --height=720 \
--column="Choice" --column="Action" \
- "Reset Specific Emulator" "Reset only one specific emulator or engine to default settings" \
- "Reset RetroDECK Component" "Reset a single component, components are parts of RetroDECK that are not emulators" \
- "Reset All Emulators and Components" "Reset all emulators and components to default settings" \
- "Reset RetroDECK" "Reset RetroDECK to default settings" )
+ "${choices[@]}")
+
+ local emulator_list=(
+ "RetroArch" "Reset the multi-emulator frontend RetroArch to default settings"
+ "Cemu" "Reset the Wii U emulator Cemu to default settings"
+ "Dolphin" "Reset the Wii/GameCube emulator Dolphin to default settings"
+ "Duckstation" "Reset the PSX emulator Duckstation to default settings"
+ "GZDoom" "Reset the GZDoom Doom engine to default settings"
+ "MAME" "Reset the Multiple Arcade Machine Emulator (MAME) to default settings"
+ "MelonDS" "Reset the NDS emulator MelonDS to default settings"
+ "PCSX2" "Reset the PS2 emulator PCSX2 to default settings"
+ "PPSSPP" "Reset the PSP emulator PPSSPP to default settings"
+ "Primehack" "Reset the Metroid Prime emulator Primehack to default settings"
+ "RPCS3" "Reset the PS3 emulator RPCS3 to default settings"
+ "Ryujinx" "Reset the Switch emulator Ryujinx to default settings"
+ "Vita3k" "Reset the PS Vita emulator Vita3k to default settings"
+ "XEMU" "Reset the XBOX emulator XEMU to default settings"
+ )
+
+ # Check if any ponzu is true before adding Yuzu or Citra to the list
+ if [[ $(get_setting_value "$rd_conf" "kiroi_ponzu" "retrodeck" "options") == "true" ]]; then
+ emulator_list+=("Yuzu" "Reset the Switch emulator Yuzu")
+ fi
+ if [[ $(get_setting_value "$rd_conf" "akai_ponzu" "retrodeck" "options") == "true" ]]; then
+ emulator_list+=("Citra" "Reset the 3DS emulator Citra")
+ fi
case $choice in
@@ -1049,22 +1126,7 @@ configurator_reset_dialog() {
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --width=1200 --height=720 \
--text="Which emulator or engine do you want to reset to default?" \
--column="Emulator" --column="Action" \
- "RetroArch" "Reset the multi-emulator frontend RetroArch to default settings" \
- "Cemu" "Reset the Wii U emulator Cemu to default settings" \
- "Dolphin" "Reset the Wii/GameCube emulator Dolphin to default settings" \
- "Duckstation" "Reset the PSX emulator Duckstation to default settings" \
- "GZDoom" "Reset the GZDoom Doom engine to default settings" \
- "MAME" "Reset the Multiple Arcade Machine Emulator (MAME) to default settings" \
- "MelonDS" "Reset the NDS emulator MelonDS to default settings" \
- "PCSX2" "Reset the PS2 emulator PCSX2 to default settings" \
- "PPSSPP" "Reset the PSP emulator PPSSPP to default settings" \
- "Primehack" "Reset the Metroid Prime emulator Primehack to default settings" \
- "RPCS3" "Reset the PS3 emulator RPCS3 to default settings" \
- "Ryujinx" "Reset the Switch emulator Ryujinx to default settings" \
- "Vita3k" "Reset the PS Vita emulator Vita3k to default settings" \
- "XEMU" "Reset the XBOX emulator XEMU to default settings" )
-
- # "Ryujinx" "Reset the Switch emulator Ryujinx to default settings" \
+ "${emulator_list[@]}")
case $component_to_reset in
@@ -1083,7 +1145,7 @@ configurator_reset_dialog() {
fi
;;
- "Cemu" | "Dolphin" | "Duckstation" | "MelonDS" | "MAME" | "PCSX2" | "PPSSPP" | "Primehack" | "RPCS3" | "Ryujinx" )
+ "Cemu" | "Citra" | "Dolphin" | "Duckstation" | "MelonDS" | "MAME" | "PCSX2" | "PPSSPP" | "Primehack" | "RPCS3" | "Ryujinx" )
if [[ $(configurator_reset_confirmation_dialog "$component_to_reset" "Are you sure you want to reset the $component_to_reset emulator to default settings?\n\nThis process cannot be undone.") == "true" ]]; then
prepare_component "reset" "$component_to_reset" "configurator"
configurator_process_complete_dialog "resetting $component_to_reset"