diff --git a/.github/workflows/build_components.yml b/.github/workflows/build_components.yml
index 8b3b33db..e4d931b5 100644
--- a/.github/workflows/build_components.yml
+++ b/.github/workflows/build_components.yml
@@ -13,7 +13,7 @@ on:
force_rebuild:
description: 'Force rebuilding ALL components (true/false)'
required: false
- default: false
+ default: true
type: boolean
# schedule:
diff --git a/archive_later/tsugaru/component_functions.sh b/archive_later/tsugaru/component_functions.sh
new file mode 100755
index 00000000..cc1f786e
--- /dev/null
+++ b/archive_later/tsugaru/component_functions.sh
@@ -0,0 +1 @@
+#!/bin/bash
\ No newline at end of file
diff --git a/archive_later/tsugaru/component_launcher.sh b/archive_later/tsugaru/component_launcher.sh
new file mode 100755
index 00000000..ab153229
--- /dev/null
+++ b/archive_later/tsugaru/component_launcher.sh
@@ -0,0 +1,13 @@
+#!/bin/bash
+
+# Setting component name and path based on the directory name
+component_name="$(basename "$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")")"
+component_path="$(cd "$(dirname "${BASH_SOURCE[0]}" )" && pwd)"
+
+# Set LD_LIBRARY_PATH
+export LD_LIBRARY_PATH="$component_path/lib:$ffmpeg_path/25.08:$rd_shared_libs/org.gnome.Platform/49/:${DEFAULT_LD_LIBRARY_PATH}"
+
+log i "RetroDECK is now launching $component_name"
+log d "Library path is: $LD_LIBRARY_PATH"
+
+exec "$component_path/Tsugaru_CUI" "$@"
diff --git a/archive_later/tsugaru/component_manifest.json b/archive_later/tsugaru/component_manifest.json
new file mode 100644
index 00000000..c33dde22
--- /dev/null
+++ b/archive_later/tsugaru/component_manifest.json
@@ -0,0 +1,11 @@
+{
+ "tsugaru": {
+ "name": "Tsugaru",
+ "url_rdwiki": "https://retrodeck.readthedocs.io/en/latest/wiki_emulator_guides/tsugaru/tsugaru-guide/",
+ "url_source": "https://github.com/captainys/TOWNSEMU",
+ "description": "FM TOWNS / Marty Emulator - Tsugaru",
+ "system_friendly_name": "FM TOWNS / Marty",
+ "component_type": "Emulator",
+ "system": "fmtowns"
+ }
+}
\ No newline at end of file
diff --git a/archive_later/tsugaru/component_prepare.sh b/archive_later/tsugaru/component_prepare.sh
new file mode 100755
index 00000000..eea95775
--- /dev/null
+++ b/archive_later/tsugaru/component_prepare.sh
@@ -0,0 +1,12 @@
+#!/bin/bash
+
+# Setting component name and path based on the directory name
+component_name="$(basename "$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")")"
+component_config="/app/retrodeck/components/$component_name/rd_config"
+
+if [[ "$action" == "reset" ]]; then # Run reset-only commands
+ log i "----------------------"
+ log i "Preparing $component_name"
+ log i "----------------------"
+
+fi
diff --git a/archive_later/tsugaru/component_recipe.json b/archive_later/tsugaru/component_recipe.json
new file mode 100755
index 00000000..bd65f03f
--- /dev/null
+++ b/archive_later/tsugaru/component_recipe.json
@@ -0,0 +1,58 @@
+{
+ "tsugaru": [
+ {
+ "source_url": "https://github.com/captainys/TOWNSEMU/releases/download/{VERSION}/ubuntu_binary_latest.zip",
+ "source_type": "github_release",
+ "version": "$TSUGARU_DESIRED_VERSION",
+ "extraction_type": "archive",
+ "assets": [
+ {
+ "type": "dir",
+ "source": "$EXTRACTED_PATH",
+ "dest": "$COMPONENT_ARTIFACT_ROOT"
+ },
+ {
+ "type": "dir",
+ "source": "$REPO_ROOT/$COMPONENT_NAME",
+ "dest": "$COMPONENT_ARTIFACT_ROOT"
+ },
+ {
+ "type": "create",
+ "dest": "component_version",
+ "contents": "$SOURCE_VERSION"
+ },
+ {
+ "type": "file",
+ "source": "$REPO_ROOT/$COMPONENT_NAME/component_functions.sh",
+ "dest": "$COMPONENT_ARTIFACT_ROOT"
+ },
+ {
+ "type": "file",
+ "source": "$REPO_ROOT/$COMPONENT_NAME/component_launcher.sh",
+ "dest": "$COMPONENT_ARTIFACT_ROOT"
+ },
+ {
+ "type": "file",
+ "source": "$REPO_ROOT/$COMPONENT_NAME/component_manifest.json",
+ "dest": "$COMPONENT_ARTIFACT_ROOT"
+ },
+ {
+ "type": "file",
+ "source": "$REPO_ROOT/$COMPONENT_NAME/component_recipe.json",
+ "dest": "$COMPONENT_ARTIFACT_ROOT"
+ },
+ {
+ "type": "file",
+ "source": "$REPO_ROOT/$COMPONENT_NAME/component_prepare.sh",
+ "dest": "$COMPONENT_ARTIFACT_ROOT"
+ },
+ {
+ "type": "file",
+ "source": "$REPO_ROOT/$COMPONENT_NAME/component_update.sh",
+ "dest": "$COMPONENT_ARTIFACT_ROOT"
+ }
+ ],
+ "libs": []
+ }
+ ]
+}
\ No newline at end of file
diff --git a/archive_later/tsugaru/component_update.sh b/archive_later/tsugaru/component_update.sh
new file mode 100644
index 00000000..4d6377ea
--- /dev/null
+++ b/archive_later/tsugaru/component_update.sh
@@ -0,0 +1,6 @@
+#!/bin/bash
+
+#########################################################################
+# These actions happen conditionally based on the version being upgraded
+#########################################################################
+
diff --git a/automation-tools/alchemist/desired_versions.sh b/automation-tools/alchemist/desired_versions.sh
index 353837a0..642087a4 100644
--- a/automation-tools/alchemist/desired_versions.sh
+++ b/automation-tools/alchemist/desired_versions.sh
@@ -28,7 +28,7 @@
# ------------------------------------------------------------------------------
-# Qt 5 Runtime — Legacy Qt Support
+# Qt 5 Runtime - Legacy Qt Support
# ------------------------------------------------------------------------------
# MAIN (Stable)
@@ -51,7 +51,7 @@ export DESIRED_QT5_RUNTIME_VERSION="5.15-25.08"
# ------------------------------------------------------------------------------
-# Azahar — Nintendo 3DS Emulator
+# Azahar - Nintendo 3DS Emulator
# Source: Flatpak - Flathub
# Link: https://flathub.org/en/apps/org.azahar_emu.Azahar
# ------------------------------------------------------------------------------
@@ -64,7 +64,7 @@ export DESIRED_QT5_RUNTIME_VERSION="5.15-25.08"
# ------------------------------------------------------------------------------
-# Cemu — Wii U Emulator
+# Cemu - Wii U Emulator
# Source: Flatpak - Flathub
# Link: https://flathub.org/en/apps/info.cemu.Cemu
# ------------------------------------------------------------------------------
@@ -77,7 +77,7 @@ export DESIRED_QT5_RUNTIME_VERSION="5.15-25.08"
# ------------------------------------------------------------------------------
-# Dolphin — GameCube / Wii Emulator
+# Dolphin - GameCube / Wii Emulator
# Source: Flatpak - Flathub
# Link: https://flathub.org/en/apps/org.DolphinEmu.dolphin-emu
# ------------------------------------------------------------------------------
@@ -90,7 +90,7 @@ export DESIRED_QT5_RUNTIME_VERSION="5.15-25.08"
# ------------------------------------------------------------------------------
-# GZDoom — Modern Doom Engine
+# GZDoom - Modern Doom Engine
# Source: Flatpak - Flathub
# Link: https://flathub.org/en/apps/org.zdoom.GZDoom
# ------------------------------------------------------------------------------
@@ -103,7 +103,7 @@ export DESIRED_QT5_RUNTIME_VERSION="5.15-25.08"
# ------------------------------------------------------------------------------
-# MAME — Multiple Arcade Machine Emulator
+# MAME - Multiple Arcade Machine Emulator
# Source: Flatpak - Flathub
# Link: https://flathub.org/en/apps/org.mamedev.MAME
# ------------------------------------------------------------------------------
@@ -116,7 +116,7 @@ export DESIRED_QT5_RUNTIME_VERSION="5.15-25.08"
# ------------------------------------------------------------------------------
-# MelonDS — Nintendo DS Emulator
+# MelonDS - Nintendo DS Emulator
# Source: Flatpak - Flathub
# Link: https://flathub.org/en/apps/net.kuribo64.melonDS
# ------------------------------------------------------------------------------
@@ -129,7 +129,7 @@ export DESIRED_QT5_RUNTIME_VERSION="5.15-25.08"
# ------------------------------------------------------------------------------
-# PPSSPP — PlayStation Portable Emulator
+# PPSSPP - PlayStation Portable Emulator
# Source: Flatpak - Flathub
# Link: https://flathub.org/en/apps/org.ppsspp.PPSSPP
# ------------------------------------------------------------------------------
@@ -142,7 +142,7 @@ export DESIRED_QT5_RUNTIME_VERSION="5.15-25.08"
# ------------------------------------------------------------------------------
-# RPCS3 — PlayStation 3 Emulator
+# RPCS3 - PlayStation 3 Emulator
# Source: Flatpak - Flathub
# Link: https://flathub.org/en/apps/net.rpcs3.RPCS3
# ------------------------------------------------------------------------------
@@ -155,7 +155,7 @@ export DESIRED_QT5_RUNTIME_VERSION="5.15-25.08"
# ------------------------------------------------------------------------------
-# Ruffle — Flash Player Emulator
+# Ruffle - Flash Player Emulator
# Source: Flatpak - Flathub
# Link: https://flathub.org/en/apps/rs.ruffle.Ruffle
# ------------------------------------------------------------------------------
@@ -168,7 +168,7 @@ export DESIRED_QT5_RUNTIME_VERSION="5.15-25.08"
# ------------------------------------------------------------------------------
-# Steam ROM Manager — Steam Artwork & ROM Importer
+# Steam ROM Manager - Steam Artwork & ROM Importer
# Source: Flatpak - Flathub
# Link: https://flathub.org/en/apps/com.steamgriddb.steam-rom-manager
# ------------------------------------------------------------------------------
@@ -181,7 +181,7 @@ export DESIRED_QT5_RUNTIME_VERSION="5.15-25.08"
# ------------------------------------------------------------------------------
-# Xemu — Original Xbox Emulator
+# Xemu - Original Xbox Emulator
# Source: Flatpak - Flathub
# Link: https://flathub.org/en/apps/app.xemu.xemu
# ------------------------------------------------------------------------------
@@ -194,7 +194,7 @@ export DESIRED_QT5_RUNTIME_VERSION="5.15-25.08"
# ==============================================================================
-# Component Desired Versions — Web / GitHub / GitLab / AppImages
+# Component Desired Versions - Web / GitHub / GitLab / AppImages
# ==============================================================================
# Components sourced from GitHub, GitLab, or other web pages,
# provided as loose binaries or AppImages.
@@ -204,7 +204,7 @@ export DESIRED_QT5_RUNTIME_VERSION="5.15-25.08"
# ------------------------------------------------------------------------------
-# OpenBOR — Open Beat 'em Up Engine
+# OpenBOR - Open Beat 'em Up Engine
# Source: AppImage
# Link: https://github.com/DCurrent/openbor/releases/
# ------------------------------------------------------------------------------
@@ -216,7 +216,7 @@ export DESIRED_QT5_RUNTIME_VERSION="5.15-25.08"
# ------------------------------------------------------------------------------
-# PCSX2 — PlayStation 2 Emulator
+# PCSX2 - PlayStation 2 Emulator
# Source: AppImage
# Link: https://github.com/PCSX2/pcsx2/releases/
# ------------------------------------------------------------------------------
@@ -228,7 +228,7 @@ export DESIRED_QT5_RUNTIME_VERSION="5.15-25.08"
# ------------------------------------------------------------------------------
-# RetroArch — Multi-System Front-End
+# RetroArch - Multi-System Front-End
# Source: AppImage
# Link: https://buildbot.libretro.com/stable/
# ------------------------------------------------------------------------------
@@ -240,7 +240,7 @@ export DESIRED_QT5_RUNTIME_VERSION="5.15-25.08"
# ------------------------------------------------------------------------------
-# Ryubing — Nintendo Switch Emulator
+# Ryubing - Nintendo Switch Emulator
# Source: AppImage
# Link: https://git.ryujinx.app/ryubing/ryujinx/-/releases/
# ------------------------------------------------------------------------------
@@ -253,7 +253,7 @@ export DESIRED_QT5_RUNTIME_VERSION="5.15-25.08"
# ------------------------------------------------------------------------------
-# Solarus — Action RPG Engine
+# Solarus - Action RPG Engine
# Source: AppImage
# Link: https://gitlab.com/solarus-games/solarus/-/releases/
# ------------------------------------------------------------------------------
@@ -266,7 +266,7 @@ export DESIRED_QT5_RUNTIME_VERSION="5.15-25.08"
# ==============================================================================
-# Component Desired Versions — Self-Built / Repo-Hosted Components
+# Component Desired Versions - Self-Built / Repo-Hosted Components
# ==============================================================================
# Components that are self-built and hosted in the RetroDECK repository.
#
@@ -276,7 +276,7 @@ export DESIRED_QT5_RUNTIME_VERSION="5.15-25.08"
# ------------------------------------------------------------------------------
-# DuckStation (Legacy) — PlayStation 1 Emulator
+# DuckStation (Legacy) - PlayStation 1 Emulator
# Source: AppImage (RetroDECK-built legacy archive)
# Link: https://github.com/RetroDECK/Duckstation/releases
# ------------------------------------------------------------------------------
@@ -288,7 +288,7 @@ export DESIRED_QT5_RUNTIME_VERSION="5.15-25.08"
# ------------------------------------------------------------------------------
-# ES-DE — EmulationStation Desktop Edition
+# ES-DE - EmulationStation Desktop Edition
# Source: AppImage (RetroDECK-built)
# Link: https://github.com/RetroDECK/ES-DE/releases
# ------------------------------------------------------------------------------
@@ -301,7 +301,7 @@ export DESIRED_QT5_RUNTIME_VERSION="5.15-25.08"
# ------------------------------------------------------------------------------
-# Flips — IPS Patch Utility
+# Flips - IPS Patch Utility
# Source: Binary (RetroDECK-built)
# Link: https://github.com/RetroDECK/components/tree/cooker/flips/assets
# ------------------------------------------------------------------------------
@@ -314,7 +314,7 @@ export DESIRED_QT5_RUNTIME_VERSION="5.15-25.08"
# ------------------------------------------------------------------------------
-# PortMaster — Multi-System Game Launcher
+# PortMaster - Multi-System Game Launcher
# Source: Binary (RetroDECK-built)
# Link: https://github.com/RetroDECK/components/tree/cooker/portmaster/assets
# ------------------------------------------------------------------------------
@@ -326,7 +326,7 @@ export DESIRED_QT5_RUNTIME_VERSION="5.15-25.08"
# ------------------------------------------------------------------------------
-# XRoar — Tano Dragon Emulator
+# XRoar - Tano Dragon Emulator
# Source: Binary (RetroDECK-built)
# Link: https://github.com/RetroDECK/XRoar/releases
# ------------------------------------------------------------------------------
@@ -340,7 +340,7 @@ export DESIRED_QT5_RUNTIME_VERSION="5.15-25.08"
# ------------------------------------------------------------------------------
-# PrimeHack — Metroid Prime Fork of Dolphin
+# PrimeHack - Metroid Prime Fork of Dolphin
# Source: AppImage
# Link: https://github.com/RetroDECK/io.github.shiiion.primehack/releases
# ------------------------------------------------------------------------------
@@ -353,7 +353,7 @@ export DESIRED_QT5_RUNTIME_VERSION="5.15-25.08"
# ------------------------------------------------------------------------------
-# Vita3K — PlayStation Vita Emulator
+# Vita3K - PlayStation Vita Emulator
# Source: AppImage (RetroDECK-mirrored)
# Link: https://github.com/RetroDECK/Vita3K-bin/releases
# ------------------------------------------------------------------------------
@@ -367,7 +367,7 @@ export DESIRED_QT5_RUNTIME_VERSION="5.15-25.08"
# ==============================================================================
-# Component Desired Versions — Future
+# Component Desired Versions - Future
# ==============================================================================
# New components being developed in the Cooker branch for an upcoming major release.
# These components are planned for future inclusion and are not yet part of the
@@ -378,7 +378,7 @@ export DESIRED_QT5_RUNTIME_VERSION="5.15-25.08"
# ------------------------------------------------------------------------------
-# DOSBox-X — Enhanced DOSBox Engine
+# DOSBox-X - Enhanced DOSBox Engine
# ------------------------------------------------------------------------------
# MAIN (Stable)
# export DOSBOX_X_DESIRED_VERSION=""
@@ -388,7 +388,7 @@ export DESIRED_QT5_RUNTIME_VERSION="5.15-25.08"
# ------------------------------------------------------------------------------
-# Eden — Nintendo Switch Emulator
+# Eden - Nintendo Switch Emulator
# ------------------------------------------------------------------------------
# MAIN (Stable)
# export EDEN_DESIRED_VERSION=""
@@ -398,7 +398,7 @@ export DESIRED_QT5_RUNTIME_VERSION="5.15-25.08"
# ------------------------------------------------------------------------------
-# EKA2L1 — Symbian OS Emulator
+# EKA2L1 - Symbian OS Emulator
# ------------------------------------------------------------------------------
# MAIN (Stable)
# export EKA2L1_DESIRED_VERSION=""
@@ -408,7 +408,7 @@ export DESIRED_QT5_RUNTIME_VERSION="5.15-25.08"
# ------------------------------------------------------------------------------
-# Flycast — Dreamcast Emulator
+# Flycast - Dreamcast Emulator
# ------------------------------------------------------------------------------
# MAIN (Stable)
# export FLYCAST_DESIRED_VERSION=""
@@ -418,7 +418,7 @@ export DESIRED_QT5_RUNTIME_VERSION="5.15-25.08"
# ------------------------------------------------------------------------------
-# Gargoyle — Interactive Fiction Emulator
+# Gargoyle - Interactive Fiction Emulator
# ------------------------------------------------------------------------------
# MAIN (Stable)
# export GARGOYLE_DESIRED_VERSION=""
@@ -428,7 +428,7 @@ export DESIRED_QT5_RUNTIME_VERSION="5.15-25.08"
# ------------------------------------------------------------------------------
-# Hypseus — Laser Disc Arcade Emulator
+# Hypseus - Laser Disc Arcade Emulator
# ------------------------------------------------------------------------------
# MAIN (Stable)
# export HYPSEUS_DESIRED_VERSION=""
@@ -438,7 +438,7 @@ export DESIRED_QT5_RUNTIME_VERSION="5.15-25.08"
# ------------------------------------------------------------------------------
-# Ikeman Go — Fighting Engine
+# Ikeman Go - Fighting Engine
# ------------------------------------------------------------------------------
# MAIN (Stable)
# export IKEMANGO_DESIRED_VERSION=""
@@ -448,7 +448,7 @@ export DESIRED_QT5_RUNTIME_VERSION="5.15-25.08"
# ------------------------------------------------------------------------------
-# KEGS — Apple IIGS Emulator
+# KEGS - Apple IIGS Emulator
# ------------------------------------------------------------------------------
# MAIN (Stable)
# export KEGS_DESIRED_VERSION="1.38"
@@ -458,7 +458,7 @@ export DESIRED_QT5_RUNTIME_VERSION="5.15-25.08"
# ------------------------------------------------------------------------------
-# Lindbergh — SEGA Lindbergh Emulator
+# Lindbergh - SEGA Lindbergh Emulator
# ------------------------------------------------------------------------------
# MAIN (Stable)
# export LINDBERGH_DESIRED_VERSION=""
@@ -468,7 +468,7 @@ export DESIRED_QT5_RUNTIME_VERSION="5.15-25.08"
# ------------------------------------------------------------------------------
-# Mudlet — MUD Client
+# Mudlet - MUD Client
# ------------------------------------------------------------------------------
# MAIN (Stable)
# export MUDLET_DESIRED_VERSION="4.19.1"
@@ -478,7 +478,7 @@ export DESIRED_QT5_RUNTIME_VERSION="5.15-25.08"
# ------------------------------------------------------------------------------
-# Raze — Duke Nukem Engine
+# Raze - Duke Nukem Engine
# ------------------------------------------------------------------------------
# MAIN (Stable)
# export RAZE_DESIRED_VERSION=""
@@ -488,7 +488,7 @@ export DESIRED_QT5_RUNTIME_VERSION="5.15-25.08"
# ------------------------------------------------------------------------------
-# ScummVM — Point-and-Click Adventure Engine
+# ScummVM - Point-and-Click Adventure Engine
# ------------------------------------------------------------------------------
# MAIN (Stable)
# export SCUMMVM_DESIRED_VERSION=""
@@ -498,7 +498,7 @@ export DESIRED_QT5_RUNTIME_VERSION="5.15-25.08"
# ------------------------------------------------------------------------------
-# ShadPS4 — PlayStation 4 Emulator
+# ShadPS4 - PlayStation 4 Emulator
# ------------------------------------------------------------------------------
# MAIN (Stable)
# export SHADPS4_DESIRED_VERSION=""
@@ -508,7 +508,7 @@ export DESIRED_QT5_RUNTIME_VERSION="5.15-25.08"
# ------------------------------------------------------------------------------
-# SimCoupe — SAM Coupé Emulator
+# SimCoupe - SAM Coupé Emulator
# ------------------------------------------------------------------------------
# MAIN (Stable)
# export SIMCOUPE_DESIRED_VERSION=""
@@ -518,7 +518,7 @@ export DESIRED_QT5_RUNTIME_VERSION="5.15-25.08"
# ------------------------------------------------------------------------------
-# SuperModel — SEGA Model 3 Arcade Emulator
+# SuperModel - SEGA Model 3 Arcade Emulator
# ------------------------------------------------------------------------------
# MAIN (Stable)
# export SUPERMODEL_DESIRED_VERSION=""
@@ -528,7 +528,16 @@ export DESIRED_QT5_RUNTIME_VERSION="5.15-25.08"
# ------------------------------------------------------------------------------
-# UZDoom — Modern Doom Engine
+# Tsugaru - FM TOWNS Emulator
+# ------------------------------------------------------------------------------
+# MAIN (Stable)
+# export SUPERMODEL_DESIRED_VERSION=""
+
+# COOKER (Override)
+ export TSUGARU_DESIRED_VERSION="newest"
+
+# ------------------------------------------------------------------------------
+# UZDoom - Modern Doom Engine
# ------------------------------------------------------------------------------
# MAIN (Stable)
# export UZDOOM_DESIRED_VERSION=""
@@ -538,7 +547,7 @@ export DESIRED_QT5_RUNTIME_VERSION="5.15-25.08"
# ------------------------------------------------------------------------------
-# VPinball — Virtual Pinball Engine
+# VPinball - Virtual Pinball Engine
# ------------------------------------------------------------------------------
# MAIN (Stable)
# export VPINBALL_DESIRED_VERSION=""
@@ -548,7 +557,7 @@ export DESIRED_QT5_RUNTIME_VERSION="5.15-25.08"
# ------------------------------------------------------------------------------
-# Xenia — Xbox 360 Emulator
+# Xenia - Xbox 360 Emulator
# ------------------------------------------------------------------------------
# MAIN (Stable)
# export XENIA_DESIRED_VERSION=""
diff --git a/azahar/assets/rd_config/qt-config.ini b/azahar/assets/rd_config/qt-config.ini
index 7a31c163..4e84b974 100644
--- a/azahar/assets/rd_config/qt-config.ini
+++ b/azahar/assets/rd_config/qt-config.ini
@@ -5,11 +5,11 @@ enable_audio_stretching=true
enable_audio_stretching\default=true
enable_realtime_audio=false
enable_realtime_audio\default=true
-input_device=auto
+input_device=Auto
input_device\default=true
input_type=0
input_type\default=true
-output_device=auto
+output_device=Auto
output_device\default=true
output_type=0
output_type\default=true
@@ -81,7 +81,7 @@ profiles\1\circle_pad="axis_x:0,axis_y:1,deadzone:0.100000,engine:sdl,guid:03007
profiles\1\circle_pad\default=false
profiles\1\motion_device=engine:cemuhookudp
profiles\1\motion_device\default=false
-profiles\1\name=default
+profiles\1\name=Default
profiles\1\name\default=true
profiles\1\touch_device=engine:emu_window
profiles\1\touch_device\default=true
@@ -325,6 +325,8 @@ pp_shader_name=None (builtin)
pp_shader_name\default=true
render_3d=0
render_3d\default=true
+render_3d_which_display=0
+render_3d_which_display\default=true
screen_bottom_leftright_padding=0
screen_bottom_leftright_padding\default=true
screen_bottom_stretch=false
@@ -341,6 +343,8 @@ screen_top_topbottom_padding=0
screen_top_topbottom_padding\default=true
small_screen_position=2
small_screen_position\default=true
+swap_eyes_3d=false
+swap_eyes_3d\default=true
swap_screen=false
swap_screen\default=true
upright_screen=false
@@ -397,12 +401,16 @@ use_hw_shader=true
use_hw_shader\default=true
use_shader_jit=true
use_shader_jit\default=true
+use_vsync=true
+use_vsync\default=true
use_vsync_new=false
use_vsync_new\default=false
[System]
allow_plugin_loader=true
allow_plugin_loader\default=true
+apply_region_free_patch=true
+apply_region_free_patch\default=true
enable_required_online_lle_modules=true
enable_required_online_lle_modules\default=false
init_clock=0
@@ -496,6 +504,8 @@ Paths\gamedirs\3\expanded=true
Paths\gamedirs\3\expanded\default=true
Paths\gamedirs\3\path=RETRODECKROMSDIR/n3ds
Paths\gamedirs\size=3
+Paths\inserted_cartridge=
+Paths\inserted_cartridge\default=true
Paths\language=en
Paths\language\default=false
Paths\last_artic_base_addr=
@@ -574,8 +584,8 @@ Shortcuts\Main%20Window\Load%20File\KeySeq=
Shortcuts\Main%20Window\Load%20File\KeySeq\default=false
Shortcuts\Main%20Window\Load%20from%20Newest%20Non-Quicksave%20Slot\Context=1
Shortcuts\Main%20Window\Load%20from%20Newest%20Non-Quicksave%20Slot\Context\default=true
-Shortcuts\Main%20Window\Load%20from%20Newest%20Non-Quicksave%20Slot\KeySeq=Ctrl+V
-Shortcuts\Main%20Window\Load%20from%20Newest%20Non-Quicksave%20Slot\KeySeq\default=true
+Shortcuts\Main%20Window\Load%20from%20Newest%20Non-Quicksave%20Slot\KeySeq=
+Shortcuts\Main%20Window\Load%20from%20Newest%20Non-Quicksave%20Slot\KeySeq\default=false
Shortcuts\Main%20Window\Load%20from%20Newest%20Slot\Context=1
Shortcuts\Main%20Window\Load%20from%20Newest%20Slot\Context\default=true
Shortcuts\Main%20Window\Load%20from%20Newest%20Slot\KeySeq=Ctrl+A
@@ -584,34 +594,34 @@ Shortcuts\Main%20Window\Multiplayer%20Browse%20Public%20Game%20Lobby\Context=2
Shortcuts\Main%20Window\Multiplayer%20Browse%20Public%20Game%20Lobby\Context\default=true
Shortcuts\Main%20Window\Multiplayer%20Browse%20Public%20Game%20Lobby\KeySeq=Ctrl+B
Shortcuts\Main%20Window\Multiplayer%20Browse%20Public%20Game%20Lobby\KeySeq\default=true
-Shortcuts\Main%20Window\Multiplayer%20Browse%20Public%20Rooms\Context=2
-Shortcuts\Main%20Window\Multiplayer%20Browse%20Public%20Rooms\Context\default=true
-Shortcuts\Main%20Window\Multiplayer%20Browse%20Public%20Rooms\KeySeq=Ctrl+B
-Shortcuts\Main%20Window\Multiplayer%20Browse%20Public%20Rooms\KeySeq\default=true
-Shortcuts\Main%20Window\Multiplayer%20Create%20Room\Context=2
-Shortcuts\Main%20Window\Multiplayer%20Create%20Room\Context\default=true
-Shortcuts\Main%20Window\Multiplayer%20Create%20Room\KeySeq=Ctrl+N
-Shortcuts\Main%20Window\Multiplayer%20Create%20Room\KeySeq\default=true
+Shortcuts\Main%20Window\Multiplayer%20Browse%20Public%20Rooms\Context=1
+Shortcuts\Main%20Window\Multiplayer%20Browse%20Public%20Rooms\Context\default=false
+Shortcuts\Main%20Window\Multiplayer%20Browse%20Public%20Rooms\KeySeq=
+Shortcuts\Main%20Window\Multiplayer%20Browse%20Public%20Rooms\KeySeq\default=false
+Shortcuts\Main%20Window\Multiplayer%20Create%20Room\Context=1
+Shortcuts\Main%20Window\Multiplayer%20Create%20Room\Context\default=false
+Shortcuts\Main%20Window\Multiplayer%20Create%20Room\KeySeq=
+Shortcuts\Main%20Window\Multiplayer%20Create%20Room\KeySeq\default=false
Shortcuts\Main%20Window\Multiplayer%20Direct%20Connect%20to%20Room\Context=1
Shortcuts\Main%20Window\Multiplayer%20Direct%20Connect%20to%20Room\Context\default=false
Shortcuts\Main%20Window\Multiplayer%20Direct%20Connect%20to%20Room\KeySeq=
Shortcuts\Main%20Window\Multiplayer%20Direct%20Connect%20to%20Room\KeySeq\default=false
-Shortcuts\Main%20Window\Multiplayer%20Leave%20Room\Context=2
-Shortcuts\Main%20Window\Multiplayer%20Leave%20Room\Context\default=true
-Shortcuts\Main%20Window\Multiplayer%20Leave%20Room\KeySeq=Ctrl+L
-Shortcuts\Main%20Window\Multiplayer%20Leave%20Room\KeySeq\default=true
+Shortcuts\Main%20Window\Multiplayer%20Leave%20Room\Context=1
+Shortcuts\Main%20Window\Multiplayer%20Leave%20Room\Context\default=false
+Shortcuts\Main%20Window\Multiplayer%20Leave%20Room\KeySeq=
+Shortcuts\Main%20Window\Multiplayer%20Leave%20Room\KeySeq\default=false
Shortcuts\Main%20Window\Multiplayer%20Show%20Current%20Room\Context=2
Shortcuts\Main%20Window\Multiplayer%20Show%20Current%20Room\Context\default=true
Shortcuts\Main%20Window\Multiplayer%20Show%20Current%20Room\KeySeq=Ctrl+R
Shortcuts\Main%20Window\Multiplayer%20Show%20Current%20Room\KeySeq\default=true
Shortcuts\Main%20Window\Quick%20Load\Context=1
Shortcuts\Main%20Window\Quick%20Load\Context\default=true
-Shortcuts\Main%20Window\Quick%20Load\KeySeq=
-Shortcuts\Main%20Window\Quick%20Load\KeySeq\default=true
+Shortcuts\Main%20Window\Quick%20Load\KeySeq=Ctrl+A
+Shortcuts\Main%20Window\Quick%20Load\KeySeq\default=false
Shortcuts\Main%20Window\Quick%20Save\Context=1
Shortcuts\Main%20Window\Quick%20Save\Context\default=true
-Shortcuts\Main%20Window\Quick%20Save\KeySeq=
-Shortcuts\Main%20Window\Quick%20Save\KeySeq\default=true
+Shortcuts\Main%20Window\Quick%20Save\KeySeq=Ctrl+S
+Shortcuts\Main%20Window\Quick%20Save\KeySeq\default=false
Shortcuts\Main%20Window\Remove%20Amiibo\Context=2
Shortcuts\Main%20Window\Remove%20Amiibo\Context\default=true
Shortcuts\Main%20Window\Remove%20Amiibo\KeySeq=Alt+N
@@ -622,12 +632,12 @@ Shortcuts\Main%20Window\Restart%20Emulation\KeySeq=Ctrl+R
Shortcuts\Main%20Window\Restart%20Emulation\KeySeq\default=false
Shortcuts\Main%20Window\Rotate%20Screens%20Upright\Context=1
Shortcuts\Main%20Window\Rotate%20Screens%20Upright\Context\default=true
-Shortcuts\Main%20Window\Rotate%20Screens%20Upright\KeySeq=
+Shortcuts\Main%20Window\Rotate%20Screens%20Upright\KeySeq=Ctrl+L
Shortcuts\Main%20Window\Rotate%20Screens%20Upright\KeySeq\default=false
Shortcuts\Main%20Window\Save%20to%20Oldest%20Non-Quicksave%20Slot\Context=1
Shortcuts\Main%20Window\Save%20to%20Oldest%20Non-Quicksave%20Slot\Context\default=true
-Shortcuts\Main%20Window\Save%20to%20Oldest%20Non-Quicksave%20Slot\KeySeq=Ctrl+C
-Shortcuts\Main%20Window\Save%20to%20Oldest%20Non-Quicksave%20Slot\KeySeq\default=true
+Shortcuts\Main%20Window\Save%20to%20Oldest%20Non-Quicksave%20Slot\KeySeq=
+Shortcuts\Main%20Window\Save%20to%20Oldest%20Non-Quicksave%20Slot\KeySeq\default=false
Shortcuts\Main%20Window\Save%20to%20Oldest%20Slot\Context=1
Shortcuts\Main%20Window\Save%20to%20Oldest%20Slot\Context\default=true
Shortcuts\Main%20Window\Save%20to%20Oldest%20Slot\KeySeq=Ctrl+S
@@ -640,9 +650,9 @@ Shortcuts\Main%20Window\Swap%20Screens\Context=1
Shortcuts\Main%20Window\Swap%20Screens\Context\default=true
Shortcuts\Main%20Window\Swap%20Screens\KeySeq=Ctrl+Tab
Shortcuts\Main%20Window\Swap%20Screens\KeySeq\default=false
-Shortcuts\Main%20Window\Toggle%203D\Context=1
-Shortcuts\Main%20Window\Toggle%203D\Context\default=false
-Shortcuts\Main%20Window\Toggle%203D\KeySeq=
+Shortcuts\Main%20Window\Toggle%203D\Context=2
+Shortcuts\Main%20Window\Toggle%203D\Context\default=true
+Shortcuts\Main%20Window\Toggle%203D\KeySeq=F6
Shortcuts\Main%20Window\Toggle%203D\KeySeq\default=false
Shortcuts\Main%20Window\Toggle%20Custom%20Textures\Context=2
Shortcuts\Main%20Window\Toggle%20Custom%20Textures\Context\default=true
@@ -662,16 +672,16 @@ Shortcuts\Main%20Window\Toggle%20Per-Application%20Speed\KeySeq=
Shortcuts\Main%20Window\Toggle%20Per-Application%20Speed\KeySeq\default=false
Shortcuts\Main%20Window\Toggle%20Screen%20Layout\Context=1
Shortcuts\Main%20Window\Toggle%20Screen%20Layout\Context\default=true
-Shortcuts\Main%20Window\Toggle%20Screen%20Layout\KeySeq=Ctrl+L
+Shortcuts\Main%20Window\Toggle%20Screen%20Layout\KeySeq=
Shortcuts\Main%20Window\Toggle%20Screen%20Layout\KeySeq\default=false
Shortcuts\Main%20Window\Toggle%20Status%20Bar\Context=1
Shortcuts\Main%20Window\Toggle%20Status%20Bar\Context\default=true
-Shortcuts\Main%20Window\Toggle%20Status%20Bar\KeySeq=Ctrl+S
-Shortcuts\Main%20Window\Toggle%20Status%20Bar\KeySeq\default=true
+Shortcuts\Main%20Window\Toggle%20Status%20Bar\KeySeq=
+Shortcuts\Main%20Window\Toggle%20Status%20Bar\KeySeq\default=false
Shortcuts\Main%20Window\Toggle%20Texture%20Dumping\Context=1
Shortcuts\Main%20Window\Toggle%20Texture%20Dumping\Context\default=false
Shortcuts\Main%20Window\Toggle%20Texture%20Dumping\KeySeq=
-Shortcuts\Main%20Window\Toggle%20Texture%20Dumping\KeySeq\default=false
+Shortcuts\Main%20Window\Toggle%20Texture%20Dumping\KeySeq\default=true
Shortcuts\Main%20Window\Toggle%20Turbo%20Mode\Context=2
Shortcuts\Main%20Window\Toggle%20Turbo%20Mode\Context\default=true
Shortcuts\Main%20Window\Toggle%20Turbo%20Mode\KeySeq=Ctrl+T
diff --git a/azahar/component_prepare.sh b/azahar/component_prepare.sh
index 9e3642e3..ee8f8c32 100755
--- a/azahar/component_prepare.sh
+++ b/azahar/component_prepare.sh
@@ -12,6 +12,9 @@ if [[ "$action" == "reset" ]]; then # Run reset-only commands
create_dir -d "$azahar_config_path"
create_dir -d "$azahar_mods_path"
create_dir -d "$azahar_textures_path"
+ create_dir "$screenshots_path/Azahar"
+ create_dir "$saves_path/n3ds/azahar/nand/"
+ create_dir "$saves_path/n3ds/azahar/sdmc/"
cp -fT "$component_config/qt-config.ini" "$azahar_config_path/qt-config.ini"
@@ -21,9 +24,23 @@ if [[ "$action" == "reset" ]]; then # Run reset-only commands
set_setting_value "$azahar_qtconfig" "Paths\gamedirs\3\path" "$roms_path/n3ds" "azahar"
set_setting_value "$azahar_qtconfig" "Paths\screenshotPath" "$screenshots_path/Azahar" "azahar"
- create_dir "$screenshots_path/Azahar"
- create_dir "$saves_path/n3ds/azahar/nand/"
- create_dir "$saves_path/n3ds/azahar/sdmc/"
+ dir_prep "$mods_path/Azahar/mods" "$azahar_mods_path"
+ dir_prep "$texture_packs_path/Azahar/textures" "$azahar_textures_path"
+ dir_prep "$shaders_path/Azahar/" "$azahar_shaders_path"
+ dir_prep "$logs_path/Azahar/" "$azahar_logs_path"
+ dir_prep "$cheats_path/Azahar/" "$azahar_cheats_path"
+fi
+
+if [[ "$action" == "postmove" ]]; then # Run commands that apply to both resets and moves
+ log i "----------------------"
+ log i "Post-moving $component_name"
+ log i "----------------------"
+
+ set_setting_value "$azahar_qtconfig" "use_custom_storage" "true" "azahar"
+ set_setting_value "$azahar_qtconfig" "nand_directory" "$saves_path/n3ds/azahar/nand/" "azahar"
+ set_setting_value "$azahar_qtconfig" "sdmc_directory" "$saves_path/n3ds/azahar/sdmc/" "azahar"
+ set_setting_value "$azahar_qtconfig" "Paths\gamedirs\3\path" "$roms_path/n3ds" "azahar"
+ set_setting_value "$azahar_qtconfig" "Paths\screenshotPath" "$screenshots_path/Azahar" "azahar"
dir_prep "$mods_path/Azahar/mods" "$azahar_mods_path"
dir_prep "$texture_packs_path/Azahar/textures" "$azahar_textures_path"
diff --git a/azahar/component_update.sh b/azahar/component_update.sh
index 3c680729..d6f43ce0 100644
--- a/azahar/component_update.sh
+++ b/azahar/component_update.sh
@@ -29,3 +29,8 @@ if [[ $(check_version_is_older_than "$version_being_updated" "0.10.0b") == "true
move "$texture_packs_path/citra/" "$texture_packs_path/n3ds/azahar/"
fi
fi
+
+if [[ $(check_version_is_older_than "$version_being_updated" "0.10.2b") == "true" ]]; then
+ log i "0.10.2b Upgrade - Reset: Azahar"
+ prepare_component "reset" "azahar"
+fi
diff --git a/dolphin/component_update.sh b/dolphin/component_update.sh
index fd90875b..de57f082 100644
--- a/dolphin/component_update.sh
+++ b/dolphin/component_update.sh
@@ -53,5 +53,5 @@ fi
if [[ -d "$dolphin_dynamic_input_textures_path" ]]; then # Refresh installed textures if they have been enabled
log i "Refreshing installed textures for Dolphin..."
- rsync -rlD --mkpath "/app/retrodeck/components/shared-data/DynamicInputTextures/" "$dolphin_dynamic_input_textures_path/" && log i "Done"
+ rsync -rlD --delete --mkpath "/app/retrodeck/components/shared-data/DynamicInputTextures/" "$dolphin_dynamic_input_textures_path/" && log i "Done"
fi
diff --git a/framework/component_prepare.sh b/framework/component_prepare.sh
index cd80819d..365534b8 100755
--- a/framework/component_prepare.sh
+++ b/framework/component_prepare.sh
@@ -34,7 +34,7 @@ if [[ "$action" == "reset" ]]; then # Update the paths of all folders in retrode
done < <(jq -r '.paths | to_entries[] | "\(.key)=\(.value)"' "$rd_conf")
create_dir -d "$XDG_CONFIG_HOME/retrodeck/graphics"
- cp -rf "/app/retrodeck/graphics/folder-iconsets" "$XDG_CONFIG_HOME/retrodeck/graphics/"
+ rsync -rlD --delete --mkpath "/app/retrodeck/graphics/folder-iconsets/" "$XDG_CONFIG_HOME/retrodeck/graphics/folder-iconsets/"
fi
if [[ "$action" == "postmove" ]]; then # Update the paths of any folders that came with the retrodeck folder during a move
diff --git a/framework/component_update.sh b/framework/component_update.sh
index 0e28bdcd..af68b2aa 100644
--- a/framework/component_update.sh
+++ b/framework/component_update.sh
@@ -506,3 +506,9 @@ if [[ $(check_version_is_older_than "$version_being_updated" "0.10.0b") == "true
cp -rf "/app/retrodeck/graphics/folder-iconsets" "$XDG_CONFIG_HOME/retrodeck/graphics/"
set_setting_value "$rd_conf" "iconset" "lahrs-main" "retrodeck" "options"
fi
+
+#######################################
+# These actions happen at every update
+#######################################
+
+rsync -rlD --delete --mkpath "/app/retrodeck/graphics/folder-iconsets/" "$XDG_CONFIG_HOME/retrodeck/graphics/folder-iconsets/"
diff --git a/mame/component_functions.sh b/mame/component_functions.sh
index 2f2191d1..ae07cbe2 100755
--- a/mame/component_functions.sh
+++ b/mame/component_functions.sh
@@ -3,3 +3,22 @@
mame_config="$XDG_CONFIG_HOME/mame/ini/mame.ini"
mame_config_ui="$XDG_CONFIG_HOME/mame/ini/ui.ini"
mame_config_default="$XDG_CONFIG_HOME/mame/cfg/default.cfg"
+
+compress_chd() {
+ case "$1" in # Check platform-specific compression options
+ "psp" )
+ log d "Compressing PSP game $2 into $3"
+ /bin/bash "$rd_components/mame/component_launcher.sh" chdman_compression createdvd --hunksize 2048 -i "$2" -o "$3".chd -c zstd
+ ;;
+ "ps2" )
+ if [[ "$filename_extension" == "cue" ]]; then
+ /bin/bash "$rd_components/mame/component_launcher.sh" chdman_compression createcd -i "$2" -o "$3".chd
+ else
+ /bin/bash "$rd_components/mame/component_launcher.sh" chdman_compression createdvd -i "$2" -o "$3".chd -c zstd
+ fi
+ ;;
+ * )
+ /bin/bash "$rd_components/mame/component_launcher.sh" chdman_compression createcd -i "$2" -o "$3".chd
+ ;;
+ esac
+}
diff --git a/mame/component_launcher.sh b/mame/component_launcher.sh
index f83c50e9..81fd1f03 100755
--- a/mame/component_launcher.sh
+++ b/mame/component_launcher.sh
@@ -12,4 +12,9 @@ log i "RetroDECK is now launching $component_name"
log d "Library path is: $LD_LIBRARY_PATH"
log d "QT plugin path is: $QT_PLUGIN_PATH"
-exec "$component_path/bin/mame" "$@"
+if [[ "$1" == "chdman_compression" ]]; then
+ shift
+ exec "$component_path/bin/chdman" "$@"
+else
+ exec "$component_path/bin/mame" "$@"
+fi
diff --git a/melonds/component_prepare.sh b/melonds/component_prepare.sh
index 009cb177..b3e0b786 100755
--- a/melonds/component_prepare.sh
+++ b/melonds/component_prepare.sh
@@ -11,14 +11,11 @@ if [[ "$action" == "reset" ]]; then # Run reset-only commands
create_dir -d "$XDG_CONFIG_HOME/melonDS/"
cp -fv "$component_config/melonDS.toml" "$melonds_config"
-# set_setting_value "$melonds_config" "BIOS9Path" "$bios_path/bios9.bin" "DS" "melonds"
-# set_setting_value "$melonds_config" "BIOS7Path" "$bios_path/bios7.bin" "DS" "melonds"
-# set_setting_value "$melonds_config" "FirmwarePath" "$bios_path/firmware.bin" "DS" "melonds"
-# set_setting_value "$melonds_config" "SaveFilePath" "$saves_path/nds/melonds" "Instance0" "melonds"
-# set_setting_value "$melonds_config" "SavestatePath" "$states_path/nds/melonds" "Instance0" "melonds"
- sed -i "s#RETRODECKSTATESDIR#${states_path}#g" "$melonds_config"
- sed -i "s#RETRODECKSAVESDIR#${saves_path}#g" "$melonds_config"
- sed -i "s#RETRODECKBIOSDIR#${bios_path}#g" "$melonds_config"
+ set_setting_value "$melonds_config" "BIOS9Path" "\"$bios_path/bios9.bin\"" "melonds" "DS"
+ set_setting_value "$melonds_config" "BIOS7Path" "\"$bios_path/bios7.bin\"" "melonds" "DS"
+ set_setting_value "$melonds_config" "FirmwarePath" "\"$bios_path/firmware.bin\"" "melonds" "DS"
+ set_setting_value "$melonds_config" "SaveFilePath" "\"$saves_path/nds/melonds\"" "melonds" "Instance0"
+ set_setting_value "$melonds_config" "SavestatePath" "\"$states_path/nds/melonds\"" "melonds" "Instance0"
create_dir "$saves_path/nds/melonds"
create_dir "$states_path/nds/melonds"
dir_prep "$bios_path" "$XDG_CONFIG_HOME/melonDS/bios"
@@ -30,9 +27,9 @@ if [[ "$action" == "postmove" ]]; then # Run only post-move commands
log i "----------------------"
dir_prep "$bios_path" "$XDG_CONFIG_HOME/melonDS/bios"
- set_setting_value "$melonds_config" "BIOS9Path" "$bios_path/bios9.bin" "DS" "melonds"
- set_setting_value "$melonds_config" "BIOS7Path" "$bios_path/bios7.bin" "DS" "melonds"
- set_setting_value "$melonds_config" "FirmwarePath" "$bios_path/firmware.bin" "DS" "melonds"
- set_setting_value "$melonds_config" "SaveFilePath" "$saves_path/nds/melonds" "Instance0" "melonds"
- set_setting_value "$melonds_config" "SavestatePath" "$states_path/nds/melonds" "Instance0" "melonds"
+ set_setting_value "$melonds_config" "BIOS9Path" "\"$bios_path/bios9.bin\"" "melonds" "DS"
+ set_setting_value "$melonds_config" "BIOS7Path" "\"$bios_path/bios7.bin\"" "melonds" "DS"
+ set_setting_value "$melonds_config" "FirmwarePath" "\"$bios_path/firmware.bin\"" "melonds" "DS"
+ set_setting_value "$melonds_config" "SaveFilePath" "\"$saves_path/nds/melonds\"" "melonds" "Instance0"
+ set_setting_value "$melonds_config" "SavestatePath" "\"$states_path/nds/melonds\"" "melonds" "Instance0"
fi
diff --git a/pcsx2/component_prepare.sh b/pcsx2/component_prepare.sh
index 43381638..7c8c3ef5 100755
--- a/pcsx2/component_prepare.sh
+++ b/pcsx2/component_prepare.sh
@@ -65,7 +65,7 @@ if [[ "$action" == "reset" ]]; then # Run reset-only commands
if [[ -d "$mods_path/PCSX2" && "$(ls -A "$mods_path/PCSX2")" ]]; then
backup_file="$backups_path/mods/PCSX2-$(date +%y%m%d).tar.gz"
create_dir "$(dirname "$backup_file")"
- tar -czf "$backup_file" -C "$mods_path/PCSX2" PCSX2
+ tar -czf "$backup_file" -C "$mods_path" PCSX2
log i "PCSX2 patches backed up to $backup_file"
fi
tar -xzf "$component_extras/pcsx2-patches.tar.gz" -C "$mods_path/PCSX2/patches" --overwrite
diff --git a/pico-8/component_launcher.sh b/pico-8/component_launcher.sh
index b5189250..7e1a55eb 100755
--- a/pico-8/component_launcher.sh
+++ b/pico-8/component_launcher.sh
@@ -1,3 +1,3 @@
#!/bin/bash
-exec "$bios_path/pico-8/pico8" "$@"
+exec "$bios_path/pico-8/pico8" -desktop_path "$screenshots_path" "$@"
diff --git a/pico-8/component_manifest.json b/pico-8/component_manifest.json
index f1159e9b..b368f1a3 100644
--- a/pico-8/component_manifest.json
+++ b/pico-8/component_manifest.json
@@ -6,6 +6,6 @@
"description": "PICO-8 is a fantasy console for playing tiny, retro-style games.",
"system_friendly_name": "PICO-8 Fantasy Console",
"component_type": "Emulator",
- "system": "pico-8"
+ "system": "pico8"
}
}
diff --git a/portmaster/assets/retrodeck.portmaster.zip b/portmaster/assets/retrodeck.portmaster.zip
deleted file mode 100644
index 009b8b15..00000000
Binary files a/portmaster/assets/retrodeck.portmaster.zip and /dev/null differ
diff --git a/portmaster/component_functions.sh b/portmaster/component_functions.sh
new file mode 100644
index 00000000..c8c85466
--- /dev/null
+++ b/portmaster/component_functions.sh
@@ -0,0 +1,15 @@
+#!/bin/bash
+
+portmaster_show(){
+ log d "Setting PortMaster visibility in ES-DE"
+ if [ "$1" = "true" ]; then
+ log d "\"$roms_path/portmaster/PortMaster.sh\" is not found, installing it"
+ install -Dm755 "$XDG_DATA_HOME/PortMaster/PortMaster.sh" "$roms_path/portmaster/PortMaster.sh" && log d "PortMaster is correctly showing in ES-DE"
+ set_setting_value "$rd_conf" "portmaster_show" "true" retrodeck "options"
+ elif [ "$1" = "false" ]; then
+ rm -rf "$roms_path/portmaster/PortMaster.sh" && log d "PortMaster is correctly hidden in ES-DE"
+ set_setting_value "$rd_conf" "portmaster_show" "false" retrodeck "options"
+ else
+ log e "\"$1\" is not a valid choice, quitting"
+ fi
+}
diff --git a/portmaster/component_recipe.json b/portmaster/component_recipe.json
index a0eb0d63..1763b06c 100755
--- a/portmaster/component_recipe.json
+++ b/portmaster/component_recipe.json
@@ -1,14 +1,14 @@
{
"portmaster": [
{
- "source_url": "$REPO_ROOT/$COMPONENT_NAME",
- "source_type": "local",
+ "source_url": "https://github.com/PortsMaster/PortMaster-GUI/releases/download/{VERSION}/retrodeck.portmaster.zip",
+ "source_type": "github_release",
"version": "$PORTMASTER_DESIRED_VERSION",
"extraction_type": "local",
"assets": [
{
"type": "file-rename",
- "source": "$REPO_ROOT/$COMPONENT_NAME/assets/retrodeck.portmaster.zip",
+ "source": "$WORKDIR/retrodeck.portmaster.zip",
"dest": "$COMPONENT_ARTIFACT_ROOT/PortMaster.zip"
},
{
diff --git a/primehack/assets/rd_config/config/Dolphin.ini b/primehack/assets/rd_config/config/Dolphin.ini
index 8de9d2b9..40ad614b 100644
--- a/primehack/assets/rd_config/config/Dolphin.ini
+++ b/primehack/assets/rd_config/config/Dolphin.ini
@@ -3,7 +3,7 @@ ID = 0d7f9276eb4e2200f7454c1bf3d780e0
Enabled = False
[Core]
InitialPrimeHackRun = True
-SIDevice0 = 7
+SIDevice0 = 0
SIDevice1 = 0
SIDevice2 = 0
SIDevice3 = 0
diff --git a/primehack/assets/rd_config/config/Profiles/Wiimote/RD-MorphBall-evdev.ini b/primehack/assets/rd_config/config/Profiles/Wiimote/RD-MorphBall-evdev.ini
new file mode 100644
index 00000000..d154ed47
--- /dev/null
+++ b/primehack/assets/rd_config/config/Profiles/Wiimote/RD-MorphBall-evdev.ini
@@ -0,0 +1,60 @@
+[Profile]
+Device = evdev/0/Microsoft X-Box 360 pad 0
+Buttons/A = `Full Axis 5+`
+Buttons/1 = SELECT
+Buttons/2 = START
+Buttons/- = TL
+Buttons/+ = TR
+Tilt/Modifier/Range = 50.
+IMUIR/Enabled = False
+Extension = Nunchuk
+Nunchuk/Buttons/C = THUMBL|WEST
+Nunchuk/Buttons/Z = `Full Axis 2+`
+Nunchuk/Stick/Up = `Axis 1-`
+Nunchuk/Stick/Down = `Axis 1+`
+Nunchuk/Stick/Left = `Axis 0-`
+Nunchuk/Stick/Right = `Axis 0+`
+Nunchuk/Stick/Modifier/Range = 50.
+Nunchuk/Stick/Calibration = 100.00 101.96 108.24 110.71 112.28 113.66 108.24 101.96 100.00 101.96 107.57 108.29 108.39 107.84 107.65 101.96 100.00 101.96 108.24 114.09 118.05 120.27 108.24 101.96 100.00 101.96 108.24 110.20 110.40 107.81 107.65 101.96
+Nunchuk/Tilt/Modifier/Range = 50.
+Nunchuk/Shake/Y = LSHIFT & (`Axis Y-` | `Axis Y+` | `Axis X-` | `Axis X+`)
+Classic/Left Stick/Modifier/Range = 50.
+Classic/Right Stick/Modifier/Range = 50.
+Guitar/Stick/Modifier/Range = 50.
+Drums/Stick/Modifier/Range = 50.
+Turntable/Stick/Modifier/Range = 50.
+uDraw/Stylus/Modifier/Range = 50.
+Drawsome/Stylus/Modifier/Range = 50.
+D-Pad/Down = NORTH
+PrimeHack/Beam 1 = TR&`Axis 7-`
+PrimeHack/Beam 2 = TR&`Axis 6+`
+PrimeHack/Beam 3 = TR&`Axis 7+`
+PrimeHack/Beam 4 = TR&`Axis 6-`
+PrimeHack/Next Beam = `Axis 6+`&!(TL|TR)
+PrimeHack/Previous Beam = `Axis 6-`&!(TL|TR)
+PrimeHack/Visor 1 = TL&`Axis 7-`
+PrimeHack/Visor 2 = TL&`Axis 6+`
+PrimeHack/Visor 3 = TL&`Axis 7+`
+PrimeHack/Visor 4 = TL&`Axis 6-`
+PrimeHack/Next Visor = `Axis 7-`&!(TL|TR)
+PrimeHack/Previous Visor = `Axis 7+`&!(TL|TR)
+PrimeHack/MorphBallProfile = Disabled
+Camera Control/Modifier/Range = 50.
+PrimeHack/Grapple Lasso = `Full Axis 2+`
+Source = 3
+Buttons/Down = NORTH
+PrimeHack/Mode = 1
+Camera Control/Up = `Axis 4-`
+Camera Control/Down = `Axis 4+`
+Camera Control/Left = `Axis 3-`
+Camera Control/Right = `Axis 3+`
+Camera Control/Dead Zone = 10.
+Nunchuk/Stick/Dead Zone = 10.
+Rumble/Motor = Strong
+PrimeHack/Enable Visor Menu = True
+Camera Control/Calibration = 100.00 101.96 108.23 111.79 112.84 115.20 108.24 101.96 100.00 101.96 108.24 111.14 110.70 110.55 108.24 101.96 100.00 101.96 108.24 118.75 119.78 119.67 108.24 101.96 100.00 101.96 108.24 111.53 114.48 114.91 108.13 101.96
+PrimeHack/Enable Beam Menu = True
+Nunchuk/Stick/Virtual Notches = 5.
+Buttons/B = EAST
+PrimeHack/AltProfile = Disabled
+PrimeHack/Spring Ball = SOUTH
diff --git a/primehack/assets/rd_config/config/Profiles/Wiimote/RD-PrimeHack-evdev.ini b/primehack/assets/rd_config/config/Profiles/Wiimote/RD-PrimeHack-evdev.ini
new file mode 100644
index 00000000..a93d821c
--- /dev/null
+++ b/primehack/assets/rd_config/config/Profiles/Wiimote/RD-PrimeHack-evdev.ini
@@ -0,0 +1,123 @@
+[Wiimote1]
+Device = evdev/0/Microsoft X-Box 360 pad 0
+Buttons/A = `Full Axis 5+`
+Buttons/1 = SELECT
+Buttons/2 = START
+Buttons/- = TL
+Buttons/+ = TR
+Tilt/Modifier/Range = 50.
+IMUIR/Enabled = False
+Extension = Nunchuk
+Nunchuk/Buttons/C = THUMBL|WEST
+Nunchuk/Buttons/Z = `Full Axis 2+`
+Nunchuk/Stick/Dead Zone = 10.
+Nunchuk/Stick/Up = `Axis 1-`
+Nunchuk/Stick/Down = `Axis 1+`
+Nunchuk/Stick/Left = `Axis 0-`
+Nunchuk/Stick/Right = `Axis 0+`
+Nunchuk/Stick/Modifier/Range = 50.
+Nunchuk/Stick/Calibration = 100.00 101.96 108.24 110.71 112.28 113.66 108.24 101.96 100.00 101.96 107.57 108.29 108.39 107.84 107.65 101.96 100.00 101.96 108.24 114.09 118.05 120.27 108.24 101.96 100.00 101.96 108.24 110.20 110.40 107.81 107.65 101.96
+Nunchuk/Tilt/Modifier/Range = 50.
+Nunchuk/Shake/Y = LSHIFT & (`Axis Y-` | `Axis Y+` | `Axis X-` | `Axis X+`)
+Classic/Left Stick/Modifier/Range = 50.
+Classic/Right Stick/Modifier/Range = 50.
+Guitar/Stick/Modifier/Range = 50.
+Drums/Stick/Modifier/Range = 50.
+Turntable/Stick/Modifier/Range = 50.
+uDraw/Stylus/Modifier/Range = 50.
+Drawsome/Stylus/Modifier/Range = 50.
+D-Pad/Down = NORTH
+PrimeHack/Beam 1 = TR&`Axis 7-`
+PrimeHack/Beam 2 = TR&`Axis 6+`
+PrimeHack/Beam 3 = TR&`Axis 7+`
+PrimeHack/Beam 4 = TR&`Axis 6-`
+PrimeHack/Next Beam = `Axis 6+`&!(TL|TR)
+PrimeHack/Previous Beam = `Axis 6-`&!(TL|TR)
+PrimeHack/Visor 1 = TL&`Axis 7-`
+PrimeHack/Visor 2 = TL&`Axis 6+`
+PrimeHack/Visor 3 = TL&`Axis 7+`
+PrimeHack/Visor 4 = TL&`Axis 6-`
+PrimeHack/Next Visor = `Axis 7-`&!(TL|TR)
+PrimeHack/Previous Visor = `Axis 7+`&!(TL|TR)
+PrimeHack/MorphBallProfile = RD-MorphBall-evdev
+Camera Control/Modifier/Range = 50.
+PrimeHack/Grapple Lasso = EAST
+Source = 3
+Buttons/Down = NORTH
+PrimeHack/Mode = 1
+Camera Control/Up = `Axis 4-`
+Camera Control/Down = `Axis 4+`
+Camera Control/Left = `Axis 3-`
+Camera Control/Right = `Axis 3+`
+Camera Control/Dead Zone = 10.
+Rumble/Motor = Strong
+PrimeHack/Enable Visor Menu = True
+Camera Control/Calibration = 100.00 101.96 108.23 111.79 112.84 115.20 108.24 101.96 100.00 101.96 108.24 111.14 110.70 110.55 108.24 101.96 100.00 101.96 108.24 118.75 119.78 119.67 108.24 101.96 100.00 101.96 108.24 111.53 114.48 114.91 108.13 101.96
+PrimeHack/Enable Beam Menu = True
+Nunchuk/Stick/Virtual Notches = 5.
+Buttons/B = SOUTH
+PrimeHack/AltProfile = livedeht1_morph
+[Wiimote2]
+Device = XInput2/0/Virtual core pointer
+Tilt/Modifier/Range = 50.
+Nunchuk/Stick/Modifier/Range = 50.
+Nunchuk/Tilt/Modifier/Range = 50.
+Classic/Left Stick/Modifier/Range = 50.
+Classic/Right Stick/Modifier/Range = 50.
+Guitar/Stick/Modifier/Range = 50.
+Drums/Stick/Modifier/Range = 50.
+Turntable/Stick/Modifier/Range = 50.
+uDraw/Stylus/Modifier/Range = 50.
+Drawsome/Stylus/Modifier/Range = 50.
+PrimeHack/MorphBallProfile = Disabled
+Camera Control/Modifier/Range = 50.
+Source = 0
+PrimeHack/AltProfile = Disabled
+[Wiimote3]
+Device = XInput2/0/Virtual core pointer
+Tilt/Modifier/Range = 50.
+Nunchuk/Stick/Modifier/Range = 50.
+Nunchuk/Tilt/Modifier/Range = 50.
+Classic/Left Stick/Modifier/Range = 50.
+Classic/Right Stick/Modifier/Range = 50.
+Guitar/Stick/Modifier/Range = 50.
+Drums/Stick/Modifier/Range = 50.
+Turntable/Stick/Modifier/Range = 50.
+uDraw/Stylus/Modifier/Range = 50.
+Drawsome/Stylus/Modifier/Range = 50.
+PrimeHack/MorphBallProfile = Disabled
+Camera Control/Modifier/Range = 50.
+Source = 0
+PrimeHack/AltProfile = Disabled
+[Wiimote4]
+Device = XInput2/0/Virtual core pointer
+Tilt/Modifier/Range = 50.
+Nunchuk/Stick/Modifier/Range = 50.
+Nunchuk/Tilt/Modifier/Range = 50.
+Classic/Left Stick/Modifier/Range = 50.
+Classic/Right Stick/Modifier/Range = 50.
+Guitar/Stick/Modifier/Range = 50.
+Drums/Stick/Modifier/Range = 50.
+Turntable/Stick/Modifier/Range = 50.
+uDraw/Stylus/Modifier/Range = 50.
+Drawsome/Stylus/Modifier/Range = 50.
+PrimeHack/MorphBallProfile = Disabled
+Camera Control/Modifier/Range = 50.
+Source = 0
+PrimeHack/AltProfile = Disabled
+[BalanceBoard]
+Device = XInput2/0/Virtual core pointer
+Tilt/Modifier/Range = 50.
+Nunchuk/Stick/Modifier/Range = 50.
+Nunchuk/Tilt/Modifier/Range = 50.
+Classic/Left Stick/Modifier/Range = 50.
+Classic/Right Stick/Modifier/Range = 50.
+Guitar/Stick/Modifier/Range = 50.
+Drums/Stick/Modifier/Range = 50.
+Turntable/Stick/Modifier/Range = 50.
+uDraw/Stylus/Modifier/Range = 50.
+Drawsome/Stylus/Modifier/Range = 50.
+PrimeHack/MorphBallProfile = Disabled
+Camera Control/Modifier/Range = 50.
+Source = 0
+PrimeHack/AltProfile = Disabled
diff --git a/primehack/assets/rd_config/config/Profiles/Wiimote/WiimoteNew-RD-SDL-OG.ini b/primehack/assets/rd_config/config/Profiles/Wiimote/WiimoteNew-RD-SDL-OG.ini
new file mode 100644
index 00000000..ba4ec69d
--- /dev/null
+++ b/primehack/assets/rd_config/config/Profiles/Wiimote/WiimoteNew-RD-SDL-OG.ini
@@ -0,0 +1,107 @@
+[Wiimote1]
+Device = SDL/0/Microsoft X-Box 360 pad 0
+Buttons/A = `Full Axis 5+` | `Button 0`
+Buttons/B = `Button 1`
+Buttons/1 = `Button 7`
+Buttons/2 = `Button 6`
+Buttons/- = `Button 4`
+Buttons/+ = `Button 5`
+Buttons/Down = `Button 3`
+D-Pad/Down = `Button 3`
+Tilt/Modifier/Range = 50.0
+IMUIR/Enabled = False
+Extension = Nunchuk
+Nunchuk/Buttons/C = `Button 4`
+Nunchuk/Buttons/Z = `Full Axis 2+`
+Nunchuk/Stick/Dead Zone = 15.0
+Nunchuk/Stick/Up = `Axis 1-`
+Nunchuk/Stick/Down = `Axis 1+`
+Nunchuk/Stick/Left = `Axis 0-`
+Nunchuk/Stick/Right = `Axis 0+`
+Nunchuk/Stick/Modifier/Range = 50.0
+Nunchuk/Stick/Calibration = 100.00 141.42 100.00 141.42 100.00 141.42 100.00 141.42
+Nunchuk/Tilt/Modifier/Range = 50.0
+Classic/Left Stick/Modifier/Range = 50.0
+Classic/Right Stick/Modifier/Range = 50.0
+Guitar/Stick/Modifier/Range = 50.0
+Drums/Stick/Modifier/Range = 50.0
+Turntable/Stick/Modifier/Range = 50.0
+uDraw/Stylus/Modifier/Range = 50.0
+Drawsome/Stylus/Modifier/Range = 50.0
+Rumble/Motor = Weak
+PrimeHack/Beam 1 = `Button 5` & `Hat 0 N`
+PrimeHack/Beam 2 = `Button 5` & `Hat 0 S`
+PrimeHack/Beam 3 = `Button 5` & `Hat 0 W`
+PrimeHack/Beam 4 = `Button 5` & `Hat 0 E`
+PrimeHack/Visor 1 = !`Button 5` & `Hat 0 N`
+PrimeHack/Visor 2 = !`Button 5` & `Hat 0 S`
+PrimeHack/Visor 3 = !`Button 5` & `Hat 0 W`
+PrimeHack/Visor 4 = !`Button 5` & `Hat 0 E`
+PrimeHack/AltProfile = Disabled
+PrimeHack/Control Reticle When Locked-On = True
+Camera Control/Dead Zone = 15.0
+Camera Control/Up = `Axis 4-`
+Camera Control/Down = `Axis 4+`
+Camera Control/Left = `Axis 3-`
+Camera Control/Right = `Axis 3+`
+Camera Control/Modifier/Range = 50.0
+PrimeHack/Mode = 1
+PrimeHack/Tap Grapple Repeatedly To Pull = True
+PrimeHack/Spring Ball = `Button 10`
+PrimeHack/Grapple Lasso = `Button 2`
+[Wiimote2]
+Device = XInput2/0/Virtual core pointer
+Tilt/Modifier/Range = 50.0
+Nunchuk/Stick/Modifier/Range = 50.0
+Nunchuk/Tilt/Modifier/Range = 50.0
+Classic/Left Stick/Modifier/Range = 50.0
+Classic/Right Stick/Modifier/Range = 50.0
+Guitar/Stick/Modifier/Range = 50.0
+Drums/Stick/Modifier/Range = 50.0
+Turntable/Stick/Modifier/Range = 50.0
+uDraw/Stylus/Modifier/Range = 50.0
+Drawsome/Stylus/Modifier/Range = 50.0
+PrimeHack/AltProfile = Disabled
+Camera Control/Modifier/Range = 50.0
+[Wiimote3]
+Device = XInput2/0/Virtual core pointer
+Tilt/Modifier/Range = 50.0
+Nunchuk/Stick/Modifier/Range = 50.0
+Nunchuk/Tilt/Modifier/Range = 50.0
+Classic/Left Stick/Modifier/Range = 50.0
+Classic/Right Stick/Modifier/Range = 50.0
+Guitar/Stick/Modifier/Range = 50.0
+Drums/Stick/Modifier/Range = 50.0
+Turntable/Stick/Modifier/Range = 50.0
+uDraw/Stylus/Modifier/Range = 50.0
+Drawsome/Stylus/Modifier/Range = 50.0
+PrimeHack/AltProfile = Disabled
+Camera Control/Modifier/Range = 50.0
+[Wiimote4]
+Device = XInput2/0/Virtual core pointer
+Tilt/Modifier/Range = 50.0
+Nunchuk/Stick/Modifier/Range = 50.0
+Nunchuk/Tilt/Modifier/Range = 50.0
+Classic/Left Stick/Modifier/Range = 50.0
+Classic/Right Stick/Modifier/Range = 50.0
+Guitar/Stick/Modifier/Range = 50.0
+Drums/Stick/Modifier/Range = 50.0
+Turntable/Stick/Modifier/Range = 50.0
+uDraw/Stylus/Modifier/Range = 50.0
+Drawsome/Stylus/Modifier/Range = 50.0
+PrimeHack/AltProfile = Disabled
+Camera Control/Modifier/Range = 50.0
+[BalanceBoard]
+Device = XInput2/0/Virtual core pointer
+Tilt/Modifier/Range = 50.0
+Nunchuk/Stick/Modifier/Range = 50.0
+Nunchuk/Tilt/Modifier/Range = 50.0
+Classic/Left Stick/Modifier/Range = 50.0
+Classic/Right Stick/Modifier/Range = 50.0
+Guitar/Stick/Modifier/Range = 50.0
+Drums/Stick/Modifier/Range = 50.0
+Turntable/Stick/Modifier/Range = 50.0
+uDraw/Stylus/Modifier/Range = 50.0
+Drawsome/Stylus/Modifier/Range = 50.0
+PrimeHack/AltProfile = Disabled
+Camera Control/Modifier/Range = 50.0
diff --git a/primehack/assets/rd_config/config/WiimoteNew.ini b/primehack/assets/rd_config/config/WiimoteNew.ini
index ba4ec69d..e7c5dd46 100644
--- a/primehack/assets/rd_config/config/WiimoteNew.ini
+++ b/primehack/assets/rd_config/config/WiimoteNew.ini
@@ -1,107 +1,123 @@
[Wiimote1]
-Device = SDL/0/Microsoft X-Box 360 pad 0
-Buttons/A = `Full Axis 5+` | `Button 0`
-Buttons/B = `Button 1`
-Buttons/1 = `Button 7`
-Buttons/2 = `Button 6`
-Buttons/- = `Button 4`
-Buttons/+ = `Button 5`
-Buttons/Down = `Button 3`
-D-Pad/Down = `Button 3`
-Tilt/Modifier/Range = 50.0
+Device = evdev/0/Microsoft X-Box 360 pad 0
+Buttons/A = `Full Axis 5+`
+Buttons/1 = SELECT
+Buttons/2 = START
+Buttons/- = TL
+Buttons/+ = TR
+Tilt/Modifier/Range = 50.
IMUIR/Enabled = False
Extension = Nunchuk
-Nunchuk/Buttons/C = `Button 4`
+Nunchuk/Buttons/C = THUMBL|WEST
Nunchuk/Buttons/Z = `Full Axis 2+`
-Nunchuk/Stick/Dead Zone = 15.0
+Nunchuk/Stick/Dead Zone = 10.
Nunchuk/Stick/Up = `Axis 1-`
Nunchuk/Stick/Down = `Axis 1+`
Nunchuk/Stick/Left = `Axis 0-`
Nunchuk/Stick/Right = `Axis 0+`
-Nunchuk/Stick/Modifier/Range = 50.0
-Nunchuk/Stick/Calibration = 100.00 141.42 100.00 141.42 100.00 141.42 100.00 141.42
-Nunchuk/Tilt/Modifier/Range = 50.0
-Classic/Left Stick/Modifier/Range = 50.0
-Classic/Right Stick/Modifier/Range = 50.0
-Guitar/Stick/Modifier/Range = 50.0
-Drums/Stick/Modifier/Range = 50.0
-Turntable/Stick/Modifier/Range = 50.0
-uDraw/Stylus/Modifier/Range = 50.0
-Drawsome/Stylus/Modifier/Range = 50.0
-Rumble/Motor = Weak
-PrimeHack/Beam 1 = `Button 5` & `Hat 0 N`
-PrimeHack/Beam 2 = `Button 5` & `Hat 0 S`
-PrimeHack/Beam 3 = `Button 5` & `Hat 0 W`
-PrimeHack/Beam 4 = `Button 5` & `Hat 0 E`
-PrimeHack/Visor 1 = !`Button 5` & `Hat 0 N`
-PrimeHack/Visor 2 = !`Button 5` & `Hat 0 S`
-PrimeHack/Visor 3 = !`Button 5` & `Hat 0 W`
-PrimeHack/Visor 4 = !`Button 5` & `Hat 0 E`
-PrimeHack/AltProfile = Disabled
-PrimeHack/Control Reticle When Locked-On = True
-Camera Control/Dead Zone = 15.0
+Nunchuk/Stick/Modifier/Range = 50.
+Nunchuk/Stick/Calibration = 100.00 101.96 108.24 110.71 112.28 113.66 108.24 101.96 100.00 101.96 107.57 108.29 108.39 107.84 107.65 101.96 100.00 101.96 108.24 114.09 118.05 120.27 108.24 101.96 100.00 101.96 108.24 110.20 110.40 107.81 107.65 101.96
+Nunchuk/Tilt/Modifier/Range = 50.
+Nunchuk/Shake/Y = LSHIFT & (`Axis Y-` | `Axis Y+` | `Axis X-` | `Axis X+`)
+Classic/Left Stick/Modifier/Range = 50.
+Classic/Right Stick/Modifier/Range = 50.
+Guitar/Stick/Modifier/Range = 50.
+Drums/Stick/Modifier/Range = 50.
+Turntable/Stick/Modifier/Range = 50.
+uDraw/Stylus/Modifier/Range = 50.
+Drawsome/Stylus/Modifier/Range = 50.
+D-Pad/Down = NORTH
+PrimeHack/Beam 1 = TR&`Axis 7-`
+PrimeHack/Beam 2 = TR&`Axis 6+`
+PrimeHack/Beam 3 = TR&`Axis 7+`
+PrimeHack/Beam 4 = TR&`Axis 6-`
+PrimeHack/Next Beam = `Axis 6+`&!(TL|TR)
+PrimeHack/Previous Beam = `Axis 6-`&!(TL|TR)
+PrimeHack/Visor 1 = TL&`Axis 7-`
+PrimeHack/Visor 2 = TL&`Axis 6+`
+PrimeHack/Visor 3 = TL&`Axis 7+`
+PrimeHack/Visor 4 = TL&`Axis 6-`
+PrimeHack/Next Visor = `Axis 7-`&!(TL|TR)
+PrimeHack/Previous Visor = `Axis 7+`&!(TL|TR)
+PrimeHack/MorphBallProfile = RD-MorphBall
+Camera Control/Modifier/Range = 50.
+PrimeHack/Grapple Lasso = EAST
+Source = 3
+Buttons/Down = NORTH
+PrimeHack/Mode = 1
Camera Control/Up = `Axis 4-`
Camera Control/Down = `Axis 4+`
Camera Control/Left = `Axis 3-`
Camera Control/Right = `Axis 3+`
-Camera Control/Modifier/Range = 50.0
-PrimeHack/Mode = 1
-PrimeHack/Tap Grapple Repeatedly To Pull = True
-PrimeHack/Spring Ball = `Button 10`
-PrimeHack/Grapple Lasso = `Button 2`
+Camera Control/Dead Zone = 10.
+Rumble/Motor = Strong
+PrimeHack/Enable Visor Menu = True
+Camera Control/Calibration = 100.00 101.96 108.23 111.79 112.84 115.20 108.24 101.96 100.00 101.96 108.24 111.14 110.70 110.55 108.24 101.96 100.00 101.96 108.24 118.75 119.78 119.67 108.24 101.96 100.00 101.96 108.24 111.53 114.48 114.91 108.13 101.96
+PrimeHack/Enable Beam Menu = True
+Nunchuk/Stick/Virtual Notches = 5.
+Buttons/B = SOUTH
+PrimeHack/AltProfile = livedeht1_morph
[Wiimote2]
Device = XInput2/0/Virtual core pointer
-Tilt/Modifier/Range = 50.0
-Nunchuk/Stick/Modifier/Range = 50.0
-Nunchuk/Tilt/Modifier/Range = 50.0
-Classic/Left Stick/Modifier/Range = 50.0
-Classic/Right Stick/Modifier/Range = 50.0
-Guitar/Stick/Modifier/Range = 50.0
-Drums/Stick/Modifier/Range = 50.0
-Turntable/Stick/Modifier/Range = 50.0
-uDraw/Stylus/Modifier/Range = 50.0
-Drawsome/Stylus/Modifier/Range = 50.0
+Tilt/Modifier/Range = 50.
+Nunchuk/Stick/Modifier/Range = 50.
+Nunchuk/Tilt/Modifier/Range = 50.
+Classic/Left Stick/Modifier/Range = 50.
+Classic/Right Stick/Modifier/Range = 50.
+Guitar/Stick/Modifier/Range = 50.
+Drums/Stick/Modifier/Range = 50.
+Turntable/Stick/Modifier/Range = 50.
+uDraw/Stylus/Modifier/Range = 50.
+Drawsome/Stylus/Modifier/Range = 50.
+PrimeHack/MorphBallProfile = Disabled
+Camera Control/Modifier/Range = 50.
+Source = 0
PrimeHack/AltProfile = Disabled
-Camera Control/Modifier/Range = 50.0
[Wiimote3]
Device = XInput2/0/Virtual core pointer
-Tilt/Modifier/Range = 50.0
-Nunchuk/Stick/Modifier/Range = 50.0
-Nunchuk/Tilt/Modifier/Range = 50.0
-Classic/Left Stick/Modifier/Range = 50.0
-Classic/Right Stick/Modifier/Range = 50.0
-Guitar/Stick/Modifier/Range = 50.0
-Drums/Stick/Modifier/Range = 50.0
-Turntable/Stick/Modifier/Range = 50.0
-uDraw/Stylus/Modifier/Range = 50.0
-Drawsome/Stylus/Modifier/Range = 50.0
+Tilt/Modifier/Range = 50.
+Nunchuk/Stick/Modifier/Range = 50.
+Nunchuk/Tilt/Modifier/Range = 50.
+Classic/Left Stick/Modifier/Range = 50.
+Classic/Right Stick/Modifier/Range = 50.
+Guitar/Stick/Modifier/Range = 50.
+Drums/Stick/Modifier/Range = 50.
+Turntable/Stick/Modifier/Range = 50.
+uDraw/Stylus/Modifier/Range = 50.
+Drawsome/Stylus/Modifier/Range = 50.
+PrimeHack/MorphBallProfile = Disabled
+Camera Control/Modifier/Range = 50.
+Source = 0
PrimeHack/AltProfile = Disabled
-Camera Control/Modifier/Range = 50.0
[Wiimote4]
Device = XInput2/0/Virtual core pointer
-Tilt/Modifier/Range = 50.0
-Nunchuk/Stick/Modifier/Range = 50.0
-Nunchuk/Tilt/Modifier/Range = 50.0
-Classic/Left Stick/Modifier/Range = 50.0
-Classic/Right Stick/Modifier/Range = 50.0
-Guitar/Stick/Modifier/Range = 50.0
-Drums/Stick/Modifier/Range = 50.0
-Turntable/Stick/Modifier/Range = 50.0
-uDraw/Stylus/Modifier/Range = 50.0
-Drawsome/Stylus/Modifier/Range = 50.0
+Tilt/Modifier/Range = 50.
+Nunchuk/Stick/Modifier/Range = 50.
+Nunchuk/Tilt/Modifier/Range = 50.
+Classic/Left Stick/Modifier/Range = 50.
+Classic/Right Stick/Modifier/Range = 50.
+Guitar/Stick/Modifier/Range = 50.
+Drums/Stick/Modifier/Range = 50.
+Turntable/Stick/Modifier/Range = 50.
+uDraw/Stylus/Modifier/Range = 50.
+Drawsome/Stylus/Modifier/Range = 50.
+PrimeHack/MorphBallProfile = Disabled
+Camera Control/Modifier/Range = 50.
+Source = 0
PrimeHack/AltProfile = Disabled
-Camera Control/Modifier/Range = 50.0
[BalanceBoard]
Device = XInput2/0/Virtual core pointer
-Tilt/Modifier/Range = 50.0
-Nunchuk/Stick/Modifier/Range = 50.0
-Nunchuk/Tilt/Modifier/Range = 50.0
-Classic/Left Stick/Modifier/Range = 50.0
-Classic/Right Stick/Modifier/Range = 50.0
-Guitar/Stick/Modifier/Range = 50.0
-Drums/Stick/Modifier/Range = 50.0
-Turntable/Stick/Modifier/Range = 50.0
-uDraw/Stylus/Modifier/Range = 50.0
-Drawsome/Stylus/Modifier/Range = 50.0
+Tilt/Modifier/Range = 50.
+Nunchuk/Stick/Modifier/Range = 50.
+Nunchuk/Tilt/Modifier/Range = 50.
+Classic/Left Stick/Modifier/Range = 50.
+Classic/Right Stick/Modifier/Range = 50.
+Guitar/Stick/Modifier/Range = 50.
+Drums/Stick/Modifier/Range = 50.
+Turntable/Stick/Modifier/Range = 50.
+uDraw/Stylus/Modifier/Range = 50.
+Drawsome/Stylus/Modifier/Range = 50.
+PrimeHack/MorphBallProfile = Disabled
+Camera Control/Modifier/Range = 50.
+Source = 0
PrimeHack/AltProfile = Disabled
-Camera Control/Modifier/Range = 50.0
diff --git a/primehack/component_update.sh b/primehack/component_update.sh
index 711cdd58..06353969 100644
--- a/primehack/component_update.sh
+++ b/primehack/component_update.sh
@@ -46,11 +46,21 @@ if [[ $(check_version_is_older_than "$version_being_updated" "0.10.0b") == "true
prepare_component "postmove" "primehack"
fi
+if [[ $(check_version_is_older_than "$version_being_updated" "0.10.2b") == "true" ]]; then
+
+ log i "0.10.2b Upgrade - Postmove: PrimeHack"
+
+ create_dir "$roms_path/primehack"
+ set_setting_value "$primehack_config" "SIDevice0" "0" "primehack" "Core"
+ rsync -rlD --mkpath "$primehack_rd_config_dir/config/Profiles/Wiimote/" "$XDG_CONFIG_HOME/primehack/Profiles/Wiimote/"
+ rsync -rlD --mkpath "$primehack_rd_config_dir/config/WiimoteNew.ini" "$XDG_CONFIG_HOME/primehack/WiimoteNew.ini"
+fi
+
#######################################
# These actions happen at every update
#######################################
if [[ -d "$primehack_dynamic_input_textures_path" ]]; then # Refresh installed textures if they have been enabled
log i "Refreshing installed textures for Primehack..."
- rsync -rlD --mkpath "/app/retrodeck/components/shared-data/DynamicInputTextures/" "$primehack_dynamic_input_textures_path/" && log i "Done"
+ rsync -rlD --delete --mkpath "/app/retrodeck/components/shared-data/DynamicInputTextures/" "$primehack_dynamic_input_textures_path/" && log i "Done"
fi
diff --git a/retroarch/component_prepare.sh b/retroarch/component_prepare.sh
index 2202b020..6159ab8c 100755
--- a/retroarch/component_prepare.sh
+++ b/retroarch/component_prepare.sh
@@ -63,7 +63,7 @@ if [[ "$action" == "reset" ]]; then # Run reset-only commands
if [[ -d "$bios_path/mame2003-plus" && "$(ls -A "$bios_path/mame2003-plus")" ]]; then
backup_file="$backups_path/bios/mame2003-plus-$(date +%y%m%d).tar.gz"
create_dir "$(dirname "$backup_file")"
- tar -czf "$backup_file" -C "$bios_path/mame2003-plus" retroarch
+ tar -czf "$backup_file" -C "$bios_path" mame2003-plus
log i "MAME 2003-Plus BIOS data backed up to $backup_file"
fi
tar -xzf "$retroarch_extras_path/mame2003-plus.tar.gz" -C "$bios_path/mame2003-plus" --overwrite
diff --git a/steam-rom-manager/assets/rd_config/userConfigurations.json b/steam-rom-manager/assets/rd_config/userConfigurations.json
index e3a7851e..c72ec7ed 100644
--- a/steam-rom-manager/assets/rd_config/userConfigurations.json
+++ b/steam-rom-manager/assets/rd_config/userConfigurations.json
@@ -22,9 +22,7 @@
"imagePool": "${fuzzyTitle}",
"drmProtect": false,
"userAccounts": {
- "specifiedAccounts": [
- "xargonwan"
- ]
+ "specifiedAccounts": []
},
"parserInputs": {
"manualManifests": "${romsdirglobal}"
@@ -46,49 +44,41 @@
},
"controllers": {
"ps4": {
- "title": "RetroDECK: DualShock 4 v.1b",
+ "title": "RetroDECK: DualShock 4 v.1.1",
"mappingId": "RetroDECK_controller_ps4_dualshock4_simple.vdf",
"profileType": "template"
},
"ps5": {
- "title": "RetroDECK: DualSense v.1b",
+ "title": "RetroDECK: DualSense v.1.1",
"mappingId": "RetroDECK_controller_ps5_dualsense_simple.vdf",
"profileType": "template"
},
"ps5_edge": null,
"xbox360": {
- "title": "RetroDECK: Xbox 360 v.1b",
+ "title": "RetroDECK: Xbox 360 v.1.1",
"mappingId": "RetroDECK_controller_xbox360_simple.vdf",
"profileType": "template"
},
"xboxone": {
- "title": "RetroDECK: Xbox Wireless v.1b",
+ "title": "RetroDECK: Xbox Wireless v.1.1",
"mappingId": "RetroDECK_controller_xboxone_simple.vdf",
"profileType": "template"
},
"xboxelite": null,
- "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_joycon_left": null,
+ "switch_joycon_right": null,
"switch_pro": {
- "title": "RetroDECK: Switch Pro v.1b",
+ "title": "RetroDECK: Switch Pro v.1.1",
"mappingId": "RetroDECK_controller_switch_pro_simple.vdf",
"profileType": "template"
},
"neptune": {
- "title": "RetroDECK: Steam Deck - Neptune v.1.1b FULL",
+ "title": "RetroDECK: Steam Deck - Neptune FULL: v.1.2",
"mappingId": "RetroDECK_controller_steamdeck_neptune_full.vdf",
"profileType": "template"
},
"steamcontroller_gordon": {
- "title": "RetroDECK: Steam Controller - Gordon v.1b",
+ "title": "RetroDECK: Steam Controller - Gordon v.1.1",
"mappingId": "RetroDECK_controller_steam_controller_gordon_simple.vdf",
"profileType": "template"
}
diff --git a/steam-rom-manager/component_functions.sh b/steam-rom-manager/component_functions.sh
index 3d9b4cc7..b02120d2 100755
--- a/steam-rom-manager/component_functions.sh
+++ b/steam-rom-manager/component_functions.sh
@@ -397,3 +397,37 @@ decode_filename() {
-e 's/"/"/g' \
-e 's/'/'"'"'/g'
}
+
+install_retrodeck_controller_profile() {
+ # This function will install the needed files for the custom RetroDECK controller profile
+ # NOTE: These files need to be stored in shared locations for Steam, outside of the normal RetroDECK folders and should always be an optional user choice
+ # BIGGER NOTE: As part of this process, all emulators will need to have their configs hard-reset to match the controller mappings of the profile
+ # USAGE: install_retrodeck_controller_profile
+ if [[ -d "$HOME/.steam/steam/controller_base/templates/" || -d "$HOME/.var/app/com.valvesoftware.Steam/.steam/steam/controller_base/templates/" ]]; then
+ if [[ -d "$HOME/.steam/steam/controller_base/templates/" ]]; then # If a normal binary Steam install exists
+ rsync -rlD --mkpath "/app/retrodeck/binding_icons/" "$HOME/.steam/steam/tenfoot/resource/images/library/controller/binding_icons/"
+ rsync -rlD --mkpath "$rd_core_files/controller_configs/" "$HOME/.steam/steam/controller_base/templates/"
+ fi
+ if [[ -d "$HOME/.var/app/com.valvesoftware.Steam/.steam/steam/controller_base/templates/" ]]; then # If a Flatpak Steam install exists
+ rsync -rlD --mkpath "/app/retrodeck/binding_icons/" "$HOME/.var/app/com.valvesoftware.Steam/.steam/steam/tenfoot/resource/images/library/controller/binding_icons/"
+ rsync -rlD --mkpath "$rd_core_files/controller_configs/" "$HOME/.var/app/com.valvesoftware.Steam/.steam/steam/controller_base/templates/"
+ fi
+ else
+ configurator_generic_dialog "RetroDECK - Install: Steam Controller Templates" "The target directories for the controller profile do not exist.\n\nThis may occur if Steam is not installed or if the location does not have read permissions."
+ fi
+}
+
+install_retrodeck_controller_profile_and_add_to_steam() {
+ install_retrodeck_controller_profile
+ add_retrodeck_to_steam
+
+ rd_zenity --question --no-wrap --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --title "RetroDECK Initial Install - Steam Synchronization" --cancel-label="No" --ok-label "Yes" \
+ --text="Enable Steam synchronization?\n\nThis will scan your games for any Favorited games in ES-DE and add them to your Steam library as individual entries.\n\nYou will need to restart Steam for the changes to take effect."
+
+ if [[ $? == 0 ]]; then
+ configurator_enable_steam_sync
+ fi
+ if [[ $(get_setting_value "$rd_conf" "steam_sync" retrodeck "options") =~ (flatpak) ]]; then # If Flatpak Steam, warn about permission
+ configurator_generic_dialog "RetroDeck Configurator - Steam Flatpak Warning" "You are using the Flatpak Version of Steam.\n\nTo allow RetroDECK to launch, Steam must be granted the following permission:\norg.freedesktop.Flatpak\n\nPlease read the RetroDECK wiki for instructions"
+ fi
+}
diff --git a/steam-rom-manager/component_prepare.sh b/steam-rom-manager/component_prepare.sh
index 4222e228..02513c8c 100755
--- a/steam-rom-manager/component_prepare.sh
+++ b/steam-rom-manager/component_prepare.sh
@@ -20,4 +20,8 @@ if [[ "$action" == "reset" ]]; then # Run reset-only commands
jq '.environmentVariables.steamDirectory = "'"$steam_userdata_current"'"' "$srm_userdata/userSettings.json" > "$srm_userdata/tmp.json" && mv -f "$srm_userdata/tmp.json" "$srm_userdata/userSettings.json"
jq '.environmentVariables.romsDirectory = "'"$rd_home_path"'/.sync"' "$srm_userdata/userSettings.json" > "$srm_userdata/tmp.json" && mv -f "$srm_userdata/tmp.json" "$srm_userdata/userSettings.json"
fi
+
+ if [[ ! -z $(find "$HOME/.steam/steam/controller_base/templates/" -maxdepth 1 -type f -iname "RetroDECK*.vdf") || ! -z $(find "$HOME/.var/app/com.valvesoftware.Steam/.steam/steam/controller_base/templates/" -maxdepth 1 -type f -iname "RetroDECK*.vdf") ]]; then # If RetroDECK controller profile has been previously installed
+ install_retrodeck_controller_profile
+ fi
fi
diff --git a/steam-rom-manager/component_update.sh b/steam-rom-manager/component_update.sh
index b9f109ff..78f965b2 100644
--- a/steam-rom-manager/component_update.sh
+++ b/steam-rom-manager/component_update.sh
@@ -9,3 +9,11 @@ if [[ $(check_version_is_older_than "$version_being_updated" "0.9.0b") == "true"
log i "New components were added in this version, initializing them"
prepare_component "reset" "steam-rom-manager"
fi
+
+#######################################
+# These actions happen at every update
+#######################################
+
+if [[ ! -z $(find "$HOME/.steam/steam/controller_base/templates/" -maxdepth 1 -type f -iname "RetroDECK*.vdf") || ! -z $(find "$HOME/.var/app/com.valvesoftware.Steam/.steam/steam/controller_base/templates/" -maxdepth 1 -type f -iname "RetroDECK*.vdf") ]]; then # If RetroDECK controller profile has been previously installed
+ install_retrodeck_controller_profile
+fi