diff --git a/.github/workflows/cooker-selfhosted.yml b/.github/workflows/cooker-selfhosted.yml
index 3bfc2c23..1171a8b7 100644
--- a/.github/workflows/cooker-selfhosted.yml
+++ b/.github/workflows/cooker-selfhosted.yml
@@ -70,6 +70,9 @@ jobs:
continue-on-error: true
# Sometimes flatpak download fails, in this case it tries a second time
+ - name: Run pre-build automation tasks (retry)
+ if: steps.flatpak-download.outcome == 'failure'
+ run : "/bin/bash ${GITHUB_WORKSPACE}/automation_tools/pre_build_automation.sh"
- name: "Build flatpak: download only (retry)"
if: steps.flatpak-download.outcome == 'failure'
run: "/bin/bash ${GITHUB_WORKSPACE}/automation_tools/flatpak_build_download_only.sh"
diff --git a/.github/workflows/main-selfhosted.yml b/.github/workflows/main-selfhosted.yml
index b71961c6..4e533c2d 100644
--- a/.github/workflows/main-selfhosted.yml
+++ b/.github/workflows/main-selfhosted.yml
@@ -76,7 +76,6 @@ jobs:
hash=($(sha256sum ${GITHUB_WORKSPACE}/RetroDECK-Artifact.tar.gz))
echo $hash > ${GITHUB_WORKSPACE}/RetroDECK-Artifact.sha
mv -f RetroDECK-Artifact.* ${{ secrets.ARTIFACT_REPO }}
- continue-on-error: true
- name: Create Bundle
run: "/bin/bash ${GITHUB_WORKSPACE}/automation_tools/flatpak_build_bundle.sh"
diff --git a/.gitignore b/.gitignore
index d1256aed..0ceed5b0 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,8 @@ backup
.old
tmp
.godot
+rd-submodules/es-de/patches-tmp
+
+# Python #
+##########
+__pycache__
diff --git a/README.md b/README.md
index d3db6cd5..f053a1ad 100644
--- a/README.md
+++ b/README.md
@@ -2,13 +2,6 @@
-![Flathub](https://img.shields.io/flathub/downloads/net.retrodeck.retrodeck)
-![Flathub](https://img.shields.io/flathub/v/net.retrodeck.retrodeck)
-![Discord](https://img.shields.io/discord/951662718102962256?label=discord)
-![GitHub](https://img.shields.io/github/license/XargonWan/RetroDECK)
-[![Documentation Status](https://readthedocs.org/projects/retrodeck/badge/?version=latest)](https://retrodeck.readthedocs.io/en/latest/?badge=latest)
-
-
# RetroDECK on your device!
@@ -19,35 +12,34 @@
-## What is RetroDECK?
-RetroDECK is a [EmulationStation Desktop Edition](https://es-de.org) powered application that builds in a variety of emulators and other software that allows you to play your favorite retro (and even not-so-retro) games in a tidy contained flatpak sandbox environment. It's inspired by embedded emulation systems like AmberELEC, EmuELEC, CoreELEC, Lakka, and Batocera.
+![Flathub](https://img.shields.io/flathub/downloads/net.retrodeck.retrodeck)
+![Flathub](https://img.shields.io/flathub/v/net.retrodeck.retrodeck)
+![Discord](https://img.shields.io/discord/951662718102962256?label=discord)
+![GitHub](https://img.shields.io/github/license/XargonWan/RetroDECK)
+[![Documentation Status](https://readthedocs.org/projects/retrodeck/badge/?version=latest)](https://retrodeck.readthedocs.io/en/latest/?badge=latest)
-You can also check out our: [Flathub Page](https://flathub.org/apps/net.retrodeck.retrodeck)
+# What is RetroDECK?
+Instead of having several different software on your system for a variety of emulators and frontends you only need to have one: RetroDECK.
-## What devices/systems does RetroDECK support:
+RetroDECK is a [EmulationStation Desktop Edition](https://es-de.org) (ES-DE) powered flatpak application that builds in a variety of emulators and other software that allows you to play your favorite retro (and even not-so-retro) games in one complete package.
-### Steam Deck
+It's inspired by embedded emulation systems like:
-Supported from the start and RetroDECK is tailored to the Steam Deck during the beta period. The goal is that all the configurations are ready out-of-the-box and optimized towards the Steam Deck.
+- AmberELEC
+- EmuELEC
+- CoreELEC
+- Lakka
+- Batocera
-### Linux Desktop
-Technically it is working, but the user experience might not be that great it could contain desktop specific bugs and other issues.
-You will also need to manually configure the input to match your desktop and might need to tweak more settings. If you want to try it make sure that your distribution has flatpak support (else you will need to install it).
-We will start to have a bigger desktop focus after the beta period is over.
+The RetroDECK team consists of several veterans from some of the projects mentioned above as well as a bunch of other talented individuals.
-### Other SteamOS or Linux handheld gaming devices with flatpak support
-We do plan to support other SteamOS based devices in the future. But during the BETA we are focusing on the Steam Deck.
-You can get it to run on other Linux based devices it is not just as seamless as we want it to be and does not live up to our higher standards.
-You will need to manually configure the input to match your device and might need to tweak more settings if you try it on a none Steam Deck device. There might also be some hardware specific bugs.
+RetroDECK also adds the `RetroDECK Framework` and the `RetroDECK Configurator` on top of the emulators and ES-DE frontend that allows deeper integrations between emulators and easier exposure to a variety of features that you otherwise need to set per emulator basis to create a uniformity between them.
+For our long term vision you can check out the following wiki page:
-## Do you have any plans for other systems?
-RetroDECK does not have plans to support Windows, macOS, Android, or iOS.
For similar functionality on Windows you could explore [Retrobat](https://www.retrobat.org/) as an alternative.
+[RetroDECK: Visions and Goals](https://github.com/XargonWan/RetroDECK/wiki/RetroDECK%3A-Visions-and-Goals)
-## How do I install RetroDECK?
-Read and follow the guide here: [Installation instructions](https://github.com/XargonWan/RetroDECK/wiki/How-to:-Getting-started) on the Wiki
-
-## The RetroDECK community:
+### The RetroDECK community:
[Website](https://retrodeck.net)
[Wiki](https://github.com/XargonWan/RetroDECK/wiki)
@@ -55,24 +47,44 @@ Read and follow the guide here: [Installation instructions](https://github.com/X
[Lemmy](https://lemmy.zip/c/retrodeck)
[Subreddit](https://www.reddit.com/r/retrodeck)
+# How do I start using RetroDECK?
-# Short FAQ
+We have an in depth How To on how to get started over here:
-Please read the [Wiki](https://github.com/XargonWan/RetroDECK/wiki) for even more information.
+[How to: Start using RetroDECK](https://github.com/XargonWan/RetroDECK/wiki/How-to%3A-Start-using-RetroDECK)
+
+## What devices/systems does RetroDECK support:
+
+RetroDECK currently supports:
+
+- Steam Deck
+- Linux Desktop
+
+For more information read up here:
+
+[Supported Systems](https://github.com/XargonWan/RetroDECK/wiki/RetroDECK%3A-Supported-Systems)
+
+
+## Is RetroDECK in Beta?
+Yes, here you can read more about the beta period:
+
+[RetroDECK: Beta period](https://github.com/XargonWan/RetroDECK/wiki/RetroDECK%3A-Beta-period)
-## Do I have to partition or format my disk/sdcard to install it?
-No, partitioning or formatting is not needed at all. RetroDECK (differently from AmberELEC, Batocera and others) comes as a flatpak. Just install it as any other application and launch it from your desktop and/or Steam library.
## Can I contribute to the project?
-Yes! Everybody is welcome to contribute in any way possible if it is personal time or funds, just check out our [Discord](https://discord.gg/Dz3szYsP8g)!
-- Do you know how to code and want to contribute? Please join the development team!
-- Maybe you know graphics, art or UI & UX design? Join the discussion!
-- You can just help by helping others in the support or guide people on various social media and communication platforms.
-- You can also help by just finding and testing the best configurations for the emulators and the roms.
-- Or just help us by doing bug reports on all the issues you find (please check old issues first before submitting a new one).
-- By joining the ✨-new-helpers-start-here channel on [Discord](https://discord.gg/Mv3GZnwrE8) and keeping an eye on the [issues](https://github.com/XargonWan/RetroDECK/issues) tab as well as the [Roadmap](https://github.com/XargonWan/RetroDECK/milestones) tab, you can be up to speed on the latest developments on RetroDECK.
-- We have a [Patreon](https://www.patreon.com/RetroDECK) page if you want to help us keep our build servers running or just buy us a beverage
-###### The Steam Deck logo is a registered trademark of Valve Corporation. This project is in no way officially affiliated with Valve.
+Yes, off course!
+Read up here on how to help out, there is something for everyone:
-###### All trademarks, logos and brand names are the property of their respective owners. All company, product and service names used in this project are for identification purposes only. Use of these names, trademarks and brands does not imply endorsement.
+[How to: Contribute to RetroDECK](https://github.com/XargonWan/RetroDECK/wiki/How-to%3A-Contribute-to-RetroDECK)
+
+
+# The RetroDECK Wiki
+
+Please check out the [Wiki](https://github.com/XargonWan/RetroDECK/wiki) for even more information.
+
+## The FAQ
+The RetroDECK [FAQ](https://github.com/XargonWan/RetroDECK/wiki/FAQs%3A-Frequently-asked-questions) on the wiki has a vast variety of questions and awnsers.
+
+# How to get support?
+Use the supports channels on [Discord](https://discord.gg/Dz3szYsP8g).
diff --git a/automation_tools/automation_task_list.cfg b/automation_tools/automation_task_list.cfg
index ebf7d98f..09a15943 100644
--- a/automation_tools/automation_task_list.cfg
+++ b/automation_tools/automation_task_list.cfg
@@ -1,12 +1,12 @@
# The proper format for this file is
# ACTION^PLACEHOLDERTEXT^URL^REPO(Optional)
# hash^DOOMSHAPLACEHOLDER^https://buildbot.libretro.com/assets/cores/DOOM/Doom%20%28Shareware%29.zip
-hash^VITASHAPLACEHOLDER^https://github.com/Vita3K/Vita3K/releases/download/continuous/ubuntu-latest.zip
hash^DUCKSTATIONSHAPLACEHOLDER^https://github.com/stenzek/duckstation/releases/download/preview/DuckStation-x64.AppImage
hash^SAMEDUCKSHAPLACEHOLDER^https://buildbot.libretro.com/nightly/linux/x86_64/latest/sameduck_libretro.so.zip
hash^PPSSPPBIOSHASHPLACEHOLDER^https://github.com/hrydgard/ppsspp/archive/refs/heads/master.zip
hash^MSXBIOSHASHPLACEHOLDER^http://bluemsx.msxblue.com/rel_download/blueMSXv282full.zip
hash^XEMUHDDHASHPLACEHOLDER^https://github.com/mborgerson/xemu-hdd-image/releases/latest/download/xbox_hdd.qcow2.zip
+hash^VITA3KSHAPLACEHOLDER^https://github.com/Vita3K/Vita3K/releases/download/continuous/ubuntu-latest.zip
latestcommit^UNIVERSALDYNAMICINPUTCOMMITPLACEHOLDER^https://github.com/Venomalia/UniversalDynamicInput^main
outside_info^VERSIONPLACEHOLDER^${GITHUB_WORKSPACE}/buildid
branch^THISBRANCH
diff --git a/automation_tools/flatpak_build_bundle.sh b/automation_tools/flatpak_build_bundle.sh
index 8c155810..0ad6ea4f 100755
--- a/automation_tools/flatpak_build_bundle.sh
+++ b/automation_tools/flatpak_build_bundle.sh
@@ -2,4 +2,10 @@
# This is building the bundle RetroDECK.flatpak after the download and build steps are done
-flatpak build-bundle ${GITHUB_WORKSPACE}/local RetroDECK-cooker.flatpak net.retrodeck.retrodeck
\ No newline at end of file
+if [[ "${GITHUB_REF##*/}" == "main" ]]; then
+ flatpak = "RetroDECK.flatpak"
+else
+ flatpak = "RetroDECK-cooker.flatpak"
+fi
+
+flatpak build-bundle "${GITHUB_WORKSPACE}/local" "${flatpak}" net.retrodeck.retrodeck
diff --git a/automation_tools/flatpak_build_download_only.sh b/automation_tools/flatpak_build_download_only.sh
index 55352780..122b244f 100755
--- a/automation_tools/flatpak_build_download_only.sh
+++ b/automation_tools/flatpak_build_download_only.sh
@@ -3,12 +3,21 @@
# This script is downloading the needed files to prepare the manifest build
git config --global protocol.file.allow always
-mkdir -vp ${GITHUB_WORKSPACE}/local
-mkdir -vp ${GITHUB_WORKSPACE}/retrodeck-flatpak-cooker
+
+if [[ "${GITHUB_REF##*/}" == "main" ]]; then
+ BUNDLE_NAME="RetroDECK.flatpak"
+ FOLDER=retrodeck-flatpak-cooker
+else
+ BUNDLE_NAME="RetroDECK-cooker.flatpak"
+ FOLDER=retrodeck-flatpak-cooker
+fi
+
+mkdir -vp "${GITHUB_WORKSPACE}"/{local,retrodeck-flatpak-cooker}
+
flatpak-builder --user --force-clean \
--install-deps-from=flathub \
--install-deps-from=flathub-beta \
- --repo=${GITHUB_WORKSPACE}/local \
+ --repo="${GITHUB_WORKSPACE}/local" \
--download-only \
- ${GITHUB_WORKSPACE}/retrodeck-flatpak-cooker \
- net.retrodeck.retrodeck.yml
\ No newline at end of file
+ "${GITHUB_WORKSPACE}/${FOLDER}" \
+ net.retrodeck.retrodeck.yml
diff --git a/automation_tools/flatpak_build_only.sh b/automation_tools/flatpak_build_only.sh
index d2ed3fe5..6ec4597f 100755
--- a/automation_tools/flatpak_build_only.sh
+++ b/automation_tools/flatpak_build_only.sh
@@ -1,14 +1,24 @@
#!/bin/bash
-# This script is building the flatpak is the needed files are already downloaded
+# This script is downloading the needed files to prepare the manifest build
git config --global protocol.file.allow always
+
+if [ "${GITHUB_REF##*/}" = "main" ]; then
+ BUNDLE_NAME="RetroDECK.flatpak"
+ FOLDER=retrodeck-flatpak-main
+else
+ BUNDLE_NAME="RetroDECK-cooker.flatpak"
+ FOLDER=retrodeck-flatpak-cooker
+fi
+
mkdir -vp ${GITHUB_WORKSPACE}/local
-mkdir -vp ${GITHUB_WORKSPACE}/retrodeck-flatpak-cooker
+mkdir -vp ${GITHUB_WORKSPACE}/"$FOLDER"
+
flatpak-builder --user --force-clean \
--install-deps-from=flathub \
--install-deps-from=flathub-beta \
--repo=${GITHUB_WORKSPACE}/local \
--disable-download \
- ${GITHUB_WORKSPACE}/retrodeck-flatpak-cooker \
- net.retrodeck.retrodeck.yml
\ No newline at end of file
+ ${GITHUB_WORKSPACE}/"$FOLDER" \
+ net.retrodeck.retrodeck.yml
diff --git a/emu-configs/defaults/retrodeck/controller_configs/RetroDECK_controller_generic.vdf b/emu-configs/defaults/retrodeck/controller_configs/RetroDECK_controller_generic.vdf
old mode 100755
new mode 100644
index 2fae5080..4f5e4dd8
--- a/emu-configs/defaults/retrodeck/controller_configs/RetroDECK_controller_generic.vdf
+++ b/emu-configs/defaults/retrodeck/controller_configs/RetroDECK_controller_generic.vdf
@@ -29,9 +29,6 @@
"action_layers"
{
}
- "localization"
- {
- }
"group"
{
"id" "0"
@@ -780,6 +777,115 @@
}
}
"group"
+ {
+ "id" "17"
+ "mode" "joystick_mouse"
+ "name" ""
+ "description" ""
+ "inputs"
+ {
+ "click"
+ {
+ "activators"
+ {
+ "Full_Press"
+ {
+ "bindings"
+ {
+ "binding" "mouse_button LEFT, , "
+ }
+ }
+ }
+ "disabled_activators"
+ {
+ }
+ }
+ }
+ "settings"
+ {
+ "output_joystick" "2"
+ }
+ }
+ "group"
+ {
+ "id" "18"
+ "mode" "dpad"
+ "name" ""
+ "description" ""
+ "inputs"
+ {
+ "dpad_north"
+ {
+ "activators"
+ {
+ "Full_Press"
+ {
+ "bindings"
+ {
+ "binding" "key_press LEFT_CONTROL, Swap Screens, , "
+ "binding" "key_press TAB, Swap Screens, , "
+ }
+ }
+ }
+ "disabled_activators"
+ {
+ }
+ }
+ "dpad_south"
+ {
+ "activators"
+ {
+ "Full_Press"
+ {
+ "bindings"
+ {
+ "binding" "key_press ESCAPE, Escape, , "
+ }
+ }
+ }
+ "disabled_activators"
+ {
+ }
+ }
+ "dpad_east"
+ {
+ "activators"
+ {
+ "Full_Press"
+ {
+ "bindings"
+ {
+ "binding" "key_press RETURN, Enter, , "
+ }
+ }
+ }
+ "disabled_activators"
+ {
+ }
+ }
+ "click"
+ {
+ "activators"
+ {
+ "Full_Press"
+ {
+ "bindings"
+ {
+ "binding" "mouse_button RIGHT, , "
+ }
+ }
+ }
+ "disabled_activators"
+ {
+ }
+ }
+ }
+ "settings"
+ {
+ "requires_click" "0"
+ }
+ }
+ "group"
{
"id" "10"
"mode" "switches"
@@ -1031,10 +1137,12 @@
{
"10" "switch active"
"11" "button_diamond active"
- "12" "joystick active"
+ "12" "joystick inactive"
+ "18" "joystick active"
"13" "left_trigger active"
"14" "right_trigger active"
- "15" "right_joystick active"
+ "15" "right_joystick inactive"
+ "17" "right_joystick active"
"16" "dpad active"
}
}
diff --git a/emu-configs/defaults/retrodeck/controller_configs/RetroDECK_controller_ps3.vdf b/emu-configs/defaults/retrodeck/controller_configs/RetroDECK_controller_ps3.vdf
old mode 100755
new mode 100644
index 12000605..6cd8052f
--- a/emu-configs/defaults/retrodeck/controller_configs/RetroDECK_controller_ps3.vdf
+++ b/emu-configs/defaults/retrodeck/controller_configs/RetroDECK_controller_ps3.vdf
@@ -29,9 +29,6 @@
"action_layers"
{
}
- "localization"
- {
- }
"group"
{
"id" "0"
@@ -780,6 +777,115 @@
}
}
"group"
+ {
+ "id" "17"
+ "mode" "joystick_mouse"
+ "name" ""
+ "description" ""
+ "inputs"
+ {
+ "click"
+ {
+ "activators"
+ {
+ "Full_Press"
+ {
+ "bindings"
+ {
+ "binding" "mouse_button LEFT, , "
+ }
+ }
+ }
+ "disabled_activators"
+ {
+ }
+ }
+ }
+ "settings"
+ {
+ "output_joystick" "2"
+ }
+ }
+ "group"
+ {
+ "id" "18"
+ "mode" "dpad"
+ "name" ""
+ "description" ""
+ "inputs"
+ {
+ "dpad_north"
+ {
+ "activators"
+ {
+ "Full_Press"
+ {
+ "bindings"
+ {
+ "binding" "key_press LEFT_CONTROL, Swap Screens, , "
+ "binding" "key_press TAB, Swap Screens, , "
+ }
+ }
+ }
+ "disabled_activators"
+ {
+ }
+ }
+ "dpad_south"
+ {
+ "activators"
+ {
+ "Full_Press"
+ {
+ "bindings"
+ {
+ "binding" "key_press ESCAPE, Escape, , "
+ }
+ }
+ }
+ "disabled_activators"
+ {
+ }
+ }
+ "dpad_east"
+ {
+ "activators"
+ {
+ "Full_Press"
+ {
+ "bindings"
+ {
+ "binding" "key_press RETURN, Enter, , "
+ }
+ }
+ }
+ "disabled_activators"
+ {
+ }
+ }
+ "click"
+ {
+ "activators"
+ {
+ "Full_Press"
+ {
+ "bindings"
+ {
+ "binding" "mouse_button RIGHT, , "
+ }
+ }
+ }
+ "disabled_activators"
+ {
+ }
+ }
+ }
+ "settings"
+ {
+ "requires_click" "0"
+ }
+ }
+ "group"
{
"id" "10"
"mode" "switches"
@@ -1031,10 +1137,12 @@
{
"10" "switch active"
"11" "button_diamond active"
- "12" "joystick active"
+ "12" "joystick inactive"
+ "18" "joystick active"
"13" "left_trigger active"
"14" "right_trigger active"
- "15" "right_joystick active"
+ "15" "right_joystick inactive"
+ "17" "right_joystick active"
"16" "dpad active"
}
}
diff --git a/emu-configs/defaults/retrodeck/controller_configs/RetroDECK_controller_ps4.vdf b/emu-configs/defaults/retrodeck/controller_configs/RetroDECK_controller_ps4.vdf
old mode 100755
new mode 100644
index 332e5690..79e44094
--- a/emu-configs/defaults/retrodeck/controller_configs/RetroDECK_controller_ps4.vdf
+++ b/emu-configs/defaults/retrodeck/controller_configs/RetroDECK_controller_ps4.vdf
@@ -29,9 +29,6 @@
"action_layers"
{
}
- "localization"
- {
- }
"group"
{
"id" "0"
@@ -543,7 +540,7 @@
{
"bindings"
{
- "binding" "mouse_button RIGHT, , "
+ "binding" "mouse_button LEFT, , "
}
"settings"
{
@@ -573,7 +570,7 @@
{
"bindings"
{
- "binding" "mouse_button LEFT, , "
+ "binding" "mouse_button RIGHT, , "
}
"settings"
{
@@ -681,7 +678,7 @@
{
"bindings"
{
- "binding" "mouse_button LEFT, , "
+ "binding" "mouse_button RIGHT, , "
}
"settings"
{
@@ -711,7 +708,7 @@
{
"bindings"
{
- "binding" "mouse_button RIGHT, , "
+ "binding" "mouse_button LEFT, , "
}
"settings"
{
@@ -952,6 +949,175 @@
}
}
"group"
+ {
+ "id" "29"
+ "mode" "joystick_mouse"
+ "name" ""
+ "description" ""
+ "inputs"
+ {
+ "click"
+ {
+ "activators"
+ {
+ "Full_Press"
+ {
+ "bindings"
+ {
+ "binding" "mouse_button LEFT, , "
+ }
+ }
+ }
+ "disabled_activators"
+ {
+ }
+ }
+ }
+ "settings"
+ {
+ "output_joystick" "2"
+ }
+ }
+ "group"
+ {
+ "id" "30"
+ "mode" "dpad"
+ "name" ""
+ "description" ""
+ "inputs"
+ {
+ "dpad_north"
+ {
+ "activators"
+ {
+ "Full_Press"
+ {
+ "bindings"
+ {
+ "binding" "key_press LEFT_CONTROL, Swap Screens, , "
+ "binding" "key_press TAB, Swap Screens, , "
+ }
+ }
+ }
+ "disabled_activators"
+ {
+ }
+ }
+ "dpad_south"
+ {
+ "activators"
+ {
+ "Full_Press"
+ {
+ "bindings"
+ {
+ "binding" "key_press ESCAPE, Esacpe, , "
+ }
+ }
+ }
+ "disabled_activators"
+ {
+ }
+ }
+ "dpad_east"
+ {
+ "activators"
+ {
+ "Full_Press"
+ {
+ "bindings"
+ {
+ "binding" "key_press RETURN, Enter, , "
+ }
+ }
+ }
+ "disabled_activators"
+ {
+ }
+ }
+ "click"
+ {
+ "activators"
+ {
+ "Full_Press"
+ {
+ "bindings"
+ {
+ "binding" "mouse_button RIGHT, , "
+ }
+ }
+ }
+ "disabled_activators"
+ {
+ }
+ }
+ }
+ "settings"
+ {
+ "requires_click" "0"
+ }
+ }
+ "group"
+ {
+ "id" "33"
+ "mode" "absolute_mouse"
+ "name" ""
+ "description" ""
+ "inputs"
+ {
+ "click"
+ {
+ "activators"
+ {
+ "Full_Press"
+ {
+ "bindings"
+ {
+ "binding" "mouse_button MIDDLE, , "
+ }
+ "settings"
+ {
+ "haptic_intensity" "1"
+ }
+ }
+ }
+ "disabled_activators"
+ {
+ }
+ }
+ }
+ }
+ "group"
+ {
+ "id" "35"
+ "mode" "absolute_mouse"
+ "name" ""
+ "description" ""
+ "inputs"
+ {
+ "click"
+ {
+ "activators"
+ {
+ "Full_Press"
+ {
+ "bindings"
+ {
+ "binding" "mouse_button MIDDLE, , "
+ }
+ "settings"
+ {
+ "haptic_intensity" "1"
+ }
+ }
+ }
+ "disabled_activators"
+ {
+ }
+ }
+ }
+ }
+ "group"
{
"id" "7"
"mode" "switches"
@@ -1200,6 +1366,7 @@
"5" "right_trigger active"
"8" "right_joystick active"
"9" "dpad active"
+ "35" "center_trackpad active"
}
}
"preset"
@@ -1212,11 +1379,14 @@
"19" "button_diamond active"
"20" "left_trackpad active"
"21" "right_trackpad active"
- "22" "joystick active"
+ "22" "joystick inactive"
+ "30" "joystick active"
"23" "left_trigger active"
"24" "right_trigger active"
- "25" "right_joystick active"
+ "25" "right_joystick inactive"
+ "29" "right_joystick active"
"26" "dpad active"
+ "33" "center_trackpad active"
}
}
"settings"
diff --git a/emu-configs/defaults/retrodeck/controller_configs/RetroDECK_controller_ps5.vdf b/emu-configs/defaults/retrodeck/controller_configs/RetroDECK_controller_ps5.vdf
old mode 100755
new mode 100644
index d4f039bb..4aa48205
--- a/emu-configs/defaults/retrodeck/controller_configs/RetroDECK_controller_ps5.vdf
+++ b/emu-configs/defaults/retrodeck/controller_configs/RetroDECK_controller_ps5.vdf
@@ -540,7 +540,7 @@
{
"bindings"
{
- "binding" "mouse_button RIGHT, , "
+ "binding" "mouse_button LEFT, , "
}
"settings"
{
@@ -570,7 +570,7 @@
{
"bindings"
{
- "binding" "mouse_button LEFT, , "
+ "binding" "mouse_button RIGHT, , "
}
"settings"
{
@@ -678,7 +678,7 @@
{
"bindings"
{
- "binding" "mouse_button LEFT, , "
+ "binding" "mouse_button RIGHT, , "
}
"settings"
{
@@ -708,7 +708,7 @@
{
"bindings"
{
- "binding" "mouse_button RIGHT, , "
+ "binding" "mouse_button LEFT, , "
}
"settings"
{
@@ -738,8 +738,8 @@
{
"bindings"
{
- "binding" "key_press LEFT_CONTROL, Swap Screens, , "
- "binding" "key_press TAB, Swap Screens, , "
+ "binding" "mouse_button RIGHT, Swap Screens, , "
+ "binding" "controller_action empty_sub_command, Swap Screens, , "
}
"settings"
{
@@ -839,7 +839,7 @@
{
"bindings"
{
- "binding" "key_press ESCAPE, Escape, , "
+ "binding" "mouse_button LEFT, Escape, , "
}
}
}
@@ -949,6 +949,175 @@
}
}
"group"
+ {
+ "id" "40"
+ "mode" "absolute_mouse"
+ "name" ""
+ "description" ""
+ "inputs"
+ {
+ "click"
+ {
+ "activators"
+ {
+ "Full_Press"
+ {
+ "bindings"
+ {
+ "binding" "mouse_button MIDDLE, , "
+ }
+ "settings"
+ {
+ "haptic_intensity" "1"
+ }
+ }
+ }
+ "disabled_activators"
+ {
+ }
+ }
+ }
+ }
+ "group"
+ {
+ "id" "41"
+ "mode" "absolute_mouse"
+ "name" ""
+ "description" ""
+ "inputs"
+ {
+ "click"
+ {
+ "activators"
+ {
+ "Full_Press"
+ {
+ "bindings"
+ {
+ "binding" "mouse_button MIDDLE, , "
+ }
+ "settings"
+ {
+ "haptic_intensity" "1"
+ }
+ }
+ }
+ "disabled_activators"
+ {
+ }
+ }
+ }
+ }
+ "group"
+ {
+ "id" "42"
+ "mode" "dpad"
+ "name" ""
+ "description" ""
+ "inputs"
+ {
+ "dpad_north"
+ {
+ "activators"
+ {
+ "Full_Press"
+ {
+ "bindings"
+ {
+ "binding" "key_press LEFT_CONTROL, Swap Screens, , "
+ "binding" "key_press TAB, Swap Screens, , "
+ }
+ }
+ }
+ "disabled_activators"
+ {
+ }
+ }
+ "dpad_south"
+ {
+ "activators"
+ {
+ "Full_Press"
+ {
+ "bindings"
+ {
+ "binding" "key_press ESCAPE, Escape, , "
+ }
+ }
+ }
+ "disabled_activators"
+ {
+ }
+ }
+ "dpad_east"
+ {
+ "activators"
+ {
+ "Full_Press"
+ {
+ "bindings"
+ {
+ "binding" "key_press RETURN, Enter, , "
+ }
+ }
+ }
+ "disabled_activators"
+ {
+ }
+ }
+ "click"
+ {
+ "activators"
+ {
+ "Full_Press"
+ {
+ "bindings"
+ {
+ "binding" "mouse_button RIGHT, , "
+ }
+ }
+ }
+ "disabled_activators"
+ {
+ }
+ }
+ }
+ "settings"
+ {
+ "requires_click" "0"
+ }
+ }
+ "group"
+ {
+ "id" "43"
+ "mode" "joystick_mouse"
+ "name" ""
+ "description" ""
+ "inputs"
+ {
+ "click"
+ {
+ "activators"
+ {
+ "Full_Press"
+ {
+ "bindings"
+ {
+ "binding" "mouse_button LEFT, , "
+ }
+ }
+ }
+ "disabled_activators"
+ {
+ }
+ }
+ }
+ "settings"
+ {
+ "output_joystick" "2"
+ }
+ }
+ "group"
{
"id" "7"
"mode" "switches"
@@ -1229,6 +1398,7 @@
"5" "right_trigger active"
"8" "right_joystick active"
"9" "dpad active"
+ "41" "center_trackpad active"
}
}
"preset"
@@ -1241,11 +1411,14 @@
"30" "button_diamond active"
"31" "left_trackpad active"
"32" "right_trackpad active"
- "33" "joystick active"
+ "33" "joystick inactive"
+ "42" "joystick active"
"34" "left_trigger active"
"35" "right_trigger active"
- "36" "right_joystick active"
+ "36" "right_joystick inactive"
+ "43" "right_joystick active"
"37" "dpad active"
+ "40" "center_trackpad active"
}
}
"settings"
diff --git a/emu-configs/defaults/retrodeck/controller_configs/RetroDECK_controller_steamcontroller_gordon.vdf b/emu-configs/defaults/retrodeck/controller_configs/RetroDECK_controller_steamcontroller_gordon.vdf
old mode 100755
new mode 100644
index d043bae0..da304181
--- a/emu-configs/defaults/retrodeck/controller_configs/RetroDECK_controller_steamcontroller_gordon.vdf
+++ b/emu-configs/defaults/retrodeck/controller_configs/RetroDECK_controller_steamcontroller_gordon.vdf
@@ -501,6 +501,26 @@
{
}
}
+ "click"
+ {
+ "activators"
+ {
+ "Full_Press"
+ {
+ "bindings"
+ {
+ "binding" "mouse_button RIGHT, , "
+ }
+ "settings"
+ {
+ "haptic_intensity" "0"
+ }
+ }
+ }
+ "disabled_activators"
+ {
+ }
+ }
}
}
"group"
@@ -698,8 +718,114 @@
"inputs"
{
}
- "gameactions"
+ }
+ "group"
+ {
+ "id" "25"
+ "mode" "mouse_joystick"
+ "name" ""
+ "description" ""
+ "inputs"
{
+ "click"
+ {
+ "activators"
+ {
+ "Full_Press"
+ {
+ "bindings"
+ {
+ "binding" "xinput_button JOYSTICK_RIGHT, , "
+ }
+ "settings"
+ {
+ "haptic_intensity" "1"
+ }
+ }
+ }
+ "disabled_activators"
+ {
+ }
+ }
+ }
+ }
+ "group"
+ {
+ "id" "26"
+ "mode" "dpad"
+ "name" ""
+ "description" ""
+ "inputs"
+ {
+ "dpad_north"
+ {
+ "activators"
+ {
+ "Full_Press"
+ {
+ "bindings"
+ {
+ "binding" "key_press LEFT_CONTROL, Swap Screens, , "
+ "binding" "key_press TAB, Swap Screens, , "
+ }
+ }
+ }
+ "disabled_activators"
+ {
+ }
+ }
+ "dpad_south"
+ {
+ "activators"
+ {
+ "Full_Press"
+ {
+ "bindings"
+ {
+ "binding" "key_press ESCAPE, Escape, , "
+ }
+ }
+ }
+ "disabled_activators"
+ {
+ }
+ }
+ "dpad_east"
+ {
+ "activators"
+ {
+ "Full_Press"
+ {
+ "bindings"
+ {
+ "binding" "key_press RETURN, Enter, , "
+ }
+ }
+ }
+ "disabled_activators"
+ {
+ }
+ }
+ "click"
+ {
+ "activators"
+ {
+ "Full_Press"
+ {
+ "bindings"
+ {
+ "binding" "mouse_button RIGHT, , "
+ }
+ }
+ }
+ "disabled_activators"
+ {
+ }
+ }
+ }
+ "settings"
+ {
+ "requires_click" "0"
}
}
"group"
@@ -897,39 +1023,6 @@
{
}
}
- "button_back_left"
- {
- "activators"
- {
- "Full_Press"
- {
- "bindings"
- {
- "binding" "key_press LEFT_CONTROL, Swap Screens, , "
- "binding" "key_press TAB, Swap Screens, , "
- }
- }
- }
- "disabled_activators"
- {
- }
- }
- "button_back_right"
- {
- "activators"
- {
- "Full_Press"
- {
- "bindings"
- {
- "binding" "key_press ESCAPE, Escape, , "
- }
- }
- }
- "disabled_activators"
- {
- }
- }
}
}
"preset"
@@ -943,7 +1036,8 @@
"1" "left_trackpad active"
"2" "right_trackpad inactive"
"6" "right_trackpad inactive"
- "19" "right_trackpad active"
+ "19" "right_trackpad inactive"
+ "25" "right_trackpad active"
"3" "joystick active"
"4" "left_trigger active"
"5" "right_trigger active"
@@ -961,7 +1055,8 @@
"12" "left_trackpad active"
"13" "right_trackpad inactive"
"20" "right_trackpad active"
- "14" "joystick active"
+ "14" "joystick inactive"
+ "26" "joystick active"
"15" "left_trigger active"
"16" "right_trigger active"
}
diff --git a/emu-configs/defaults/retrodeck/controller_configs/RetroDECK_controller_switchpro.vdf b/emu-configs/defaults/retrodeck/controller_configs/RetroDECK_controller_switchpro.vdf
old mode 100755
new mode 100644
index 463316d1..62bcdd2f
--- a/emu-configs/defaults/retrodeck/controller_configs/RetroDECK_controller_switchpro.vdf
+++ b/emu-configs/defaults/retrodeck/controller_configs/RetroDECK_controller_switchpro.vdf
@@ -14,7 +14,7 @@
"minor_revision" "0"
"Timestamp" "-643537072"
"actions"
- {
+{
"Default"
{
"title" "RetroDECK - Set"
@@ -29,9 +29,6 @@
"action_layers"
{
}
- "localization"
- {
- }
"group"
{
"id" "0"
@@ -780,6 +777,115 @@
}
}
"group"
+ {
+ "id" "19"
+ "mode" "dpad"
+ "name" ""
+ "description" ""
+ "inputs"
+ {
+ "dpad_north"
+ {
+ "activators"
+ {
+ "Full_Press"
+ {
+ "bindings"
+ {
+ "binding" "key_press LEFT_CONTROL, Swap Screens, , "
+ "binding" "key_press TAB, Swap Screens, , "
+ }
+ }
+ }
+ "disabled_activators"
+ {
+ }
+ }
+ "dpad_south"
+ {
+ "activators"
+ {
+ "Full_Press"
+ {
+ "bindings"
+ {
+ "binding" "key_press ESCAPE, Escape, , "
+ }
+ }
+ }
+ "disabled_activators"
+ {
+ }
+ }
+ "dpad_east"
+ {
+ "activators"
+ {
+ "Full_Press"
+ {
+ "bindings"
+ {
+ "binding" "key_press RETURN, Enter, , "
+ }
+ }
+ }
+ "disabled_activators"
+ {
+ }
+ }
+ "click"
+ {
+ "activators"
+ {
+ "Full_Press"
+ {
+ "bindings"
+ {
+ "binding" "mouse_button RIGHT, , "
+ }
+ }
+ }
+ "disabled_activators"
+ {
+ }
+ }
+ }
+ "settings"
+ {
+ "requires_click" "0"
+ }
+ }
+ "group"
+ {
+ "id" "20"
+ "mode" "joystick_mouse"
+ "name" ""
+ "description" ""
+ "inputs"
+ {
+ "click"
+ {
+ "activators"
+ {
+ "Full_Press"
+ {
+ "bindings"
+ {
+ "binding" "mouse_button LEFT, , "
+ }
+ }
+ }
+ "disabled_activators"
+ {
+ }
+ }
+ }
+ "settings"
+ {
+ "output_joystick" "2"
+ }
+ }
+ "group"
{
"id" "7"
"mode" "switches"
@@ -1057,10 +1163,12 @@
{
"11" "switch active"
"12" "button_diamond active"
- "13" "joystick active"
+ "13" "joystick inactive"
+ "19" "joystick active"
"14" "left_trigger active"
"15" "right_trigger active"
- "16" "right_joystick active"
+ "16" "right_joystick inactive"
+ "20" "right_joystick active"
"17" "dpad active"
}
}
diff --git a/emu-configs/defaults/retrodeck/controller_configs/RetroDECK_controller_xboxone.vdf b/emu-configs/defaults/retrodeck/controller_configs/RetroDECK_controller_xboxone.vdf
new file mode 100644
index 00000000..855b2312
--- /dev/null
+++ b/emu-configs/defaults/retrodeck/controller_configs/RetroDECK_controller_xboxone.vdf
@@ -0,0 +1,1142 @@
+"controller_mappings"
+{
+ "version" "3"
+ "revision" "79"
+ "title" "RetroDECK: Official Layout - Xbox One/S/X"
+ "description" ""
+ "creator" ""
+ "progenitor" ""
+ "url" ""
+ "export_type" ""
+ "controller_type" "controller_xboxone"
+ "controller_caps" "1590271"
+ "major_revision" "0"
+ "minor_revision" "0"
+ "Timestamp" "-5320"
+ "actions"
+ {
+ "Default"
+ {
+ "title" "RetroDECK - Set"
+ "legacy_set" "1"
+ }
+ "Preset_1000001"
+ {
+ "title" "Global Hotkeys - Set"
+ "legacy_set" "1"
+ }
+ }
+ "action_layers"
+ {
+ }
+ "localization"
+ {
+ }
+ "group"
+ {
+ "id" "0"
+ "mode" "four_buttons"
+ "name" ""
+ "description" ""
+ "inputs"
+ {
+ "button_a"
+ {
+ "activators"
+ {
+ "Full_Press"
+ {
+ "bindings"
+ {
+ "binding" "xinput_button A, , "
+ }
+ }
+ }
+ "disabled_activators"
+ {
+ }
+ }
+ "button_b"
+ {
+ "activators"
+ {
+ "Full_Press"
+ {
+ "bindings"
+ {
+ "binding" "xinput_button B, , "
+ }
+ }
+ }
+ "disabled_activators"
+ {
+ }
+ }
+ "button_x"
+ {
+ "activators"
+ {
+ "Full_Press"
+ {
+ "bindings"
+ {
+ "binding" "xinput_button X, , "
+ }
+ }
+ }
+ "disabled_activators"
+ {
+ }
+ }
+ "button_y"
+ {
+ "activators"
+ {
+ "Full_Press"
+ {
+ "bindings"
+ {
+ "binding" "xinput_button Y, , "
+ }
+ }
+ }
+ "disabled_activators"
+ {
+ }
+ }
+ }
+ }
+ "group"
+ {
+ "id" "1"
+ "mode" "dpad"
+ "name" ""
+ "description" ""
+ "inputs"
+ {
+ "dpad_north"
+ {
+ "activators"
+ {
+ "Full_Press"
+ {
+ "bindings"
+ {
+ "binding" "xinput_button dpad_up, , "
+ }
+ "settings"
+ {
+ "haptic_intensity" "1"
+ }
+ }
+ }
+ "disabled_activators"
+ {
+ }
+ }
+ "dpad_south"
+ {
+ "activators"
+ {
+ "Full_Press"
+ {
+ "bindings"
+ {
+ "binding" "xinput_button dpad_down, , "
+ }
+ "settings"
+ {
+ "haptic_intensity" "1"
+ }
+ }
+ }
+ "disabled_activators"
+ {
+ }
+ }
+ "dpad_east"
+ {
+ "activators"
+ {
+ "Full_Press"
+ {
+ "bindings"
+ {
+ "binding" "xinput_button dpad_right, , "
+ }
+ "settings"
+ {
+ "haptic_intensity" "1"
+ }
+ }
+ }
+ "disabled_activators"
+ {
+ }
+ }
+ "dpad_west"
+ {
+ "activators"
+ {
+ "Full_Press"
+ {
+ "bindings"
+ {
+ "binding" "xinput_button dpad_left, , "
+ }
+ "settings"
+ {
+ "haptic_intensity" "1"
+ }
+ }
+ }
+ "disabled_activators"
+ {
+ }
+ }
+ }
+ }
+ "group"
+ {
+ "id" "2"
+ "mode" "joystick_move"
+ "name" ""
+ "description" ""
+ "inputs"
+ {
+ "click"
+ {
+ "activators"
+ {
+ "Full_Press"
+ {
+ "bindings"
+ {
+ "binding" "xinput_button JOYSTICK_RIGHT, , "
+ }
+ "settings"
+ {
+ "haptic_intensity" "2"
+ }
+ }
+ }
+ "disabled_activators"
+ {
+ }
+ }
+ }
+ }
+ "group"
+ {
+ "id" "3"
+ "mode" "joystick_move"
+ "name" ""
+ "description" ""
+ "inputs"
+ {
+ "click"
+ {
+ "activators"
+ {
+ "Full_Press"
+ {
+ "bindings"
+ {
+ "binding" "xinput_button JOYSTICK_LEFT, , "
+ }
+ "settings"
+ {
+ "haptic_intensity" "2"
+ }
+ }
+ }
+ "disabled_activators"
+ {
+ }
+ }
+ }
+ }
+ "group"
+ {
+ "id" "4"
+ "mode" "trigger"
+ "name" ""
+ "description" ""
+ "inputs"
+ {
+ "click"
+ {
+ "activators"
+ {
+ "Full_Press"
+ {
+ "bindings"
+ {
+ "binding" "xinput_button TRIGGER_LEFT, , "
+ }
+ "settings"
+ {
+ "haptic_intensity" "2"
+ }
+ }
+ }
+ "disabled_activators"
+ {
+ }
+ }
+ }
+ "settings"
+ {
+ "output_trigger" "1"
+ }
+ }
+ "group"
+ {
+ "id" "5"
+ "mode" "trigger"
+ "name" ""
+ "description" ""
+ "inputs"
+ {
+ "click"
+ {
+ "activators"
+ {
+ "Full_Press"
+ {
+ "bindings"
+ {
+ "binding" "xinput_button TRIGGER_RIGHT, , "
+ }
+ "settings"
+ {
+ "haptic_intensity" "2"
+ }
+ }
+ }
+ "disabled_activators"
+ {
+ }
+ }
+ }
+ "settings"
+ {
+ "output_trigger" "2"
+ }
+ }
+ "group"
+ {
+ "id" "6"
+ "mode" "joystick_move"
+ "name" ""
+ "description" ""
+ "inputs"
+ {
+ "click"
+ {
+ "activators"
+ {
+ "Full_Press"
+ {
+ "bindings"
+ {
+ "binding" "xinput_button JOYSTICK_RIGHT, , "
+ }
+ "settings"
+ {
+ "haptic_intensity" "2"
+ }
+ }
+ }
+ "disabled_activators"
+ {
+ }
+ }
+ }
+ }
+ "group"
+ {
+ "id" "8"
+ "mode" "joystick_move"
+ "name" ""
+ "description" ""
+ "inputs"
+ {
+ "click"
+ {
+ "activators"
+ {
+ "Full_Press"
+ {
+ "bindings"
+ {
+ "binding" "xinput_button JOYSTICK_RIGHT, , "
+ }
+ }
+ }
+ "disabled_activators"
+ {
+ }
+ }
+ }
+ }
+ "group"
+ {
+ "id" "9"
+ "mode" "dpad"
+ "name" ""
+ "description" ""
+ "inputs"
+ {
+ "dpad_north"
+ {
+ "activators"
+ {
+ "Full_Press"
+ {
+ "bindings"
+ {
+ "binding" "xinput_button DPAD_UP, , "
+ }
+ "settings"
+ {
+ "haptic_intensity" "1"
+ }
+ }
+ }
+ "disabled_activators"
+ {
+ }
+ }
+ "dpad_south"
+ {
+ "activators"
+ {
+ "Full_Press"
+ {
+ "bindings"
+ {
+ "binding" "xinput_button DPAD_DOWN, , "
+ }
+ "settings"
+ {
+ "haptic_intensity" "1"
+ }
+ }
+ }
+ "disabled_activators"
+ {
+ }
+ }
+ "dpad_east"
+ {
+ "activators"
+ {
+ "Full_Press"
+ {
+ "bindings"
+ {
+ "binding" "xinput_button DPAD_RIGHT, , "
+ }
+ "settings"
+ {
+ "haptic_intensity" "1"
+ }
+ }
+ }
+ "disabled_activators"
+ {
+ }
+ }
+ "dpad_west"
+ {
+ "activators"
+ {
+ "Full_Press"
+ {
+ "bindings"
+ {
+ "binding" "xinput_button DPAD_LEFT, , "
+ }
+ "settings"
+ {
+ "haptic_intensity" "1"
+ }
+ }
+ }
+ "disabled_activators"
+ {
+ }
+ }
+ }
+ "settings"
+ {
+ "requires_click" "0"
+ "haptic_intensity_override" "0"
+ }
+ }
+ "group"
+ {
+ "id" "11"
+ "mode" "four_buttons"
+ "name" ""
+ "description" ""
+ "inputs"
+ {
+ "button_a"
+ {
+ "activators"
+ {
+ "Full_Press"
+ {
+ "bindings"
+ {
+ "binding" "key_press LEFT_CONTROL, Pause / Resume, , "
+ "binding" "key_press P, Pause / Resume, , "
+ }
+ }
+ }
+ "disabled_activators"
+ {
+ }
+ }
+ "button_b"
+ {
+ "activators"
+ {
+ "Full_Press"
+ {
+ "bindings"
+ {
+ "binding" "key_press LEFT_CONTROL, Take Screenshot, , "
+ "binding" "key_press X, Take Screenshot, , "
+ }
+ }
+ }
+ "disabled_activators"
+ {
+ }
+ }
+ "button_x"
+ {
+ "activators"
+ {
+ "Full_Press"
+ {
+ "bindings"
+ {
+ "binding" "key_press LEFT_CONTROL, Fullscreen Toggle, , "
+ "binding" "key_press RETURN, Fullscreen Toggle, , "
+ }
+ }
+ }
+ "disabled_activators"
+ {
+ }
+ }
+ "button_y"
+ {
+ "activators"
+ {
+ "Full_Press"
+ {
+ "bindings"
+ {
+ "binding" "key_press LEFT_CONTROL, Open Menu, , "
+ "binding" "key_press M, Open Menu, , "
+ }
+ }
+ }
+ "disabled_activators"
+ {
+ }
+ }
+ }
+ }
+ "group"
+ {
+ "id" "12"
+ "mode" "joystick_move"
+ "name" ""
+ "description" ""
+ "inputs"
+ {
+ "click"
+ {
+ "activators"
+ {
+ "Full_Press"
+ {
+ "bindings"
+ {
+ "binding" "key_press LEFT_CONTROL, Swap Screens, , "
+ "binding" "key_press TAB, Swap Screens, , "
+ }
+ "settings"
+ {
+ "haptic_intensity" "2"
+ }
+ }
+ }
+ "disabled_activators"
+ {
+ }
+ }
+ }
+ }
+ "group"
+ {
+ "id" "13"
+ "mode" "trigger"
+ "name" ""
+ "description" ""
+ "inputs"
+ {
+ "click"
+ {
+ "activators"
+ {
+ "Full_Press"
+ {
+ "bindings"
+ {
+ "binding" "key_press LEFT_CONTROL, Rewind, , "
+ "binding" "key_press KEYPAD_DASH, Rewind, , "
+ }
+ "settings"
+ {
+ "haptic_intensity" "2"
+ }
+ }
+ }
+ "disabled_activators"
+ {
+ }
+ }
+ }
+ "settings"
+ {
+ "output_trigger" "1"
+ }
+ }
+ "group"
+ {
+ "id" "14"
+ "mode" "trigger"
+ "name" ""
+ "description" ""
+ "inputs"
+ {
+ "click"
+ {
+ "activators"
+ {
+ "Full_Press"
+ {
+ "bindings"
+ {
+ "binding" "key_press LEFT_CONTROL, Fast forward, , "
+ "binding" "key_press KEYPAD_PLUS, Fast forward, , "
+ }
+ "settings"
+ {
+ "haptic_intensity" "2"
+ }
+ }
+ }
+ "disabled_activators"
+ {
+ }
+ }
+ }
+ "settings"
+ {
+ "output_trigger" "2"
+ }
+ }
+ "group"
+ {
+ "id" "15"
+ "mode" "joystick_move"
+ "name" ""
+ "description" ""
+ "inputs"
+ {
+ "click"
+ {
+ "activators"
+ {
+ "Full_Press"
+ {
+ "bindings"
+ {
+ "binding" "key_press ESCAPE, Escape, , "
+ }
+ }
+ }
+ "disabled_activators"
+ {
+ }
+ }
+ }
+ }
+ "group"
+ {
+ "id" "16"
+ "mode" "dpad"
+ "name" ""
+ "description" ""
+ "inputs"
+ {
+ "dpad_north"
+ {
+ "activators"
+ {
+ "Full_Press"
+ {
+ "bindings"
+ {
+ "binding" "key_press LEFT_CONTROL, Increase Emulation Speed, , "
+ "binding" "key_press 1, Increase Emulation Speed, , "
+ }
+ "settings"
+ {
+ "haptic_intensity" "1"
+ }
+ }
+ }
+ "disabled_activators"
+ {
+ }
+ }
+ "dpad_south"
+ {
+ "activators"
+ {
+ "Full_Press"
+ {
+ "bindings"
+ {
+ "binding" "key_press LEFT_CONTROL, Decrease Emulation Speed, , "
+ "binding" "key_press 2, Decrease Emulation Speed, , "
+ }
+ "settings"
+ {
+ "haptic_intensity" "1"
+ }
+ }
+ }
+ "disabled_activators"
+ {
+ }
+ }
+ "dpad_east"
+ {
+ "activators"
+ {
+ "Full_Press"
+ {
+ "bindings"
+ {
+ "binding" "key_press LEFT_CONTROL, Next State Slot, , "
+ "binding" "key_press K, Next State Slot, , "
+ }
+ "settings"
+ {
+ "haptic_intensity" "1"
+ }
+ }
+ }
+ "disabled_activators"
+ {
+ }
+ }
+ "dpad_west"
+ {
+ "activators"
+ {
+ "Full_Press"
+ {
+ "bindings"
+ {
+ "binding" "key_press LEFT_CONTROL, Previous State Slot, , "
+ "binding" "key_press J, Previous State Slot, , "
+ }
+ "settings"
+ {
+ "haptic_intensity" "1"
+ }
+ }
+ }
+ "disabled_activators"
+ {
+ }
+ }
+ }
+ "settings"
+ {
+ "requires_click" "0"
+ "haptic_intensity_override" "0"
+ }
+ }
+ "group"
+ {
+ "id" "7"
+ "mode" "switches"
+ "name" ""
+ "description" ""
+ "inputs"
+ {
+ "button_escape"
+ {
+ "activators"
+ {
+ "Full_Press"
+ {
+ "bindings"
+ {
+ "binding" "xinput_button start, , "
+ }
+ }
+ }
+ "disabled_activators"
+ {
+ }
+ }
+ "button_menu"
+ {
+ "activators"
+ {
+ "Full_Press"
+ {
+ "bindings"
+ {
+ "binding" "xinput_button SELECT, , "
+ }
+ }
+ "Full_Press"
+ {
+ "bindings"
+ {
+ "binding" "controller_action CHANGE_PRESET 2 0 1, , "
+ }
+ }
+ }
+ "disabled_activators"
+ {
+ }
+ }
+ "left_bumper"
+ {
+ "activators"
+ {
+ "Full_Press"
+ {
+ "bindings"
+ {
+ "binding" "xinput_button shoulder_left, , "
+ }
+ }
+ }
+ "disabled_activators"
+ {
+ }
+ }
+ "right_bumper"
+ {
+ "activators"
+ {
+ "Full_Press"
+ {
+ "bindings"
+ {
+ "binding" "xinput_button shoulder_right, , "
+ }
+ }
+ }
+ "disabled_activators"
+ {
+ }
+ }
+ "button_back_left"
+ {
+ "activators"
+ {
+ "Full_Press"
+ {
+ "bindings"
+ {
+ "binding" "xinput_button y, , "
+ }
+ }
+ }
+ "disabled_activators"
+ {
+ }
+ }
+ "button_back_right"
+ {
+ "activators"
+ {
+ "Full_Press"
+ {
+ "bindings"
+ {
+ "binding" "xinput_button a, , "
+ }
+ }
+ }
+ "disabled_activators"
+ {
+ }
+ }
+ "button_back_left_upper"
+ {
+ "activators"
+ {
+ "Full_Press"
+ {
+ "bindings"
+ {
+ "binding" "xinput_button x, , "
+ }
+ }
+ }
+ "disabled_activators"
+ {
+ }
+ }
+ "button_back_right_upper"
+ {
+ "activators"
+ {
+ "Full_Press"
+ {
+ "bindings"
+ {
+ "binding" "xinput_button b, , "
+ }
+ }
+ }
+ "disabled_activators"
+ {
+ }
+ }
+ "button_capture"
+ {
+ "activators"
+ {
+ "Full_Press"
+ {
+ "bindings"
+ {
+ "binding" "controller_action SCREENSHOT, , "
+ }
+ }
+ }
+ "disabled_activators"
+ {
+ }
+ }
+ }
+ }
+ "group"
+ {
+ "id" "10"
+ "mode" "switches"
+ "name" ""
+ "description" ""
+ "inputs"
+ {
+ "button_escape"
+ {
+ "activators"
+ {
+ "Full_Press"
+ {
+ "bindings"
+ {
+ "binding" "key_press LEFT_CONTROL, Quit Emulator, , "
+ "binding" "key_press Q, Quit Emulator, , "
+ }
+ }
+ }
+ "disabled_activators"
+ {
+ }
+ }
+ "button_menu"
+ {
+ "activators"
+ {
+ "release"
+ {
+ "bindings"
+ {
+ "binding" "controller_action CHANGE_PRESET 1 0 1, , "
+ }
+ }
+ "release"
+ {
+ "bindings"
+ {
+ "binding" "xinput_button SELECT, , "
+ }
+ }
+ }
+ "disabled_activators"
+ {
+ }
+ }
+ "left_bumper"
+ {
+ "activators"
+ {
+ "Full_Press"
+ {
+ "bindings"
+ {
+ "binding" "key_press LEFT_CONTROL, Load State, , "
+ "binding" "key_press A, Load State, , "
+ }
+ }
+ }
+ "disabled_activators"
+ {
+ }
+ }
+ "right_bumper"
+ {
+ "activators"
+ {
+ "Full_Press"
+ {
+ "bindings"
+ {
+ "binding" "key_press LEFT_CONTROL, Save State, , "
+ "binding" "key_press S, Save State, , "
+ }
+ }
+ }
+ "disabled_activators"
+ {
+ }
+ }
+ "button_back_left"
+ {
+ "activators"
+ {
+ "Full_Press"
+ {
+ "bindings"
+ {
+ "binding" "xinput_button y, , "
+ }
+ }
+ }
+ "disabled_activators"
+ {
+ }
+ }
+ "button_back_right"
+ {
+ "activators"
+ {
+ "Full_Press"
+ {
+ "bindings"
+ {
+ "binding" "xinput_button a, , "
+ }
+ }
+ }
+ "disabled_activators"
+ {
+ }
+ }
+ "button_back_left_upper"
+ {
+ "activators"
+ {
+ "Full_Press"
+ {
+ "bindings"
+ {
+ "binding" "xinput_button x, , "
+ }
+ }
+ }
+ "disabled_activators"
+ {
+ }
+ }
+ "button_back_right_upper"
+ {
+ "activators"
+ {
+ "Full_Press"
+ {
+ "bindings"
+ {
+ "binding" "xinput_button b, , "
+ }
+ }
+ }
+ "disabled_activators"
+ {
+ }
+ }
+ "button_capture"
+ {
+ "activators"
+ {
+ "Full_Press"
+ {
+ "bindings"
+ {
+ "binding" "controller_action SCREENSHOT, Take Steam Screenshot, , "
+ }
+ }
+ }
+ "disabled_activators"
+ {
+ }
+ }
+ }
+ }
+ "preset"
+ {
+ "id" "0"
+ "name" "Default"
+ "group_source_bindings"
+ {
+ "7" "switch active"
+ "0" "button_diamond active"
+ "3" "joystick active"
+ "4" "left_trigger active"
+ "5" "right_trigger active"
+ "8" "right_joystick active"
+ "9" "dpad active"
+ }
+ }
+ "preset"
+ {
+ "id" "1"
+ "name" "Preset_1000001"
+ "group_source_bindings"
+ {
+ "10" "switch active"
+ "11" "button_diamond active"
+ "12" "joystick active"
+ "13" "left_trigger active"
+ "14" "right_trigger active"
+ "15" "right_joystick active"
+ "16" "dpad active"
+ }
+ }
+ "settings"
+ {
+ "left_trackpad_mode" "0"
+ "right_trackpad_mode" "0"
+ }
+}
diff --git a/emu-configs/defaults/retrodeck/helper_files/how-to-install-psvita-games.txt b/emu-configs/defaults/retrodeck/helper_files/how-to-install-psvita-games.txt
new file mode 100644
index 00000000..aae12260
--- /dev/null
+++ b/emu-configs/defaults/retrodeck/helper_files/how-to-install-psvita-games.txt
@@ -0,0 +1,19 @@
+Please note that the PSVita support is still experimental, and for the way Vita3K is working the automation is limited.
+In order to install a PSVita games is needed to:
+
+- Install a game opening the Vita3K emulator via Configurator, the supported formats are pkg, zip, vpk.
+- Upon installation the zRIF may be asked, it's different for each game, you can find it via web search.
+- Install DLCs and patches in the same way.
+- Create an empty file in roms/psvita/gamename.psvita, please mind the .psvita extension. For example: roms/psvita/WipEout 2048 (EU).psvita.
+- Edit the empty file adding the game Title ID (more below).
+- The game should appear in the game list after RetroDECK is re-opened.
+
+How to find a title ID
+It can be found inside the Vita3K GUI in the Title ID column, or found via web search.
+For example the game WipEout 2048 (EU) has an ID that is PCSF00007.
+So simply add PCSF00007 to the WipEout 2048 (EU).psvita file and the setup for this game is complete.
+
+Related wiki article can be found here:
+--
+
+The RetroDECK Team
\ No newline at end of file
diff --git a/emu-configs/defaults/retrodeck/reference_lists/helper_files_list.cfg b/emu-configs/defaults/retrodeck/reference_lists/helper_files_list.cfg
index 6700e277..8a3b9744 100644
--- a/emu-configs/defaults/retrodeck/reference_lists/helper_files_list.cfg
+++ b/emu-configs/defaults/retrodeck/reference_lists/helper_files_list.cfg
@@ -19,3 +19,6 @@ how-to-install-Duckstation-textures.txt^$texture_packs_folder/Duckstation
# customs
how-to-install-custom-emulators.txt^$rdhome/customs
+
+# emulators
+how-to-install-psvita-games.txt^$roms_folder/psvita
diff --git a/emu-configs/vita3k/config.yml b/emu-configs/vita3k/config.yml
new file mode 100644
index 00000000..6e1b12dd
--- /dev/null
+++ b/emu-configs/vita3k/config.yml
@@ -0,0 +1,121 @@
+---
+initial-setup: true
+gdbstub: false
+log-active-shaders: false
+log-uniforms: false
+log-compat-warn: false
+validation-layer: true
+pstv-mode: false
+show-mode: false
+demo-mode: false
+show-gui: false
+show-info-bar: false
+apps-list-grid: false
+display-system-apps: true
+stretch_the_display_area: false
+show-live-area-screen: true
+icon-size: 64
+archive-log: false
+backend-renderer: OpenGL
+gpu-idx: 0
+high-accuracy: true
+resolution-multiplier: 1
+disable-surface-sync: true
+screen-filter: Bilinear
+v-sync: true
+anisotropic-filtering: 1
+texture-cache: true
+show-compile-shaders: true
+hashless-texture-cache: false
+boot-apps-full-screen: true
+audio-backend: SDL
+ngs-enable: true
+sys-button: 1
+sys-lang: 1
+sys-date-format: 2
+sys-time-format: 0
+cpu-pool-size: 10
+modules-mode: 0
+delay-background: 4
+delay-start: 10
+background-alpha: 0.300000012
+log-level: 0
+cpu-backend: Dynarmic
+cpu-opt: true
+pref-path: RETRODECKHOMEDIR/bios/Vita3K/Vita3K/
+discord-rich-presence: true
+wait-for-debugger: false
+color-surface-debug: false
+show-touchpad-cursor: true
+performance-overlay: false
+perfomance-overlay-detail: 0
+perfomance-overlay-position: 0
+keyboard-button-select: 229
+keyboard-button-start: 40
+keyboard-button-up: 82
+keyboard-button-right: 79
+keyboard-button-down: 81
+keyboard-button-left: 80
+keyboard-button-l1: 20
+keyboard-button-r1: 8
+keyboard-button-l2: 24
+keyboard-button-r2: 18
+keyboard-button-l3: 9
+keyboard-button-r3: 11
+keyboard-button-triangle: 25
+keyboard-button-circle: 6
+keyboard-button-cross: 27
+keyboard-button-square: 29
+keyboard-leftstick-left: 4
+keyboard-leftstick-right: 7
+keyboard-leftstick-up: 26
+keyboard-leftstick-down: 22
+keyboard-rightstick-left: 13
+keyboard-rightstick-right: 15
+keyboard-rightstick-up: 12
+keyboard-rightstick-down: 14
+keyboard-button-psbutton: 19
+keyboard-gui-toggle-gui: 10
+keyboard-gui-fullscreen: 68
+keyboard-gui-toggle-touch: 23
+user-id: 00
+user-auto-connect: true
+dump-textures: false
+display-info-message: true
+show-welcome: false
+asia-font-support: false
+shader-cache: true
+spirv-shader: false
+current-ime-lang: 4
+psn-status: 0
+http-enable: true
+http-timeout-attempts: 50
+http-timeout-sleep-ms: 100
+http-read-end-attempts: 10
+http-read-end-sleep-ms: 250
+tracy-primitive-impl: false
+controller-binds:
+ - 0
+ - 1
+ - 2
+ - 3
+ - 4
+ - 5
+ - 6
+ - 7
+ - 8
+ - 9
+ - 10
+ - 11
+ - 12
+ - 13
+ - 14
+controller-led-color:
+ []
+lle-modules:
+ []
+ime-langs:
+ - 4
+tracy-advanced-profiling-modules:
+ []
+...
\ No newline at end of file
diff --git a/emu-configs/vita3k/ux0/user/00/user.xml b/emu-configs/vita3k/ux0/user/00/user.xml
new file mode 100644
index 00000000..03849f03
--- /dev/null
+++ b/emu-configs/vita3k/ux0/user/00/user.xml
@@ -0,0 +1,12 @@
+
+
+ /app/retrodeck/retrodeck.png
+
+
+ default
+
+
+
+
+
+
\ No newline at end of file
diff --git a/es-configs/es_find_rules.xml b/es-configs/es_find_rules.xml
index c35b67f6..a7b5f073 100644
--- a/es-configs/es_find_rules.xml
+++ b/es-configs/es_find_rules.xml
@@ -12,7 +12,6 @@
retroarch
org.libretro.RetroArch
- RetroArch-Linux-x86_64.AppImage
~/Applications/RetroArch-Linux*.AppImage
@@ -25,14 +24,18 @@
-
- /app/share/libretro/cores
-
- ~/snap/retroarch/current/.config/retroarch/cores
+ /app/share/libretro/cores
+
+ ~/.config/retroarch/cores
+
+ ~/Applications/RetroArch-Linux-x86_64.AppImage.home/.config/retroarch/cores
+ ~/.local/share/applications/RetroArch-Linux-x86_64.AppImage.home/.config/retroarch/cores
+ ~/.local/bin/RetroArch-Linux-x86_64.AppImage.home/.config/retroarch/cores
+ ~/bin/RetroArch-Linux-x86_64.AppImage.home/.config/retroarch/cores
~/.var/app/org.libretro.RetroArch/config/retroarch/cores
-
- ~/.config/retroarch/cores
+
+ ~/snap/retroarch/current/.config/retroarch/cores
/usr/lib/x86_64-linux-gnu/libretro
@@ -45,6 +48,27 @@
/usr/pkg/lib/libretro
+
+
+
+ ~/Applications/3dSen/3dSen.exe
+ ~/.local/share/applications/3dSen/3dSen.exe
+ ~/.local/bin/3dSen/3dSen.exe
+ ~/bin/3dSen/3dSen.exe
+
+
+
+
+
+ advmame
+
+
+ ~/Applications/advancemame/advmame
+ ~/.local/share/applications/advancemame/advmame
+ ~/.local/bin/advancemame/advmame
+ ~/bin/advancemame/advmame
+
+
@@ -78,6 +102,15 @@
~/.local/share/flatpak/exports/bin/net.cebix.basilisk
+
+
+
+ ~/Applications/BigPEmu/BigPEmu.exe
+ ~/.local/share/applications/BigPEmu/BigPEmu.exe
+ ~/.local/bin/BigPEmu/BigPEmu.exe
+ ~/bin/BigPEmu/BigPEmu.exe
+
+
@@ -93,6 +126,7 @@
bsnes
+ dev.bsnes.bsnes
/var/lib/flatpak/exports/bin/dev.bsnes.bsnes
@@ -102,7 +136,7 @@
- Cemu-wrapper
+ Cemu-wrapper
cemu
Cemu
@@ -115,21 +149,25 @@
~/.local/share/applications/Cemu/Cemu
~/.local/bin/Cemu/Cemu
~/bin/Cemu/Cemu
+ /var/lib/flatpak/exports/bin/info.cemu.Cemu
+ ~/.local/share/flatpak/exports/bin/info.cemu.Cemu
- citra-qt
- citra
+ citra-qt
+ citra
citra-emu.citra-nightly
org.citra_emu.citra
- ~/Applications/citra*.AppImage
- ~/.local/share/applications/citra*.AppImage
- ~/.local/bin/citra*.AppImage
- ~/bin/citra*.AppImage
+ ~/Applications/citra-qt*.AppImage
+ ~/.local/share/applications/citra-qt*.AppImage
+ ~/.local/bin/citra-qt*.AppImage
+ ~/bin/citra-qt*.AppImage
+ ~/.citra/canary/citra-qt.AppImage
+ ~/.citra/nightly/citra-qt.AppImage
/var/lib/flatpak/exports/bin/org.citra_emu.citra
~/.local/share/flatpak/exports/bin/org.citra_emu.citra
@@ -170,6 +208,7 @@
dolphin-emu
+ dolphin-emulator.dolphin-emu
org.DolphinEmu.dolphin-emu
@@ -211,6 +250,10 @@
org.duckstation.DuckStation
+ ~/Applications/DuckStation*.AppImage
+ ~/.local/share/applications/DuckStation*.AppImage
+ ~/.local/bin/DuckStation*.AppImage
+ ~/bin/DuckStation*.AppImage
~/Applications/duckstation-nogui*.AppImage
~/.local/share/applications/duckstation-nogui*.AppImage
~/.local/bin/duckstation-nogui*.AppImage
@@ -235,6 +278,27 @@
~/bin/easyrpg/easyrpg-player
+
+
+
+ eka2l1_qt
+
+
+ ~/Applications/EKA2L1*.AppImage
+ ~/.local/share/applications/EKA2L1*.AppImage
+ ~/.local/bin/EKA2L1*.AppImage
+ ~/bin/EKA2L1*.AppImage
+
+
+
+
+
+ ~/Applications/EKA2L1/eka2l1_qt.exe
+ ~/.local/share/applications/EKA2L1/eka2l1_qt.exe
+ ~/.local/bin/EKA2L1/eka2l1_qt.exe
+ ~/bin/EKA2L1/eka2l1_qt.exe
+
+
@@ -289,6 +353,7 @@
gargoyle
+ io.github.garglk.Gargoyle
~/Applications/Gargoyle*.AppImage
@@ -324,6 +389,7 @@
hatari
+ org.tuxfamily.hatari
/var/lib/flatpak/exports/bin/org.tuxfamily.hatari
@@ -366,6 +432,15 @@
~/bin/linapple/linapple
+
+
+
+ ~/Applications/m2emulator/EMULATOR.EXE
+ ~/.local/share/applications/m2emulator/EMULATOR.EXE
+ ~/.local/bin/m2emulator/EMULATOR.EXE
+ ~/bin/m2emulator/EMULATOR.EXE
+
+
@@ -399,6 +474,18 @@
~/.local/share/flatpak/exports/bin/net.kuribo64.melonDS
+
+
+
+ mesen2
+
+
+ ~/Applications/Mesen*.AppImage
+ ~/.local/share/applications/Mesen*.AppImage
+ ~/.local/bin/Mesen*.AppImage
+ ~/bin/Mesen*.AppImage
+
+
@@ -430,6 +517,7 @@
nestopia
+ ca._0ldsk00l.Nestopia
/var/lib/flatpak/exports/bin/ca._0ldsk00l.Nestopia
@@ -440,6 +528,7 @@
openmsx
+ org.openmsx.openMSX
/var/lib/flatpak/exports/bin/org.openmsx.openMSX
@@ -462,11 +551,15 @@
pcsx2-qt
+ net.pcsx2.PCSX2
- ~/Applications/pcsx2*-Qt.AppImage
- ~/.local/bin/pcsx2*-Qt.AppImage
- ~/bin/pcsx2*-Qt.AppImage
+ ~/Applications/pcsx2*.AppImage
+ ~/.local/share/applications/pcsx2*.AppImage
+ ~/.local/bin/pcsx2*.AppImage
+ ~/bin/pcsx2*.AppImage
+ /var/lib/flatpak/exports/bin/net.pcsx2.PCSX2
+ ~/.local/share/flatpak/exports/bin/net.pcsx2.PCSX2
@@ -495,6 +588,9 @@
+
+ org.purei.Play
+
~/Applications/Play!*.AppImage
~/.local/share/applications/Play!*.AppImage
@@ -508,9 +604,9 @@
ppsspp-emu.ppsspp-sdl
- org.ppsspp.PPSSPP
PPSSPPSDL
PPSSPPQt
+ org.ppsspp.PPSSPP
/var/lib/flatpak/exports/bin/org.ppsspp.PPSSPP
@@ -534,6 +630,15 @@
~/.local/share/flatpak/exports/bin/io.github.shiiion.primehack
+
+
+
+ ~/Applications/Proton/wine*.AppImage
+ ~/.local/share/applications/Proton/wine*.AppImage
+ ~/.local/bin/Proton/wine*.AppImage
+ ~/bin/Proton/wine*.AppImage
+
+
@@ -546,6 +651,18 @@
~/bin/punes/punes
+
+
+
+ quasi88
+
+
+ ~/Applications/quasi88/quasi88
+ ~/.local/share/applications/quasi88/quasi88
+ ~/.local/bin/quasi88/quasi88
+ ~/bin/quasi88/quasi88
+
+
@@ -685,13 +802,30 @@
~/.local/share/flatpak/exports/bin/io.github.simple64.simple64
+
+
+
+ SkyEmu
+
+
+ ~/Applications/SkyEmu/SkyEmu
+ ~/.local/share/applications/SkyEmu/SkyEmu
+ ~/.local/bin/SkyEmu/SkyEmu
+ ~/bin/SkyEmu/SkyEmu
+
+
snes9x
snes9x-gtk
+ com.snes9x.Snes9x
+ ~/Applications/Snes9x*.AppImage
+ ~/.local/share/applications/Snes9x*.AppImage
+ ~/.local/bin/Snes9x*.AppImage
+ ~/bin/Snes9x*.AppImage
/var/lib/flatpak/exports/bin/com.snes9x.Snes9x
~/.local/share/flatpak/exports/bin/com.snes9x.Snes9x
@@ -775,8 +909,19 @@
~/.local/share/flatpak/exports/bin/net.sf.VICE
+
+
+
+ xplus4
+ vice-jz.xplus4
+
+
+ /var/lib/flatpak/exports/bin/net.sf.VICE|flatpak run --command=xplus4 net.sf.VICE
+ ~/.local/share/flatpak/exports/bin/net.sf.VICE|flatpak run --command=xplus4 net.sf.VICE
+
+
-
+
xvic
vice-jz.xvic
@@ -786,6 +931,18 @@
~/.local/share/flatpak/exports/bin/net.sf.VICE|flatpak run --command=xvic net.sf.VICE
+
+
+
+ VPinballX_GL
+
+
+ ~/Applications/VPinballX/VPinballX_GL
+ ~/.local/share/applications/VPinballX/VPinballX_GL
+ ~/.local/bin/VPinballX/VPinballX_GL
+ ~/bin/VPinballX/VPinballX_GL
+
+
@@ -814,6 +971,28 @@
~/.local/share/flatpak/exports/bin/app.xemu.xemu
+
+
+
+ ~/Applications/Wine/wine*.AppImage
+ ~/.local/share/applications/Wine/wine*.AppImage
+ ~/.local/bin/Wine/wine*.AppImage
+ ~/bin/Wine/wine*.AppImage
+
+
+
+
+
+ ~/Applications/xenia/xenia.exe
+ ~/.local/share/applications/xenia/xenia.exe
+ ~/.local/bin/xenia/xenia.exe
+ ~/bin/xenia/xenia.exe
+ ~/Applications/xenia/xenia_canary.exe
+ ~/.local/share/applications/xenia/xenia_canary.exe
+ ~/.local/bin/xenia/xenia_canary.exe
+ ~/bin/xenia/xenia_canary.exe
+
+
diff --git a/es-configs/es_systems.xml b/es-configs/es_systems.xml
index 3ad8da75..d3c8068d 100644
--- a/es-configs/es_systems.xml
+++ b/es-configs/es_systems.xml
@@ -5,18 +5,32 @@
3do
3DO Interactive Multiplayer
%ROMPATH%/3do
- .bin .BIN .chd .CHD .cue .CUE .iso .ISO
+ .bin .BIN .chd .CHD .cue .CUE .iso .ISO .7z .7Z .zip .ZIP
%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/opera_libretro.so %ROM%
3do
3do
+
amstradcpc
amstradcpc
@@ -98,11 +113,13 @@
apple2gs
Apple IIGS
%ROMPATH%/apple2gs
- .2mg .2MG
+ .2mg .2MG .7z .7z .zip .ZIP
+ %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mame_libretro.so "apple2gs -rompath %GAMEDIR%\;%ROMPATH%/apple2gs -flop3 \"%ROMRAW%\""
%STARTDIR%=~/.mame %EMULATOR_MAME% -rompath %GAMEDIR%\;%ROMPATH%/apple2gs apple2gs -flop3 %ROM%
apple2gs
apple2gs
+
arcade
Arcade
@@ -131,11 +148,25 @@
Emerson Arcadia 2001
%ROMPATH%/arcadia
.bin .BIN .7z .7Z .zip .ZIP
+ %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mame_libretro.so "arcadia -rompath %GAMEDIR%\;%ROMPATH%/arcadia -cart \"%ROMRAW%\""
%STARTDIR%=~/.mame %EMULATOR_MAME% -rompath %GAMEDIR%\;%ROMPATH%/arcadia arcadia -cart %ROM%
arcadia
arcadia
-
+
arduboy
Arduboy Miniature Game System
@@ -175,7 +206,7 @@
.a52 .A52 .atr .ATR .atx .ATX .bin .BIN .car .CAR .cas .CAS .cdm .CDM .rom .ROM .xex .XEX .xfd .XFD .7z .7Z .zip .ZIP
%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/a5200_libretro.so %ROM%
%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/atari800_libretro.so %ROM%
-
+
atari5200
atari5200
@@ -185,6 +216,7 @@
%ROMPATH%/atari7800
.a78 .A78 .bin .BIN .7z .7Z .zip .ZIP
%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/prosystem_libretro.so %ROM%
+
atari7800
atari7800
@@ -204,16 +236,20 @@
%ROMPATH%/atarijaguar
.abs .ABS .bin .BIN .cdi .CDI .cof .COF .cue .CUE .j64 .J64 .jag .JAG .prg .PRG .rom .ROM .7z .7Z .zip .ZIP
%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/virtualjaguar_libretro.so %ROM%
- %STARTDIR%=~/.mame %EMULATOR_MAME% -rompath %GAMEDIR%\;%ROMPATH%/atarijaguar jaguar -cart %ROM%
- atarijaguar, atarijaguarcd
+
+
+
+ atarijaguar
atarijaguar
+
atarijaguarcd
Atari Jaguar CD
%ROMPATH%/atarijaguarcd
- .j64 .J64 .jag .JAG .rom .ROM .abs .ABS .cof .COF .bin .BIN .prg .PRG .7z .7Z .zip .ZIP
- %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/virtualjaguar_libretro.so %ROM%
+ .abs .ABS .bin .BIN .cdi .CDI .cof .COF .cue .CUE .j64 .J64 .jag .JAG .prg .PRG .rom .ROM .7z .7Z .zip .ZIP
+
+
atarijaguarcd
atarijaguarcd
@@ -224,7 +260,7 @@
.lnx .LNX .o .O .7z .7Z .zip .ZIP
%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/handy_libretro.so %ROM%
%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mednafen_lynx_libretro.so %ROM%
-
+
atarilynx
atarilynx
@@ -299,6 +335,7 @@
.chd .CHD .cue .CUE .iso .ISO
%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/same_cdi_libretro.so %ROM%
%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/cdi2015_libretro.so %ROM%
+
cdimono1
cdimono1
@@ -354,6 +391,25 @@
colecovision
colecovision
+
+ consolearcade
+ Console Arcade Systems
+ %ROMPATH%/consolearcade
+ .arcadedef .desktop .iso .ISO .sh .xbe .XBE .7z .7Z .zip .ZIP
+ %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mame_libretro.so %ROM%
+
+ %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/flycast_libretro.so %ROM%
+
+ %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/kronos_libretro.so %ROM%
+
+
+ %ENABLESHORTCUTS% %EMULATOR_OS-SHELL% %ROM%
+
+ %INJECT%=%BASENAME%.esprefix %EMULATOR_XEMU% -dvd_path %ROM%
+ %ENABLESHORTCUTS% %EMULATOR_OS-SHELL% %ROM%
+ arcade
+ consolearcade
+
cps
Capcom Play System
@@ -430,6 +486,7 @@
VTech CreatiVision
%ROMPATH%/crvision
.bin .BIN .rom .ROM .7z .7Z .zip .ZIP
+ %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mame_libretro.so "crvision -rompath %GAMEDIR%\;%ROMPATH%/crvision -cart \"%ROMRAW%\""
%STARTDIR%=~/.mame %EMULATOR_MAME% -rompath %GAMEDIR%\;%ROMPATH%/crvision crvision -cart %ROM%
crvision
crvision
@@ -440,10 +497,12 @@
daphne
Daphne Arcade LaserDisc Emulator
%ROMPATH%/daphne
- .daphne .singe
+ .daphne .singe .7z .7Z .zip .ZIP
%EMULATOR_HYPSEUS-SINGE% %BASENAME% vldp -framefile %GAMEDIR%/%BASENAME%.txt %INJECT%=%BASENAME%.commands
%EMULATOR_HYPSEUS-SINGE% singe vldp -framefile %GAMEDIR%/%BASENAME%.txt -script %GAMEDIR%/%BASENAME%.singe %INJECT%=%BASENAME%.commands
- daphne
+ %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mame_libretro.so %ROM%
+ %STARTDIR%=~/.mame %EMULATOR_MAME% -rompath %GAMEDIR%\;%ROMPATH%/daphne %BASENAME%
+ daphne, arcade
daphne
-->
@@ -506,6 +565,20 @@
easyrpg
easyrpg
+
+
famicom
Nintendo Family Computer
%ROMPATH%/famicom
- .fds .FDS .nes .NES .unf .UNF .unif .UNIF .7z .7Z .zip .ZIP
+ .3dsen .3DSEN .fds .FDS .nes .NES .unf .UNF .unif .UNIF .7z .7Z .zip .ZIP
%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mesen_libretro.so %ROM%
+
%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/nestopia_libretro.so %ROM%
%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/fceumm_libretro.so %ROM%
@@ -564,6 +639,7 @@
%ROMPATH%/fds
.nes .NES .fds .FDS .unf .UNF .UNIF .UNIF .7z .7Z .zip .ZIP
%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mesen_libretro.so %ROM%
+
%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/nestopia_libretro.so %ROM%
%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/fceumm_libretro.so %ROM%
@@ -584,13 +660,30 @@
flash
-->
+
+
gameandwatch
@@ -623,6 +728,7 @@
Tiger Electronics Game.com
%ROMPATH%/gamecom
.tgc .TGC .7z .7Z .zip .ZIP
+ %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mame_libretro.so "gamecom -rompath %GAMEDIR%\;%ROMPATH%/gamecom -cartridge1 \"%ROMRAW%\""
%STARTDIR%=~/.mame %EMULATOR_MAME% -rompath %GAMEDIR%\;%ROMPATH%/gamecom gamecom -cartridge1 %ROM%
gamecom
gamecom
@@ -637,8 +743,9 @@
%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/genesis_plus_gx_wide_libretro.so %ROM%
%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/gearsystem_libretro.so %ROM%
%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/smsplus_libretro.so %ROM%
-
-
+
+
+
gamegear
gamegear
@@ -654,6 +761,7 @@
%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/tgbdual_libretro.so %ROM%
%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mesen-s_libretro.so %ROM%
+
%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/bsnes_libretro.so %ROM%
%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mgba_libretro.so %ROM%
@@ -673,6 +781,8 @@
%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/vba_next_libretro.so %ROM%
%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/gpsp_libretro.so %ROM%
+
+
gba
gba
@@ -688,6 +798,7 @@
%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/tgbdual_libretro.so %ROM%
%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mesen-s_libretro.so %ROM%
+
%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/bsnes_libretro.so %ROM%
%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mgba_libretro.so %ROM%
@@ -729,6 +840,7 @@
Hartung Game Master
%ROMPATH%/gmaster
.bin .BIN .7z .7Z .zip .ZIP
+ %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mame_libretro.so "gmaster -rompath %GAMEDIR%\;%ROMPATH%/gmaster -cart \"%ROMRAW%\""
%STARTDIR%=~/.mame %EMULATOR_MAME% -rompath %GAMEDIR%\;%ROMPATH%/gmaster gmaster -cart %ROM%
gmaster
gmaster
@@ -774,6 +886,18 @@
kodi
-->
+
+ laserdisc
+ LaserDisc Games
+ %ROMPATH%/laserdisc
+ .daphne .singe .7z .7Z .zip .ZIP
+
+
+ %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mame_libretro.so %ROM%
+
+ daphne, arcade
+ laserdisc
+
lcdgames
LCD Handheld Games
@@ -827,24 +951,17 @@
arcade
mame
+
mastersystem
Sega Master System
@@ -917,6 +1034,7 @@
mess
mess
+
model2
Sega Model 2
@@ -924,6 +1042,9 @@
.7z .7Z .zip .ZIP
%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mame_libretro.so %ROM%
%STARTDIR%=~/.mame %EMULATOR_MAME% -rompath %GAMEDIR%\;%ROMPATH%/model2 %BASENAME%
+
+
+
arcade
model2
@@ -1073,11 +1194,21 @@
arcade
naomi
+
+ naomi2
+ Sega NAOMI 2
+ %ROMPATH%/naomi2
+ .bin .BIN .dat .DAT .elf .ELF .lst .LST .7z .7Z .zip .ZIP
+ %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/flycast_libretro.so %ROM%
+
+ arcade
+ naomi2
+
naomigd
Sega NAOMI GD-ROM
%ROMPATH%/naomigd
- .cdi .CDI .iso .ISO .elf .ELF .bin .BIN .cue .CUE .gdi .GDI .lst .LST .dat .DAT .m3u .M3U .7z .7Z .zip .ZIP
+ .bin .BIN .dat .DAT .elf .ELF .lst .LST .7z .7Z .zip .ZIP
%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/flycast_libretro.so %ROM%
arcade
@@ -1093,6 +1224,7 @@
%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/melonds_libretro.so %ROM%
%EMULATOR_MELONDS% %ROM%
+
nds
nds
@@ -1137,8 +1269,9 @@
%ROMPATH%/nes
.fds .FDS .nes .NES .unf .UNF .unif .UNIF .7z .7Z .zip .ZIP
%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mesen_libretro.so %ROM%
+
%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/nestopia_libretro.so %ROM%
-
+
%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/fceumm_libretro.so %ROM%
%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/quicknes_libretro.so %ROM%
@@ -1148,6 +1281,20 @@
nes
nes
+
ngp
SNK Neo Geo Pocket
@@ -1216,8 +1363,9 @@
pc88
NEC PC-8800 Series
%ROMPATH%/pc88
- .d88 .D88 .u88 .U88 .m3u .M3U .7z .7Z .zip .ZIP
+ .88d .88D .cmt .CMT .d88 .D88 .m3u .M3U .t88 .T88 .u88 .U88
%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/quasi88_libretro.so %ROM%
+
pc88
pc88
@@ -1275,6 +1423,16 @@
pico8
pico8
+
+ plus4
+ Commodore Plus/4
+ %ROMPATH%/plus4
+ .bin .BIN .cmd .CMD .crt .CRT .d2m .D2M .d4m .D4M .d64 .D64 .d6z .D6Z .d71 .D71 .d7z .D7Z .d80 .D80 .d81 .D81 .d82 .D82 .d8z .D8Z .g41 .G41 .g4z .G4Z .g64 .G64 .g6z .G6Z .gz .GZ .lnx .LNX .m3u .M3U .nbz .NBZ .nib .NIB .p00 .P00 .prg .PRG .t64 .T64 .tap .TAP .vfl .VFL .vsf .VSF .x64 .X64 .x6z .X6Z .7z .7Z .zip .ZIP
+ %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/vice_xplus4_libretro.so %ROM%
+
+ plus4
+ plus4
+
pokemini
Nintendo Pokémon Mini
@@ -1298,11 +1456,12 @@
ps2
Sony PlayStation 2
%ROMPATH%/ps2
- %EMULATOR_PCSX2% -batch %ROM%
- .bin .BIN .chd .CHD .ciso .CISO .cso .CSO .dump .DUMP .elf .ELF .gz .GZ .m3u .M3U .mdf .MDF .img .IMG .iso .ISO .isz .ISZ .ngr .NRG
+ .arcadedef .bin .BIN .chd .CHD .ciso .CISO .cso .CSO .dump .DUMP .elf .ELF .gz .GZ .m3u .M3U .mdf .MDF .img .IMG .iso .ISO .isz .ISZ .ngr .NRG
+ %EMULATOR_PCSX2% -batch %ROM%
%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/pcsx2_libretro.so %ROM%
%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/pcsx2_libretro.so %ROM%
-
+
+
ps2
ps2
@@ -1337,7 +1496,7 @@
psp
psp
-
+
psx
Sony PlayStation
@@ -1412,6 +1571,8 @@
%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/bsnes_mercury_accuracy_libretro.so %ROM%
%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mesen-s_libretro.so %ROM%
+
+
satellaview
satellaview
@@ -1457,6 +1618,7 @@
Epoch Super Cassette Vision
%ROMPATH%/scv
.0 .bin .BIN .7z .7Z .zip .ZIP
+ %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mame_libretro.so "scv -rompath %GAMEDIR%\;%ROMPATH%/scv -cart \"%ROMRAW%\""
%STARTDIR%=~/.mame %EMULATOR_MAME% -rompath %GAMEDIR%\;%ROMPATH%/scv scv -cart %ROM%
scv
scv
@@ -1585,7 +1747,7 @@
snes
snesna
-
+
spectravideo
Spectravideo
@@ -1614,6 +1776,18 @@
stratagus
stratagus
+
+ stv
+ Sega Titan Video Game System
+ %ROMPATH%/stv
+ .7z .7Z .zip .ZIP
+ %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/kronos_libretro.so %ROM%
+
+
+
+ arcade
+ stv
+
sufami
Bandai SuFami Turbo
@@ -1650,6 +1824,18 @@
supervision
supervision
+
switch
Nintendo Switch
@@ -1665,9 +1851,12 @@
symbian
Symbian
%ROMPATH%/symbian
- .7z .7Z .zip .ZIP
- PLACEHOLDER %ROM%
- android
+ .sis .SIS .sisx .SISX .symbian
+ %EMULATOR_EKA2L1% --fullscreen --device RH-29 --run "%BASENAME%"
+ %EMULATOR_EKA2L1% --fullscreen --device RM-84 --run "%BASENAME%"
+ %EMULATOR_EKA2L1% --fullscreen --device RM-507 --run "%BASENAME%"
+ %EMULATOR_EKA2L1% --fullscreen --device %INJECT%=%BASENAME%.device --run "%BASENAME%"
+ ngage
symbian
uzebox
@@ -1800,7 +2010,7 @@
Visual Pinball
%ROMPATH%/vpinball
.vpt .VPT .vpx .VPX
- PLACEHOLDER %ROM%
+ %EMULATOR_VISUAL-PINBALL% -Minimized -Play %ROM%
vpinball
vpinball
@@ -1811,6 +2021,7 @@
VTech V.Smile
%ROMPATH%/vsmile
.bin .BIN .7z .7Z .zip .ZIP
+ %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mame_libretro.so "vsmile -rompath %GAMEDIR%\;%ROMPATH%/vsmile -cart \"%ROMRAW%\""
%STARTDIR%=~/.mame %EMULATOR_MAME% -rompath %GAMEDIR%\;%ROMPATH%/vsmile vsmile -cart %ROM%
vsmile
vsmile
@@ -1900,8 +2111,10 @@
xbox360
Microsoft Xbox 360
%ROMPATH%/xbox360
- . .iso .ISO .xex .XEX
- PLACEHOLDER %ROM%
+ . .desktop .iso .ISO .sh .xex .XEX
+ %STARTDIR%=%EMUDIR% %PRECOMMAND_WINE% %EMULATOR_XENIA-WINDOWS% %ROM%
+ %STARTDIR%=%EMUDIR% %PRECOMMAND_PROTON% %EMULATOR_XENIA-WINDOWS% %ROM%
+ %ENABLESHORTCUTS% %EMULATOR_OS-SHELL% %ROM%
xbox360
xbox360
diff --git a/functions/prepare_emulator.sh b/functions/prepare_emulator.sh
index f478f231..2eb1afa2 100644
--- a/functions/prepare_emulator.sh
+++ b/functions/prepare_emulator.sh
@@ -667,6 +667,41 @@ prepare_emulator() {
fi
fi
+ if [[ "$emulator" =~ ^(vita3k|Vita3K|all)$ ]]; then
+ # TODO: do a proper script
+ # This is just a placeholder script to test the emulator's flow
+ echo "----------------------"
+ echo "Initializing Vita3K"
+ echo "----------------------"
+
+ # extracting the emulator
+ # NOTE: the emulator is writing in "." so it must be placed in the rw filesystem. A symlink of the binary is already placed in /app/bin/Vita3K
+ rm -rf "/var/data/Vita3K"
+ mkdir -p "/var/data/Vita3K"
+ unzip "/app/retrodeck/vita3k.zip" -d "/var/data/Vita3K"
+ chmod +x "/var/data/Vita3K/Vita3K"
+ rm -f "/var/data/Vita3K/update-vita3k.sh"
+
+ # copying config file
+ cp -fvr "$emuconfigs/vita3k/config.yml" "/var/data/Vita3K"
+ # TODO: this step is to be done properly: Replacing RETRODECKHOMEDIR placeholder
+ sed -i 's#RETRODECKHOMEDIR#'$rdhome'#g' "/var/data/Vita3K/config.yml"
+
+ # copying vita user config
+ cp -fvr "$emuconfigs/vita3k/ux0" "$bios_folder/Vita3K/Vita3K"
+
+ # prep saves folder
+ dir_prep "$saves_folder/psvita/vita3k" "$bios_folder/Vita3K/Vita3K/ux0/user/00/savedata"
+
+ # Installing firmware
+ # TODO: at the moment this is here instead of a tool because it seems like it cannot run without Firmware
+ curl "http://dus01.psv.update.playstation.net/update/psv/image/2022_0209/rel_f2c7b12fe85496ec88a0391b514d6e3b/PSVUPDAT.PUP" -po /tmp/PSVUPDAT.PUP
+ curl "http://dus01.psp2.update.playstation.net/update/psp2/image/2019_0924/sd_8b5f60b56c3da8365b973dba570c53a5/PSP2UPDAT.PUP?dest=us" -po /tmp/PSP2UPDAT.PUP
+ Vita3K --firmware /tmp/PSVUPDAT.PUP
+ Vita3K --firmware /tmp/PSP2UPDAT.PUP
+
+ fi
+
if [[ "$emulator" =~ ^(mame|MAME|all)$ ]]; then
# TODO: do a proper script
# This is just a placeholder script to test the emulator's flow
diff --git a/tools/Lutris/shortcut.py b/functions/steam-sync/steam-sync.py
similarity index 99%
rename from tools/Lutris/shortcut.py
rename to functions/steam-sync/steam-sync.py
index 0d488713..eb696a29 100644
--- a/tools/Lutris/shortcut.py
+++ b/functions/steam-sync/steam-sync.py
@@ -274,6 +274,7 @@ STEAM_DATA_DIRS = (
"~/.local/share/Steam",
"~/.steam/steam",
"~/.var/app/com.valvesoftware.Steam/data/steam",
+ "~/.var/app/com.valvesoftware.Steam/data/Steam",
"/usr/share/steam",
"/usr/local/share/steam",
)
diff --git a/tools/Lutris/vdf/__init__.py b/functions/steam-sync/vdf/__init__.py
similarity index 100%
rename from tools/Lutris/vdf/__init__.py
rename to functions/steam-sync/vdf/__init__.py
diff --git a/tools/Lutris/vdf/vdict.py b/functions/steam-sync/vdf/vdict.py
similarity index 100%
rename from tools/Lutris/vdf/vdict.py
rename to functions/steam-sync/vdf/vdict.py
diff --git a/net.retrodeck.retrodeck.appdata.xml b/net.retrodeck.retrodeck.appdata.xml
index 57db832a..6e80f682 100644
--- a/net.retrodeck.retrodeck.appdata.xml
+++ b/net.retrodeck.retrodeck.appdata.xml
@@ -74,6 +74,20 @@
+
+ https://github.com/XargonWan/RetroDECK/releases/tag/0.7.3b
+
+ Updates:
+
+ - All standalone emulators
+ - EmulationStation Desktop Edition (ES-DE)
+
+ Known issues:
+
+ - Please check the know issues in the Wiki under General Infomration.
+
+
+
https://github.com/XargonWan/RetroDECK/releases/tag/0.7.2b
diff --git a/net.retrodeck.retrodeck.yml b/net.retrodeck.retrodeck.yml
index b554e117..78880ccd 100644
--- a/net.retrodeck.retrodeck.yml
+++ b/net.retrodeck.retrodeck.yml
@@ -1,11 +1,11 @@
app-id: net.retrodeck.retrodeck
runtime: org.kde.Platform
-runtime-version: 5.15-22.08
+runtime-version: "6.5"
sdk: org.kde.Sdk
sdk-extensions:
- - org.freedesktop.Sdk.Extension.llvm14 # Needed for rpcs3
-base: io.qt.qtwebengine.BaseApp # Needed for Yuzu
-base-version: 5.15-22.08 # Needed for Yuzu
+ - org.freedesktop.Sdk.Extension.llvm16 # Needed for rpcs3 (llvm15) but llvm16 for CITRA
+# base: io.qt.qtwebengine.BaseApp # Needed for Yuzu - Disabled as we're using AppImage for Yuzu
+# base-version: "6.5" # Needed for Yuzu - Disabled as we're using AppImage for Yuzu
command: retrodeck.sh
add-extensions:
@@ -27,6 +27,7 @@ finish-args:
- --filesystem=home
- --filesystem=/run/media
- --filesystem=/media
+ - --filesystem=home/.var/app/com.valvesoftware.Steam
- --allow=multiarch
- --talk-name=org.freedesktop.ScreenSaver
- --talk-name=org.freedesktop.PowerManagement.Inhibit
@@ -40,6 +41,8 @@ finish-args:
# It allows an SDL application to specify its window class, which can be useful for window managers and desktop environments to identify and group similar windows
- --env=SDL_VIDEO_X11_WMCLASS=net.retrodeck.retrodeck
- --env=SDL_VIDEO_WAYLAND_WMCLASS=net.retrodeck.retrodeck
+ # XEMU - Fixes issues with openSUSE systems, QEMU_AUDIO_DRV is defined as "pa" causing xemu to not launch
+ - --unset-env=QEMU_AUDIO_DRV
cleanup:
# ES-DE
@@ -61,13 +64,13 @@ cleanup:
# XMLSTARLET
- /lib/debug
- /share/runtime
-cleanup-commands:
+#cleanup-commands:
# Yuzu
- - /app/cleanup-BaseApp.sh
+ #- /app/cleanup-BaseApp.sh
modules:
- # dependency of: CEMU
+ # dependency of: CEMU, CITRA, DOLPHIN
- rd-submodules/shared-modules/libusb/libusb.json
# This module is used to define the RetroDECK version
@@ -76,16 +79,17 @@ modules:
# The version number is hardcoded in /app/retrodeck/version
#
# UPDATE STEPS FOR MAIN:
- # [X] Update the VERSION variable on line containing "VERSION=THISBRANCH"
- # [X] Update the appdata.xml with the version number and notes
+ # [ ] Update the VERSION variable on line containing "VERSION=THISBRANCH"
+ # [ ] Update the appdata.xml with the version number and notes
#
- name: version-initialization
buildsystem: simple
build-commands:
- |
- # on main please update this with the version variable, eg: VERSION='0.7.0b'
- VERSION=THISBRANCH
+ # on main please update this with the version variable, eg: VERSION='0.7.3b'
+ # on cooker will be THISBRANCH
+ VERSION=0.7.3b
git checkout ${GITHUB_REF_NAME}
mkdir -p ${FLATPAK_DEST}/retrodeck/
@@ -118,10 +122,10 @@ modules:
- ln -s "xml" "${FLATPAK_DEST}/bin/xmlstarlet" ||:
# mesa repo got a double certificate issue and gnutils cannot handle that so GLU download fails,
- # this affects even the shared-modules's glu so I have to replace it temporarly
+ # this affects even the shared-modules's libglu so I have to replace it temporarly
# more info there: https://gitlab.com/gnutls/gnutls/-/issues/1335
- # dependency of: CEMU
- - name: glu
+ # dependency of: RETROARCH, CEMU, RPCS3, XEMU
+ - name: libglu
buildsystem: meson
cleanup:
- /include
@@ -130,8 +134,16 @@ modules:
- /lib/*.a
sources:
- type: archive
- url: https://ftp.osuosl.org/pub/blfs/conglomeration/glu/glu-9.0.2.tar.xz
- sha256: 6e7280ff585c6a1d9dfcdf2fca489251634b3377bfc33c29e4002466a38d02d4
+ url: https://ftp.osuosl.org/pub/blfs/conglomeration/glu/glu-9.0.3.tar.xz
+ sha256: bd43fe12f374b1192eb15fe20e45ff456b9bc26ab57f0eee919f96ca0f8a330f
+ # - type: archive
+ # url: https://mesa.freedesktop.org/archive/glu/glu-9.0.3.tar.xz
+ # sha256: bd43fe12f374b1192eb15fe20e45ff456b9bc26ab57f0eee919f96ca0f8a330f
+ # x-checker-data:
+ # type: anitya
+ # project-id: 13518
+ # stable-only: true
+ # url-template: https://mesa.freedesktop.org/archive/glu/glu-$version.tar.xz
- name: libgudev
buildsystem: meson
@@ -219,24 +231,120 @@ modules:
url: https://github.com/mikefarah/yq/releases/download/v4.33.3/yq_linux_amd64
sha256: 4ee662847c588c3ef2fec8bfb304e8739e3dbaba87ccb9a608d691c88f5b64dc
- # dependency of: CEMU (13.0.0)
+ # dependency of: CEMU (13.1.1), CITRA (13.0.0)
- name: glslang
buildsystem: cmake-ninja
config-opts:
- -DCMAKE_BUILD_TYPE=Release
- -DENABLE_CTEST=OFF
+ # TODO: Does Cemu benefit from SPIRV-Tools-opt
+ - -DENABLE_OPT=OFF
cleanup:
- /include
- /lib/cmake
sources:
- type: archive
- url: https://github.com/KhronosGroup/glslang/archive/13.0.0.tar.gz
- sha256: bcda732434f829aa74414ea0e06d329ec8ac28637c38a0de45e17c8fd25a4715
+ url: https://github.com/KhronosGroup/glslang/archive/13.1.1.tar.gz
+ sha256: 1c4d0a5a38c8aaf89a2d7e6093be734320599f5a6775b2726beeb05b0c054e66
+ # url: https://github.com/KhronosGroup/glslang/archive/13.0.0.tar.gz
+ # sha256: bcda732434f829aa74414ea0e06d329ec8ac28637c38a0de45e17c8fd25a4715
x-checker-data:
type: anitya
stable-only: true
project-id: 205796
url-template: https://github.com/KhronosGroup/glslang/archive/$version.tar.gz
+ # - type: git
+ # url: https://github.com/KhronosGroup/SPIRV-Tools.git
+ # tag: sdk-1.3.261.1
+ # dest: External/spirv-tools
+ # - type: git
+ # url: https://github.com/KhronosGroup/SPIRV-Headers.git
+ # tag: sdk-1.3.261.1
+ # dest: External/spirv-tools/external/spirv-headers
+
+ # enables motion controls on non-wii controllers (switch, ps4, etc)
+ # dependency of: DOLPHIN, RPCS3
+ # TODO: requires a udev rule enabling Motion Sensors access
+ - name: libevdev
+ buildsystem: meson
+ config-opts:
+ - -Dtests=disabled
+ - -Ddocumentation=disabled
+ sources:
+ - type: archive
+ url: https://www.freedesktop.org/software/libevdev/libevdev-1.13.1.tar.xz
+ sha256: 06a77bf2ac5c993305882bc1641017f5bec1592d6d1b64787bad492ab34f2f36
+ x-checker-data:
+ type: anitya
+ project-id: 20540
+ stable-only: true
+ url-template: https://www.freedesktop.org/software/libevdev/libevdev-$version.tar.xz
+
+ # dependency of: CITRA, CEMU
+ - name: rapidjson
+ buildsystem: cmake-ninja
+ config-opts:
+ - -DRAPIDJSON_BUILD_DOC=OFF
+ - -DRAPIDJSON_BUILD_EXAMPLES=OFF
+ - -DRAPIDJSON_BUILD_TESTS=OFF
+ - -DRAPIDJSON_BUILD_THIRDPARTY_GTEST=OFF
+ cleanup:
+ - /include
+ - /lib/cmake
+ - /lib/pkgconfig
+ - /share/doc
+ sources:
+ - type: archive
+ url: https://github.com/Tencent/rapidjson/archive/refs/tags/v1.1.0.tar.gz
+ sha256: bf7ced29704a1e696fbccf2a2b4ea068e7774fa37f6d7dd4039d0787f8bed98e
+ x-checker-data:
+ type: anitya
+ project-id: 7422
+ stable-only: true
+ url-template: https://github.com/Tencent/rapidjson/archive/refs/tags/v$version.tar.gz
+
+ # dependency of: CEMU, SOLARUS
+ - name: glm
+ buildsystem: cmake-ninja
+ cleanup: ['*']
+ no-make-install: true
+ post-install:
+ - install -d ${FLATPAK_DEST}/include
+ - cp -R glm ${FLATPAK_DEST}/include
+ - cp -R cmake/glm ${FLATPAK_DEST}/lib/cmake
+ sources:
+ - type: archive
+ url: https://github.com/g-truc/glm/releases/download/0.9.9.8/glm-0.9.9.8.zip
+ sha256: 37e2a3d62ea3322e43593c34bae29f57e3e251ea89f4067506c94043769ade4c
+
+ # dependency of: CEMU, ES-DE
+ - name: pugixml
+ buildsystem: cmake-ninja
+ config-opts:
+ - -DBUILD_SHARED_LIBS=ON
+ cleanup:
+ - /include
+ - /lib/cmake
+ - /lib/pkgconfig
+ sources:
+ - type: archive
+ url: https://github.com/zeux/pugixml/releases/download/v1.14/pugixml-1.14.tar.gz
+ sha256: 2f10e276870c64b1db6809050a75e11a897a8d7456c4be5c6b2e35a11168a015
+ x-checker-data:
+ type: anitya
+ project-id: 3728
+ url-template: https://github.com/zeux/pugixml/releases/download/v$version/pugixml-$version.tar.gz
+
+ # dependency of: CEMU, RPCS3
+ - rd-submodules/shared-modules/glew/glew.json
+
+ # dependency of: XEMU, MelonDS
+ - name: libslirp
+ buildsystem: meson
+ sources:
+ - type: git
+ url: https://gitlab.freedesktop.org/slirp/libslirp.git
+ tag: v4.7.0
# ES-DE - START
# https://gitlab.com/es-de/emulationstation-de
@@ -273,24 +381,6 @@ modules:
- sed -i 's|-o root -g root ||' ./Makefile.gnu
- sed -i 's|/usr|/app|' ./Makefile.gnu
- # dependency of: CEMU
- - name: pugixml
- buildsystem: cmake-ninja
- config-opts:
- - -DBUILD_SHARED_LIBS=ON
- cleanup:
- - /include
- - /lib/cmake
- - /lib/pkgconfig
- sources:
- - type: archive
- url: https://github.com/zeux/pugixml/releases/download/v1.13/pugixml-1.13.tar.gz
- sha256: 40c0b3914ec131485640fa57e55bf1136446026b41db91c1bef678186a12abbe
- x-checker-data:
- type: anitya
- project-id: 3728
- url-template: https://github.com/zeux/pugixml/releases/download/v$version/pugixml-$version.tar.gz
-
- name: libgit2
buildsystem: cmake-ninja
config-opts:
@@ -330,7 +420,7 @@ modules:
sources:
- type: git
url: https://gitlab.com/es-de/emulationstation-de
- branch: 5545187d82fabf93256b7d176f39a0a98bcd6c54
+ branch: 77bf5ed8a03c5d065512cded36e4fb3bea90f4df
- type: shell
commands:
- sed -i 's#"EMULATIONSTATION-DE V" + Utils::String::toUpper(PROGRAM_VERSION_STRING)#"RetroDECK
@@ -543,10 +633,8 @@ modules:
- -DUSE_SYSTEM_FFMPEG=OFF
- -DUSE_SYSTEM_LIBZIP=ON
- -DUSE_SYSTEM_ZSTD=ON
-
- -DUSE_WAYLAND_WSI=ON
- -DUSING_QT_UI=OFF
-
- -DBUILD_TESTING=OFF
- -DOpenGL_GL_PREFERENCE=GLVND
build-options:
@@ -562,8 +650,8 @@ modules:
sources:
- type: git
url: &ppsspp-url https://github.com/hrydgard/ppsspp.git
- tag: v1.16.3
- commit: a9b6421dfde68be9d065b51e9d519699ce2e9053
+ tag: v1.16.6
+ commit: ba0ce344937d17e177ec8656ab957f6b82facdda
x-checker-data:
type: json
url: https://api.github.com/repos/hrydgard/ppsspp/releases/latest
@@ -602,43 +690,63 @@ modules:
- ln -s "${FLATPAK_DEST}/yuzu/usr/bin/yuzu" "${FLATPAK_DEST}/bin/yuzu"
sources:
- type: file
- url: https://github.com/yuzu-emu/yuzu-mainline/releases/download/mainline-0-1567/yuzu-mainline-20230923-ace91dd0c.AppImage
- sha256: 965bdfa63e713a0672fb5a037ecb527b4860600c6a2526f7c053bfe082b5a9d8
+ url: https://github.com/yuzu-emu/yuzu-mainline/releases/download/mainline-0-1618/yuzu-mainline-20231112-3cff94a38.AppImage
+ sha256: 4e92d6daeb1f288ca18950ed47b068fb971766ee386b012b9400b5caecad4246
# Yuzu - END
# CITRA - START
- # DO NOT UPDATE! WENT ON QT6
# https://github.com/flathub/org.citra_emu.citra
- rd-submodules/shared-modules/SDL2/SDL2-with-libdecor.json
+ - rd-submodules/shared-modules/SDL2/SDL2-with-libdecor.json
+
- name: citra
buildsystem: cmake-ninja
builddir: true
+ build-options:
+ env:
+ CI: '1'
+ GITHUB_ACTIONS: '1'
+ GITHUB_REPOSITORY: citra-emu/citra-nightly
+ GITHUB_REF_NAME: nightly-2025
+ append-path: /usr/lib/sdk/llvm16/bin
+ prepend-ld-library-path: /usr/lib/sdk/llvm16/lib
+ cflags: '-Wno-unused-command-line-argument'
+ cxxflags: '-Wno-unused-command-line-argument'
config-opts:
- '-DCMAKE_BUILD_TYPE=Release'
- - '-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON'
- - '-DENABLE_LTO=ON'
+ - '-DCMAKE_C_COMPILER=clang'
+ - '-DCMAKE_CXX_COMPILER=clang++'
+ - '-DCMAKE_LINKER=lld'
- '-DENABLE_QT_TRANSLATION=ON'
- '-DCITRA_ENABLE_COMPATIBILITY_REPORTING=ON'
+ - '-DUSE_DISCORD_PRESENCE=ON'
- '-DENABLE_COMPATIBILITY_LIST_DOWNLOAD=OFF'
- # - '-DENABLE_FFMPEG_VIDEO_DUMPER=ON'
- # FFMPEG VIDEO DUMPER was disabled because of this: https://github.com/citra-emu/citra/issues/5949
- '-DUSE_SYSTEM_SDL2=ON'
- - '-DCMAKE_POLICY_DEFAULT_CMP0069=NEW'
- - '-DENABLE_FDK=ON'
cleanup:
- /share/man
- /share/pixmaps
post-install:
- - install -Dm644 ../dist/citra.svg /app/share/icons/hicolor/scalable/apps/citra.svg
- - install -Dm644 ../dist/icon.png /app/share/icons/hicolor/512x512/apps/citra.png
+ - install -Dm755 ../citra-launcher.sh /app/bin/citra-launcher
+ - >-
+ install -Dm644 ../org.citra_emu.citra.svg
+ /app/share/icons/hicolor/scalable/apps/citra.svg
+ - >-
+ install -Dm644 ../dist/icon.png
+ /app/share/icons/hicolor/512x512/apps/citra.png
+ - >-
+ mv /app/share/mime/packages/citra.xml
+ /app/share/mime/packages/org.citra_emu.citra.xml
+ - >-
+ sed 's/citra/org.citra_emu.citra/g' -i
+ /app/share/mime/packages/org.citra_emu.citra.xml
sources:
- type: archive
url: >-
- https://github.com/citra-emu/citra-nightly/releases/download/nightly-1898/citra-unified-source-20230504-70335a7.tar.xz
- sha256: b320585bd8c4c075f63d3d9c74b830718e58fcf04d987a5dcead402a72abf753
+ https://github.com/citra-emu/citra-nightly/releases/download/nightly-2025/citra-unified-source-20231105-998b9a9.tar.xz
+ sha256: ebf52af66c6ef729688a29d093d9139baa76973b698c0630a295f38d126cf118
x-checker-data:
type: json
url: https://api.github.com/repos/citra-emu/citra-nightly/releases/latest
@@ -647,9 +755,10 @@ modules:
.assets[] | .browser_download_url |
match("https://.+citra-unified-source-.+.xz$") | .string
is-main-source: true
- - type: patch
- path: rd-submodules/citra/unified-source-compat.patch
-
+ - type: file
+ path: rd-submodules/citra/org.citra_emu.citra.svg
+ - type: file
+ path: rd-submodules/citra/citra-launcher.sh
# CITRA - END
@@ -668,62 +777,15 @@ modules:
- ln -s "${FLATPAK_DEST}/pcsx2-qt/usr/bin/pcsx2-qt" "${FLATPAK_DEST}/bin/pcsx2-qt"
sources:
- type: file
- url: https://github.com/PCSX2/pcsx2/releases/download/v1.7.5059/pcsx2-v1.7.5059-linux-appimage-x64-Qt.AppImage
- sha256: a51addc9bd15b77e842160acecb1f18486f8a024e5e73e8aea5de71de2b164c7
+ url: https://github.com/PCSX2/pcsx2/releases/download/v1.7.5186/pcsx2-v1.7.5186-linux-appimage-x64-Qt.AppImage
+ sha256: 9fd8108c11fd273a4a0c801a6ee2da802643966e61e0a53528f7dd023ece55dd
# PCSX2 - END
# Dolphin - START
- # DO NOT UPDATE! WENT ON QT6
# https://github.com/flathub/org.DolphinEmu.dolphin-emu
# WHEN UPADTING: remember to update rd-submodules/dolphin contents
- # needed for the emulate bluetooth adapter feature to work
- - name: bluez
- config-opts:
- - --enable-library
- - --disable-manpages
- - --disable-udev
- - --disable-tools
- - --disable-cups
- - --disable-monitor
- - --disable-client
- - --disable-systemd
- - --disable-a2dp
- - --disable-avrcp
- - --disable-network
- - --disable-obex
- - --disable-bap
- - --disable-mcp
- - --with-dbusconfdir=/app/etc
- - --with-dbussessionbusdir=/app/usr/lib/system-services
- sources:
- - type: archive
- url: https://www.kernel.org/pub/linux/bluetooth/bluez-5.66.tar.xz
- sha256: 39fea64b590c9492984a0c27a89fc203e1cdc74866086efb8f4698677ab2b574
- x-checker-data:
- type: anitya
- project-id: 10029
- stable-only: true
- url-template: https://www.kernel.org/pub/linux/bluetooth/bluez-$version.tar.xz
-
- # enables motion controls on non-wii controllers (switch, ps4, etc)
- # requires a udev rule enabling Motion Sensors access
- - name: libevdev
- buildsystem: meson
- config-opts:
- - -Dtests=disabled
- - -Ddocumentation=disabled
- sources:
- - type: archive
- url: https://www.freedesktop.org/software/libevdev/libevdev-1.13.0.tar.xz
- sha256: 9edf2006cc86a5055279647c38ec923d11a821ee4dc2c3033e8d20e8ee237cd9
- x-checker-data:
- type: anitya
- project-id: 20540
- stable-only: true
- url-template: https://www.freedesktop.org/software/libevdev/libevdev-$version.tar.xz
-
# needed for screensaver inhibition
- name: xdg-screensaver-shim
buildsystem: meson
@@ -751,7 +813,7 @@ modules:
# fatal: remote transport reported error
# url: ssh://git@github.com/dolphin-emu/dolphin.git
url: https://github.com/dolphin-emu/dolphin.git
- commit: 46b99671d9158e0ca840c1d8ef249db0f321ced7
+ commit: 032c77b462a220016f23c5079e71bb23e0ad2adf
x-checker-data:
type: json
url: https://dolphin-emu.org/update/latest/beta
@@ -846,8 +908,8 @@ modules:
sources:
- type: git
url: https://github.com/xemu-project/xemu.git
- tag: v0.7.98
- commit: 7bfb7c85378f64f93556c365ea0cc18cb2181dc8
+ tag: v0.7.116
+ commit: b3fc80b3a83fa99aeb541a0c665cfb596cedd71c
x-checker-data:
type: json
url: https://api.github.com/repos/xemu-project/xemu/releases/latest
@@ -871,15 +933,11 @@ modules:
# https://github.com/flathub/net.kuribo64.melonDS
# ちっちゃい、かわいい!
- - name: libslirp
- buildsystem: meson
- sources:
- - type: git
- url: https://gitlab.freedesktop.org/slirp/libslirp.git
- tag: v4.7.0
- name: melonds
buildsystem: cmake-ninja
builddir: true
+ config-opts:
+ - -DUSE_QT6=ON
build-options:
arch:
aarch64:
@@ -895,15 +953,8 @@ modules:
# MELONDS - END
# RPCS3 - START
- # DO NOT UPDATE! WENT ON QT6
# https://github.com/flathub/net.rpcs3.RPCS3
- # glu issue, check glu module for more info
- #- rd-submodules/shared-modules/glu/glu-9.json
-
- # dependency of: CEMU
- - rd-submodules/shared-modules/glew/glew.json
-
- name: rpcs3
buildsystem: cmake-ninja
builddir: true
@@ -924,14 +975,12 @@ modules:
ldflags: -fuse-ld=lld
config-opts:
- -DCMAKE_BUILD_TYPE=RelWithDebInfo
- #- -DBUILD_LLVM_SUBMODULE=ON this was replaced by the fllowing:
- -DBUILD_LLVM=OFF
- -DUSE_NATIVE_INSTRUCTIONS=OFF
- -DUSE_PRECOMPILED_HEADERS=OFF
- -DUSE_SDL=ON
- -DUSE_SYSTEM_CURL=ON
- # Disabled this to force RPCS3 to use our built FFMPEG
- - -DUSE_SYSTEM_FFMPEG=OFF
+ - -DUSE_SYSTEM_FFMPEG=OFF # Disabled this to force RPCS3 to use our built FFMPEG
- -DUSE_SYSTEM_LIBPNG=ON
- -DUSE_SYSTEM_SDL=ON
- -DUSE_SYSTEM_ZLIB=ON
@@ -940,14 +989,13 @@ modules:
- cp /usr/lib/sdk/llvm16/lib/libLLVM-16.so /app/lib/
- |-
set -eux
-
COMM_TAG="$(awk -F'[\{,]' '/version{.*}/{printf "%d.%d.%d", $2, $3, $4}' ../rpcs3/rpcs3_version.cpp)"
COMM_COUNT="$(git rev-list --count HEAD)";
COMM_HASH="$(git rev-parse --short=8 HEAD)";
sources:
- type: git
url: https://github.com/RPCS3/rpcs3.git
- commit: a828c214b5c0b87b81fcd13ff3c1e952c9a5d6dd
+ commit: 75d239356a773b8211354049477d79006597505e
# RPCS3 - END
@@ -962,24 +1010,27 @@ modules:
- -DENABLE_SDL=ON
- -DENABLE_EVDEV=ON
- -DDISTRIBUTOR=Flathub
+ - -DQT_DIR=
cleanup:
- /share/man
post-install:
- install -D primehack-wrapper /app/bin/primehack-wrapper
sources:
- type: git
- url: https://github.com/TheDrifter363/primehack.git
- commit: 6295c695307a67f11ee202b05cbdd7b5c1edae5c
+ url: https://github.com/XargonWan/primehack
+ commit: af7710ef7b04a632b4294eae5e0eff8fe9c4d1f8
+ #url: https://github.com/TheDrifter363/primehack.git
+ #commit: 6295c695307a67f11ee202b05cbdd7b5c1edae5c
# detects whether dolphin is running in a flatpak sandbox
# and makes it use xdg directories if it is.
# prevents dolphin from attempting to write conf files
# in non-writable paths, typically happens when a user
# has leftover files from a previous non-flatpak install
- type: patch
- path: rd-submodules/dolphin/detectflatpak.patch
+ path: rd-submodules/primehack/detectflatpak.patch
# version strings must match exactly for online multiplayer
- type: patch
- path: rd-submodules/dolphin/nodirtyversion.patch
+ path: rd-submodules/primehack/nodirtyversion.patch
- type: script
commands:
- for i in {0..9}; do
@@ -1009,7 +1060,6 @@ modules:
# Duckstation-AppImage - END
# Cemu - START
- # LATEST BUILD BEFORE RUNTIME 23.08
# https://github.com/cemu-project/Cemu/releases
# https://github.com/flathub/info.cemu.Cemu
@@ -1067,41 +1117,6 @@ modules:
project-id: 10649
url-template: https://libzip.org/download/libzip-$version.tar.xz
- - name: rapidjson
- buildsystem: cmake-ninja
- config-opts:
- - -DRAPIDJSON_BUILD_DOC=OFF
- - -DRAPIDJSON_BUILD_EXAMPLES=OFF
- - -DRAPIDJSON_BUILD_TESTS=OFF
- - -DRAPIDJSON_BUILD_THIRDPARTY_GTEST=OFF
- cleanup:
- - /include
- - /lib/cmake
- - /lib/pkgconfig
- - /share/doc
- sources:
- - type: archive
- url: https://github.com/Tencent/rapidjson/archive/refs/tags/v1.1.0.tar.gz
- sha256: bf7ced29704a1e696fbccf2a2b4ea068e7774fa37f6d7dd4039d0787f8bed98e
- x-checker-data:
- type: anitya
- project-id: 7422
- stable-only: true
- url-template: https://github.com/Tencent/rapidjson/archive/refs/tags/v$version.tar.gz
-
- - name: glm
- buildsystem: cmake-ninja
- cleanup: ['*']
- no-make-install: true
- post-install:
- - install -d ${FLATPAK_DEST}/include
- - cp -R glm ${FLATPAK_DEST}/include
- - cp -R cmake/glm ${FLATPAK_DEST}/lib/cmake
- sources:
- - type: archive
- url: https://github.com/g-truc/glm/releases/download/0.9.9.8/glm-0.9.9.8.zip
- sha256: 37e2a3d62ea3322e43593c34bae29f57e3e251ea89f4067506c94043769ade4c
-
- name: fmt
buildsystem: cmake-ninja
config-opts:
@@ -1150,8 +1165,8 @@ modules:
x-checker-data:
type: git
tag-pattern: ^v([\d.]+-\d+)$
- tag: v2.0-47
- commit: 85aa4f095b119e98620451a0c19c80f656d944a6
+ tag: v2.0-59
+ commit: f3c95f72e74d8a5f5873061fbb994643c63ec9c5
- type: shell
commands:
- sed "s/set(EXPERIMENTAL_VERSION.*/set(EXPERIMENTAL_VERSION \"$(git describe
@@ -1199,89 +1214,83 @@ modules:
# Cemu - END
- # Ryujinx - START
- # https://github.com/flathub/org.ryujinx.Ryujinx
+ # Vita3K - START
+ # Vita3K is writing some files in its own directory
+ # So that is placed in /var/data/Vita3K and not in the readonly filesystem
+ # This module is just fetching the file so it will be unique for this build
- - name: Ryujinx
- buildsystem: simple
- build-options:
- no-debuginfo: true
- no-debuginfo-compression: true
- strip: false
- arch:
- x86_64:
- env:
- RUNTIME: linux-x64
- env:
- PKG_CONFIG_PATH: /app/lib/pkgconfig:/app/share/pkgconfig:/usr/lib/pkgconfig:/usr/share/pkgconfig
- DOTNET_CLI_TELEMETRY_OPTOUT: 'true'
- DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 'true'
- RYUJINX_VERSION: 1.1.1014
- RYUJINX_TARGET_RELEASE_CHANNEL_OWNER: flathub
- RYUJINX_TARGET_RELEASE_CHANNEL_REPO: org.ryujinx.Ryujinx
- RYUJINX_TARGET_RELEASE_CHANNEL_NAME: master
- build-commands:
- - |
- export PATH=$PATH:/run/build/Ryujinx/dotnet-sdk
- export RYUJINX_GIT_SHORT_HASH=$(git rev-parse --short HEAD)
- export RUNTIME_FRAMEWORK_VERSION=$(find nuget-sources -name 'microsoft.netcore.app.host.linux-x64.*' | grep -oP '(\d.\d.\d+.nupkg)' | grep -oP '(\d.\d.\d+)')
- sed -r --in-place "s/\%\%RYUJINX_BUILD_VERSION\%\%/$RYUJINX_VERSION/g;" src/Ryujinx.Common/ReleaseInformation.cs
- sed -r --in-place "s/\%\%RYUJINX_BUILD_GIT_HASH\%\%/$RYUJINX_GIT_SHORT_HASH/g;" src/Ryujinx.Common/ReleaseInformation.cs
- sed -r --in-place "s/\%\%RYUJINX_TARGET_RELEASE_CHANNEL_NAME\%\%/$RYUJINX_TARGET_RELEASE_CHANNEL_NAME/g;" src/Ryujinx.Common/ReleaseInformation.cs
- sed -r --in-place "s/\%\%RYUJINX_TARGET_RELEASE_CHANNEL_OWNER\%\%/$RYUJINX_TARGET_RELEASE_CHANNEL_OWNER/g;" src/Ryujinx.Common/ReleaseInformation.cs
- sed -r --in-place "s/\%\%RYUJINX_TARGET_RELEASE_CHANNEL_REPO\%\%/$RYUJINX_TARGET_RELEASE_CHANNEL_REPO/g;" src/Ryujinx.Common/ReleaseInformation.cs
- mkdir -p /app/bin
- dotnet publish -c Release -r $RUNTIME /p:DebugType=embedded src/Ryujinx /p:Version=$RYUJINX_VERSION /p:SourceRevisionId=$RYUJINX_GIT_SHORT_HASH /p:ExtraDefineConstants="DISABLE_UPDATER%2CFORCE_EXTERNAL_BASE_DIR" /p:RuntimeFrameworkVersion=$RUNTIME_FRAMEWORK_VERSION --self-contained --source nuget-sources
- if [ $? -ne 0 ]; then
- exit 1;
- fi;
- cp -r --remove-destination /run/build/Ryujinx/src/Ryujinx/bin/Release/net7.0/$RUNTIME/publish/* /app/bin/
- chmod +x /app/bin/Ryujinx.sh
- mkdir -p /app/lib/ffmpeg
- ln -s /usr/lib/x86_64-linux-gnu/libX11.so.6 /app/lib/libX11.so
- install -Dm755 ryujinx-wrapper /app/bin/ryujinx-wrapper
- install -Dm644 distribution/misc/Logo.svg /app/share/icons/hicolor/scalable/apps/ryujinx.svg
- sources:
- - type: archive
- only-arches:
- - x86_64
- dest: dotnet-sdk
- url: https://dotnetcli.azureedge.net/dotnet/Sdk/7.0.401/dotnet-sdk-7.0.401-linux-x64.tar.gz
- sha256: 4634fa4da7ae4e3dadb83e320a87fb26f0cb12a7ca02bf9f10e6c3c1c91d645c
- x-checker-data:
- type: rotating-url
- url: https://aka.ms/dotnet/7.0/dotnet-sdk-linux-x64.tar.gz
- pattern: https://dotnetcli.azureedge.net/dotnet/Sdk/^([\d\.a-z-]+)$/dotnet-sdk-^([\d\.a-z-]+)$-linux-x64.tar.gz
- - rd-submodules/ryujinx/nuget_sources.json
- - type: git
- url: https://github.com/Ryujinx/Ryujinx.git
- commit: 7ccff037e87f82f3461f3e1422235e29800eaa2f
- - type: file
- path: rd-submodules/ryujinx/ryujinx-wrapper
-
- # Ryujinx - END
-
- # MAME - Start
- # https://sdlmame.wallyweek.org/download/
-
- - name: mame
+ - name: vita3k
buildsystem: simple
build-commands:
- - ar xv mame*.deb
- - tar xvf control.tar.zst
- - tar xvf data.tar.zst
- - rm -rf usr/share/[applications,docs,games]
- - cp -r etc ${FLATPAK_DEST}
- - cp -r usr ${FLATPAK_DEST}
- - mkdir -p ${FLATPAK_DEST}/bin
- - ln -s ${FLATPAK_DEST}/usr/games/mame ${FLATPAK_DEST}/bin/mame
- - chmod +x ${FLATPAK_DEST}/bin/mame
+ # Creating an empty symlink that will point to Vita3K binary
+ - ln -s /var/data/Vita3K/Vita3K ${FLATPAK_DEST}/bin/Vita3K
+ # Copying the user icon
+ - mkdir -p ${FLATPAK_DEST}/retrodeck
+ - cp retrodeck.png ${FLATPAK_DEST}/retrodeck
+ # preparing the vita3k zip for later
+ - mv ubuntu-latest.zip ${FLATPAK_DEST}/retrodeck/vita3k.zip
sources:
- type: file
- url: https://launchpad.net/~c.falco/+archive/mame/+files/mame_0.258+dfsg.1-0ubuntu1~ppa1~lunar1_amd64.deb
- sha256: f464a000b286cccc78b3792909edcbdda0f4c8315532f75a108eb07752bc805f
+ url: https://github.com/Vita3K/Vita3K/releases/download/continuous/ubuntu-latest.zip
+ sha256: VITA3KSHAPLACEHOLDER
+ - type: file
+ path: res/retrodeck.png
- # MAME - End
+ # Vita3K - END
+
+ # SOLARUS - START
+ # https://github.com/flathub/org.solarus_games.solarus.Launcher
+
+ - name: luajit
+ no-autogen: true
+ cleanup:
+ - /bin
+ - /lib/*.a
+ - /include
+ - /lib/pkgconfig
+ - /share/man
+ sources:
+ - type: archive
+ url: https://luajit.org/download/LuaJIT-2.0.5.tar.gz
+ sha256: 874b1f8297c697821f561f9b73b57ffd419ed8f4278c82e05b48806d30c1e979
+ - type: shell
+ commands:
+ - sed -i 's|/usr/local|/app|' ./Makefile
+
+ - name: libmodplug
+ cleanup:
+ - /include
+ sources:
+ - type: archive
+ url: https://download.sourceforge.net/project/modplug-xmms/libmodplug/0.8.9.0/libmodplug-0.8.9.0.tar.gz
+ sha512: 880e10154fd367ee24ace53ca7e32a5c1fee7dfff1f934e6499944c12779427da63e2f55f8d6ce25db0a42a5b4424053bf64305b31dbfc4ef6a8909924d655fd
+
+ - name: physfs
+ buildsystem: cmake-ninja
+ config-opts:
+ - -DPHYSFS_BUILD_TEST=OFF
+ sources:
+ - type: archive
+ url: https://icculus.org/physfs/downloads/physfs-3.0.2.tar.bz2
+ sha256: 304df76206d633df5360e738b138c94e82ccf086e50ba84f456d3f8432f9f863
+ size: 194888
+ x-checker-data:
+ type: anitya
+ project-id: 3631
+ url-template: https://icculus.org/physfs/downloads/physfs-$version.tar.bz2
+
+ - name: solarus
+ buildsystem: cmake-ninja
+ builddir: true
+ config-opts:
+ - -DSOLARUS_GUI=OFF
+ sources:
+ - type: git
+ url: https://gitlab.com/solarus-games/solarus.git
+ tag: v1.6.5
+ commit: 3aec70b0556a8d7aed7903d1a3e4d9a18c5d1649
+
+ # SOLARUS - END
# External manifests end
@@ -1320,7 +1329,7 @@ modules:
# Function libraries
- mkdir -p /app/libexec
- - cp -r functions/* "/app/libexec/"
+ - cp -r functions/** "/app/libexec/"
# Desktop entries
- cp net.retrodeck.retrodeck.desktop /app/share/applications/net.retrodeck.retrodeck.desktop
diff --git a/old/removed-modules.yml b/old/removed-modules.yml
index 968982ed..43d5cab3 100644
--- a/old/removed-modules.yml
+++ b/old/removed-modules.yml
@@ -129,26 +129,64 @@
# Ryujinx Appimage - END
- # Vita3K - START
- # Very broken, disabled
- # NOTE: this is a continuos release, it's provided but not supported
- # to update this module:
- # wget https://github.com/Vita3K/Vita3K/releases/download/continuous/ubuntu-latest.zip -O rd-submodules/vita3k/vita3k-14-01-23.zip
- # sha256sum rd-submodules/vita3k/vita3k*.zip
- # change url and sha
- # check the branch in the url
+ # Ryujinx - START
+ # https://github.com/flathub/org.ryujinx.Ryujinx
- # - name: Vita3K
- # buildsystem: simple
- # build-commands:
- # - |
- # mkdir -p ${FLATPAK_DEST}/vita3k
- # cp -r * ${FLATPAK_DEST}/vita3k
- # chmod +x ${FLATPAK_DEST}/vita3k/Vita3K
- # ln -s ${FLATPAK_DEST}/vita3k/Vita3K /app/bin/Vita3K
- # sources:
- # - type: archive
- # url: https://github.com/Vita3K/Vita3K/releases/download/continuous/ubuntu-latest.zip
- # sha256: VITASHAPLACEHOLDER
+ - name: Ryujinx
+ buildsystem: simple
+ build-options:
+ no-debuginfo: true
+ no-debuginfo-compression: true
+ strip: false
+ arch:
+ x86_64:
+ env:
+ RUNTIME: linux-x64
+ env:
+ PKG_CONFIG_PATH: /app/lib/pkgconfig:/app/share/pkgconfig:/usr/lib/pkgconfig:/usr/share/pkgconfig
+ DOTNET_CLI_TELEMETRY_OPTOUT: 'true'
+ DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 'true'
+ RYUJINX_VERSION: 1.1.1014
+ RYUJINX_TARGET_RELEASE_CHANNEL_OWNER: flathub
+ RYUJINX_TARGET_RELEASE_CHANNEL_REPO: org.ryujinx.Ryujinx
+ RYUJINX_TARGET_RELEASE_CHANNEL_NAME: master
+ build-commands:
+ - |
+ export PATH=$PATH:/run/build/Ryujinx/dotnet-sdk
+ export RYUJINX_GIT_SHORT_HASH=$(git rev-parse --short HEAD)
+ export RUNTIME_FRAMEWORK_VERSION=$(find nuget-sources -name 'microsoft.netcore.app.host.linux-x64.*' | grep -oP '(\d.\d.\d+.nupkg)' | grep -oP '(\d.\d.\d+)')
+ sed -r --in-place "s/\%\%RYUJINX_BUILD_VERSION\%\%/$RYUJINX_VERSION/g;" src/Ryujinx.Common/ReleaseInformation.cs
+ sed -r --in-place "s/\%\%RYUJINX_BUILD_GIT_HASH\%\%/$RYUJINX_GIT_SHORT_HASH/g;" src/Ryujinx.Common/ReleaseInformation.cs
+ sed -r --in-place "s/\%\%RYUJINX_TARGET_RELEASE_CHANNEL_NAME\%\%/$RYUJINX_TARGET_RELEASE_CHANNEL_NAME/g;" src/Ryujinx.Common/ReleaseInformation.cs
+ sed -r --in-place "s/\%\%RYUJINX_TARGET_RELEASE_CHANNEL_OWNER\%\%/$RYUJINX_TARGET_RELEASE_CHANNEL_OWNER/g;" src/Ryujinx.Common/ReleaseInformation.cs
+ sed -r --in-place "s/\%\%RYUJINX_TARGET_RELEASE_CHANNEL_REPO\%\%/$RYUJINX_TARGET_RELEASE_CHANNEL_REPO/g;" src/Ryujinx.Common/ReleaseInformation.cs
+ mkdir -p /app/bin
+ dotnet publish -c Release -r $RUNTIME /p:DebugType=embedded src/Ryujinx /p:Version=$RYUJINX_VERSION /p:SourceRevisionId=$RYUJINX_GIT_SHORT_HASH /p:ExtraDefineConstants="DISABLE_UPDATER%2CFORCE_EXTERNAL_BASE_DIR" /p:RuntimeFrameworkVersion=$RUNTIME_FRAMEWORK_VERSION --self-contained --source nuget-sources
+ if [ $? -ne 0 ]; then
+ exit 1;
+ fi;
+ cp -r --remove-destination /run/build/Ryujinx/src/Ryujinx/bin/Release/net7.0/$RUNTIME/publish/* /app/bin/
+ chmod +x /app/bin/Ryujinx.sh
+ mkdir -p /app/lib/ffmpeg
+ ln -s /usr/lib/x86_64-linux-gnu/libX11.so.6 /app/lib/libX11.so
+ install -Dm755 ryujinx-wrapper /app/bin/ryujinx-wrapper
+ install -Dm644 distribution/misc/Logo.svg /app/share/icons/hicolor/scalable/apps/ryujinx.svg
+ sources:
+ - type: archive
+ only-arches:
+ - x86_64
+ dest: dotnet-sdk
+ url: https://dotnetcli.azureedge.net/dotnet/Sdk/7.0.401/dotnet-sdk-7.0.401-linux-x64.tar.gz
+ sha256: 4634fa4da7ae4e3dadb83e320a87fb26f0cb12a7ca02bf9f10e6c3c1c91d645c
+ x-checker-data:
+ type: rotating-url
+ url: https://aka.ms/dotnet/7.0/dotnet-sdk-linux-x64.tar.gz
+ pattern: https://dotnetcli.azureedge.net/dotnet/Sdk/^([\d\.a-z-]+)$/dotnet-sdk-^([\d\.a-z-]+)$-linux-x64.tar.gz
+ - rd-submodules/ryujinx/nuget_sources.json
+ - type: git
+ url: https://github.com/Ryujinx/Ryujinx.git
+ commit: 7ccff037e87f82f3461f3e1422235e29800eaa2f
+ - type: file
+ path: rd-submodules/ryujinx/ryujinx-wrapper
- # Vita3K - END
\ No newline at end of file
+ # Ryujinx - END
\ No newline at end of file
diff --git a/rd-submodules/SDL2-no-libdecor.json b/rd-submodules/SDL2-no-libdecor.json
deleted file mode 100644
index f101d4b0..00000000
--- a/rd-submodules/SDL2-no-libdecor.json
+++ /dev/null
@@ -1,22 +0,0 @@
-{
- "name": "SDL2",
- "buildsystem": "autotools",
- "config-opts": ["--disable-static"],
- "sources": [
- {
- "type": "archive",
- "url": "https://github.com/libsdl-org/SDL/archive/refs/tags/release-2.26.3.tar.gz",
- "sha256": "af0ff86e4a268bc12c915a0ea19ea1a16419ab1426d92bad5f4e26eb31583967"
- }
- ],
- "cleanup": [ "/bin/sdl2-config",
- "/include",
- "/lib/libSDL2.la",
- "/lib/libSDL2main.a",
- "/lib/libSDL2main.la",
- "/lib/libSDL2_test.a",
- "/lib/libSDL2_test.la",
- "/lib/cmake",
- "/share/aclocal",
- "/lib/pkgconfig"]
-}
diff --git a/rd-submodules/citra/citra-launcher.sh b/rd-submodules/citra/citra-launcher.sh
new file mode 100644
index 00000000..33b95cfb
--- /dev/null
+++ b/rd-submodules/citra/citra-launcher.sh
@@ -0,0 +1,25 @@
+#!/bin/bash -e
+
+report_error() {
+ read -r -d '|' MESSAGE <https://github.com/flathub/org.citra_emu.citra/issues.
+
+When submitting a bug report, please attach your system information and the Citra log file.
+You seem to be using ${XDG_SESSION_DESKTOP} ${DESKTOP_SESSION} (${XDG_SESSION_TYPE}):
+To obtain Citra log files, please see this guide.
+To obtain your system information, please install inxi and run inxi -v3. |
+EOF
+ zenity --warning --no-wrap --title "That's awkward ..." --text "$MESSAGE"
+}
+
+unset VK_ICD_FILENAMES VK_DRIVER_FILES
+# Discord RPC
+for i in {0..9}; do
+ test -S "$XDG_RUNTIME_DIR"/"discord-ipc-$i" || ln -sf {app/com.discordapp.Discord,"$XDG_RUNTIME_DIR"}/"discord-ipc-$i";
+done
+
+
+if ! prlimit --nofile=8192 citra-qt "$@"; then
+ report_error
+fi
\ No newline at end of file
diff --git a/rd-submodules/citra/org.citra_emu.citra.svg b/rd-submodules/citra/org.citra_emu.citra.svg
new file mode 100644
index 00000000..8fa09944
--- /dev/null
+++ b/rd-submodules/citra/org.citra_emu.citra.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/rd-submodules/citra/unified-source-compat.patch b/rd-submodules/citra/unified-source-compat.patch
deleted file mode 100644
index 6a1ca47c..00000000
--- a/rd-submodules/citra/unified-source-compat.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 710f3fcfb..e5f4f4687 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -94,7 +94,11 @@ function(check_submodules_present)
- endif()
- endforeach()
- endfunction()
--check_submodules_present()
-+
-+if (EXISTS "${PROJECT_SOURCE_DIR}/.git/objects")
-+ # only check submodules when source is obtained via Git
-+ check_submodules_present()
-+endif()
-
- configure_file(${PROJECT_SOURCE_DIR}/dist/compatibility_list/compatibility_list.qrc
- ${PROJECT_BINARY_DIR}/dist/compatibility_list/compatibility_list.qrc
-diff --git a/CMakeModules/GenerateSCMRev.cmake b/CMakeModules/GenerateSCMRev.cmake
-index a011c6cbf..87e9eef35 100644
---- a/CMakeModules/GenerateSCMRev.cmake
-+++ b/CMakeModules/GenerateSCMRev.cmake
-@@ -6,15 +6,27 @@ endfunction()
-
- list(APPEND CMAKE_MODULE_PATH "${SRC_DIR}/externals/cmake-modules")
-
--# Find the package here with the known path so that the GetGit commands can find it as well
--find_package(Git QUIET PATHS "${GIT_EXECUTABLE}")
--
- # generate git/build information
--include(GetGitRevisionDescription)
--get_git_head_revision(GIT_REF_SPEC GIT_REV)
--git_describe(GIT_DESC --always --long --dirty)
--git_branch_name(GIT_BRANCH)
- get_timestamp(BUILD_DATE)
-+if (EXISTS "${SRC_DIR}/.git/objects")
-+ # Find the package here with the known path so that the GetGit commands can find it as well
-+ find_package(Git QUIET PATHS "${GIT_EXECUTABLE}")
-+ # only use Git to check revision info when source is obtained via Git
-+ include(GetGitRevisionDescription)
-+ get_git_head_revision(GIT_REF_SPEC GIT_REV)
-+ git_describe(GIT_DESC --always --long --dirty)
-+ git_branch_name(GIT_BRANCH)
-+elseif(EXISTS "${SRC_DIR}/GIT-COMMIT" AND EXISTS "${SRC_DIR}/GIT-TAG")
-+ # unified source archive
-+ file(READ "${SRC_DIR}/GIT-COMMIT" GIT_REV_RAW LIMIT 64)
-+ string(STRIP "${GIT_REV_RAW}" GIT_REV)
-+ string(SUBSTRING "${GIT_REV_RAW}" 0 9 GIT_DESC)
-+ set(GIT_BRANCH "HEAD")
-+else()
-+ # self-packed archive?
-+ set(GIT_DESC "UNKNOWN")
-+ set(GIT_BRANCH "UNKNOWN")
-+endif()
-
- # Generate cpp with Git revision from template
- # Also if this is a CI build, add the build name (ie: Nightly, Canary) to the scm_rev file as well
\ No newline at end of file
diff --git a/rd-submodules/dolphin/nodirtyversion.patch b/rd-submodules/dolphin/nodirtyversion.patch
index f20ae789..2dacc209 100644
--- a/rd-submodules/dolphin/nodirtyversion.patch
+++ b/rd-submodules/dolphin/nodirtyversion.patch
@@ -1,8 +1,8 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 9af66009a1..2acd3bed9a 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -149,7 +149,7 @@ if(GIT_FOUND)
+diff --git a/CMake/ScmRevGen.cmake b/CMake/ScmRevGen.cmake
+index aacf7491ce..503791cda8 100644
+--- a/CMake/ScmRevGen.cmake
++++ b/CMake/ScmRevGen.cmake
+@@ -7,7 +7,7 @@ if(GIT_FOUND)
OUTPUT_VARIABLE DOLPHIN_WC_REVISION
OUTPUT_STRIP_TRAILING_WHITESPACE)
# defines DOLPHIN_WC_DESCRIBE
diff --git a/rd-submodules/es-de/GuiThemeDownloader.cpp.patch b/rd-submodules/es-de/GuiThemeDownloader.cpp.patch
new file mode 100644
index 00000000..8dd35293
--- /dev/null
+++ b/rd-submodules/es-de/GuiThemeDownloader.cpp.patch
@@ -0,0 +1,10 @@
+diff -au1r emulationstation-de/es-app/src/guis/GuiThemeDownloader.cpp emulationstation-de/es-app/src/guis/GuiThemeDownloader.cpp
+--- emulationstation-de/es-app/src/guis/GuiThemeDownloader.cpp 2023-11-03 16:25:01.115126901 +0100
++++ emulationstation-de/es-app/src/guis/GuiThemeDownloader.cpp 2023-11-03 16:26:18.882607724 +0100
+@@ -602,4 +602,4 @@
+ getHelpStyle(),
+- "IT SEEMS AS IF YOU'RE NOT RUNNING THE LATEST ES-DE RELEASE, PLEASE UPGRADE BEFORE "
+- "PROCEEDING AS THESE THEMES MAY NOT BE COMPATIBLE WITH YOUR VERSION",
++ "ES-DE THEME ENGINE WAS UPDATED UPSTREAM. THESE THEMES MAY NOT BE COMPATIBLE WITH THE CURRENT RETRODECK VERSION."
++ "CHECK IF A NEW RETRODECK UPDATE IS AVAILABLE, ELSE PLEASE WAIT FOR IT OR PROCEED AT YOUR OWN RISK.",
+ "OK", [] { return; }, "", nullptr, "", nullptr, nullptr, true));
diff --git a/rd-submodules/es-de/ViewController.cpp.patch b/rd-submodules/es-de/ViewController.cpp.patch
index 2f485a31..8d677c37 100644
--- a/rd-submodules/es-de/ViewController.cpp.patch
+++ b/rd-submodules/es-de/ViewController.cpp.patch
@@ -1,22 +1,7 @@
diff -au1r emulationstation-de/es-app/src/views/ViewController.cpp emulationstation-de/es-app/src/views/ViewController.cpp
---- emulationstation-de/es-app/src/views/ViewController.cpp 2023-08-23 13:12:15.625292630 +0200
-+++ emulationstation-de/es-app/src/views/ViewController.cpp 2023-08-23 14:29:23.547223951 +0200
-@@ -164,9 +164,7 @@
- {
-- mNoGamesErrorMessage = "NO GAME FILES WERE FOUND. EITHER PLACE YOUR GAMES IN "
-- "THE CURRENTLY CONFIGURED ROM DIRECTORY OR CHANGE "
-- "ITS PATH USING THE BUTTON BELOW. OPTIONALLY THE ROM "
-- "DIRECTORY STRUCTURE CAN BE GENERATED WHICH WILL "
-- "CREATE A TEXT FILE FOR EACH SYSTEM PROVIDING SOME "
-- "INFORMATION SUCH AS THE SUPPORTED FILE EXTENSIONS.\n"
-- "THIS IS THE CURRENTLY CONFIGURED ROM DIRECTORY:\n";
-+ mNoGamesErrorMessage = "RETRODECK COULD NOT FIND ANY ROM FILES. "
-+ "PLEASE PLACE YOUR ROM FILES INTO THE APPROPRIATE "
-+ "SYSTEM SUBFOLDER IN THE CONFIGURED ROM DIRECTORY "
-+ "AND RUN RETRODECK AGAIN TO SCAN YOUR LIBRARY.\n"
-+ "THE CURRENTLY CONFIGURED ROM DIRECTORY IS:\n";
-
-@@ -179,90 +177,3 @@
+--- emulationstation-de/es-app/src/views/ViewController.cpp 2023-11-04 15:09:24.332178777 -0400
++++ emulationstation-de/es-app/src/views/ViewController.cpp 2023-11-04 15:13:59.015780009 -0400
+@@ -195,91 +195,3 @@
mNoGamesMessageBox = new GuiMsgBox(
- HelpStyle(), mNoGamesErrorMessage + mRomDirectory, "CHANGE ROM DIRECTORY",
- [this] {
@@ -29,22 +14,24 @@ diff -au1r emulationstation-de/es-app/src/views/ViewController.cpp emulationstat
- if (Settings::getInstance()->getBool("VirtualKeyboard")) {
- mWindow->pushGui(new GuiTextEditKeyboardPopup(
- HelpStyle(), 0.0f, "ENTER ROM DIRECTORY PATH", currentROMDirectory,
-- [this](const std::string& newROMDirectory) {
-- Settings::getInstance()->setString("ROMDirectory",
-- Utils::String::trim(newROMDirectory));
-- Settings::getInstance()->saveFile();
+- [this, currentROMDirectory](const std::string& newROMDirectory) {
+- if (currentROMDirectory != newROMDirectory) {
+- Settings::getInstance()->setString(
+- "ROMDirectory", Utils::String::trim(newROMDirectory));
+- Settings::getInstance()->saveFile();
-#if defined(_WIN64)
-- mRomDirectory =
-- Utils::String::replace(FileData::getROMDirectory(), "/", "\\");
+- mRomDirectory =
+- Utils::String::replace(FileData::getROMDirectory(), "/", "\\");
-#else
-- mRomDirectory = FileData::getROMDirectory();
+- mRomDirectory = FileData::getROMDirectory();
-#endif
-- mNoGamesMessageBox->changeText(mNoGamesErrorMessage + mRomDirectory);
-- mWindow->pushGui(new GuiMsgBox(HelpStyle(),
-- "ROM DIRECTORY SETTING SAVED, RESTART\n"
-- "THE APPLICATION TO RESCAN THE SYSTEMS",
-- "OK", nullptr, "", nullptr, "", nullptr,
-- true, true));
+- mNoGamesMessageBox->changeText(mNoGamesErrorMessage + mRomDirectory);
+- mWindow->pushGui(new GuiMsgBox(HelpStyle(),
+- "ROM DIRECTORY SETTING SAVED, RESTART\n"
+- "THE APPLICATION TO RESCAN THE SYSTEMS",
+- "OK", nullptr, "", nullptr, "", nullptr,
+- nullptr, true, true));
+- }
- },
- false, "SAVE", "SAVE CHANGES?", "Currently configured path:",
- currentROMDirectory, "LOAD CURRENTLY CONFIGURED PATH",
@@ -68,7 +55,7 @@ diff -au1r emulationstation-de/es-app/src/views/ViewController.cpp emulationstat
- "ROM DIRECTORY SETTING SAVED, RESTART\n"
- "THE APPLICATION TO RESCAN THE SYSTEMS",
- "OK", nullptr, "", nullptr, "", nullptr,
-- true));
+- nullptr, true));
- },
- false, "SAVE", "SAVE CHANGES?", "Currently configured path:",
- currentROMDirectory, "LOAD CURRENTLY CONFIGURED PATH",
@@ -82,9 +69,8 @@ diff -au1r emulationstation-de/es-app/src/views/ViewController.cpp emulationstat
- "THIS WILL CREATE DIRECTORIES FOR ALL THE\n"
- "GAME SYSTEMS DEFINED IN es_systems.xml\n\n"
- "THIS MAY CREATE A LOT OF FOLDERS SO IT'S\n"
-- "ADVICED TO REMOVE THE ONES YOU DON'T NEED\n\n"
-- "PROCEED?",
-- "YES",
+- "ADVICED TO REMOVE THE ONES YOU DON'T NEED",
+- "PROCEED",
- [this] {
- if (!SystemData::createSystemDirectories()) {
- mWindow->pushGui(new GuiMsgBox(HelpStyle(),
@@ -92,7 +78,7 @@ diff -au1r emulationstation-de/es-app/src/views/ViewController.cpp emulationstat
- "GENERATED, EXIT THE APPLICATION AND PLACE\n"
- "YOUR GAMES IN THE NEWLY CREATED FOLDERS",
- "OK", nullptr, "", nullptr, "", nullptr,
-- true));
+- nullptr, true));
- }
- else {
- mWindow->pushGui(new GuiMsgBox(HelpStyle(),
@@ -100,19 +86,16 @@ diff -au1r emulationstation-de/es-app/src/views/ViewController.cpp emulationstat
- "PERMISSION PROBLEMS OR DISK FULL?\n\n"
- "SEE THE LOG FILE FOR MORE DETAILS",
- "OK", nullptr, "", nullptr, "", nullptr,
-- true));
+- nullptr, true));
- }
- },
-- "NO", nullptr, "", nullptr, true));
+- "CANCEL", nullptr, "", nullptr, nullptr, false));
- },
- "QUIT",
+ HelpStyle(), mNoGamesErrorMessage + mRomDirectory, "QUIT",
[] {
-@@ -272,3 +183,3 @@
+@@ -289,3 +201,3 @@
},
-- true, false,
-+ "", nullptr, "", nullptr, true, false,
+- nullptr, true, false,
++ "", nullptr, "", nullptr, nullptr, true, true,
(mRenderer->getIsVerticalOrientation() ?
-@@ -1446 +1357,2 @@
- }
-+
diff --git a/rd-submodules/es-de/patch_helper.sh b/rd-submodules/es-de/patch_helper.sh
new file mode 100755
index 00000000..27923b97
--- /dev/null
+++ b/rd-submodules/es-de/patch_helper.sh
@@ -0,0 +1,31 @@
+#!/bin/bash
+
+mkdir /tmp
+
+branch="00a226062fff37209d98e0ab048ac89af50ecacc"
+git clone "https://gitlab.com/es-de/emulationstation-de.git" /tmp/emulationstation-de
+
+pushd .
+cd /tmp/emulationstation-de
+git checkout $branch
+popd
+
+mkdir patches-tmp
+
+cp /tmp/emulationstation-de/es-app/src/guis/GuiMenu.cpp ./patches-tmp
+cp /tmp/emulationstation-de/es-app/src/guis/GuiMenu.h ./patches-tmp
+cp /tmp/emulationstation-de/es-app/src/views/ViewController.cpp ./patches-tmp
+cp /tmp/emulationstation-de/es-core/src/Window.cpp ./patches-tmp
+cp /tmp/emulationstation-de/es-app/src/guis/GuiThemeDownloader.cpp ./patches-tmp
+
+read -p "Please edit the files in \"patches-tmp\" and press enter to continue."
+
+diff -au1r /tmp/emulationstation-de/es-app/src/guis/GuiMenu.cpp ./patches-tmp/GuiMenu.cpp > GuiMenu.cpp.patch
+diff -au1r /tmp/emulationstation-de/es-app/src/guis/GuiMenu.h ./patches-tmp/GuiMenu.h > GuiMenu.h.patch
+diff -au1r /tmp/emulationstation-de/es-app/src/views/ViewController.cpp ./patches-tmp/ViewController.cpp > ViewController.cpp.patch
+diff -au1r /tmp/emulationstation-de/es-core/src/Window.cpp ./patches-tmp/Window.cpp > Window.cpp.patch
+diff -au1r /tmp/emulationstation-de/es-app/src/guis/GuiThemeDownloader.cpp ./patches-tmp/GuiThemeDownloader.cpp > GuiThemeDownloader.cpp.patch
+
+rm -rf patches-tmp
+
+echo "Done, now please remeber to edit the headers of the patch files with the correct paths."
\ No newline at end of file
diff --git a/rd-submodules/primehack/detectflatpak.patch b/rd-submodules/primehack/detectflatpak.patch
new file mode 100644
index 00000000..60dd1a2d
--- /dev/null
+++ b/rd-submodules/primehack/detectflatpak.patch
@@ -0,0 +1,34 @@
+From f2d3b349d8487cf0ee50b36ba024ac513d36f826 Mon Sep 17 00:00:00 2001
+From: Carles Pastor
+Date: Sat, 20 Aug 2022 13:35:32 +0200
+Subject: [PATCH] Detect we are running inside a flatpak sandbox
+
+---
+ Source/Core/UICommon/UICommon.cpp | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/Source/Core/UICommon/UICommon.cpp b/Source/Core/UICommon/UICommon.cpp
+index 8d9dc2abb8..8a9d39a3d5 100644
+--- a/Source/Core/UICommon/UICommon.cpp
++++ b/Source/Core/UICommon/UICommon.cpp
+@@ -348,7 +348,7 @@ void SetUserDirectory(std::string custom_path)
+ // -> Use GetExeDirectory()/User
+ // 2. $DOLPHIN_EMU_USERPATH is set
+ // -> Use $DOLPHIN_EMU_USERPATH
+- // 3. ~/.dolphin-emu directory exists
++ // 3. ~/.dolphin-emu directory exists, and we're not in flatpak
+ // -> Use ~/.dolphin-emu
+ // 4. Default
+ // -> Use XDG basedir, see
+@@ -381,7 +381,7 @@ void SetUserDirectory(std::string custom_path)
+ {
+ user_path = home_path + "." DOLPHIN_DATA_DIR DIR_SEP;
+
+- if (!File::Exists(user_path))
++ if (File::Exists("/.flatpak-info") || !File::Exists(user_path))
+ {
+ const char* data_home = getenv("XDG_DATA_HOME");
+ std::string data_path =
+--
+2.37.1
+
diff --git a/rd-submodules/primehack/nodirtyversion.patch b/rd-submodules/primehack/nodirtyversion.patch
new file mode 100644
index 00000000..20b6f3c1
--- /dev/null
+++ b/rd-submodules/primehack/nodirtyversion.patch
@@ -0,0 +1,13 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 9af66009a1..2acd3bed9a 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -149,7 +149,7 @@ if(GIT_FOUND)
+ OUTPUT_VARIABLE DOLPHIN_WC_REVISION
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+ # defines DOLPHIN_WC_DESCRIBE
+- execute_process(WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} COMMAND ${GIT_EXECUTABLE} describe --always --long --dirty
++ execute_process(WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} COMMAND ${GIT_EXECUTABLE} describe --always --long
+ OUTPUT_VARIABLE DOLPHIN_WC_DESCRIBE
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+
diff --git a/rd-submodules/vita3k/vita3k-14-01-23.zip b/rd-submodules/vita3k/vita3k-14-01-23.zip
deleted file mode 100644
index 4cd7532e..00000000
Binary files a/rd-submodules/vita3k/vita3k-14-01-23.zip and /dev/null differ
diff --git a/res/retrodeck.png b/res/retrodeck.png
new file mode 100755
index 00000000..d16329c3
Binary files /dev/null and b/res/retrodeck.png differ
diff --git a/tools/Lutris/__pycache__/shortcut.cpython-310.pyc b/tools/Lutris/__pycache__/shortcut.cpython-310.pyc
deleted file mode 100644
index 0b8cfb8d..00000000
Binary files a/tools/Lutris/__pycache__/shortcut.cpython-310.pyc and /dev/null differ
diff --git a/tools/Lutris/vdf/__pycache__/__init__.cpython-310.pyc b/tools/Lutris/vdf/__pycache__/__init__.cpython-310.pyc
deleted file mode 100644
index 61f807c8..00000000
Binary files a/tools/Lutris/vdf/__pycache__/__init__.cpython-310.pyc and /dev/null differ
diff --git a/tools/configurator.sh b/tools/configurator.sh
index 9e670a4b..f4153b02 100644
--- a/tools/configurator.sh
+++ b/tools/configurator.sh
@@ -36,6 +36,7 @@ source /app/libexec/global.sh
# - Primehack
# - RPCS3
# - Ryujinx
+# - Vita3K
# - XEMU
# - Yuzu
# - Tools
@@ -443,6 +444,7 @@ configurator_open_emulator_dialog() {
"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" \
"Yuzu" "Open the Switch emulator Yuzu")
@@ -496,6 +498,10 @@ configurator_open_emulator_dialog() {
ryujinx-wrapper
;;
+ "Vita3K" )
+ Vita3K
+ ;;
+
"XEMU" )
xemu
;;
@@ -1097,7 +1103,7 @@ configurator_about_retrodeck_dialog() {
}
configurator_add_steam() {
- python3 /app/tools/Lutris/shortcut.py
+ python3 /app/libexec/steam-sync/steam-sync.py
configurator_welcome_dialog
}
diff --git a/wiki-rtd/index.md b/wiki-rtd/index.md
index 03c5c421..d2a72138 100644
--- a/wiki-rtd/index.md
+++ b/wiki-rtd/index.md
@@ -47,7 +47,7 @@ Please read the [How to: Getting started](https://github.com/XargonWan/RetroDECK
- What does "currently in beta" mean?, It means that the software is still under heavy development and big updates can be made that change, add, or remove features.
- RetroDECK is missing some minor and major; emulators, features and configurations. The goal is to have them added over time.
- Please check the [Known Issues](https://github.com/XargonWan/RetroDECK/wiki/Known-Issues) page and the [Issue tracker](https://github.com/XargonWan/RetroDECK/issues) for more information.
+ Please check the [[RetroDECK: Known Issues]] page and the [Issue tracker](https://github.com/XargonWan/RetroDECK/issues) for more information.
- RetroDECK during the BETA period only supports the Steam Deck, but for the full release we should have full Linux Desktop support read more at [FAQs: General questions](https://github.com/XargonWan/RetroDECK/wiki/FAQs-Frequently-asked-questions#general-questions).
- The "b" in the versioning stands for BETA but RetroDECK is perfectly fine for daily use even during the beta phase, albeit some features are missing. To see what features are missing check the: [Known Issues page](https://github.com/XargonWan/RetroDECK/wiki/Known-Issues).
@@ -80,13 +80,13 @@ The long term vision and goals of the project is an all-in-one application to ma
- Should have an easy way to mange external controllers and other inputs.
-- Should support a majority of all supported Emulators in ES-DE
+- Should support a majority of all supported Emulators in ES-DE, so at least you have one good option per system.
-- Should in the long run support applications outside of the scope of ES-DE
+- Should in the long run support applications outside of the scope of ES-DE via a ports manager.
- Should be plug and play and fill the need for a portable retro gaming solution that you can bring on the go to a friend’s/family/others house. Just dock into the TV and get going!
-- Should fully support Steam Deck, SteamOS based devices and the Linux Desktop.
+- Should fully support Steam Deck, Linux Desktop, other SteamOS or Linux based devices.
- AND MORE