Merge 5bcc51ceae
into d980c9858f
102
.github/workflows/build-godot.yml
vendored
|
@ -1,102 +0,0 @@
|
||||||
name: GoDot Configurator Build Debug
|
|
||||||
run-name: Build Godot Configurator(DEBUG) for RetroDECK
|
|
||||||
on:
|
|
||||||
workflow_dispatch:
|
|
||||||
inputs:
|
|
||||||
job_target:
|
|
||||||
description: 'Select the platform'
|
|
||||||
required: true
|
|
||||||
default: 'linux'
|
|
||||||
type: choice
|
|
||||||
options:
|
|
||||||
- linux
|
|
||||||
- windows
|
|
||||||
- mac
|
|
||||||
- all
|
|
||||||
|
|
||||||
env:
|
|
||||||
GODOT_VERSION: 4.3
|
|
||||||
GODOT_PROJECT_LOCATION: tools/configurator/project.godot
|
|
||||||
EXPORT_FOLDER_LINUX: bin/Linux
|
|
||||||
EXPORT_FOLDER_WINDOWS: bin/Windows
|
|
||||||
EXPORT_FOLDER_MAC: bin/macOS
|
|
||||||
APPLICATION_NAME: godot_configurator
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
linux-build:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
container:
|
|
||||||
image: archlinux:latest
|
|
||||||
steps:
|
|
||||||
- name: Set up variable
|
|
||||||
run: |
|
|
||||||
echo "DATE=$(date +'%Y-%m-%d')" >> $GITHUB_ENV
|
|
||||||
echo "MAIN_FOLDER=$(pwd)" >> $GITHUB_ENV
|
|
||||||
|
|
||||||
- name: Installing dependencies
|
|
||||||
run: pacman -Syu --noconfirm git bash yasm python python-pip scons gcc diffutils make wget unzip tar mingw-w64
|
|
||||||
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
with:
|
|
||||||
submodules: recursive
|
|
||||||
|
|
||||||
- name: Prepare Godot
|
|
||||||
run: |
|
|
||||||
wget -q -O godot_linux.zip https://github.com/godotengine/godot-builds/releases/download/${GODOT_VERSION}-stable/Godot_v${GODOT_VERSION}-stable_linux.x86_64.zip
|
|
||||||
unzip godot_linux.zip
|
|
||||||
wget -q -O godot_export_templates.tpz https://github.com/godotengine/godot-builds/releases/download/${GODOT_VERSION}-stable/Godot_v${GODOT_VERSION}-stable_export_templates.tpz
|
|
||||||
mkdir -p ~/.local/share/godot/export_templates/${GODOT_VERSION}.stable
|
|
||||||
unzip godot_export_templates.tpz -d ~/.local/share/godot/export_templates/${GODOT_VERSION}.stable
|
|
||||||
mv ~/.local/share/godot/export_templates/${GODOT_VERSION}.stable/templates/* ~/.local/share/godot/export_templates/${GODOT_VERSION}.stable/
|
|
||||||
sed -i 's/config\/version=\"[^"]\*"/config\/version=\"${{ env.DATE }}-debug\"/' ${{ env.GODOT_PROJECT_LOCATION }}
|
|
||||||
|
|
||||||
# DEBUG BUILDS
|
|
||||||
# LINUX
|
|
||||||
- name: Building debug Linux
|
|
||||||
if: ${{ github.event.inputs.job_target == 'linux' || github.event.inputs.job_target == 'all' }}
|
|
||||||
run: |
|
|
||||||
mkdir -p ${{ env.EXPORT_FOLDER_LINUX }}
|
|
||||||
./Godot_v${GODOT_VERSION}-stable_linux.x86_64 --import ${{ env.GODOT_PROJECT_LOCATION }} --quiet --headless --export-debug "Linux/X11 64-bit" ${{ env.MAIN_FOLDER }}/${{ env.EXPORT_FOLDER_LINUX }}/${{ env.APPLICATION_NAME}}.x86_64
|
|
||||||
chmod +x ${{ env.EXPORT_FOLDER_LINUX }}/${{ env.APPLICATION_NAME }}.sh
|
|
||||||
chmod +x ${{ env.EXPORT_FOLDER_LINUX }}/${{ env.APPLICATION_NAME }}.x86_64
|
|
||||||
|
|
||||||
# TAR to keep permissions set above
|
|
||||||
- name: Tar File
|
|
||||||
if: ${{ github.event.inputs.job_target == 'linux' || github.event.inputs.job_target == 'all' }}
|
|
||||||
run: tar cvf ${{ env.APPLICATION_NAME}}_linux_debug_${{ env.DATE}}.tar ${{ env.EXPORT_FOLDER_LINUX}}
|
|
||||||
|
|
||||||
- name: Uploading GDExtension artifact debug
|
|
||||||
if: ${{ github.event.inputs.job_target == 'linux' || github.event.inputs.job_target == 'all' }}
|
|
||||||
uses: actions/upload-artifact@v4
|
|
||||||
with:
|
|
||||||
name: ${{ env.APPLICATION_NAME }}_linux_debug_${{ env.DATE }}.tar
|
|
||||||
path: ${{ env.APPLICATION_NAME }}_linux_debug_${{ env.DATE }}.tar
|
|
||||||
|
|
||||||
# WINDOWS
|
|
||||||
- name: Building debug Windows
|
|
||||||
if: ${{ github.event.inputs.job_target == 'windows' || github.event.inputs.job_target == 'all' }}
|
|
||||||
run: |
|
|
||||||
mkdir -p ${{ env.EXPORT_FOLDER_WINDOWS }}
|
|
||||||
./Godot_v${GODOT_VERSION}-stable_linux.x86_64 --import ${{ env.GODOT_PROJECT_LOCATION }} --quiet --headless --export-debug "windows" ${{ env.MAIN_FOLDER }}/${{ env.EXPORT_FOLDER_WINDOWS }}/${{ env.APPLICATION_NAME}}.exe
|
|
||||||
|
|
||||||
- name: Uploading GDExtension artifact debug
|
|
||||||
if: ${{ github.event.inputs.job_target == 'windows' || github.event.inputs.job_target == 'all' }}
|
|
||||||
uses: actions/upload-artifact@v4
|
|
||||||
with:
|
|
||||||
name: ${{ env.APPLICATION_NAME }}_windows_debug_${{ env.DATE }}
|
|
||||||
path: ${{ env.EXPORT_FOLDER_WINDOWS }}/
|
|
||||||
|
|
||||||
#MAC
|
|
||||||
- name: Building debug macOS
|
|
||||||
if: ${{ github.event.inputs.job_target == 'mac' || github.event.inputs.job_target == 'all' }}
|
|
||||||
run: |
|
|
||||||
mkdir -p ${{ env.EXPORT_FOLDER_MAC }}
|
|
||||||
./Godot_v${GODOT_VERSION}-stable_linux.x86_64 --import ${{ env.GODOT_PROJECT_LOCATION }} --quiet --headless --export-debug "macOS" ${{ env.MAIN_FOLDER }}/${{ env.EXPORT_FOLDER_MAC}}/${{ env.APPLICATION_NAME}}.app
|
|
||||||
|
|
||||||
- name: Uploading GDExtension artifact debug
|
|
||||||
if: ${{ github.event.inputs.job_target == 'mac' || github.event.inputs.job_target == 'all' }}
|
|
||||||
uses: actions/upload-artifact@v4
|
|
||||||
with:
|
|
||||||
name: ${{ env.APPLICATION_NAME }}_mac_debug_${{ env.DATE }}
|
|
||||||
path: ${{ env.EXPORT_FOLDER_MAC }}/
|
|
6
.github/workflows/cooker-selfhosted.yml
vendored
|
@ -85,11 +85,6 @@ jobs:
|
||||||
# Use GITHUB_HEAD_REF to get the source branch
|
# Use GITHUB_HEAD_REF to get the source branch
|
||||||
source_branch="${GITHUB_HEAD_REF}"
|
source_branch="${GITHUB_HEAD_REF}"
|
||||||
|
|
||||||
# Replace '/' with '-' in the branch name
|
|
||||||
source_branch=${source_branch//\//-}
|
|
||||||
# Use GITHUB_HEAD_REF to get the source branch
|
|
||||||
source_branch="${GITHUB_HEAD_REF}"
|
|
||||||
|
|
||||||
# Replace '/' with '-' in the branch name
|
# Replace '/' with '-' in the branch name
|
||||||
source_branch=${source_branch//\//-}
|
source_branch=${source_branch//\//-}
|
||||||
echo "[DEBUG] source branch is: $source_branch"
|
echo "[DEBUG] source branch is: $source_branch"
|
||||||
|
@ -98,7 +93,6 @@ jobs:
|
||||||
echo "TAG=PR-$source_branch-${{ env.buildid }}" >> $GITHUB_ENV
|
echo "TAG=PR-$source_branch-${{ env.buildid }}" >> $GITHUB_ENV
|
||||||
echo "MAKE_LATEST=false" >> $GITHUB_ENV # Not marked as the latest cooker version if it's a feature branch
|
echo "MAKE_LATEST=false" >> $GITHUB_ENV # Not marked as the latest cooker version if it's a feature branch
|
||||||
else
|
else
|
||||||
# Generate the tag for non-pull request branches
|
|
||||||
# Generate the tag for non-pull request branches
|
# Generate the tag for non-pull request branches
|
||||||
TAG="$MANIFEST_VERSION-${{ env.buildid }}"
|
TAG="$MANIFEST_VERSION-${{ env.buildid }}"
|
||||||
echo "TAG=$TAG" >> $GITHUB_ENV
|
echo "TAG=$TAG" >> $GITHUB_ENV
|
||||||
|
|
|
@ -24,3 +24,7 @@ hash^RETRODECKMELONDSLATEST^https://github.com/RetroDECK/net.kuribo64.melonDS/re
|
||||||
hash^RETRODECKSOLARUSLATEST^https://github.com/RetroDECK/org.solarus_games.solarus.Launcher/releases/latest/download/RetroDECK-solarus-Artifact.tar.gz
|
hash^RETRODECKSOLARUSLATEST^https://github.com/RetroDECK/org.solarus_games.solarus.Launcher/releases/latest/download/RetroDECK-solarus-Artifact.tar.gz
|
||||||
hash^RETRODECKGZDOOMLATEST^https://github.com/RetroDECK/org.zdoom.GZDoom/releases/latest/download/RetroDECK-gzdoom-Artifact.tar.gz
|
hash^RETRODECKGZDOOMLATEST^https://github.com/RetroDECK/org.zdoom.GZDoom/releases/latest/download/RetroDECK-gzdoom-Artifact.tar.gz
|
||||||
hash^RETRODECKMAMELATEST^https://github.com/RetroDECK/MAME/releases/latest/download/RetroDECK-MAME-Artifact.tar.gz
|
hash^RETRODECKMAMELATEST^https://github.com/RetroDECK/MAME/releases/latest/download/RetroDECK-MAME-Artifact.tar.gz
|
||||||
|
hash^RETRODECKSHADPS4LATESTSTABLE^https://github.com/shadps4-emu/shadPS4/releases/latest/download/shadps4-linux-qt.zip
|
||||||
|
|
||||||
|
#This will replace RETRODECKSHADPS4LATESTURL with the URL of the latest artifact and RETRODECKSHADPS4LATESTSHA with its SHA256 hash.
|
||||||
|
#latestghaartifact^RETRODECKSHADPS4LATESTURL^RETRODECKSHADPS4LATESTSHA^https://github.com/shadps4-emu/shadPS4/actions/workflows/linux-qt.yml^shadps4-linux-qt
|
||||||
|
|
|
@ -188,8 +188,44 @@ handle_thisrepo() {
|
||||||
/bin/sed -i 's^'"$placeholder"'^'"$current_repo_url"'^g' "$rd_manifest"
|
/bin/sed -i 's^'"$placeholder"'^'"$current_repo_url"'^g' "$rd_manifest"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# New function to handle the latest artifact from GitHub Actions
|
||||||
|
handle_latestghaartifact() {
|
||||||
|
local placeholder_url="$1"
|
||||||
|
local placeholder_hash="$2"
|
||||||
|
local workflow_url="$3"
|
||||||
|
local artifact_name="$4"
|
||||||
|
|
||||||
|
echo "Fetching workflow runs from: $workflow_url"
|
||||||
|
workflow_runs_url=$(echo "$workflow_url" | sed 's/github.com/api.github.com\/repos/' | sed 's/actions\/workflows\/[^\/]*$/actions\/runs/')
|
||||||
|
|
||||||
|
local runs_data=$(curl -s "$workflow_runs_url")
|
||||||
|
local latest_run_url=$(echo "$runs_data" | jq -r ".workflow_runs[0].artifacts_url")
|
||||||
|
|
||||||
|
if [[ -z "$latest_run_url" ]]; then
|
||||||
|
echo "Error: No workflow runs found"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Fetching artifacts from the latest run: $latest_run_url"
|
||||||
|
local artifacts_data=$(curl -s "$latest_run_url")
|
||||||
|
local artifact_url=$(echo "$artifacts_data" | jq -r ".artifacts[] | select(.name == \"$artifact_name\").archive_download_url")
|
||||||
|
|
||||||
|
if [[ -z "$artifact_url" ]]; then
|
||||||
|
echo "Error: No artifact found with name $artifact_name"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Downloading the artifact to calculate the hash..."
|
||||||
|
local artifact_hash=$(curl -sL "$artifact_url" | sha256sum | cut -d ' ' -f1)
|
||||||
|
|
||||||
|
echo "Replacing placeholder $placeholder_url with artifact URL $artifact_url"
|
||||||
|
echo "Replacing placeholder $placeholder_hash with artifact hash $artifact_hash"
|
||||||
|
/bin/sed -i 's^'"$placeholder_url"'^'"$artifact_url"'^g' "$rd_manifest"
|
||||||
|
/bin/sed -i 's^'"$placeholder_hash"'^'"$artifact_hash"'^g' "$rd_manifest"
|
||||||
|
}
|
||||||
|
|
||||||
# Process the task list
|
# Process the task list
|
||||||
while IFS="^" read -r action placeholder url branch || [[ -n "$action" ]]; do
|
while IFS="^" read -r action placeholder url branch artifact_name || [[ -n "$action" ]]; do
|
||||||
if [[ ! "$action" == "#"* ]] && [[ -n "$action" ]]; then
|
if [[ ! "$action" == "#"* ]] && [[ -n "$action" ]]; then
|
||||||
case "$action" in
|
case "$action" in
|
||||||
"branch" ) handle_branch "$placeholder" ;;
|
"branch" ) handle_branch "$placeholder" ;;
|
||||||
|
@ -203,6 +239,7 @@ while IFS="^" read -r action placeholder url branch || [[ -n "$action" ]]; do
|
||||||
"custom_command" ) handle_custom_command "$url" ;;
|
"custom_command" ) handle_custom_command "$url" ;;
|
||||||
"url" ) handle_url "$placeholder" "$url" ;;
|
"url" ) handle_url "$placeholder" "$url" ;;
|
||||||
"THISREPO" ) handle_thisrepo "$placeholder" ;;
|
"THISREPO" ) handle_thisrepo "$placeholder" ;;
|
||||||
|
"latestghaartifact" ) handle_latestghaartifact "$placeholder" "$branch" "$url" "$artifact_name" ;;
|
||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
done < "$automation_task_list"
|
done < "$automation_task_list"
|
||||||
|
|
|
@ -629,6 +629,9 @@
|
||||||
"ps3": {
|
"ps3": {
|
||||||
"name": "Sony PlayStation 3"
|
"name": "Sony PlayStation 3"
|
||||||
},
|
},
|
||||||
|
"ps4": {
|
||||||
|
"name": "Sony PlayStation 4"
|
||||||
|
},
|
||||||
"psp": {
|
"psp": {
|
||||||
"name": "Sony PlayStation Portable"
|
"name": "Sony PlayStation Portable"
|
||||||
},
|
},
|
||||||
|
@ -960,8 +963,7 @@
|
||||||
"system": [
|
"system": [
|
||||||
"arcade"
|
"arcade"
|
||||||
],
|
],
|
||||||
"launch": "mame",
|
"launch": "mame"
|
||||||
"launch-args": "-inipath /var/config/mame/ini -rompath $(dirname \"$game\") $game"
|
|
||||||
},
|
},
|
||||||
"citra": {
|
"citra": {
|
||||||
"description": "Citra Nintendo 3DS Emulator (via Ponzu)",
|
"description": "Citra Nintendo 3DS Emulator (via Ponzu)",
|
||||||
|
@ -997,7 +999,6 @@
|
||||||
"url": "https://retrodeck.readthedocs.io/en/latest/wiki_emulator_guides/pcsx2/pcsx2-guide/",
|
"url": "https://retrodeck.readthedocs.io/en/latest/wiki_emulator_guides/pcsx2/pcsx2-guide/",
|
||||||
"system": "ps2",
|
"system": "ps2",
|
||||||
"launch": "pcsx2-qt",
|
"launch": "pcsx2-qt",
|
||||||
"launch-args": "-batch $game",
|
|
||||||
"properties": [
|
"properties": [
|
||||||
{
|
{
|
||||||
"ask_to_exit": true,
|
"ask_to_exit": true,
|
||||||
|
@ -1010,7 +1011,6 @@
|
||||||
"description": "PlayStation Emulator",
|
"description": "PlayStation Emulator",
|
||||||
"url": "https://retrodeck.readthedocs.io/en/latest/wiki_emulator_guides/duckstation/duckstation-guide/",
|
"url": "https://retrodeck.readthedocs.io/en/latest/wiki_emulator_guides/duckstation/duckstation-guide/",
|
||||||
"launch": "duckstation-qt",
|
"launch": "duckstation-qt",
|
||||||
"launch-args": "-batch $game",
|
|
||||||
"system": "psx",
|
"system": "psx",
|
||||||
"properties": [
|
"properties": [
|
||||||
{
|
{
|
||||||
|
@ -1037,8 +1037,7 @@
|
||||||
"description": "Vita3K PSVita Emulator",
|
"description": "Vita3K PSVita Emulator",
|
||||||
"url": "https://retrodeck.readthedocs.io/en/latest/wiki_emulator_guides/vita3k/vita3k-guide/",
|
"url": "https://retrodeck.readthedocs.io/en/latest/wiki_emulator_guides/vita3k/vita3k-guide/",
|
||||||
"system": "psvita",
|
"system": "psvita",
|
||||||
"launch": "Vita3K",
|
"launch": "Vita3K"
|
||||||
"launch-args": "-r $game.psvita"
|
|
||||||
},
|
},
|
||||||
"rpcs3": {
|
"rpcs3": {
|
||||||
"name": "RPCS3",
|
"name": "RPCS3",
|
||||||
|
@ -1066,16 +1065,20 @@
|
||||||
"url": "https://retrodeck.readthedocs.io/en/latest/wiki_about/what-is-retrodeck/",
|
"url": "https://retrodeck.readthedocs.io/en/latest/wiki_about/what-is-retrodeck/",
|
||||||
"launch": "Yuzu",
|
"launch": "Yuzu",
|
||||||
"system": "switch",
|
"system": "switch",
|
||||||
"launch-args": "-f -g $game",
|
|
||||||
"ponzu": true,
|
"ponzu": true,
|
||||||
"abxy_button": true
|
"abxy_button": true
|
||||||
},
|
},
|
||||||
|
"shadps4": {
|
||||||
|
"description": "PS4 Emulator for Linux",
|
||||||
|
"name": "shadps4",
|
||||||
|
"system": "ps4",
|
||||||
|
"launch": "shadps4-qt"
|
||||||
|
},
|
||||||
"dolphin": {
|
"dolphin": {
|
||||||
"name": "Dolphin",
|
"name": "Dolphin",
|
||||||
"description": "Dolphin Wii and GameCube Emulator",
|
"description": "Dolphin Wii and GameCube Emulator",
|
||||||
"url": "https://retrodeck.readthedocs.io/en/latest/wiki_emulator_guides/dolphin-primehack/dolphin-primehack-guide/",
|
"url": "https://retrodeck.readthedocs.io/en/latest/wiki_emulator_guides/dolphin-primehack/dolphin-primehack-guide/",
|
||||||
"launch": "dolphin-emu-wrapper",
|
"launch": "dolphin-emu-wrapper",
|
||||||
"launch-args": "-e $game",
|
|
||||||
"system": [
|
"system": [
|
||||||
"gc",
|
"gc",
|
||||||
"wii"
|
"wii"
|
||||||
|
@ -1095,7 +1098,6 @@
|
||||||
"description": "A fork of Dolphiin to enhance Metroid Prime experience",
|
"description": "A fork of Dolphiin to enhance Metroid Prime experience",
|
||||||
"url": "https://retrodeck.readthedocs.io/en/latest/wiki_emulator_guides/dolphin-primehack/dolphin-primehack-guide/",
|
"url": "https://retrodeck.readthedocs.io/en/latest/wiki_emulator_guides/dolphin-primehack/dolphin-primehack-guide/",
|
||||||
"launch": "primehack-wrapper",
|
"launch": "primehack-wrapper",
|
||||||
"launch-args": "-e $game",
|
|
||||||
"system": [
|
"system": [
|
||||||
"wii"
|
"wii"
|
||||||
],
|
],
|
||||||
|
@ -1112,7 +1114,6 @@
|
||||||
"url": "https://retrodeck.readthedocs.io/en/latest/wiki_emulator_guides/cemu/cemu-guide/",
|
"url": "https://retrodeck.readthedocs.io/en/latest/wiki_emulator_guides/cemu/cemu-guide/",
|
||||||
"system": "wiiu",
|
"system": "wiiu",
|
||||||
"launch": "Cemu-wrapper",
|
"launch": "Cemu-wrapper",
|
||||||
"launch-args": "-g $game",
|
|
||||||
"properties": [
|
"properties": [
|
||||||
{
|
{
|
||||||
"abxy_button": true,
|
"abxy_button": true,
|
||||||
|
@ -1125,14 +1126,18 @@
|
||||||
"name": "xemu",
|
"name": "xemu",
|
||||||
"url": "https://retrodeck.readthedocs.io/en/latest/wiki_emulator_guides/xemu/xemu-guide/",
|
"url": "https://retrodeck.readthedocs.io/en/latest/wiki_emulator_guides/xemu/xemu-guide/",
|
||||||
"system": "xbox",
|
"system": "xbox",
|
||||||
"launch": "xemu",
|
"launch": "xemu"
|
||||||
"launch-args": "-dvd_path $game"
|
|
||||||
},
|
},
|
||||||
"es-de": {
|
"es-de": {
|
||||||
"description": "ES-DE Emulation Frontend",
|
"description": "ES-DE Emulation Frontend",
|
||||||
"name": "ES-DE",
|
"name": "ES-DE",
|
||||||
"url": "https://retrodeck.readthedocs.io/en/latest/wiki_es_de/esde-guide/.",
|
"url": "https://retrodeck.readthedocs.io/en/latest/wiki_es_de/esde-guide/.",
|
||||||
"launch": "es-de"
|
"launch": "es-de"
|
||||||
|
},
|
||||||
|
"steam-rom-manager": {
|
||||||
|
"description": "Steam ROM Manager (used to sync RetroDECK favorites with Steam)",
|
||||||
|
"name": "Steam ROM Manager",
|
||||||
|
"launch": "steam-rom-manager"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -30,6 +30,7 @@ default_user=
|
||||||
developer_options=false
|
developer_options=false
|
||||||
kiroi_ponzu=false
|
kiroi_ponzu=false
|
||||||
akai_ponzu=false
|
akai_ponzu=false
|
||||||
|
steam_sync=false
|
||||||
|
|
||||||
[cheevos]
|
[cheevos]
|
||||||
duckstation=false
|
duckstation=false
|
||||||
|
|
111
config/steam-rom-manager/userConfigurations.json
Normal file
|
@ -0,0 +1,111 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"parserType": "Glob",
|
||||||
|
"configTitle": "RetroDECK",
|
||||||
|
"steamDirectory": "${steamdirglobal}",
|
||||||
|
"steamCategory": "RetroDECK",
|
||||||
|
"romDirectory": "${romsdirglobal}",
|
||||||
|
"executableArgs": "",
|
||||||
|
"executableModifier": "\"${exePath}\"",
|
||||||
|
"startInDirectory": "",
|
||||||
|
"titleModifier": "${fuzzyTitle}",
|
||||||
|
"imageProviders": [
|
||||||
|
"SteamGridDB"
|
||||||
|
],
|
||||||
|
"onlineImageQueries": "${${fuzzyTitle}}",
|
||||||
|
"imagePool": "${fuzzyTitle}",
|
||||||
|
"userAccounts": {
|
||||||
|
"specifiedAccounts": ""
|
||||||
|
},
|
||||||
|
"executable": {
|
||||||
|
"path": "",
|
||||||
|
"shortcutPassthrough": false,
|
||||||
|
"appendArgsToExecutable": true
|
||||||
|
},
|
||||||
|
"parserInputs": {
|
||||||
|
"glob": "${title}.sh"
|
||||||
|
},
|
||||||
|
"titleFromVariable": {
|
||||||
|
"limitToGroups": "",
|
||||||
|
"caseInsensitiveVariables": false,
|
||||||
|
"skipFileIfVariableWasNotFound": false,
|
||||||
|
"tryToMatchTitle": false
|
||||||
|
},
|
||||||
|
"fuzzyMatch": {
|
||||||
|
"replaceDiacritics": true,
|
||||||
|
"removeCharacters": true,
|
||||||
|
"removeBrackets": true
|
||||||
|
},
|
||||||
|
"controllers": {
|
||||||
|
"ps4": {
|
||||||
|
"title": "RetroDECK Controller",
|
||||||
|
"mappingId": "RetroDECK_controller_ps4.vdf",
|
||||||
|
"profileType": "template"
|
||||||
|
},
|
||||||
|
"ps5": {
|
||||||
|
"title": "RetroDECK Controller",
|
||||||
|
"mappingId": "RetroDECK_controller_ps5.vdf",
|
||||||
|
"profileType": "template"
|
||||||
|
},
|
||||||
|
"xbox360": {
|
||||||
|
"title": "RetroDECK Controller",
|
||||||
|
"mappingId": "RetroDECK_controller_xbox360_simple.vdf",
|
||||||
|
"profileType": "template"
|
||||||
|
},
|
||||||
|
"xboxone": {
|
||||||
|
"title": "RetroDECK Controller",
|
||||||
|
"mappingId": "RetroDECK_controller_xboxone_simple.vdf",
|
||||||
|
"profileType": "template"
|
||||||
|
},
|
||||||
|
"switch_joycon_left": {
|
||||||
|
"title": "Controller",
|
||||||
|
"mappingId": "controller_switch_joycon_left_gamepad_joystick.vdf",
|
||||||
|
"profileType": "template"
|
||||||
|
},
|
||||||
|
"switch_joycon_right": {
|
||||||
|
"title": "Controller",
|
||||||
|
"mappingId": "controller_switch_joycon_right_gamepad_joystick.vdf",
|
||||||
|
"profileType": "template"
|
||||||
|
},
|
||||||
|
"switch_pro": {
|
||||||
|
"title": "RetroDECK Controller",
|
||||||
|
"mappingId": "RetroDECK_controller_switchpro.vdf",
|
||||||
|
"profileType": "template"
|
||||||
|
},
|
||||||
|
"neptune": {
|
||||||
|
"title": "RetroDECK Controller",
|
||||||
|
"mappingId": "RetroDECK_controller_steamdeck_neptune_full.vdf",
|
||||||
|
"profileType": "template"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"imageProviderAPIs": {
|
||||||
|
"SteamGridDB": {
|
||||||
|
"nsfw": false,
|
||||||
|
"humor": false,
|
||||||
|
"styles": [],
|
||||||
|
"stylesHero": [],
|
||||||
|
"stylesLogo": [],
|
||||||
|
"stylesIcon": [],
|
||||||
|
"imageMotionTypes": [
|
||||||
|
"static"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"defaultImage": {
|
||||||
|
"tall": null,
|
||||||
|
"long": null,
|
||||||
|
"hero": null,
|
||||||
|
"logo": null,
|
||||||
|
"icon": null
|
||||||
|
},
|
||||||
|
"localImages": {
|
||||||
|
"tall": null,
|
||||||
|
"long": null,
|
||||||
|
"hero": null,
|
||||||
|
"logo": null,
|
||||||
|
"icon": null
|
||||||
|
},
|
||||||
|
"parserId": "1725539138664815",
|
||||||
|
"version": 15
|
||||||
|
}
|
||||||
|
]
|
30
config/steam-rom-manager/userSettings.json
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
{
|
||||||
|
"fuzzyMatcher": {
|
||||||
|
"verbose": false,
|
||||||
|
"filterProviders": true
|
||||||
|
},
|
||||||
|
"environmentVariables": {
|
||||||
|
"steamDirectory": "",
|
||||||
|
"userAccounts": "${steamlogin}",
|
||||||
|
"romsDirectory": "",
|
||||||
|
"retroarchPath": "",
|
||||||
|
"raCoresDirectory": "",
|
||||||
|
"localImagesDirectory": ""
|
||||||
|
},
|
||||||
|
"previewSettings": {
|
||||||
|
"retrieveCurrentSteamImages": true,
|
||||||
|
"deleteDisabledShortcuts": false,
|
||||||
|
"imageZoomPercentage": 30,
|
||||||
|
"preload": false
|
||||||
|
},
|
||||||
|
"enabledProviders": [
|
||||||
|
"SteamGridDB"
|
||||||
|
],
|
||||||
|
"batchDownloadSize": 50,
|
||||||
|
"language": "en-US",
|
||||||
|
"theme": "Deck",
|
||||||
|
"offlineMode": false,
|
||||||
|
"navigationWidth": 0,
|
||||||
|
"clearLogOnTest": false,
|
||||||
|
"version": 6
|
||||||
|
}
|
|
@ -5,31 +5,12 @@
|
||||||
# This script is used to inject framework and config files inside a RetroDECK cooker installation
|
# This script is used to inject framework and config files inside a RetroDECK cooker installation
|
||||||
# To apply the injected config you have to reset the targeted component from the Configurator
|
# To apply the injected config you have to reset the targeted component from the Configurator
|
||||||
# Please know what you're doing, if you need to undo this you need to completely uninstall and reinstall RetroDECK flatpak
|
# Please know what you're doing, if you need to undo this you need to completely uninstall and reinstall RetroDECK flatpak
|
||||||
# Please note that this may create a dirty situation where older files are still in place as the action is add and overwrite
|
# Please not that this may create a dirty situation where older files are still in place as the action is add and overwrite
|
||||||
|
|
||||||
flatpak_user_installation="$HOME/.local/share/flatpak/app/net.retrodeck.retrodeck/current/active/files"
|
flatpak_user_installation="$HOME/.local/share/flatpak/app/net.retrodeck.retrodeck/current/active/files"
|
||||||
flatpak_system_installation="/var/lib/flatpak/app/net.retrodeck.retrodeck/current/active/files"
|
flatpak_system_installation="/var/lib/flatpak/app/net.retrodeck.retrodeck/current/active/files"
|
||||||
force_user=false
|
|
||||||
force_system=false
|
|
||||||
|
|
||||||
# Parse arguments
|
if [ -d "$flatpak_user_installation" ]; then
|
||||||
while [[ "$#" -gt 0 ]]; do
|
|
||||||
case $1 in
|
|
||||||
--force-user) force_user=true ;;
|
|
||||||
--force-system) force_system=true ;;
|
|
||||||
*) echo "Unknown parameter: $1"; exit 1 ;;
|
|
||||||
esac
|
|
||||||
shift
|
|
||||||
done
|
|
||||||
|
|
||||||
# Determine installation path
|
|
||||||
if [ "$force_user" = true ]; then
|
|
||||||
echo "Forcing user mode installation."
|
|
||||||
app="$flatpak_user_installation"
|
|
||||||
elif [ "$force_system" = true ]; then
|
|
||||||
echo "Forcing system mode installation."
|
|
||||||
app="$flatpak_system_installation"
|
|
||||||
elif [ -d "$flatpak_user_installation" ]; then
|
|
||||||
echo "RetroDECK is installed in user mode, proceeding."
|
echo "RetroDECK is installed in user mode, proceeding."
|
||||||
app="$flatpak_user_installation"
|
app="$flatpak_user_installation"
|
||||||
elif [ -d "$flatpak_system_installation" ]; then
|
elif [ -d "$flatpak_system_installation" ]; then
|
||||||
|
@ -40,7 +21,6 @@ else
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Copying files to the installation
|
|
||||||
sudo cp -vfr "res/binding_icons" "$app/retrodeck/binding_icons"
|
sudo cp -vfr "res/binding_icons" "$app/retrodeck/binding_icons"
|
||||||
sudo cp -vfr "config/"** "$app/retrodeck/config/"
|
sudo cp -vfr "config/"** "$app/retrodeck/config/"
|
||||||
sudo cp -vfr "tools" "$app"
|
sudo cp -vfr "tools" "$app"
|
||||||
|
|
|
@ -132,9 +132,8 @@ elif [[ "$new_version_major_rev" -eq "$current_version_major_rev" ]]; then
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Perform post_update commands for current version if it is a cooker or PR
|
# Perform post_update commands for current version if it is a cooker
|
||||||
if grep -qF "cooker" <<< "$hard_version" || grep -qF "PR" <<< "$hard_version"; then
|
if grep -qF "cooker" <<< $hard_version; then # If newly-installed version is a "cooker" build, always perform post_update commands for current version
|
||||||
# If newly-installed version is a "cooker" or "PR" build, always perform post_update commands for current version
|
|
||||||
if [[ "$(echo $hard_version | cut -d'-' -f2)" == "$new_version" ]]; then
|
if [[ "$(echo $hard_version | cut -d'-' -f2)" == "$new_version" ]]; then
|
||||||
is_newer_version="true"
|
is_newer_version="true"
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -18,40 +18,43 @@ source /app/libexec/post_update.sh
|
||||||
source /app/libexec/prepare_component.sh
|
source /app/libexec/prepare_component.sh
|
||||||
source /app/libexec/presets.sh
|
source /app/libexec/presets.sh
|
||||||
source /app/libexec/configurator_functions.sh
|
source /app/libexec/configurator_functions.sh
|
||||||
|
source /app/libexec/run_game.sh
|
||||||
|
|
||||||
# Static variables
|
# Static variables
|
||||||
rd_conf="/var/config/retrodeck/retrodeck.cfg" # RetroDECK config file path
|
rd_conf="/var/config/retrodeck/retrodeck.cfg" # RetroDECK config file path
|
||||||
rd_conf_backup="/var/config/retrodeck/retrodeck.bak" # Backup of RetroDECK config file from update
|
rd_conf_backup="/var/config/retrodeck/retrodeck.bak" # Backup of RetroDECK config file from update
|
||||||
rd_logs_folder="/var/config/retrodeck/logs" # Static location to write all RetroDECK-related logs
|
rd_logs_folder="/var/config/retrodeck/logs" # Static location to write all RetroDECK-related logs
|
||||||
config="/app/retrodeck/config" # folder with all the default emulator configs
|
config="/app/retrodeck/config" # folder with all the default emulator configs
|
||||||
rd_defaults="$config/retrodeck/retrodeck.cfg" # A default RetroDECK config file
|
rd_defaults="$config/retrodeck/retrodeck.cfg" # A default RetroDECK config file
|
||||||
rd_update_patch="/var/config/retrodeck/rd_update.patch" # A static location for the temporary patch file used during retrodeck.cfg updates
|
rd_update_patch="/var/config/retrodeck/rd_update.patch" # A static location for the temporary patch file used during retrodeck.cfg updates
|
||||||
bios_checklist="$config/retrodeck/reference_lists/bios_checklist.cfg" # A config file listing BIOS file information that can be verified
|
bios_checklist="$config/retrodeck/reference_lists/bios_checklist.cfg" # A config file listing BIOS file information that can be verified
|
||||||
input_validation="$config/retrodeck/reference_lists/input_validation.cfg" # A config file listing valid CLI inputs
|
input_validation="$config/retrodeck/reference_lists/input_validation.cfg" # A config file listing valid CLI inputs
|
||||||
finit_options_list="$config/retrodeck/reference_lists/finit_options_list.cfg" # A config file listing available optional installs during finit
|
finit_options_list="$config/retrodeck/reference_lists/finit_options_list.cfg" # A config file listing available optional installs during finit
|
||||||
splashscreen_dir="/var/config/ES-DE/resources/graphics/extra_splashes" # The default location of extra splash screens
|
splashscreen_dir="/var/config/ES-DE/resources/graphics/extra_splashes" # The default location of extra splash screens
|
||||||
current_splash_file="/var/config/ES-DE/resources/graphics/splash.svg" # The active splash file that will be shown on boot
|
current_splash_file="/var/config/ES-DE/resources/graphics/splash.svg" # The active splash file that will be shown on boot
|
||||||
default_splash_file="/var/config/ES-DE/resources/graphics/splash-orig.svg" # The default RetroDECK splash screen
|
default_splash_file="/var/config/ES-DE/resources/graphics/splash-orig.svg" # The default RetroDECK splash screen
|
||||||
# TODO: instead of this maybe we can iterate the features.json
|
# TODO: instead of this maybe we can iterate the features.json
|
||||||
multi_user_emulator_config_dirs="$config/retrodeck/reference_lists/multi_user_emulator_config_dirs.cfg" # A list of emulator config folders that can be safely linked/unlinked entirely in multi-user mode
|
multi_user_emulator_config_dirs="$config/retrodeck/reference_lists/multi_user_emulator_config_dirs.cfg" # A list of emulator config folders that can be safely linked/unlinked entirely in multi-user mode
|
||||||
rd_es_themes="/app/share/es-de/themes" # The directory where themes packaged with RetroDECK are stored
|
rd_es_themes="/app/share/es-de/themes" # The directory where themes packaged with RetroDECK are stored
|
||||||
lockfile="/var/config/retrodeck/.lock" # Where the lockfile is located
|
lockfile="/var/config/retrodeck/.lock" # Where the lockfile is located
|
||||||
default_sd="/run/media/mmcblk0p1" # Steam Deck SD default path # A static location for RetroDECK logs to be written
|
default_sd="/run/media/mmcblk0p1" # Steam Deck SD default path
|
||||||
hard_version="$(cat '/app/retrodeck/version')" # hardcoded version (in the readonly filesystem)
|
hard_version="$(cat '/app/retrodeck/version')" # hardcoded version (in the readonly filesystem)
|
||||||
rd_repo="https://github.com/RetroDECK/RetroDECK" # The URL of the main RetroDECK GitHub repo
|
rd_repo="https://github.com/RetroDECK/RetroDECK" # The URL of the main RetroDECK GitHub repo
|
||||||
es_themes_list="https://gitlab.com/es-de/themes/themes-list/-/raw/master/themes.json" # The URL of the ES-DE 2.0 themes list
|
es_themes_list="https://gitlab.com/es-de/themes/themes-list/-/raw/master/themes.json" # The URL of the ES-DE 2.0 themes list
|
||||||
remote_network_target_1="https://flathub.org" # The URL of a common internet target for testing network access
|
remote_network_target_1="https://flathub.org" # The URL of a common internet target for testing network access
|
||||||
remote_network_target_2="$rd_repo" # The URL of a common internet target for testing network access
|
remote_network_target_2="$rd_repo" # The URL of a common internet target for testing network access
|
||||||
remote_network_target_3="https://one.one.one.one" # The URL of a common internet target for testing network access
|
remote_network_target_3="https://one.one.one.one" # The URL of a common internet target for testing network access
|
||||||
helper_files_folder="$config/retrodeck/helper_files" # The parent folder of RetroDECK documentation files for deployment
|
helper_files_folder="$config/retrodeck/helper_files" # The parent folder of RetroDECK documentation files for deployment
|
||||||
rd_appdata="/app/share/appdata/net.retrodeck.retrodeck.appdata.xml" # The shipped appdata XML file for this version
|
rd_appdata="/app/share/appdata/net.retrodeck.retrodeck.appdata.xml" # The shipped appdata XML file for this version
|
||||||
rpcs3_firmware="http://dus01.ps3.update.playstation.net/update/ps3/image/us/2024_0227_3694eb3fb8d9915c112e6ab41a60c69f/PS3UPDAT.PUP"
|
rpcs3_firmware="http://dus01.ps3.update.playstation.net/update/ps3/image/us/2024_0227_3694eb3fb8d9915c112e6ab41a60c69f/PS3UPDAT.PUP" # RPCS3 Firmware download location
|
||||||
RA_API_URL="https://retroachievements.org/dorequest.php" # API URL for RetroAchievements.org
|
RA_API_URL="https://retroachievements.org/dorequest.php" # API URL for RetroAchievements.org
|
||||||
presets_dir="$config/retrodeck/presets" # Repository for all system preset config files
|
presets_dir="$config/retrodeck/presets" # Repository for all system preset config files
|
||||||
git_organization_name="RetroDECK" # The name of the organization in our git repository such as GitHub
|
git_organization_name="RetroDECK" # The name of the organization in our git repository such as GitHub
|
||||||
cooker_repository_name="Cooker" # The name of the cooker repository under RetroDECK organization
|
cooker_repository_name="Cooker" # The name of the cooker repository under RetroDECK organization
|
||||||
main_repository_name="RetroDECK" # The name of the main repository under RetroDECK organization
|
main_repository_name="RetroDECK" # The name of the main repository under RetroDECK organization
|
||||||
features="$config/retrodeck/reference_lists/features.json" # A file where all the RetroDECK and component capabilities are kept for querying
|
features="$config/retrodeck/reference_lists/features.json" # A file where all the RetroDECK and component capabilities are kept for querying
|
||||||
|
es_systems="/app/share/es-de/resources/systems/linux/es_systems.xml" # ES-DE supported system list
|
||||||
|
es_find_rules="/app/share/es-de/resources/systems/linux/es_find_rules.xml" # ES-DE emulator find rules
|
||||||
|
|
||||||
|
|
||||||
# Godot data transfer temp files
|
# Godot data transfer temp files
|
||||||
|
@ -81,6 +84,7 @@ es_source_logs="/var/config/ES-DE/logs"
|
||||||
raconf="/var/config/retroarch/retroarch.cfg"
|
raconf="/var/config/retroarch/retroarch.cfg"
|
||||||
ra_core_conf="/var/config/retroarch/retroarch-core-options.cfg"
|
ra_core_conf="/var/config/retroarch/retroarch-core-options.cfg"
|
||||||
ra_scummvm_conf="/var/config/retroarch/system/scummvm.ini"
|
ra_scummvm_conf="/var/config/retroarch/system/scummvm.ini"
|
||||||
|
ra_cores_path="/var/config/retroarch/cores"
|
||||||
|
|
||||||
# CEMU config files
|
# CEMU config files
|
||||||
|
|
||||||
|
|
|
@ -880,8 +880,25 @@ release_selector() {
|
||||||
quit_retrodeck() {
|
quit_retrodeck() {
|
||||||
log i "Quitting ES-DE"
|
log i "Quitting ES-DE"
|
||||||
pkill -f "es-de"
|
pkill -f "es-de"
|
||||||
|
|
||||||
|
# if steam sync is on do the magic
|
||||||
|
if [[ $steam_sync == "true" ]]; then
|
||||||
|
(
|
||||||
|
source /app/libexec/steam_sync.sh
|
||||||
|
add_to_steam "$(ls "$rdhome/ES-DE/gamelists/")"
|
||||||
|
) |
|
||||||
|
zenity --progress \
|
||||||
|
--title="Syncing with Steam" \
|
||||||
|
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
|
||||||
|
--text="Syncing favorite games with Steam, please wait." \
|
||||||
|
--percentage=25 \
|
||||||
|
--pulsate \
|
||||||
|
--auto-close \
|
||||||
|
--auto-kill
|
||||||
|
fi
|
||||||
log i "Shutting down RetroDECK's framework"
|
log i "Shutting down RetroDECK's framework"
|
||||||
pkill -f "retrodeck"
|
pkill -f "retrodeck"
|
||||||
|
|
||||||
log i "See you next time"
|
log i "See you next time"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -891,125 +908,3 @@ start_retrodeck() {
|
||||||
log i "Starting RetroDECK v$version"
|
log i "Starting RetroDECK v$version"
|
||||||
es-de
|
es-de
|
||||||
}
|
}
|
||||||
|
|
||||||
run_game() {
|
|
||||||
|
|
||||||
# Initialize variables
|
|
||||||
emulator=""
|
|
||||||
system=""
|
|
||||||
|
|
||||||
# Parse options
|
|
||||||
while getopts ":e:s:" opt; do
|
|
||||||
case ${opt} in
|
|
||||||
e )
|
|
||||||
emulator=$OPTARG
|
|
||||||
;;
|
|
||||||
s )
|
|
||||||
system=$OPTARG
|
|
||||||
;;
|
|
||||||
\? )
|
|
||||||
echo "Usage: $0 --run [-e emulator] [-s system] game"
|
|
||||||
exit 1
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
shift $((OPTIND -1))
|
|
||||||
|
|
||||||
# Check for game argument
|
|
||||||
if [[ -z "$1" ]]; then
|
|
||||||
echo "Error: Game file is required."
|
|
||||||
echo "Usage: $0 --run [-e emulator] [-s system] game"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
game=$1
|
|
||||||
|
|
||||||
# If no system is provided, extract it from the game path
|
|
||||||
if [[ -z "$system" ]]; then
|
|
||||||
system=$(echo "$game" | grep -oP '(?<=roms/)[^/]+')
|
|
||||||
fi
|
|
||||||
|
|
||||||
log d "Emulator: $emulator"
|
|
||||||
log d "System: $system"
|
|
||||||
log d "Game: $game"
|
|
||||||
|
|
||||||
# Query the features JSON for emulators that support the system
|
|
||||||
local emulators=$(jq -r --arg system "$system" '
|
|
||||||
.emulator | to_entries[] |
|
|
||||||
select(
|
|
||||||
(.value.system == $system) or
|
|
||||||
(.value.system[]? == $system)
|
|
||||||
) | .key' "$features")
|
|
||||||
|
|
||||||
# Check if the system is handled by RetroArch cores
|
|
||||||
local retroarch_cores=$(jq -r --arg system "$system" '
|
|
||||||
.emulator.retroarch.cores | to_entries[] |
|
|
||||||
select(
|
|
||||||
.value.system == $system or
|
|
||||||
(.value.system[]? == $system)
|
|
||||||
) | .key' "$features")
|
|
||||||
|
|
||||||
# if the emulator is given and it's a retroarch core just execute it
|
|
||||||
if [[ "$emulator" == *"_libretro" ]]; then
|
|
||||||
local core_path="/var/config/retroarch/cores/$emulator.so"
|
|
||||||
log d "Running RetroArch core: $core_path"
|
|
||||||
log d "Command: retroarch -L $core_path \"$game\""
|
|
||||||
eval "retroarch -L $core_path \"$game\""
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# If the system is handled by RetroArch cores, add them to the list of emulators
|
|
||||||
if [[ -n "$retroarch_cores" ]]; then
|
|
||||||
emulators=$(echo -e "$emulators\n$retroarch_cores")
|
|
||||||
fi
|
|
||||||
|
|
||||||
local pretty_system=$(jq -r --arg system "$system" '.system[$system].name' "$features")
|
|
||||||
|
|
||||||
# Check if multiple emulators are found and prompt the user to select one with zenity
|
|
||||||
if [[ $(echo "$emulators" | wc -l) -gt 1 ]]; then
|
|
||||||
emulator=$(echo "$emulators" | zenity --list --title="Select Emulator" --text="Multiple emulators found for $pretty_system. Select one to run." --column="Emulator")
|
|
||||||
else
|
|
||||||
emulator="$emulators"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# If no emulator was selected, exit
|
|
||||||
if [[ -z "$emulator" ]]; then
|
|
||||||
log e "No emulator selected. Exiting."
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
log d "Run game: selected emulator $emulator"
|
|
||||||
|
|
||||||
# Handle RetroArch core separately
|
|
||||||
if [[ "$emulator" == *"_libretro" ]]; then
|
|
||||||
local core_path="/var/config/retroarch/cores/$emulator.so"
|
|
||||||
log d "Running RetroArch core: $core_path"
|
|
||||||
log d "Command: retroarch -L $core_path \"$game\""
|
|
||||||
eval "retroarch -L $core_path \"$game\""
|
|
||||||
else
|
|
||||||
# Check if launch-override exists
|
|
||||||
local launch_override=$(jq -r ".emulator.$emulator.\"launch-override\"" "$features")
|
|
||||||
if [[ "$launch_override" != "null" ]]; then
|
|
||||||
# Use launch-override
|
|
||||||
launch_override=${launch_override//\$game/\"$game\"}
|
|
||||||
log d "Using launch-override: $launch_override"
|
|
||||||
eval "$launch_override"
|
|
||||||
else
|
|
||||||
# Use standard launch and launch-args
|
|
||||||
local launch_command=$(jq -r ".emulator.$emulator.launch" "$features")
|
|
||||||
local launch_args=$(jq -r ".emulator.$emulator.\"launch-args\"" "$features")
|
|
||||||
log d "launch args: $launch_args"
|
|
||||||
|
|
||||||
# Only add launch_args if they are not null
|
|
||||||
if [[ "$launch_args" != "null" ]]; then
|
|
||||||
# Replace $game in launch_args with the actual game path, quoting it to handle spaces
|
|
||||||
launch_args=${launch_args//\$game/\"$game\"}
|
|
||||||
log d "Command: \"$launch_command $launch_args\""
|
|
||||||
eval "$launch_command $launch_args"
|
|
||||||
else
|
|
||||||
log d "Command: \"$launch_command\""
|
|
||||||
eval "$launch_command \"$game\""
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
}
|
|
|
@ -433,7 +433,9 @@ post_update() {
|
||||||
# Placeholder for version 0.9.0b
|
# Placeholder for version 0.9.0b
|
||||||
|
|
||||||
set_setting_value "$raconf" "libretro_info_path" "/var/config/retroarch/cores" "retroarch"
|
set_setting_value "$raconf" "libretro_info_path" "/var/config/retroarch/cores" "retroarch"
|
||||||
|
prepare_component "reset" "shadps4"
|
||||||
prepare_component "reset" "ruffle"
|
prepare_component "reset" "ruffle"
|
||||||
|
prepare_component "reset" "steam-rom-manager"
|
||||||
update_rd_conf
|
update_rd_conf
|
||||||
|
|
||||||
# TODO: check this
|
# TODO: check this
|
||||||
|
|
|
@ -80,6 +80,22 @@ prepare_component() {
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [[ "$component" =~ ^(steam-rom-manager|all)$ ]]; then
|
||||||
|
component_found="true"
|
||||||
|
log i "-----------------------------"
|
||||||
|
log i "Prepearing Steam ROM Manager"
|
||||||
|
log i "-----------------------------"
|
||||||
|
|
||||||
|
local srm_userdata="/var/config/steam-rom-manager/userData"
|
||||||
|
create_dir -d "/var/config/steam-rom-manager"
|
||||||
|
create_dir -d "$srm_userdata"
|
||||||
|
cp -fv "$config/steam-rom-manager/"*.json $srm_userdata
|
||||||
|
|
||||||
|
log i "Updating steamDirectory and romDirectory lines in $srm_userdata/userSettings.json"
|
||||||
|
jq '.environmentVariables.steamDirectory = "'$HOME'/.steam/steam"' "$srm_userdata/userSettings.json" > "$srm_userdata/tmp.json" && mv -f "$srm_userdata/tmp.json" "$srm_userdata/userSettings.json"
|
||||||
|
jq '.environmentVariables.romsDirectory = "'$rdhome'/.sync"' "$srm_userdata/userSettings.json" > "$srm_userdata/tmp.json" && mv -f "$srm_userdata/tmp.json" "$srm_userdata/userSettings.json"
|
||||||
|
fi
|
||||||
|
|
||||||
if [[ "$component" =~ ^(retroarch|all)$ ]]; then
|
if [[ "$component" =~ ^(retroarch|all)$ ]]; then
|
||||||
component_found="true"
|
component_found="true"
|
||||||
log i "--------------------------------"
|
log i "--------------------------------"
|
||||||
|
@ -857,6 +873,16 @@ prepare_component() {
|
||||||
sed -i 's#RETRODECKSAVESDIR#'$saves_folder'#g' "/var/config/gzdoom/gzdoom.ini" # This is an unfortunate one-off because set_setting_value does not currently support JSON
|
sed -i 's#RETRODECKSAVESDIR#'$saves_folder'#g' "/var/config/gzdoom/gzdoom.ini" # This is an unfortunate one-off because set_setting_value does not currently support JSON
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [[ "$component" =~ ^(gzdoom|all)$ ]]; then
|
||||||
|
component_found="true"
|
||||||
|
# This is just a placeholder script to test the emulator's flow
|
||||||
|
log i "----------------------"
|
||||||
|
log i "Prepearing SHADPS4"
|
||||||
|
log i "----------------------"
|
||||||
|
|
||||||
|
# TODO: plceholder
|
||||||
|
fi
|
||||||
|
|
||||||
if [[ "$component" =~ ^(ruffle|all)$ ]]; then
|
if [[ "$component" =~ ^(ruffle|all)$ ]]; then
|
||||||
component_found="true"
|
component_found="true"
|
||||||
log i "----------------------"
|
log i "----------------------"
|
||||||
|
@ -872,7 +898,16 @@ prepare_component() {
|
||||||
if [[ "$action" == "postmove" ]]; then # Run only post-move commands
|
if [[ "$action" == "postmove" ]]; then # Run only post-move commands
|
||||||
dir_prep "$saves_folder/flash" "/var/data/ruffle/SharedObjects/localhost/$roms_folder/flash"
|
dir_prep "$saves_folder/flash" "/var/data/ruffle/SharedObjects/localhost/$roms_folder/flash"
|
||||||
fi
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "$component" =~ ^(gzdoom|all)$ ]]; then
|
||||||
|
component_found="true"
|
||||||
|
# This is just a placeholder script to test the emulator's flow
|
||||||
|
log i "----------------------"
|
||||||
|
log i "Prepearing SHADPS4"
|
||||||
|
log i "----------------------"
|
||||||
|
|
||||||
|
# TODO: plceholder
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ $component_found == "false" ]]; then
|
if [[ $component_found == "false" ]]; then
|
||||||
|
|
342
functions/run_game.sh
Executable file
|
@ -0,0 +1,342 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
run_game() {
|
||||||
|
# Initialize variables
|
||||||
|
emulator=""
|
||||||
|
system=""
|
||||||
|
manual_mode=false
|
||||||
|
|
||||||
|
# Parse options for system, emulator, and manual mode
|
||||||
|
while getopts ":e:s:m" opt; do
|
||||||
|
case ${opt} in
|
||||||
|
e)
|
||||||
|
emulator=$OPTARG # Emulator provided via -e
|
||||||
|
;;
|
||||||
|
s)
|
||||||
|
system=$OPTARG # System provided via -s
|
||||||
|
;;
|
||||||
|
m)
|
||||||
|
manual_mode=true # Manual mode enabled via -m
|
||||||
|
log i "Run game: manual mode enabled"
|
||||||
|
;;
|
||||||
|
\?)
|
||||||
|
echo "Usage: $0 --run [-e emulator] [-s system] [-m manual] game"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
shift $((OPTIND - 1))
|
||||||
|
|
||||||
|
# Check for game argument
|
||||||
|
if [[ -z "$1" ]]; then
|
||||||
|
log e "Game path is required."
|
||||||
|
log i "Usage: $0 start [-e emulator] [-s system] [-m manual] game"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
game=$1
|
||||||
|
game_basename="./$(basename "$game")"
|
||||||
|
|
||||||
|
# Step 1: System Recognition
|
||||||
|
if [[ -z "$system" ]]; then
|
||||||
|
# Automatically detect system from game path
|
||||||
|
system=$(echo "$game" | grep -oP '(?<=roms/)[^/]+')
|
||||||
|
if [[ -z "$system" ]]; then
|
||||||
|
log e "Failed to detect system from game path."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
log d "System recognized: $system"
|
||||||
|
|
||||||
|
# Step 2: Emulator Definition
|
||||||
|
if [[ -n "$emulator" ]]; then
|
||||||
|
log d "Emulator provided via command-line: $emulator"
|
||||||
|
elif [[ "$manual_mode" = true ]]; then
|
||||||
|
log d "Manual mode: showing Zenity emulator selection"
|
||||||
|
emulator=$(show_zenity_emulator_list "$system")
|
||||||
|
if [[ -z "$emulator" ]]; then
|
||||||
|
log e "No emulator selected in manual mode."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
log d "Automatically searching for an emulator for system: $system"
|
||||||
|
|
||||||
|
# Check for <altemulator> in the game block in gamelist.xml
|
||||||
|
altemulator=$(xmllint --recover --xpath "string(//game[path='$game_basename']/altemulator)" "$rdhome/ES-DE/gamelists/$system/gamelist.xml" 2>/dev/null)
|
||||||
|
|
||||||
|
if [[ -n "$altemulator" ]]; then
|
||||||
|
|
||||||
|
log d "Found <altemulator> for game: $altemulator"
|
||||||
|
emulator=$(xmllint --recover --xpath "string(//command[@label=\"$altemulator\"])" "$es_systems" 2>/dev/null)
|
||||||
|
|
||||||
|
else # if no altemulator is found we search if a global one is set
|
||||||
|
|
||||||
|
log d "No altemulator found in the game entry, searching for alternativeEmulator to check if a global emulator is set for the system $system"
|
||||||
|
alternative_emulator=$(xmllint --recover --xpath 'string(//alternativeEmulator/label)' "$rdhome/ES-DE/gamelists/$system/gamelist.xml" 2>/dev/null)
|
||||||
|
log d "Alternate emulator found in <alternativeEmulator> header: $alternative_emulator"
|
||||||
|
emulator=$(xmllint --recover --xpath "string(//system[platform='$system']/command[@label=\"$alternative_emulator\"])" "$es_systems" 2>/dev/null)
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Fallback to first available emulator in es_systems.xml if no <altemulator> found
|
||||||
|
if [[ -z "$emulator" ]]; then
|
||||||
|
# TODO: the non-alt emulator is broken
|
||||||
|
log d "No alternate emulator found, using first available emulator in es_systems.xml"
|
||||||
|
emulator_command=$(xmllint --recover --xpath "string(//system[name='$system']/command[1])" "$es_systems" 2>/dev/null)
|
||||||
|
emulator=$(find_emulator_name_from_label "$emulator_command")
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -z "$emulator" ]]; then
|
||||||
|
log e "No valid emulator found for system: $system"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Step 3: Construct and Run the Command
|
||||||
|
log d "Preparing to launch with emulator: $emulator"
|
||||||
|
|
||||||
|
# Now pass the final constructed command to substitute_placeholders function
|
||||||
|
final_command=$(substitute_placeholders "$emulator")
|
||||||
|
|
||||||
|
# Log and execute the command
|
||||||
|
log i "Launching game with command: $final_command"
|
||||||
|
eval "$final_command"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# Assume this function handles showing the Zenity list of emulators for manual mode
|
||||||
|
show_zenity_emulator_list() {
|
||||||
|
local system="$1"
|
||||||
|
# Example logic to retrieve and show Zenity list of emulators for the system
|
||||||
|
# This would extract available emulators for the system from es_systems.xml and show a Zenity dialog
|
||||||
|
emulators=$(xmllint --xpath "//system[name='$system']/command/@label" "$es_systems" | sed 's/ label=/\n/g' | sed 's/\"//g' | grep -o '[^ ]*')
|
||||||
|
zenity --list --title="Select Emulator" --column="Emulators" $emulators
|
||||||
|
}
|
||||||
|
|
||||||
|
# Function to extract commands from es_systems.xml and present them in Zenity
|
||||||
|
find_system_commands() {
|
||||||
|
local system_name=$system
|
||||||
|
# Use xmllint to extract the system commands from the XML
|
||||||
|
system_section=$(xmllint --xpath "//system[name='$system_name']" "$es_systems" 2>/dev/null)
|
||||||
|
|
||||||
|
if [ -z "$system_section" ]; then
|
||||||
|
log e "System not found: $system_name"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Extract commands and labels
|
||||||
|
commands=$(echo "$system_section" | xmllint --xpath "//command" - 2>/dev/null)
|
||||||
|
|
||||||
|
# Prepare Zenity command list
|
||||||
|
command_list=()
|
||||||
|
while IFS= read -r line; do
|
||||||
|
label=$(echo "$line" | sed -n 's/.*label="\([^"]*\)".*/\1/p')
|
||||||
|
command=$(echo "$line" | sed -n 's/.*<command[^>]*>\(.*\)<\/command>.*/\1/p')
|
||||||
|
|
||||||
|
# Substitute placeholders in the command
|
||||||
|
command=$(substitute_placeholders "$command")
|
||||||
|
|
||||||
|
# Add label and command to Zenity list (label first, command second)
|
||||||
|
command_list+=("$label" "$command")
|
||||||
|
done <<< "$commands"
|
||||||
|
|
||||||
|
# Check if there's only one command
|
||||||
|
if [ ${#command_list[@]} -eq 2 ]; then
|
||||||
|
log d "Only one command found for $system_name, running it directly: ${command_list[1]}"
|
||||||
|
selected_command="${command_list[1]}"
|
||||||
|
else
|
||||||
|
# Show the list with Zenity and return the **command** (second column) selected
|
||||||
|
selected_command=$(zenity --list \
|
||||||
|
--title="Select an emulator for $system_name" \
|
||||||
|
--column="Emulator" --column="Hidden Command" "${command_list[@]}" \
|
||||||
|
--width=800 --height=400 --print-column=2 --hide-column=2)
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "$selected_command"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Function to substitute placeholders in the command
|
||||||
|
substitute_placeholders() {
|
||||||
|
local cmd="$1"
|
||||||
|
log d "Substitute placeholder: working on $cmd"
|
||||||
|
local rom_path="$game"
|
||||||
|
local rom_dir=$(dirname "$rom_path")
|
||||||
|
|
||||||
|
# Strip all file extensions from the base name
|
||||||
|
local base_name=$(basename "$rom_path")
|
||||||
|
base_name="${base_name%%.*}"
|
||||||
|
|
||||||
|
local file_name=$(basename "$rom_path")
|
||||||
|
local rom_raw="$rom_path"
|
||||||
|
local rom_dir_raw="$rom_dir"
|
||||||
|
local es_path=""
|
||||||
|
local emulator_path=""
|
||||||
|
|
||||||
|
# Manually replace %EMULATOR_*% placeholders
|
||||||
|
while [[ "$cmd" =~ (%EMULATOR_[A-Z0-9_]+%) ]]; do
|
||||||
|
placeholder="${BASH_REMATCH[1]}"
|
||||||
|
emulator_path=$(replace_emulator_placeholder "$placeholder")
|
||||||
|
cmd="${cmd//$placeholder/$emulator_path}"
|
||||||
|
done
|
||||||
|
|
||||||
|
# Substitute %BASENAME% and other placeholders
|
||||||
|
cmd="${cmd//"%BASENAME%"/"'$base_name'"}"
|
||||||
|
cmd="${cmd//"%FILENAME%"/"'$file_name'"}"
|
||||||
|
cmd="${cmd//"%ROMRAW%"/"'$rom_raw'"}"
|
||||||
|
cmd="${cmd//"%ROMPATH%"/"'$rom_dir'"}"
|
||||||
|
|
||||||
|
# Ensure paths are quoted correctly
|
||||||
|
cmd="${cmd//"%ROM%"/"'$rom_path'"}"
|
||||||
|
cmd="${cmd//"%GAMEDIR%"/"'$rom_dir'"}"
|
||||||
|
cmd="${cmd//"%GAMEDIRRAW%"/"'$rom_dir_raw'"}"
|
||||||
|
cmd="${cmd//"%CORE_RETROARCH%"/"$ra_cores_path"}"
|
||||||
|
|
||||||
|
log d "Command after placeholders substitutions: $cmd"
|
||||||
|
|
||||||
|
# Now handle %INJECT% after %BASENAME% has been substituted
|
||||||
|
cmd=$(handle_inject_placeholder "$cmd")
|
||||||
|
|
||||||
|
echo "$cmd"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Function to replace %EMULATOR_SOMETHING% with the actual path of the emulator
|
||||||
|
replace_emulator_placeholder() {
|
||||||
|
local placeholder=$1
|
||||||
|
# Extract emulator name from placeholder without changing case
|
||||||
|
local emulator_name="${placeholder//"%EMULATOR_"/}" # Extract emulator name after %EMULATOR_
|
||||||
|
emulator_name="${emulator_name//"%"/}" # Remove the trailing %
|
||||||
|
|
||||||
|
# Use the find_emulator function to get the emulator path using the correct casing
|
||||||
|
local emulator_exec=$(find_emulator "$emulator_name")
|
||||||
|
|
||||||
|
if [[ -z "$emulator_exec" ]]; then
|
||||||
|
log e "Emulator '$emulator_name' not found."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
echo "$emulator_exec"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Function to handle the %INJECT% placeholder
|
||||||
|
handle_inject_placeholder() {
|
||||||
|
local cmd="$1"
|
||||||
|
local rom_dir=$(dirname "$game") # Get the ROM directory based on the game path
|
||||||
|
|
||||||
|
# Find and process all occurrences of %INJECT%='something'.extension
|
||||||
|
while [[ "$cmd" =~ (%INJECT%=\'([^\']+)\')(.[^ ]+)? ]]; do
|
||||||
|
inject_file="${BASH_REMATCH[2]}" # Extract the quoted file name
|
||||||
|
extension="${BASH_REMATCH[3]}" # Extract the extension (if any)
|
||||||
|
inject_file_full_path="$rom_dir/$inject_file$extension" # Form the full path
|
||||||
|
|
||||||
|
log d "Found inject part: %INJECT%='$inject_file'$extension"
|
||||||
|
|
||||||
|
# Check if the file exists
|
||||||
|
if [[ -f "$inject_file_full_path" ]]; then
|
||||||
|
# Read the content of the file and replace newlines with spaces
|
||||||
|
inject_content=$(cat "$inject_file_full_path" | tr '\n' ' ')
|
||||||
|
log i "File \"$inject_file_full_path\" found. Replacing %INJECT% with content."
|
||||||
|
|
||||||
|
# Escape special characters in the inject part for the replacement
|
||||||
|
escaped_inject_part=$(printf '%s' "%INJECT%='$inject_file'$extension" | sed 's/[]\/$*.^[]/\\&/g')
|
||||||
|
|
||||||
|
# Replace the entire %INJECT%=...'something'.extension part with the file content
|
||||||
|
cmd=$(echo "$cmd" | sed "s|$escaped_inject_part|$inject_content|g")
|
||||||
|
|
||||||
|
log d "Replaced cmd: $cmd"
|
||||||
|
else
|
||||||
|
log e "File \"$inject_file_full_path\" not found. Removing %INJECT% placeholder."
|
||||||
|
|
||||||
|
# Use sed to remove the entire %INJECT%=...'something'.extension
|
||||||
|
escaped_inject_part=$(printf '%s' "%INJECT%='$inject_file'$extension" | sed 's/[]\/$*.^[]/\\&/g')
|
||||||
|
cmd=$(echo "$cmd" | sed "s|$escaped_inject_part||g")
|
||||||
|
|
||||||
|
log d "sedded cmd: $cmd"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
log d "Returning the command with injected content: $cmd"
|
||||||
|
echo "$cmd"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Function to get the first available emulator in the list
|
||||||
|
get_first_emulator() {
|
||||||
|
local system_name=$system
|
||||||
|
system_section=$(xmllint --xpath "//system[name='$system_name']" "$es_systems" 2>/dev/null)
|
||||||
|
|
||||||
|
if [ -z "$system_section" ]; then
|
||||||
|
log e "System not found: $system_name"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Extract the first command and use it as the selected emulator
|
||||||
|
first_command=$(echo "$system_section" | xmllint --xpath "string(//command[1])" - 2>/dev/null)
|
||||||
|
|
||||||
|
if [[ -n "$first_command" ]]; then
|
||||||
|
# Substitute placeholders in the command
|
||||||
|
first_command=$(substitute_placeholders "$first_command")
|
||||||
|
log d "Automatically selected the first emulator: $first_command"
|
||||||
|
echo "$first_command"
|
||||||
|
else
|
||||||
|
log e "No command found for the system: $system_name"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
find_emulator() {
|
||||||
|
local emulator_name="$1"
|
||||||
|
found_path=""
|
||||||
|
|
||||||
|
# Search the es_find_rules.xml file for the emulator
|
||||||
|
emulator_section=$(xmllint --xpath "//emulator[@name='$emulator_name']" "$es_find_rules" 2>/dev/null)
|
||||||
|
|
||||||
|
if [ -z "$emulator_section" ]; then
|
||||||
|
log e "Find emulator: emulator not found: $emulator_name"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Search systempath entries
|
||||||
|
while IFS= read -r line; do
|
||||||
|
command_path=$(echo "$line" | sed -n 's/.*<entry>\(.*\)<\/entry>.*/\1/p')
|
||||||
|
if [ -x "$(command -v $command_path)" ]; then
|
||||||
|
found_path=$command_path
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done <<< "$(echo "$emulator_section" | xmllint --xpath "//rule[@type='systempath']/entry" - 2>/dev/null)"
|
||||||
|
|
||||||
|
# If not found, search staticpath entries
|
||||||
|
if [ -z "$found_path" ]; then
|
||||||
|
while IFS= read -r line; do
|
||||||
|
command_path=$(eval echo "$line" | sed -n 's/.*<entry>\(.*\)<\/entry>.*/\1/p')
|
||||||
|
if [ -x "$command_path" ]; then
|
||||||
|
found_path=$command_path
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done <<< "$(echo "$emulator_section" | xmllint --xpath "//rule[@type='staticpath']/entry" - 2>/dev/null)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -z "$found_path" ]; then
|
||||||
|
log e "Find emulator: no valid path found for emulator: $emulator_name"
|
||||||
|
return 1
|
||||||
|
else
|
||||||
|
log d "Find emulator: found emulator \"$found_path\""
|
||||||
|
echo "$found_path"
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Function to find the emulator name from the label in es_systems.xml
|
||||||
|
find_emulator_name_from_label() {
|
||||||
|
local label="$1"
|
||||||
|
|
||||||
|
# Search for the emulator matching the label in the es_systems.xml file
|
||||||
|
extracted_emulator_name=$(xmllint --recover --xpath "string(//system[name='$system']/command[@label='$label']/text())" "$es_systems" 2>/dev/null | sed 's/%//g' | sed 's/EMULATOR_//g' | cut -d' ' -f1)
|
||||||
|
log d "Found emulator from label: $extracted_emulator_name"
|
||||||
|
|
||||||
|
emulator_command=$(find_emulator "$extracted_emulator_name")
|
||||||
|
|
||||||
|
if [[ -n "$emulator_command" ]]; then
|
||||||
|
echo "$emulator_command"
|
||||||
|
else
|
||||||
|
log e "Found emulator from label: emulator name not found for label: $label"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
}
|
404
functions/steam-sync/steam-sync.py
Normal file
|
@ -0,0 +1,404 @@
|
||||||
|
"""Sync RetroDECK favorites games with steam shortcuts"""
|
||||||
|
import binascii
|
||||||
|
import os
|
||||||
|
import re
|
||||||
|
import shlex
|
||||||
|
import shutil
|
||||||
|
import glob
|
||||||
|
import sys
|
||||||
|
import time
|
||||||
|
import hashlib
|
||||||
|
|
||||||
|
import xml.etree.ElementTree as ET
|
||||||
|
|
||||||
|
from resetsync import resetfun
|
||||||
|
|
||||||
|
command_list_default={
|
||||||
|
"3do": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/opera_libretro.so",
|
||||||
|
"amiga": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/puae_libretro.so",
|
||||||
|
"amiga1200": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/puae_libretro.so",
|
||||||
|
"amiga600": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/puae_libretro.so",
|
||||||
|
"amigacd32": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/puae_libretro.so",
|
||||||
|
"amstradcpc": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/cap32_libretro.so",
|
||||||
|
"arcade": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mame_libretro.so",
|
||||||
|
"arduboy": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/arduous_libretro.so",
|
||||||
|
"astrocde": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mame_libretro.so",
|
||||||
|
"atari2600": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/stella_libretro.so",
|
||||||
|
"atari5200": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/a5200_libretro.so",
|
||||||
|
"atari7800": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/prosystem_libretro.so",
|
||||||
|
"atari800": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/atari800_libretro.so",
|
||||||
|
"atarijaguar": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/virtualjaguar_libretro.so",
|
||||||
|
"atarijaguarcd": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/virtualjaguar_libretro.so",
|
||||||
|
"atarilynx": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/handy_libretro.so",
|
||||||
|
"atarist": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/hatari_libretro.so",
|
||||||
|
"atarixe": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/atari800_libretro.so",
|
||||||
|
"atomiswave": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/flycast_libretro.so",
|
||||||
|
"c64": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/vice_x64sc_libretro.so",
|
||||||
|
"cavestory": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/nxengine_libretro.so",
|
||||||
|
"cdimono1": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/same_cdi_libretro.so",
|
||||||
|
"cdtv": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/puae_libretro.so",
|
||||||
|
"chailove": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/chailove_libretro.so",
|
||||||
|
"channelf": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/freechaf_libretro.so",
|
||||||
|
"colecovision": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/bluemsx_libretro.so",
|
||||||
|
"cps": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mame_libretro.so",
|
||||||
|
"cps1": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mame_libretro.so",
|
||||||
|
"cps2": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mame_libretro.so",
|
||||||
|
"cps3": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mame_libretro.so",
|
||||||
|
"doom": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/prboom_libretro.so",
|
||||||
|
"dos": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/dosbox_pure_libretro.so",
|
||||||
|
"dreamcast": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/flycast_libretro.so",
|
||||||
|
"easyrpg": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/easyrpg_libretro.so",
|
||||||
|
"famicom": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mesen_libretro.so",
|
||||||
|
"flash": "TODO: I have to catch how it works", #TODO
|
||||||
|
"fba": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/fbalpha2012_libretro.so",
|
||||||
|
"fbneo": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/fbneo_libretro.so",
|
||||||
|
"fds": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mesen_libretro.so",
|
||||||
|
"gameandwatch": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/gw_libretro.so",
|
||||||
|
"gamegear": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/genesis_plus_gx_libretro.so",
|
||||||
|
"gb": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/gambatte_libretro.so",
|
||||||
|
"gba": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mgba_libretro.so",
|
||||||
|
"gbc": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/gambatte_libretro.so",
|
||||||
|
"genesis": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/genesis_plus_gx_libretro.so",
|
||||||
|
"gx4000": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/cap32_libretro.so",
|
||||||
|
"intellivision": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/freeintv_libretro.so",
|
||||||
|
"j2me": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/squirreljme_libretro.so",
|
||||||
|
"lcdgames": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/gw_libretro.so",
|
||||||
|
"lutro": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/lutro_libretro.so",
|
||||||
|
"mame": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mame_libretro.so",
|
||||||
|
"mastersystem": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/genesis_plus_gx_libretro.so",
|
||||||
|
"megacd": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/genesis_plus_gx_libretro.so",
|
||||||
|
"megacdjp": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/genesis_plus_gx_libretro.so",
|
||||||
|
"megadrive": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/genesis_plus_gx_libretro.so",
|
||||||
|
"megaduck": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/sameduck_libretro.so",
|
||||||
|
"mess": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mess2015_libretro.so",
|
||||||
|
"model2": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mame_libretro.so",
|
||||||
|
"moto": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/theodore_libretro.so",
|
||||||
|
"msx": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/bluemsx_libretro.so",
|
||||||
|
"msx1": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/bluemsx_libretro.so",
|
||||||
|
"msx2": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/bluemsx_libretro.so",
|
||||||
|
"msxturbor": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/bluemsx_libretro.so",
|
||||||
|
"multivision": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/gearsystem_libretro.so",
|
||||||
|
"n64": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mupen64plus_next_libretro.so",
|
||||||
|
"n64dd": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/parallel_n64_libretro.so",
|
||||||
|
"naomi": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/flycast_libretro.so",
|
||||||
|
"naomigd": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/flycast_libretro.so",
|
||||||
|
"nds": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/desmume_libretro.so",
|
||||||
|
"neogeo": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/fbneo_libretro.so",
|
||||||
|
"neogeocd": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/neocd_libretro.so",
|
||||||
|
"neogeocdjp": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/neocd_libretro.so",
|
||||||
|
"nes": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mesen_libretro.so",
|
||||||
|
"ngp": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_ngp_libretro.so",
|
||||||
|
"ngpc": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_ngp_libretro.so",
|
||||||
|
"odyssey2": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/o2em_libretro.so",
|
||||||
|
"palm": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mu_libretro.so",
|
||||||
|
"pc88": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/quasi88_libretro.so",
|
||||||
|
"pc98": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/np2kai_libretro.so",
|
||||||
|
"pcengine": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_pce_libretro.so",
|
||||||
|
"pcenginecd": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_pce_libretro.so",
|
||||||
|
"pcfx": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_pcfx_libretro.so",
|
||||||
|
"pokemini": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/pokemini_libretro.so",
|
||||||
|
"psx": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/swanstation_libretro.so",
|
||||||
|
"quake": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/tyrquake_libretro.so",
|
||||||
|
"satellaview": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/snes9x_libretro.so",
|
||||||
|
"saturn": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_saturn_libretro.so",
|
||||||
|
"saturnjp": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_saturn_libretro.so",
|
||||||
|
"scummvm": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/scummvm_libretro.so",
|
||||||
|
"sega32x": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/picodrive_libretro.so",
|
||||||
|
"sega32xjp": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/picodrive_libretro.so",
|
||||||
|
"sega32xna": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/picodrive_libretro.so",
|
||||||
|
"segacd": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/genesis_plus_gx_libretro.so",
|
||||||
|
"sfc": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/snes9x_libretro.so",
|
||||||
|
"sg-1000": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/genesis_plus_gx_libretro.so",
|
||||||
|
"sgb": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mesen-s_libretro.so",
|
||||||
|
"snes": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/snes9x_libretro.so",
|
||||||
|
"snesna": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/snes9x_libretro.so",
|
||||||
|
"spectravideo": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/bluemsx_libretro.so",
|
||||||
|
"sufami": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/snes9x_libretro.so",
|
||||||
|
"supergrafx": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_supergrafx_libretro.so",
|
||||||
|
"supervision": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/potator_libretro.so",
|
||||||
|
"tg16": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_pce_libretro.so",
|
||||||
|
"tg-cd": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_pce_libretro.so",
|
||||||
|
"tic80": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/tic80_libretro.so",
|
||||||
|
"to8": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/theodore_libretro.so",
|
||||||
|
"uzebox": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/uzem_libretro.so",
|
||||||
|
"vectrex": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/vecx_libretro.so",
|
||||||
|
"vic20": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/vice_xvic_libretro.so",
|
||||||
|
"videopac": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/o2em_libretro.so",
|
||||||
|
"virtualboy": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_vb_libretro.so",
|
||||||
|
"wasm4": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/wasm4_libretro.so",
|
||||||
|
"wonderswan": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_wswan_libretro.so",
|
||||||
|
"wonderswancolor": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_wswan_libretro.so",
|
||||||
|
"x1": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/x1_libretro.so",
|
||||||
|
"x68000": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/px68k_libretro.so",
|
||||||
|
"zx81": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/81_libretro.so",
|
||||||
|
"zxspectrum": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/fuse_libretro.so",
|
||||||
|
"switch": "flatpak run --command=/var/data/ponzu/Yuzu/bin/yuzu net.retrodeck.retrodeck -f -g",
|
||||||
|
"n3ds": "flatpak run --command=/var/data/ponzu/Citra/bin/citra-qt net.retrodeck.retrodeck",
|
||||||
|
"ps2": "flatpak run --command=pcsx2-qt net.retrodeck.retrodeck -batch",
|
||||||
|
"wiiu": "flatpak run --command=Cemu-wrapper net.retrodeck.retrodeck -g",
|
||||||
|
"gc": "flatpak run --command=dolphin-emu-wrapper net.retrodeck.retrodeck -b -e",
|
||||||
|
"wii": "flatpak run --command=dolphin-emu-wrapper net.retrodeck.retrodeck -b -e",
|
||||||
|
"xbox": "flatpak run --command=xemu net.retrodeck.retrodeck -dvd_path",
|
||||||
|
"ps3": "flatpak run --command=pcsx3 net.retrodeck.retrodeck --no-gui",
|
||||||
|
"psp": "flatpak run --command=PPSSPPSDL net.retrodeck.retrodeck",
|
||||||
|
"pico8": "flatpak run --command=pico8 net.retrodeck.retrodeck -desktop_path ~/retrodeck/screenshots -root_path {GAMEDIR} -run"
|
||||||
|
}
|
||||||
|
|
||||||
|
alt_command_list={
|
||||||
|
"PUAE": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/puae_libretro.so",
|
||||||
|
"Caprice32": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/cap32_libretro.so",
|
||||||
|
"MAME - CURRENT": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mame_libretro.so",
|
||||||
|
"Stella": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/stella_libretro.so",
|
||||||
|
"a5200": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/a5200_libretro.so",
|
||||||
|
"Atari800": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/atari800_libretro.so",
|
||||||
|
"Handy": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/handy_libretro.so",
|
||||||
|
"VICE x64sc Accurate": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/vice_x64sc_libretro.so",
|
||||||
|
"SAME CDi": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/same_cdi_libretro.so",
|
||||||
|
"blueMSX": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/bluemsx_libretro.so",
|
||||||
|
"MAME - CURRENT": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mame_libretro.so",
|
||||||
|
"PrBoom": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/prboom_libretro.so",
|
||||||
|
"DOSBox-Pure": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/dosbox_pure_libretro.so",
|
||||||
|
"Mesen": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mesen_libretro.so",
|
||||||
|
"Genesis Plus GX": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/genesis_plus_gx_libretro.so",
|
||||||
|
"Gamebatte": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/gambatte_libretro.so",
|
||||||
|
"mGBA": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mgba_libretro.so",
|
||||||
|
"ParaLLEI N64": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/parallel_n64_libretro.so",
|
||||||
|
"DeSmuME": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/desmume_libretro.so",
|
||||||
|
"NeoCD": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/neocd_libretro.so",
|
||||||
|
"Beetle NeoPop": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_ngp_libretro.so",
|
||||||
|
"Neko Project II Kai": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/np2kai_libretro.so",
|
||||||
|
"Beetle PCE": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_pce_libretro.so",
|
||||||
|
"Swanstation": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/swanstation_libretro.so",
|
||||||
|
"TyrQuake": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/tyrquake_libretro.so",
|
||||||
|
"Beetle Saturn": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_saturn_libretro.so",
|
||||||
|
"Snes 9x - Current": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/snes9x_libretro.so",
|
||||||
|
"Beetle SuperGrafx": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_supergrafx_libretro.so",
|
||||||
|
"Yuzu (Standalone)": "flatpak run --command=yuzu net.retrodeck.retrodeck -f -g",
|
||||||
|
"Citra (Standalone)": "flatpak run --command=citra net.retrodeck.retrodeck",
|
||||||
|
"PCSX2 (Standalone)": "flatpak run --command=pcsx2-qt net.retrodeck.retrodeck -batch",
|
||||||
|
"Dolphin (Standalone)": "flatpak run --command=dolphin-emu-wrapper net.retrodeck.retrodeck -b -e",
|
||||||
|
"RPCS3 Directory (Standalone)": "flatpak run --command=pcsx3 net.retrodeck.retrodeck --no-gui",
|
||||||
|
"PPSSPP (Standalone)": "flatpak run --command=PPSSPPSDL net.retrodeck.retrodeck",
|
||||||
|
"PICO-8 (Standalone)": "flatpak run --command=pico8 net.retrodeck.retrodeck -desktop_path ~/retrodeck/screenshots -root_path {GAMEDIR} -run",
|
||||||
|
"PUAE 2021": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/puae2021_libretro.so",
|
||||||
|
"CrocoDS": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/crocods_libretro.so",
|
||||||
|
"CPCemu (Standalone)": "NYI", #NYI
|
||||||
|
"MAME 2010": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mame2010_libretro.so",
|
||||||
|
"MAME 2003-Plus": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mame2003_plus_libretro.so",
|
||||||
|
"MAME 2000": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mame2000_libretro.so",
|
||||||
|
"MAME (Standalone)": "NYI", #NYI
|
||||||
|
"FinalBurn Neo": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/fbneo_libretro.so",
|
||||||
|
"FinalBurn Neo (Standalone)": "NYI", #NYI
|
||||||
|
"FB Alpha 2012": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/fbalpha2012_libretro.so",
|
||||||
|
"Flycast": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/flycast_libretro.so",
|
||||||
|
"Flycast (Standalone)": "NYI", #NYI
|
||||||
|
"Kronos": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/kronos_libretro.so",
|
||||||
|
"Supermodel (Standalone)": "NYI", #NYI
|
||||||
|
"Supermodel [Fullscreen] (Standalone)": "NYI", #NYI
|
||||||
|
"Shortcut or script": "TODO: I have to catch how it works", #TODO
|
||||||
|
"Atari800 (Standalone)": "NYI", #NYI
|
||||||
|
"Stella 2014": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/stella2014_libretro.so",
|
||||||
|
"Atari800": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/atari800_libretro.so",
|
||||||
|
"Beetle Lynx": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_lynx_libretro.so",
|
||||||
|
"VICE x64 Fast": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/vice_x64_libretro.so",
|
||||||
|
"VICE x64 SuperCPU": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/vice_xscpu64_libretro.so",
|
||||||
|
"VICE x128": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/vice_x128_libretro.so",
|
||||||
|
"Frodo": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/frodo_libretro.so",
|
||||||
|
"CDi 2015": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/cdi2015_libretro.so",
|
||||||
|
"Gearcoleco": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/gearcoleco_libretro.so",
|
||||||
|
"FB Alpha 2012 CPS-1": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/fbalpha2012_cps1_libretro.so",
|
||||||
|
"FB Alpha 2012 CPS-2": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/fbalpha2012_cps2_libretro.so",
|
||||||
|
"FB Alpha 2012 CPS-3": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/fbalpha2012_cps3_libretro.so",
|
||||||
|
"Boom 3": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/boom3_libretro.so",
|
||||||
|
"Boom 3 xp": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/boom3_libretro_xp.so",
|
||||||
|
"DOSBox-Core": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/dosbox_core_libretro.so",
|
||||||
|
"DOSBox-SVN": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/dosbox_svn_libretro.so",
|
||||||
|
"Keep ES-DE running": "TODO: I have to catch how it works", #TODO
|
||||||
|
"AppImage (Suspend ES-DE)": "TODO: I have to catch how it works", #TODO
|
||||||
|
"AppImage (Keep ES-DE running)": "TODO: I have to catch how it works", #TODO
|
||||||
|
"Nestopia UE": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/nestopia_libretro.so",
|
||||||
|
"FCEUmm": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/fceumm_libretro.so",
|
||||||
|
"QuickNES": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/quicknes_libretro.so",
|
||||||
|
"Genesis Plus GX Wide": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/genesis_plus_gx_wide_libretro.so",
|
||||||
|
"Gearsystem": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/gearsystem_libretro.so",
|
||||||
|
"SMS Plus GX": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/smsplus_libretro.so",
|
||||||
|
"SameBoy": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/sameboy_libretro.so",
|
||||||
|
"Gearboy": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/gearboy_libretro.so",
|
||||||
|
"TGB Dual": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/tgbdual_libretro.so",
|
||||||
|
"Mesen-S": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mesen-s_libretro.so",
|
||||||
|
"VBA-M": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/vbam_libretro.so",
|
||||||
|
"bsnes": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/bsnes_libretro.so",
|
||||||
|
"mGBA": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mgba_libretro.so",
|
||||||
|
"VBA Next": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/vba_next_libretro.so",
|
||||||
|
"gpSP": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/gpsp_libretro.so",
|
||||||
|
"Dolphin": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/dolphin_libretro.so",
|
||||||
|
"PrimeHack (Standalone)": "flatpak run --command=primehack-wrapper net.retrodeck.retrodeck -b -e",
|
||||||
|
"PicoDrive": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/picodrive_libretro.so",
|
||||||
|
"BlastEm": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/blastem_libretro.so",
|
||||||
|
"CrocoDS": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/crocods_libretro.so",
|
||||||
|
"fMSX": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/fmsx_libretro.so",
|
||||||
|
"Citra": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/citra_libretro.so",
|
||||||
|
"Citra 2018": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/citra2018_libretro.so",
|
||||||
|
"Mupen64Plus-Next": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mupen64plus_next_libretro.so",
|
||||||
|
"DeSmuME 2015": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/desmume2015_libretro.so",
|
||||||
|
"melonDS": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/melonds_libretro.so",
|
||||||
|
"melonDS (Standalone)": "flatpak run --command=melonDS net.retrodeck.retrodeck",
|
||||||
|
"FinalBurn Neo neogeocd": "flatpak run --command=retroarch net.retrodeck.retrodeck --subsystem neocd -L /var/config/retroarch/cores/fbneo_libretro.so",
|
||||||
|
"RACE": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/race_libretro.so",
|
||||||
|
"Neko Project II": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/nekop2_libretro.so",
|
||||||
|
"Beetle PCE FAST": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_pce_fast_libretro.so",
|
||||||
|
"PICO-8 Splore (Standalone)": "flatpak run --command=pico8 net.retrodeck.retrodeck -desktop_path ~/retrodeck/screenshots -root_path {GAMEDIR} -splore",
|
||||||
|
"AppImage": "TODO: I have to catch how it works", #TODO
|
||||||
|
"LRPS2": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/pcsx2_libretro.so",
|
||||||
|
"PCSX2": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/pcsx2_libretro.so",
|
||||||
|
"RPCS3 Shortcut (Standalone)": "TODO: I have to catch how it works", #TODO
|
||||||
|
"PPSSPP": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/ppsspp_libretro.so",
|
||||||
|
"Beetle PSX": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_psx_libretro.so",
|
||||||
|
"Beetle PSX HW": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_psx_hw_libretro.so",
|
||||||
|
"PCSX ReARMed": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/pcsx_rearmed_libretro.so",
|
||||||
|
"DuckStation (Standalone)": "flatpak run --command=duckstation-qt net.retrodeck.retrodeck -batch",
|
||||||
|
"vitaQuake 2": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/vitaquake2_libretro.so",
|
||||||
|
"vitaQuake 2 [Rogue]": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/vitaquake2-rogue_libretro.so",
|
||||||
|
"vitaQuake 2 [Xatrix]": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/vitaquake2-xatrix_libretro.so",
|
||||||
|
"vitaQuake 2 [Zaero]": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/vitaquake2-zaero_libretro.so",
|
||||||
|
"vitaQuake 3": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/vitaquake3_libretro.so",
|
||||||
|
"YabaSanshiro": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/yabasanshiro_libretro.so",
|
||||||
|
"Yabause": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/yabause_libretro.so",
|
||||||
|
"Snes9x 2010": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/snes9x2010_libretro.so",
|
||||||
|
"bsnes-hd": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/bsnes_hd_beta_libretro.so",
|
||||||
|
"bsnes-mercury Accuracy": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/bsnes_mercury_accuracy_libretro.so",
|
||||||
|
"Beetle Supafaust": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_supafaust_libretro.so",
|
||||||
|
"Beetle PCE": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_pce_libretro.so"
|
||||||
|
}
|
||||||
|
|
||||||
|
exit_file="/tmp/retrodeck_steam_sync_exit"
|
||||||
|
rdhome=""
|
||||||
|
roms_folder=""
|
||||||
|
|
||||||
|
def create_shortcut_new_new(games):
|
||||||
|
ignore_game=rdhome+"/.sync/IGNORE.sh"
|
||||||
|
old_games=os.listdir(rdhome+"/.sync/").copy()
|
||||||
|
|
||||||
|
for game in games:
|
||||||
|
try:
|
||||||
|
i=old_games.index(game[0]+".sh")
|
||||||
|
old_games[i]=0
|
||||||
|
except ValueError:
|
||||||
|
print(game[0]+" is a new game!")
|
||||||
|
|
||||||
|
path=rdhome+"/.sync/"+game[0]+".sh"
|
||||||
|
print("Go to path: "+path)
|
||||||
|
|
||||||
|
fl=open(path,"w")
|
||||||
|
fl.write("#!/bin/bash\n\n")
|
||||||
|
fl.write('if test "$(whereis flatpak)" = "flatpak:"\n')
|
||||||
|
fl.write("then\n")
|
||||||
|
fl.write("flatpak-spawn --host "+game[1]+"\n")
|
||||||
|
fl.write("else\n")
|
||||||
|
fl.write(game[1]+"\n")
|
||||||
|
fl.write("fi\n")
|
||||||
|
fl.close()
|
||||||
|
|
||||||
|
st=os.stat(path)
|
||||||
|
os.chmod(path, st.st_mode | 0o0111)
|
||||||
|
|
||||||
|
print("Start removing")
|
||||||
|
print(old_games)
|
||||||
|
for game in old_games:
|
||||||
|
if game:
|
||||||
|
os.remove(rdhome+"/.sync/"+game)
|
||||||
|
|
||||||
|
dir=os.listdir(rdhome+"/.sync/")
|
||||||
|
if len(dir)==0:
|
||||||
|
print("No game found, removing all")
|
||||||
|
fl=open(ignore_game,"w")
|
||||||
|
fl.close()
|
||||||
|
os.system("/app/bin/zypak-wrapper /app/srm/steam-rom-manager remove")
|
||||||
|
os.remove(ignore_game)
|
||||||
|
else:
|
||||||
|
print("Adding the games")
|
||||||
|
os.system("/app/bin/zypak-wrapper /app/srm/steam-rom-manager add")
|
||||||
|
|
||||||
|
def addToSteam(systems):
|
||||||
|
games=[]
|
||||||
|
for system in systems:
|
||||||
|
print("Start parsing system: {}".format(system))
|
||||||
|
|
||||||
|
f=open(rdhome+"/ES-DE/gamelists/"+system+"/gamelist.xml","r")
|
||||||
|
f.readline()
|
||||||
|
parser=ET.XMLParser()
|
||||||
|
parser.feed(b'<root>')
|
||||||
|
parser.feed(f.read())
|
||||||
|
parser.feed(b'</root>')
|
||||||
|
root=parser.close()
|
||||||
|
f.close()
|
||||||
|
|
||||||
|
globalAltEmu=""
|
||||||
|
for subroot in root:
|
||||||
|
if subroot.tag=="alternativeEmulator":
|
||||||
|
for alt in subroot:
|
||||||
|
globalAltEmu=alt.text
|
||||||
|
else:
|
||||||
|
for game in subroot:
|
||||||
|
path=""
|
||||||
|
name=""
|
||||||
|
favorite=""
|
||||||
|
altemulator=globalAltEmu
|
||||||
|
for tag in game:
|
||||||
|
if tag.tag=="path":
|
||||||
|
path=tag.text
|
||||||
|
elif tag.tag=="name":
|
||||||
|
name=tag.text
|
||||||
|
elif tag.tag=="favorite":
|
||||||
|
favorite=tag.text
|
||||||
|
elif tag.tag=="altemulator":
|
||||||
|
altemulator=tag.text
|
||||||
|
|
||||||
|
if favorite=="true" and altemulator=="":
|
||||||
|
print("Find favorite game: {}".format(name))
|
||||||
|
games.append([name,command_list_default[system]+" '"+roms_folder+"/"+system+path[1:]+"'"])
|
||||||
|
elif favorite=="true":
|
||||||
|
print("Find favorite game with alternative emulator: {}, {}".format(name,altemulator))
|
||||||
|
if ("neogeocd" in system) and altemulator=="FinalBurn Neo":
|
||||||
|
games.append([name,alt_command_list[altemulator+" neogeocd"]+" '"+roms_folder+"/"+system+path[1:]+"'"])
|
||||||
|
print(alt_command_list[altemulator+" neogeocd"]+" '"+roms_folder+"/"+system+path[1:]+"'")
|
||||||
|
elif system=="pico8" and altemulator=="PICO-8 Splore (Standalone)":
|
||||||
|
games.append([name,alt_command_list[altemulator]])
|
||||||
|
print(alt_command_list[altemulator])
|
||||||
|
else:
|
||||||
|
games.append([name,alt_command_list[altemulator]+" '"+roms_folder+"/"+system+path[1:]+"'"])
|
||||||
|
print(alt_command_list[altemulator]+" '"+roms_folder+"/"+system+path[1:]+"'")
|
||||||
|
create_shortcut_new_new(games)
|
||||||
|
|
||||||
|
def start_config():
|
||||||
|
global rdhome
|
||||||
|
global roms_folder
|
||||||
|
global command_list_default
|
||||||
|
global alt_command_list
|
||||||
|
|
||||||
|
print("Open RetroDECK config file: {}".format(os.path.expanduser("~/.var/app/net.retrodeck.retrodeck/config/retrodeck/retrodeck.cfg")))
|
||||||
|
|
||||||
|
fl=open(os.path.expanduser("~/.var/app/net.retrodeck.retrodeck/config/retrodeck/retrodeck.cfg"),"r")
|
||||||
|
lines=fl.readlines()
|
||||||
|
for line in lines:
|
||||||
|
if "rdhome" in line:
|
||||||
|
rdhome=line[7:-1]
|
||||||
|
elif "roms_folder" in line:
|
||||||
|
roms_folder=line[12:-1]
|
||||||
|
fl.close()
|
||||||
|
|
||||||
|
command_list_default["pico8"]=command_list_default["pico8"].replace("{GAMEDIR}",roms_folder+"/pico8")
|
||||||
|
alt_command_list["PICO-8 Splore (Standalone)"]=alt_command_list["PICO-8 Splore (Standalone)"].replace("{GAMEDIR}",roms_folder+"/pico8")
|
||||||
|
|
||||||
|
srm_path=os.path.expanduser("~/.var/app/net.retrodeck.retrodeck/config/steam-rom-manager/userData/userConfigurations.json")
|
||||||
|
if not os.path.isfile(srm_path):
|
||||||
|
print("Steam ROM Manager configuration not initialized! Initializing now.")
|
||||||
|
resetfun(rdhome)
|
||||||
|
|
||||||
|
if not os.path.exists(rdhome+"/.sync/"):
|
||||||
|
os.makedirs(rdhome+"/.sync/")
|
||||||
|
|
||||||
|
if __name__=="__main__":
|
||||||
|
start_config()
|
||||||
|
addToSteam(os.listdir(rdhome+"/ES-DE/gamelists/"))
|
||||||
|
print("Finished!")
|
121
functions/steam_sync.sh
Normal file
|
@ -0,0 +1,121 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
|
||||||
|
# Add games to Steam function
|
||||||
|
add_to_steam() {
|
||||||
|
log "i" "Starting Steam Sync"
|
||||||
|
|
||||||
|
steamsync_folder="$rdhome/.sync"
|
||||||
|
create_dir $steamsync_folder
|
||||||
|
|
||||||
|
local srm_path="/var/config/steam-rom-manager/userData/userConfigurations.json"
|
||||||
|
if [ ! -f "$srm_path" ]; then
|
||||||
|
log "e" "Steam ROM Manager configuration not initialized! Initializing now."
|
||||||
|
prepare_component "reset" "steam-rom-manager"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Build the systems array from space-separated systems
|
||||||
|
local systems_string=$(jq -r '.system | keys[]' "$features" | paste -sd' ')
|
||||||
|
IFS=' ' read -r -a systems <<< "$systems_string" # TODO: do we need this line?
|
||||||
|
|
||||||
|
local games=()
|
||||||
|
|
||||||
|
for system in "${systems[@]}"; do
|
||||||
|
|
||||||
|
local gamelist="$rdhome/ES-DE/gamelists/$system/gamelist.xml"
|
||||||
|
|
||||||
|
if [ -f "$gamelist" ]; then
|
||||||
|
|
||||||
|
# Extract all <game> elements that are marked as favorite="true"
|
||||||
|
game_blocks=$(xmllint --recover --xpath '//game[favorite="true"]' "$gamelist" 2>/dev/null)
|
||||||
|
log d "Extracted favorite game blocks:\n\n$game_blocks\n\n"
|
||||||
|
|
||||||
|
# Split the game_blocks into an array, where each element is a full <game> block
|
||||||
|
IFS=$'\n' read -r -d '' -a game_array <<< "$(echo "$game_blocks" | xmllint --recover --format - | sed -n '/<game>/,/<\/game>/p' | tr '\n' ' ')"
|
||||||
|
|
||||||
|
# Iterate over each full <game> block in the array
|
||||||
|
for game_block in "${game_array[@]}"; do
|
||||||
|
log "d" "Processing game block:\n$game_block"
|
||||||
|
|
||||||
|
# Extract the game's name and path from the full game block
|
||||||
|
local name=$(echo "$game_block" | xmllint --xpath 'string(//game/name)' - 2>/dev/null)
|
||||||
|
local path=$(echo "$game_block" | xmllint --xpath 'string(//game/path)' - 2>/dev/null | sed 's|^\./||') # removing the ./
|
||||||
|
|
||||||
|
log "d" "Game name: $name"
|
||||||
|
log "d" "Game path: $path"
|
||||||
|
|
||||||
|
# Ensure the extracted name and path are valid
|
||||||
|
if [ -n "$name" ] && [ -n "$path" ]; then
|
||||||
|
# Check for an alternative emulator if it exists
|
||||||
|
# local emulator=$(echo "$game_block" | xmllint --xpath 'string(//game/altemulator)' - 2>/dev/null)
|
||||||
|
# if [ -z "$emulator" ]; then
|
||||||
|
# games+=("$name ${command_list_default[$system]} '$roms_folder/$system/$path'")
|
||||||
|
# else
|
||||||
|
# games+=("$name ${alt_command_list[$emulator]} '$roms_folder/$system/$path'")
|
||||||
|
# fi
|
||||||
|
log "d" "Steam Sync: found favorite game: $name"
|
||||||
|
else
|
||||||
|
log "w" "Steam Sync: failed to find valid name or path for favorite game"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Sanitize the game name for the filename: replace special characters with underscores
|
||||||
|
local sanitized_name=$(echo "$name" | sed -e 's/^A-Za-z0-9._-/ /g')
|
||||||
|
local sanitized_name=$(echo "$sanitized_name" | sed -e 's/:/ -/g')
|
||||||
|
local sanitized_name=$(echo "$sanitized_name" | sed -e 's/&/and/g')
|
||||||
|
local sanitized_name=$(echo "$sanitized_name" | sed -e 's%/%and%g')
|
||||||
|
local sanitized_name=$(echo "$sanitized_name" | sed -e 's/ / - /g')
|
||||||
|
local sanitized_name=$(echo "$sanitized_name" | sed -e 's/ / /g')
|
||||||
|
log d "File Path: $path"
|
||||||
|
log d "Game Name: $name"
|
||||||
|
|
||||||
|
# If the filename is too long, shorten it
|
||||||
|
if [ ${#sanitized_name} -gt 100 ]; then
|
||||||
|
sanitized_name=$(echo "$sanitized_name" | cut -c 1-100)
|
||||||
|
fi
|
||||||
|
|
||||||
|
log d "Sanitized Name: $sanitized_name"
|
||||||
|
|
||||||
|
local launcher="$steamsync_folder/${sanitized_name}.sh"
|
||||||
|
log d "Creating desktop file: $launcher"
|
||||||
|
|
||||||
|
# if [[ -v command_list_default[$system] ]]; then
|
||||||
|
# command="${command_list_default[$system]}"
|
||||||
|
# else
|
||||||
|
# log e "$system is not included in the commands array."
|
||||||
|
# continue
|
||||||
|
# fi
|
||||||
|
|
||||||
|
# Populate the .sync script with the correct command
|
||||||
|
# TODO: if there is any emulator defined in the xml we use that, else... how we can know which is the default one?
|
||||||
|
# TODO: if steam is flatpak the command wrapping will change in .desktop
|
||||||
|
local command="flatpak run net.retrodeck.retrodeck start -s $system '$roms_folder/$system/$path'"
|
||||||
|
# Create the launcher file using a heredoc - if you enable .desktp this remember to edit .desktop in SRM userConfigurations.json and the above launcher variable (and vice versa)
|
||||||
|
# cat <<EOF > "$launcher"
|
||||||
|
# [Desktop Entry]
|
||||||
|
# Version=1.0
|
||||||
|
# Name=$name
|
||||||
|
# Comment=$name via RetroDECK
|
||||||
|
# Exec=$command
|
||||||
|
# Icon=net.retrodeck.retrodeck
|
||||||
|
# Terminal=false
|
||||||
|
# Type=Application
|
||||||
|
# Categories=Game;Emulator;
|
||||||
|
# EOF
|
||||||
|
cat <<EOF > "$launcher"
|
||||||
|
#!/bin/bash
|
||||||
|
if [ test "$(whereis flatpak)" = "flatpak:" ]; then
|
||||||
|
flatpak-spawn --host $command
|
||||||
|
else
|
||||||
|
$command
|
||||||
|
fi
|
||||||
|
EOF
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
steam-rom-manager add
|
||||||
|
log i "Steam Sync: completed"
|
||||||
|
}
|
||||||
|
|
||||||
|
remove_from_steam() {
|
||||||
|
echo "TBD"
|
||||||
|
}
|
|
@ -2,6 +2,10 @@ app-id: net.retrodeck.retrodeck
|
||||||
runtime: org.kde.Platform
|
runtime: org.kde.Platform
|
||||||
runtime-version: "6.7"
|
runtime-version: "6.7"
|
||||||
sdk: org.kde.Sdk
|
sdk: org.kde.Sdk
|
||||||
|
base: org.electronjs.Electron2.BaseApp # Needed for Steam ROM Manager
|
||||||
|
base-version: "22.08"
|
||||||
|
sdk-extensions:
|
||||||
|
- org.freedesktop.Sdk.Extension.llvm18 # Needed for RPCS3
|
||||||
command: retrodeck.sh
|
command: retrodeck.sh
|
||||||
|
|
||||||
finish-args:
|
finish-args:
|
||||||
|
@ -27,7 +31,7 @@ finish-args:
|
||||||
- --env=SDL_VIDEO_WAYLAND_WMCLASS=net.retrodeck.retrodeck
|
- --env=SDL_VIDEO_WAYLAND_WMCLASS=net.retrodeck.retrodeck
|
||||||
# XEMU - Fixes issues with openSUSE systems, QEMU_AUDIO_DRV is defined as "pa" causing xemu to not launch
|
# XEMU - Fixes issues with openSUSE systems, QEMU_AUDIO_DRV is defined as "pa" causing xemu to not launch
|
||||||
- --unset-env=QEMU_AUDIO_DRV
|
- --unset-env=QEMU_AUDIO_DRV
|
||||||
# BoilR
|
# Steam ROM Manager
|
||||||
- --filesystem=xdg-data/Steam:rw #Steam (flatpak)
|
- --filesystem=xdg-data/Steam:rw #Steam (flatpak)
|
||||||
- --filesystem=~/.steam:rw # Steam (Non-flatpak)
|
- --filesystem=~/.steam:rw # Steam (Non-flatpak)
|
||||||
- --filesystem=~/.var/app/com.valvesoftware.Steam:rw # Steam (Flatpak)
|
- --filesystem=~/.var/app/com.valvesoftware.Steam:rw # Steam (Flatpak)
|
||||||
|
@ -46,6 +50,7 @@ cleanup:
|
||||||
- /bin/zstd*
|
- /bin/zstd*
|
||||||
- /lib/pkg-config
|
- /lib/pkg-config
|
||||||
- /share/doc
|
- /share/doc
|
||||||
|
- /share/gtk-doc # Steam ROM Manager
|
||||||
- /share/man
|
- /share/man
|
||||||
- /src
|
- /src
|
||||||
- '*.a'
|
- '*.a'
|
||||||
|
@ -143,6 +148,48 @@ modules:
|
||||||
- type: file
|
- type: file
|
||||||
url: https://github.com/stedolan/jq/releases/download/jq-1.6/jq-linux64
|
url: https://github.com/stedolan/jq/releases/download/jq-1.6/jq-linux64
|
||||||
sha256: af986793a515d500ab2d35f8d2aecd656e764504b789b66d7e1a0b727a124c44
|
sha256: af986793a515d500ab2d35f8d2aecd656e764504b789b66d7e1a0b727a124c44
|
||||||
|
|
||||||
|
# Steam ROM Manager - START
|
||||||
|
|
||||||
|
- name: zypak
|
||||||
|
sources:
|
||||||
|
- type: git
|
||||||
|
url: https://github.com/refi64/zypak
|
||||||
|
tag: v2022.03
|
||||||
|
commit: 8424c6bcf909ca2031ebc6537d324bb64772266e
|
||||||
|
|
||||||
|
- name: steam-rom-manager
|
||||||
|
buildsystem: simple
|
||||||
|
env:
|
||||||
|
IN_FLATPAK: 1
|
||||||
|
build-commands:
|
||||||
|
- install -D run.sh ${FLATPAK_DEST}/bin/steam-rom-manager
|
||||||
|
- cp /usr/bin/ar ${FLATPAK_DEST}/bin
|
||||||
|
- ar x srm.deb
|
||||||
|
- tar xf data.tar.xz
|
||||||
|
- mv "opt/Steam ROM Manager" "${FLATPAK_DEST}/srm"
|
||||||
|
- rm -rf "usr/share/icons/hicolor/1024x1024"
|
||||||
|
- cd usr; find share/icons/hicolor -type f -exec install -Dm644 "{}"
|
||||||
|
"${FLATPAK_DEST}/{}" \;
|
||||||
|
- rm -r srm.deb control.tar.* data.tar.xz debian-binary usr opt
|
||||||
|
sources:
|
||||||
|
- type: script
|
||||||
|
dest-filename: run.sh
|
||||||
|
commands:
|
||||||
|
- /app/bin/zypak-wrapper.sh /app/srm/steam-rom-manager "${@}"
|
||||||
|
- type: file
|
||||||
|
dest-filename: srm.deb
|
||||||
|
url: https://github.com/SteamGridDB/steam-rom-manager/releases/download/v2.4.19/steam-rom-manager_2.4.19_amd64.deb
|
||||||
|
sha256: aa4f121d50612801c30b9365e05cb92a3b4a9c402974fee2b88652de8d731b0e
|
||||||
|
x-checker-data:
|
||||||
|
type: json
|
||||||
|
url: https://api.github.com/repos/SteamGridDB/steam-rom-manager/releases/latest
|
||||||
|
url-query: >-
|
||||||
|
.assets[] | select(.name=="steam-rom-manager_" + $version +
|
||||||
|
"_amd64.deb") | .browser_download_url
|
||||||
|
version-query: .tag_name | sub("^v"; "")
|
||||||
|
|
||||||
|
# Steam ROM Manager - END
|
||||||
|
|
||||||
- name: yq
|
- name: yq
|
||||||
buildsystem: simple
|
buildsystem: simple
|
||||||
|
@ -542,6 +589,21 @@ modules:
|
||||||
url: https://github.com/RetroDECK/MAME/releases/latest/download/RetroDECK-MAME-Artifact.tar.gz
|
url: https://github.com/RetroDECK/MAME/releases/latest/download/RetroDECK-MAME-Artifact.tar.gz
|
||||||
sha256: RETRODECKMAMELATEST
|
sha256: RETRODECKMAMELATEST
|
||||||
|
|
||||||
|
# SHADPS4
|
||||||
|
|
||||||
|
- name: shadps4
|
||||||
|
buildsystem: simple
|
||||||
|
build-commands:
|
||||||
|
- chmod +x *.AppImage
|
||||||
|
- ./*.AppImage --appimage-extract
|
||||||
|
- mkdir -p "${FLATPAK_DEST}/retrodeck/tmplib" "${FLATPAK_DEST}/retrodeck/tmplib/debug"
|
||||||
|
- mv "squashfs-root/usr/lib/"* "${FLATPAK_DEST}/retrodeck/tmplib"
|
||||||
|
- cp -r squashfs-root/usr/* "${FLATPAK_DEST}/"
|
||||||
|
sources:
|
||||||
|
- type: archive
|
||||||
|
url: https://github.com/shadps4-emu/shadPS4/releases/latest/download/shadps4-linux-qt.zip
|
||||||
|
sha256: RETRODECKSHADPS4LATESTSTABLE
|
||||||
|
|
||||||
# ES-DE
|
# ES-DE
|
||||||
|
|
||||||
- name: ES-DE
|
- name: ES-DE
|
||||||
|
@ -554,8 +616,10 @@ modules:
|
||||||
- chmod +x "${FLATPAK_DEST}/bin/"*
|
- chmod +x "${FLATPAK_DEST}/bin/"*
|
||||||
sources:
|
sources:
|
||||||
- type: archive
|
- type: archive
|
||||||
url: https://github.com/RetroDECK/ES-DE/releases/latest/download/RetroDECK-ES-DE-Artifact.tar.gz
|
url: https://github.com/RetroDECK/ES-DE/releases/download/feat%2Fshadps4-200824.04/RetroDECK-ES-DE-Artifact.tar.gz
|
||||||
sha256: RETRODECKESDELATEST
|
sha256: 3aa0334b4542ca4ca36c15f8b583d3c0075a7a894d765cbb8da1670a5a1f637f
|
||||||
|
#url: https://github.com/RetroDECK/ES-DE/releases/latest/download/RetroDECK-ES-DE-Artifact.tar.gz
|
||||||
|
#sha256: RETRODECKESDELATEST
|
||||||
|
|
||||||
- name: retrodeck-theme
|
- name: retrodeck-theme
|
||||||
buildsystem: simple
|
buildsystem: simple
|
||||||
|
|
|
@ -18,7 +18,7 @@ for i in "$@"; do
|
||||||
case $i in
|
case $i in
|
||||||
-h*|--help*)
|
-h*|--help*)
|
||||||
echo "RetroDECK v""$version"
|
echo "RetroDECK v""$version"
|
||||||
echo -e "
|
echo "
|
||||||
Usage:
|
Usage:
|
||||||
flatpak run [FLATPAK-RUN-OPTION] net.retrodeck-retrodeck [ARGUMENTS]
|
flatpak run [FLATPAK-RUN-OPTION] net.retrodeck-retrodeck [ARGUMENTS]
|
||||||
|
|
||||||
|
@ -32,7 +32,7 @@ Arguments:
|
||||||
--reset-component <component> \t Reset one or more component or emulator configs to the default values
|
--reset-component <component> \t Reset one or more component or emulator configs to the default values
|
||||||
--reset-retrodeck \t Starts the initial RetroDECK installer (backup your data first!)
|
--reset-retrodeck \t Starts the initial RetroDECK installer (backup your data first!)
|
||||||
|
|
||||||
--run [-s <path>] [-e <path>] <path>\t Run a game from cli, if no system is defined it will deducted from the path.\n\t\t\t\t\t\t For example --run ~/retrodeck/roms/system/game.ext will be run with the system "system".\n\t\t\t\t\t\t Optionally -e (emulator) and -s (system) can be passed as arguments.
|
start [-s <path>] [-e <path>] <path>\t Start a game from cli, if no system is defined it will deducted from the path.\n\t\t\t\t\t\t For example flatpak run net.retrodeck.retrodeck start ~/retrodeck/roms/system/game.ext will be run with the system "system".\n\t\t\t\t\t\t Optionally -e (emulator) and -s (system) can be passed as arguments.
|
||||||
|
|
||||||
For flatpak run specific options please run: flatpak run -h
|
For flatpak run specific options please run: flatpak run -h
|
||||||
|
|
||||||
|
@ -44,8 +44,8 @@ https://retrodeck.net
|
||||||
echo "RetroDECK v$version"
|
echo "RetroDECK v$version"
|
||||||
exit
|
exit
|
||||||
;;
|
;;
|
||||||
--run*)
|
start*)
|
||||||
shift # Remove --run
|
shift # Remove "start"
|
||||||
run_game "$@"
|
run_game "$@"
|
||||||
exit
|
exit
|
||||||
;;
|
;;
|
||||||
|
@ -206,4 +206,3 @@ fi
|
||||||
|
|
||||||
# Normal Startup
|
# Normal Startup
|
||||||
start_retrodeck
|
start_retrodeck
|
||||||
quit_retrodeck
|
|
||||||
|
|
|
@ -156,6 +156,10 @@ configurator_welcome_dialog() {
|
||||||
configurator_about_retrodeck_dialog
|
configurator_about_retrodeck_dialog
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
"Sync with Steam" )
|
||||||
|
configurator_add_steam
|
||||||
|
;;
|
||||||
|
|
||||||
"Developer Options" )
|
"Developer Options" )
|
||||||
log i "Configurator: opening \"$choice\" menu"
|
log i "Configurator: opening \"$choice\" menu"
|
||||||
configurator_generic_dialog "RetroDECK Configurator - Developer Options" "The following features and options are potentially VERY DANGEROUS for your RetroDECK install!\n\nThey should be considered the bleeding-edge of upcoming RetroDECK features, and never used when you have important saves/states/roms that are not backed up!\n\nYOU HAVE BEEN WARNED!"
|
configurator_generic_dialog "RetroDECK Configurator - Developer Options" "The following features and options are potentially VERY DANGEROUS for your RetroDECK install!\n\nThey should be considered the bleeding-edge of upcoming RetroDECK features, and never used when you have important saves/states/roms that are not backed up!\n\nYOU HAVE BEEN WARNED!"
|
||||||
|
@ -1152,12 +1156,13 @@ configurator_reset_dialog() {
|
||||||
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --width=1200 --height=720 \
|
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --width=1200 --height=720 \
|
||||||
--text="Which component do you want to reset to default settings?" \
|
--text="Which component do you want to reset to default settings?" \
|
||||||
--column="Component" --column="Action" \
|
--column="Component" --column="Action" \
|
||||||
|
"Steam ROM Manager" "Reset SRM that manages the sync and scraping toward Steam library" \
|
||||||
"ES-DE" "Reset the ES-DE frontend" \ )
|
"ES-DE" "Reset the ES-DE frontend" \ )
|
||||||
# TODO: "GyroDSU" "Reset the gyroscope manager GyroDSU"
|
# TODO: "GyroDSU" "Reset the gyroscope manager GyroDSU"
|
||||||
|
|
||||||
case $component_to_reset in
|
case $component_to_reset in
|
||||||
|
|
||||||
"ES-DE" ) # TODO: GyroDSU
|
"Steam ROM Manager" | "ES-DE" ) # TODO: GyroDSU
|
||||||
if [[ $(configurator_reset_confirmation_dialog "$component_to_reset" "Are you sure you want to reset $component_to_reset to default settings?\n\nThis process cannot be undone.") == "true" ]]; then
|
if [[ $(configurator_reset_confirmation_dialog "$component_to_reset" "Are you sure you want to reset $component_to_reset to default settings?\n\nThis process cannot be undone.") == "true" ]]; then
|
||||||
prepare_component "reset" "$component_to_reset" "configurator"
|
prepare_component "reset" "$component_to_reset" "configurator"
|
||||||
configurator_process_complete_dialog "resetting $component_to_reset"
|
configurator_process_complete_dialog "resetting $component_to_reset"
|
||||||
|
@ -1250,6 +1255,48 @@ configurator_about_retrodeck_dialog() {
|
||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
|
||||||
|
configurator_add_steam() {
|
||||||
|
if [[ $(get_setting_value $rd_conf "steam_sync" retrodeck "options") == "true" ]]; then
|
||||||
|
zenity --question \
|
||||||
|
--no-wrap --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
|
||||||
|
--title "RetroDECK Configurator - RetroDECK Steam Syncronization" \
|
||||||
|
--text="Steam syncronization is currently enabled. Do you want to disable it?\n\nThe already added shortcut will not be removed.\n"
|
||||||
|
|
||||||
|
if [ $? == 0 ] # User clicked "Yes"
|
||||||
|
then
|
||||||
|
disable_steam_sync
|
||||||
|
else # User clicked "Cancel"
|
||||||
|
configurator_welcome_dialog
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
zenity --question \
|
||||||
|
--no-wrap --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
|
||||||
|
--title "RetroDECK Configurator - RetroDECK Steam Syncronization" \
|
||||||
|
--text="Steam syncronization is currently disabled. Do you want to enable it?\n\nAll the games marked as favorites will be syncronized with Steam ROM Manager.\nRemember to restart Steam each time to see the changes.\n"
|
||||||
|
|
||||||
|
if [ $? == 0 ]
|
||||||
|
then
|
||||||
|
enable_steam_sync
|
||||||
|
else
|
||||||
|
configurator_welcome_dialog
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
enable_steam_sync() {
|
||||||
|
set_setting_value $rd_conf "steam_sync" "true" retrodeck "options"
|
||||||
|
zenity --icon-name=net.retrodeck.retrodeck --info --no-wrap --ok-label="OK" \
|
||||||
|
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
|
||||||
|
--title "RetroDECK Configurator - RetroDECK Steam Syncronization" \
|
||||||
|
--text="Steam syncronization enabled."
|
||||||
|
configurator_welcome_dialog
|
||||||
|
}
|
||||||
|
|
||||||
|
disable_steam_sync() {
|
||||||
|
set_setting_value $rd_conf "steam_sync" "false" retrodeck "options"
|
||||||
|
configurator_welcome_dialog
|
||||||
|
}
|
||||||
|
|
||||||
configurator_version_history_dialog() {
|
configurator_version_history_dialog() {
|
||||||
local version_array=($(xml sel -t -v '//component/releases/release/@version' -n $rd_appdata))
|
local version_array=($(xml sel -t -v '//component/releases/release/@version' -n $rd_appdata))
|
||||||
local all_versions_list=()
|
local all_versions_list=()
|
||||||
|
|
|
@ -1,15 +1,12 @@
|
||||||
extends Control
|
extends Control
|
||||||
|
|
||||||
var rekku_state = false
|
|
||||||
|
|
||||||
func _input(event):
|
func _input(event):
|
||||||
if event.is_action_released("rekku_hide"):
|
if event.is_action_pressed("rekku_hide"):
|
||||||
#self.visible = !self.visible
|
self.visible = !self.visible
|
||||||
if rekku_state == false:
|
%SplitContainer.split_offset=-300
|
||||||
self.visible = true
|
|
||||||
rekku_state = true
|
if Input.is_action_pressed("back_button"):
|
||||||
%SplitContainer.split_offset=-300
|
%SplitContainer.split_offset=0
|
||||||
elif event.is_action_released("rekku_hide") and rekku_state == true:
|
$".".visible=false
|
||||||
rekku_state = false
|
|
||||||
self.visible = false
|
|
||||||
%SplitContainer.split_offset=0
|
|
||||||
|
|
|
@ -1,10 +1,6 @@
|
||||||
extends TabContainer
|
extends TabContainer
|
||||||
|
|
||||||
var icon_width: int = 32
|
var icon_width: int = 32
|
||||||
@onready var tcount: int = get_tab_count()-1
|
|
||||||
var l1_button_texture: Texture2D = load("res://assets/icons/kenney_input-prompts-pixel-16/Tiles/tile_0797.png")
|
|
||||||
var r1_button_texture: Texture2D = load("res://assets/icons/kenney_input-prompts-pixel-16/Tiles/tile_0798.png")
|
|
||||||
|
|
||||||
|
|
||||||
func _ready():
|
func _ready():
|
||||||
focusFirstFocusableChild() #grab focus on first element to enable controller focusing
|
focusFirstFocusableChild() #grab focus on first element to enable controller focusing
|
||||||
|
@ -12,50 +8,31 @@ func _ready():
|
||||||
%TabContainer.add_theme_icon_override("decrement_highlight",ResourceLoader.load("res://assets/icons/kenney_input-prompts-pixel-16/Tiles/tile_0763.png"))
|
%TabContainer.add_theme_icon_override("decrement_highlight",ResourceLoader.load("res://assets/icons/kenney_input-prompts-pixel-16/Tiles/tile_0763.png"))
|
||||||
%TabContainer.add_theme_icon_override("increment",ResourceLoader.load("res://assets/icons/kenney_input-prompts-pixel-16/Tiles/tile_0798.png"))
|
%TabContainer.add_theme_icon_override("increment",ResourceLoader.load("res://assets/icons/kenney_input-prompts-pixel-16/Tiles/tile_0798.png"))
|
||||||
%TabContainer.add_theme_icon_override("increment_highlight",ResourceLoader.load("res://assets/icons/kenney_input-prompts-pixel-16/Tiles/tile_0764.png"))
|
%TabContainer.add_theme_icon_override("increment_highlight",ResourceLoader.load("res://assets/icons/kenney_input-prompts-pixel-16/Tiles/tile_0764.png"))
|
||||||
set_tab_icon(0, ResourceLoader.load("res://assets/icons/pixelitos/128/map-globe.png"))
|
set_tab_icon(0, ResourceLoader.load("res://assets/icons/pixelitos/128/applications-graphics.png"))
|
||||||
set_tab_icon_max_width(0,icon_width)
|
set_tab_icon_max_width(0,icon_width)
|
||||||
set_tab_icon(1, ResourceLoader.load("res://assets/icons/pixelitos/128/preferences-system-windows.png"))
|
set_tab_icon(1, ResourceLoader.load("res://assets/icons/pixelitos/128/preferences-system-windows.png"))
|
||||||
set_tab_icon_max_width(1,icon_width)
|
set_tab_icon_max_width(1,icon_width)
|
||||||
set_tab_icon(2, ResourceLoader.load("res://assets/icons/pixelitos/128/utilities-system-monitor.png"))
|
set_tab_icon(2, ResourceLoader.load("res://assets/icons/pixelitos/128/utilities-tweak-tool.png"))
|
||||||
set_tab_icon_max_width(2,icon_width)
|
set_tab_icon_max_width(2,icon_width)
|
||||||
set_tab_icon(3, ResourceLoader.load("res://assets/icons/pixelitos/128/preferences-system-session-services.png"))
|
set_tab_icon(3, ResourceLoader.load("res://assets/icons/pixelitos/128/network-workgroup.png"))
|
||||||
set_tab_icon_max_width(3,icon_width)
|
set_tab_icon_max_width(3,icon_width)
|
||||||
set_tab_icon(4, ResourceLoader.load("res://assets/icons/pixelitos/128/help-about.png"))
|
set_tab_icon(4, ResourceLoader.load("res://assets/icons/pixelitos/128/utilities-system-monitor.png"))
|
||||||
set_tab_icon_max_width(4,icon_width)
|
set_tab_icon_max_width(4,icon_width)
|
||||||
|
set_tab_icon(5, ResourceLoader.load("res://assets/icons/pixelitos/128/preferences-system-session-services.png"))
|
||||||
|
set_tab_icon_max_width(5,icon_width)
|
||||||
|
set_tab_icon(6, ResourceLoader.load("res://assets/icons/pixelitos/128/help-about.png"))
|
||||||
|
set_tab_icon_max_width(6,icon_width)
|
||||||
#%TK_GRAPHICS.name="BOB"
|
#%TK_GRAPHICS.name="BOB"
|
||||||
connect_focus_signals(self)
|
#
|
||||||
|
|
||||||
func connect_focus_signals(node):
|
|
||||||
for child in node.get_children():
|
|
||||||
if child is Button:
|
|
||||||
child.focus_entered.connect(_on_Button_focus_entered.bind(child))
|
|
||||||
elif child is Control:
|
|
||||||
connect_focus_signals(child)
|
|
||||||
|
|
||||||
func _on_Button_focus_entered(button: Button):
|
|
||||||
if button:
|
|
||||||
%AudioStreamPlayer2D.play()
|
|
||||||
|
|
||||||
func _input(event):
|
func _input(event):
|
||||||
if (event.is_action_pressed("next_tab")):
|
if (event.is_action_pressed("next_tab")):
|
||||||
%r1_button.texture_normal = %r1_button.texture_pressed
|
self.select_next_available()
|
||||||
if current_tab == tcount:
|
focusFirstFocusableChild()
|
||||||
current_tab = 0
|
|
||||||
else:
|
|
||||||
self.select_next_available()
|
|
||||||
focusFirstFocusableChild()
|
|
||||||
else:
|
|
||||||
%r1_button.texture_normal = r1_button_texture
|
|
||||||
if (event.is_action_pressed("previous_tab")):
|
if (event.is_action_pressed("previous_tab")):
|
||||||
%l1_button.texture_normal = %l1_button.texture_pressed
|
self.select_previous_available()
|
||||||
if current_tab == 0:
|
focusFirstFocusableChild()
|
||||||
current_tab = tcount
|
|
||||||
else:
|
|
||||||
self.select_previous_available()
|
|
||||||
focusFirstFocusableChild()
|
|
||||||
else:
|
|
||||||
%l1_button.texture_normal = l1_button_texture
|
|
||||||
|
|
||||||
func focusFirstFocusableChild():
|
func focusFirstFocusableChild():
|
||||||
var children = findElements(get_current_tab_control(), "Control")
|
var children = findElements(get_current_tab_control(), "Control")
|
||||||
for n: Control in children:
|
for n: Control in children:
|
||||||
|
|
Before Width: | Height: | Size: 382 KiB |
|
@ -1,34 +0,0 @@
|
||||||
[remap]
|
|
||||||
|
|
||||||
importer="texture"
|
|
||||||
type="CompressedTexture2D"
|
|
||||||
uid="uid://l3bredurb11m"
|
|
||||||
path="res://.godot/imported/rekku_base.png-ba655e0b7ca5167750e3c33bad52b118.ctex"
|
|
||||||
metadata={
|
|
||||||
"vram_texture": false
|
|
||||||
}
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://assets/graphics/rekku2/rekku_base.png"
|
|
||||||
dest_files=["res://.godot/imported/rekku_base.png-ba655e0b7ca5167750e3c33bad52b118.ctex"]
|
|
||||||
|
|
||||||
[params]
|
|
||||||
|
|
||||||
compress/mode=0
|
|
||||||
compress/high_quality=false
|
|
||||||
compress/lossy_quality=0.7
|
|
||||||
compress/hdr_compression=1
|
|
||||||
compress/normal_map=0
|
|
||||||
compress/channel_pack=0
|
|
||||||
mipmaps/generate=false
|
|
||||||
mipmaps/limit=-1
|
|
||||||
roughness/mode=0
|
|
||||||
roughness/src_normal=""
|
|
||||||
process/fix_alpha_border=true
|
|
||||||
process/premult_alpha=false
|
|
||||||
process/normal_map_invert_y=false
|
|
||||||
process/hdr_as_srgb=false
|
|
||||||
process/hdr_clamp_exposure=false
|
|
||||||
process/size_limit=0
|
|
||||||
detect_3d/compress_to=1
|
|
Before Width: | Height: | Size: 7.1 KiB |
|
@ -1,34 +0,0 @@
|
||||||
[remap]
|
|
||||||
|
|
||||||
importer="texture"
|
|
||||||
type="CompressedTexture2D"
|
|
||||||
uid="uid://cvlncuql8igrm"
|
|
||||||
path="res://.godot/imported/rekku_eye_1.png-bdb05770012bbf8805a308be308f2f11.ctex"
|
|
||||||
metadata={
|
|
||||||
"vram_texture": false
|
|
||||||
}
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://assets/graphics/rekku2/rekku_eye_1.png"
|
|
||||||
dest_files=["res://.godot/imported/rekku_eye_1.png-bdb05770012bbf8805a308be308f2f11.ctex"]
|
|
||||||
|
|
||||||
[params]
|
|
||||||
|
|
||||||
compress/mode=0
|
|
||||||
compress/high_quality=false
|
|
||||||
compress/lossy_quality=0.7
|
|
||||||
compress/hdr_compression=1
|
|
||||||
compress/normal_map=0
|
|
||||||
compress/channel_pack=0
|
|
||||||
mipmaps/generate=false
|
|
||||||
mipmaps/limit=-1
|
|
||||||
roughness/mode=0
|
|
||||||
roughness/src_normal=""
|
|
||||||
process/fix_alpha_border=true
|
|
||||||
process/premult_alpha=false
|
|
||||||
process/normal_map_invert_y=false
|
|
||||||
process/hdr_as_srgb=false
|
|
||||||
process/hdr_clamp_exposure=false
|
|
||||||
process/size_limit=0
|
|
||||||
detect_3d/compress_to=1
|
|
Before Width: | Height: | Size: 7 KiB |
|
@ -1,34 +0,0 @@
|
||||||
[remap]
|
|
||||||
|
|
||||||
importer="texture"
|
|
||||||
type="CompressedTexture2D"
|
|
||||||
uid="uid://bdrdu4nddkqjn"
|
|
||||||
path="res://.godot/imported/rekku_eye_2.png-470f058d31522c2d3d622d57668ea739.ctex"
|
|
||||||
metadata={
|
|
||||||
"vram_texture": false
|
|
||||||
}
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://assets/graphics/rekku2/rekku_eye_2.png"
|
|
||||||
dest_files=["res://.godot/imported/rekku_eye_2.png-470f058d31522c2d3d622d57668ea739.ctex"]
|
|
||||||
|
|
||||||
[params]
|
|
||||||
|
|
||||||
compress/mode=0
|
|
||||||
compress/high_quality=false
|
|
||||||
compress/lossy_quality=0.7
|
|
||||||
compress/hdr_compression=1
|
|
||||||
compress/normal_map=0
|
|
||||||
compress/channel_pack=0
|
|
||||||
mipmaps/generate=false
|
|
||||||
mipmaps/limit=-1
|
|
||||||
roughness/mode=0
|
|
||||||
roughness/src_normal=""
|
|
||||||
process/fix_alpha_border=true
|
|
||||||
process/premult_alpha=false
|
|
||||||
process/normal_map_invert_y=false
|
|
||||||
process/hdr_as_srgb=false
|
|
||||||
process/hdr_clamp_exposure=false
|
|
||||||
process/size_limit=0
|
|
||||||
detect_3d/compress_to=1
|
|
Before Width: | Height: | Size: 4.9 KiB |
|
@ -1,34 +0,0 @@
|
||||||
[remap]
|
|
||||||
|
|
||||||
importer="texture"
|
|
||||||
type="CompressedTexture2D"
|
|
||||||
uid="uid://cb2hwhaq036mu"
|
|
||||||
path="res://.godot/imported/rekku_mouth_a.png-279dcb9a384b18dcc5f0e9b1fce89965.ctex"
|
|
||||||
metadata={
|
|
||||||
"vram_texture": false
|
|
||||||
}
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://assets/graphics/rekku2/rekku_mouth_a.png"
|
|
||||||
dest_files=["res://.godot/imported/rekku_mouth_a.png-279dcb9a384b18dcc5f0e9b1fce89965.ctex"]
|
|
||||||
|
|
||||||
[params]
|
|
||||||
|
|
||||||
compress/mode=0
|
|
||||||
compress/high_quality=false
|
|
||||||
compress/lossy_quality=0.7
|
|
||||||
compress/hdr_compression=1
|
|
||||||
compress/normal_map=0
|
|
||||||
compress/channel_pack=0
|
|
||||||
mipmaps/generate=false
|
|
||||||
mipmaps/limit=-1
|
|
||||||
roughness/mode=0
|
|
||||||
roughness/src_normal=""
|
|
||||||
process/fix_alpha_border=true
|
|
||||||
process/premult_alpha=false
|
|
||||||
process/normal_map_invert_y=false
|
|
||||||
process/hdr_as_srgb=false
|
|
||||||
process/hdr_clamp_exposure=false
|
|
||||||
process/size_limit=0
|
|
||||||
detect_3d/compress_to=1
|
|
Before Width: | Height: | Size: 5.1 KiB |
|
@ -1,34 +0,0 @@
|
||||||
[remap]
|
|
||||||
|
|
||||||
importer="texture"
|
|
||||||
type="CompressedTexture2D"
|
|
||||||
uid="uid://dl2fd66fvn1an"
|
|
||||||
path="res://.godot/imported/rekku_mouth_i.png-66f20d9dcec19841a364e26d8f38c17a.ctex"
|
|
||||||
metadata={
|
|
||||||
"vram_texture": false
|
|
||||||
}
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://assets/graphics/rekku2/rekku_mouth_i.png"
|
|
||||||
dest_files=["res://.godot/imported/rekku_mouth_i.png-66f20d9dcec19841a364e26d8f38c17a.ctex"]
|
|
||||||
|
|
||||||
[params]
|
|
||||||
|
|
||||||
compress/mode=0
|
|
||||||
compress/high_quality=false
|
|
||||||
compress/lossy_quality=0.7
|
|
||||||
compress/hdr_compression=1
|
|
||||||
compress/normal_map=0
|
|
||||||
compress/channel_pack=0
|
|
||||||
mipmaps/generate=false
|
|
||||||
mipmaps/limit=-1
|
|
||||||
roughness/mode=0
|
|
||||||
roughness/src_normal=""
|
|
||||||
process/fix_alpha_border=true
|
|
||||||
process/premult_alpha=false
|
|
||||||
process/normal_map_invert_y=false
|
|
||||||
process/hdr_as_srgb=false
|
|
||||||
process/hdr_clamp_exposure=false
|
|
||||||
process/size_limit=0
|
|
||||||
detect_3d/compress_to=1
|
|
Before Width: | Height: | Size: 5 KiB |
|
@ -1,34 +0,0 @@
|
||||||
[remap]
|
|
||||||
|
|
||||||
importer="texture"
|
|
||||||
type="CompressedTexture2D"
|
|
||||||
uid="uid://3ktnkmuecxea"
|
|
||||||
path="res://.godot/imported/rekku_mouth_m.png-f85c73bab4824d3102d50150c4e5375e.ctex"
|
|
||||||
metadata={
|
|
||||||
"vram_texture": false
|
|
||||||
}
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://assets/graphics/rekku2/rekku_mouth_m.png"
|
|
||||||
dest_files=["res://.godot/imported/rekku_mouth_m.png-f85c73bab4824d3102d50150c4e5375e.ctex"]
|
|
||||||
|
|
||||||
[params]
|
|
||||||
|
|
||||||
compress/mode=0
|
|
||||||
compress/high_quality=false
|
|
||||||
compress/lossy_quality=0.7
|
|
||||||
compress/hdr_compression=1
|
|
||||||
compress/normal_map=0
|
|
||||||
compress/channel_pack=0
|
|
||||||
mipmaps/generate=false
|
|
||||||
mipmaps/limit=-1
|
|
||||||
roughness/mode=0
|
|
||||||
roughness/src_normal=""
|
|
||||||
process/fix_alpha_border=true
|
|
||||||
process/premult_alpha=false
|
|
||||||
process/normal_map_invert_y=false
|
|
||||||
process/hdr_as_srgb=false
|
|
||||||
process/hdr_clamp_exposure=false
|
|
||||||
process/size_limit=0
|
|
||||||
detect_3d/compress_to=1
|
|
Before Width: | Height: | Size: 5.1 KiB |
|
@ -1,34 +0,0 @@
|
||||||
[remap]
|
|
||||||
|
|
||||||
importer="texture"
|
|
||||||
type="CompressedTexture2D"
|
|
||||||
uid="uid://d08ngewjvxkmn"
|
|
||||||
path="res://.godot/imported/rekku_mouth_o.png-72bff84aecbb9047648fb98563492453.ctex"
|
|
||||||
metadata={
|
|
||||||
"vram_texture": false
|
|
||||||
}
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://assets/graphics/rekku2/rekku_mouth_o.png"
|
|
||||||
dest_files=["res://.godot/imported/rekku_mouth_o.png-72bff84aecbb9047648fb98563492453.ctex"]
|
|
||||||
|
|
||||||
[params]
|
|
||||||
|
|
||||||
compress/mode=0
|
|
||||||
compress/high_quality=false
|
|
||||||
compress/lossy_quality=0.7
|
|
||||||
compress/hdr_compression=1
|
|
||||||
compress/normal_map=0
|
|
||||||
compress/channel_pack=0
|
|
||||||
mipmaps/generate=false
|
|
||||||
mipmaps/limit=-1
|
|
||||||
roughness/mode=0
|
|
||||||
roughness/src_normal=""
|
|
||||||
process/fix_alpha_border=true
|
|
||||||
process/premult_alpha=false
|
|
||||||
process/normal_map_invert_y=false
|
|
||||||
process/hdr_as_srgb=false
|
|
||||||
process/hdr_clamp_exposure=false
|
|
||||||
process/size_limit=0
|
|
||||||
detect_3d/compress_to=1
|
|
Before Width: | Height: | Size: 4.8 KiB |
|
@ -1,34 +0,0 @@
|
||||||
[remap]
|
|
||||||
|
|
||||||
importer="texture"
|
|
||||||
type="CompressedTexture2D"
|
|
||||||
uid="uid://dieva7tuxjrvy"
|
|
||||||
path="res://.godot/imported/rekku_nomouth.png-6aea5248544dd97243fc5c179e0e2d58.ctex"
|
|
||||||
metadata={
|
|
||||||
"vram_texture": false
|
|
||||||
}
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://assets/graphics/rekku2/rekku_nomouth.png"
|
|
||||||
dest_files=["res://.godot/imported/rekku_nomouth.png-6aea5248544dd97243fc5c179e0e2d58.ctex"]
|
|
||||||
|
|
||||||
[params]
|
|
||||||
|
|
||||||
compress/mode=0
|
|
||||||
compress/high_quality=false
|
|
||||||
compress/lossy_quality=0.7
|
|
||||||
compress/hdr_compression=1
|
|
||||||
compress/normal_map=0
|
|
||||||
compress/channel_pack=0
|
|
||||||
mipmaps/generate=false
|
|
||||||
mipmaps/limit=-1
|
|
||||||
roughness/mode=0
|
|
||||||
roughness/src_normal=""
|
|
||||||
process/fix_alpha_border=true
|
|
||||||
process/premult_alpha=false
|
|
||||||
process/normal_map_invert_y=false
|
|
||||||
process/hdr_as_srgb=false
|
|
||||||
process/hdr_clamp_exposure=false
|
|
||||||
process/size_limit=0
|
|
||||||
detect_3d/compress_to=1
|
|
Before Width: | Height: | Size: 509 B |
|
@ -1,34 +0,0 @@
|
||||||
[remap]
|
|
||||||
|
|
||||||
importer="texture"
|
|
||||||
type="CompressedTexture2D"
|
|
||||||
uid="uid://dhf620jyq75t1"
|
|
||||||
path="res://.godot/imported/es-de.png-7133c76b0fc370d6d2c311241df36cf6.ctex"
|
|
||||||
metadata={
|
|
||||||
"vram_texture": false
|
|
||||||
}
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://assets/icons/pixelitos/128/es-de.png"
|
|
||||||
dest_files=["res://.godot/imported/es-de.png-7133c76b0fc370d6d2c311241df36cf6.ctex"]
|
|
||||||
|
|
||||||
[params]
|
|
||||||
|
|
||||||
compress/mode=0
|
|
||||||
compress/high_quality=false
|
|
||||||
compress/lossy_quality=0.7
|
|
||||||
compress/hdr_compression=1
|
|
||||||
compress/normal_map=0
|
|
||||||
compress/channel_pack=0
|
|
||||||
mipmaps/generate=false
|
|
||||||
mipmaps/limit=-1
|
|
||||||
roughness/mode=0
|
|
||||||
roughness/src_normal=""
|
|
||||||
process/fix_alpha_border=true
|
|
||||||
process/premult_alpha=false
|
|
||||||
process/normal_map_invert_y=false
|
|
||||||
process/hdr_as_srgb=false
|
|
||||||
process/hdr_clamp_exposure=false
|
|
||||||
process/size_limit=0
|
|
||||||
detect_3d/compress_to=1
|
|
Before Width: | Height: | Size: 675 B |
|
@ -1,34 +0,0 @@
|
||||||
[remap]
|
|
||||||
|
|
||||||
importer="texture"
|
|
||||||
type="CompressedTexture2D"
|
|
||||||
uid="uid://ctm3f56t7jhiw"
|
|
||||||
path="res://.godot/imported/flycast.png-454d63296971d85691881883d8c379e3.ctex"
|
|
||||||
metadata={
|
|
||||||
"vram_texture": false
|
|
||||||
}
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://assets/icons/pixelitos/128/flycast.png"
|
|
||||||
dest_files=["res://.godot/imported/flycast.png-454d63296971d85691881883d8c379e3.ctex"]
|
|
||||||
|
|
||||||
[params]
|
|
||||||
|
|
||||||
compress/mode=0
|
|
||||||
compress/high_quality=false
|
|
||||||
compress/lossy_quality=0.7
|
|
||||||
compress/hdr_compression=1
|
|
||||||
compress/normal_map=0
|
|
||||||
compress/channel_pack=0
|
|
||||||
mipmaps/generate=false
|
|
||||||
mipmaps/limit=-1
|
|
||||||
roughness/mode=0
|
|
||||||
roughness/src_normal=""
|
|
||||||
process/fix_alpha_border=true
|
|
||||||
process/premult_alpha=false
|
|
||||||
process/normal_map_invert_y=false
|
|
||||||
process/hdr_as_srgb=false
|
|
||||||
process/hdr_clamp_exposure=false
|
|
||||||
process/size_limit=0
|
|
||||||
detect_3d/compress_to=1
|
|
Before Width: | Height: | Size: 580 B |
|
@ -1,34 +0,0 @@
|
||||||
[remap]
|
|
||||||
|
|
||||||
importer="texture"
|
|
||||||
type="CompressedTexture2D"
|
|
||||||
uid="uid://t4bq3t2l0rja"
|
|
||||||
path="res://.godot/imported/fuse.png-798b47a8862532036e29b84ce0746e43.ctex"
|
|
||||||
metadata={
|
|
||||||
"vram_texture": false
|
|
||||||
}
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://assets/icons/pixelitos/128/fuse.png"
|
|
||||||
dest_files=["res://.godot/imported/fuse.png-798b47a8862532036e29b84ce0746e43.ctex"]
|
|
||||||
|
|
||||||
[params]
|
|
||||||
|
|
||||||
compress/mode=0
|
|
||||||
compress/high_quality=false
|
|
||||||
compress/lossy_quality=0.7
|
|
||||||
compress/hdr_compression=1
|
|
||||||
compress/normal_map=0
|
|
||||||
compress/channel_pack=0
|
|
||||||
mipmaps/generate=false
|
|
||||||
mipmaps/limit=-1
|
|
||||||
roughness/mode=0
|
|
||||||
roughness/src_normal=""
|
|
||||||
process/fix_alpha_border=true
|
|
||||||
process/premult_alpha=false
|
|
||||||
process/normal_map_invert_y=false
|
|
||||||
process/hdr_as_srgb=false
|
|
||||||
process/hdr_clamp_exposure=false
|
|
||||||
process/size_limit=0
|
|
||||||
detect_3d/compress_to=1
|
|
Before Width: | Height: | Size: 823 B |
|
@ -1,34 +0,0 @@
|
||||||
[remap]
|
|
||||||
|
|
||||||
importer="texture"
|
|
||||||
type="CompressedTexture2D"
|
|
||||||
uid="uid://bjxqyxpxb8h8q"
|
|
||||||
path="res://.godot/imported/lime3ds.png-46636e55aca4b1efb87cc2bb6ef805bd.ctex"
|
|
||||||
metadata={
|
|
||||||
"vram_texture": false
|
|
||||||
}
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://assets/icons/pixelitos/128/lime3ds.png"
|
|
||||||
dest_files=["res://.godot/imported/lime3ds.png-46636e55aca4b1efb87cc2bb6ef805bd.ctex"]
|
|
||||||
|
|
||||||
[params]
|
|
||||||
|
|
||||||
compress/mode=0
|
|
||||||
compress/high_quality=false
|
|
||||||
compress/lossy_quality=0.7
|
|
||||||
compress/hdr_compression=1
|
|
||||||
compress/normal_map=0
|
|
||||||
compress/channel_pack=0
|
|
||||||
mipmaps/generate=false
|
|
||||||
mipmaps/limit=-1
|
|
||||||
roughness/mode=0
|
|
||||||
roughness/src_normal=""
|
|
||||||
process/fix_alpha_border=true
|
|
||||||
process/premult_alpha=false
|
|
||||||
process/normal_map_invert_y=false
|
|
||||||
process/hdr_as_srgb=false
|
|
||||||
process/hdr_clamp_exposure=false
|
|
||||||
process/size_limit=0
|
|
||||||
detect_3d/compress_to=1
|
|
Before Width: | Height: | Size: 497 B |
|
@ -1,34 +0,0 @@
|
||||||
[remap]
|
|
||||||
|
|
||||||
importer="texture"
|
|
||||||
type="CompressedTexture2D"
|
|
||||||
uid="uid://de3s3tkxffqk0"
|
|
||||||
path="res://.godot/imported/nestopia.png-e3a5ed0832cb977733e851f186fe9167.ctex"
|
|
||||||
metadata={
|
|
||||||
"vram_texture": false
|
|
||||||
}
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://assets/icons/pixelitos/128/nestopia.png"
|
|
||||||
dest_files=["res://.godot/imported/nestopia.png-e3a5ed0832cb977733e851f186fe9167.ctex"]
|
|
||||||
|
|
||||||
[params]
|
|
||||||
|
|
||||||
compress/mode=0
|
|
||||||
compress/high_quality=false
|
|
||||||
compress/lossy_quality=0.7
|
|
||||||
compress/hdr_compression=1
|
|
||||||
compress/normal_map=0
|
|
||||||
compress/channel_pack=0
|
|
||||||
mipmaps/generate=false
|
|
||||||
mipmaps/limit=-1
|
|
||||||
roughness/mode=0
|
|
||||||
roughness/src_normal=""
|
|
||||||
process/fix_alpha_border=true
|
|
||||||
process/premult_alpha=false
|
|
||||||
process/normal_map_invert_y=false
|
|
||||||
process/hdr_as_srgb=false
|
|
||||||
process/hdr_clamp_exposure=false
|
|
||||||
process/size_limit=0
|
|
||||||
detect_3d/compress_to=1
|
|
Before Width: | Height: | Size: 669 B |
|
@ -1,34 +0,0 @@
|
||||||
[remap]
|
|
||||||
|
|
||||||
importer="texture"
|
|
||||||
type="CompressedTexture2D"
|
|
||||||
uid="uid://f8c6tobon13p"
|
|
||||||
path="res://.godot/imported/portal2.png-8c359b0df7fa9dc3dad992debc6f16c3.ctex"
|
|
||||||
metadata={
|
|
||||||
"vram_texture": false
|
|
||||||
}
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://assets/icons/pixelitos/128/portal2.png"
|
|
||||||
dest_files=["res://.godot/imported/portal2.png-8c359b0df7fa9dc3dad992debc6f16c3.ctex"]
|
|
||||||
|
|
||||||
[params]
|
|
||||||
|
|
||||||
compress/mode=0
|
|
||||||
compress/high_quality=false
|
|
||||||
compress/lossy_quality=0.7
|
|
||||||
compress/hdr_compression=1
|
|
||||||
compress/normal_map=0
|
|
||||||
compress/channel_pack=0
|
|
||||||
mipmaps/generate=false
|
|
||||||
mipmaps/limit=-1
|
|
||||||
roughness/mode=0
|
|
||||||
roughness/src_normal=""
|
|
||||||
process/fix_alpha_border=true
|
|
||||||
process/premult_alpha=false
|
|
||||||
process/normal_map_invert_y=false
|
|
||||||
process/hdr_as_srgb=false
|
|
||||||
process/hdr_clamp_exposure=false
|
|
||||||
process/size_limit=0
|
|
||||||
detect_3d/compress_to=1
|
|
|
@ -1 +0,0 @@
|
||||||
portal2.png
|
|
Before Width: | Height: | Size: 684 B |
|
@ -1,34 +0,0 @@
|
||||||
[remap]
|
|
||||||
|
|
||||||
importer="texture"
|
|
||||||
type="CompressedTexture2D"
|
|
||||||
uid="uid://cyqdlugy5lts5"
|
|
||||||
path="res://.godot/imported/snes9x.png-985444d2225cee74be2bbfe4fd683dbe.ctex"
|
|
||||||
metadata={
|
|
||||||
"vram_texture": false
|
|
||||||
}
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://assets/icons/pixelitos/128/snes9x.png"
|
|
||||||
dest_files=["res://.godot/imported/snes9x.png-985444d2225cee74be2bbfe4fd683dbe.ctex"]
|
|
||||||
|
|
||||||
[params]
|
|
||||||
|
|
||||||
compress/mode=0
|
|
||||||
compress/high_quality=false
|
|
||||||
compress/lossy_quality=0.7
|
|
||||||
compress/hdr_compression=1
|
|
||||||
compress/normal_map=0
|
|
||||||
compress/channel_pack=0
|
|
||||||
mipmaps/generate=false
|
|
||||||
mipmaps/limit=-1
|
|
||||||
roughness/mode=0
|
|
||||||
roughness/src_normal=""
|
|
||||||
process/fix_alpha_border=true
|
|
||||||
process/premult_alpha=false
|
|
||||||
process/normal_map_invert_y=false
|
|
||||||
process/hdr_as_srgb=false
|
|
||||||
process/hdr_clamp_exposure=false
|
|
||||||
process/size_limit=0
|
|
||||||
detect_3d/compress_to=1
|
|
|
@ -1 +0,0 @@
|
||||||
portal2.png
|
|
|
@ -1,34 +0,0 @@
|
||||||
[remap]
|
|
||||||
|
|
||||||
importer="texture"
|
|
||||||
type="CompressedTexture2D"
|
|
||||||
uid="uid://ck226cpy48rw"
|
|
||||||
path="res://.godot/imported/steam_icon_620.png-7a9e73f3c8c9a5c04b15bb9b88f1fab3.ctex"
|
|
||||||
metadata={
|
|
||||||
"vram_texture": false
|
|
||||||
}
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://assets/icons/pixelitos/128/steam_icon_620.png"
|
|
||||||
dest_files=["res://.godot/imported/steam_icon_620.png-7a9e73f3c8c9a5c04b15bb9b88f1fab3.ctex"]
|
|
||||||
|
|
||||||
[params]
|
|
||||||
|
|
||||||
compress/mode=0
|
|
||||||
compress/high_quality=false
|
|
||||||
compress/lossy_quality=0.7
|
|
||||||
compress/hdr_compression=1
|
|
||||||
compress/normal_map=0
|
|
||||||
compress/channel_pack=0
|
|
||||||
mipmaps/generate=false
|
|
||||||
mipmaps/limit=-1
|
|
||||||
roughness/mode=0
|
|
||||||
roughness/src_normal=""
|
|
||||||
process/fix_alpha_border=true
|
|
||||||
process/premult_alpha=false
|
|
||||||
process/normal_map_invert_y=false
|
|
||||||
process/hdr_as_srgb=false
|
|
||||||
process/hdr_clamp_exposure=false
|
|
||||||
process/size_limit=0
|
|
||||||
detect_3d/compress_to=1
|
|
Before Width: | Height: | Size: 526 B |
|
@ -1,34 +0,0 @@
|
||||||
[remap]
|
|
||||||
|
|
||||||
importer="texture"
|
|
||||||
type="CompressedTexture2D"
|
|
||||||
uid="uid://2fp4cq1l0843"
|
|
||||||
path="res://.godot/imported/stella.png-e81484435d2c9330faaeb6dd19649c74.ctex"
|
|
||||||
metadata={
|
|
||||||
"vram_texture": false
|
|
||||||
}
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://assets/icons/pixelitos/128/stella.png"
|
|
||||||
dest_files=["res://.godot/imported/stella.png-e81484435d2c9330faaeb6dd19649c74.ctex"]
|
|
||||||
|
|
||||||
[params]
|
|
||||||
|
|
||||||
compress/mode=0
|
|
||||||
compress/high_quality=false
|
|
||||||
compress/lossy_quality=0.7
|
|
||||||
compress/hdr_compression=1
|
|
||||||
compress/normal_map=0
|
|
||||||
compress/channel_pack=0
|
|
||||||
mipmaps/generate=false
|
|
||||||
mipmaps/limit=-1
|
|
||||||
roughness/mode=0
|
|
||||||
roughness/src_normal=""
|
|
||||||
process/fix_alpha_border=true
|
|
||||||
process/premult_alpha=false
|
|
||||||
process/normal_map_invert_y=false
|
|
||||||
process/hdr_as_srgb=false
|
|
||||||
process/hdr_clamp_exposure=false
|
|
||||||
process/size_limit=0
|
|
||||||
detect_3d/compress_to=1
|
|
Before Width: | Height: | Size: 737 B |
|
@ -1,34 +0,0 @@
|
||||||
[remap]
|
|
||||||
|
|
||||||
importer="texture"
|
|
||||||
type="CompressedTexture2D"
|
|
||||||
uid="uid://bsctvdrl5okkn"
|
|
||||||
path="res://.godot/imported/zsnes.png-8880495aee27e317a73877d10d9f27e8.ctex"
|
|
||||||
metadata={
|
|
||||||
"vram_texture": false
|
|
||||||
}
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://assets/icons/pixelitos/128/zsnes.png"
|
|
||||||
dest_files=["res://.godot/imported/zsnes.png-8880495aee27e317a73877d10d9f27e8.ctex"]
|
|
||||||
|
|
||||||
[params]
|
|
||||||
|
|
||||||
compress/mode=0
|
|
||||||
compress/high_quality=false
|
|
||||||
compress/lossy_quality=0.7
|
|
||||||
compress/hdr_compression=1
|
|
||||||
compress/normal_map=0
|
|
||||||
compress/channel_pack=0
|
|
||||||
mipmaps/generate=false
|
|
||||||
mipmaps/limit=-1
|
|
||||||
roughness/mode=0
|
|
||||||
roughness/src_normal=""
|
|
||||||
process/fix_alpha_border=true
|
|
||||||
process/premult_alpha=false
|
|
||||||
process/normal_map_invert_y=false
|
|
||||||
process/hdr_as_srgb=false
|
|
||||||
process/hdr_clamp_exposure=false
|
|
||||||
process/size_limit=0
|
|
||||||
detect_3d/compress_to=1
|
|
Before Width: | Height: | Size: 5.2 KiB |
|
@ -1,34 +0,0 @@
|
||||||
[remap]
|
|
||||||
|
|
||||||
importer="texture"
|
|
||||||
type="CompressedTexture2D"
|
|
||||||
uid="uid://cp7mte1plxnns"
|
|
||||||
path="res://.godot/imported/Alacritty.png-4f73319016fc7fff22cd6bbb95727a2c.ctex"
|
|
||||||
metadata={
|
|
||||||
"vram_texture": false
|
|
||||||
}
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://assets/icons/pixelitos/16/Alacritty.png"
|
|
||||||
dest_files=["res://.godot/imported/Alacritty.png-4f73319016fc7fff22cd6bbb95727a2c.ctex"]
|
|
||||||
|
|
||||||
[params]
|
|
||||||
|
|
||||||
compress/mode=0
|
|
||||||
compress/high_quality=false
|
|
||||||
compress/lossy_quality=0.7
|
|
||||||
compress/hdr_compression=1
|
|
||||||
compress/normal_map=0
|
|
||||||
compress/channel_pack=0
|
|
||||||
mipmaps/generate=false
|
|
||||||
mipmaps/limit=-1
|
|
||||||
roughness/mode=0
|
|
||||||
roughness/src_normal=""
|
|
||||||
process/fix_alpha_border=true
|
|
||||||
process/premult_alpha=false
|
|
||||||
process/normal_map_invert_y=false
|
|
||||||
process/hdr_as_srgb=false
|
|
||||||
process/hdr_clamp_exposure=false
|
|
||||||
process/size_limit=0
|
|
||||||
detect_3d/compress_to=1
|
|
Before Width: | Height: | Size: 205 B |
|
@ -1,34 +0,0 @@
|
||||||
[remap]
|
|
||||||
|
|
||||||
importer="texture"
|
|
||||||
type="CompressedTexture2D"
|
|
||||||
uid="uid://4m876fp86l7u"
|
|
||||||
path="res://.godot/imported/CMakeSetup.png-ca2e7d534d3754abdc6584a0e12d00a8.ctex"
|
|
||||||
metadata={
|
|
||||||
"vram_texture": false
|
|
||||||
}
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://assets/icons/pixelitos/16/CMakeSetup.png"
|
|
||||||
dest_files=["res://.godot/imported/CMakeSetup.png-ca2e7d534d3754abdc6584a0e12d00a8.ctex"]
|
|
||||||
|
|
||||||
[params]
|
|
||||||
|
|
||||||
compress/mode=0
|
|
||||||
compress/high_quality=false
|
|
||||||
compress/lossy_quality=0.7
|
|
||||||
compress/hdr_compression=1
|
|
||||||
compress/normal_map=0
|
|
||||||
compress/channel_pack=0
|
|
||||||
mipmaps/generate=false
|
|
||||||
mipmaps/limit=-1
|
|
||||||
roughness/mode=0
|
|
||||||
roughness/src_normal=""
|
|
||||||
process/fix_alpha_border=true
|
|
||||||
process/premult_alpha=false
|
|
||||||
process/normal_map_invert_y=false
|
|
||||||
process/hdr_as_srgb=false
|
|
||||||
process/hdr_clamp_exposure=false
|
|
||||||
process/size_limit=0
|
|
||||||
detect_3d/compress_to=1
|
|
Before Width: | Height: | Size: 173 B |
|
@ -1,34 +0,0 @@
|
||||||
[remap]
|
|
||||||
|
|
||||||
importer="texture"
|
|
||||||
type="CompressedTexture2D"
|
|
||||||
uid="uid://dal18xkn0kplp"
|
|
||||||
path="res://.godot/imported/QtProject-qtcreator.png-23c831a40c505fde0c349b15be55ea27.ctex"
|
|
||||||
metadata={
|
|
||||||
"vram_texture": false
|
|
||||||
}
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://assets/icons/pixelitos/16/QtProject-qtcreator.png"
|
|
||||||
dest_files=["res://.godot/imported/QtProject-qtcreator.png-23c831a40c505fde0c349b15be55ea27.ctex"]
|
|
||||||
|
|
||||||
[params]
|
|
||||||
|
|
||||||
compress/mode=0
|
|
||||||
compress/high_quality=false
|
|
||||||
compress/lossy_quality=0.7
|
|
||||||
compress/hdr_compression=1
|
|
||||||
compress/normal_map=0
|
|
||||||
compress/channel_pack=0
|
|
||||||
mipmaps/generate=false
|
|
||||||
mipmaps/limit=-1
|
|
||||||
roughness/mode=0
|
|
||||||
roughness/src_normal=""
|
|
||||||
process/fix_alpha_border=true
|
|
||||||
process/premult_alpha=false
|
|
||||||
process/normal_map_invert_y=false
|
|
||||||
process/hdr_as_srgb=false
|
|
||||||
process/hdr_clamp_exposure=false
|
|
||||||
process/size_limit=0
|
|
||||||
detect_3d/compress_to=1
|
|
Before Width: | Height: | Size: 191 B |
|
@ -1,34 +0,0 @@
|
||||||
[remap]
|
|
||||||
|
|
||||||
importer="texture"
|
|
||||||
type="CompressedTexture2D"
|
|
||||||
uid="uid://df4bk3fa337ig"
|
|
||||||
path="res://.godot/imported/accesories-screenshoot.png-374d457bc7561a8d6e5b662034b15730.ctex"
|
|
||||||
metadata={
|
|
||||||
"vram_texture": false
|
|
||||||
}
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://assets/icons/pixelitos/16/accesories-screenshoot.png"
|
|
||||||
dest_files=["res://.godot/imported/accesories-screenshoot.png-374d457bc7561a8d6e5b662034b15730.ctex"]
|
|
||||||
|
|
||||||
[params]
|
|
||||||
|
|
||||||
compress/mode=0
|
|
||||||
compress/high_quality=false
|
|
||||||
compress/lossy_quality=0.7
|
|
||||||
compress/hdr_compression=1
|
|
||||||
compress/normal_map=0
|
|
||||||
compress/channel_pack=0
|
|
||||||
mipmaps/generate=false
|
|
||||||
mipmaps/limit=-1
|
|
||||||
roughness/mode=0
|
|
||||||
roughness/src_normal=""
|
|
||||||
process/fix_alpha_border=true
|
|
||||||
process/premult_alpha=false
|
|
||||||
process/normal_map_invert_y=false
|
|
||||||
process/hdr_as_srgb=false
|
|
||||||
process/hdr_clamp_exposure=false
|
|
||||||
process/size_limit=0
|
|
||||||
detect_3d/compress_to=1
|
|
Before Width: | Height: | Size: 191 B |
|
@ -1,34 +0,0 @@
|
||||||
[remap]
|
|
||||||
|
|
||||||
importer="texture"
|
|
||||||
type="CompressedTexture2D"
|
|
||||||
uid="uid://cqkexg5kkpehj"
|
|
||||||
path="res://.godot/imported/accesories-screenshot.png-380a941577ff6c26d913fdd7f78ed615.ctex"
|
|
||||||
metadata={
|
|
||||||
"vram_texture": false
|
|
||||||
}
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://assets/icons/pixelitos/16/accesories-screenshot.png"
|
|
||||||
dest_files=["res://.godot/imported/accesories-screenshot.png-380a941577ff6c26d913fdd7f78ed615.ctex"]
|
|
||||||
|
|
||||||
[params]
|
|
||||||
|
|
||||||
compress/mode=0
|
|
||||||
compress/high_quality=false
|
|
||||||
compress/lossy_quality=0.7
|
|
||||||
compress/hdr_compression=1
|
|
||||||
compress/normal_map=0
|
|
||||||
compress/channel_pack=0
|
|
||||||
mipmaps/generate=false
|
|
||||||
mipmaps/limit=-1
|
|
||||||
roughness/mode=0
|
|
||||||
roughness/src_normal=""
|
|
||||||
process/fix_alpha_border=true
|
|
||||||
process/premult_alpha=false
|
|
||||||
process/normal_map_invert_y=false
|
|
||||||
process/hdr_as_srgb=false
|
|
||||||
process/hdr_clamp_exposure=false
|
|
||||||
process/size_limit=0
|
|
||||||
detect_3d/compress_to=1
|
|
Before Width: | Height: | Size: 268 B |
|
@ -1,34 +0,0 @@
|
||||||
[remap]
|
|
||||||
|
|
||||||
importer="texture"
|
|
||||||
type="CompressedTexture2D"
|
|
||||||
uid="uid://qg2fv36wcd2c"
|
|
||||||
path="res://.godot/imported/accessories-calculator.png-d15cdc6a8c179b53a6ef9124dd0b9a8f.ctex"
|
|
||||||
metadata={
|
|
||||||
"vram_texture": false
|
|
||||||
}
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://assets/icons/pixelitos/16/accessories-calculator.png"
|
|
||||||
dest_files=["res://.godot/imported/accessories-calculator.png-d15cdc6a8c179b53a6ef9124dd0b9a8f.ctex"]
|
|
||||||
|
|
||||||
[params]
|
|
||||||
|
|
||||||
compress/mode=0
|
|
||||||
compress/high_quality=false
|
|
||||||
compress/lossy_quality=0.7
|
|
||||||
compress/hdr_compression=1
|
|
||||||
compress/normal_map=0
|
|
||||||
compress/channel_pack=0
|
|
||||||
mipmaps/generate=false
|
|
||||||
mipmaps/limit=-1
|
|
||||||
roughness/mode=0
|
|
||||||
roughness/src_normal=""
|
|
||||||
process/fix_alpha_border=true
|
|
||||||
process/premult_alpha=false
|
|
||||||
process/normal_map_invert_y=false
|
|
||||||
process/hdr_as_srgb=false
|
|
||||||
process/hdr_clamp_exposure=false
|
|
||||||
process/size_limit=0
|
|
||||||
detect_3d/compress_to=1
|
|
Before Width: | Height: | Size: 324 B |
|
@ -1,34 +0,0 @@
|
||||||
[remap]
|
|
||||||
|
|
||||||
importer="texture"
|
|
||||||
type="CompressedTexture2D"
|
|
||||||
uid="uid://dhgc5m5hjjpge"
|
|
||||||
path="res://.godot/imported/accessories-clock.png-0b1e8af43b710d232fb1a15556ef19eb.ctex"
|
|
||||||
metadata={
|
|
||||||
"vram_texture": false
|
|
||||||
}
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://assets/icons/pixelitos/16/accessories-clock.png"
|
|
||||||
dest_files=["res://.godot/imported/accessories-clock.png-0b1e8af43b710d232fb1a15556ef19eb.ctex"]
|
|
||||||
|
|
||||||
[params]
|
|
||||||
|
|
||||||
compress/mode=0
|
|
||||||
compress/high_quality=false
|
|
||||||
compress/lossy_quality=0.7
|
|
||||||
compress/hdr_compression=1
|
|
||||||
compress/normal_map=0
|
|
||||||
compress/channel_pack=0
|
|
||||||
mipmaps/generate=false
|
|
||||||
mipmaps/limit=-1
|
|
||||||
roughness/mode=0
|
|
||||||
roughness/src_normal=""
|
|
||||||
process/fix_alpha_border=true
|
|
||||||
process/premult_alpha=false
|
|
||||||
process/normal_map_invert_y=false
|
|
||||||
process/hdr_as_srgb=false
|
|
||||||
process/hdr_clamp_exposure=false
|
|
||||||
process/size_limit=0
|
|
||||||
detect_3d/compress_to=1
|
|
Before Width: | Height: | Size: 129 B |
|
@ -1,34 +0,0 @@
|
||||||
[remap]
|
|
||||||
|
|
||||||
importer="texture"
|
|
||||||
type="CompressedTexture2D"
|
|
||||||
uid="uid://dy4i0deapmyn8"
|
|
||||||
path="res://.godot/imported/accessories-dictionary.png-25017c298efba7f0e304eab6bd3fe71e.ctex"
|
|
||||||
metadata={
|
|
||||||
"vram_texture": false
|
|
||||||
}
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://assets/icons/pixelitos/16/accessories-dictionary.png"
|
|
||||||
dest_files=["res://.godot/imported/accessories-dictionary.png-25017c298efba7f0e304eab6bd3fe71e.ctex"]
|
|
||||||
|
|
||||||
[params]
|
|
||||||
|
|
||||||
compress/mode=0
|
|
||||||
compress/high_quality=false
|
|
||||||
compress/lossy_quality=0.7
|
|
||||||
compress/hdr_compression=1
|
|
||||||
compress/normal_map=0
|
|
||||||
compress/channel_pack=0
|
|
||||||
mipmaps/generate=false
|
|
||||||
mipmaps/limit=-1
|
|
||||||
roughness/mode=0
|
|
||||||
roughness/src_normal=""
|
|
||||||
process/fix_alpha_border=true
|
|
||||||
process/premult_alpha=false
|
|
||||||
process/normal_map_invert_y=false
|
|
||||||
process/hdr_as_srgb=false
|
|
||||||
process/hdr_clamp_exposure=false
|
|
||||||
process/size_limit=0
|
|
||||||
detect_3d/compress_to=1
|
|
Before Width: | Height: | Size: 129 B |
|
@ -1,34 +0,0 @@
|
||||||
[remap]
|
|
||||||
|
|
||||||
importer="texture"
|
|
||||||
type="CompressedTexture2D"
|
|
||||||
uid="uid://c70ppuy4beltg"
|
|
||||||
path="res://.godot/imported/accessories-ebook-reader.png-0f54fc49eec6426cbf1120611040fb32.ctex"
|
|
||||||
metadata={
|
|
||||||
"vram_texture": false
|
|
||||||
}
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://assets/icons/pixelitos/16/accessories-ebook-reader.png"
|
|
||||||
dest_files=["res://.godot/imported/accessories-ebook-reader.png-0f54fc49eec6426cbf1120611040fb32.ctex"]
|
|
||||||
|
|
||||||
[params]
|
|
||||||
|
|
||||||
compress/mode=0
|
|
||||||
compress/high_quality=false
|
|
||||||
compress/lossy_quality=0.7
|
|
||||||
compress/hdr_compression=1
|
|
||||||
compress/normal_map=0
|
|
||||||
compress/channel_pack=0
|
|
||||||
mipmaps/generate=false
|
|
||||||
mipmaps/limit=-1
|
|
||||||
roughness/mode=0
|
|
||||||
roughness/src_normal=""
|
|
||||||
process/fix_alpha_border=true
|
|
||||||
process/premult_alpha=false
|
|
||||||
process/normal_map_invert_y=false
|
|
||||||
process/hdr_as_srgb=false
|
|
||||||
process/hdr_clamp_exposure=false
|
|
||||||
process/size_limit=0
|
|
||||||
detect_3d/compress_to=1
|
|
Before Width: | Height: | Size: 190 B |
|
@ -1,34 +0,0 @@
|
||||||
[remap]
|
|
||||||
|
|
||||||
importer="texture"
|
|
||||||
type="CompressedTexture2D"
|
|
||||||
uid="uid://taq6pykvnl76"
|
|
||||||
path="res://.godot/imported/accessories-notes.png-f233036a4c836cc7dc186338310e9fae.ctex"
|
|
||||||
metadata={
|
|
||||||
"vram_texture": false
|
|
||||||
}
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://assets/icons/pixelitos/16/accessories-notes.png"
|
|
||||||
dest_files=["res://.godot/imported/accessories-notes.png-f233036a4c836cc7dc186338310e9fae.ctex"]
|
|
||||||
|
|
||||||
[params]
|
|
||||||
|
|
||||||
compress/mode=0
|
|
||||||
compress/high_quality=false
|
|
||||||
compress/lossy_quality=0.7
|
|
||||||
compress/hdr_compression=1
|
|
||||||
compress/normal_map=0
|
|
||||||
compress/channel_pack=0
|
|
||||||
mipmaps/generate=false
|
|
||||||
mipmaps/limit=-1
|
|
||||||
roughness/mode=0
|
|
||||||
roughness/src_normal=""
|
|
||||||
process/fix_alpha_border=true
|
|
||||||
process/premult_alpha=false
|
|
||||||
process/normal_map_invert_y=false
|
|
||||||
process/hdr_as_srgb=false
|
|
||||||
process/hdr_clamp_exposure=false
|
|
||||||
process/size_limit=0
|
|
||||||
detect_3d/compress_to=1
|
|
Before Width: | Height: | Size: 197 B |
|
@ -1,34 +0,0 @@
|
||||||
[remap]
|
|
||||||
|
|
||||||
importer="texture"
|
|
||||||
type="CompressedTexture2D"
|
|
||||||
uid="uid://crc1a37v678n5"
|
|
||||||
path="res://.godot/imported/accessories-safe.png-be007724da9b72adae416ad27a714815.ctex"
|
|
||||||
metadata={
|
|
||||||
"vram_texture": false
|
|
||||||
}
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://assets/icons/pixelitos/16/accessories-safe.png"
|
|
||||||
dest_files=["res://.godot/imported/accessories-safe.png-be007724da9b72adae416ad27a714815.ctex"]
|
|
||||||
|
|
||||||
[params]
|
|
||||||
|
|
||||||
compress/mode=0
|
|
||||||
compress/high_quality=false
|
|
||||||
compress/lossy_quality=0.7
|
|
||||||
compress/hdr_compression=1
|
|
||||||
compress/normal_map=0
|
|
||||||
compress/channel_pack=0
|
|
||||||
mipmaps/generate=false
|
|
||||||
mipmaps/limit=-1
|
|
||||||
roughness/mode=0
|
|
||||||
roughness/src_normal=""
|
|
||||||
process/fix_alpha_border=true
|
|
||||||
process/premult_alpha=false
|
|
||||||
process/normal_map_invert_y=false
|
|
||||||
process/hdr_as_srgb=false
|
|
||||||
process/hdr_clamp_exposure=false
|
|
||||||
process/size_limit=0
|
|
||||||
detect_3d/compress_to=1
|
|
Before Width: | Height: | Size: 191 B |
|
@ -1,34 +0,0 @@
|
||||||
[remap]
|
|
||||||
|
|
||||||
importer="texture"
|
|
||||||
type="CompressedTexture2D"
|
|
||||||
uid="uid://c7owhb6jau2r7"
|
|
||||||
path="res://.godot/imported/accessories-screenshoot.png-9c31584745a04aa11537232e52d0fd4a.ctex"
|
|
||||||
metadata={
|
|
||||||
"vram_texture": false
|
|
||||||
}
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://assets/icons/pixelitos/16/accessories-screenshoot.png"
|
|
||||||
dest_files=["res://.godot/imported/accessories-screenshoot.png-9c31584745a04aa11537232e52d0fd4a.ctex"]
|
|
||||||
|
|
||||||
[params]
|
|
||||||
|
|
||||||
compress/mode=0
|
|
||||||
compress/high_quality=false
|
|
||||||
compress/lossy_quality=0.7
|
|
||||||
compress/hdr_compression=1
|
|
||||||
compress/normal_map=0
|
|
||||||
compress/channel_pack=0
|
|
||||||
mipmaps/generate=false
|
|
||||||
mipmaps/limit=-1
|
|
||||||
roughness/mode=0
|
|
||||||
roughness/src_normal=""
|
|
||||||
process/fix_alpha_border=true
|
|
||||||
process/premult_alpha=false
|
|
||||||
process/normal_map_invert_y=false
|
|
||||||
process/hdr_as_srgb=false
|
|
||||||
process/hdr_clamp_exposure=false
|
|
||||||
process/size_limit=0
|
|
||||||
detect_3d/compress_to=1
|
|
Before Width: | Height: | Size: 233 B |
|
@ -1,34 +0,0 @@
|
||||||
[remap]
|
|
||||||
|
|
||||||
importer="texture"
|
|
||||||
type="CompressedTexture2D"
|
|
||||||
uid="uid://lklv1mtf0axh"
|
|
||||||
path="res://.godot/imported/accessories-text-editor.png-9d8479e48f94dc82089f933acd74fa99.ctex"
|
|
||||||
metadata={
|
|
||||||
"vram_texture": false
|
|
||||||
}
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://assets/icons/pixelitos/16/accessories-text-editor.png"
|
|
||||||
dest_files=["res://.godot/imported/accessories-text-editor.png-9d8479e48f94dc82089f933acd74fa99.ctex"]
|
|
||||||
|
|
||||||
[params]
|
|
||||||
|
|
||||||
compress/mode=0
|
|
||||||
compress/high_quality=false
|
|
||||||
compress/lossy_quality=0.7
|
|
||||||
compress/hdr_compression=1
|
|
||||||
compress/normal_map=0
|
|
||||||
compress/channel_pack=0
|
|
||||||
mipmaps/generate=false
|
|
||||||
mipmaps/limit=-1
|
|
||||||
roughness/mode=0
|
|
||||||
roughness/src_normal=""
|
|
||||||
process/fix_alpha_border=true
|
|
||||||
process/premult_alpha=false
|
|
||||||
process/normal_map_invert_y=false
|
|
||||||
process/hdr_as_srgb=false
|
|
||||||
process/hdr_clamp_exposure=false
|
|
||||||
process/size_limit=0
|
|
||||||
detect_3d/compress_to=1
|
|
Before Width: | Height: | Size: 154 B |
|
@ -1,34 +0,0 @@
|
||||||
[remap]
|
|
||||||
|
|
||||||
importer="texture"
|
|
||||||
type="CompressedTexture2D"
|
|
||||||
uid="uid://dq62f0iqbvfct"
|
|
||||||
path="res://.godot/imported/alacarte.png-1f1500dfc98c6beb4514f5a95f95a9ef.ctex"
|
|
||||||
metadata={
|
|
||||||
"vram_texture": false
|
|
||||||
}
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://assets/icons/pixelitos/16/alacarte.png"
|
|
||||||
dest_files=["res://.godot/imported/alacarte.png-1f1500dfc98c6beb4514f5a95f95a9ef.ctex"]
|
|
||||||
|
|
||||||
[params]
|
|
||||||
|
|
||||||
compress/mode=0
|
|
||||||
compress/high_quality=false
|
|
||||||
compress/lossy_quality=0.7
|
|
||||||
compress/hdr_compression=1
|
|
||||||
compress/normal_map=0
|
|
||||||
compress/channel_pack=0
|
|
||||||
mipmaps/generate=false
|
|
||||||
mipmaps/limit=-1
|
|
||||||
roughness/mode=0
|
|
||||||
roughness/src_normal=""
|
|
||||||
process/fix_alpha_border=true
|
|
||||||
process/premult_alpha=false
|
|
||||||
process/normal_map_invert_y=false
|
|
||||||
process/hdr_as_srgb=false
|
|
||||||
process/hdr_clamp_exposure=false
|
|
||||||
process/size_limit=0
|
|
||||||
detect_3d/compress_to=1
|
|
Before Width: | Height: | Size: 175 B |
|
@ -1,34 +0,0 @@
|
||||||
[remap]
|
|
||||||
|
|
||||||
importer="texture"
|
|
||||||
type="CompressedTexture2D"
|
|
||||||
uid="uid://dqk2qqxx4340h"
|
|
||||||
path="res://.godot/imported/anatine.png-a45209bb5a56a70dfe74ec0c6321ab8a.ctex"
|
|
||||||
metadata={
|
|
||||||
"vram_texture": false
|
|
||||||
}
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://assets/icons/pixelitos/16/anatine.png"
|
|
||||||
dest_files=["res://.godot/imported/anatine.png-a45209bb5a56a70dfe74ec0c6321ab8a.ctex"]
|
|
||||||
|
|
||||||
[params]
|
|
||||||
|
|
||||||
compress/mode=0
|
|
||||||
compress/high_quality=false
|
|
||||||
compress/lossy_quality=0.7
|
|
||||||
compress/hdr_compression=1
|
|
||||||
compress/normal_map=0
|
|
||||||
compress/channel_pack=0
|
|
||||||
mipmaps/generate=false
|
|
||||||
mipmaps/limit=-1
|
|
||||||
roughness/mode=0
|
|
||||||
roughness/src_normal=""
|
|
||||||
process/fix_alpha_border=true
|
|
||||||
process/premult_alpha=false
|
|
||||||
process/normal_map_invert_y=false
|
|
||||||
process/hdr_as_srgb=false
|
|
||||||
process/hdr_clamp_exposure=false
|
|
||||||
process/size_limit=0
|
|
||||||
detect_3d/compress_to=1
|
|
Before Width: | Height: | Size: 183 B |
|
@ -1,34 +0,0 @@
|
||||||
[remap]
|
|
||||||
|
|
||||||
importer="texture"
|
|
||||||
type="CompressedTexture2D"
|
|
||||||
uid="uid://cah8bhye14opr"
|
|
||||||
path="res://.godot/imported/app.xemu.xemu.png-13fcfb6536a11564d69d3e35a4541282.ctex"
|
|
||||||
metadata={
|
|
||||||
"vram_texture": false
|
|
||||||
}
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://assets/icons/pixelitos/16/app.xemu.xemu.png"
|
|
||||||
dest_files=["res://.godot/imported/app.xemu.xemu.png-13fcfb6536a11564d69d3e35a4541282.ctex"]
|
|
||||||
|
|
||||||
[params]
|
|
||||||
|
|
||||||
compress/mode=0
|
|
||||||
compress/high_quality=false
|
|
||||||
compress/lossy_quality=0.7
|
|
||||||
compress/hdr_compression=1
|
|
||||||
compress/normal_map=0
|
|
||||||
compress/channel_pack=0
|
|
||||||
mipmaps/generate=false
|
|
||||||
mipmaps/limit=-1
|
|
||||||
roughness/mode=0
|
|
||||||
roughness/src_normal=""
|
|
||||||
process/fix_alpha_border=true
|
|
||||||
process/premult_alpha=false
|
|
||||||
process/normal_map_invert_y=false
|
|
||||||
process/hdr_as_srgb=false
|
|
||||||
process/hdr_clamp_exposure=false
|
|
||||||
process/size_limit=0
|
|
||||||
detect_3d/compress_to=1
|
|
Before Width: | Height: | Size: 289 B |
|
@ -1,34 +0,0 @@
|
||||||
[remap]
|
|
||||||
|
|
||||||
importer="texture"
|
|
||||||
type="CompressedTexture2D"
|
|
||||||
uid="uid://7wxfcyjnrjj"
|
|
||||||
path="res://.godot/imported/apple.png-268063cc94bfb7e198f59173c4edfcd0.ctex"
|
|
||||||
metadata={
|
|
||||||
"vram_texture": false
|
|
||||||
}
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://assets/icons/pixelitos/16/apple.png"
|
|
||||||
dest_files=["res://.godot/imported/apple.png-268063cc94bfb7e198f59173c4edfcd0.ctex"]
|
|
||||||
|
|
||||||
[params]
|
|
||||||
|
|
||||||
compress/mode=0
|
|
||||||
compress/high_quality=false
|
|
||||||
compress/lossy_quality=0.7
|
|
||||||
compress/hdr_compression=1
|
|
||||||
compress/normal_map=0
|
|
||||||
compress/channel_pack=0
|
|
||||||
mipmaps/generate=false
|
|
||||||
mipmaps/limit=-1
|
|
||||||
roughness/mode=0
|
|
||||||
roughness/src_normal=""
|
|
||||||
process/fix_alpha_border=true
|
|
||||||
process/premult_alpha=false
|
|
||||||
process/normal_map_invert_y=false
|
|
||||||
process/hdr_as_srgb=false
|
|
||||||
process/hdr_clamp_exposure=false
|
|
||||||
process/size_limit=0
|
|
||||||
detect_3d/compress_to=1
|
|
Before Width: | Height: | Size: 191 B |
|
@ -1,34 +0,0 @@
|
||||||
[remap]
|
|
||||||
|
|
||||||
importer="texture"
|
|
||||||
type="CompressedTexture2D"
|
|
||||||
uid="uid://fk4h3jnjjlv6"
|
|
||||||
path="res://.godot/imported/applets-screenshooter.png-b31d48502f03856dc8298a6c10b438c4.ctex"
|
|
||||||
metadata={
|
|
||||||
"vram_texture": false
|
|
||||||
}
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://assets/icons/pixelitos/16/applets-screenshooter.png"
|
|
||||||
dest_files=["res://.godot/imported/applets-screenshooter.png-b31d48502f03856dc8298a6c10b438c4.ctex"]
|
|
||||||
|
|
||||||
[params]
|
|
||||||
|
|
||||||
compress/mode=0
|
|
||||||
compress/high_quality=false
|
|
||||||
compress/lossy_quality=0.7
|
|
||||||
compress/hdr_compression=1
|
|
||||||
compress/normal_map=0
|
|
||||||
compress/channel_pack=0
|
|
||||||
mipmaps/generate=false
|
|
||||||
mipmaps/limit=-1
|
|
||||||
roughness/mode=0
|
|
||||||
roughness/src_normal=""
|
|
||||||
process/fix_alpha_border=true
|
|
||||||
process/premult_alpha=false
|
|
||||||
process/normal_map_invert_y=false
|
|
||||||
process/hdr_as_srgb=false
|
|
||||||
process/hdr_clamp_exposure=false
|
|
||||||
process/size_limit=0
|
|
||||||
detect_3d/compress_to=1
|
|
Before Width: | Height: | Size: 396 B |
|
@ -1,34 +0,0 @@
|
||||||
[remap]
|
|
||||||
|
|
||||||
importer="texture"
|
|
||||||
type="CompressedTexture2D"
|
|
||||||
uid="uid://dxd7ka0qiyqen"
|
|
||||||
path="res://.godot/imported/application-vnd.affinity-designer.png-608cf9e7df43d44f5707c7dcfcdfaa42.ctex"
|
|
||||||
metadata={
|
|
||||||
"vram_texture": false
|
|
||||||
}
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://assets/icons/pixelitos/16/application-vnd.affinity-designer.png"
|
|
||||||
dest_files=["res://.godot/imported/application-vnd.affinity-designer.png-608cf9e7df43d44f5707c7dcfcdfaa42.ctex"]
|
|
||||||
|
|
||||||
[params]
|
|
||||||
|
|
||||||
compress/mode=0
|
|
||||||
compress/high_quality=false
|
|
||||||
compress/lossy_quality=0.7
|
|
||||||
compress/hdr_compression=1
|
|
||||||
compress/normal_map=0
|
|
||||||
compress/channel_pack=0
|
|
||||||
mipmaps/generate=false
|
|
||||||
mipmaps/limit=-1
|
|
||||||
roughness/mode=0
|
|
||||||
roughness/src_normal=""
|
|
||||||
process/fix_alpha_border=true
|
|
||||||
process/premult_alpha=false
|
|
||||||
process/normal_map_invert_y=false
|
|
||||||
process/hdr_as_srgb=false
|
|
||||||
process/hdr_clamp_exposure=false
|
|
||||||
process/size_limit=0
|
|
||||||
detect_3d/compress_to=1
|
|
Before Width: | Height: | Size: 241 B |
|
@ -1,34 +0,0 @@
|
||||||
[remap]
|
|
||||||
|
|
||||||
importer="texture"
|
|
||||||
type="CompressedTexture2D"
|
|
||||||
uid="uid://kbu42vp5e6yf"
|
|
||||||
path="res://.godot/imported/applications-accessories.png-e423b33993821ebfe2d5501dfae6b714.ctex"
|
|
||||||
metadata={
|
|
||||||
"vram_texture": false
|
|
||||||
}
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://assets/icons/pixelitos/16/applications-accessories.png"
|
|
||||||
dest_files=["res://.godot/imported/applications-accessories.png-e423b33993821ebfe2d5501dfae6b714.ctex"]
|
|
||||||
|
|
||||||
[params]
|
|
||||||
|
|
||||||
compress/mode=0
|
|
||||||
compress/high_quality=false
|
|
||||||
compress/lossy_quality=0.7
|
|
||||||
compress/hdr_compression=1
|
|
||||||
compress/normal_map=0
|
|
||||||
compress/channel_pack=0
|
|
||||||
mipmaps/generate=false
|
|
||||||
mipmaps/limit=-1
|
|
||||||
roughness/mode=0
|
|
||||||
roughness/src_normal=""
|
|
||||||
process/fix_alpha_border=true
|
|
||||||
process/premult_alpha=false
|
|
||||||
process/normal_map_invert_y=false
|
|
||||||
process/hdr_as_srgb=false
|
|
||||||
process/hdr_clamp_exposure=false
|
|
||||||
process/size_limit=0
|
|
||||||
detect_3d/compress_to=1
|
|
Before Width: | Height: | Size: 358 B |