VERSION: 0.4.0b merged from cooker

This commit is contained in:
Xargon 2022-05-26 17:42:58 +09:00
commit c581fd98c4
26 changed files with 2063 additions and 442 deletions

View file

@ -1,10 +1,6 @@
# Due to the changes to the build systems actually on the branch integrated, this script will fail on main until merged
name: cooker
name: Cooker
# Controls when the workflow will run
on:
# Triggers the workflow on push or pull request events but only for the main branch
push:
branches:
- cooker*
@ -12,23 +8,56 @@ on:
branches:
- cooker*
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
# This workflow contains a single job called "build"
build_cooker_snap:
# The type of runner that the job will run on
runs-on: ubuntu-latest
# Steps represent a sequence of tasks that will be executed as part of the job
jobs:
Job1_-_Building_P1:
runs-on: ubuntu-latest
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- name: Get date for artifacts
id: date
run: echo "::set-output name=date::$(date +'%Y%m%d_%H%M%S')"
- name: Extract branch name
shell: bash
run: echo "##[set-output name=branch;]$(echo ${GITHUB_REF#refs/heads/})"
id: extract_branch
- name: Generate build ID
id: generating_buildid
run: echo "##[set-output name=build-id;]$(echo "${{ steps.extract_branch.outputs.branch }}-${{ steps.date.outputs.date }}")"
- uses: actions/checkout@v3
- name: Prepearing enviornment
- name: Download global cache
uses: dawidd6/action-download-artifact@v2
with:
workflow: cooker.yml
name: global-cache
search_artifacts: true
skip_unpack: true
continue-on-error: true
- name: Extract global cache
run: |
tar --skip-old-files -xzvf retrodeck-cooker.tar.gz
rm -f retrodeck-cooker.tar.gz
continue-on-error: true
- name: DEBUG
run: |
echo "Listing folder $PWD contents"
ls -lna
echo "Checking for version file"
find ~ -iname version
cat $(find ~ -iname version)
- name: Initialize enviornment
run: |
git pull
git submodule init
git submodule update
sudo add-apt-repository ppa:alexlarsson/flatpak
@ -36,11 +65,83 @@ jobs:
sudo apt install flatpak flatpak-builder p7zip-full
sudo flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
sudo flatpak install -y org.kde.Sdk//5.15-21.08 org.kde.Platform//5.15-21.08 io.qt.qtwebengine.BaseApp/x86_64/5.15-21.08 org.freedesktop.Sdk.Extension.llvm13
- name: Building flatpak
- name: Buld part 1 - Until melonds
run: |
sudo flatpak-builder --user --install --force-clean --repo=local retrodeck-flatpak net.retrodeck.retrodeck.yml
sudo flatpak build-bundle local RetroDECK.flatpak net.retrodeck.retrodeck
sudo flatpak-builder --build-only --stop-at=melonds --user --force-clean --repo=${GITHUB_WORKSPACE}/local retrodeck-flatpak-cooker net.retrodeck.retrodeck.yml
- name: Compress cache
run: |
touch retrodeck-cooker.tar.gz
rm -rf .flatpak-builder/build/*-{2,3,4,5,6}
find .flatpak-builder/build -xtype l -exec rm {} \; # removing dead symlinks
tar --ignore-failed-read -czvf retrodeck-cooker.tar.gz retrodeck-flatpak-cooker .flatpak-builder/build
- name: Upload build specific cache
uses: actions/upload-artifact@v3
with:
name: "${{ steps.generating_buildid.outputs.build-id }}"
path: retrodeck-cooker.tar.gz
# this is done to speed up the things now, it may be removed later
- name: Compress global cache
run: |
touch retrodeck-cooker.tar.gz
rm -rf .flatpak-builder/build/*-{2,3,4,5,6}
find .flatpak-builder/build -xtype l -exec rm {} \; # removing dead symlinks
tar --ignore-failed-read -czvf retrodeck-cooker.tar.gz retrodeck-flatpak-cooker .flatpak-builder/build
continue-on-error: true
- name: Upload global cache
uses: actions/upload-artifact@v3
with:
name: global-cache
path: retrodeck-cooker.tar.gz RetroDECK.flatpak
continue-on-error: true
outputs:
buildID: "${{ steps.generating_buildid.outputs.build-id }}"
Job2_-_Build_P2_and_publish:
runs-on: ubuntu-latest
needs: [Job1_-_Building_P1]
steps:
- uses: actions/checkout@v3
- name: Download build specific cache
uses: actions/download-artifact@v2
with:
name: ${{ needs.Job1_-_Building_P1.outputs.buildID }}
- name: Extract cache
run: |
tar --skip-old-files -xzvf retrodeck-cooker.tar.gz
rm -f retrodeck-cooker.tar.gz
- name: DEBUG
run: |
echo "Listing folder $PWD contents"
ls -lna
echo "Checking for version file"
find ~ -iname version
cat $(find ~ -iname version)
- name: Initialize enviornment
run: |
git pull
git submodule init
git submodule update
sudo add-apt-repository ppa:alexlarsson/flatpak
sudo apt-get update
sudo apt install flatpak flatpak-builder p7zip-full
sudo flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
sudo flatpak install -y org.kde.Sdk//5.15-21.08 org.kde.Platform//5.15-21.08 io.qt.qtwebengine.BaseApp/x86_64/5.15-21.08 org.freedesktop.Sdk.Extension.llvm13
- name: Create Bundle
run: |
sudo flatpak-builder --user --force-clean --repo=${GITHUB_WORKSPACE}/local retrodeck-flatpak-cooker net.retrodeck.retrodeck.yml
sudo flatpak build-bundle $GITHUB_WORKSPACE/local RetroDECK.flatpak net.retrodeck.retrodeck
- name: Get date for artifacts
id: date
@ -51,14 +152,25 @@ jobs:
run: echo "##[set-output name=branch;]$(echo ${GITHUB_REF#refs/heads/})"
id: extract_branch
- name: Read version from version file
id: version
run: echo "##[set-output name=version;]$(cat $(find . -name version))"
- name: DEBUG - Print version name
shell: bash
run: |
echo "DEBUG: printing version from version file"
echo "${{ steps.version.outputs.version }}"
- name: Publish the flatpak in a new cooker release
uses: ncipollo/release-action@v1
with:
#tag: "${{ steps.version.outputs.version }}"
tag: "${{ steps.extract_branch.outputs.branch }}-${{ steps.date.outputs.date }}"
body: |
# Release Notes (Cooker)
This is a cooker snapshot based on the commit: ${{ github.event.repository.full_name }}@${{github.sha}}.
Cooker channel is provided for the community to test fixes and explore new functionality.
Please DO NOT open issues or ask support on this build.
@ -68,3 +180,26 @@ jobs:
draft: false
token: ${{ secrets.TRIGGER_BUILD_TOKEN }}
repo: RetroDECK-cooker
continue-on-error: true
- name: Compress global cache
run: |
touch retrodeck-cooker.tar.gz
rm -rf .flatpak-builder/build/*-{2,3,4,5,6}
find .flatpak-builder/build -xtype l -exec rm {} \; # removing dead symlinks
tar --ignore-failed-read -czvf retrodeck-cooker.tar.gz retrodeck-flatpak-cooker .flatpak-builder/build
continue-on-error: true
- name: Upload global cache
uses: actions/upload-artifact@v3
with:
name: global-cache
path: retrodeck-cooker.tar.gz RetroDECK.flatpak
continue-on-error: true
- name: Upload RetroDECK.flatpak
uses: actions/upload-artifact@v3
with:
name: retrodeck-flatpak
path: RetroDECK.flatpak
continue-on-error: true

View file

@ -15,8 +15,8 @@ jobs:
steps:
- name: Remove old artifacts
uses: c-hive/gha-remove-artifacts@v1
#with:
#age: '1 month' # '<number> <unit>', e.g. 5 days, 2 years, 90 seconds, parsed by Moment.js
with:
age: '2 seconds' # '<number> <unit>', e.g. 5 days, 2 years, 90 seconds, parsed by Moment.js
# Optional inputs
# skip-tags: true
# skip-recent: 5

View file

@ -49,7 +49,7 @@ Langs=/app/share/PCSX2/resources/locale
Cheats=/var/config/PCSX2/cheats
CheatsWS=/var/config/PCSX2/cheats_ws
Cache=/var/config/PCSX2/cache
Textures=
Textures=/var/config/PCSX2/textures
RunIso=/var/config/PCSX2
RunELF=/var/config/PCSX2
RunDisc=

View file

@ -0,0 +1,501 @@
[Audio]
enable_audio_stretching=true
enable_audio_stretching\default=true
enable_dsp_lle=false
enable_dsp_lle\default=true
enable_dsp_lle_multithread=false
enable_dsp_lle_multithread\default=true
mic_input_device=Default
mic_input_device\default=true
mic_input_type=0
mic_input_type\default=true
output_device=auto
output_device\default=true
output_engine=auto
output_engine\default=true
volume=@Variant(\0\0\0\x87?\x80\0\0)
volume\default=true
[Camera]
camera_inner_config=
camera_inner_config\default=true
camera_inner_flip=0
camera_inner_flip\default=true
camera_inner_name=blank
camera_inner_name\default=true
camera_outer_left_config=
camera_outer_left_config\default=true
camera_outer_left_flip=0
camera_outer_left_flip\default=true
camera_outer_left_name=blank
camera_outer_left_name\default=true
camera_outer_right_config=
camera_outer_right_config\default=true
camera_outer_right_flip=0
camera_outer_right_flip\default=true
camera_outer_right_name=blank
camera_outer_right_name\default=true
[Controls]
profile=0
profile\default=true
profiles\1\button_a="button:1,engine:sdl,guid:030000005e040000120b000005050000,port:0"
profiles\1\button_a\default=false
profiles\1\button_b="button:0,engine:sdl,guid:030000005e040000120b000005050000,port:0"
profiles\1\button_b\default=false
profiles\1\button_debug="code:79,engine:keyboard"
profiles\1\button_debug\default=true
profiles\1\button_down="direction:down,engine:sdl,guid:030000005e040000120b000005050000,hat:0,port:0"
profiles\1\button_down\default=false
profiles\1\button_gpio14="code:80,engine:keyboard"
profiles\1\button_gpio14\default=true
profiles\1\button_home="button:8,engine:sdl,guid:030000005e040000120b000005050000,port:0"
profiles\1\button_home\default=false
profiles\1\button_l="button:4,engine:sdl,guid:030000005e040000120b000005050000,port:0"
profiles\1\button_l\default=false
profiles\1\button_left="direction:left,engine:sdl,guid:030000005e040000120b000005050000,hat:0,port:0"
profiles\1\button_left\default=false
profiles\1\button_r="button:5,engine:sdl,guid:030000005e040000120b000005050000,port:0"
profiles\1\button_r\default=false
profiles\1\button_right="direction:right,engine:sdl,guid:030000005e040000120b000005050000,hat:0,port:0"
profiles\1\button_right\default=false
profiles\1\button_select="button:6,engine:sdl,guid:030000005e040000120b000005050000,port:0"
profiles\1\button_select\default=false
profiles\1\button_start="button:7,engine:sdl,guid:030000005e040000120b000005050000,port:0"
profiles\1\button_start\default=false
profiles\1\button_up="direction:up,engine:sdl,guid:030000005e040000120b000005050000,hat:0,port:0"
profiles\1\button_up\default=false
profiles\1\button_x="button:3,engine:sdl,guid:030000005e040000120b000005050000,port:0"
profiles\1\button_x\default=false
profiles\1\button_y="button:2,engine:sdl,guid:030000005e040000120b000005050000,port:0"
profiles\1\button_y\default=false
profiles\1\button_zl="axis:2,direction:-,engine:sdl,guid:030000005e040000120b000005050000,port:0,threshold:0.000015"
profiles\1\button_zl\default=false
profiles\1\button_zr="axis:5,direction:-,engine:sdl,guid:030000005e040000120b000005050000,port:0,threshold:0.000015"
profiles\1\button_zr\default=false
profiles\1\c_stick="axis_x:3,axis_y:4,deadzone:0.100000,engine:sdl,guid:030000005e040000120b000005050000,port:0"
profiles\1\c_stick\default=false
profiles\1\circle_pad="axis_x:0,axis_y:1,deadzone:0.100000,engine:sdl,guid:030000005e040000120b000005050000,port:0"
profiles\1\circle_pad\default=false
profiles\1\motion_device="engine:motion_emu,update_period:100,sensitivity:0.01,tilt_clamp:90.0"
profiles\1\motion_device\default=true
profiles\1\name=default
profiles\1\name\default=true
profiles\1\touch_device=engine:emu_window
profiles\1\touch_device\default=true
profiles\1\touch_from_button_map=0
profiles\1\touch_from_button_map\default=true
profiles\1\udp_input_address=127.0.0.1
profiles\1\udp_input_address\default=true
profiles\1\udp_input_port=26760
profiles\1\udp_input_port\default=true
profiles\1\udp_pad_index=0
profiles\1\udp_pad_index\default=true
profiles\1\use_touch_from_button=false
profiles\1\use_touch_from_button\default=true
profiles\size=1
touch_from_button_maps\1\entries\size=0
touch_from_button_maps\1\name=default
touch_from_button_maps\1\name\default=true
touch_from_button_maps\size=1
[Core]
cpu_clock_percentage=100
cpu_clock_percentage\default=true
use_cpu_jit=true
use_cpu_jit\default=true
[Data%20Storage]
nand_directory=/home/steamos/.var/app/net.retrodeck.retrodeck/data/citra-emu/nand/
nand_directory\default=true
sdmc_directory=/home/steamos/.var/app/net.retrodeck.retrodeck/data/citra-emu/sdmc/
sdmc_directory\default=true
use_virtual_sd=true
use_virtual_sd\default=true
[Debugging]
LLE\AC=false
LLE\AC\default=true
LLE\ACT=false
LLE\ACT\default=true
LLE\AM=false
LLE\AM\default=true
LLE\BOSS=false
LLE\BOSS\default=true
LLE\CAM=false
LLE\CAM\default=true
LLE\CDC=false
LLE\CDC\default=true
LLE\CECD=false
LLE\CECD\default=true
LLE\CFG=false
LLE\CFG\default=true
LLE\CSND=false
LLE\CSND\default=true
LLE\DLP=false
LLE\DLP\default=true
LLE\DSP=false
LLE\DSP\default=true
LLE\ERR=false
LLE\ERR\default=true
LLE\FRD=false
LLE\FRD\default=true
LLE\FS=false
LLE\FS\default=true
LLE\GPIO=false
LLE\GPIO\default=true
LLE\GSP=false
LLE\GSP\default=true
LLE\HID=false
LLE\HID\default=true
LLE\HTTP=false
LLE\HTTP\default=true
LLE\I2C=false
LLE\I2C\default=true
LLE\IR=false
LLE\IR\default=true
LLE\LDR=false
LLE\LDR\default=true
LLE\MCU=false
LLE\MCU\default=true
LLE\MIC=false
LLE\MIC\default=true
LLE\MP=false
LLE\MP\default=true
LLE\MVD=false
LLE\MVD\default=true
LLE\NDM=false
LLE\NDM\default=true
LLE\NEWS=false
LLE\NEWS\default=true
LLE\NFC=false
LLE\NFC\default=true
LLE\NIM=false
LLE\NIM\default=true
LLE\NS=false
LLE\NS\default=true
LLE\NWM=false
LLE\NWM\default=true
LLE\PDN=false
LLE\PDN\default=true
LLE\PM=false
LLE\PM\default=true
LLE\PS=false
LLE\PS\default=true
LLE\PTM=false
LLE\PTM\default=true
LLE\PXI=false
LLE\PXI\default=true
LLE\QTM=false
LLE\QTM\default=true
LLE\SOC=false
LLE\SOC\default=true
LLE\SPI=false
LLE\SPI\default=true
LLE\SSL=false
LLE\SSL\default=true
gdbstub_port=24689
gdbstub_port\default=true
record_frame_times=false
use_gdbstub=false
use_gdbstub\default=true
[Layout]
custom_bottom_bottom=480
custom_bottom_bottom\default=true
custom_bottom_left=40
custom_bottom_left\default=true
custom_bottom_right=360
custom_bottom_right\default=true
custom_bottom_top=240
custom_bottom_top\default=true
custom_layout=false
custom_layout\default=true
custom_top_bottom=240
custom_top_bottom\default=true
custom_top_left=0
custom_top_left\default=true
custom_top_right=400
custom_top_right\default=true
custom_top_top=0
custom_top_top\default=true
factor_3d=0
factor_3d\default=true
filter_mode=true
filter_mode\default=true
layout_option=0
pp_shader_name=none (builtin)
pp_shader_name\default=true
render_3d=0
render_3d\default=true
swap_screen=false
swap_screen\default=true
upright_screen=false
upright_screen\default=true
[Miscellaneous]
log_filter=*:Info
log_filter\default=true
[Renderer]
bg_blue=0
bg_blue\default=true
bg_green=0
bg_green\default=true
bg_red=0
bg_red\default=true
frame_limit=100
frame_limit\default=true
frame_limit_alternate=200
frame_limit_alternate\default=true
resolution_factor=1
resolution_factor\default=true
shaders_accurate_mul=true
shaders_accurate_mul\default=true
texture_filter_name=none
texture_filter_name\default=true
use_disk_shader_cache=true
use_disk_shader_cache\default=true
use_frame_limit_alternate=false
use_frame_limit_alternate\default=true
use_hw_renderer=true
use_hw_renderer\default=true
use_hw_shader=true
use_hw_shader\default=true
use_shader_jit=true
use_shader_jit\default=true
use_vsync_new=true
use_vsync_new\default=true
[System]
init_clock=0
init_clock\default=true
init_time=946681277
init_time\default=true
is_new_3ds=true
is_new_3ds\default=true
region_value=-1
region_value\default=true
[UI]
GameList\hideNoIcon=false
GameList\hideNoIcon\default=true
GameList\iconSize=2
GameList\iconSize\default=true
GameList\row1=2
GameList\row1\default=true
GameList\row2=0
GameList\row2\default=true
GameList\singleLineMode=false
GameList\singleLineMode\default=true
Multiplayer\game_id=0
Multiplayer\game_id\default=true
Multiplayer\host_type=0
Multiplayer\host_type\default=true
Multiplayer\ip=
Multiplayer\ip\default=true
Multiplayer\ip_ban_list\size=0
Multiplayer\max_player=8
Multiplayer\max_player\default=true
Multiplayer\nickname=
Multiplayer\nickname\default=true
Multiplayer\port=24872
Multiplayer\port\default=true
Multiplayer\room_description=
Multiplayer\room_description\default=true
Multiplayer\room_name=
Multiplayer\room_name\default=true
Multiplayer\room_nickname=
Multiplayer\room_nickname\default=true
Multiplayer\room_port=24872
Multiplayer\room_port\default=true
Multiplayer\username_ban_list\size=0
Paths\gamedirs\1\deep_scan=false
Paths\gamedirs\1\deep_scan\default=true
Paths\gamedirs\1\expanded=true
Paths\gamedirs\1\expanded\default=true
Paths\gamedirs\1\path=INSTALLED
Paths\gamedirs\2\deep_scan=false
Paths\gamedirs\2\deep_scan\default=true
Paths\gamedirs\2\expanded=true
Paths\gamedirs\2\expanded\default=true
Paths\gamedirs\2\path=SYSTEM
Paths\gamedirs\3\deep_scan=false
Paths\gamedirs\3\deep_scan\default=true
Paths\gamedirs\3\expanded=true
Paths\gamedirs\3\expanded\default=true
Paths\gamedirs\3\path=/run/user/1000/doc/a3fd0df5/n3ds
Paths\gamedirs\size=3
Paths\language=en
Paths\language\default=false
Paths\moviePlaybackPath=
Paths\movieRecordPath=
Paths\recentFiles=/var/config/emulationstation/ROMs/n3ds/Gyakuten Saiban 123 - Naruhodo Selection (Japan) Decrypted.3ds
Paths\romsPath=
Paths\screenshotPath=
Paths\symbolsPath=
Paths\videoDumpingPath=
Shortcuts\Main%20Window\Advance%20Frame\Context=2
Shortcuts\Main%20Window\Advance%20Frame\Context\default=true
Shortcuts\Main%20Window\Advance%20Frame\KeySeq=\\
Shortcuts\Main%20Window\Advance%20Frame\KeySeq\default=true
Shortcuts\Main%20Window\Capture%20Screenshot\Context=2
Shortcuts\Main%20Window\Capture%20Screenshot\Context\default=true
Shortcuts\Main%20Window\Capture%20Screenshot\KeySeq=Ctrl+P
Shortcuts\Main%20Window\Capture%20Screenshot\KeySeq\default=true
Shortcuts\Main%20Window\Continue\Pause%20Emulation\Context=1
Shortcuts\Main%20Window\Continue\Pause%20Emulation\Context\default=true
Shortcuts\Main%20Window\Continue\Pause%20Emulation\KeySeq=F4
Shortcuts\Main%20Window\Continue\Pause%20Emulation\KeySeq\default=true
Shortcuts\Main%20Window\Decrease%20Speed%20Limit\Context=2
Shortcuts\Main%20Window\Decrease%20Speed%20Limit\Context\default=true
Shortcuts\Main%20Window\Decrease%20Speed%20Limit\KeySeq=-
Shortcuts\Main%20Window\Decrease%20Speed%20Limit\KeySeq\default=true
Shortcuts\Main%20Window\Exit%20Citra\Context=1
Shortcuts\Main%20Window\Exit%20Citra\Context\default=true
Shortcuts\Main%20Window\Exit%20Citra\KeySeq=Ctrl+Q
Shortcuts\Main%20Window\Exit%20Citra\KeySeq\default=true
Shortcuts\Main%20Window\Exit%20Fullscreen\Context=1
Shortcuts\Main%20Window\Exit%20Fullscreen\Context\default=true
Shortcuts\Main%20Window\Exit%20Fullscreen\KeySeq=Esc
Shortcuts\Main%20Window\Exit%20Fullscreen\KeySeq\default=true
Shortcuts\Main%20Window\Fullscreen\Context=1
Shortcuts\Main%20Window\Fullscreen\Context\default=true
Shortcuts\Main%20Window\Fullscreen\KeySeq=F11
Shortcuts\Main%20Window\Fullscreen\KeySeq\default=true
Shortcuts\Main%20Window\Increase%20Speed%20Limit\Context=2
Shortcuts\Main%20Window\Increase%20Speed%20Limit\Context\default=true
Shortcuts\Main%20Window\Increase%20Speed%20Limit\KeySeq=+
Shortcuts\Main%20Window\Increase%20Speed%20Limit\KeySeq\default=true
Shortcuts\Main%20Window\Load%20Amiibo\Context=2
Shortcuts\Main%20Window\Load%20Amiibo\Context\default=true
Shortcuts\Main%20Window\Load%20Amiibo\KeySeq=F2
Shortcuts\Main%20Window\Load%20Amiibo\KeySeq\default=true
Shortcuts\Main%20Window\Load%20File\Context=1
Shortcuts\Main%20Window\Load%20File\Context\default=true
Shortcuts\Main%20Window\Load%20File\KeySeq=Ctrl+O
Shortcuts\Main%20Window\Load%20File\KeySeq\default=true
Shortcuts\Main%20Window\Load%20from%20Newest%20Slot\Context=1
Shortcuts\Main%20Window\Load%20from%20Newest%20Slot\Context\default=true
Shortcuts\Main%20Window\Load%20from%20Newest%20Slot\KeySeq=Ctrl+V
Shortcuts\Main%20Window\Load%20from%20Newest%20Slot\KeySeq\default=true
Shortcuts\Main%20Window\Remove%20Amiibo\Context=2
Shortcuts\Main%20Window\Remove%20Amiibo\Context\default=true
Shortcuts\Main%20Window\Remove%20Amiibo\KeySeq=F3
Shortcuts\Main%20Window\Remove%20Amiibo\KeySeq\default=true
Shortcuts\Main%20Window\Restart%20Emulation\Context=1
Shortcuts\Main%20Window\Restart%20Emulation\Context\default=true
Shortcuts\Main%20Window\Restart%20Emulation\KeySeq=F6
Shortcuts\Main%20Window\Restart%20Emulation\KeySeq\default=true
Shortcuts\Main%20Window\Rotate%20Screens%20Upright\Context=1
Shortcuts\Main%20Window\Rotate%20Screens%20Upright\Context\default=true
Shortcuts\Main%20Window\Rotate%20Screens%20Upright\KeySeq=F8
Shortcuts\Main%20Window\Rotate%20Screens%20Upright\KeySeq\default=true
Shortcuts\Main%20Window\Save%20to%20Oldest%20Slot\Context=1
Shortcuts\Main%20Window\Save%20to%20Oldest%20Slot\Context\default=true
Shortcuts\Main%20Window\Save%20to%20Oldest%20Slot\KeySeq=Ctrl+C
Shortcuts\Main%20Window\Save%20to%20Oldest%20Slot\KeySeq\default=true
Shortcuts\Main%20Window\Stop%20Emulation\Context=1
Shortcuts\Main%20Window\Stop%20Emulation\Context\default=true
Shortcuts\Main%20Window\Stop%20Emulation\KeySeq=F5
Shortcuts\Main%20Window\Stop%20Emulation\KeySeq\default=true
Shortcuts\Main%20Window\Swap%20Screens\Context=1
Shortcuts\Main%20Window\Swap%20Screens\Context\default=true
Shortcuts\Main%20Window\Swap%20Screens\KeySeq=F9
Shortcuts\Main%20Window\Swap%20Screens\KeySeq\default=true
Shortcuts\Main%20Window\Toggle%20Alternate%20Speed\Context=2
Shortcuts\Main%20Window\Toggle%20Alternate%20Speed\Context\default=true
Shortcuts\Main%20Window\Toggle%20Alternate%20Speed\KeySeq=Ctrl+Z
Shortcuts\Main%20Window\Toggle%20Alternate%20Speed\KeySeq\default=true
Shortcuts\Main%20Window\Toggle%20Filter%20Bar\Context=1
Shortcuts\Main%20Window\Toggle%20Filter%20Bar\Context\default=true
Shortcuts\Main%20Window\Toggle%20Filter%20Bar\KeySeq=Ctrl+F
Shortcuts\Main%20Window\Toggle%20Filter%20Bar\KeySeq\default=true
Shortcuts\Main%20Window\Toggle%20Frame%20Advancing\Context=2
Shortcuts\Main%20Window\Toggle%20Frame%20Advancing\Context\default=true
Shortcuts\Main%20Window\Toggle%20Frame%20Advancing\KeySeq=Ctrl+A
Shortcuts\Main%20Window\Toggle%20Frame%20Advancing\KeySeq\default=true
Shortcuts\Main%20Window\Toggle%20Screen%20Layout\Context=1
Shortcuts\Main%20Window\Toggle%20Screen%20Layout\Context\default=true
Shortcuts\Main%20Window\Toggle%20Screen%20Layout\KeySeq=F10
Shortcuts\Main%20Window\Toggle%20Screen%20Layout\KeySeq\default=true
Shortcuts\Main%20Window\Toggle%20Status%20Bar\Context=1
Shortcuts\Main%20Window\Toggle%20Status%20Bar\Context\default=true
Shortcuts\Main%20Window\Toggle%20Status%20Bar\KeySeq=Ctrl+S
Shortcuts\Main%20Window\Toggle%20Status%20Bar\KeySeq\default=true
Shortcuts\Main%20Window\Toggle%20Texture%20Dumping\Context=2
Shortcuts\Main%20Window\Toggle%20Texture%20Dumping\Context\default=true
Shortcuts\Main%20Window\Toggle%20Texture%20Dumping\KeySeq=Ctrl+D
Shortcuts\Main%20Window\Toggle%20Texture%20Dumping\KeySeq\default=true
UILayout\gameListHeaderState=@ByteArray(\0\0\0\xff\0\0\0\0\0\0\0\x1\0\0\0\x1\0\0\0\x5\x1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x4\x9c\0\0\0\x5\x1\x1\0\x1\0\0\0\0\0\0\0\0\0\0\0\0\x64\xff\xff\xff\xff\0\0\0\x81\0\0\0\0\0\0\0\x5\0\0\x2\x80\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\xf0\0\0\0\x1\0\0\0\0\0\0\x3\xe8\0\0\0\0\x64)
UILayout\geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\xd6\0\0\0\x97\0\0\x4*\0\0\x2\x43\0\0\0\xd6\0\0\0\xb4\0\0\x4*\0\0\x2\x43\0\0\0\0\0\0\0\0\x5\0\0\0\0\xd6\0\0\0\xb4\0\0\x4*\0\0\x2\x43)
UILayout\geometryRenderWindow=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\0\0\0\0\x14\0\0\x1\x8f\0\0\x1\xf3\0\0\0\0\0\0\0\x14\0\0\x1\x8f\0\0\x1\xf3\0\0\0\0\0\0\0\0\x5\0\0\0\0\0\0\0\0\x14\0\0\x1\x8f\0\0\x1\xf3)
UILayout\microProfileDialogGeometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\0\0\0\0\x14\0\0\x3\xe7\0\0\x2k\0\0\0\0\0\0\0\x14\0\0\x3\xe7\0\0\x2k\0\0\0\0\0\0\0\0\x5\0\0\0\0\0\0\0\0\x14\0\0\x3\xe7\0\0\x2k)
UILayout\microProfileDialogVisible=false
UILayout\microProfileDialogVisible\default=true
UILayout\state=@ByteArray(\0\0\0\xff\0\0\0\0\xfd\0\0\0\x2\0\0\0\0\0\0\0\0\0\0\0\0\xfc\x2\0\0\0\x1\xfb\0\0\0\x1c\0W\0\x61\0i\0t\0T\0r\0\x65\0\x65\0W\0i\0\x64\0g\0\x65\0t\0\0\0\0\0\xff\xff\xff\xff\0\0\0\x62\x1\0\0\x3\0\0\0\x1\0\0\0\0\0\0\0\0\xfc\x2\0\0\0\b\xfb\0\0\0\x18\0\x41\0R\0M\0R\0\x65\0g\0i\0s\0t\0\x65\0r\0s\0\0\0\0\0\xff\xff\xff\xff\0\0\0n\x1\0\0\x3\xfb\0\0\0 \0G\0r\0\x61\0p\0h\0i\0\x63\0s\0\x44\0\x65\0\x62\0u\0g\0g\0\x65\0r\0\0\0\0\0\xff\xff\xff\xff\0\0\0\x62\x1\0\0\x3\xfb\0\0\0\"\0P\0i\0\x63\0\x61\0 \0\x43\0o\0m\0m\0\x61\0n\0\x64\0 \0L\0i\0s\0t\0\0\0\0\0\xff\xff\xff\xff\0\0\0\x94\x1\0\0\x3\xfb\0\0\0*\0P\0i\0\x63\0\x61\0\x42\0r\0\x65\0\x61\0k\0P\0o\0i\0n\0t\0s\0W\0i\0\x64\0g\0\x65\0t\0\0\0\0\0\xff\xff\xff\xff\0\0\0\x94\x1\0\0\x3\xfb\0\0\0 \0P\0i\0\x63\0\x61\0V\0\x65\0r\0t\0\x65\0x\0S\0h\0\x61\0\x64\0\x65\0r\0\0\0\0\0\xff\xff\xff\xff\0\0\x1\xd2\x1\0\0\x3\xfb\0\0\0\x12\0\x43\0i\0T\0r\0\x61\0\x63\0i\0n\0g\0\0\0\0\0\xff\xff\xff\xff\0\0\0N\x1\0\0\x3\xfb\0\0\0.\0L\0L\0\x45\0S\0\x65\0r\0v\0i\0\x63\0\x65\0M\0o\0\x64\0u\0l\0\x65\0s\0W\0i\0\x64\0g\0\x65\0t\0\0\0\0\0\xff\xff\xff\xff\0\0\0\x62\x1\0\0\x3\xfb\0\0\0\x16\0I\0P\0\x43\0R\0\x65\0\x63\0o\0r\0\x64\0\x65\0r\0\0\0\0\0\xff\xff\xff\xff\0\0\0\xd3\x1\0\0\x3\0\0\x3U\0\0\x1Q\0\0\0\x4\0\0\0\x4\0\0\0\b\0\0\0\b\xfc\0\0\0\0)
Updater\check_for_update_on_start=true
Updater\check_for_update_on_start\default=true
Updater\update_on_close=false
Updater\update_on_close\default=true
calloutFlags=1
calloutFlags\default=false
confirmClose=true
confirmClose\default=true
displayTitleBars=true
displayTitleBars\default=true
enable_discord_presence=true
enable_discord_presence\default=true
firstStart=false
firstStart\default=false
fullscreen=true
fullscreen\default=true
hideInactiveMouse=false
hideInactiveMouse\default=true
pauseWhenInBackground=false
pauseWhenInBackground\default=true
screenshot_resolution_factor=0
screenshot_resolution_factor\default=true
showConsole=false
showConsole\default=true
showFilterBar=true
showFilterBar\default=true
showStatusBar=true
showStatusBar\default=true
singleWindowMode=true
singleWindowMode\default=true
theme=colorful_dark
theme\default=false
[Utility]
custom_textures=false
custom_textures\default=true
dump_textures=false
dump_textures\default=true
preload_textures=false
preload_textures\default=true
[VideoDumping]
audio_bitrate=64000
audio_bitrate\default=true
audio_encoder=libvorbis
audio_encoder\default=true
audio_encoder_options=
audio_encoder_options\default=true
format_options=
output_format=webm
output_format\default=true
video_bitrate=2500000
video_bitrate\default=true
video_encoder=libvpx-vp9
video_encoder\default=true
video_encoder_options="quality:realtime,speed:6,tile-columns:4,frame-parallel:1,threads:8,row-mt:1"
video_encoder_options\default=true
[WebService]
citra_token=
citra_username=
enable_telemetry=false
enable_telemetry\default=false
web_api_url=https://api.citra-emu.org
web_api_url\default=true

203
emu-configs/config.yml Normal file
View file

@ -0,0 +1,203 @@
Core:
PPU Decoder: Recompiler (LLVM)
PPU Threads: 2
PPU Debug: false
PPU Calling History: false
Save LLVM logs: false
Use LLVM CPU: ""
Max LLVM Compile Threads: 0
PPU LLVM Greedy Mode: false
PPU LLVM Precompilation: true
Thread Scheduler Mode: Operating System
Set DAZ and FTZ: false
SPU Decoder: Recompiler (LLVM)
SPU GETLLAR polling detection: false
SPU Debug: false
MFC Debug: false
Preferred SPU Threads: 0
SPU delay penalty: 3
SPU loop detection: false
Max SPURS Threads: 6
SPU Block Size: Safe
Accurate GETLLAR: false
Accurate SPU DMA: false
Accurate Cache Line Stores: false
Accurate RSX reservation access: false
SPU Verification: true
SPU Cache: true
SPU Profiler: false
MFC Commands Shuffling Limit: 0
MFC Commands Timeout: 0
MFC Commands Shuffling In Steps: false
Enable TSX: Disabled
Accurate xfloat: false
Approximate xfloat: true
Relaxed xfloat: true
Accurate PPU 128-byte Reservation Op Max Length: 0
Stub PPU Traps: 0
Full Width AVX-512: false
PPU LLVM Java Mode Handling: true
Use Accurate DFMA: true
PPU Set Saturation Bit: false
PPU Accurate Non-Java Mode: false
PPU Fixup Vector NaN Values: false
PPU Accurate Vector NaN Values: false
PPU Set FPCC Bits: false
Debug Console Mode: false
Hook static functions: false
Libraries Control:
[]
HLE lwmutex: false
SPU LLVM Lower Bound: 0
SPU LLVM Upper Bound: 18446744073709551615
TSX Transaction First Limit: 800
TSX Transaction Second Limit: 2000
Clocks scale: 100
Sleep Timers Accuracy: As Host
Performance Report Threshold: 500
Enable Performance Report: false
Assume External Debugger: false
VFS:
Enable /host_root/: false
Initialize Directories: true
Limit disk cache size: false
Disk cache maximum size (MB): 5120
Video:
Renderer: Vulkan
Resolution: 1280x720
Aspect ratio: 16:9
Frame limit: Auto
MSAA: Auto
Shader Mode: Async Shader Recompiler
Write Color Buffers: false
Write Depth Buffer: false
Read Color Buffers: false
Read Depth Buffer: false
Log shader programs: false
VSync: false
Debug output: false
Debug overlay: false
Renderdoc Compatibility Mode: false
Use GPU texture scaling: false
Stretch To Display Area: false
Force High Precision Z buffer: false
Strict Rendering Mode: false
Disable ZCull Occlusion Queries: false
Disable Vertex Cache: false
Disable FIFO Reordering: false
Enable Frame Skip: false
Force CPU Blit: false
Disable On-Disk Shader Cache: false
Disable Vulkan Memory Allocator: false
Use full RGB output range: true
Strict Texture Flushing: false
Disable native float16 support: false
Multithreaded RSX: false
Relaxed ZCULL Sync: false
Enable 3D: false
Debug Program Analyser: false
Accurate ZCULL stats: true
Consecutive Frames To Draw: 1
Consecutive Frames To Skip: 1
Resolution Scale: 100
Anisotropic Filter Override: 0
Texture LOD Bias Addend: 0
Minimum Scalable Dimension: 16
Shader Compiler Threads: 0
Driver Recovery Timeout: 1000000
Driver Wake-Up Delay: 1
Vblank Rate: 60
Vblank NTSC Fixup: false
DECR memory layout: false
Allow Host GPU Labels: false
Disable MSL Fast Math: false
Software VkSemaphore: false
Vulkan:
Adapter: llvmpipe (LLVM 12.0.1, 256 bits)
Force FIFO present mode: false
Force primitive restart flag: false
Force Disable Exclusive Fullscreen Mode: false
Asynchronous Texture Streaming 2: false
Enable FidelityFX Super Resolution Upscaling: false
FidelityFX CAS Sharpening Intensity: 50
Asynchronous Queue Scheduler: Safe
Performance Overlay:
Enabled: false
Enable Framerate Graph: false
Enable Frametime Graph: false
Framerate datapoints: 50
Frametime datapoints: 170
Detail level: Medium
Framerate graph detail level: All
Frametime graph detail level: All
Metrics update interval (ms): 350
Font size (px): 10
Position: Top Left
Font: n023055ms.ttf
Horizontal Margin (px): 50
Vertical Margin (px): 50
Center Horizontally: false
Center Vertically: false
Opacity (%): 70
Body Color (hex): "#FFE138FF"
Body Background (hex): "#002339FF"
Title Color (hex): "#F26C24FF"
Title Background (hex): "#00000000"
Shader Compilation Hint:
Position X (px): 20
Position Y (px): 690
Shader Loading Dialog:
Allow custom background: true
Darkening effect strength: 30
Blur effect strength: 0
Audio:
Renderer: Cubeb
Audio provider: CellAudio
Dump to file: false
Convert to 16 bit: false
Audio Channels: Downmix to Stereo
Master Volume: 100
Enable Buffering: true
Desired Audio Buffer Duration: 100
Enable Time Stretching: false
Time Stretching Threshold: 75
Microphone Type: "Null"
Microphone Devices: "@@@@@@@@@@@@"
Music Handler: Qt
Input/Output:
Keyboard: "Null"
Mouse: Basic
Camera: "Null"
Camera type: Unknown
Camera flip: None
Camera ID: Default
Move: "Null"
Buzz emulated controller: "Null"
Turntable emulated controller: "Null"
GHLtar emulated controller: "Null"
Pad handler mode: Single-threaded
Pad handler sleep (microseconds): 1000
System:
License Area: SCEE
Language: English (US)
Keyboard Type: English keyboard (US standard)
Enter button assignment: Enter with cross
Console time offset (s): 0
Net:
Internet enabled: Disconnected
IP address: 0.0.0.0
DNS address: 8.8.8.8
IP swap list: ""
PSN status: Disconnected
Miscellaneous:
Automatically start games after boot: true
Exit RPCS3 when process finishes: false
Start games in fullscreen mode: false
Prevent display sleep while running games: true
Show trophy popups: true
Show shader compilation hint: true
Use native user interface: true
GDB Server: 127.0.0.1:2345
Silence All Logs: false
Window Title Format: "FPS: %F | %R | %V | %T [%t]"
Log: {}

135
emu-configs/melonDS.ini Normal file
View file

@ -0,0 +1,135 @@
Key_A=-1
Key_B=-1
Key_Select=-1
Key_Start=-1
Key_Right=-1
Key_Left=-1
Key_Up=-1
Key_Down=-1
Key_R=-1
Key_L=-1
Key_X=-1
Key_Y=-1
Joy_A=0
Joy_B=1
Joy_Select=6
Joy_Start=7
Joy_Right=258
Joy_Left=264
Joy_Up=257
Joy_Down=260
Joy_R=5
Joy_L=4
Joy_X=2
Joy_Y=3
HKKey_Lid=-1
HKKey_Mic=-1
HKKey_Pause=-1
HKKey_Reset=-1
HKKey_FastForward=-1
HKKey_FastForwardToggle=-1
HKKey_FullscreenToggle=-1
HKKey_SwapScreens=-1
HKKey_SolarSensorDecrease=-1
HKKey_SolarSensorIncrease=-1
HKKey_FrameStep=-1
HKJoy_Lid=-1
HKJoy_Mic=-1
HKJoy_Pause=10
HKJoy_Reset=-1
HKJoy_FastForward=85065727
HKJoy_FastForwardToggle=-1
HKJoy_FullscreenToggle=-1
HKJoy_SwapScreens=9
HKJoy_SolarSensorDecrease=-1
HKJoy_SolarSensorIncrease=-1
HKJoy_FrameStep=-1
JoystickID=0
WindowWidth=768
WindowHeight=414
WindowMax=0
ScreenRotation=0
ScreenGap=0
ScreenLayout=3
ScreenSwap=0
ScreenSizing=3
IntegerScaling=1
ScreenAspectTop=0
ScreenAspectBot=0
ScreenFilter=1
ScreenUseGL=0
ScreenVSync=0
ScreenVSyncInterval=1
3DRenderer=1
Threaded3D=1
GL_ScaleFactor=1
GL_BetterPolygons=0
LimitFPS=1
AudioSync=0
ShowOSD=1
ConsoleType=0
DirectBoot=1
JIT_Enable=0
JIT_MaxBlockSize=32
JIT_BranchOptimisations=1
JIT_LiteralOptimisations=1
JIT_FastMemory=1
ExternalBIOSEnable=1
BIOS9Path=~/retrodeck/bios/bios9.bin
BIOS7Path=~/retrodeck/bios/bios7.bin
FirmwarePath=~/retrodeck/bios/firmware.bin
DSiBIOS9Path=
DSiBIOS7Path=
DSiFirmwarePath=
DSiNANDPath=
DLDIEnable=0
DLDISDPath=dldi.bin
DLDISize=0
DLDIReadOnly=0
DLDIFolderSync=0
DLDIFolderPath=
DSiSDEnable=0
DSiSDPath=dsisd.bin
DSiSDSize=0
DSiSDReadOnly=0
DSiSDFolderSync=0
DSiSDFolderPath=
FirmwareOverrideSettings=0
FirmwareUsername=RetroDECK
FirmwareLanguage=1
FirmwareBirthdayMonth=3
FirmwareBirthdayDay=4
FirmwareFavouriteColour=0
FirmwareMessage=
FirmwareMAC=
RandomizeMAC=0
SockBindAnyAddr=0
LANDevice=
DirectLAN=0
SavStaRelocSRAM=0
AudioInterp=0
AudioBitrate=0
AudioVolume=256
MicInputType=1
MicWavPath=
LastROMFolder=
RecentROM_0=
RecentROM_1=
RecentROM_2=
RecentROM_3=
RecentROM_4=
RecentROM_5=
RecentROM_6=
RecentROM_7=
RecentROM_8=
RecentROM_9=
SaveFilePath=~/retrodeck/saves
SavestatePath=~/retrodeck/states
CheatFilePath=
EnableCheats=0
MouseHide=0
MouseHideSeconds=5
PauseLostFocus=0
DSBatteryLevelOkay=1
DSiBatteryLevel=15
DSiBatteryCharging=1

View file

@ -0,0 +1,318 @@
<?xml version="1.0"?>
<!-- This is the ES-DE find rules configuration file for Unix -->
<ruleList>
<emulator name="OS-SHELL">
<!-- Operating system shell -->
<rule type="systempath">
<entry>bash</entry>
<entry>sh</entry>
</rule>
</emulator>
<emulator name="RETROARCH">
<rule type="systempath">
<entry>retroarch</entry>
<entry>org.libretro.RetroArch</entry>
<entry>RetroArch-Linux-x86_64.AppImage</entry>
</rule>
<rule type="staticpath">
<entry>/var/lib/flatpak/exports/bin/org.libretro.RetroArch</entry>
<entry>~/.local/share/flatpak/exports/bin/org.libretro.RetroArch</entry>
<entry>~/Applications/RetroArch-Linux-x86_64.AppImage</entry>
<entry>~/.local/bin/RetroArch-Linux-x86_64.AppImage</entry>
<entry>~/bin/RetroArch-Linux-x86_64.AppImage</entry>
</rule>
</emulator>
<core name="RETROARCH">
<rule type="corepath">
<!-- Snap package -->
<entry>~/snap/retroarch/current/.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>
<!-- Ubuntu and Linux Mint repository -->
<entry>/usr/lib/x86_64-linux-gnu/libretro</entry>
<!-- Fedora repository -->
<entry>/usr/lib64/libretro</entry>
<!-- Manjaro repository -->
<entry>/usr/lib/libretro</entry>
<!-- FreeBSD and OpenBSD repository -->
<entry>/usr/local/lib/libretro</entry>
<!-- NetBSD repository -->
<entry>/usr/pkg/lib/libretro</entry>
<!-- FlatPak RetroDECK -->
<entry>/app/share/libretro/cores</entry>
</rule>
</core>
<emulator name="CITRA">
<!-- Nintendo 3DS emulator Citra -->
<rule type="systempath">
<entry>citra-emu.citra-nightly</entry>
<entry>org.citra_emu.citra</entry>
<entry>citra-qt</entry>
</rule>
<rule type="staticpath">
<entry>/var/lib/flatpak/exports/bin/org.citra_emu.citra</entry>
<entry>~/.local/share/flatpak/exports/bin/org.citra_emu.citra</entry>
</rule>
</emulator>
<emulator name="DOLPHIN">
<!-- Nintendo GameCube and Wii emulator Dolphin -->
<rule type="systempath">
<entry>dolphin-emu</entry>
<entry>org.DolphinEmu.dolphin-emu</entry>
</rule>
<rule type="staticpath">
<entry>/var/lib/flatpak/exports/bin/org.DolphinEmu.dolphin-emu</entry>
<entry>~/.local/share/flatpak/exports/bin/org.DolphinEmu.dolphin-emu</entry>
<entry>~/Applications/Dolphin_Emulator.AppImage</entry>
<entry>~/.local/bin/Dolphin_Emulator.AppImage</entry>
<entry>~/bin/Dolphin_Emulator.AppImage</entry>
</rule>
</emulator>
<emulator name="DOSBOX-STAGING">
<!-- DOS emulator DOSBox Staging -->
<rule type="systempath">
<entry>dosbox-staging</entry>
<entry>io.github.dosbox-staging</entry>
</rule>
<rule type="staticpath">
<entry>/var/lib/flatpak/exports/bin/io.github.dosbox-staging</entry>
<entry>~/.local/share/flatpak/exports/bin/io.github.dosbox-staging</entry>
</rule>
</emulator>
<emulator name="DOSBOX-X">
<!-- DOS emulator DOSBox-X -->
<rule type="systempath">
<entry>dosbox-x</entry>
<entry>com.dosbox_x.DOSBox-X</entry>
</rule>
<rule type="staticpath">
<entry>/var/lib/flatpak/exports/bin/com.dosbox_x.DOSBox-X</entry>
<entry>~/.local/share/flatpak/exports/bin/com.dosbox_x.DOSBox-X</entry>
</rule>
</emulator>
<emulator name="DUCKSTATION">
<!-- Sony PlayStation 1 emulator DuckStation -->
<rule type="systempath">
<entry>duckstation-nogui</entry>
<entry>duckstation-qt</entry>
<entry>org.duckstation.DuckStation</entry>
</rule>
<rule type="staticpath">
<entry>/var/lib/flatpak/exports/bin/org.duckstation.DuckStation</entry>
<entry>~/.local/share/flatpak/exports/bin/org.duckstation.DuckStation</entry>
<entry>~/Applications/duckstation-nogui-x64.AppImage</entry>
<entry>~/.local/bin/duckstation-nogui-x64.AppImage</entry>
<entry>~/bin/duckstation-nogui-x64.AppImage</entry>
<entry>~/Applications/duckstation-qt-x64.AppImage</entry>
<entry>~/.local/bin/duckstation-qt-x64.AppImage</entry>
<entry>~/bin/duckstation-qt-x64.AppImage</entry>
</rule>
</emulator>
<emulator name="FLYCAST">
<!-- Sega Dreamcast emulator Flycast -->
<rule type="systempath">
<entry>flycast</entry>
<entry>org.flycast.Flycast</entry>
</rule>
<rule type="staticpath">
<entry>/var/lib/flatpak/exports/bin/org.flycast.Flycast</entry>
<entry>~/.local/share/flatpak/exports/bin/org.flycast.Flycast</entry>
</rule>
</emulator>
<emulator name="FS-UAE">
<!-- Commodore Amiga emulator FS-UAE -->
<rule type="systempath">
<entry>fs-uae</entry>
<entry>fsuae.fs-uae</entry>
<entry>net.fsuae.FS-UAE</entry>
</rule>
<rule type="staticpath">
<entry>/var/lib/flatpak/exports/bin/net.fsuae.FS-UAE</entry>
<entry>~/.local/share/flatpak/exports/bin/net.fsuae.FS-UAE</entry>
</rule>
</emulator>
<emulator name="MAME">
<!-- Arcade emulator MAME -->
<rule type="systempath">
<entry>mame</entry>
</rule>
</emulator>
<emulator name="MELONDS">
<!-- Nintendo DS and DSi emulator melonDS -->
<rule type="systempath">
<entry>melonds</entry>
<entry>melonDS</entry>
<entry>net.kuribo64.melonDS</entry>
</rule>
<rule type="staticpath">
<entry>/var/lib/flatpak/exports/bin/net.kuribo64.melonDS</entry>
<entry>~/.local/share/flatpak/exports/bin/net.kuribo64.melonDS</entry>
</rule>
</emulator>
<emulator name="MGBA">
<!-- Nintendo Game Boy Advance emulator mGBA -->
<rule type="systempath">
<entry>mgba</entry>
<entry>io.mgba.mGBA</entry>
</rule>
<rule type="staticpath">
<entry>/var/lib/flatpak/exports/bin/io.mgba.mGBA</entry>
<entry>~/.local/share/flatpak/exports/bin/io.mgba.mGBA</entry>
<entry>~/Applications/mGBA.AppImage</entry>
<entry>~/.local/bin/mGBA.AppImage</entry>
<entry>~/bin/mGBA.AppImage</entry>
</rule>
</emulator>
<emulator name="MUPEN64PLUS">
<!-- Nintendo 64 emulator Mupen64Plus -->
<rule type="systempath">
<entry>m64p</entry>
<entry>io.github.m64p.m64p</entry>
</rule>
<rule type="staticpath">
<entry>/var/lib/flatpak/exports/bin/io.github.m64p.m64p</entry>
<entry>~/.local/share/flatpak/exports/bin/io.github.m64p.m64p</entry>
</rule>
</emulator>
<emulator name="PCSX2">
<!-- Sony PlayStation 2 emulator PCSX2 -->
<rule type="systempath">
<entry>PCSX2</entry>
<entry>pcsx2</entry>
<entry>net.pcsx2.PCSX2</entry>
</rule>
<rule type="staticpath">
<entry>/var/lib/flatpak/exports/bin/net.pcsx2.PCSX2</entry>
<entry>~/.local/share/flatpak/exports/bin/net.pcsx2.PCSX2</entry>
</rule>
</emulator>
<emulator name="PLAY!">
<!-- Sony PlayStation 2 emulator Play! -->
<rule type="staticpath">
<entry>/var/lib/flatpak/exports/bin/org.purei.Play</entry>
<entry>~/.local/share/flatpak/exports/bin/org.purei.Play</entry>
<entry>~/Applications/Play!.AppImage</entry>
<entry>~/.local/bin/Play!.AppImage</entry>
<entry>~/bin/Play!.AppImage</entry>
</rule>
</emulator>
<emulator name="PPSSPP">
<!-- Sony PlayStation Portable emulator PPSSPP -->
<rule type="systempath">
<entry>ppsspp-emu.ppsspp-sdl</entry>
<entry>org.ppsspp.PPSSPP</entry>
</rule>
<rule type="staticpath">
<entry>/var/lib/flatpak/exports/bin/org.ppsspp.PPSSPP</entry>
<entry>~/.local/share/flatpak/exports/bin/org.ppsspp.PPSSPP</entry>
</rule>
</emulator>
<emulator name="PRIMEHACK">
<!-- PrimeHack, fork of Nintendo GameCube and Wii emulator Dolphin -->
<rule type="systempath">
<entry>primehack</entry>
<entry>io.github.shiiion.primehack</entry>
</rule>
<rule type="staticpath">
<entry>/var/lib/flatpak/exports/bin/io.github.shiiion.primehack</entry>
<entry>~/.local/share/flatpak/exports/bin/io.github.shiiion.primehack</entry>
</rule>
</emulator>
<emulator name="REDREAM">
<!-- Sega Dreamcast emulator Redream -->
<rule type="systempath">
<entry>redream</entry>
</rule>
<rule type="staticpath">
<entry>~/Applications/redream</entry>
<entry>~/.local/bin/redream</entry>
<entry>~/bin/redream</entry>
</rule>
</emulator>
<emulator name="RPCS3">
<!-- Sony PlayStation 3 emulator RPCS3 -->
<rule type="systempath">
<entry>rpcs3</entry>
<entry>rpcs3-emu.rpcs3</entry>
<entry>net.rpcs3.RPCS3</entry>
<entry>rpcs3.AppImage</entry>
</rule>
<rule type="staticpath">
<entry>/var/lib/flatpak/exports/bin/net.rpcs3.RPCS3</entry>
<entry>~/.local/share/flatpak/exports/bin/net.rpcs3.RPCS3</entry>
<entry>~/Applications/rpcs3.AppImage</entry>
<entry>~/.local/bin/rpcs3.AppImage</entry>
<entry>~/bin/rpcs3.AppImage</entry>
</rule>
</emulator>
<emulator name="SNES9X">
<!-- Super Nintendo emulator Snes9x -->
<rule type="systempath">
<entry>snes9x</entry>
</rule>
<rule type="staticpath">
<entry>/var/lib/flatpak/exports/bin/com.snes9x.Snes9x</entry>
<entry>~/.local/share/flatpak/exports/bin/com.snes9x.Snes9x</entry>
</rule>
</emulator>
<emulator name="RYUJINX">
<!-- Nintendo Switch emulator Ryujinx -->
<rule type="systempath">
<entry>Ryujinx</entry>
<entry>org.ryujinx.Ryujinx</entry>
</rule>
<rule type="staticpath">
<entry>/var/lib/flatpak/exports/bin/org.ryujinx.Ryujinx</entry>
<entry>~/.local/share/flatpak/exports/bin/org.ryujinx.Ryujinx</entry>
<entry>~/Applications/publish/Ryujinx</entry>
<entry>~/.local/bin/publish/Ryujinx</entry>
<entry>~/bin/publish/Ryujinx</entry>
</rule>
</emulator>
<emulator name="VBA-M">
<!-- Nintendo Game Boy Advance emulator VBA-M -->
<rule type="systempath">
<entry>visualboyadvance-m</entry>
</rule>
</emulator>
<emulator name="XEMU">
<!-- Microsoft Xbox emulator xemu -->
<rule type="systempath">
<entry>xemu</entry>
<entry>app.xemu.xemu</entry>
</rule>
<rule type="staticpath">
<entry>/var/lib/flatpak/exports/bin/app.xemu.xemu</entry>
<entry>~/.local/share/flatpak/exports/bin/app.xemu.xemu</entry>
<entry>~/Applications/Xemu.AppImage</entry>
<entry>~/.local/bin/Xemu.AppImage</entry>
<entry>~/bin/Xemu.AppImage</entry>
</rule>
</emulator>
<emulator name="YUZU">
<!-- Nintendo Switch emulator Yuzu -->
<rule type="systempath">
<entry>yuzu</entry>
<entry>org.yuzu_emu.yuzu</entry>
<entry>yuzu.AppImage</entry>
</rule>
<rule type="staticpath">
<entry>/var/lib/flatpak/exports/bin/org.yuzu_emu.yuzu</entry>
<entry>~/.local/share/flatpak/exports/bin/org.yuzu_emu.yuzu</entry>
<entry>~/Applications/yuzu.AppImage</entry>
<entry>~/.local/bin/yuzu.AppImage</entry>
<entry>~/bin/yuzu.AppImage</entry>
</rule>
</emulator>
<emulator name="PICO-8">
<rule type="systempath">
<entry>pico8</entry>
</rule>
<rule type="staticpath">
<entry>~/retrodeck/bios/pico-8/pico8</entry>
</rule>
</emulator>
</ruleList>

View file

@ -36,6 +36,7 @@
<path>%ROMPATH%/amiga</path>
<extension>.adf .ADF .adz .ADZ .dms .DMS .fdi .FDI .ipf .IPF .hdf .HDF .hdz .HDZ .lha .LHA .cue .CUE .ccd .CCD .nrg .NRG .mds .MDS .iso .ISO .uae .UAE .m3u .M3U .7z .7Z .zip .ZIP</extension>
<command label="PUAE">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/puae_libretro.so %ROM%</command>
<command label="PUAE 2021">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/puae2021_libretro.so %ROM%</command>
<platform>amiga</platform>
<theme>amiga</theme>
</system>
@ -45,6 +46,7 @@
<path>%ROMPATH%/amiga600</path>
<extension>.adf .ADF .adz .ADZ .dms .DMS .fdi .FDI .ipf .IPF .hdf .HDF .hdz .HDZ .lha .LHA .cue .CUE .ccd .CCD .nrg .NRG .mds .MDS .iso .ISO .uae .UAE .m3u .M3U .7z .7Z .zip .ZIP</extension>
<command label="PUAE">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/puae_libretro.so %ROM%</command>
<command label="PUAE 2021">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/puae2021_libretro.so %ROM%</command>
<platform>amiga</platform>
<theme>amiga600</theme>
</system>
@ -54,6 +56,7 @@
<path>%ROMPATH%/amiga1200</path>
<extension>.adf .ADF .adz .ADZ .dms .DMS .fdi .FDI .ipf .IPF .hdf .HDF .hdz .HDZ .lha .LHA .cue .CUE .ccd .CCD .nrg .NRG .mds .MDS .iso .ISO .uae .UAE .m3u .M3U .7z .7Z .zip .ZIP</extension>
<command label="PUAE">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/puae_libretro.so %ROM%</command>
<command label="PUAE 2021">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/puae2021_libretro.so %ROM%</command>
<platform>amiga</platform>
<theme>amiga1200</theme>
</system>
@ -63,6 +66,7 @@
<path>%ROMPATH%/amigacd32</path>
<extension>.adf .ADF .adz .ADZ .dms .DMS .fdi .FDI .ipf .IPF .hdf .HDF .hdz .HDZ .lha .LHA .cue .CUE .ccd .CCD .nrg .NRG .mds .MDS .iso .ISO .uae .UAE .m3u .M3U .7z .7Z .zip .ZIP</extension>
<command label="PUAE">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/puae_libretro.so %ROM%</command>
<command label="PUAE 2021">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/puae2021_libretro.so %ROM%</command>
<platform>amigacd32</platform>
<theme>amigacd32</theme>
</system>
@ -109,22 +113,23 @@
<path>%ROMPATH%/arcade</path>
<extension>.cmd .CMD .7z .7Z .zip .ZIP</extension>
<command label="MAME - Current">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mame_libretro.so %ROM%</command>
<command label="MAME 2000">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mame2000_libretro.so %ROM%</command>
<command label="MAME 2003-Plus">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mame2003_plus_libretro.so %ROM%</command>
<command label="MAME 2010">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mame2010_libretro.so %ROM%</command>
<command label="MAME 2003-Plus">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mame2003_plus_libretro.so %ROM%</command>
<command label="MAME 2000">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mame2000_libretro.so %ROM%</command>
<command label="MAME (Standalone)">%STARTDIR%=~/.mame %EMULATOR_MAME% -rompath %ROMPATH%/arcade %BASENAME%</command>
<command label="FinalBurn Neo">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/fbneo_libretro.so %ROM%</command>
<command label="FB Alpha 2012">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/fbalpha2012_libretro.so %ROM%</command>
<command label="MAME (Standalone)">%EMULATOR_MAME% %ROM%</command>
<platform>arcade</platform>
<theme>arcade</theme>
</system>
<system>
<name>astrocade</name>
<name>astrocde</name>
<fullname>Bally Astrocade</fullname>
<path>%ROMPATH%/astrocade</path>
<path>%ROMPATH%/astrocde</path>
<extension>.7z .7Z .zip .ZIP</extension>
<command>PLACEHOLDER %ROM%</command>
<platform>astrocade</platform>
<command label="MAME - Current">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mame_libretro.so %ROM%</command>
<command label="MAME (Standalone)">%STARTDIR%=~/.mame %EMULATOR_MAME% -rompath %ROMPATH%/astrocde astrocde -cart %BASENAME%</command>
<platform>astrocde</platform>
<theme>astrocade</theme>
</system>
<system>
@ -161,7 +166,8 @@
<fullname>Atari 800</fullname>
<path>%ROMPATH%/atari800</path>
<extension>.xfd .XFD .atr .ATR .atx .ATX .cdm .CDM .cas .CAS .bin .BIN .a52 .A52 .xex .XEX .rom .ROM .7z .7Z .zip .ZIP</extension>
<command>%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/atari800_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>
<platform>atari800</platform>
<theme>atari800</theme>
</system>
@ -256,8 +262,9 @@
<name>cdimono1</name>
<fullname>Philips CD-i</fullname>
<path>%ROMPATH%/cdimono1</path>
<extension>.7z .7Z .zip .ZIP</extension>
<command>PLACEHOLDER %ROM%</command>
<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>
<platform>cdimono1</platform>
<theme>cdimono1</theme>
</system>
@ -316,15 +323,6 @@
<theme>daphne</theme>
</system>
<system>
<name>doom</name>
<fullname>Doom</fullname>
<path>%ROMPATH%/doom</path>
@ -335,13 +333,14 @@
</system>
<system>
<name>dos</name>
<fullname>DOS</fullname>
<fullname>DOS (PC)</fullname>
<path>%ROMPATH%/dos</path>
<extension>.dosz .DOSZ</extension>
<extension>.bat .BAT .com .COM .conf .CONF .cue .CUE .dosz .DOSZ .exe .EXE .iso .ISO .7z .7Z .zip .ZIP</extension>
<command label="DOSBox-Pure">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/dosbox_pure_libretro.so %ROM%</command>
<command label="DOSBox-Core">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/dosbox_core_libretro.so %ROM%</command>
<command label="DOSBox-SVN">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/dosbox_svn_libretro.so %ROM%</command>
<command label="DOSBox-X (Standalone)">%EMULATOR_DOSBOX-X% %ROM%</command>
<command label="DOSBox Staging (Standalone)">%EMULATOR_DOSBOX-STAGING% %ROM%</command>
<platform>dos</platform>
<theme>dos</theme>
</system>
@ -366,22 +365,13 @@
<theme>dreamcast</theme>
</system>
<system>
<name>famicom</name>
<fullname>Nintendo Family Computer</fullname>
<path>%ROMPATH%/famicom</path>
<extension>.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="Nestopia UE">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/nestopia_libretro.so %ROM%</command>
<command label="FCEUmm">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/fceumm_libretro.so %ROM%</command>
<command label="Mesen">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mesen_libretro.so %ROM%</command>
<command label="QuickNES">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/quicknes_libretro.so %ROM%</command>
<platform>famicom</platform>
<theme>famicom</theme>
@ -413,9 +403,9 @@
<fullname>Nintendo Famicom Disk System</fullname>
<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="Nestopia UE">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/nestopia_libretro.so %ROM%</command>
<command label="FCEUmm">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/fceumm_libretro.so %ROM%</command>
<command label="Mesen">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mesen_libretro.so %ROM%</command>
<platform>fds</platform>
<theme>fds</theme>
</system>
@ -433,10 +423,10 @@
<fullname>Sega Game Gear</fullname>
<path>%ROMPATH%/gamegear</path>
<extension>.68k .68K .bin .BIN .bms .BMS .chd .CHD .col .COL .cue .CUE .gen .GEN .gg .GG .iso .ISO .m3u .M3U .md .MD .mdx .MDX .rom .ROM .sg .SG .sgd .SGD .smd .SMD .sms .SMS .7z .7Z .zip .ZIP</extension>
<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="Genesis Plus GX">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/genesis_plus_gx_libretro.so %ROM%</command>
<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>
<platform>gamegear</platform>
<theme>gamegear</theme>
</system>
@ -445,8 +435,8 @@
<fullname>Nintendo Game Boy</fullname>
<path>%ROMPATH%/gb</path>
<extension>.bs .BS .cgb .CGB .dmg .DMG .gb .GB .gbc .GBC .sgb .SGB .sfc .SFC .smc .SMC .7z .7Z .zip .ZIP</extension>
<command label="SameBoy">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/sameboy_libretro.so %ROM%</command>
<command label="Gambatte">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/gambatte_libretro.so %ROM%</command>
<command label="SameBoy">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/sameboy_libretro.so %ROM%</command>
<command label="Gearboy">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/gearboy_libretro.so %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>
@ -477,8 +467,8 @@
<fullname>Nintendo Game Boy Color</fullname>
<path>%ROMPATH%/gbc</path>
<extension>.bs .BS .cgb .CGB .dmg .DMG .gb .GB .gbc .GBC .sgb .SGB .sfc .SFC .smc .SMC .7z .7Z .zip .ZIP</extension>
<command label="SameBoy">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/sameboy_libretro.so %ROM%</command>
<command label="Gambatte">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/gambatte_libretro.so %ROM%</command>
<command label="SameBoy">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/sameboy_libretro.so %ROM%</command>
<command label="Gearboy">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/gearboy_libretro.so %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>
@ -495,8 +485,8 @@
<fullname>Nintendo GameCube</fullname>
<path>%ROMPATH%/gc</path>
<extension>.gcm .GCM .iso .ISO .wbfs .WBFS .wia .WIA .ciso .CISO .gcz .GCZ .elf .ELF .dol .DOL .dff .DFF .rvz .RVZ .tgc .TGC .wad .WAD .m3u .M3U .7z .7Z .zip .ZIP</extension>
<command label="Dolphin (Standalone)">%EMULATOR_DOLPHIN% -b -e %ROM%</command>
<command label="Dolphin">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/dolphin_libretro.so %ROM%</command>
<command label="Dolphin (Standalone)">%EMULATOR_DOLPHIN% -b -e %ROM%</command>
<command label="PrimeHack (Standalone)">%EMULATOR_PRIMEHACK% -b -e %ROM%</command>
<platform>gc</platform>
<theme>gc</theme>
@ -510,6 +500,7 @@
<command label="Genesis Plus GX Wide">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/genesis_plus_gx_wide_libretro.so %ROM%</command>
<command label="PicoDrive">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/picodrive_libretro.so %ROM%</command>
<command label="BlastEm">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/blastem_libretro.so %ROM%</command>
<command label="BlastEm (Standalone)">%EMULATOR_BLASTEM% -m gen %ROM%</command>
<platform>genesis</platform>
<theme>genesis</theme>
</system>
@ -541,24 +532,6 @@
<theme>j2me</theme>
</system>
<system>
<name>lutris</name>
<fullname>Lutris Open Gaming Platform</fullname>
<path>%ROMPATH%/lutris</path>
<extension>.sh</extension>
<command>bash %ROM%</command>
<platform>pc</platform>
<theme>lutris</theme>
</system>
<system>
<name>lutro</name>
<fullname>Lutro Game Engine</fullname>
<path>%ROMPATH%/lutro</path>
@ -568,26 +541,17 @@
<theme>lutro</theme>
</system>
<system>
<name>mame</name>
<fullname>Multiple Arcade Machine Emulator</fullname>
<path>%ROMPATH%/mame</path>
<extension>.cmd .CMD .7z .7Z .zip .ZIP</extension>
<command label="MAME - Current">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mame_libretro.so %ROM%</command>
<command label="MAME 2010">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mame2010_libretro.so %ROM%</command>
<command label="MAME 2003-Plus">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mame2003_plus_libretro.so %ROM%</command>
<command label="MAME 2000">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mame2000_libretro.so %ROM%</command>
<command label="MAME 2010">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mame2010_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 %ROMPATH%/mame %BASENAME%</command>
<command label="FinalBurn Neo">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/fbneo_libretro.so %ROM%</command>
<command label="FB Alpha 2012">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/fbalpha2012_libretro.so %ROM%</command>
<command label="MAME (Standalone)">%EMULATOR_MAME% %ROM%</command>
<platform>arcade</platform>
<theme>mame</theme>
</system>
@ -653,6 +617,7 @@
<command label="Genesis Plus GX Wide">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/genesis_plus_gx_wide_libretro.so %ROM%</command>
<command label="PicoDrive">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/picodrive_libretro.so %ROM%</command>
<command label="BlastEm">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/blastem_libretro.so %ROM%</command>
<command label="BlastEm (Standalone)">%EMULATOR_BLASTEM% -m gen %ROM%</command>
<platform>megadrive</platform>
<theme>megadrive</theme>
</system>
@ -759,7 +724,7 @@
<path>%ROMPATH%/naomi</path>
<extension>.chd .CHD .cdi .CDI .iso .ISO .elf .ELF .bin .BIN .cue .CUE .gdi .GDI .lst .LST .dat .DAT .m3u .M3U .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>
<command label="Flycast (Standalone)">%EMULATOR_FLYCAST% %ROM%</command>
<platform>naomi</platform>
<theme>naomi</theme>
</system>
@ -817,9 +782,9 @@
<fullname>Nintendo Entertainment System</fullname>
<path>%ROMPATH%/nes</path>
<extension>.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="Nestopia UE">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/nestopia_libretro.so %ROM%</command>
<command label="FCEUmm">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/fceumm_libretro.so %ROM%</command>
<command label="Mesen">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mesen_libretro.so %ROM%</command>
<command label="QuickNES">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/quicknes_libretro.so %ROM%</command>
<platform>nes</platform>
<theme>nes</theme>
@ -857,8 +822,8 @@
<name>openbor</name>
<fullname>OpenBOR Game Engine</fullname>
<path>%ROMPATH%/openbor</path>
<extension>.7z .7Z .zip .ZIP</extension>
<command>PLACEHOLDER %ROM%</command>
<extension>.AppImage</extension>
<command>%STARTDIR%=%GAMEDIR% %EMULATOR_OS-SHELL% -c "%ROM%"</command>
<platform>openbor</platform>
<theme>openbor</theme>
</system>
@ -881,18 +846,6 @@
<theme>palm</theme>
</system>
<system>
<name>pc88</name>
<fullname>NEC PC-8800 Series</fullname>
<path>%ROMPATH%/pc88</path>
@ -950,21 +903,22 @@
<theme>pokemini</theme>
</system>
<system>
<name>ports</name>
<fullname>Ports</fullname>
<path>%ROMPATH%/ports</path>
<extension>.sh</extension>
<command>%EMULATOR_OS-SHELL% %ROM%</command>
<platform>pc</platform>
<theme>ports</theme>
</system>
<system>
<name>ps2</name>
<fullname>Sony PlayStation 2</fullname>
<path>%ROMPATH%/ps2</path>
<extension>.bin .BIN .chd .CHD .cso .CSO .elf .ELF .iso .ISO .isz .ISZ</extension>
<command label="PCSX2">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/pcsx2_libretro.so %ROM%</command>
<command label="PCSX2 (Standalone)">%EMULATOR_PCSX2% --nogui %ROM%</command>
<command label="Play! (Standalone)">%EMULATOR_PLAY!% --disc %ROM%</command>
<platform>ps2</platform>
<theme>ps2</theme>
</system>
@ -992,7 +946,7 @@
<path>%ROMPATH%/psp</path>
<extension>.elf .ELF .iso .ISO .cso .CSO .prx .PRX .pbp .PBP .7z .7Z .zip .ZIP</extension>
<command label="PPSSPP">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/ppsspp_libretro.so %ROM%</command>
<command label="PPSSPP (Standalone)">%EMULATOR_PPSSPP% --escape-exit %ROM%</command>
<command label="PPSSPP (Standalone)">%EMULATOR_PPSSPP% %ROM%</command>
<platform>psp</platform>
<theme>psp</theme>
</system>
@ -1013,9 +967,8 @@
<command label="Beetle PSX">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mednafen_psx_libretro.so %ROM%</command>
<command label="Beetle PSX HW">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mednafen_psx_hw_libretro.so %ROM%</command>
<command label="PCSX ReARMed">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/pcsx_rearmed_libretro.so %ROM%</command>
<command label="SwanStation">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/swanstation_libretro.so %ROM%</command>
<command label="DuckStation">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/duckstation_libretro.so %ROM%</command>
<command label="DuckStation (Standalone)">%EMULATOR_DUCKSTATION% -batch %ROM%</command>
<command label="SwanStation">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/swanstation_libretro.so %ROM%</command>
<command label="DuckStation (Standalone)">%EMULATOR_DUCKSTATION% -batch %ROM%</command>
<platform>psx</platform>
<theme>psx</theme>
</system>
@ -1036,7 +989,7 @@
<command label="Snes9x - Current">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/snes9x_libretro.so %ROM%</command>
<command label="Snes9x 2010">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/snes9x2010_libretro.so %ROM%</command>
<command label="bsnes">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/bsnes_libretro.so %ROM%</command>
<command label="bsnes-hd">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/bsnes_hd_beta_libretro.so %ROM%</command>
<command label="bsnes-hd">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/bsnes_hd_beta_libretro.so %ROM%</command>
<command label="bsnes-mercury Accuracy">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/bsnes_mercury_accuracy_libretro.so %ROM%</command>
<command label="Mesen-S">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mesen-s_libretro.so %ROM%</command>
<platform>satellaview</platform>
@ -1120,6 +1073,7 @@
<extension>.bin .BIN .bml .BML .bs .BS .bsx .BSX .dx2 .DX2 .fig .FIG .gd3 .GD3 .gd7 .GD7 .mgd .MGD .sfc .SFC .smc .SMC .st .ST .swc .SWC .7z .7Z .zip .ZIP</extension>
<command label="Snes9x - Current">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/snes9x_libretro.so %ROM%</command>
<command label="Snes9x 2010">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/snes9x2010_libretro.so %ROM%</command>
<command label="Snes9x (Standalone)">%EMULATOR_SNES9X% %ROM%</command>
<command label="bsnes">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/bsnes_libretro.so %ROM%</command>
<command label="bsnes-hd">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/bsnes_hd_beta_libretro.so %ROM%</command>
<command label="bsnes-mercury Accuracy">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/bsnes_mercury_accuracy_libretro.so %ROM%</command>
@ -1128,7 +1082,7 @@
<platform>snes</platform>
<theme>sfc</theme>
</system>
<system>
<system>
<name>sg-1000</name>
<fullname>Sega SG-1000</fullname>
<path>%ROMPATH%/sg-1000</path>
@ -1147,8 +1101,9 @@
<extension>.bin .BIN .bml .BML .bs .BS .bsx .BSX .dx2 .DX2 .fig .FIG .gd3 .GD3 .gd7 .GD7 .mgd .MGD .sfc .SFC .smc .SMC .st .ST .swc .SWC .7z .7Z .zip .ZIP</extension>
<command label="Snes9x - Current">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/snes9x_libretro.so %ROM%</command>
<command label="Snes9x 2010">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/snes9x2010_libretro.so %ROM%</command>
<command label="Snes9x (Standalone)">%EMULATOR_SNES9X% %ROM%</command>
<command label="bsnes">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/bsnes_libretro.so %ROM%</command>
<command label="bsnes-hd">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/bsnes_hd_beta_libretro.so %ROM%</command>
<command label="bsnes-hd">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/bsnes_hd_beta_libretro.so %ROM%</command>
<command label="bsnes-mercury Accuracy">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/bsnes_mercury_accuracy_libretro.so %ROM%</command>
<command label="Beetle Supafaust">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mednafen_supafaust_libretro.so %ROM%</command>
<command label="Mesen-S">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mesen-s_libretro.so %ROM%</command>
@ -1162,8 +1117,9 @@
<extension>.bin .BIN .bml .BML .bs .BS .bsx .BSX .dx2 .DX2 .fig .FIG .gd3 .GD3 .gd7 .GD7 .mgd .MGD .sfc .SFC .smc .SMC .st .ST .swc .SWC .7z .7Z .zip .ZIP</extension>
<command label="Snes9x - Current">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/snes9x_libretro.so %ROM%</command>
<command label="Snes9x 2010">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/snes9x2010_libretro.so %ROM%</command>
<command label="Snes9x (Standalone)">%EMULATOR_SNES9X% %ROM%</command>
<command label="bsnes">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/bsnes_libretro.so %ROM%</command>
<command label="bsnes-hd">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/bsnes_hd_beta_libretro.so %ROM%</command>
<command label="bsnes-hd">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/bsnes_hd_beta_libretro.so %ROM%</command>
<command label="bsnes-mercury Accuracy">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/bsnes_mercury_accuracy_libretro.so %ROM%</command>
<command label="Beetle Supafaust">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mednafen_supafaust_libretro.so %ROM%</command>
<command label="Mesen-S">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mesen-s_libretro.so %ROM%</command>
@ -1189,15 +1145,6 @@
<theme>spectravideo</theme>
</system>
<system>
<name>stratagus</name>
<fullname>Stratagus Game Engine</fullname>
<path>%ROMPATH%/stratagus</path>
@ -1214,7 +1161,7 @@
<command label="Snes9x - Current">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/snes9x_libretro.so %ROM%</command>
<command label="Snes9x 2010">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/snes9x2010_libretro.so %ROM%</command>
<command label="bsnes">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/bsnes_libretro.so %ROM%</command>
<command label="bsnes-hd">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/bsnes_hd_beta_libretro.so %ROM%</command>
<command label="bsnes-hd">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/bsnes_hd_beta_libretro.so %ROM%</command>
<command label="bsnes-mercury Accuracy">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/bsnes_mercury_accuracy_libretro.so %ROM%</command>
<platform>sufami</platform>
<theme>sufami</theme>
@ -1363,8 +1310,8 @@
<fullname>Nintendo Wii</fullname>
<path>%ROMPATH%/wii</path>
<extension>.gcm .GCM .iso .ISO .wbfs .WBFS .wia .WIA .ciso .CISO .gcz .GCZ .elf .ELF .dol .DOL .dff .DFF .rvz .RVZ .tgc .TGC .wad .WAD .m3u .M3U .7z .7Z .zip .ZIP</extension>
<command label="Dolphin (Standalone)">%EMULATOR_DOLPHIN% -b -e %ROM%</command>
<command label="Dolphin">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/dolphin_libretro.so %ROM%</command>
<command label="Dolphin (Standalone)">%EMULATOR_DOLPHIN% -b -e %ROM%</command>
<command label="PrimeHack (Standalone)">%EMULATOR_PRIMEHACK% -b -e %ROM%</command>
<platform>wii</platform>
<theme>wii</theme>
@ -1468,4 +1415,16 @@
<platform>tools</platform>
<theme>tools</theme>
</system>
</systemList>
<system>
<name>pico-8</name>
<fullname>Pico-8</fullname>
<manufacturer>Lexaloffle</manufacturer>
<release>2015</release>
<hardware>console</hardware>
<path>%ROMPATH%/pico-8</path>
<extension>.p8 .png</extension>
<command>%EMULATOR_PICO-8% -desktop ~/retrodeck/screenshots -windowed 0 -root_path %ROMPATH%/pico-8 -run %ROM%</command>
<platform>pico-8</platform>
<theme>pico-8</theme>
</system>
</systemList>

View file

@ -0,0 +1,73 @@
<?xml version="1.0"?>
<gameList>
<game>
<path>./start-retroarch.sh</path>
<name>Start RetroArch</name>
<desc>Start RetroArch to manually tweak your settings.</desc>
<nogamecount>true</nogamecount>
<nomultiscrape>true</nomultiscrape>
</game>
<game>
<path>./start-yuzu.sh</path>
<name>Start Yuzu</name>
<desc>Start Yuzu to manually tweak your settings.</desc>
<nogamecount>true</nogamecount>
<nomultiscrape>true</nomultiscrape>
</game>
<game>
<path>./start-pcsx2.sh</path>
<name>Start PCSX2 (Standalone)</name>
<desc>Start PCSX2 to manually tweak your settings.</desc>
<nogamecount>true</nogamecount>
<nomultiscrape>true</nomultiscrape>
</game>
<game>
<path>./start-ppsspp.sh</path>
<name>Start PPSSPP (Standalone)</name>
<desc>Start PPSSPP to manually tweak your settings.</desc>
<nogamecount>true</nogamecount>
<nomultiscrape>true</nomultiscrape>
</game>
<game>
<path>./start-dolphin.sh</path>
<name>Start Dolphin (Standalone)</name>
<desc>Start Dolphin to manually tweak your settings.</desc>
<nogamecount>true</nogamecount>
<nomultiscrape>true</nomultiscrape>
</game>
<game>
<path>./start-melonds.sh</path>
<name>Start MelonDS (Standalone)</name>
<desc>Start MelonDS to manually tweak your settings.</desc>
<nogamecount>true</nogamecount>
<nomultiscrape>true</nomultiscrape>
</game>
<game>
<path>./start-citra.sh</path>
<name>Start CITRA (Standalone)</name>
<desc>Start CITRA to manually tweak your settings.</desc>
<nogamecount>true</nogamecount>
<nomultiscrape>true</nomultiscrape>
</game>
<game>
<path>./start-rpcs3.sh</path>
<name>Start RPCS3 (Standalone)</name>
<desc>Start RPCS3 to manually tweak your settings.</desc>
<nogamecount>true</nogamecount>
<nomultiscrape>true</nomultiscrape>
</game>
<game>
<path>./start-splore.sh</path>
<name>Start Splore</name>
<desc>Start PICO-8's splore</desc>
<nogamecount>true</nogamecount>
<nomultiscrape>true</nomultiscrape>
</game>
<game>
<path>./move-roms.sh</path>
<name>Move roms folder</name>
<desc>Move roms folder from internal to external and vice versa.</desc>
<nogamecount>true</nogamecount>
<nomultiscrape>true</nomultiscrape>
</game>
</gameList>

View file

@ -1,171 +0,0 @@
<?xml version="1.0"?>
<!-- This is the ES-DE find rules configuration file for Unix -->
<ruleList>
<emulator name="RETROARCH">
<rule type="systempath">
<entry>retroarch</entry>
<entry>org.libretro.RetroArch</entry>
<entry>RetroArch-Linux-x86_64.AppImage</entry>
</rule>
<rule type="staticpath">
<entry>/var/lib/flatpak/exports/bin/org.libretro.RetroArch</entry>
<entry>~/Applications/RetroArch-Linux-x86_64.AppImage</entry>
<entry>~/.local/bin/RetroArch-Linux-x86_64.AppImage</entry>
<entry>~/bin/RetroArch-Linux-x86_64.AppImage</entry>
</rule>
</emulator>
<core name="RETROARCH">
<rule type="corepath">
<!-- Snap package -->
<entry>~/snap/retroarch/current/.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>
<!-- Ubuntu and Linux Mint repository -->
<entry>/usr/lib/x86_64-linux-gnu/libretro</entry>
<!-- Fedora repository -->
<entry>/usr/lib64/libretro</entry>
<!-- Manjaro repository -->
<entry>/usr/lib/libretro</entry>
<!-- FreeBSD and OpenBSD repository -->
<entry>/usr/local/lib/libretro</entry>
<!-- NetBSD repository -->
<entry>/usr/pkg/lib/libretro</entry>
<!-- FlatPak RetroDECK -->
<entry>/app/share/libretro/cores</entry>
</rule>
</core>
<emulator name="CITRA">
<!-- Nintendo 3DS emulator Citra -->
<rule type="systempath">
<entry>citra-emu.citra-nightly</entry>
<entry>org.citra_emu.citra</entry>
</rule>
<rule type="staticpath">
<entry>/var/lib/flatpak/exports/bin/org.citra_emu.citra</entry>
</rule>
</emulator>
<emulator name="DOLPHIN">
<!-- Nintendo GameCube and Wii emulator Dolphin -->
<rule type="systempath">
<entry>dolphin-emu</entry>
<entry>org.DolphinEmu.dolphin-emu</entry>
</rule>
<rule type="staticpath">
<entry>/var/lib/flatpak/exports/bin/org.DolphinEmu.dolphin-emu</entry>
<entry>~/Applications/Dolphin_Emulator*.AppImage</entry>
<entry>~/.local/bin/Dolphin_Emulator*.AppImage</entry>
<entry>~/bin/Dolphin_Emulator*.AppImage</entry>
</rule>
</emulator>
<emulator name="FS-UAE">
<!-- Commodore Amiga emulator FS-UAE -->
<rule type="systempath">
<entry>fs-uae</entry>
<entry>fsuae.fs-uae</entry>
<entry>net.fsuae.FS-UAE</entry>
</rule>
<rule type="staticpath">
<entry>/var/lib/flatpak/exports/bin/net.fsuae.FS-UAE</entry>
</rule>
</emulator>
<emulator name="MAME">
<!-- Arcade emulator MAME -->
<rule type="systempath">
<entry>mame</entry>
</rule>
</emulator>
<emulator name="MGBA">
<!-- Nintendo Game Boy Advance emulator mGBA -->
<rule type="systempath">
<entry>mgba</entry>
<entry>io.mgba.mGBA</entry>
</rule>
<rule type="staticpath">
<entry>/var/lib/flatpak/exports/bin/io.mgba.mGBA</entry>
<entry>~/Applications/mGBA*.AppImage</entry>
<entry>~/.local/bin/mGBA*.AppImage</entry>
<entry>~/bin/mGBA*.AppImage</entry>
</rule>
</emulator>
<emulator name="MUPEN64PLUS">
<!-- Nintendo 64 emulator Mupen64Plus -->
<rule type="systempath">
<entry>m64p</entry>
<entry>io.github.m64p.m64p</entry>
</rule>
<rule type="staticpath">
<entry>/var/lib/flatpak/exports/bin/io.github.m64p.m64p</entry>
</rule>
</emulator>
<emulator name="PCSX2">
<!-- Sony PlayStation 2 emulator PCSX2 -->
<rule type="systempath">
<entry>PCSX2</entry>
<entry>pcsx2</entry>
<entry>net.pcsx2.PCSX2</entry>
</rule>
<rule type="staticpath">
<entry>/var/lib/flatpak/exports/bin/net.pcsx2.PCSX2</entry>
</rule>
</emulator>
<emulator name="PPSSPP">
<!-- Sony PlayStation Portable emulator PPSSPP -->
<rule type="systempath">
<entry>ppsspp-emu.ppsspp-sdl</entry>
<entry>org.ppsspp.PPSSPP</entry>
</rule>
<rule type="staticpath">
<entry>/var/lib/flatpak/exports/bin/org.ppsspp.PPSSPP</entry>
</rule>
</emulator>
<emulator name="RPCS3">
<!-- Sony PlayStation 3 emulator RPCS3 -->
<rule type="systempath">
<entry>rpcs3</entry>
<entry>rpcs3-emu.rpcs3</entry>
<entry>net.rpcs3.RPCS3</entry>
<entry>rpcs3.AppImage</entry>
</rule>
<rule type="staticpath">
<entry>/var/lib/flatpak/exports/bin/net.rpcs3.RPCS3</entry>
<entry>~/Applications/rpcs3*.AppImage</entry>
<entry>~/.local/bin/rpcs3*.AppImage</entry>
<entry>~/bin/rpcs3*.AppImage</entry>
</rule>
</emulator>
<emulator name="VBA-M">
<!-- Nintendo Game Boy Advance emulator VBA-M -->
<rule type="systempath">
<entry>visualboyadvance-m</entry>
</rule>
</emulator>
<emulator name="XEMU">
<!-- Microsoft Xbox emulator xemu -->
<rule type="systempath">
<entry>xemu</entry>
<entry>app.xemu.xemu</entry>
</rule>
<rule type="staticpath">
<entry>/var/lib/flatpak/exports/bin/app.xemu.xemu</entry>
<entry>~/Applications/Xemu*.AppImage</entry>
<entry>~/.local/bin/Xemu*.AppImage</entry>
<entry>~/bin/Xemu*.AppImage</entry>
</rule>
</emulator>
<emulator name="YUZU">
<!-- Nintendo Switch emulator Yuzu -->
<rule type="systempath">
<entry>yuzu</entry>
<entry>org.yuzu_emu.yuzu</entry>
<entry>yuzu.AppImage</entry>
</rule>
<rule type="staticpath">
<entry>/var/lib/flatpak/exports/bin/org.yuzu_emu.yuzu</entry>
<entry>~/Applications/yuzu*.AppImage</entry>
<entry>~/.local/bin/yuzu*.AppImage</entry>
<entry>~/bin/yuzu*.AppImage</entry>
</rule>
</emulator>
</ruleList>

View file

@ -16,6 +16,7 @@
<screenshot type="default">
<image type="source" width="1440" height="792">https://github.com/XargonWan/RetroDECK/blob/main/res/logo.png?raw=true</image>
</screenshot>
<screenshot>
<image type="source" width="1440" height="792">https://github.com/XargonWan/RetroDECK/blob/main/res/screenshots/screen02.png?raw=true</image>
</screenshot>
<screenshot>
@ -29,14 +30,12 @@
</screenshot>
</screenshots>
<description>
<p>
RetroDECK brings an environment to catalog and play your retro games directly from SteamOS and it's tailored specifically for the Steam Deck.<br/>
It's inspired by embedded emulation systems like AmberELEC, EmuELEC, CoreELEC, Lakka, and Batocera.
</p>
<p>
RetroDECK brings an environment to catalog and play your retro games directly from SteamOS and it's tailored specifically for the Steam Deck.
It's inspired by embedded emulation systems like AmberELEC, EmuELEC, CoreELEC, Lakka, and Batocera.</p>
<p>
Powered by EmulationStation Desktop Edition, which uses RetroArch and other standalone emulators to allow you to import and play your favorite retro (and even not-so-retro) games in a tidy environment without flooding your Steam library.<br/>
No other software is needed as everything it's already included!
</p>
Powered by EmulationStation Desktop Edition, which uses RetroArch and other standalone emulators to allow you to import and play your favorite retro (and even not-so-retro) games in a tidy environment without flooding your Steam library.
No other software is needed as everything it's already included!</p>
</description>
<project_license>GPL-3.0</project_license>
<metadata_license>CC0-1.0</metadata_license>

View file

@ -4,7 +4,7 @@ runtime-version: '5.15-21.08'
sdk: org.kde.Sdk
# Needed for rpcs3
sdk-extensions:
- org.freedesktop.Sdk.Extension.llvm13
- org.freedesktop.Sdk.Extension.llvm13
# /Needed for rpcs3
# Needed for Yuzu
base: io.qt.qtwebengine.BaseApp
@ -26,14 +26,15 @@ finish-args:
- --talk-name=org.freedesktop.ScreenSaver
- --talk-name=org.freedesktop.PowerManagement.Inhibit
- --talk-name=org.freedesktop.login1
#- --filesystem=host
- --filesystem=xdg-run/app/com.discordapp.Discord:create
# Yuzu
- --filesystem=home:ro
# - --filesystem=home:ro # This may break Yuzu, let's see
# - --filesystem=/run/media:ro
# Dolphin
- --allow=bluetooth
#- --env=QT_QPA_PLATFORM=xcb not sure if this will break something
#- --env=QT_QPA_PLATFORM=xcb #not sure if this will break something
# rpcs3
- --socket=fallback-x11
cleanup:
# ES-DE
@ -59,6 +60,33 @@ cleanup-commands:
modules:
# This module is used to define the RetroDECK version
# If the version is set as cooker it will automatically generate the version tag based on the date
# else it will just put what is written, "v" is not needed
# The version number is stored in /var/conf/retrodeck/version
#
# UPDATE STEPS FOR MAIN:
# [ ] Update the VERSION variable
# [ ] Update the appdata.xml with the version number and notes
#
- name: version-initialization
buildsystem: simple
build-commands:
- |
git checkout ${GITHUB_REF_NAME}
mkdir -p ${FLATPAK_DEST}/retrodeck/
VERSION="cooker"
if [[ $VERSION == "cooker" ]];
then
VERSION=$(git describe --tags | tr - .)
fi
echo $VERSION >> ${FLATPAK_DEST}/retrodeck/version
cat ${FLATPAK_DEST}/retrodeck/version
sources:
- type: git
url: https://github.com/XargonWan/RetroDECK.git
branch: cooker
- name: xmlstarlet
config-opts:
- --disable-static-libs
@ -76,13 +104,6 @@ modules:
- ln -s "xml" "${FLATPAK_DEST}/bin/xmlstarlet" ||:
cleanup: ["*"]
- name: kdialog
buildsystem: cmake-ninja
sources:
- type: git
url: https://github.com/KDE/kdialog.git
tag: v22.03.80
# ES-DE
- name: ffmpeg
@ -132,8 +153,12 @@ modules:
- es-core
sources:
- type: git
url: https://gitlab.com/leonstyhre/emulationstation-de.git
branch: 3cb464c7adcea8d020cdff92803c64b7f72fb443
url: https://gitlab.com/es-de/emulationstation-de
branch: d89cedd25f1bbb9a38c1f66bca18b74d5332cad1
- type: shell
commands:
- sed -i 's/QUIT EMULATIONSTATION/QUIT RETRODECK/g' es-app/src/guis/GuiMenu.cpp
- sed -i 's#"EMULATIONSTATION-DE V" + Utils::String::toUpper(PROGRAM_VERSION_STRING)#"RetroDECK v'$(cat ${FLATPAK_DEST}/retrodeck/version)', ES-DE v" + Utils::String::toUpper(PROGRAM_VERSION_STRING)#g' es-app/src/guis/GuiMenu.cpp
# ES-DE - END
@ -145,7 +170,7 @@ modules:
sources:
- type: git
url: https://github.com/anthonycaccese/art-book-next-de.git
commit: c3563ab31c628774904ca51776c114c537ac0c33
commit: 7fb9f567892a357651bbc6a2b6af3d1085a10ffb
# External manifests start
@ -717,6 +742,234 @@ modules:
# XEMU - END
# MELONDS - START
# https://github.com/flathub/net.kuribo64.melonDS
# ちっちゃい、かわいい!
- name: libslirp
buildsystem: meson
sources:
- type: git
url: https://gitlab.freedesktop.org/slirp/libslirp.git
tag: v4.4.0
- name: melonds
buildsystem: cmake-ninja
builddir: true
build-options:
arch:
aarch64:
config-opts:
- -DENABLE_OGLRENDERER=OFF
sources:
- type: git
url: https://github.com/Arisotura/melonDS.git
commit: cce9de5ee1f51e906a644922b2ada6644d81287a
# MELONDS - END
# CITRA - START
# https://github.com/flathub/org.citra_emu.citra
- name: citra
buildsystem: cmake-ninja
builddir: true
config-opts:
- '-DCMAKE_BUILD_TYPE=Release'
- '-DENABLE_QT_TRANSLATION=ON'
- '-DCITRA_ENABLE_COMPATIBILITY_REPORTING=ON'
- '-DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON'
#- '-DENABLE_FFMPEG_VIDEO_DUMPER=ON'
# Disabled because of this: https://github.com/citra-emu/citra/issues/5949
- '-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
sources:
- type: git
url: https://github.com/citra-emu/citra-nightly.git
tag: nightly-1762
commit: 1382035d4de5ada310c7f4fd00f1836b16ab74fb
disable-shallow-clone: true
x-checker-data:
type: git
tag-pattern: ^(nightly-\d+)$
is-main-source: true
# CITRA - END
# RPCS3 - START
# https://github.com/flathub/net.rpcs3.RPCS3
- shared-modules/glu/glu-9.json
- shared-modules/glew/glew.json
- name: rpcs3-llvm
buildsystem: cmake-ninja
builddir: true
build-options:
cflags: &optflags -O2 -g -pipe -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong
-grecord-gcc-switches -fasynchronous-unwind-tables -fstack-clash-protection
-fcf-protection -fno-omit-frame-pointer
cflags-override: true
cxxflags: -O2 -g -pipe -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong
-grecord-gcc-switches -fasynchronous-unwind-tables -fstack-clash-protection
-fcf-protection -fno-omit-frame-pointer -msse -msse2 -mcx16
cxxflags-override: true
env:
AR: llvm-ar
CC: clang
CXX: clang++
RANLIB: llvm-ranlib
ldflags: -fuse-ld=lld
prepend-ld-library-path: /usr/lib/sdk/llvm13/lib
prepend-path: /usr/lib/sdk/llvm13/bin
config-opts:
- -DCMAKE_BUILD_TYPE=Release
- -DBUILD_SHARED_LIBS=OFF
- -DLLVM_CCACHE_BUILD=ON
- -DLLVM_TARGETS_TO_BUILD='X86'
- -DLLVM_BUILD_RUNTIME=OFF
- -DLLVM_BUILD_TOOLS=OFF
- -DLLVM_INCLUDE_DOCS=OFF
- -DLLVM_INCLUDE_EXAMPLES=OFF
- -DLLVM_INCLUDE_TESTS=OFF
- -DLLVM_INCLUDE_TOOLS=OFF
- -DLLVM_INCLUDE_UTILS=OFF
- -DLLVM_USE_INTEL_JITEVENTS=ON
- -DLLVM_USE_PERF=ON
- -DLLVM_ENABLE_Z3_SOLVER=OFF
- -DCMAKE_CXX_STANDARD=17
- -DITTAPI_SOURCE_DIR=/run/build/rpcs3-llvm/ittapi
- -Wno-dev
cleanup:
- '*'
sources:
- type: git
url: https://github.com/RPCS3/llvm-mirror.git
commit: 509d31ad89676522f7121b3bb8688f7d29b7ee60
- type: git
url: https://github.com/intel/ittapi.git
dest: ittapi/ittapi
disable-shallow-clone: true
- name: rpcs3
buildsystem: cmake-ninja
builddir: true
build-options:
append-ld-library-path: /usr/lib/sdk/llvm13/lib
append-path: /usr/lib/sdk/llvm13/bin
cflags: *optflags
cflags-override: true
cxxflags: *optflags
cxxflags-override: true
env:
AR: llvm-ar
CC: clang
CXX: clang++
RANLIB: llvm-ranlib
ldflags: -fuse-ld=lld
config-opts:
- -DCMAKE_BUILD_TYPE=RelWithDebInfo
- -DBUILD_LLVM_SUBMODULE=OFF
- -DUSE_NATIVE_INSTRUCTIONS=OFF
- -DUSE_PRECOMPILED_HEADERS=OFF
- -DUSE_SYSTEM_CURL=ON
- -DUSE_SYSTEM_FFMPEG=ON
- -DUSE_SYSTEM_LIBPNG=ON
- -DUSE_SYSTEM_ZLIB=ON
- -Wno-dev
post-install:
- |
set -eux;
sed -i 's|<id>RPCS3</id>|<id>net.rpcs3.RPCS3</id>|' ${FLATPAK_DEST}/share/metainfo/rpcs3.metainfo.xml;
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)";
sed -i 's|</component>|<content_rating type="oars-1.1"/><releases><release date="'$(git show -s --format=%cs)'" version="'"${COMM_TAG}"'-'"${COMM_COUNT}"'-'"${COMM_HASH}"'"/></releases></component>|' ${FLATPAK_DEST}/share/metainfo/rpcs3.metainfo.xml;
sources:
- type: git
url: https://github.com/RPCS3/rpcs3.git
commit: e9570d1a0045926f63ec8ea9af68f81743d4f365
# RPCS3 - END
# PRIMEHACK - START
# https://github.com/flathub/io.github.shiiion.primehack
# Disabled because it's overwriting Dolphin
# - name: primehack
# buildsystem: cmake-ninja
# config-opts:
# - -DCMAKE_BUILD_TYPE=Release
# - -DENABLE_ALSA=OFF
# - -DENABLE_SDL=ON
# - -DENABLE_EVDEV=ON
# - -DDISTRIBUTOR=Flathub
# cleanup:
# - /share/man
# post-install:
# - install -D dolphin-emu-wrapper /app/bin/dolphin-emu-wrapper
# - sed -i -e 's/"2048"/"512"/g' /app/share/icons/hicolor/scalable/apps/dolphin-emu.svg
# sources:
# - type: git
# url: https://github.com/shiiion/dolphin.git
# commit: 9ca0eb888bd6f8ed13a4efb92d808fbf0705ffa4
# # 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/primehack/detectflatpak.patch
# # version strings must match exactly for online multiplayer
# - type: patch
# path: rd-submodules/primehack/nodirtyversion.patch
# - type: script
# commands:
# - 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
# - dolphin-emu "$@"
# dest-filename: dolphin-emu-wrapper
# PRIMEHACK - END
# PPSSPP - START
# https://github.com/flathub/org.ppsspp.PPSSPP
- name: ppsspp
buildsystem: cmake-ninja
config-opts:
- '-DUSE_SYSTEM_FFMPEG=OFF' # turn this on?
- '-DUSE_SYSTEM_LIBZIP=ON'
- '-DUSE_SYSTEM_ZSTD=ON'
- '-DUSE_WAYLAND_WSI=ON'
- '-DUSING_X11_VULKAN=ON'
- '-DUSING_QT_UI=OFF'
- '-DBUILD_TESTING=OFF'
- '-DOpenGL_GL_PREFERENCE=GLVND'
build-options:
- '-DX86_64=ON'
sources:
- type: git
url: https://github.com/hrydgard/ppsspp.git
tag: v1.12.3
commit: ce0a45cf0fcdd5bebf32208b9998f68dfc1107b7
x-checker-data:
type: git
tag-pattern: "^v([\\d.]+)$"
is-main-source: true
# PPSSPP - END
# External manifests end
@ -724,13 +977,12 @@ modules:
buildsystem: simple
build-commands:
# Prep the ES-DE and RetroArch config files
# Prep the ES-DE and RetroArch config files - I will have to SED/XMLSTARLET them soon
- rm -rf /app/share/emulationstation/resources/systems/unix/es_find_rules.xml
- cp es_find_rules.xml /app/share/emulationstation/resources/systems/unix/
- rm -rf /app/share/emulationstation/resources/systems/unix/es_systems.xml
- cp es_systems.xml /app/share/emulationstation/resources/systems/unix/
# These must be put in home folder, managed by retrodeck.sh
- mkdir -p ${FLATPAK_DEST}/retrodeck/
- cp es_settings.xml ${FLATPAK_DEST}/retrodeck/es_settings.xml
# Logo, res
@ -740,7 +992,7 @@ modules:
# Tools
- mkdir -p ${FLATPAK_DEST}/retrodeck/tools/
- cp start-retroarch.sh ${FLATPAK_DEST}/retrodeck/tools/
- cp start-*.sh ${FLATPAK_DEST}/retrodeck/tools/
- cp move-roms.sh ${FLATPAK_DEST}/retrodeck/tools/
- cp start-yuzu.sh ${FLATPAK_DEST}/retrodeck/tools/
- cp tools-gamelist.xml ${FLATPAK_DEST}/retrodeck/
@ -751,7 +1003,7 @@ modules:
# Desktop entry
- cp net.retrodeck.retrodeck.desktop /app/share/applications/net.retrodeck.retrodeck.desktop
# Steam Grids
# Steam Grids - When BoilR comes it will be deprecated
- mkdir -p ${FLATPAK_DEST}/retrodeck/steam/
- cp banner_main.png ${FLATPAK_DEST}/retrodeck/steam/
- cp poster_main.png ${FLATPAK_DEST}/retrodeck/steam/
@ -764,24 +1016,27 @@ modules:
# Dolphin
- cp Dolphin.ini ${FLATPAK_DEST}/retrodeck/emu-configs/
# Yuzu
- cp qt-config.ini ${FLATPAK_DEST}/retrodeck/emu-configs/
- cp yuzu-qt-config.ini ${FLATPAK_DEST}/retrodeck/emu-configs/
# Pcsx2
- cp PCSX2_ui.ini ${FLATPAK_DEST}/retrodeck/emu-configs/
# MelonDS
- cp melonDS.ini ${FLATPAK_DEST}/retrodeck/emu-configs/
# CITRA
- cp citra-qt-config.ini ${FLATPAK_DEST}/retrodeck/emu-configs/
# RPCS3
- cp config.yml ${FLATPAK_DEST}/retrodeck/emu-configs/
# Placing appdata
- mkdir -p ${FLATPAK_DEST}/share/appdata
- cp net.retrodeck.retrodeck.appdata.xml ${FLATPAK_DEST}/share/appdata
#cleanup: ['*']
sources:
- type: file
path: es_find_rules.xml
- type: file
path: es_settings.xml
- type: file
path: es_systems.xml
- type: dir
path: es_configs
- type: file
path: retrodeck.sh
- type: dir
path: emu-configs
- type: file
path: tools-gamelist.xml
- type: dir
path: res
- type: dir
@ -790,3 +1045,6 @@ modules:
path: tools
- type: file
path: net.retrodeck.retrodeck.desktop
- type: file
path: net.retrodeck.retrodeck.appdata.xml

323
retrodeck.sh Executable file → Normal file
View file

@ -1,104 +1,287 @@
#!/bin/bash
# Steam Deck SD path: /run/media/mmcblk0p1
lockfile="$HOME/retrodeck/.lock" # where the lockfile is located
version="$(cat /app/retrodeck/version)" # version info taken from the version file
rdhome="$HOME/retrodeck" # the retrodeck home, aka ~/retrodecck
emuconfigs="/app/retrodeck/emu-configs" # folder with all the default emulator configs
sdcard="/run/media/mmcblk0p1" # Steam Deck SD default path
# Functions area
dir_prep() {
# This script is creating a symlink preserving old folder contents and moving them in the new one
# Call me with:
# dir prep "real dir" "symlink location"
real="$1"
symlink="$2"
echo -e "\nDIR PREP: Moving $symlink in $real" #DEBUG
# if the dest dir exists we want to backup it
if [ -d "$symlink" ];
then
echo "$symlink found" #DEBUG
mv -fv "$symlink" "$symlink.old"
fi
# if the real dir doesn't exist we create it
if [ ! -d "$real" ];
then
echo "$real not found, creating it" #DEBUG
mkdir -pv "$real"
fi
# creating the symlink
echo "linking $real in $symlink" #DEBUG
mkdir -pv "$(dirname "$symlink")" # creating the full path except the last folder
ln -sv "$real" "$symlink"
# moving everything from the old folder to the new one, delete the old one
if [ -d "$symlink.old" ];
then
echo "Moving the data from $symlink.old to $real" #DEBUG
mv -fv "$symlink.old/*" "$real"
echo "Removing $symlink.old" #DEBUG
rm -rf "$symlink.old"
fi
#DEBUG
previous_dir=$PWD
cd $real
cd ..
echo "We are in $PWD" #DEBUG
ls -ln
cd $previous_dir
#DEBUG
echo $symlink is now $real
}
is_mounted() {
# This script checks if the provided path in $1 is mounted
mount | awk -v DIR="$1" '{if ($3 == DIR) { exit 0}} ENDFILE{exit -1}'
}
# if we got the .lock file it means that it's not a first run
if [ ! -f ~/retrodeck/.lock ]
then
kdialog --title "RetroDECK" --yes-label "Yes" --no-label "Quit" --yesno "Welcome to the first configuration of RetroDECK.\n\nBefore starting, are you in Desktop Mode?\nIf not the program will quit as the first setup MUST be done in Desktop Mode."
if [ $? == 1 ] #quit
then
exit 0
fi
kdialog --title "RetroDECK" --yes-label "Internal" --no-label "SD Card" --yesno "Where do you want your roms folder to be located?"
tools_init() {
rm -rfv /var/config/retrodeck/tools/
mkdir -pv /var/config/retrodeck/tools/
cp -r /app/retrodeck/tools/* /var/config/retrodeck/tools/
mkdir -pv /var/config/emulationstation/.emulationstation/custom_systems/tools/
cp /app/retrodeck/tools-gamelist.xml /var/config/retrodeck/tools/gamelist.xml
}
standalones_init() {
# This script is configuring the standalone emulators with the default files present in emuconfigs folder
echo "Initializing standalone emulators"
# Yuzu
# removing dead symlinks as they were present in a past version
if [ -d $rdhome/bios/switch ]; then
find $rdhome/bios/switch -xtype l -exec rm {} \;
fi
# initializing the keys folder
dir_prep "$rdhome/bios/switch/keys" "/var/data/yuzu/keys"
# initializing the firmware folder
dir_prep "$rdhome/bios/switch/registered" "/var/data/yuzu/nand/system/Contents/registered"
# configuring Yuzu
mkdir -pv /var/config/yuzu/
cp -fv $emuconfigs/yuzu-qt-config.ini /var/config/yuzu/qt-config.ini
# Dolphin
mkdir -pv /var/config/dolphin-emu/
cp -fv $emuconfigs/Dolphin.ini /var/config/dolphin-emu/
# pcsx2
mkdir -pv /var/config/PCSX2/inis/
cp -fv $emuconfigs/PCSX2_ui.ini /var/config/PCSX2/inis/
# MelonDS
mkdir -pv /var/config/melonDS/
dir_prep "$rdhome/bios" "/var/config/melonDS/bios"
cp -fv $emuconfigs/melonDS.ini /var/config/melonDS/
# CITRA
mkdir -pv /var/config/citra-emu/
cp -fv $emuconfigs/citra-qt-config.ini /var/config/citra-emu/qt-config.ini
# RPCS3
mkdir -pv /var/config/rpcs3/
cp -fv $emuconfigs/config.yml /var/config/rpcs3/
# PICO-8
# Moved PICO-8 stuff in the finit as only it knows here roms folders is
}
ra_init() {
dir_prep "$rdhome/bios" "/var/config/retroarch/system"
mkdir -pv /var/config/retroarch/cores/
cp /app/share/libretro/cores/* /var/config/retroarch/cores/
cp -f $emuconfigs/retroarch.cfg /var/config/retroarch/
#rm -rf $rdhome/bios/bios # in some situations a double bios symlink is created
}
create_lock() {
# creating RetroDECK's lock file and writing the version number in it
echo "$version" > "$lockfile"
}
post_update() {
# post update script
echo "Executing post-update script"
# Doing the dir prep as we don know from which version we came
dir_prep "$rdhome/.downloaded_media" "/var/config/emulationstation/.emulationstation/downloaded_media"
dir_prep "$rdhome/.themes" "/var/config/emulationstation/.emulationstation/themes"
mkdir -pv $rdhome/.logs #this was added later, maybe safe to remove in a few versions
ra_init
standalones_init
tools_init
create_lock
}
start_retrodeck() {
# normal startup
echo "Starting RetroDECK v$version"
emulationstation --home /var/config/emulationstation
}
finit() {
# Force/First init, depending on the situation
echo "Executing finit"
# Internal or SD Card?
zenity --icon-name=net.retrodeck.retrodeck --question --no-wrap --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --title "RetroDECK" --ok-label "Internal" --cancel-label "SD Card" --text="Welcome to the first configuration of RetroDECK.\nThe setup will be quick but please READ CAREFULLY each message in order to avoid misconfigurations.\n\nWhere do you want your roms folder to be located?"
if [ $? == 0 ] #yes - Internal
then
roms_folder=~/retrodeck/roms
roms_folder="$rdhome/roms"
else #no - SD Card
if is_mounted "/run/media/mmcblk0p1"
if [ is_mounted "$sdcard" ];
then
roms_folder=/run/media/mmcblk0p1/retrodeck/roms
roms_folder="$sdcard/retrodeck/roms"
else
kdialog --title "RetroDECK" --error "SD Card is not readable, please check if it inserted or mounted correctly and run RetroDECK again."
zenity --error --no-wrap --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --title "RetroDECK" --text="SD Card is not readable.\nPlease check if it's inserted or mounted correctly and run RetroDECK again."
exit 0
fi
fi
mkdir -p $roms_folder
mkdir -pv $roms_folder
# initializing ES-DE
# TODO: after the next update of ES-DE this will not be needed
zenity --icon-name=net.retrodeck.retrodeck --info --no-wrap --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --title "RetroDECK" --text="EmulationStation will now initialize the system.\nPlease DON'T EDIT THE ROMS LOCATION, just select:\n\nCREATE DIRECTORIES\nYES\nOK\nQUIT\n\nRetroDECK will manage the rest."
mkdir -p /var/config/retrodeck/tools
# Recreating the folder
/var/config/retrodeck/tools/
mkdir -pv /var/config/emulationstation/
# Initializing ES-DE
# TODO: after the next update of ES-DE this will not be needed
start_retrodeck
# Cleaning
rm -rf /var/config/emulationstation/
rm /var/config/retrodeck/tools/*
rm -f /var/config/yuzu/qt-config.ini
zenity --icon-name=net.retrodeck.retrodeck --info --no-wrap --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --title "RetroDECK" --text="RetroDECK will now install the needed files.\nPlease wait up to one minute,\nanother message will notify when the process will be finished.\n\nPress OK to continue."
kdialog --title "RetroDECK" --msgbox "EmulationStation will now initialize the system, please don't edit the roms location, just select:\n\nCREATE DIRECTORIES, YES, QUIT\n\nRetroDECK will manage the rest."
# Initializing ROMs folder - Original in retrodeck home (or SD Card)
dir_prep $roms_folder "/var/config/emulationstation/ROMs"
mkdir -p /var/config/emulationstation/
emulationstation --home /var/config/emulationstation
kdialog --title "RetroDECK" --msgbox "RetroDECK will now install the needed files, please wait one minute, another message will notify when the process will be finished.\n\nPress OK to continue."
mv -f /var/config/emulationstation/ROMs /var/config/emulationstation/ROMs.bak
ln -s $roms_folder /var/config/emulationstation/ROMs
mv -f /var/config/emulationstation/ROMs.bak/* $roms_folder/
mkdir -pv $rdhome/saves
mkdir -pv $rdhome/states
mkdir -pv $rdhome/screenshots
mkdir -pv $rdhome/bios/pico-8
mkdir -pv $rdhome/.logs
# XMLSTARLET HERE
cp /app/retrodeck/es_settings.xml /var/config/emulationstation/.emulationstation/es_settings.xml
cp -f /app/retrodeck/es_settings.xml /var/config/emulationstation/.emulationstation/es_settings.xml
mkdir -p ~/retrodeck/saves
mkdir -p ~/retrodeck/states
mkdir -p ~/retrodeck/screenshots
mkdir -p ~/retrodeck/bios
# ES-DE
cp -r /app/retrodeck/tools/* /var/config/retrodeck/tools/
mkdir -p /var/config/emulationstation/.emulationstation/custom_systems/tools/
cp /app/retrodeck/tools-gamelist.xml /var/config/retrodeck/tools/gamelist.xml
# ES-DE preparing themes and scraped folders
dir_prep "$rdhome/.downloaded_media" "/var/config/emulationstation/.emulationstation/downloaded_media"
dir_prep "$rdhome/.themes" "/var/config/emulationstation/.emulationstation/themes"
# Initializing emulators configs
emuconfigs=/app/retrodeck/emu-configs/
# PICO-8
dir_prep "$roms_folder/pico-8" "$rdhome/bios/pico-8/bbs/carts" #this is the folder where pico-8 is saving the carts
# RetroArch
mkdir -p /var/config/retroarch/cores/
rm -rf /var/config/retroarch/system
ln -s ~/retrodeck/bios /var/config/retroarch/system
cp /app/share/libretro/cores/* /var/config/retroarch/cores/
cp $emuconfigs/retroarch.cfg /var/config/retroarch/
ra_init
standalones_init
tools_init
create_lock
# Yuzu
# Original keys and registered folders will be in retrodeck bios folder, yuzu dirs are a symlink
rm -rf /var/data/yuzu/keys
ln -s ~/retrodeck/bios/switch/keys /var/data/yuzu/keys
zenity --icon-name=net.retrodeck.retrodeck --info --no-wrap --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --title "RetroDECK" --text="Initialization completed.\nplease put your roms in:\n\n$roms_folder\n\nand your bioses in\n\n$rdhome/bios\n\nThen start the program again.\nIf you wish to change the roms location, you may use the tool located the tools section of RetroDECK.\n\nIt's suggested to add RetroDECK to your Steam Library for a quick access."
# TODO: Replace the stuff above with BoilR code when ready
}
mv /var/data/yuzu/nand/system/Contents/registered /var/data/yuzu/nand/system/Contents/registered.old
mkdir ~/retrodeck/bios/switch/registered
ln -s ~/retrodeck/bios/switch/registered /var/data/yuzu/nand/system/Contents/
mv -f /var/data/yuzu/nand/system/Contents/registered.old/* /var/data/yuzu/nand/system/Contents/registered/
rm -rf /var/data/yuzu/nand/system/Contents/registered.old
# Arguments section
cp $emuconfigs/qt-config.ini /var/config/yuzu/
for i in "$@"; do
case $i in
-h*|--help*)
echo "RetroDECK v""$(cat /var/config/retrodeck/version)"
echo "
Usage:
flatpak run [FLATPAK-RUN-OPTION] net.retrodeck-retrodeck [ARGUMENTS]
# Dolphin
mkdir -p /var/config/dolphin-emu/
cp $emuconfigs/Dolphin.ini /var/config/dolphin-emu/
Arguments:
-h, --help Print this help
-v, --version Print RetroDECK version
--reset Starts the initial RetroDECK installer (backup your data first!)
--reset-ra Resets RetroArch's config to the default values
--reset-sa Reset standalone emulator configs to the default values
--reset-tools Recreate the tools section
# pcsx2
mkdir -p /var/config/PCSX2/inis/
cp $emuconfigs/PCSX2_ui.ini /var/config/PCSX2/inis/
For flatpak run specific options please run: flatpak run -h
https://retrodeck.net
"
exit
;;
--version*|-v*)
cat /var/config/retrodeck/version
exit
;;
--reset-ra*)
ra_init
shift # past argument with no value
;;
--reset-sa*)
standalones_init
shift # past argument with no value
;;
--reset-tools*)
tools_init
shift # past argument with no value
;;
--reset*)
rm -f "$lockfile"
shift # past argument with no value
;;
-*|--*)
echo "Unknown option $i"
exit 1
;;
*)
;;
esac
done
# Locking RetroDECK
touch ~/retrodeck/.lock
kdialog --title "RetroDECK" --msgbox "Initialization completed.\nplease put your roms in:\n\n$roms_folder\n\nand your bioses in\n\n~/retrodeck/bios\n\nThen start the program again.\nIf you wish to change the roms location, you may use the tool located the tools section of RetroDECK.\n\nIt's suggested to add RetroDECK to your Steam Library for a quick access."
else
emulationstation --home /var/config/emulationstation
# UPDATE TRIGGERED
# if lockfile exists but the version doesn't match
if [ -f "$lockfile" ] && [ "$(cat "$lockfile")" != "$version" ];
then
echo "Lockfile version is "$(cat "$lockfile")" but the actual version is $version"
post_update
start_retrodeck
exit 0
fi
# LOCKFILE REMOVED
# if the lock file doesn't exist at all means that it's a fresh install or a triggered reset
if [ ! -f "$lockfile" ];
then
echo "Lockfile not found"
finit
exit 0
fi
# Normal Startup
start_retrodeck

View file

@ -1,24 +0,0 @@
<?xml version="1.0"?>
<gameList>
<game>
<path>./start-retroarch.sh</path>
<name>Start RetroArch</name>
<desc>Start RetroArch to manually tweak your settings.</desc>
<nogamecount>true</nogamecount>
<nomultiscrape>true</nomultiscrape>
</game>
<game>
<path>./start-yuzu.sh</path>
<name>Start Yuzu</name>
<desc>Start Yuzu to manually tweak your settings.</desc>
<nogamecount>true</nogamecount>
<nomultiscrape>true</nomultiscrape>
</game>
<game>
<path>./move-roms.sh</path>
<name>Move roms folder</name>
<desc>Move roms folder from internal to external and vice versa.</desc>
<nogamecount>true</nogamecount>
<nomultiscrape>true</nomultiscrape>
</game>
</gameList>

View file

@ -2,7 +2,7 @@
if [ -d ~/retrodeck/roms ] && [ -d /run/media/mmcblk0p1/retrodeck/roms ]
then # found both internal and sd folders
kdialog --title "RetroDECK" --warning "I found a roms folder both in internal and SD Card, in order to make this tool useful you should remove one of the two or merge them."
zenity --title "RetroDECK" --warning --no-wrap --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --text="I found a roms folder both in internal and SD Card,\nin order to make this tool useful you should remove one of the two or merge them."
exit 0
fi
@ -18,7 +18,7 @@ then # found external folder and not the internal
new_roms_path=~/retrodeck
fi
kdialog --title "RetroDECK" --warningyesno "Should I move the roms from\n\n$roms_path/roms\n\nto\n\n$new_roms_path/roms?"
zenity --title "RetroDECK" --question --no-wrap --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --text="Should I move the roms from\n\n$roms_path/roms\n\nto\n\n$new_roms_path/roms?"
if [ $? == 0 ] #yes
then
mkdir -p $new_roms_path

7
tools/start-citra.sh Normal file
View file

@ -0,0 +1,7 @@
#!/bin/bash
zenity --title "RetroDECK" --question --no-wrap --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --text="Doing some changes in the emulator's configuration may create serious issues,\nplease continue only if you know what you're doing.\n\nDo you want to continue?"
if [ $? == 0 ]
then
citra-qt
fi

7
tools/start-dolphin.sh Normal file
View file

@ -0,0 +1,7 @@
#!/bin/bash
zenity --title "RetroDECK" --question --no-wrap --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --text="Doing some changes in the emulator's configuration may create serious issues,\nplease continue only if you know what you're doing.\n\nDo you want to continue?"
if [ $? == 0 ]
then
dolphin-emu
fi

7
tools/start-melonds.sh Normal file
View file

@ -0,0 +1,7 @@
#!/bin/bash
zenity --title "RetroDECK" --question --no-wrap --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --text="Doing some changes in the emulator's configuration may create serious issues,\nplease continue only if you know what you're doing.\n\nDo you want to continue?"
if [ $? == 0 ]
then
melonDS
fi

7
tools/start-pcsx2.sh Normal file
View file

@ -0,0 +1,7 @@
#!/bin/bash
zenity --title "RetroDECK" --question --no-wrap --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --text="Doing some changes in the emulator's configuration may create serious issues,\nplease continue only if you know what you're doing.\n\nDo you want to continue?"
if [ $? == 0 ]
then
pcsx2
fi

7
tools/start-ppsspp.sh Normal file
View file

@ -0,0 +1,7 @@
#!/bin/bash
zenity --title "RetroDECK" --question --no-wrap --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --text="Doing some changes in the emulator's configuration may create serious issues,\nplease continue only if you know what you're doing.\n\nDo you want to continue?"
if [ $? == 0 ]
then
PPSSPPSDL
fi

View file

@ -1,6 +1,6 @@
#!/bin/bash
kdialog --title "RetroDECK" --warningyesno "Doing some changes in the RetroArch configuration may create serious issues, please continue only if you know what you're doing.\n\nDo you want to continue?"
zenity --title "RetroDECK" --question --no-wrap --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --text="Doing some changes in the RetroArch configuration may create serious issues,\nplease continue only if you know what you're doing.\n\nDo you want to continue?"
if [ $? == 0 ]
then
retroarch

7
tools/start-rpcs3.sh Normal file
View file

@ -0,0 +1,7 @@
#!/bin/bash
zenity --title "RetroDECK" --question --no-wrap --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --text="Doing some changes in the emulator's configuration may create serious issues,\nplease continue only if you know what you're doing.\n\nDo you want to continue?"
if [ $? == 0 ]
then
rpcs3
fi

10
tools/start-splore.sh Normal file
View file

@ -0,0 +1,10 @@
#!/bin/bash
if [ -d ~/retrodeck/roms/pico-8 ]; then
pico_folder=~/retrodeck/roms/pico-8
elif [ -d /run/media/mmcblk0p1/retrodeck/roms/pico-8 ]; then
pico_folder=/run/media/mmcblk0p1/retrodeck/roms/pico-8
fi
echo $pico_folder > ~/retrodeck/.logs/retrodeck.log
~/retrodeck/bios/pico-8/pico8 -desktop ~/retrodeck/screenshots -windowed 0 -home ~/retrodeck/bios/pico-8 -root_path $pico_folder -splore >> ~/retrodeck/.logs/retrodeck.log

View file

@ -1,6 +1,6 @@
#!/bin/bash
kdialog --title "RetroDECK" --warningyesno "Doing some changes in the Yuzu configuration may create serious issues, please continue only if you know what you're doing.\n\nDo you want to continue?"
zenity --title "RetroDECK" --question --no-wrap --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --text="Doing some changes in the emulator's configuration may create serious issues,\nplease continue only if you know what you're doing.\n\nDo you want to continue?"
if [ $? == 0 ]
then
yuzu