diff --git a/emu-configs/citra/qt-config.ini b/emu-configs/citra/qt-config.ini
index cc5e86cd..cb966272 100644
--- a/emu-configs/citra/qt-config.ini
+++ b/emu-configs/citra/qt-config.ini
@@ -482,8 +482,8 @@ enable_discord_presence=true
 enable_discord_presence\default=true
 firstStart=false
 firstStart\default=false
-fullscreen=false
-fullscreen\default=true
+fullscreen=true
+fullscreen\default=false
 hideInactiveMouse=false
 hideInactiveMouse\default=true
 pauseWhenInBackground=false
diff --git a/emu-configs/defaults/retrodeck/RetroDECK_controller_config.vdf b/emu-configs/defaults/retrodeck/RetroDECK_controller_config.vdf
index 3d72e8b0..11e7293f 100755
--- a/emu-configs/defaults/retrodeck/RetroDECK_controller_config.vdf
+++ b/emu-configs/defaults/retrodeck/RetroDECK_controller_config.vdf
@@ -1,7 +1,7 @@
 "controller_mappings"
 {
 	"version"		"3"
-	"revision"		"1378"
+	"revision"		"1423"
 	"title"		"RetroDECK - Official Layout v.0.7"
 	"description"		"The Official RetroDECK Layout"
 	"creator"		"76561197985498748"
@@ -12,7 +12,7 @@
 	"controller_caps"		"23117823"
 	"major_revision"		"0"
 	"minor_revision"		"0"
-	"Timestamp"		"-881676272"
+	"Timestamp"		"-593495904"
 	"actions"
 	{
 		"Default"
@@ -7824,6 +7824,211 @@
 		}
 	}
 	"group"
+	{
+		"id"		"218"
+		"mode"		"dpad"
+		"name"		""
+		"description"		""
+		"inputs"
+		{
+			"dpad_north"
+			{
+				"activators"
+				{
+					"Full_Press"
+					{
+						"bindings"
+						{
+							"binding"		"key_press LEFT_SHIFT, , "
+							"binding"		"key_press W, , "
+						}
+					}
+				}
+				"disabled_activators"
+				{
+				}
+			}
+			"dpad_south"
+			{
+				"activators"
+				{
+					"Full_Press"
+					{
+						"bindings"
+						{
+							"binding"		"key_press LEFT_SHIFT, , "
+							"binding"		"key_press S, , "
+						}
+					}
+				}
+				"disabled_activators"
+				{
+				}
+			}
+			"dpad_east"
+			{
+				"activators"
+				{
+					"Full_Press"
+					{
+						"bindings"
+						{
+							"binding"		"xinput_button RSTICK_RIGHT, , "
+						}
+						"settings"
+						{
+							"repeat_rate"		"1000"
+							"interruptable"		"0"
+						}
+					}
+				}
+				"disabled_activators"
+				{
+				}
+			}
+			"dpad_west"
+			{
+				"activators"
+				{
+					"Full_Press"
+					{
+						"bindings"
+						{
+							"binding"		"xinput_button RSTICK_LEFT, , "
+						}
+						"settings"
+						{
+							"repeat_rate"		"1000"
+							"interruptable"		"0"
+						}
+					}
+				}
+				"disabled_activators"
+				{
+				}
+			}
+			"click"
+			{
+				"activators"
+				{
+					"Full_Press"
+					{
+						"bindings"
+						{
+							"binding"		"key_press ESCAPE, , "
+						}
+					}
+				}
+				"disabled_activators"
+				{
+				}
+			}
+		}
+		"settings"
+		{
+			"requires_click"		"0"
+		}
+	}
+	"group"
+	{
+		"id"		"219"
+		"mode"		"dpad"
+		"name"		""
+		"description"		""
+		"inputs"
+		{
+			"dpad_north"
+			{
+				"activators"
+				{
+					"Full_Press"
+					{
+						"bindings"
+						{
+							"binding"		"key_press LEFT_SHIFT, , "
+							"binding"		"key_press E, , "
+						}
+					}
+				}
+				"disabled_activators"
+				{
+				}
+			}
+			"dpad_south"
+			{
+				"activators"
+				{
+					"Full_Press"
+					{
+						"bindings"
+						{
+							"binding"		"key_press LEFT_SHIFT, , "
+							"binding"		"key_press Q, , "
+						}
+					}
+				}
+				"disabled_activators"
+				{
+				}
+			}
+			"dpad_east"
+			{
+				"activators"
+				{
+					"Full_Press"
+					{
+						"bindings"
+						{
+							"binding"		"key_press LEFT_SHIFT, , "
+							"binding"		"key_press D, , "
+						}
+					}
+				}
+				"disabled_activators"
+				{
+				}
+			}
+			"dpad_west"
+			{
+				"activators"
+				{
+					"Full_Press"
+					{
+						"bindings"
+						{
+							"binding"		"key_press LEFT_SHIFT, , "
+							"binding"		"key_press A, , "
+						}
+					}
+				}
+				"disabled_activators"
+				{
+				}
+			}
+			"click"
+			{
+				"activators"
+				{
+					"Full_Press"
+					{
+						"bindings"
+						{
+							"binding"		"key_press LEFT_CONTROL, , "
+							"binding"		"key_press TAB, , "
+						}
+					}
+				}
+				"disabled_activators"
+				{
+				}
+			}
+		}
+		"settings"
+		{
+			"requires_click"		"0"
+		}
+	}
+	"group"
 	{
 		"id"		"34"
 		"mode"		"switches"
@@ -10374,10 +10579,12 @@
 		{
 			"19"		"switch active"
 			"16"		"button_diamond active"
-			"23"		"joystick active"
+			"23"		"joystick inactive"
+			"219"		"joystick active"
 			"17"		"left_trigger active"
 			"18"		"right_trigger active"
-			"22"		"right_joystick active"
+			"22"		"right_joystick inactive"
+			"218"		"right_joystick active"
 			"20"		"dpad inactive"
 			"21"		"dpad active"
 			"45"		"gyro inactive"
@@ -10652,4 +10859,4 @@
 		"left_trackpad_mode"		"0"
 		"right_trackpad_mode"		"0"
 	}
-}
+}
\ No newline at end of file
diff --git a/emu-configs/dolphin/Dolphin.ini b/emu-configs/dolphin/Dolphin.ini
index f6111c44..dddeea88 100644
--- a/emu-configs/dolphin/Dolphin.ini
+++ b/emu-configs/dolphin/Dolphin.ini
@@ -20,6 +20,8 @@ AudioStretchMaxLatency = 80
 DPL2Decoder = False
 DPL2Quality = 2
 DSPHLE = True
+WiiSDCardAllowWrites = True
+WiiSDCardEnableFolderSync = False
 [Display]
 Fullscreen = True
 DisableScreenSaver = True
@@ -55,4 +57,4 @@ OnScreenDisplayMessages = True
 PauseOnFocusLost = True
 ShowActiveTitle = True
 UseBuiltinTitleDatabase = True
-UsePanicHandlers = True
+UsePanicHandlers = True
\ No newline at end of file
diff --git a/emu-configs/dolphin/Hotkeys.ini b/emu-configs/dolphin/Hotkeys.ini
index 0ea602d5..b95f248a 100644
--- a/emu-configs/dolphin/Hotkeys.ini
+++ b/emu-configs/dolphin/Hotkeys.ini
@@ -5,7 +5,6 @@ General/Toggle Pause = @(Ctrl+P)
 General/Reset = @(Ctrl+R)
 General/Take Screenshot = @(Ctrl+X)
 General/Exit = @(Ctrl+Escape)
-General/Control NetPlay Golf Mode = @(Alt+G)
 Emulation Speed/Decrease Emulation Speed = @(Ctrl+`2`)
 Emulation Speed/Increase Emulation Speed = @(Ctrl+`1`)
 Emulation Speed/Disable Emulation Speed Limit = @(Ctrl+`0`)
@@ -19,4 +18,7 @@ Load State/Load from Selected Slot = @(Ctrl+A)
 Other State Hotkeys/Undo Load State = @(Ctrl+`8`)
 Other State Hotkeys/Undo Save State = @(Ctrl+`9`)
 Other State Hotkeys/Increase Selected State Slot = @(Ctrl+K)
-Other State Hotkeys/Decrease Selected State Slot = @(Ctrl+J)
\ No newline at end of file
+Other State Hotkeys/Decrease Selected State Slot = @(Ctrl+J)
+General/Toggle Fullscreen = @(Ctrl+Return)
+General/Control NetPlay Golf Mode = @(Alt+H)
+Wii/Press Sync Button = @(Alt+W)
\ No newline at end of file
diff --git a/emu-configs/dolphin/WiimoteNew.ini b/emu-configs/dolphin/WiimoteNew.ini
new file mode 100644
index 00000000..f208654d
--- /dev/null
+++ b/emu-configs/dolphin/WiimoteNew.ini
@@ -0,0 +1,82 @@
+[Wiimote1]
+Device = evdev/0/Microsoft X-Box 360 pad 0
+Tilt/Modifier/Range = 50.0
+Nunchuk/Stick/Modifier/Range = 50.0
+Nunchuk/Tilt/Modifier/Range = 50.0
+Classic/Left Stick/Modifier/Range = 50.0
+Classic/Right Stick/Modifier/Range = 50.0
+Guitar/Stick/Modifier/Range = 50.0
+Drums/Stick/Modifier/Range = 50.0
+Turntable/Stick/Modifier/Range = 50.0
+uDraw/Stylus/Modifier/Range = 50.0
+Drawsome/Stylus/Modifier/Range = 50.0
+Buttons/A = SOUTH
+Buttons/B = EAST
+Buttons/1 = WEST
+Buttons/2 = NORTH
+Buttons/- = SELECT
+Buttons/+ = START
+Buttons/Home = THUMBR
+D-Pad/Up = `Axis 7-`
+D-Pad/Down = `Axis 7+`
+D-Pad/Left = `Axis 6-`
+D-Pad/Right = `Axis 6+`
+Extension = Nunchuk
+Rumble/Motor = Strong
+Nunchuk/Stick/Up = `Axis 1-`
+Nunchuk/Stick/Down = `Axis 1+`
+Nunchuk/Stick/Left = `Axis 0-`
+Nunchuk/Stick/Right = `Axis 0+`
+Nunchuk/Buttons/C = TL
+Nunchuk/Buttons/Z = `Full Axis 2+`
+IR/Auto-Hide = True
+Hotkeys/Sideways Toggle = `XInput2/0/Virtual core pointer:Alt`+`XInput2/0/Virtual core pointer:X`
+Hotkeys/Upright Toggle = `XInput2/0/Virtual core pointer:Alt_L`+`XInput2/0/Virtual core pointer:Z`
+[Wiimote2]
+Device = XInput2/0/Virtual core pointer
+Tilt/Modifier/Range = 50.0
+Nunchuk/Stick/Modifier/Range = 50.0
+Nunchuk/Tilt/Modifier/Range = 50.0
+Classic/Left Stick/Modifier/Range = 50.0
+Classic/Right Stick/Modifier/Range = 50.0
+Guitar/Stick/Modifier/Range = 50.0
+Drums/Stick/Modifier/Range = 50.0
+Turntable/Stick/Modifier/Range = 50.0
+uDraw/Stylus/Modifier/Range = 50.0
+Drawsome/Stylus/Modifier/Range = 50.0
+[Wiimote3]
+Device = XInput2/0/Virtual core pointer
+Tilt/Modifier/Range = 50.0
+Nunchuk/Stick/Modifier/Range = 50.0
+Nunchuk/Tilt/Modifier/Range = 50.0
+Classic/Left Stick/Modifier/Range = 50.0
+Classic/Right Stick/Modifier/Range = 50.0
+Guitar/Stick/Modifier/Range = 50.0
+Drums/Stick/Modifier/Range = 50.0
+Turntable/Stick/Modifier/Range = 50.0
+uDraw/Stylus/Modifier/Range = 50.0
+Drawsome/Stylus/Modifier/Range = 50.0
+[Wiimote4]
+Device = XInput2/0/Virtual core pointer
+Tilt/Modifier/Range = 50.0
+Nunchuk/Stick/Modifier/Range = 50.0
+Nunchuk/Tilt/Modifier/Range = 50.0
+Classic/Left Stick/Modifier/Range = 50.0
+Classic/Right Stick/Modifier/Range = 50.0
+Guitar/Stick/Modifier/Range = 50.0
+Drums/Stick/Modifier/Range = 50.0
+Turntable/Stick/Modifier/Range = 50.0
+uDraw/Stylus/Modifier/Range = 50.0
+Drawsome/Stylus/Modifier/Range = 50.0
+[BalanceBoard]
+Device = XInput2/0/Virtual core pointer
+Tilt/Modifier/Range = 50.0
+Nunchuk/Stick/Modifier/Range = 50.0
+Nunchuk/Tilt/Modifier/Range = 50.0
+Classic/Left Stick/Modifier/Range = 50.0
+Classic/Right Stick/Modifier/Range = 50.0
+Guitar/Stick/Modifier/Range = 50.0
+Drums/Stick/Modifier/Range = 50.0
+Turntable/Stick/Modifier/Range = 50.0
+uDraw/Stylus/Modifier/Range = 50.0
+Drawsome/Stylus/Modifier/Range = 50.0
diff --git a/emu-configs/primehack/Hotkeys.ini b/emu-configs/primehack/Hotkeys.ini
index 0ea602d5..9571682b 100644
--- a/emu-configs/primehack/Hotkeys.ini
+++ b/emu-configs/primehack/Hotkeys.ini
@@ -5,7 +5,7 @@ General/Toggle Pause = @(Ctrl+P)
 General/Reset = @(Ctrl+R)
 General/Take Screenshot = @(Ctrl+X)
 General/Exit = @(Ctrl+Escape)
-General/Control NetPlay Golf Mode = @(Alt+G)
+General/Control NetPlay Golf Mode = @(Alt+H)
 Emulation Speed/Decrease Emulation Speed = @(Ctrl+`2`)
 Emulation Speed/Increase Emulation Speed = @(Ctrl+`1`)
 Emulation Speed/Disable Emulation Speed Limit = @(Ctrl+`0`)
@@ -19,4 +19,6 @@ Load State/Load from Selected Slot = @(Ctrl+A)
 Other State Hotkeys/Undo Load State = @(Ctrl+`8`)
 Other State Hotkeys/Undo Save State = @(Ctrl+`9`)
 Other State Hotkeys/Increase Selected State Slot = @(Ctrl+K)
-Other State Hotkeys/Decrease Selected State Slot = @(Ctrl+J)
\ No newline at end of file
+Other State Hotkeys/Decrease Selected State Slot = @(Ctrl+J)
+General/Toggle Fullscreen = @(Ctrl+Return)
+Wii/Press Sync Button = @(Alt+W)
\ No newline at end of file
diff --git a/emu-configs/retroarch/retroarch.cfg b/emu-configs/retroarch/retroarch.cfg
index 85d2d8a6..35adda5f 100644
--- a/emu-configs/retroarch/retroarch.cfg
+++ b/emu-configs/retroarch/retroarch.cfg
@@ -2719,7 +2719,7 @@ input_replay_slot_increase = "nul"
 input_replay_slot_increase_axis = "nul"
 input_replay_slot_increase_btn = "nul"
 input_replay_slot_increase_mbtn = "nul"
-input_reset = "nul"
+input_reset = "r"
 input_reset_axis = "nul"
 input_reset_btn = "nul"
 input_reset_mbtn = "nul"
@@ -3249,4 +3249,4 @@ xmb_shadows_enable = "true"
 xmb_switch_icons = "true"
 xmb_theme = "0"
 xmb_vertical_thumbnails = "false"
-youtube_stream_key = ""
+youtube_stream_key = ""
\ No newline at end of file
diff --git a/net.retrodeck.retrodeck.yml b/net.retrodeck.retrodeck.yml
index a4adf23f..24f89cad 100644
--- a/net.retrodeck.retrodeck.yml
+++ b/net.retrodeck.retrodeck.yml
@@ -165,14 +165,24 @@ modules:
         url: https://github.com/rclone/rclone/releases/download/v1.61.1/rclone-v1.61.1-linux-amd64.zip
         sha256: 6d6455e1cb69eb0615a52cc046a296395e44d50c0f32627ba8590c677ddf50a9
 
+  # Source: https://github.com/flathub/com.valvesoftware.Steam.Utility.steamtinkerlaunch/blob/129c9192f874405d21612d95f9749dc2bcaf8cea/modules/rsync.yml#L5
   - name: rsync
-    buildsystem: simple
-    build-commands:
-      - cp local/bin/rsync ${FLATPAK_DEST}/bin/
+    no-autogen: true
+    config-opts:
+      - --prefix=${FLATPAK_DEST}
+      - --with-included-popt
+      - --with-included-zlib
+      - --disable-debug
+      - --disable-xxhash # Unable to meet dependency -- rsync refuses to see the required xxhash.h file
     sources:
       - type: archive
-        url: https://download.samba.org/pub/rsync/binaries/ubuntu-22.04-x86_64/rsync-3.2.7.tar.gz
-        sha256: dd2b74396c6e8d6a2d7af94cd97fad5788d888e722bc9780de1590f37a1920d6
+        url: https://download.samba.org/pub/rsync/src/rsync-3.2.7.tar.gz
+        sha256: 4e7d9d3f6ed10878c58c5fb724a67dacf4b6aac7340b13e488fb2dc41346f2bb
+        x-checker-data:
+          type: anitya
+          project-id: 4217
+          stable-only: true
+          url-template: https://download.samba.org/pub/rsync/src/rsync-$version.tar.gz
 
   - name: jq
     buildsystem: simple
@@ -260,7 +270,7 @@ modules:
     sources:
       - type: git
         url: https://gitlab.com/es-de/emulationstation-de
-        branch: 9bcc112f7c7efd3216bd3f12370f55fdee011bd4
+        branch: 7a1e420c9df3b801a65e9bcdc0ac92e2d708836e
       - type: shell
         commands:
           - sed -i 's#"EMULATIONSTATION-DE  V" + Utils::String::toUpper(PROGRAM_VERSION_STRING)#"RetroDECK
@@ -431,12 +441,11 @@ modules:
   - name: ppsspp
     buildsystem: cmake-ninja
     config-opts:
-      - -DUSE_SYSTEM_FFMPEG=OFF # default: off, turn this on?
+      - -DUSE_SYSTEM_FFMPEG=OFF
       - -DUSE_SYSTEM_LIBZIP=ON
       - -DUSE_SYSTEM_ZSTD=ON
 
       - -DUSE_WAYLAND_WSI=ON
-      #- -DUSING_X11_VULKAN=ON
       - -DUSING_QT_UI=OFF
 
       - -DBUILD_TESTING=OFF
@@ -454,11 +463,12 @@ modules:
     sources:
       - type: git
         url: &ppsspp-url https://github.com/hrydgard/ppsspp.git
-        tag: v1.14.4
-        commit: cd535263c1ad65fd03869591a8bd706680cbf04b
+        tag: v1.15
+        commit: 4a9227504219bbc64e444ba7f0e306746e5a806d
         x-checker-data:
-          type: git
-          tag-pattern: ^v([\d.]+)$
+          type: anitya
+          project-id: 12295
+          tag-template: 'v$version'
           is-main-source: true
 
   - name: ppsspp-localization
diff --git a/rd-submodules/shared-modules b/rd-submodules/shared-modules
index a2441b96..a337dd0c 160000
--- a/rd-submodules/shared-modules
+++ b/rd-submodules/shared-modules
@@ -1 +1 @@
-Subproject commit a2441b964afefd8cd1cebcdf562c7878670daf42
+Subproject commit a337dd0c6b7209a316dc6fa142323972e128c85d