Merge branch 'cooker-0.8.0b' into feat/mame

This commit is contained in:
XargonWan 2023-11-15 09:27:32 +01:00
commit db35a5adc4
44 changed files with 3204 additions and 587 deletions

View file

@ -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"

View file

@ -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"

5
.gitignore vendored
View file

@ -17,3 +17,8 @@ backup
.old
tmp
.godot
rd-submodules/es-de/patches-tmp
# Python #
##########
__pycache__

View file

@ -2,13 +2,6 @@
<img src="https://github.com/XargonWan/RetroDECK/blob/main/res/logo.png?raw=true" alt="RetroDECK logo" width="600"/>
</p>
![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!
<p float="center">
@ -19,35 +12,34 @@
</p>
<br/>
## 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)<br/>
# 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).<br>
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.<br/>
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.<br/>
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.<br>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) <br/>
[Wiki](https://github.com/XargonWan/RetroDECK/wiki) <br/>
@ -55,24 +47,44 @@ Read and follow the guide here: [Installation instructions](https://github.com/X
[Lemmy](https://lemmy.zip/c/retrodeck)<br/>
[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.<br/>
Yes, off course! <br>
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).

View file

@ -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

View file

@ -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
if [[ "${GITHUB_REF##*/}" == "main" ]]; then
flatpak = "RetroDECK.flatpak"
else
flatpak = "RetroDECK-cooker.flatpak"
fi
flatpak build-bundle "${GITHUB_WORKSPACE}/local" "${flatpak}" net.retrodeck.retrodeck

View file

@ -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
"${GITHUB_WORKSPACE}/${FOLDER}" \
net.retrodeck.retrodeck.yml

View file

@ -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
${GITHUB_WORKSPACE}/"$FOLDER" \
net.retrodeck.retrodeck.yml

View file

@ -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"
}
}

View file

@ -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"
}
}

View file

@ -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"

View file

@ -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"

View file

@ -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"
}

View file

@ -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"
}
}

View file

@ -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

View file

@ -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

View file

@ -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:
[]
...

View file

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<user id="00" name="RetroDECK">
<avatar>/app/retrodeck/retrodeck.png</avatar>
<sort-apps-list type="4" state="1" />
<theme use-background="true">
<content-id>default</content-id>
</theme>
<start-screen type="default">
<path></path>
</start-screen>
<backgrounds />
</user>

View file

@ -12,7 +12,6 @@
<rule type="systempath">
<entry>retroarch</entry>
<entry>org.libretro.RetroArch</entry>
<entry>RetroArch-Linux-x86_64.AppImage</entry>
</rule>
<rule type="staticpath">
<entry>~/Applications/RetroArch-Linux*.AppImage</entry>
@ -25,14 +24,18 @@
</emulator>
<core name="RETROARCH">
<rule type="corepath">
<!-- Flatpak RetroDECK -->
<entry>/app/share/libretro/cores</entry>
<!-- Snap package -->
<entry>~/snap/retroarch/current/.config/retroarch/cores</entry>
<entry>/app/share/libretro/cores</entry> <!-- RetroDECK -->
<!-- Non-portable AppImage and compiled from source -->
<entry>~/.config/retroarch/cores</entry>
<!-- Portable AppImage -->
<entry>~/Applications/RetroArch-Linux-x86_64.AppImage.home/.config/retroarch/cores</entry>
<entry>~/.local/share/applications/RetroArch-Linux-x86_64.AppImage.home/.config/retroarch/cores</entry>
<entry>~/.local/bin/RetroArch-Linux-x86_64.AppImage.home/.config/retroarch/cores</entry>
<entry>~/bin/RetroArch-Linux-x86_64.AppImage.home/.config/retroarch/cores</entry>
<!-- Flatpak package -->
<entry>~/.var/app/org.libretro.RetroArch/config/retroarch/cores</entry>
<!-- AppImage and compiled from source -->
<entry>~/.config/retroarch/cores</entry>
<!-- Snap package -->
<entry>~/snap/retroarch/current/.config/retroarch/cores</entry>
<!-- Ubuntu and Linux Mint repository -->
<entry>/usr/lib/x86_64-linux-gnu/libretro</entry>
<!-- Fedora repository -->
@ -45,6 +48,27 @@
<entry>/usr/pkg/lib/libretro</entry>
</rule>
</core>
<emulator name="3DSEN-WINDOWS">
<!-- Nintendo NES and Famicom emulator 3dSen -->
<rule type="staticpath">
<entry>~/Applications/3dSen/3dSen.exe</entry>
<entry>~/.local/share/applications/3dSen/3dSen.exe</entry>
<entry>~/.local/bin/3dSen/3dSen.exe</entry>
<entry>~/bin/3dSen/3dSen.exe</entry>
</rule>
</emulator>
<emulator name="ADVANCEMAME">
<!-- Arcade emulator AdvanceMAME -->
<rule type="systempath">
<entry>advmame</entry>
</rule>
<rule type="staticpath">
<entry>~/Applications/advancemame/advmame</entry>
<entry>~/.local/share/applications/advancemame/advmame</entry>
<entry>~/.local/bin/advancemame/advmame</entry>
<entry>~/bin/advancemame/advmame</entry>
</rule>
</emulator>
<emulator name="ARES">
<!-- Multi-system emulator ares -->
<rule type="systempath">
@ -78,6 +102,15 @@
<entry>~/.local/share/flatpak/exports/bin/net.cebix.basilisk</entry>
</rule>
</emulator>
<emulator name="BIGPEMU-WINDOWS">
<!-- Atari Jaguar emulator BigPEmu -->
<rule type="staticpath">
<entry>~/Applications/BigPEmu/BigPEmu.exe</entry>
<entry>~/.local/share/applications/BigPEmu/BigPEmu.exe</entry>
<entry>~/.local/bin/BigPEmu/BigPEmu.exe</entry>
<entry>~/bin/BigPEmu/BigPEmu.exe</entry>
</rule>
</emulator>
<emulator name="BLASTEM">
<!-- Sega Mega Drive/Genesis emulator BlastEm -->
<rule type="systempath">
@ -93,6 +126,7 @@
<!-- Super Nintendo/Super Famicom emulator bsnes -->
<rule type="systempath">
<entry>bsnes</entry>
<entry>dev.bsnes.bsnes</entry>
</rule>
<rule type="staticpath">
<entry>/var/lib/flatpak/exports/bin/dev.bsnes.bsnes</entry>
@ -102,7 +136,7 @@
<emulator name="CEMU">
<!-- Nintendo Wii U emulator Cemu -->
<rule type="systempath">
<entry>Cemu-wrapper</entry>
<entry>Cemu-wrapper</entry> <!-- RetroDECK -->
<entry>cemu</entry>
<entry>Cemu</entry>
</rule>
@ -115,21 +149,25 @@
<entry>~/.local/share/applications/Cemu/Cemu</entry>
<entry>~/.local/bin/Cemu/Cemu</entry>
<entry>~/bin/Cemu/Cemu</entry>
<entry>/var/lib/flatpak/exports/bin/info.cemu.Cemu</entry>
<entry>~/.local/share/flatpak/exports/bin/info.cemu.Cemu</entry>
</rule>
</emulator>
<emulator name="CITRA">
<!-- Nintendo 3DS emulator Citra -->
<rule type="systempath">
<entry>citra-qt</entry>
<entry>citra</entry>
<entry>citra-qt</entry> <!-- RetroDECK -->
<entry>citra</entry>
<entry>citra-emu.citra-nightly</entry>
<entry>org.citra_emu.citra</entry>
</rule>
<rule type="staticpath">
<entry>~/Applications/citra*.AppImage</entry>
<entry>~/.local/share/applications/citra*.AppImage</entry>
<entry>~/.local/bin/citra*.AppImage</entry>
<entry>~/bin/citra*.AppImage</entry>
<entry>~/Applications/citra-qt*.AppImage</entry>
<entry>~/.local/share/applications/citra-qt*.AppImage</entry>
<entry>~/.local/bin/citra-qt*.AppImage</entry>
<entry>~/bin/citra-qt*.AppImage</entry>
<entry>~/.citra/canary/citra-qt.AppImage</entry>
<entry>~/.citra/nightly/citra-qt.AppImage</entry>
<entry>/var/lib/flatpak/exports/bin/org.citra_emu.citra</entry>
<entry>~/.local/share/flatpak/exports/bin/org.citra_emu.citra</entry>
</rule>
@ -170,6 +208,7 @@
<!-- Nintendo GameCube and Wii emulator Dolphin -->
<rule type="systempath">
<entry>dolphin-emu</entry>
<entry>dolphin-emulator.dolphin-emu</entry>
<entry>org.DolphinEmu.dolphin-emu</entry>
</rule>
<rule type="staticpath">
@ -211,6 +250,10 @@
<entry>org.duckstation.DuckStation</entry>
</rule>
<rule type="staticpath">
<entry>~/Applications/DuckStation*.AppImage</entry>
<entry>~/.local/share/applications/DuckStation*.AppImage</entry>
<entry>~/.local/bin/DuckStation*.AppImage</entry>
<entry>~/bin/DuckStation*.AppImage</entry>
<entry>~/Applications/duckstation-nogui*.AppImage</entry>
<entry>~/.local/share/applications/duckstation-nogui*.AppImage</entry>
<entry>~/.local/bin/duckstation-nogui*.AppImage</entry>
@ -235,6 +278,27 @@
<entry>~/bin/easyrpg/easyrpg-player</entry>
</rule>
</emulator>
<emulator name="EKA2L1">
<!-- Symbian and Nokia N-Gage emulator EKA2L1 -->
<rule type="systempath">
<entry>eka2l1_qt</entry>
</rule>
<rule type="staticpath">
<entry>~/Applications/EKA2L1*.AppImage</entry>
<entry>~/.local/share/applications/EKA2L1*.AppImage</entry>
<entry>~/.local/bin/EKA2L1*.AppImage</entry>
<entry>~/bin/EKA2L1*.AppImage</entry>
</rule>
</emulator>
<emulator name="EKA2L1-WINDOWS">
<!-- Symbian and Nokia N-Gage emulator EKA2L1 -->
<rule type="staticpath">
<entry>~/Applications/EKA2L1/eka2l1_qt.exe</entry>
<entry>~/.local/share/applications/EKA2L1/eka2l1_qt.exe</entry>
<entry>~/.local/bin/EKA2L1/eka2l1_qt.exe</entry>
<entry>~/bin/EKA2L1/eka2l1_qt.exe</entry>
</rule>
</emulator>
<emulator name="FINALBURN-NEO">
<!-- Arcade emulator FinalBurn Neo -->
<rule type="systempath">
@ -289,6 +353,7 @@
<!-- Interactive fiction player Gargoyle -->
<rule type="systempath">
<entry>gargoyle</entry>
<entry>io.github.garglk.Gargoyle</entry>
</rule>
<rule type="staticpath">
<entry>~/Applications/Gargoyle*.AppImage</entry>
@ -324,6 +389,7 @@
<!-- Atari ST/STE/TT/Falcon emulator Hatari -->
<rule type="systempath">
<entry>hatari</entry>
<entry>org.tuxfamily.hatari</entry>
</rule>
<rule type="staticpath">
<entry>/var/lib/flatpak/exports/bin/org.tuxfamily.hatari</entry>
@ -366,6 +432,15 @@
<entry>~/bin/linapple/linapple</entry>
</rule>
</emulator>
<emulator name="M2EMULATOR-WINDOWS">
<!-- Sega Model 2 Emulator -->
<rule type="staticpath">
<entry>~/Applications/m2emulator/EMULATOR.EXE</entry>
<entry>~/.local/share/applications/m2emulator/EMULATOR.EXE</entry>
<entry>~/.local/bin/m2emulator/EMULATOR.EXE</entry>
<entry>~/bin/m2emulator/EMULATOR.EXE</entry>
</rule>
</emulator>
<emulator name="MAME">
<!-- Arcade emulator MAME -->
<rule type="systempath">
@ -399,6 +474,18 @@
<entry>~/.local/share/flatpak/exports/bin/net.kuribo64.melonDS</entry>
</rule>
</emulator>
<emulator name="MESEN">
<!-- Multi-system emulator Mesen -->
<rule type="systempath">
<entry>mesen2</entry>
</rule>
<rule type="staticpath">
<entry>~/Applications/Mesen*.AppImage</entry>
<entry>~/.local/share/applications/Mesen*.AppImage</entry>
<entry>~/.local/bin/Mesen*.AppImage</entry>
<entry>~/bin/Mesen*.AppImage</entry>
</rule>
</emulator>
<emulator name="MGBA">
<!-- Nintendo Game Boy Advance emulator mGBA -->
<rule type="systempath">
@ -430,6 +517,7 @@
<!-- Nintendo NES and Famicom emulator Nestopia UE -->
<rule type="systempath">
<entry>nestopia</entry>
<entry>ca._0ldsk00l.Nestopia</entry>
</rule>
<rule type="staticpath">
<entry>/var/lib/flatpak/exports/bin/ca._0ldsk00l.Nestopia</entry>
@ -440,6 +528,7 @@
<!-- MSX home computer emulator openMSX -->
<rule type="systempath">
<entry>openmsx</entry>
<entry>org.openmsx.openMSX</entry>
</rule>
<rule type="staticpath">
<entry>/var/lib/flatpak/exports/bin/org.openmsx.openMSX</entry>
@ -462,11 +551,15 @@
<!-- Sony PlayStation 2 emulator PCSX2 -->
<rule type="systempath">
<entry>pcsx2-qt</entry>
<entry>net.pcsx2.PCSX2</entry>
</rule>
<rule type="staticpath">
<entry>~/Applications/pcsx2*-Qt.AppImage</entry>
<entry>~/.local/bin/pcsx2*-Qt.AppImage</entry>
<entry>~/bin/pcsx2*-Qt.AppImage</entry>
<entry>~/Applications/pcsx2*.AppImage</entry>
<entry>~/.local/share/applications/pcsx2*.AppImage</entry>
<entry>~/.local/bin/pcsx2*.AppImage</entry>
<entry>~/bin/pcsx2*.AppImage</entry>
<entry>/var/lib/flatpak/exports/bin/net.pcsx2.PCSX2</entry>
<entry>~/.local/share/flatpak/exports/bin/net.pcsx2.PCSX2</entry>
</rule>
</emulator>
<emulator name="PCSX2-LEGACY">
@ -495,6 +588,9 @@
</emulator>
<emulator name="PLAY!">
<!-- Sony PlayStation 2 emulator Play! -->
<rule type="systempath">
<entry>org.purei.Play</entry>
</rule>
<rule type="staticpath">
<entry>~/Applications/Play!*.AppImage</entry>
<entry>~/.local/share/applications/Play!*.AppImage</entry>
@ -508,9 +604,9 @@
<!-- Sony PlayStation Portable emulator PPSSPP -->
<rule type="systempath">
<entry>ppsspp-emu.ppsspp-sdl</entry>
<entry>org.ppsspp.PPSSPP</entry>
<entry>PPSSPPSDL</entry>
<entry>PPSSPPQt</entry>
<entry>org.ppsspp.PPSSPP</entry>
</rule>
<rule type="staticpath">
<entry>/var/lib/flatpak/exports/bin/org.ppsspp.PPSSPP</entry>
@ -534,6 +630,15 @@
<entry>~/.local/share/flatpak/exports/bin/io.github.shiiion.primehack</entry>
</rule>
</emulator>
<emulator name="PROTON">
<!-- Microsoft Windows compatibility layer Proton -->
<rule type="staticpath">
<entry>~/Applications/Proton/wine*.AppImage</entry>
<entry>~/.local/share/applications/Proton/wine*.AppImage</entry>
<entry>~/.local/bin/Proton/wine*.AppImage</entry>
<entry>~/bin/Proton/wine*.AppImage</entry>
</rule>
</emulator>
<emulator name="PUNES">
<!-- Nintendo NES and Famicom emulator puNES -->
<rule type="systempath">
@ -546,6 +651,18 @@
<entry>~/bin/punes/punes</entry>
</rule>
</emulator>
<emulator name="QUASI88">
<!-- NEC PC-8800 series emulator QUASI88 -->
<rule type="systempath">
<entry>quasi88</entry>
</rule>
<rule type="staticpath">
<entry>~/Applications/quasi88/quasi88</entry>
<entry>~/.local/share/applications/quasi88/quasi88</entry>
<entry>~/.local/bin/quasi88/quasi88</entry>
<entry>~/bin/quasi88/quasi88</entry>
</rule>
</emulator>
<emulator name="REDREAM">
<!-- Sega Dreamcast emulator Redream -->
<rule type="systempath">
@ -685,13 +802,30 @@
<entry>~/.local/share/flatpak/exports/bin/io.github.simple64.simple64</entry>
</rule>
</emulator>
<emulator name="SKYEMU">
<!-- Nintendo Game Boy, Game Boy Color, Game Boy Advance and DS emulator SkyEmu -->
<rule type="systempath">
<entry>SkyEmu</entry>
</rule>
<rule type="staticpath">
<entry>~/Applications/SkyEmu/SkyEmu</entry>
<entry>~/.local/share/applications/SkyEmu/SkyEmu</entry>
<entry>~/.local/bin/SkyEmu/SkyEmu</entry>
<entry>~/bin/SkyEmu/SkyEmu</entry>
</rule>
</emulator>
<emulator name="SNES9X">
<!-- Super Nintendo emulator Snes9x -->
<rule type="systempath">
<entry>snes9x</entry>
<entry>snes9x-gtk</entry>
<entry>com.snes9x.Snes9x</entry>
</rule>
<rule type="staticpath">
<entry>~/Applications/Snes9x*.AppImage</entry>
<entry>~/.local/share/applications/Snes9x*.AppImage</entry>
<entry>~/.local/bin/Snes9x*.AppImage</entry>
<entry>~/bin/Snes9x*.AppImage</entry>
<entry>/var/lib/flatpak/exports/bin/com.snes9x.Snes9x</entry>
<entry>~/.local/share/flatpak/exports/bin/com.snes9x.Snes9x</entry>
</rule>
@ -775,8 +909,19 @@
<entry>~/.local/share/flatpak/exports/bin/net.sf.VICE</entry>
</rule>
</emulator>
<emulator name="VICE-XPLUS4">
<!-- Commodore 8-bit computer emulator VICE (xplus4) -->
<rule type="systempath">
<entry>xplus4</entry>
<entry>vice-jz.xplus4</entry>
</rule>
<rule type="staticpath">
<entry>/var/lib/flatpak/exports/bin/net.sf.VICE|flatpak run --command=xplus4 net.sf.VICE</entry>
<entry>~/.local/share/flatpak/exports/bin/net.sf.VICE|flatpak run --command=xplus4 net.sf.VICE</entry>
</rule>
</emulator>
<emulator name="VICE-XVIC">
<!-- Commodore 8-bit computer emulator VICE (xvic VIC-20) -->
<!-- Commodore 8-bit computer emulator VICE (xvic) -->
<rule type="systempath">
<entry>xvic</entry>
<entry>vice-jz.xvic</entry>
@ -786,6 +931,18 @@
<entry>~/.local/share/flatpak/exports/bin/net.sf.VICE|flatpak run --command=xvic net.sf.VICE</entry>
</rule>
</emulator>
<emulator name="VISUAL-PINBALL">
<!-- Pinball simulator Visual Pinball -->
<rule type="systempath">
<entry>VPinballX_GL</entry>
</rule>
<rule type="staticpath">
<entry>~/Applications/VPinballX/VPinballX_GL</entry>
<entry>~/.local/share/applications/VPinballX/VPinballX_GL</entry>
<entry>~/.local/bin/VPinballX/VPinballX_GL</entry>
<entry>~/bin/VPinballX/VPinballX_GL</entry>
</rule>
</emulator>
<emulator name="VITA3K">
<!-- Sony PlayStation Vita emulator Vita3K -->
<rule type="systempath">
@ -814,6 +971,28 @@
<entry>~/.local/share/flatpak/exports/bin/app.xemu.xemu</entry>
</rule>
</emulator>
<emulator name="WINE">
<!-- Microsoft Windows compatibility layer Wine -->
<rule type="staticpath">
<entry>~/Applications/Wine/wine*.AppImage</entry>
<entry>~/.local/share/applications/Wine/wine*.AppImage</entry>
<entry>~/.local/bin/Wine/wine*.AppImage</entry>
<entry>~/bin/Wine/wine*.AppImage</entry>
</rule>
</emulator>
<emulator name="XENIA-WINDOWS">
<!-- Microsoft Xbox 360 emulator xenia -->
<rule type="staticpath">
<entry>~/Applications/xenia/xenia.exe</entry>
<entry>~/.local/share/applications/xenia/xenia.exe</entry>
<entry>~/.local/bin/xenia/xenia.exe</entry>
<entry>~/bin/xenia/xenia.exe</entry>
<entry>~/Applications/xenia/xenia_canary.exe</entry>
<entry>~/.local/share/applications/xenia/xenia_canary.exe</entry>
<entry>~/.local/bin/xenia/xenia_canary.exe</entry>
<entry>~/bin/xenia/xenia_canary.exe</entry>
</rule>
</emulator>
<emulator name="XROAR">
<!-- Dragon and Tandy 8-bit computer emulator XRoar -->
<rule type="systempath">

View file

@ -5,18 +5,32 @@
<name>3do</name>
<fullname>3DO Interactive Multiplayer</fullname>
<path>%ROMPATH%/3do</path>
<extension>.bin .BIN .chd .CHD .cue .CUE .iso .ISO</extension>
<extension>.bin .BIN .chd .CHD .cue .CUE .iso .ISO .7z .7Z .zip .ZIP</extension>
<command label="Opera">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/opera_libretro.so %ROM%</command>
<platform>3do</platform>
<theme>3do</theme>
</system>
<!--
<system>
<name>adam</name>
<fullname>Coleco Adam</fullname>
<path>%ROMPATH%/adam</path>
<extension>.1dd .1DD .bin .BIN .col .COL .cqi .CQI .cqm .CQM .d77 .D77 .d88 .D88 .ddp .DDP .dfi .DFI .dsk .DSK .hfe .HFE .imd .IMD .mfi .MFI .mfm .MFM .rom .ROM .td0 .TD0 .wav .WAV .7z .7Z .zip .ZIP</extension>
<command label="MAME [Diskette] (Standalone)">%STARTDIR%=~/.mame %EMULATOR_MAME% -rompath %GAMEDIR%\;%ROMPATH%/adam adam -flop1 %ROM%</command>
<command label="MAME [Tape] (Standalone)">%STARTDIR%=~/.mame %EMULATOR_MAME% -rompath %GAMEDIR%\;%ROMPATH%/adam adam -cass1 %ROM%</command>
<command label="MAME [Cartridge] (Standalone)">%STARTDIR%=~/.mame %EMULATOR_MAME% -rompath %GAMEDIR%\;%ROMPATH%/adam adam -cart1 %ROM%</command>
<command label="MAME [Software list] (Standalone)">%STARTDIR%=~/.mame %EMULATOR_MAME% -rompath %GAMEDIR%\;%ROMPATH%/adam adam %BASENAME%</command>
<platform>adam</platform>
<theme>adam</theme>
</system>
-->
<!--
<system>
<name>ags</name>
<fullname>Adventure Game Studio Game Engine</fullname>
<path>%ROMPATH%/ags</path>
<extension>.desktop</extension>
<command label="Native binary">%ENABLESHORTCUTS% %EMULATOR_OS-SHELL% %ROM%</command>
<extension>.desktop .sh</extension>
<command label="Native binary">%STARTDIR%=%GAMEDIR% %ENABLESHORTCUTS% %EMULATOR_OS-SHELL% %ROM%</command>
<platform>ags</platform>
<theme>ags</theme>
</system>
@ -69,6 +83,7 @@
<command label="Caprice32">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/cap32_libretro.so %ROM%</command>
<command label="CrocoDS">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/crocods_libretro.so %ROM%</command>
<command label="CPCemu (Standalone)">%STARTDIR%=~/.CPCemu %EMULATOR_CPCEMU% %ROM%</command>
<!--<command label="MAME (Standalone)">%STARTDIR%=~/.mame %EMULATOR_MAME% -rompath %GAMEDIR%\;%ROMPATH%/amstradcpc cpc6128 -flop1 %ROM%</command>-->
<platform>amstradcpc</platform>
<theme>amstradcpc</theme>
</system>
@ -98,11 +113,13 @@
<name>apple2gs</name>
<fullname>Apple IIGS</fullname>
<path>%ROMPATH%/apple2gs</path>
<extension>.2mg .2MG</extension>
<extension>.2mg .2MG .7z .7z .zip .ZIP</extension>
<command label="MAME - Current">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mame_libretro.so "apple2gs -rompath %GAMEDIR%\;%ROMPATH%/apple2gs -flop3 \"%ROMRAW%\""</command>
<command label="MAME (Standalone)">%STARTDIR%=~/.mame %EMULATOR_MAME% -rompath %GAMEDIR%\;%ROMPATH%/apple2gs apple2gs -flop3 %ROM%</command>
<platform>apple2gs</platform>
<theme>apple2gs</theme>
</system>
<system>
<name>arcade</name>
<fullname>Arcade</fullname>
@ -131,11 +148,25 @@
<fullname>Emerson Arcadia 2001</fullname>
<path>%ROMPATH%/arcadia</path>
<extension>.bin .BIN .7z .7Z .zip .ZIP</extension>
<command label="MAME - Current">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mame_libretro.so "arcadia -rompath %GAMEDIR%\;%ROMPATH%/arcadia -cart \"%ROMRAW%\""</command>
<command label="MAME (Standalone)">%STARTDIR%=~/.mame %EMULATOR_MAME% -rompath %GAMEDIR%\;%ROMPATH%/arcadia arcadia -cart %ROM%</command>
<platform>arcadia</platform>
<theme>arcadia</theme>
</system>
<!--
<system>
<name>archimedes</name>
<fullname>Acorn Archimedes</fullname>
<path>%ROMPATH%/archimedes</path>
<extension>.1dd .1DD .360 .adf .ADF .adl .ADL .adm .ADM .ads .ADS .apd .APD .bbc .BBC .chd .CHD .cqi .CQI .cqm .CQM .d77 .D77 .d88 .D88 .dfi .DFI .dsd .DSD .dsk .DSK .hfe .HFE .ima .IMA .imd .IMD .img .IMG .ipf .IPF .jfd .JFD .mfi .MFI .mfm .MFM .msa .MSA .ssd .SSD .st .ST .td0 .TD0 .ufi .UFI .7z .7Z .zip .ZIP</extension>
<command label="MAME [Model A440/1] (Standalone)">%STARTDIR%=~/.mame %EMULATOR_MAME% -rompath %GAMEDIR%\;%ROMPATH%/archimedes aa4401 -flop1 %ROM%</command>
<command label="MAME [Model A3000] (Standalone)">%STARTDIR%=~/.mame %EMULATOR_MAME% -rompath %GAMEDIR%\;%ROMPATH%/archimedes aa3000 -flop1 %ROM%</command>
<command label="MAME [Model A310] (Standalone)">%STARTDIR%=~/.mame %EMULATOR_MAME% -rompath %GAMEDIR%\;%ROMPATH%/archimedes aa310 -flop1 %ROM%</command>
<command label="MAME [Model A540] (Standalone)">%STARTDIR%=~/.mame %EMULATOR_MAME% -rompath %GAMEDIR%\;%ROMPATH%/archimedes aa540 -flop1 %ROM%</command>
<platform>archimedes</platform>
<theme>archimedes</theme>
</system>
-->
<system>
<name>arduboy</name>
<fullname>Arduboy Miniature Game System</fullname>
@ -175,7 +206,7 @@
<extension>.a52 .A52 .atr .ATR .atx .ATX .bin .BIN .car .CAR .cas .CAS .cdm .CDM .rom .ROM .xex .XEX .xfd .XFD .7z .7Z .zip .ZIP</extension>
<command label="a5200">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/a5200_libretro.so %ROM%</command>
<command label="Atari800">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/atari800_libretro.so %ROM%</command>
<!-- <command label="Atari800 (Standalone)">%EMULATOR_ATARI800% %ROM%</command> -->
<!--<command label="Atari800 (Standalone)">%EMULATOR_ATARI800% %ROM%</command> -->
<platform>atari5200</platform>
<theme>atari5200</theme>
</system>
@ -185,6 +216,7 @@
<path>%ROMPATH%/atari7800</path>
<extension>.a78 .A78 .bin .BIN .7z .7Z .zip .ZIP</extension>
<command label="ProSystem">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/prosystem_libretro.so %ROM%</command>
<!--<command label="MAME (Standalone)">%STARTDIR%=~/.mame %EMULATOR_MAME% -rompath %GAMEDIR%\;%ROMPATH%/atari7800 a7800 -cart %ROM%</command>-->
<platform>atari7800</platform>
<theme>atari7800</theme>
</system>
@ -204,16 +236,20 @@
<path>%ROMPATH%/atarijaguar</path>
<extension>.abs .ABS .bin .BIN .cdi .CDI .cof .COF .cue .CUE .j64 .J64 .jag .JAG .prg .PRG .rom .ROM .7z .7Z .zip .ZIP</extension>
<command label="Virtual Jaguar">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/virtualjaguar_libretro.so %ROM%</command>
<command label="MAME (Standalone)">%STARTDIR%=~/.mame %EMULATOR_MAME% -rompath %GAMEDIR%\;%ROMPATH%/atarijaguar jaguar -cart %ROM%</command>
<platform>atarijaguar, atarijaguarcd</platform>
<!--<command label="MAME (Standalone)">%STARTDIR%=~/.mame %EMULATOR_MAME% -rompath %GAMEDIR%\;%ROMPATH%/atarijaguar jaguar -cart %ROM%</command>-->
<!--<command label="BigPEmu (Wine)">%STARTDIR%=%EMUDIR% %PRECOMMAND_WINE% %EMULATOR_BIGPEMU-WINDOWS% %ROM%</command>-->
<!--<command label="BigPEmu (Proton)">%STARTDIR%=%EMUDIR% %PRECOMMAND_PROTON% %EMULATOR_BIGPEMU-WINDOWS% %ROM%</command>-->
<platform>atarijaguar</platform>
<theme>atarijaguar</theme>
</system>
<system>
<name>atarijaguarcd</name>
<fullname>Atari Jaguar CD</fullname>
<path>%ROMPATH%/atarijaguarcd</path>
<extension>.j64 .J64 .jag .JAG .rom .ROM .abs .ABS .cof .COF .bin .BIN .prg .PRG .7z .7Z .zip .ZIP</extension>
<command>%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/virtualjaguar_libretro.so %ROM%</command>
<extension>.abs .ABS .bin .BIN .cdi .CDI .cof .COF .cue .CUE .j64 .J64 .jag .JAG .prg .PRG .rom .ROM .7z .7Z .zip .ZIP</extension>
<!--<command label="BigPEmu (Wine)">%STARTDIR%=%EMUDIR% %PRECOMMAND_WINE% %EMULATOR_BIGPEMU-WINDOWS% %ROM%</command>-->
<!--<command label="BigPEmu (Proton)">%STARTDIR%=%EMUDIR% %PRECOMMAND_PROTON% %EMULATOR_BIGPEMU-WINDOWS% %ROM%</command>-->
<platform>atarijaguarcd</platform>
<theme>atarijaguarcd</theme>
</system>
@ -224,7 +260,7 @@
<extension>.lnx .LNX .o .O .7z .7Z .zip .ZIP</extension>
<command label="Handy">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/handy_libretro.so %ROM%</command>
<command label="Beetle Lynx">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mednafen_lynx_libretro.so %ROM%</command>
<!-- <command label="Mednafen (Standalone)">%EMULATOR_MEDNAFEN% -force_module lynx %ROM%</command> -->
<!-- <command label="Mednafen (Standalone)">%EMULATOR_MEDNAFEN% -force_module lynx %ROM%</command> -->
<platform>atarilynx</platform>
<theme>atarilynx</theme>
</system>
@ -299,6 +335,7 @@
<extension>.chd .CHD .cue .CUE .iso .ISO</extension>
<command label="SAME CDi">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/same_cdi_libretro.so %ROM%</command>
<command label="CDi 2015">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/cdi2015_libretro.so %ROM%</command>
<!--<command label="MAME (Standalone)">%STARTDIR%=~/.mame %EMULATOR_MAME% -rompath %GAMEDIR%\;%ROMPATH%/cdimono1 cdimono1 -cdrom %ROM%</command>-->
<platform>cdimono1</platform>
<theme>cdimono1</theme>
</system>
@ -354,6 +391,25 @@
<platform>colecovision</platform>
<theme>colecovision</theme>
</system>
<system>
<name>consolearcade</name>
<fullname>Console Arcade Systems</fullname>
<path>%ROMPATH%/consolearcade</path>
<extension>.arcadedef .desktop .iso .ISO .sh .xbe .XBE .7z .7Z .zip .ZIP</extension>
<command label="MAME - Current">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mame_libretro.so %ROM%</command>
<!--<command label="MAME (Standalone)">%STARTDIR%=~/.mame %EMULATOR_MAME% -rompath %GAMEDIR%\;%ROMPATH%/consolearcade %BASENAME%</command>-->
<command label="Flycast">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/flycast_libretro.so %ROM%</command>
<!--<command label="Flycast (Standalone)">%EMULATOR_FLYCAST% %ROM%</command>-->
<command label="Kronos">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/kronos_libretro.so %ROM%</command>
<!--<command label="Mednafen [Sega Saturn] (Standalone)">%EMULATOR_MEDNAFEN% -force_module ss %ROM%</command>-->
<!--<command label="Play! (Standalone)">%EMULATOR_PLAY!% &ndash;&ndash;disc %ROM%</command>-->
<command label="RPCS3 Shortcut (Standalone)">%ENABLESHORTCUTS% %EMULATOR_OS-SHELL% %ROM%</command>
<!--<command label="Triforce (Standalone)">%INJECT%=%BASENAME%.esprefix %EMULATOR_TRIFORCE% -b -e %ROM%</command>-->
<command label="xemu (Standalone)">%INJECT%=%BASENAME%.esprefix %EMULATOR_XEMU% -dvd_path %ROM%</command>
<command label="Shortcut or script">%ENABLESHORTCUTS% %EMULATOR_OS-SHELL% %ROM%</command>
<platform>arcade</platform>
<theme>consolearcade</theme>
</system>
<system>
<name>cps</name>
<fullname>Capcom Play System</fullname>
@ -430,6 +486,7 @@
<fullname>VTech CreatiVision</fullname>
<path>%ROMPATH%/crvision</path>
<extension>.bin .BIN .rom .ROM .7z .7Z .zip .ZIP</extension>
<command label="MAME - Current">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mame_libretro.so "crvision -rompath %GAMEDIR%\;%ROMPATH%/crvision -cart \"%ROMRAW%\""</command>
<command label="MAME (Standalone)">%STARTDIR%=~/.mame %EMULATOR_MAME% -rompath %GAMEDIR%\;%ROMPATH%/crvision crvision -cart %ROM%</command>
<platform>crvision</platform>
<theme>crvision</theme>
@ -440,10 +497,12 @@
<name>daphne</name>
<fullname>Daphne Arcade LaserDisc Emulator</fullname>
<path>%ROMPATH%/daphne</path>
<extension>.daphne .singe</extension>
<extension>.daphne .singe .7z .7Z .zip .ZIP</extension>
<command label="Hypseus [Daphne] (Standalone)">%EMULATOR_HYPSEUS-SINGE% %BASENAME% vldp -framefile %GAMEDIR%/%BASENAME%.txt %INJECT%=%BASENAME%.commands</command>
<command label="Hypseus [Singe] (Standalone)">%EMULATOR_HYPSEUS-SINGE% singe vldp -framefile %GAMEDIR%/%BASENAME%.txt -script %GAMEDIR%/%BASENAME%.singe %INJECT%=%BASENAME%.commands</command>
<platform>daphne</platform>
<command label="MAME - Current">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mame_libretro.so %ROM%</command>
<command label="MAME (Standalone)">%STARTDIR%=~/.mame %EMULATOR_MAME% -rompath %GAMEDIR%\;%ROMPATH%/daphne %BASENAME%</command>
<platform>daphne, arcade</platform>
<theme>daphne</theme>
</system>
-->
@ -506,6 +565,20 @@
<platform>easyrpg</platform>
<theme>easyrpg</theme>
</system>
<!--
<system>
<name>electron</name>
<fullname>Acorn Electron</fullname>
<path>%ROMPATH%/electron</path>
<extension>.1dd .1DD .adf .ADF .adl .ADL .adm .ADM .ads .ADS .bbc .BBC .bin .BIN .cqi .CQI .cqm .CQM .csw .CSW .d77 .D77 .d88 .D88 .dfi .DFI .dsd .DSD .dsk .DSK .hfe .HFE .imd .IMD .img .IMG .mfi .MFI .mfm .MFM .rom .ROM .ssd .SSD .td0 .TD0 .uef .UEF .wav .WAV .7z .7Z .zip .ZIP</extension>
<command label="MAME [Tape] (Standalone)">%STARTDIR%=~/.mame %EMULATOR_MAME% -rompath %GAMEDIR%\;%ROMPATH%/electron electron64 -autoboot_delay "2" -autoboot_command "*T.\nCH.\"\"\n" -cass1 %ROM%</command>
<command label="MAME [Diskette DFS] (Standalone)">%STARTDIR%=~/.mame %EMULATOR_MAME% -rompath %GAMEDIR%\;%ROMPATH%/electron electron64 -exp plus1 -cart1 seds -autoboot_delay "2" -autoboot_command "*CAT\n\n\n\n\n\n*EXEC !BOOT\n" -flop1 %ROM%</command>
<command label="MAME [Diskette ADFS] (Standalone)">%STARTDIR%=~/.mame %EMULATOR_MAME% -rompath %GAMEDIR%\;%ROMPATH%/electron electron64 -exp plus3 -exp:plus3:fdc:1 35dd -autoboot_delay "2" -autoboot_command "*CAT\n\n\n\n\n\n*RUN !BOOT\n" -flop1 %ROM%</command>
<platform>electron</platform>
<theme>electron</theme>
</system>
-->
<!--
<system>
<name>emulators</name>
<fullname>Emulators</fullname>
@ -518,12 +591,14 @@
<platform>pcwindows</platform>
<theme>emulators</theme>
</system>
-->
<system>
<name>famicom</name>
<fullname>Nintendo Family Computer</fullname>
<path>%ROMPATH%/famicom</path>
<extension>.fds .FDS .nes .NES .unf .UNF .unif .UNIF .7z .7Z .zip .ZIP</extension>
<extension>.3dsen .3DSEN .fds .FDS .nes .NES .unf .UNF .unif .UNIF .7z .7Z .zip .ZIP</extension>
<command label="Mesen">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mesen_libretro.so %ROM%</command>
<!--<command label="Mesen (Standalone)">%EMULATOR_MESEN% &ndash;&ndash;fullscreen %ROM%</command>-->
<command label="Nestopia UE">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/nestopia_libretro.so %ROM%</command>
<!-- <command label="Nestopia UE (Standalone)">%EMULATOR_NESTOPIA-UE% &ndash;&ndash;fullscreen %ROM%</command> -->
<command label="FCEUmm">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/fceumm_libretro.so %ROM%</command>
@ -564,6 +639,7 @@
<path>%ROMPATH%/fds</path>
<extension>.nes .NES .fds .FDS .unf .UNF .UNIF .UNIF .7z .7Z .zip .ZIP</extension>
<command label="Mesen">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mesen_libretro.so %ROM%</command>
<!--<command label="Mesen (Standalone)">%EMULATOR_MESEN% &ndash;&ndash;fullscreen %ROM%</command>-->
<command label="Nestopia UE">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/nestopia_libretro.so %ROM%</command>
<!-- <command label="Nestopia UE (Standalone)">%EMULATOR_NESTOPIA-UE% &ndash;&ndash;fullscreen %ROM%</command> -->
<command label="FCEUmm">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/fceumm_libretro.so %ROM%</command>
@ -584,13 +660,30 @@
<theme>flash</theme>
</system>
-->
<!--
<system>
<name>fm7</name>
<fullname>Fujitsu FM-7</fullname>
<path>%ROMPATH%/fm7</path>
<extension>.1dd .1DD .cqi .CQI .cqm .CQM .d77 .D77 .d88 .D88 .dfi .DFI .dsk .DSK .hfe .HFE .imd .IMD .mfi .MFI .mfm .MFM .t77 .T77 .td0 .TD0 .wav .WAV .7z .7Z .zip .ZIP</extension>
<command label="MAME [FM-7 Diskette] (Standalone)">%STARTDIR%=~/.mame %EMULATOR_MAME% -rompath %GAMEDIR%\;%ROMPATH%/fm7 fm7 -flop1 %ROM%</command>
<command label="MAME [FM-7 Tape] (Standalone)">%STARTDIR%=~/.mame %EMULATOR_MAME% -rompath %GAMEDIR%\;%ROMPATH%/fm7 fm7 -autoboot_delay "5" -autoboot_command "load\n\n\nrun\n" -cass1 %ROM%</command>
<command label="MAME [FM-7 Software list] (Standalone)">%STARTDIR%=~/.mame %EMULATOR_MAME% -rompath %GAMEDIR%\;%ROMPATH%/fm7 fm7 %BASENAME%</command>
<command label="MAME [FM77AV Diskette] (Standalone)">%STARTDIR%=~/.mame %EMULATOR_MAME% -rompath %GAMEDIR%\;%ROMPATH%/fm7 fm77av -flop1 %ROM%</command>
<command label="MAME [FM77AV Tape] (Standalone)">%STARTDIR%=~/.mame %EMULATOR_MAME% -rompath %GAMEDIR%\;%ROMPATH%/fm7 fm77av -autoboot_delay "5" -autoboot_command "load\n\n\nrun\n" -cass1 %ROM%</command>
<command label="MAME [FM77AV Software list] (Standalone)">%STARTDIR%=~/.mame %EMULATOR_MAME% -rompath %GAMEDIR%\;%ROMPATH%/fm7 fm77av %BASENAME%</command>
<platform>fm7</platform>
<theme>fm7</theme>
</system>
-->
<!--
<system>
<name>fmtowns</name>
<fullname>Fujitsu FM Towns</fullname>
<path>%ROMPATH%/fmtowns</path>
<extension>.cue .CUE .iso .ISO</extension>
<extension>.cue .CUE .iso .ISO .7z .7Z .zip .ZIP</extension>
<command label="Tsugaru (Standalone)">%EMULATOR_TSUGARU% %EMUDIR%/roms -HOSTSHORTCUT ESC 0 0 FORCEQUIT -FULLSCREEN -CD %ROM% %INJECT%=%BASENAME%.cfg</command>
<command label="MAME (Standalone)">%STARTDIR%=~/.mame %EMULATOR_MAME% -rompath %GAMEDIR%\;%ROMPATH%/fmtowns fmtowns %BASENAME%</command>
<platform>fmtowns</platform>
<theme>fmtowns</theme>
</system>
@ -605,6 +698,18 @@
<platform>fpinball</platform>
<theme>fpinball</theme>
</system>
-->
<!--
<system>
<name>gamate</name>
<fullname>Bit Corporation Gamate</fullname>
<path>%ROMPATH%/gamate</path>
<extension>.bin .BIN .7z .7Z .zip .ZIP</extension>
<command label="MAME - Current">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mame_libretro.so "gamate -rompath %GAMEDIR%\;%ROMPATH%/gamate -cart \"%ROMRAW%\""</command>
<command label="MAME (Standalone)">%STARTDIR%=~/.mame %EMULATOR_MAME% -rompath %GAMEDIR%\;%ROMPATH%/gamate gamate -cart %ROM%</command>
<platform>gamate</platform>
<theme>gamate</theme>
</system>
-->
<system>
<name>gameandwatch</name>
@ -623,6 +728,7 @@
<fullname>Tiger Electronics Game.com</fullname>
<path>%ROMPATH%/gamecom</path>
<extension>.tgc .TGC .7z .7Z .zip .ZIP</extension>
<command label="MAME - Current">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mame_libretro.so "gamecom -rompath %GAMEDIR%\;%ROMPATH%/gamecom -cartridge1 \"%ROMRAW%\""</command>
<command label="MAME (Standalone)">%STARTDIR%=~/.mame %EMULATOR_MAME% -rompath %GAMEDIR%\;%ROMPATH%/gamecom gamecom -cartridge1 %ROM%</command>
<platform>gamecom</platform>
<theme>gamecom</theme>
@ -637,8 +743,9 @@
<command label="Genesis Plus GX Wide">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/genesis_plus_gx_wide_libretro.so %ROM%</command>
<command label="Gearsystem">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/gearsystem_libretro.so %ROM%</command>
<command label="SMS Plus GX">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/smsplus_libretro.so %ROM%</command>
<!-- <command label="PicoDrive">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/picodrive_libretro.so %ROM%</command> -->
<!-- <command label="Mednafen (Standalone)">%EMULATOR_MEDNAFEN% -force_module gg %ROM%</command> -->
<!--<command label="PicoDrive">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/picodrive_libretro.so %ROM%</command> -->
<!--<command label="Mednafen (Standalone)">%EMULATOR_MEDNAFEN% -force_module gg %ROM%</command> -->
<!--<command label="ares (Standalone)">%EMULATOR_ARES% &ndash;&ndash;fullscreen &ndash;&ndash;system "Game Gear" %ROM%</command>-->
<platform>gamegear</platform>
<theme>gamegear</theme>
</system>
@ -654,6 +761,7 @@
<!-- <command label="Gearboy (Standalone)">%EMULATOR_GEARBOY% %ROM%</command> -->
<command label="TGB Dual">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/tgbdual_libretro.so %ROM%</command>
<command label="Mesen-S">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mesen-s_libretro.so %ROM%</command>
<!--<command label="Mesen (Standalone)">%EMULATOR_MESEN% &ndash;&ndash;fullscreen %ROM%</command>-->
<command label="bsnes">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/bsnes_libretro.so %ROM%</command>
<command label="mGBA">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mgba_libretro.so %ROM%</command>
<!-- <command label="mGBA (Standalone)">%EMULATOR_MGBA% -f %ROM%</command> -->
@ -673,6 +781,8 @@
<!-- <command label="VBA-M (Standalone)">%EMULATOR_VBA-M% -f %ROM%</command> -->
<command label="VBA Next">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/vba_next_libretro.so %ROM%</command>
<command label="gpSP">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/gpsp_libretro.so %ROM%</command>
<!--<command label="ares (Standalone)">%EMULATOR_ARES% &ndash;&ndash;fullscreen &ndash;&ndash;system "Game Boy Advance" %ROM%</command>-->
<!--<command label="SkyEmu (Standalone)">%EMULATOR_SKYEMU% %ROM%</command>-->
<platform>gba</platform>
<theme>gba</theme>
</system>
@ -688,6 +798,7 @@
<!-- <command label="Gearboy (Standalone)">%EMULATOR_GEARBOY% %ROM%</command> -->
<command label="TGB Dual">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/tgbdual_libretro.so %ROM%</command>
<command label="Mesen-S">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mesen-s_libretro.so %ROM%</command>
<!--<command label="Mesen (Standalone)">%EMULATOR_MESEN% &ndash;&ndash;fullscreen %ROM%</command>-->
<command label="bsnes">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/bsnes_libretro.so %ROM%</command>
<command label="mGBA">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mgba_libretro.so %ROM%</command>
<!-- <command label="mGBA (Standalone)">%EMULATOR_MGBA% -f %ROM%</command> -->
@ -729,6 +840,7 @@
<fullname>Hartung Game Master</fullname>
<path>%ROMPATH%/gmaster</path>
<extension>.bin .BIN .7z .7Z .zip .ZIP</extension>
<command label="MAME - Current">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mame_libretro.so "gmaster -rompath %GAMEDIR%\;%ROMPATH%/gmaster -cart \"%ROMRAW%\""</command>
<command label="MAME (Standalone)">%STARTDIR%=~/.mame %EMULATOR_MAME% -rompath %GAMEDIR%\;%ROMPATH%/gmaster gmaster -cart %ROM%</command>
<platform>gmaster</platform>
<theme>gmaster</theme>
@ -774,6 +886,18 @@
<theme>kodi</theme>
</system>
-->
<system>
<name>laserdisc</name>
<fullname>LaserDisc Games</fullname>
<path>%ROMPATH%/laserdisc</path>
<extension>.daphne .singe .7z .7Z .zip .ZIP</extension>
<!--<command label="Hypseus [Daphne] (Standalone)">%EMULATOR_HYPSEUS-SINGE% %BASENAME% vldp -framefile %GAMEDIR%/%BASENAME%.txt %INJECT%=%BASENAME%.commands</command>-->
<!--<command label="Hypseus [Singe] (Standalone)">%EMULATOR_HYPSEUS-SINGE% singe vldp -framefile %GAMEDIR%/%BASENAME%.txt -script %GAMEDIR%/%BASENAME%.singe %INJECT%=%BASENAME%.commands</command>-->
<command label="MAME - Current">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mame_libretro.so %ROM%</command>
<!--<command label="MAME (Standalone)">%STARTDIR%=~/.mame %EMULATOR_MAME% -rompath %GAMEDIR%\;%ROMPATH%/laserdisc %BASENAME%</command>-->
<platform>daphne, arcade</platform>
<theme>laserdisc</theme>
</system>
<system>
<name>lcdgames</name>
<fullname>LCD Handheld Games</fullname>
@ -827,24 +951,17 @@
<platform>arcade</platform>
<theme>mame</theme>
</system>
<!--
<system>
<name>mame-advmame</name>
<fullname>AdvanceMAME</fullname>
<path>%ROMPATH%/mame-advmame</path>
<extension>.chd .cue .CUE .CHD .cmd .CMD .fba .FBA .iso .ISO .7z .7Z .zip .ZIP</extension>
<command>PLACEHOLDER %ROM%</command>
<extension>.7z .7Z .zip .ZIP</extension>
<command label="AdvanceMAME (Standalone)">%STARTDIR%=~/.advance %EMULATOR_ADVANCEMAME% %BASENAME%</command>
<platform>arcade</platform>
<theme>mame-advmame</theme>
</system>
<system>
<name>mame-mame4all</name>
<fullname>MAME4ALL</fullname>
<path>%ROMPATH%/mame-mame4all</path>
<extension>.chd .cue .CUE .CHD .cmd .CMD .fba .FBA .iso .ISO .7z .7Z .zip .ZIP</extension>
<command>PLACEHOLDER %ROM%</command>
<platform>arcade</platform>
<theme>mame-mame4all</theme>
</system>
-->
<system>
<name>mastersystem</name>
<fullname>Sega Master System</fullname>
@ -917,6 +1034,7 @@
<platform>mess</platform>
<theme>mess</theme>
</system>
<system>
<name>model2</name>
<fullname>Sega Model 2</fullname>
@ -924,6 +1042,9 @@
<extension>.7z .7Z .zip .ZIP</extension>
<command label="MAME - Current">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mame_libretro.so %ROM%</command>
<command label="MAME (Standalone)">%STARTDIR%=~/.mame %EMULATOR_MAME% -rompath %GAMEDIR%\;%ROMPATH%/model2 %BASENAME%</command>
<!--<command label="MAME (Standalone)">%STARTDIR%=~/.mame %EMULATOR_MAME% -rompath %GAMEDIR%\;%ROMPATH%/model2 %BASENAME%</command>-->
<!--<command label="Model 2 Emulator (Wine)">%STARTDIR%=%EMUDIR% %PRECOMMAND_WINE% %EMULATOR_M2EMULATOR-WINDOWS% %BASENAME%</command>-->
<!--<command label="Model 2 Emulator (Proton)">%STARTDIR%=%EMUDIR% %PRECOMMAND_PROTON% %EMULATOR_M2EMULATOR-WINDOWS% %BASENAME%</command>-->
<platform>arcade</platform>
<theme>model2</theme>
</system>
@ -1073,11 +1194,21 @@
<platform>arcade</platform>
<theme>naomi</theme>
</system>
<system>
<name>naomi2</name>
<fullname>Sega NAOMI 2</fullname>
<path>%ROMPATH%/naomi2</path>
<extension>.bin .BIN .dat .DAT .elf .ELF .lst .LST .7z .7Z .zip .ZIP</extension>
<command label="Flycast">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/flycast_libretro.so %ROM%</command>
<!--<command label="Flycast (Standalone)">%EMULATOR_FLYCAST% %ROM%</command>-->
<platform>arcade</platform>
<theme>naomi2</theme>
</system>
<system>
<name>naomigd</name>
<fullname>Sega NAOMI GD-ROM</fullname>
<path>%ROMPATH%/naomigd</path>
<extension>.cdi .CDI .iso .ISO .elf .ELF .bin .BIN .cue .CUE .gdi .GDI .lst .LST .dat .DAT .m3u .M3U .7z .7Z .zip .ZIP</extension>
<extension>.bin .BIN .dat .DAT .elf .ELF .lst .LST .7z .7Z .zip .ZIP</extension>
<command label="Flycast">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/flycast_libretro.so %ROM%</command>
<!-- <command label="Flycast (Standalone)">%EMULATOR_FLYCAST% %ROM%</command> -->
<platform>arcade</platform>
@ -1093,6 +1224,7 @@
<!-- <command label="DeSmuME (Standalone)">%EMULATOR_DESMUME% %ROM%</command> -->
<command label="melonDS">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/melonds_libretro.so %ROM%</command>
<command label="melonDS (Standalone)">%EMULATOR_MELONDS% %ROM%</command>
<!--<command label="SkyEmu (Standalone)">%EMULATOR_SKYEMU% %ROM%</command>-->
<platform>nds</platform>
<theme>nds</theme>
</system>
@ -1137,8 +1269,9 @@
<path>%ROMPATH%/nes</path>
<extension>.fds .FDS .nes .NES .unf .UNF .unif .UNIF .7z .7Z .zip .ZIP</extension>
<command label="Mesen">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mesen_libretro.so %ROM%</command>
<!--<command label="Mesen (Standalone)">%EMULATOR_MESEN% &ndash;&ndash;fullscreen %ROM%</command>-->
<command label="Nestopia UE">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/nestopia_libretro.so %ROM%</command>
<!-- <command label="Nestopia UE (Standalone)">%EMULATOR_NESTOPIA-UE% &ndash;&ndashfullscreen %ROM%</command> -->
<!-- <command label="Nestopia UE (Standalone)">%EMULATOR_NESTOPIA-UE% &ndash;&ndash;fullscreen %ROM%</command> -->
<command label="FCEUmm">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/fceumm_libretro.so %ROM%</command>
<command label="QuickNES">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/quicknes_libretro.so %ROM%</command>
<!-- <command label="puNES (Standalone)">%EMULATOR_PUNES% -u yes %ROM%</command> -->
@ -1148,6 +1281,20 @@
<platform>nes</platform>
<theme>nes</theme>
</system>
<!--
<system>
<name>ngage</name>
<fullname>Nokia N-Gage</fullname>
<path>%ROMPATH%/ngage</path>
<extension>.ngage .zip .ZIP</extension>
<command label="EKA2L1 [Mounted] (Standalone)">%EMULATOR_EKA2L1% &ndash;&ndash;fullscreen &ndash;&ndash;device RH-29 &ndash;&ndash;mount %ROM% &ndash;&ndash;run "%BASENAME%"</command>
<command label="EKA2L1 [Installed] (Standalone)">%EMULATOR_EKA2L1% &ndash;&ndash;fullscreen &ndash;&ndash;device RH-29 &ndash;&ndash;run "%BASENAME%"</command>
<command label="EKA2L1 [Mounted] (Wine)">%STARTDIR%=%EMUDIR% %PRECOMMAND_WINE% %EMULATOR_EKA2L1-WINDOWS% &ndash;&ndash;fullscreen &ndash;&ndash;device RH-29 &ndash;&ndash;mount %ROM% &ndash;&ndash;run "%BASENAME%"</command>
<command label="EKA2L1 [Installed] (Wine)">%STARTDIR%=%EMUDIR% %PRECOMMAND_WINE% %EMULATOR_EKA2L1-WINDOWS% &ndash;&ndash;fullscreen &ndash;&ndash;device RH-29 &ndash;&ndash;run "%BASENAME%"</command>
<platform>ngage</platform>
<theme>ngage</theme>
</system>
-->
<system>
<name>ngp</name>
<fullname>SNK Neo Geo Pocket</fullname>
@ -1216,8 +1363,9 @@
<name>pc88</name>
<fullname>NEC PC-8800 Series</fullname>
<path>%ROMPATH%/pc88</path>
<extension>.d88 .D88 .u88 .U88 .m3u .M3U .7z .7Z .zip .ZIP</extension>
<extension>.88d .88D .cmt .CMT .d88 .D88 .m3u .M3U .t88 .T88 .u88 .U88</extension>
<command label="QUASI88">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/quasi88_libretro.so %ROM%</command>
<!--<command label="QUASI88 (Standalone)">%EMULATOR_QUASI88% -romdir ~/.quasi88 %ROM%</command>-->
<platform>pc88</platform>
<theme>pc88</theme>
</system>
@ -1275,6 +1423,16 @@
<platform>pico8</platform>
<theme>pico8</theme>
</system>
<system>
<name>plus4</name>
<fullname>Commodore Plus/4</fullname>
<path>%ROMPATH%/plus4</path>
<extension>.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</extension>
<command label="VICE xplus4">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/vice_xplus4_libretro.so %ROM%</command>
<!--<command label="VICE xplus4 (Standalone)">%EMULATOR_VICE-XPLUS4% %ROM%</command>-->
<platform>plus4</platform>
<theme>plus4</theme>
</system>
<system>
<name>pokemini</name>
<fullname>Nintendo Pokémon Mini</fullname>
@ -1298,11 +1456,12 @@
<name>ps2</name>
<fullname>Sony PlayStation 2</fullname>
<path>%ROMPATH%/ps2</path>
<command label="PCSX2 (Standalone)">%EMULATOR_PCSX2% -batch %ROM%</command>
<extension>.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</extension>
<extension>.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</extension>
<command label="PCSX2 (Standalone)">%EMULATOR_PCSX2% -batch %ROM%</command>
<command label="LRPS2">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/pcsx2_libretro.so %ROM%</command>
<command label="PCSX2">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/pcsx2_libretro.so %ROM%</command>
<!-- <command label="Play! (Standalone)">%EMULATOR_PLAY!% &ndash;&ndashdisc %ROM%</command> -->
<!--<command label="PCSX2 Legacy (Standalone)">%EMULATOR_PCSX2-LEGACY% &ndash;&ndash;nogui %ROM%</command>-->
<!--<command label="Play! (Standalone)">%EMULATOR_PLAY!% &ndash;&ndash;disc %ROM%</command>-->
<platform>ps2</platform>
<theme>ps2</theme>
</system>
@ -1337,7 +1496,7 @@
<platform>psp</platform>
<theme>psp</theme>
</system>
<!--
<system>
<name>psvita</name>
<fullname>Sony PlayStation Vita</fullname>
@ -1347,7 +1506,7 @@
<platform>psvita</platform>
<theme>psvita</theme>
</system>
-->
<system>
<name>psx</name>
<fullname>Sony PlayStation</fullname>
@ -1412,6 +1571,8 @@
<command label="bsnes-mercury Accuracy">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/bsnes_mercury_accuracy_libretro.so %ROM%</command>
<!--<command label="bsnes (Standalone)">%EMULATOR_BSNES% &ndash;&ndashfullscreen %ROM%</command> -->
<command label="Mesen-S">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mesen-s_libretro.so %ROM%</command>
<!--<command label="Mesen (Standalone)">%EMULATOR_MESEN% &ndash;&ndash;fullscreen %ROM%</command>-->
<!--<command label="ares (Standalone)">%EMULATOR_ARES% &ndash;&ndash;fullscreen &ndash;&ndash;system "Super Famicom" %ROM%</command>-->
<platform>satellaview</platform>
<theme>satellaview</theme>
</system>
@ -1457,6 +1618,7 @@
<fullname>Epoch Super Cassette Vision</fullname>
<path>%ROMPATH%/scv</path>
<extension>.0 .bin .BIN .7z .7Z .zip .ZIP</extension>
<command label="MAME - Current">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mame_libretro.so "scv -rompath %GAMEDIR%\;%ROMPATH%/scv -cart \"%ROMRAW%\""</command>
<command label="MAME (Standalone)">%STARTDIR%=~/.mame %EMULATOR_MAME% -rompath %GAMEDIR%\;%ROMPATH%/scv scv -cart %ROM%</command>
<platform>scv</platform>
<theme>scv</theme>
@ -1585,7 +1747,7 @@
<platform>snes</platform>
<theme>snesna</theme>
</system>
<!--
<system>
<name>solarus</name>
<fullname>Solarus Game Engine</fullname>
@ -1595,7 +1757,7 @@
<platform>solarus</platform>
<theme>solarus</theme>
</system>
-->
<system>
<name>spectravideo</name>
<fullname>Spectravideo</fullname>
@ -1614,6 +1776,18 @@
<platform>stratagus</platform>
<theme>stratagus</theme>
</system>
<system>
<name>stv</name>
<fullname>Sega Titan Video Game System</fullname>
<path>%ROMPATH%/stv</path>
<extension>.7z .7Z .zip .ZIP</extension>
<command label="Kronos">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/kronos_libretro.so %ROM%</command>
<!--<command label="MAME - Current">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mame_libretro.so %ROM%</command>-->
<!--<command label="MAME (Standalone)">%STARTDIR%=~/.mame %EMULATOR_MAME% -rompath %GAMEDIR%\;%ROMPATH%/stv %BASENAME%</command>-->
<!--<command label="Mednafen (Standalone)">%EMULATOR_MEDNAFEN% -force_module ss %ROM%</command>-->
<platform>arcade</platform>
<theme>stv</theme>
</system>
<system>
<name>sufami</name>
<fullname>Bandai SuFami Turbo</fullname>
@ -1650,6 +1824,18 @@
<platform>supervision</platform>
<theme>supervision</theme>
</system>
<!--
<system>
<name>supracan</name>
<fullname>Funtech Super A'Can</fullname>
<path>%ROMPATH%/supracan</path>
<extension>.bin .BIN .7z .7Z .zip .ZIP</extension>
<command label="MAME - Current">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mame_libretro.so "supracan -rompath %GAMEDIR%\;%ROMPATH%/supracan -cart \"%ROMRAW%\""</command>
<command label="MAME (Standalone)">%STARTDIR%=~/.mame %EMULATOR_MAME% -rompath %GAMEDIR%\;%ROMPATH%/supracan supracan -cart %ROM%</command>
<platform>supracan</platform>
<theme>supracan</theme>
</system>
-->
<system>
<name>switch</name>
<fullname>Nintendo Switch</fullname>
@ -1665,9 +1851,12 @@
<name>symbian</name>
<fullname>Symbian</fullname>
<path>%ROMPATH%/symbian</path>
<extension>.7z .7Z .zip .ZIP</extension>
<command>PLACEHOLDER %ROM%</command>
<platform>android</platform>
<extension>.sis .SIS .sisx .SISX .symbian</extension>
<command label="EKA2L1 [Nokia N-Gage] (Standalone)">%EMULATOR_EKA2L1% --fullscreen --device RH-29 --run "%BASENAME%"</command>
<command label="EKA2L1 [Nokia N70] (Standalone)">%EMULATOR_EKA2L1% --fullscreen --device RM-84 --run "%BASENAME%"</command>
<command label="EKA2L1 [Nokia N97] (Standalone)">%EMULATOR_EKA2L1% --fullscreen --device RM-507 --run "%BASENAME%"</command>
<command label="EKA2L1 [Custom device] (Standalone)">%EMULATOR_EKA2L1% --fullscreen --device %INJECT%=%BASENAME%.device --run "%BASENAME%"</command>
<platform>ngage</platform>
<theme>symbian</theme>
</system>
<!--
@ -1735,6 +1924,15 @@
<theme>to8</theme>
</system>
<!--
<system>
<name>triforce</name>
<fullname>Namco-Sega-Nintendo Triforce</fullname>
<path>%ROMPATH%/triforce</path>
<extension>.ciso .CISO .dff .DFF .dol .DOL .elf .ELF .gcm .GCM .gcz .GCZ .iso .ISO .json .JSON .m3u .M3U .rvz .RVZ .tgc .TGC .wad .WAD .wbfs .WBFS .wia .WIA .7z .7Z .zip .ZIP</extension>
<command label="Triforce (Standalone)">%INJECT%=%BASENAME%.esprefix %EMULATOR_TRIFORCE% -b -e %ROM%</command>
<platform>arcade</platform>
<theme>triforce</theme>
</system>
<system>
<name>trs-80</name>
<fullname>Tandy TRS-80</fullname>
@ -1746,6 +1944,18 @@
<platform>trs-80</platform>
<theme>trs-80</theme>
</system>
<system>
<name>type-x</name>
<fullname>Taito Type X</fullname>
<path>%ROMPATH%/type-x</path>
<extension>.AppImage .desktop .exe .EXE .sh</extension>
<command label="Wine (Standalone)">%STARTDIR%=%GAMEDIR% %EMULATOR_WINE% %ROM%</command>
<command label="Proton (Standalone)">%STARTDIR%=%GAMEDIR% %EMULATOR_PROTON% %ROM%</command>
<command label="AppImage">%EMULATOR_OS-SHELL% -c "%ROM%"</command>
<command label="Shortcut or script">%ENABLESHORTCUTS% %EMULATOR_OS-SHELL% %ROM%</command>
<platform>arcade</platform>
<theme>type-x</theme>
</system>
-->
<system>
<name>uzebox</name>
@ -1800,7 +2010,7 @@
<fullname>Visual Pinball</fullname>
<path>%ROMPATH%/vpinball</path>
<extension>.vpt .VPT .vpx .VPX</extension>
<command label="Visual Pinball (Standalone)">PLACEHOLDER %ROM%</command>
<command label="Visual Pinball (Standalone)">%EMULATOR_VISUAL-PINBALL% -Minimized -Play %ROM%</command>
<platform>vpinball</platform>
<theme>vpinball</theme>
</system>
@ -1811,6 +2021,7 @@
<fullname>VTech V.Smile</fullname>
<path>%ROMPATH%/vsmile</path>
<extension>.bin .BIN .7z .7Z .zip .ZIP</extension>
<command label="MAME - Current">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mame_libretro.so "vsmile -rompath %GAMEDIR%\;%ROMPATH%/vsmile -cart \"%ROMRAW%\""</command>
<command label="MAME (Standalone)">%STARTDIR%=~/.mame %EMULATOR_MAME% -rompath %GAMEDIR%\;%ROMPATH%/vsmile vsmile -cart %ROM%</command>
<platform>vsmile</platform>
<theme>vsmile</theme>
@ -1900,8 +2111,10 @@
<name>xbox360</name>
<fullname>Microsoft Xbox 360</fullname>
<path>%ROMPATH%/xbox360</path>
<extension>. .iso .ISO .xex .XEX</extension>
<command>PLACEHOLDER %ROM%</command>
<extension>. .desktop .iso .ISO .sh .xex .XEX</extension>
<command label="xenia (Wine)">%STARTDIR%=%EMUDIR% %PRECOMMAND_WINE% %EMULATOR_XENIA-WINDOWS% %ROM%</command>
<command label="xenia (Proton)">%STARTDIR%=%EMUDIR% %PRECOMMAND_PROTON% %EMULATOR_XENIA-WINDOWS% %ROM%</command>
<command label="Shortcut or script">%ENABLESHORTCUTS% %EMULATOR_OS-SHELL% %ROM%</command>
<platform>xbox360</platform>
<theme>xbox360</theme>
</system>

View file

@ -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

View file

@ -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",
)

View file

@ -74,6 +74,20 @@
</ul>
</description>
</release>
<release version="0.7.3b" date="2023-11-14">
<url>https://github.com/XargonWan/RetroDECK/releases/tag/0.7.3b</url>
<description>
<p>Updates:</p>
<ul>
<li>All standalone emulators</li>
<li>EmulationStation Desktop Edition (ES-DE)</li>
</ul>
<p>Known issues:</p>
<ul>
<li>Please check the know issues in the Wiki under General Infomration.</li>
</ul>
</description>
</release>
<release version="0.7.2b" date="2023-09-27">
<url>https://github.com/XargonWan/RetroDECK/releases/tag/0.7.2b</url>
<description>

View file

@ -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

View file

@ -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
# Ryujinx - END

View file

@ -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"]
}

View file

@ -0,0 +1,25 @@
#!/bin/bash -e
report_error() {
read -r -d '|' MESSAGE <<EOF
Unfortunately, Citra seems to have crashed.
We kindly ask you to submit a bug report to <a href="https://github.com/flathub/org.citra_emu.citra/issues">https://github.com/flathub/org.citra_emu.citra/issues</a>.
When submitting a bug report, please attach your <b>system information</b> and the <b>Citra log file</b>.
You seem to be using ${XDG_SESSION_DESKTOP} ${DESKTOP_SESSION} (${XDG_SESSION_TYPE}):
To obtain Citra log files, please see <a href="https://community.citra-emu.org/t/how-to-upload-the-log-file/296">this guide</a>.
To obtain your system information, please install <tt>inxi</tt> and run <tt>inxi -v3</tt>. |
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

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 16 KiB

View file

@ -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

View file

@ -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

View file

@ -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));

View file

@ -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 @@
}
+

View file

@ -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."

View file

@ -0,0 +1,34 @@
From f2d3b349d8487cf0ee50b36ba024ac513d36f826 Mon Sep 17 00:00:00 2001
From: Carles Pastor <cpbadosa@gmail.com>
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

View file

@ -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)

BIN
res/retrodeck.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

View file

@ -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
}

View file

@ -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.<br>
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 friends/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