Verion 0.5.0b

This commit is contained in:
XargonWan 2022-10-11 21:24:33 +02:00
commit 38a57a4a7a
83 changed files with 5015 additions and 868 deletions

View file

@ -13,22 +13,17 @@ on:
jobs:
Building_flatpak:
Building_RetroDECK:
runs-on: self-hosted
steps:
- name: Get date for artifacts
id: date
run: echo "::set-output name=date::$(date +'%Y%m%d_%H%M%S')"
- name: Extract branch name
shell: bash
run: echo "##[set-output name=branch;]$(echo ${GITHUB_REF#refs/heads/})"
id: extract_branch
- name: Remove stuck mounts
run: sudo umount -f /home/administrator/actions-runner/_work/RetroDECK/RetroDECK/.flatpak-builder/rofiles/*
continue-on-error: true
- name: Generate build ID
id: generating_buildid
run: echo "##[set-output name=build-id;]$(echo "${{ steps.extract_branch.outputs.branch }}-${{ steps.date.outputs.date }}")"
run: echo "##[set-output name=build-id;]$(echo "$( git rev-parse --short HEAD )")"
- uses: actions/checkout@v3
@ -39,25 +34,33 @@ jobs:
git submodule update
sudo apt install -y flatpak flatpak-builder p7zip-full
flatpak remote-add --user --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak install --user -y org.kde.Sdk//5.15-21.08 org.kde.Platform//5.15-21.08 io.qt.qtwebengine.BaseApp/x86_64/5.15-21.08 org.freedesktop.Sdk.Extension.llvm13 org.freedesktop.Platform.ffmpeg-full/x86_64/21.08
flatpak install --user -y --noninteractive \
org.kde.Sdk//6.3 \
org.kde.Platform//6.3 \
org.freedesktop.Platform.ffmpeg-full/x86_64/21.08 \
io.qt.qtwebengine.BaseApp/x86_64/6.3 \
org.freedesktop.Sdk.Extension.llvm13 \
org.freedesktop.Sdk.Extension.dotnet6/x86_64/21.08
- name: Build flatpak
run: |
flatpak-builder --user --force-clean --install-deps-from=flathub --install-deps-from=flathub-beta --repo=${GITHUB_WORKSPACE}/local ${GITHUB_WORKSPACE}/retrodeck-flatpak-cooker net.retrodeck.retrodeck.yml
- name: Create Artifact for flathub
run: |
tar -czf ${GITHUB_WORKSPACE}/RetroDECK-Artifact.tar.gz -C ${GITHUB_WORKSPACE}/retrodeck-flatpak-cooker .
hash=($(sha256sum ${GITHUB_WORKSPACE}/RetroDECK-Artifact.tar.gz))
echo $hash > ${GITHUB_WORKSPACE}/RetroDECK-Artifact.sha
mv -f RetroDECK-Artifact.* ${{ secrets.ARTIFACT_REPO }}
continue-on-error: true
- name: Create Bundle
run: |
flatpak-builder --user --force-clean --repo=${GITHUB_WORKSPACE}/local ${GITHUB_WORKSPACE}/retrodeck-flatpak-cooker net.retrodeck.retrodeck.yml
flatpak build-bundle $GITHUB_WORKSPACE/local RetroDECK.flatpak net.retrodeck.retrodeck
- name: Read version from version file
id: version
run: echo "##[set-output name=version;]$(cat $(find . -name version))"
flatpak build-bundle ${GITHUB_WORKSPACE}/local RetroDECK.flatpak net.retrodeck.retrodeck
- name: Publish the flatpak in a new cooker release
uses: ncipollo/release-action@v1
with:
#tag: "${{ steps.version.outputs.version }}"
tag: "${{ steps.generating_buildid.outputs.build-id }}"
body: |
# Release Notes (Cooker)
@ -66,7 +69,7 @@ jobs:
Cooker channel is provided for the community to test fixes and explore new functionality.
Please DO NOT open issues or ask support on this build.
artifacts: "RetroDECK.flatpak"
artifacts: "RetroDECK.flatpak,RetroDECK-Artifact.tar.gz"
allowUpdates: true
prerelease: true
draft: false

View file

@ -2,13 +2,6 @@
name: PUSH-cooker-flathub
on:
# push:
# branches:
# - cooker*
# pull_request:
# branches:
# - cooker*
workflow_dispatch:
jobs:
@ -19,12 +12,11 @@ jobs:
- name: Pushing
shell: bash
run: |
# EDITABLES:
rd_branch="cooker"
gits_folder="${GITHUB_WORKSPACE}/gits" # without last /
# NON-EDITABLES
branch="$rd_branch-"$(date +%d%m%y.%H%M)
# EDITABLES:
rd_branch=${GITHUB_REF_NAME}
echo $rd_branch
gits_folder="${GITHUB_WORKSPACE}/gits" # without last /
mkdir -vp $gits_folder
cd $gits_folder
@ -35,6 +27,11 @@ jobs:
cd $gits_folder
git clone --recursive https://github.com/XargonWan/RetroDECK RetroDECK
cd $gits_folder/RetroDECK
# NON-EDITABLES
#relname="$rd_branch-"$(date +%d%m%y.%H%M)
relname="cooker-"$(git rev-parse --short HEAD)
git checkout $rd_branch
git submodule init
git submodule update
@ -43,47 +40,49 @@ jobs:
#sync -rav --progress --exclude={'res/screenshots/','shared-modules/','rd-submodules/retroarch','.git/','docs','retrodeck-flatpak/','retrodeck-flatpak-cooker/','.flatpak-builder/'} ~/RetroDECK/ ~/flathub/
cd $gits_folder/flathub
git checkout -b $branch
git checkout -b $relname
git rm -rf *
git clean -fxd # restroing git index
# Copying only a few files as the others are cloned by git in retrodeck.sh
cd $gits_folder/RetroDECK
cp -rf \
'rd-submodules' \
'flathub.json' \
'LICENSE' \
'net.retrodeck.retrodeck.appdata.xml' \
'net.retrodeck.retrodeck.desktop' \
'net.retrodeck.retrodeck.yml' \
'flathub.yml' \
'README.md' \
$gits_folder/flathub/
cd $gits_folder/flathub
ls -la
ls -lah
if [ -d .git/modules ]; then
rm -rfv .git/modules/*
fi
# manipulating manifest
mv flathub.yml net.retrodeck.retrodeck.yml
# Adding the real submodules, please update this every time a submodule is added
# Getting latest release name
# version=$(\
# curl -sL \
# -H "Accept: application/vnd.github+json" \
# -H "Authorization: Bearer ${{ secrets.TRIGGER_BUILD_TOKEN }}" \
# https://api.github.com/repos/XargonWan/RetroDECK-cooker/releases \
# | jq .[0].tag_name \
# | tr -d \" \
# )
if [ -d shared-modules ]; then
git rm -rf --ignore-unmatch shared-modules
rm -rfv shared-modules
fi
git submodule add https://github.com/flathub/shared-modules.git ./shared-modules
sha=$(curl -sL https://artifacts.retrodeck.net/artifacts/RetroDECK-Artifact.sha)
if [ -d rd-submodules/retroarch ]; then
git rm -rf --ignore-unmatch rd-submodules/retroarch
rm -rfv rd-submodules/retroarch
fi
git submodule add https://github.com/flathub/org.libretro.RetroArch.git ./rd-submodules/retroarch
sed -i "s#__SHA__#$sha#g" net.retrodeck.retrodeck.yml
echo -e "Resulting manifest:\n"
cat net.retrodeck.retrodeck.yml
git config --global user.name "${{ secrets.GITNAME }}"
git config --global user.email "${{ secrets.GITMAIL }}"
# unbinds all submodules
git submodule deinit -f .
# checkout again
git submodule update --init --recursive
git add *
git commit -m "Updated flathub/net.retrodeck.retrodeck from RetroDECK/$rd_branch"
git push origin $branch
git remote -v
git push --force https://${{ secrets.TRIGGER_BUILD_TOKEN }}@github.com/flathub/net.retrodeck.retrodeck.git $relname

View file

@ -13,7 +13,7 @@ on:
jobs:
Building_flatpak:
Building_RetroDECK:
runs-on: self-hosted
steps:

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -197,7 +197,7 @@
border-radius: 20px;
background-color: #aaa;
overflow: hidden;
background: url(../../assets/img/screen-content-phone.jpg);
background: url(screen-content-phone.jpg);
background-size: cover;
background-position: center;
z-index: -1;

View file

@ -0,0 +1,25 @@
.simple-slider .swiper-slide {
height: 500px;
background-repeat: no-repeat;
background-size: cover;
background-position: center;
}
.simple-slider .swiper-button-next, .simple-slider .swiper-button-prev {
width: 50px;
margin-left: 20px;
margin-right: 20px;
}
@media (max-width:767px) {
.simple-slider .swiper-button-next, .simple-slider .swiper-button-prev {
display: none;
}
}
@media (max-width:767px) {
.simple-slider .swiper-slide {
height: 360px;
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 974 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 82 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 112 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 110 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 129 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 122 KiB

View file

@ -0,0 +1,19 @@
document.addEventListener("DOMContentLoaded", function() {
// Initializing the swiper plugin for the slider.
// Read more here: http://idangero.us/swiper/api/
var mySwiper = new Swiper('.swiper-container', {
loop: true,
pagination: {
el: '.swiper-pagination' ,
clickable: true
},
paginationClickable: true,
navigation: {
nextEl: '.swiper-button-next',
prevEl: '.swiper-button-prev'
}
});
});

View file

@ -31,8 +31,9 @@
<link rel="stylesheet" href="assets/css/Highlight-Blue.css">
<link rel="stylesheet" href="assets/css/Highlight-Clean.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/baguettebox.js/1.11.1/baguetteBox.min.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/Swiper/6.4.8/swiper-bundle.min.css">
<link rel="stylesheet" href="assets/css/Navigation-Clean.css">
<link rel="stylesheet" href="assets/css/styles.css">
<link rel="stylesheet" href="assets/css/Simple-Slider-Simple-Slider.css">
</head>
<body>
@ -64,6 +65,30 @@
<div class="buttons" style="margin-bottom: 0px;"><a class="btn btn-secondary" role="button" target="_blank" style="color: black;background: white;border-top-left-radius: 5px;border-top-right-radius: 5px;border-bottom-right-radius: 5px;border-bottom-left-radius: 5px;" href="https://flathub.org/apps/details/net.retrodeck.retrodeck"><i class="fas fa-download"></i>&nbsp;Get retrodeck</a></div><!-- End: Buttons -->
</div>
</section><!-- End: Highlight Clean -->
<!-- Start: Lightbox Gallery -->
<section class="photo-gallery py-4 py-xl-5">
<div class="container">
<div class="row mb-5">
<div class="col-md-8 col-xl-6 text-center mx-auto">
<h2 style="background: linear-gradient(-95deg, #1a9fff, #946beb);-webkit-background-clip: text;-webkit-text-fill-color: transparent;">screenshots</h2>
</div>
</div><!-- Start: Photos -->
<div class="row g-0 justify-content-center photos" data-bss-baguettebox="">
<div class="col">
<div class="carousel slide carousel-fade" data-bs-ride="carousel" data-bs-interval="4000" data-bs-pause="false" data-bs-keyboard="false" data-bs-touch="false" id="carousel-1" style="overflow: hidden;border-radius: 6px;">
<div class="carousel-inner">
<div class="carousel-item active"><img class="w-100 d-block" src="assets/img/screen01.jpeg" alt="Slide Image"></div>
<div class="carousel-item"><img class="w-100 d-block" src="assets/img/screen02.jpeg" alt="Slide Image"></div>
<div class="carousel-item"><img class="w-100 d-block" src="assets/img/screen03.jpeg" alt="Slide Image"></div>
<div class="carousel-item"><img class="w-100 d-block" src="assets/img/screen04.jpeg" alt="Slide Image"></div>
<div class="carousel-item"><img class="w-100 d-block" src="assets/img/screen05.jpeg" alt="Slide Image"></div>
<div class="carousel-item"><img class="w-100 d-block" src="assets/img/screen06.jpeg" alt="Slide Image"></div>
</div>
</div>
</div>
</div><!-- End: Photos -->
</div>
</section><!-- End: Lightbox Gallery -->
<!-- Start: Banner Color -->
<section class="py-4 py-xl-5">
<div class="container">
@ -119,21 +144,6 @@
</div><!-- End: Features -->
</div>
</section><!-- End: Features Clean -->
<!-- Start: Lightbox Gallery -->
<section class="photo-gallery py-4 py-xl-5">
<div class="container">
<div class="row mb-5">
<div class="col-md-8 col-xl-6 text-center mx-auto">
<h2 style="background: linear-gradient(-95deg, #1a9fff, #946beb);-webkit-background-clip: text;-webkit-text-fill-color: transparent;">screenshots</h2>
</div>
</div><!-- Start: Photos -->
<div class="row gx-2 gy-2 row-cols-1 row-cols-md-2 row-cols-xl-3 photos" data-bss-baguettebox="">
<div class="col item"><a><img class="img-fluid" src="https://github.com/XargonWan/RetroDECK/blob/main/res/screenshots/screen02.png?raw=true"></a></div>
<div class="col item"><a><img class="img-fluid" src="https://github.com/XargonWan/RetroDECK/blob/main/res/screenshots/screen04.png?raw=true"></a></div>
<div class="col item"><a><img class="img-fluid" src="https://github.com/XargonWan/RetroDECK/blob/main/res/screenshots/screen05.png?raw=true"></a></div>
</div><!-- End: Photos -->
</div>
</section><!-- End: Lightbox Gallery -->
<!-- Start: Banner Color -->
<section class="py-4 py-xl-5">
<div class="container">
@ -155,8 +165,10 @@
</footer><!-- End: Footer Basic -->
<script src="assets/bootstrap/js/bootstrap.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/baguettebox.js/1.11.1/baguetteBox.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/Swiper/6.4.8/swiper-bundle.min.js"></script>
<script src="assets/js/Lightbox-Gallery.js"></script>
<script src="assets/js/scroll.js"></script>
<script src="assets/js/Simple-Slider.js"></script>
</body>
</html>

View file

@ -11,7 +11,7 @@ LoadTextureReplacements = 0
LoadTextureReplacementsAsync = 1
MaxAnisotropy = 0
NTSC_Saturation = 1
OsdScale = 100
OsdScale = 250
OsdShowCPU = 0
OsdShowFPS = 0
OsdShowGPU = 0

450
emu-configs/PCSX2/PCSX2.ini Normal file
View file

@ -0,0 +1,450 @@
[UI]
SettingsVersion = 1
MainWindowGeometry = AdnQywADAAAAAAAAAAAAAAAAA7UAAAJ/AAAAAAAAAAAAAAO1AAACfwAAAAAAAAAABQAAAAAAAAAAAAAAA7UAAAJ/
MainWindowState = AAAA/wAAAAD9AAAAAAAAA7YAAAJXAAAABAAAAAQAAAAIAAAACPwAAAABAAAAAgAAAAEAAAAOAHQAbwBvAGwAQgBhAHIAAAAAAP////8AAAAAAAAAAA==
PauseOnFocusLoss = true
StartFullscreen = true
[EmuCore]
CdvdVerboseReads = false
CdvdDumpBlocks = false
CdvdShareWrite = false
EnablePatches = true
EnableCheats = false
EnablePINE = false
EnableWideScreenPatches = false
EnableNoInterlacingPatches = false
EnableRecordingTools = true
EnableGameFixes = true
SaveStateOnShutdown = true
ConsoleToStdio = false
HostFs = false
PatchBios = false
PatchRegion =
BackupSavestate = true
SavestateZstdCompression = true
McdEnableEjection = true
McdFolderAutoManage = true
GzipIsoIndexTemplate = $(f).pindex.tmp
BlockDumpSaveDirectory =
[EmuCore/Speedhacks]
EECycleRate = 0
EECycleSkip = 0
fastCDVD = false
IntcStat = true
WaitLoop = true
vuFlagHack = true
vuThread = true
vu1Instant = true
[EmuCore/CPU]
FPU.DenormalsAreZero = true
FPU.FlushToZero = true
FPU.Roundmode = 3
AffinityControlMode = 0
VU.DenormalsAreZero = true
VU.FlushToZero = true
VU.Roundmode = 3
[EmuCore/CPU/Recompiler]
EnableEE = true
EnableIOP = true
EnableEECache = false
EnableVU0 = true
EnableVU1 = true
vuOverflow = true
vuExtraOverflow = false
vuSignOverflow = false
vuUnderflow = false
fpuOverflow = true
fpuExtraOverflow = false
fpuFullMode = false
StackFrameChecks = false
PreBlockCheckEE = false
PreBlockCheckIOP = false
[EmuCore/GS]
VsyncQueueSize = 2
FrameLimitEnable = true
VsyncEnable = 0
FramerateNTSC = 59.940000
FrameratePAL = 50.000000
SyncToHostRefreshRate = false
AspectRatio = Auto 4:3/3:2
FMVAspectRatioSwitch = Off
Zoom = 100.000000
StretchY = 100.000000
CropLeft = 0
CropTop = 0
CropRight = 0
CropBottom = 0
pcrtc_antiblur = true
disable_interlace_offset = false
pcrtc_offsets = false
pcrtc_overscan = false
IntegerScaling = false
linear_present = true
UseDebugDevice = false
UseBlitSwapChain = false
disable_shader_cache = false
DisableDualSourceBlend = false
DisableFramebufferFetch = false
ThreadedPresentation = false
SkipDuplicateFrames = false
OsdShowMessages = true
OsdShowSpeed = false
OsdShowFPS = false
OsdShowCPU = false
OsdShowGPU = false
OsdShowResolution = false
OsdShowGSStats = false
OsdShowIndicators = true
HWDisableReadbacks = false
accurate_date = true
paltex = false
autoflush_sw = true
preload_frame_with_gs_data = false
wrap_gs_mem = false
mipmap = true
UserHacks = false
UserHacks_align_sprite_X = false
UserHacks_AutoFlush = false
UserHacks_CPU_FB_Conversion = false
UserHacks_DisableDepthSupport = false
UserHacks_DisablePartialInvalidation = false
UserHacks_Disable_Safe_Features = false
UserHacks_merge_pp_sprite = false
UserHacks_WildHack = false
UserHacks_TextureInsideRt = false
fxaa = false
ShadeBoost = false
shaderfx = false
dump = false
save = false
savef = false
savet = false
savez = false
DumpReplaceableTextures = false
DumpReplaceableMipmaps = false
DumpTexturesWithFMVActive = false
DumpDirectTextures = true
DumpPaletteTextures = true
LoadTextureReplacements = false
LoadTextureReplacementsAsync = true
PrecacheTextureReplacements = false
deinterlace = 7
OsdScale = 250
Renderer = -1
upscale_multiplier = 1
mipmap_hw = -1
accurate_blending_unit = 1
crc_hack_level = -1
filter = 2
texture_preloading = 2
GSDumpCompression = 1
dithering_ps2 = 2
MaxAnisotropy = 0
extrathreads = 2
extrathreads_height = 4
TVShader = 0
UserHacks_SkipDraw_Start = 0
UserHacks_SkipDraw_End = 0
UserHacks_Half_Bottom_Override = -1
UserHacks_HalfPixelOffset = 0
UserHacks_round_sprite_offset = 0
UserHacks_TCOffsetX = 0
UserHacks_TCOffsetY = 0
UserHacks_CPUSpriteRenderBW = 0
UserHacks_TriFilter = -1
OverrideTextureBarriers = -1
OverrideGeometryShaders = -1
ShadeBoost_Brightness = 50
ShadeBoost_Contrast = 50
ShadeBoost_Saturation = 50
saven = 0
savel = 5000
Adapter =
shaderfx_conf = shaders/GS_FX_Settings.ini
shaderfx_glsl = shaders/GS.fx
[SPU2/Mixing]
Interpolation = 5
FinalVolume = 100
VolumeAdjustC = 0.000000
VolumeAdjustFL = 0.000000
VolumeAdjustFR = 0.000000
VolumeAdjustBL = 0.000000
VolumeAdjustBR = 0.000000
VolumeAdjustSL = 0.000000
VolumeAdjustSR = 0.000000
VolumeAdjustLFE = 0.000000
[SPU2/Output]
OutputModule = cubeb
Latency = 100
SynchMode = 0
SpeakerConfiguration = 0
DplDecodingLevel = 0
[DEV9/Eth]
EthEnable = false
EthApi = Unset
EthDevice =
EthLogDNS = false
InterceptDHCP = false
PS2IP = 0.0.0.0
Mask = 0.0.0.0
Gateway = 0.0.0.0
DNS1 = 0.0.0.0
DNS2 = 0.0.0.0
AutoMask = true
AutoGateway = true
ModeDNS1 = Auto
ModeDNS2 = Auto
[DEV9/Eth/Hosts]
Count = 0
[DEV9/Hdd]
HddEnable = false
HddFile = DEV9hdd.raw
HddSizeSectors = 83886080
[EmuCore/Gamefixes]
VuAddSubHack = false
FpuMulHack = false
FpuNegDivHack = false
XgKickHack = false
EETimingHack = false
SoftwareRendererFMVHack = false
SkipMPEGHack = false
OPHFlagHack = false
DMABusyHack = false
VIFFIFOHack = false
VIF1StallHack = false
GIFFIFOHack = false
GoemonTlbHack = false
IbitHack = false
VUSyncHack = false
VUOverflowHack = false
BlitInternalFPSHack = false
[EmuCore/Profiler]
Enabled = false
RecBlocks_EE = true
RecBlocks_IOP = true
RecBlocks_VU0 = true
RecBlocks_VU1 = true
[EmuCore/Debugger]
ShowDebuggerOnStart = false
AlignMemoryWindowStart = true
FontWidth = 8
FontHeight = 12
WindowWidth = 0
WindowHeight = 0
MemoryViewBytesPerRow = 16
[EmuCore/TraceLog]
Enabled = false
EE.bitset = 0
IOP.bitset = 0
[Filenames]
BIOS =
[Framerate]
NominalScalar = 1.000000
TurboScalar = 2.000000
SlomoScalar = 0.500000
[MemoryCards]
Slot1_Enable = true
Slot1_Filename = Mcd001.ps2
Slot2_Enable = true
Slot2_Filename = Mcd002.ps2
Multitap1_Slot2_Enable = false
Multitap1_Slot2_Filename = Mcd-Multitap1-Slot02.ps2
Multitap1_Slot3_Enable = false
Multitap1_Slot3_Filename = Mcd-Multitap1-Slot03.ps2
Multitap1_Slot4_Enable = false
Multitap1_Slot4_Filename = Mcd-Multitap1-Slot04.ps2
Multitap2_Slot2_Enable = false
Multitap2_Slot2_Filename = Mcd-Multitap2-Slot02.ps2
Multitap2_Slot3_Enable = false
Multitap2_Slot3_Filename = Mcd-Multitap2-Slot03.ps2
Multitap2_Slot4_Enable = false
Multitap2_Slot4_Filename = Mcd-Multitap2-Slot04.ps2
[Folders]
Bios = ~/retrodeck/bios
Snapshots = ~/retrodeck/screenshots
SaveStates = ~/retrodeck/states/ps2/pcsx2
MemoryCards = ~/retrodeck/saves/ps2/pcsx2/memcards
Logs = logs
Cheats = cheats
CheatsWS = cheats_ws
CheatsNI = cheats_ni
Cache = cache
Textures = textures
InputProfiles = inputprofiles
[InputSources]
SDL = true
SDLControllerEnhancedMode = false
XInput = false
RawInput = false
[Hotkeys]
ToggleFullscreen = Keyboard/Alt & Keyboard/Return
CycleAspectRatio = Keyboard/F6
CycleInterlaceMode = Keyboard/F5
CycleMipmapMode = Keyboard/Insert
GSDumpMultiFrame = Keyboard/Control & Keyboard/Shift & Keyboard/F8
Screenshot = SDL-0/Back & SDL-0/A
GSDumpSingleFrame = Keyboard/Shift & Keyboard/F8
ToggleSoftwareRendering = Keyboard/F9
InputRecToggleMode = Keyboard/Shift & Keyboard/R
LoadStateFromSlot = SDL-0/Back & SDL-0/LeftShoulder
SaveStateToSlot = SDL-0/Back & SDL-0/RightShoulder
NextSaveStateSlot = SDL-0/Back & SDL-0/DPadUp
PreviousSaveStateSlot = SDL-0/Back & SDL-0/DPadDown
OpenPauseMenu = SDL-0/Back & SDL-0/Y
ToggleFrameLimit = Keyboard/F4
TogglePause = SDL-0/Back & SDL-0/B
ToggleSlowMotion = Keyboard/Shift & Keyboard/Backtab
ToggleTurbo = Keyboard/Tab
HoldTurbo = Keyboard/L
ShutdownVM = SDL-0/Start & SDL-0/Back
[Pad]
MultitapPort1 = false
MultitapPort2 = false
PointerXScale = 8.000000
PointerYScale = 8.000000
PointerXInvert = false
PointerYInvert = false
[Pad1]
Type = DualShock2
Deadzone = 0.000000
AxisScale = 1.330000
LargeMotorScale = 1.000000
SmallMotorScale = 1.000000
PressureModifier = 0.500000
Up = SDL-0/DPadUp
Right = SDL-0/DPadRight
Down = SDL-0/DPadDown
Left = SDL-0/DPadLeft
Triangle = SDL-0/Y
Circle = SDL-0/B
Cross = SDL-0/A
Square = SDL-0/X
Select = SDL-0/Back
Start = SDL-0/Start
L1 = SDL-0/LeftShoulder
L2 = SDL-0/+LeftTrigger
R1 = SDL-0/RightShoulder
R2 = SDL-0/+RightTrigger
L3 = SDL-0/LeftStick
R3 = SDL-0/RightStick
LUp = SDL-0/-LeftY
LRight = SDL-0/+LeftX
LDown = SDL-0/+LeftY
LLeft = SDL-0/-LeftX
RUp = SDL-0/-RightY
RRight = SDL-0/+RightX
RDown = SDL-0/+RightY
RLeft = SDL-0/-RightX
SmallMotor = SDL-0/SmallMotor
LargeMotor = SDL-0/LargeMotor
[Pad2]
Type = None
Deadzone = 0.000000
AxisScale = 1.330000
LargeMotorScale = 1.000000
SmallMotorScale = 1.000000
PressureModifier = 0.500000
[Pad3]
Type = None
Deadzone = 0.000000
AxisScale = 1.330000
LargeMotorScale = 1.000000
SmallMotorScale = 1.000000
PressureModifier = 0.500000
[Pad4]
Type = None
Deadzone = 0.000000
AxisScale = 1.330000
LargeMotorScale = 1.000000
SmallMotorScale = 1.000000
PressureModifier = 0.500000
[Pad5]
Type = None
Deadzone = 0.000000
AxisScale = 1.330000
LargeMotorScale = 1.000000
SmallMotorScale = 1.000000
PressureModifier = 0.500000
[Pad6]
Type = None
Deadzone = 0.000000
AxisScale = 1.330000
LargeMotorScale = 1.000000
SmallMotorScale = 1.000000
PressureModifier = 0.500000
[Pad7]
Type = None
Deadzone = 0.000000
AxisScale = 1.330000
LargeMotorScale = 1.000000
SmallMotorScale = 1.000000
PressureModifier = 0.500000
[Pad8]
Type = None
Deadzone = 0.000000
AxisScale = 1.330000
LargeMotorScale = 1.000000
SmallMotorScale = 1.000000
PressureModifier = 0.500000
[GameList]
RecursivePaths = ~/retrodeck/roms/ps2

View file

@ -40,11 +40,11 @@ UseDefaultLangs=enabled
UseDefaultCheats=enabled
UseDefaultCheatsWS=enabled
UseDefaultTextures=enabled
Bios=~/retrodeck/bios
Snapshots=/var/config/PCSX2/snaps
Savestates=/var/config/PCSX2/sstates
MemoryCards=/var/config/PCSX2/memcards
Logs=/var/config/PCSX2/logs
Bios=~/retrodeck/roms/bios
Snapshots=~/retrodeck/screenshots
Savestates=~/retrodeck/states/ps2/pcsx2
MemoryCards=~/retrodeck/saves/ps2/memcards
Logs=~/retrodeck/.logs
Langs=/app/share/PCSX2/resources/locale
Cheats=/var/config/PCSX2/cheats
CheatsWS=/var/config/PCSX2/cheats_ws

View file

@ -106,9 +106,9 @@ use_cpu_jit=true
use_cpu_jit\default=true
[Data%20Storage]
nand_directory=~/retrodeck/saves/Citra/nand/
nand_directory=~/retrodeck/saves/n3ds/citra/nand/
nand_directory\default=false
sdmc_directory=~/retrodeck/saves/Citra/sdmc/
sdmc_directory=~/retrodeck/saves/n3ds/citra/sdmc/
sdmc_directory\default=false
use_virtual_sd=true
use_virtual_sd\default=true

View file

@ -24,19 +24,19 @@ DSPHLE = True
Fullscreen = True
DisableScreenSaver = True
[GBA]
BIOS = /var/data/dolphin-emu/GBA/gba_bios.bin
BIOS = ~/retrodeck/bios
Rom1 =
Rom2 =
Rom3 =
Rom4 =
SavesInRomPath = False
SavesPath = /var/data/dolphin-emu/GBA/Saves/
SavesPath = ~/retrodeck/saves/gba
Threads = True
[General]
ISOPath0 = /run/user/1000/doc/9cd3cde7/wii
ISOPath1 = /run/user/1000/doc/14708e0c/gc
ISOPath0 = ~/retrodeck/roms/wii
ISOPath1 = ~/retrodeck/roms/gc
ISOPaths = 2
WiiSDCardPath = /var/data/dolphin-emu/Wii/sd.raw
WiiSDCardPath = ~/retrodeck/saves/wii/dolphin/sd.raw
WirelessMac = 00:17:ab:83:9b:d4
HotkeysRequireFocus = True
RecursiveISOPaths = True

View file

@ -0,0 +1,230 @@
[Main]
SettingsVersion = 3
EmulationSpeed = 1.000000
FastForwardSpeed = 0.000000
TurboSpeed = 0.000000
SyncToHostRefreshRate = false
IncreaseTimerResolution = true
InhibitScreensaver = true
StartPaused = false
StartFullscreen = false
PauseOnFocusLoss = true
PauseOnMenu = true
SaveStateOnExit = true
ConfirmPowerOff = true
LoadDevicesFromSaveStates = true
ApplyGameSettings = true
AutoLoadCheats = true
DisableAllEnhancements = false
RewindEnable = false
RewindFrequency = 10.000000
RewindSaveSlots = 10
RunaheadFrameCount = 0.000000
ControllerBackend = SDL
ControllerEnhancedMode = false
EnableDiscordPresence = false
[Console]
Region = Auto
Enable8MBRAM = false
[CPU]
ExecutionMode = Recompiler
OverclockNumerator = 1
OverclockDenominator = 1
OverclockEnable = false
RecompilerMemoryExceptions = false
RecompilerBlockLinking = true
ICache = false
FastmemMode = true
[GPU]
Renderer = Vulkan
ResolutionScale = 1
Multisamples = 1
UseDebugDevice = false
UseSoftwareRendererForReadbacks = false
PerSampleShading = false
UseThread = true
ThreadedPresentation = true
TrueColor = false
ScaledDithering = true
TextureFilter = Nearest
DownsampleMode = Disabled
DisableInterlacing = true
ForceNTSCTimings = false
WidescreenHack = false
ChromaSmoothing24Bit = false
PGXPEnable = false
PGXPCulling = true
PGXPTextureCorrection = true
PGXPVertexCache = false
PGXPCPU = false
PGXPPreserveProjFP = false
PGXPTolerance = -1.000000
PGXPDepthBuffer = false
PGXPDepthClearThreshold = 300.000000
[Display]
CropMode = Overscan
ActiveStartOffset = 0
ActiveEndOffset = 0
LineStartOffset = 0
LineEndOffset = 0
AspectRatio = Auto (Game Native)
CustomAspectRatioNumerator = 4
Force4_3For24Bit = false
LinearFiltering = true
IntegerScaling = false
Stretch = false
PostProcessing = false
ShowOSDMessages = true
ShowFPS = false
ShowVPS = false
ShowSpeed = false
ShowResolution = false
ShowStatusIndicators = true
ShowEnhancements = false
Fullscreen = false
VSync = false
DisplayAllFrames = false
PostProcessChain =
MaxFPS = 0.000000
InternalResolutionScreenshots = false
[CDROM]
ReadaheadSectors = 8
RegionCheck = false
LoadImageToRAM = false
MuteCDAudio = false
ReadSpeedup = 1
SeekSpeedup = 1
[Audio]
Backend = Cubeb
OutputVolume = 100
FastForwardVolume = 100
BufferSize = 2048
Resampling = true
OutputMuted = 0
Sync = true
DumpOnBoot = false
[BIOS]
SearchDirectory = /home/deck/retrodeck/bios
PathNTSCU =
PathNTSCJ =
PathPAL =
PatchTTYEnable = false
PatchFastBoot = false
[Controller1]
Type = DigitalController
ButtonUp = Keyboard/W
ButtonDown = Keyboard/S
ButtonLeft = Keyboard/A
ButtonRight = Keyboard/D
ButtonSelect = Keyboard/Backspace
ButtonStart = Keyboard/Return
ButtonTriangle = Keyboard/Keypad+8
ButtonCross = Keyboard/Keypad+2
ButtonSquare = Keyboard/Keypad+4
ButtonCircle = Keyboard/Keypad+6
ButtonL1 = Keyboard/Q
ButtonL2 = Keyboard/1
ButtonR1 = Keyboard/E
ButtonR2 = Keyboard/3
[Controller2]
Type = None
[Controller3]
Type = None
[Controller4]
Type = None
[Controller5]
Type = None
[Controller6]
Type = None
[Controller7]
Type = None
[Controller8]
Type = None
[MemoryCards]
Card1Type = PerGameTitle
Card2Type = None
UsePlaylistTitle = true
[ControllerPorts]
MultitapMode = Disabled
[Logging]
LogLevel = Info
LogFilter =
LogToConsole = true
LogToDebug = false
LogToWindow = false
LogToFile = false
[Debug]
ShowVRAM = false
DumpCPUToVRAMCopies = false
DumpVRAMToCPUCopies = false
ShowGPUState = false
ShowCDROMState = false
ShowSPUState = false
ShowTimersState = false
ShowMDECState = false
ShowDMAState = false
[Hacks]
DMAMaxSliceTicks = 1000
DMAHaltTicks = 100
GPUFIFOSize = 16
GPUMaxRunAhead = 128
[Hotkeys]
FastForward = Keyboard/Tab
TogglePause = Keyboard/Space
ToggleFullscreen = Keyboard/Alt+Return
Screenshot = Keyboard/F10
OpenQuickMenu = Keyboard/Escape
[Cheevos]
Enabled = true
TestMode = false
UnofficialTestMode = false
UseFirstDiscFromPlaylist = true
[UI]
MainWindowGeometry = AdnQywADAAAAAADrAAAAEQAABAoAAALpAAAA6wAAAC4AAAQKAAAC6QAAAAAAAAAABQAAAADrAAAALgAABAoAAALp
MainWindowState = AAAA/wAAAAD9AAAAAAAAAyAAAAI9AAAABAAAAAQAAAAIAAAACPwAAAABAAAAAgAAAAEAAAAOAHQAbwBvAGwAQgBhAHIBAAAAAP////8AAAAAAAAAAA==

View file

@ -123,8 +123,8 @@ RecentROM_6=
RecentROM_7=
RecentROM_8=
RecentROM_9=
SaveFilePath=~/retrodeck/saves
SavestatePath=~/retrodeck/states
SaveFilePath=~/retrodeck/saves/nds/melonds
SavestatePath=~/retrodeck/states/nds/melonds
CheatFilePath=
EnableCheats=0
MouseHide=0

View file

@ -0,0 +1,66 @@
#!/bin/bash
# SPDX-License-Identifier: GPL-2.0-or-later
# Copyright (C) 2021-present Shanti Gilbert (https://github.com/shantigilbert)
# Copyright (C) 2021-present AmberELEC (https://github.com/AmberELEC)
. /etc/profile
EE_DEVICE=$(cat /storage/.config/.OS_ARCH)
CONFIG_DIR="/storage/.config/distribution/ecwolf"
CONFIG_FILE="${CONFIG_DIR}/ecwolf.cfg"
SAVE_DIR="/storage/roms/gamedata/ecwolf"
if [ ! -L "/storage/.config/ecwolf" ]
then
ln -sf "/storage/.config/distribution/ecwolf" "/storage/.config/ecwolf"
fi
if [ ! -f "/storage/.config/distribution/ecwolf/ecwolf.cfg" ]
then
cp -rf /usr/config/distribution/ecwolf/ecwolf.cfg /storage/.config/distribution/ecwolf/
fi
mkdir -p ${SAVE_DIR}
params=" --config ${CONFIG_FILE} --savedir ${SAVE_DIR}"
# data can be SD2 SD3 SOD WL6 or N3D and it's passed as the ROM
DATA=${1#*.}
# If its a mod (extension .ecwolf) read the file and parse the data
if [ ${DATA} == "ecwolf" ]; then
dos2unix "${1}"
while IFS== read -r key value; do
if [ "$key" == "DATA" ]; then
params+=" --data $value"
fi
if [ "$key" == "PK3" ]; then
params+=" --file $value"
fi
if [ "$key" == "PK3_1" ]; then
params+=" --file $value"
fi
if [ "$key" == "PK3_2" ]; then
params+=" --file $value"
fi
if [ "$key" == "PK3_3" ]; then
params+=" --file $value"
fi
if [ "$key" == "PK3_4" ]; then
params+=" --file $value"
fi
done < "${1}"
else
params+=" --data ${DATA}"
fi
if [[ "$EE_DEVICE" == RG351P ]]; then
params+=" --res 480 320"
fi
if [[ "$EE_DEVICE" == RG351V ]] || [[ "$EE_DEVICE" == RG351MP ]]; then
params+=" --res 640 480"
fi
cd "${CONFIG_DIR}"
/usr/bin/ecwolf ${params} > /tmp/logs/ecwolf.log 2>&1

View file

@ -0,0 +1,79 @@
#!/usr/bin/bash
# SPDX-License-Identifier: GPL-2.0-or-later
# Copyright (C) 2021-present AmberELEC (https://github.com/AmberELEC)
#. /etc/profile
ROM="${1##*/}"
PLATFORM="doom"
CONF="/storage/.config/distribution/configs/distribution.conf"
function get_setting() {
#We look for the setting on the ROM first, if not found we search for platform and lastly we search globally
PAT="s|^${PLATFORM}\[\"${ROM}\"\].*${1}=\(.*\)|\1|p"
EES=$(sed -n "${PAT}" "${CONF}" | head -1)
if [ -z "${EES}" ]; then
PAT="s|^${PLATFORM}[\.-]${1}=\(.*\)|\1|p"
EES=$(sed -n "${PAT}" "${CONF}" | head -1)
fi
if [ -z "${EES}" ]; then
PAT="s|^global[\.-].*${1}=\(.*\)|\1|p"
EES=$(sed -n "${PAT}" "${CONF}" | head -1)
fi
[ -z "${EES}" ] && EES="false"
}
# Show FPS
get_setting "show_fps"
echo ${EES}
if [ "${EES}" == "auto" ] || [ "${EES}" == "disabled" ] || [ "${EES}" == "false" ] || [ "${EES}" == "none" ] || [ "${EES}" == "0" ]; then
SHOWFPS='0'
else
SHOWFPS='1'
fi
EE_DEVICE=$(cat /storage/.config/.OS_ARCH)
RUN_DIR="/storage/roms/doom"
CONFIG="/storage/.config/distribution/gzdoom/gzdoom.ini"
SAVE_DIR="/storage/roms/gamedata/gzdoom"
if [ ! -L "/storage/.config/gzdoom" ]
then
ln -sf "/storage/.config/distribution/gzdoom" "/storage/.config/gzdoom"
fi
if [ ! -f "/storage/.config/distribution/gzdoom/gzdoom.ini" ]
then
cp -rf /usr/config/distribution/gzdoom/gzdoom.ini /storage/.config/distribution/gzdoom/
fi
mkdir -p ${SAVE_DIR}
params=" -config ${CONFIG} -savedir ${SAVE_DIR}"
# EXT can be wad, WAD, iwad, IWAD, pwad, PWAD or doom
EXT=${1#*.}
# If its not a simple wad (extension .doom) read the file and parse the data
if [ ${EXT} == "doom" ]; then
dos2unix "${1}"
while IFS== read -r key value; do
if [ "$key" == "IWAD" ]; then
params+=" -iwad $value"
fi
if [ "$key" == "MOD" ]; then
params+=" -file $value"
fi
done < "${1}"
else
params+=" -iwad ${1}"
fi
params+=" +gl_es 1 +vid_preferbackend 3 +cl_capfps 0 +vid_fps $SHOWFPS"
cd "${RUN_DIR}"
/usr/bin/gzdoom ${params} >/tmp/logs/gzdoom.log 2>&1

View file

@ -0,0 +1,26 @@
[ControlMapping]
Up = 1-19,10-19
Down = 1-20,10-20
Left = 1-21,10-21
Right = 1-22,10-22
Circle = 1-52,10-190
Cross = 1-54,10-189
Square = 1-29,10-191
Triangle = 1-47,10-188
Start = 1-62,10-197
Select = 1-66,10-196
L = 1-45,10-194
R = 1-51,10-195
An.Up = 1-37,10-4003
An.Down = 1-39,10-4002
An.Left = 1-38,10-4001
An.Right = 1-40,10-4000
Analog limiter = 1-60
RapidFire = 1-59
Fast-forward = 10-4010
SpeedToggle = 1-68
Pause = 1-40
Rewind = 10-4008
Save State = 1-53
Load State = 1-48
Screenshot = 1-46

View file

@ -0,0 +1,456 @@
[General]
FirstRun = False
RunCount = 0
Enable Logging = True
AutoRun = True
Browse = False
IgnoreBadMemAccess = True
CurrentDirectory = /home/deck/retrodeck/roms/psp
ShowDebuggerOnLoad = False
CheckForNewVersion = False
Language = en_US
ForceLagSync2 = False
DiscordPresence = True
UISound = False
AutoLoadSaveState = 2
EnableCheats = False
CwCheatRefreshRate = 77
CwCheatScrollPosition = 0.000000
GameListScrollPosition = 0.000000
ScreenshotsAsPNG = False
UseFFV1 = False
DumpFrames = False
DumpVideoOutput = False
DumpAudio = False
SaveLoadResetsAVdumping = False
StateSlot = 0
EnableStateUndo = True
StateLoadUndoGame = NA
StateUndoLastSaveGame = NA
StateUndoLastSaveSlot = -5
RewindFlipFrequency = 0
ShowOnScreenMessage = True
ShowRegionOnGameIcon = False
ShowIDOnGameIcon = False
GameGridScale = 1.000000
GridView1 = True
GridView2 = True
GridView3 = False
RightAnalogUp = 0
RightAnalogDown = 0
RightAnalogLeft = 0
RightAnalogRight = 0
RightAnalogPress = 0
RightAnalogCustom = False
RightAnalogDisableDiagonal = False
SwipeUp = 0
SwipeDown = 0
SwipeLeft = 0
SwipeRight = 0
SwipeSensitivity = 1.000000
SwipeSmoothing = 0.300000
DoubleTapGesture = 0
GestureControlEnabled = False
ReportingHost = default
AutoSaveSymbolMap = False
CacheFullIsoInRam = False
RemoteISOPort = 0
LastRemoteISOServer =
LastRemoteISOPort = 0
RemoteISOManualConfig = False
RemoteShareOnStartup = False
RemoteISOSubdir = /
RemoteDebuggerOnStartup = False
InternalScreenRotation = 1
BackgroundAnimation = 1
PauseWhenMinimized = False
DumpDecryptedEboots = False
MemStickInserted = True
EnablePlugins = True
[CPU]
CPUCore = 1
SeparateSASThread = True
SeparateIOThread = True
IOTimingMethod = 0
FastMemoryAccess = True
FunctionReplacements = True
HideSlowWarnings = False
HideStateWarnings = False
PreloadFunctions = False
JitDisableFlags = 0x00000000
CPUSpeed = 0
[Graphics]
EnableCardboardVR = False
CardboardScreenSize = 50
CardboardXShift = 0
CardboardYShift = 0
ShowFPSCounter = 0
GraphicsBackend = 3 (VULKAN)
FailedGraphicsBackends =
DisabledGraphicsBackends =
VulkanDevice =
CameraDevice =
RenderingMode = 1
SoftwareRenderer = False
HardwareTransform = True
SoftwareSkinning = True
TextureFiltering = 1
BufferFiltering = 1
InternalResolution = 1
AndroidHwScale = 1
HighQualityDepth = 1
FrameSkip = 0
FrameSkipType = 0
AutoFrameSkip = False
FrameRate = 0
FrameRate2 = -1
UnthrottlingMode = CONTINUOUS
AnisotropyLevel = 4
VertexDecCache = False
TextureBackoffCache = False
TextureSecondaryCache = False
FullScreen = False
FullScreenMulti = False
SmallDisplayZoomType = 2
SmallDisplayOffsetX = 0.500000
SmallDisplayOffsetY = 0.500000
SmallDisplayZoomLevel = 1.000000
ImmersiveMode = True
SustainedPerformanceMode = False
IgnoreScreenInsets = True
ReplaceTextures = True
SaveNewTextures = False
IgnoreTextureFilenames = False
TexScalingLevel = 1
TexScalingType = 0
TexDeposterize = False
TexHardwareScaling = False
VSyncInterval = False
BloomHack = 0
SplineBezierQuality = 2
HardwareTessellation = False
TextureShader = Off
ShaderChainRequires60FPS = False
MemBlockTransferGPU = True
DisableSlowFramebufEffects = False
FragmentTestCache = True
LogFrameDrops = False
InflightFrames = 2
RenderDuplicateFrames = False
[Sound]
Enable = True
AudioBackend = 0
ExtraAudioBuffering = False
GlobalVolume = 10
ReverbVolume = 10
AltSpeedVolume = -1
AudioDevice =
AutoAudioDevice = True
[Control]
HapticFeedback = False
ShowTouchCross = True
ShowTouchCircle = True
ShowTouchSquare = True
ShowTouchTriangle = True
Custom0Mapping = 0x0000000000000000
Custom0Image = 0
Custom0Shape = 0
Custom0Toggle = False
Custom1Mapping = 0x0000000000000000
Custom1Image = 1
Custom1Shape = 0
Custom1Toggle = False
Custom2Mapping = 0x0000000000000000
Custom2Image = 2
Custom2Shape = 0
Custom2Toggle = False
Custom3Mapping = 0x0000000000000000
Custom3Image = 3
Custom3Shape = 0
Custom3Toggle = False
Custom4Mapping = 0x0000000000000000
Custom4Image = 4
Custom4Shape = 0
Custom4Toggle = False
Custom5Mapping = 0x0000000000000000
Custom5Image = 0
Custom5Shape = 1
Custom5Toggle = False
Custom6Mapping = 0x0000000000000000
Custom6Image = 1
Custom6Shape = 1
Custom6Toggle = False
Custom7Mapping = 0x0000000000000000
Custom7Image = 2
Custom7Shape = 1
Custom7Toggle = False
Custom8Mapping = 0x0000000000000000
Custom8Image = 3
Custom8Shape = 1
Custom8Toggle = False
Custom9Mapping = 0x0000000000000000
Custom9Image = 4
Custom9Shape = 1
Custom9Toggle = False
ShowTouchPause = False
ShowTouchControls = False
DisableDpadDiagonals = False
GamepadOnlyFocused = False
TouchButtonStyle = 1
TouchButtonOpacity = 65
TouchButtonHideSeconds = 20
AutoCenterTouchAnalog = False
AnalogAutoRotSpeed = 8.000000
TouchSnapToGrid = False
TouchSnapGridSize = 64
ActionButtonSpacing2 = 1.000000
ActionButtonCenterX = -1.000000
ActionButtonCenterY = -1.000000
ActionButtonScale = 1.150000
DPadX = -1.000000
DPadY = -1.000000
DPadScale = 1.150000
ShowTouchDpad = True
DPadSpacing = 1.000000
StartKeyX = -1.000000
StartKeyY = -1.000000
StartKeyScale = 1.150000
ShowTouchStart = True
SelectKeyX = -1.000000
SelectKeyY = -1.000000
SelectKeyScale = 1.150000
ShowTouchSelect = True
UnthrottleKeyX = -1.000000
UnthrottleKeyY = -1.000000
UnthrottleKeyScale = 1.150000
ShowTouchUnthrottle = True
LKeyX = -1.000000
LKeyY = -1.000000
LKeyScale = 1.150000
ShowTouchLTrigger = True
RKeyX = -1.000000
RKeyY = -1.000000
RKeyScale = 1.150000
ShowTouchRTrigger = True
AnalogStickX = -1.000000
AnalogStickY = -1.000000
AnalogStickScale = 1.150000
ShowAnalogStick = True
RightAnalogStickX = -1.000000
RightAnalogStickY = -1.000000
RightAnalogStickScale = 1.150000
ShowRightAnalogStick = False
fcombo0X = -1.000000
fcombo0Y = -1.000000
comboKeyScale0 = 1.150000
ShowComboKey0 = False
fcombo1X = -1.000000
fcombo1Y = -1.000000
comboKeyScale1 = 1.150000
ShowComboKey1 = False
fcombo2X = -1.000000
fcombo2Y = -1.000000
comboKeyScale2 = 1.150000
ShowComboKey2 = False
fcombo3X = -1.000000
fcombo3Y = -1.000000
comboKeyScale3 = 1.150000
ShowComboKey3 = False
fcombo4X = -1.000000
fcombo4Y = -1.000000
comboKeyScale4 = 1.150000
ShowComboKey4 = False
fcombo5X = -1.000000
fcombo5Y = -1.000000
comboKeyScale5 = 1.150000
ShowComboKey5 = False
fcombo6X = -1.000000
fcombo6Y = -1.000000
comboKeyScale6 = 1.150000
ShowComboKey6 = False
fcombo7X = -1.000000
fcombo7Y = -1.000000
comboKeyScale7 = 1.150000
ShowComboKey7 = False
fcombo8X = -1.000000
fcombo8Y = -1.000000
comboKeyScale8 = 1.150000
ShowComboKey8 = False
fcombo9X = -1.000000
fcombo9Y = -1.000000
comboKeyScale9 = 1.150000
ShowComboKey9 = False
AnalogDeadzone = 0.150000
AnalogInverseDeadzone = 0.000000
AnalogSensitivity = 1.100000
AnalogIsCircular = False
AnalogLimiterDeadzone = 0.600000
LeftStickHeadScale = 1.000000
RightStickHeadScale = 1.000000
HideStickBackground = False
UseMouse = False
MapMouse = False
ConfineMap = False
MouseSensitivity = 0.100000
MouseSmoothing = 0.900000
SystemControls = True
[Network]
EnableWlan = False
EnableAdhocServer = False
proAdhocServer = socom.cc
PortOffset = 10000
MinTimeout = 0
ForcedFirstConnect = False
EnableUPnP = False
UPnPUseOriginalPort = False
EnableNetworkChat = False
ChatButtonPosition = 0
ChatScreenPosition = 0
EnableQuickChat = True
QuickChat1 = Quick Chat 1
QuickChat2 = Quick Chat 2
QuickChat3 = Quick Chat 3
QuickChat4 = Quick Chat 4
QuickChat5 = Quick Chat 5
[SystemParam]
PSPModel = 1
PSPFirmwareVersion = 660
NickName = RetroDECK
MacAddress = 24:4c:79:2b:9d:0c
Language = 1
ParamTimeFormat = 0
ParamDateFormat = 2
TimeZone = 0
DayLightSavings = False
ButtonPreference = 1
LockParentalLevel = 0
WlanAdhocChannel = 0
WlanPowerSave = False
EncryptSave = True
SavedataUpgradeVersion = True
MemStickSize = 16
[Debugger]
DisasmWindowX = -1
DisasmWindowY = -1
DisasmWindowW = -1
DisasmWindowH = -1
GEWindowX = -1
GEWindowY = -1
GEWindowW = -1
GEWindowH = -1
ConsoleWindowX = -1
ConsoleWindowY = -1
FontWidth = 8
FontHeight = 12
DisplayStatusBar = True
ShowBottomTabTitles = True
ShowDeveloperMenu = False
SkipDeadbeefFilling = False
FuncHashMap = False
MemInfoDetailed = False
DrawFrameGraph = False
[Upgrade]
UpgradeMessage =
UpgradeVersion =
DismissedVersion =
[Theme]
ItemStyleFg = 0xffffffff
ItemStyleBg = 0x55000000
ItemFocusedStyleFg = 0xffffffff
ItemFocusedStyleBg = 0xffedc24c
ItemDownStyleFg = 0xffffffff
ItemDownStyleBg = 0xffbd9939
ItemDisabledStyleFg = 0x80eeeeee
ItemDisabledStyleBg = 0x55e0d4af
ItemHighlightedStyleFg = 0xffffffff
ItemHighlightedStyleBg = 0x55bdbb39
ButtonStyleFg = 0xffffffff
ButtonStyleBg = 0x55000000
ButtonFocusedStyleFg = 0xffffffff
ButtonFocusedStyleBg = 0xffedc24c
ButtonDownStyleFg = 0xffffffff
ButtonDownStyleBg = 0xffbd9939
ButtonDisabledStyleFg = 0x80eeeeee
ButtonDisabledStyleBg = 0x55e0d4af
ButtonHighlightedStyleFg = 0xffffffff
ButtonHighlightedStyleBg = 0x55bdbb39
HeaderStyleFg = 0xffffffff
InfoStyleFg = 0xffffffff
InfoStyleBg = 0x00000000
PopupTitleStyleFg = 0xffe3be59
PopupStyleFg = 0xffffffff
PopupStyleBg = 0xff303030
[Recent]
MaxRecent = 60
[Log]
SYSTEMEnabled = True
SYSTEMLevel = 2
BOOTEnabled = True
BOOTLevel = 2
COMMONEnabled = True
COMMONLevel = 2
CPUEnabled = True
CPULevel = 2
FILESYSEnabled = True
FILESYSLevel = 2
G3DEnabled = True
G3DLevel = 2
HLEEnabled = True
HLELevel = 2
JITEnabled = True
JITLevel = 2
LOADEREnabled = True
LOADERLevel = 2
MEEnabled = True
MELevel = 2
MEMMAPEnabled = True
MEMMAPLevel = 2
SASMIXEnabled = True
SASMIXLevel = 2
SAVESTATEEnabled = True
SAVESTATELevel = 2
FRAMEBUFEnabled = True
FRAMEBUFLevel = 2
AUDIOEnabled = True
AUDIOLevel = 2
IOEnabled = True
IOLevel = 2
SCEAUDIOEnabled = True
SCEAUDIOLevel = 2
SCECTRLEnabled = True
SCECTRLLevel = 2
SCEDISPEnabled = True
SCEDISPLevel = 2
SCEFONTEnabled = True
SCEFONTLevel = 2
SCEGEEnabled = True
SCEGELevel = 2
SCEINTCEnabled = True
SCEINTCLevel = 2
SCEIOEnabled = True
SCEIOLevel = 2
SCEKERNELEnabled = True
SCEKERNELLevel = 2
SCEMODULEEnabled = True
SCEMODULELevel = 2
SCENETEnabled = True
SCENETLevel = 2
SCERTCEnabled = True
SCERTCLevel = 2
SCESASEnabled = True
SCESASLevel = 2
SCEUTILEnabled = True
SCEUTILLevel = 2
SCEMISCEnabled = True
SCEMISCLevel = 2
[PostShaderSetting]
BloomSettingValue1 = 0.600000
BloomSettingValue2 = 0.500000
CartoonSettingValue1 = 0.500000
ColorCorrectionSettingValue1 = 1.000000
ColorCorrectionSettingValue2 = 1.000000
ColorCorrectionSettingValue3 = 1.000000
ColorCorrectionSettingValue4 = 1.000000
ScanlinesSettingValue1 = 1.000000
ScanlinesSettingValue2 = 0.500000
SharpenSettingValue1 = 1.500000

View file

@ -44,6 +44,20 @@ beetle_psx_skip_bios = "disabled"
beetle_psx_use_mednafen_memcard0_method = "libretro"
beetle_psx_widescreen_hack = "disabled"
beetle_psx_widescreen_hack_aspect_ratio = "16:9"
cap32_advanced_green_phosphor = "15"
cap32_autorun = "enabled"
cap32_combokey = "y"
cap32_db_mapkeys = "enabled"
cap32_floppy_sound = "enabled"
cap32_gfx_colors = "24bit"
cap32_lang_layout = "english"
cap32_model = "6128"
cap32_ram = "128"
cap32_retrojoy0 = "auto"
cap32_retrojoy1 = "auto"
cap32_scr_intensity = "8"
cap32_scr_tube = "color"
cap32_statusbar = "onloading"
citra_analog_function = "C-Stick and Touchscreen Pointer"
citra_custom_textures = "disabled"
citra_deadzone = "15"
@ -145,6 +159,110 @@ dolphin_wait_for_shaders = "disabled"
dolphin_widescreen = "enabled"
dolphin_widescreen_hack = "disabled"
dolphin_wiimote_continuous_scanning = "disabled"
duckstation_BIOS.PatchFastBoot = "true"
duckstation_BIOS.PathNTSCJ = "scph5500.bin"
duckstation_BIOS.PathNTSCU = "scph5501.bin"
duckstation_BIOS.PathPAL = "scph5502.bin"
duckstation_CDROM.LoadImagePatches = "false"
duckstation_CDROM.LoadImageToRAM = "false"
duckstation_CDROM.MuteCDAudio = "false"
duckstation_CDROM.PreCacheCHD = "false"
duckstation_CDROM.ReadaheadSectors = "8"
duckstation_CDROM.ReadSpeedup = "1"
duckstation_CDROM.ReadThread = "true"
duckstation_CDROM.RegionCheck = "false"
duckstation_CDROM.SeekSpeedup = "1"
duckstation_Console.Enable8MBRAM = "false"
duckstation_Console.Region = "Auto"
duckstation_Controller1.AnalogDPadInDigitalMode = "true"
duckstation_Controller1.AxisScale = "1.00f"
duckstation_Controller1.ForceAnalogOnReset = "false"
duckstation_Controller1.SteeringDeadzone = "0.10"
duckstation_Controller1.TwistResponse = "linear"
duckstation_Controller1.VibrationBias = "8"
duckstation_Controller1.XScale = "1.00"
duckstation_Controller2.AnalogDPadInDigitalMode = "true"
duckstation_Controller2.AxisScale = "1.00f"
duckstation_Controller2.ForceAnalogOnReset = "false"
duckstation_Controller2.SteeringDeadzone = "0.00"
duckstation_Controller2.TwistResponse = "linear"
duckstation_Controller2.VibrationBias = "8"
duckstation_Controller2.XScale = "1.00"
duckstation_Controller3.AnalogDPadInDigitalMode = "true"
duckstation_Controller3.AxisScale = "1.00f"
duckstation_Controller3.ForceAnalogOnReset = "false"
duckstation_Controller3.SteeringDeadzone = "0.10"
duckstation_Controller3.TwistResponse = "linear"
duckstation_Controller3.VibrationBias = "8"
duckstation_Controller4.AnalogDPadInDigitalMode = "true"
duckstation_Controller4.AxisScale = "1.00f"
duckstation_Controller4.ForceAnalogOnReset = "false"
duckstation_Controller4.SteeringDeadzone = "0.10"
duckstation_Controller4.TwistResponse = "linear"
duckstation_Controller4.VibrationBias = "8"
duckstation_Controller5.AnalogDPadInDigitalMode = "true"
duckstation_Controller5.AxisScale = "1.00f"
duckstation_Controller5.ForceAnalogOnReset = "false"
duckstation_Controller5.VibrationBias = "8"
duckstation_Controller6.AnalogDPadInDigitalMode = "true"
duckstation_Controller6.AxisScale = "1.00f"
duckstation_Controller6.ForceAnalogOnReset = "false"
duckstation_Controller6.VibrationBias = "8"
duckstation_Controller7.AnalogDPadInDigitalMode = "true"
duckstation_Controller7.AxisScale = "1.00f"
duckstation_Controller7.ForceAnalogOnReset = "false"
duckstation_Controller7.VibrationBias = "8"
duckstation_Controller8.AnalogDPadInDigitalMode = "true"
duckstation_Controller8.AxisScale = "1.00f"
duckstation_Controller8.ForceAnalogOnReset = "false"
duckstation_Controller8.VibrationBias = "8"
duckstation_ControllerPorts.MultitapMode = "Disabled"
duckstation_CPU.ExecutionMode = "Recompiler"
duckstation_CPU.FastmemMode = "MMap"
duckstation_CPU.FastmemRewrite = "false"
duckstation_CPU.Overclock = "100"
duckstation_CPU.RecompilerBlockLinking = "true"
duckstation_CPU.RecompilerICache = "false"
duckstation_Display.ActiveEndOffset = "0"
duckstation_Display.ActiveStartOffset = "0"
duckstation_Display.AspectRatio = "Auto"
duckstation_Display.CropMode = "Borders"
duckstation_Display.CustomAspectRatioDenominator = "3"
duckstation_Display.CustomAspectRatioNumerator = "4"
duckstation_Display.Force4_3For24Bit = "false"
duckstation_Display.LineEndOffset = "0"
duckstation_Display.LineStartOffset = "0"
duckstation_Display.ShowOSDMessages = "true"
duckstation_GPU.ChromaSmoothing24Bit = "false"
duckstation_GPU.DisableInterlacing = "true"
duckstation_GPU.DownsampleMode = "Disabled"
duckstation_GPU.ForceNTSCTimings = "false"
duckstation_GPU.MSAA = "4"
duckstation_GPU.PGXPCPU = "false"
duckstation_GPU.PGXPCulling = "true"
duckstation_GPU.PGXPDepthBuffer = "false"
duckstation_GPU.PGXPEnable = "true"
duckstation_GPU.PGXPPreserveProjFP = "false"
duckstation_GPU.PGXPTextureCorrection = "true"
duckstation_GPU.PGXPTolerance = "-1.0"
duckstation_GPU.PGXPVertexCache = "false"
duckstation_GPU.Renderer = "Vulkan"
duckstation_GPU.ResolutionScale = "3"
duckstation_GPU.ScaledDithering = "true"
duckstation_GPU.TextureFilter = "Bilinear"
duckstation_GPU.TrueColor = "false"
duckstation_GPU.UseSoftwareRendererForReadbacks = "false"
duckstation_GPU.UseThread = "true"
duckstation_GPU.WidescreenHack = "false"
duckstation_Logging.LogLevel = "Info"
duckstation_Main.ApplyGameSettings = "true"
duckstation_Main.LoadDevicesFromSaveStates = "false"
duckstation_Main.RunaheadFrameCount = "0"
duckstation_MemoryCards.Card1Type = "Libretro"
duckstation_MemoryCards.Card2Type = "None"
duckstation_MemoryCards.UsePlaylistTitle = "true"
duckstation_TextureReplacements.EnableVRAMWriteReplacements = "false"
duckstation_TextureReplacements.PreloadTextures = "false"
gambatte_audio_resampler = "sinc"
gambatte_dark_filter_level = "0"
gambatte_gb_bootloader = "enabled"
@ -385,6 +503,7 @@ mupen64plus-txHiresEnable = "False"
mupen64plus-txHiresFullAlphaChannel = "False"
mupen64plus-u-cbutton = "C4"
mupen64plus-virefresh = "Auto"
opera_savestate_auto_load = "False"
pcsx2_accurate_date = "enabled"
pcsx2_anisotropic_filter = "0"
pcsx2_aspect_ratio = "0"

View file

@ -6,7 +6,7 @@ ai_service_pause = "false"
ai_service_source_lang = "0"
ai_service_target_lang = "0"
ai_service_url = "http://localhost:4404/"
all_users_control_menu = "false"
all_users_control_menu = "true"
apply_cheats_after_load = "false"
apply_cheats_after_toggle = "false"
aspect_ratio_index = "22"
@ -60,7 +60,7 @@ cheevos_auto_screenshot = "true"
cheevos_badges_enable = "false"
cheevos_challenge_indicators = "true"
cheevos_custom_host = ""
cheevos_enable = "true"
cheevos_enable = "false"
cheevos_hardcore_mode_enable = "false"
cheevos_leaderboards_enable = "true"
cheevos_password = ""
@ -256,7 +256,7 @@ input_load_state = "f4"
input_load_state_axis = "nul"
input_load_state_btn = "9"
input_load_state_mbtn = "nul"
input_max_users = "5"
input_max_users = "8"
input_menu_toggle = "f1"
input_menu_toggle_axis = "nul"
input_menu_toggle_btn = "3"
@ -2809,7 +2809,7 @@ menu_mouse_enable = "true"
menu_navigation_browser_filter_supported_extensions_enable = "true"
menu_navigation_wraparound_enable = "true"
menu_pause_libretro = "true"
menu_pointer_enable = "false"
menu_pointer_enable = "true"
menu_rgui_full_width_layout = "true"
menu_rgui_shadows = "false"
menu_rgui_transparency = "true"
@ -2821,7 +2821,7 @@ menu_screensaver_timeout = "0"
menu_scroll_delay = "256"
menu_scroll_fast = "false"
menu_shader_pipeline = "2"
menu_show_advanced_settings = "false"
menu_show_advanced_settings = "true"
menu_show_configurations = "true"
menu_show_core_updater = "false"
menu_show_dump_disc = "true"
@ -3067,9 +3067,9 @@ show_hidden_files = "false"
slowmotion_ratio = "3.000000"
soft_filter_enable = "false"
soft_filter_index = "0"
sort_savefiles_by_content_enable = "false"
sort_savefiles_by_content_enable = "true"
sort_savefiles_enable = "false"
sort_savestates_by_content_enable = "false"
sort_savestates_by_content_enable = "true"
sort_savestates_enable = "false"
sort_screenshots_by_content_enable = "false"
state_slot = "0"

View file

@ -11,18 +11,21 @@ Core:
Thread Scheduler Mode: Operating System
Set DAZ and FTZ: false
SPU Decoder: Recompiler (LLVM)
SPU GETLLAR polling detection: false
SPU Reservation Busy Waiting Percentage: 0
SPU GETLLAR Busy Waiting Percentage: 100
SPU Debug: false
MFC Debug: false
Preferred SPU Threads: 0
Preferred SPU Threads: 1
SPU delay penalty: 3
SPU loop detection: false
Max SPURS Threads: 6
SPU Block Size: Safe
SPU Block Size: Mega
Accurate GETLLAR: false
Accurate SPU DMA: false
Accurate SPU Reservations: true
Accurate Cache Line Stores: false
Accurate RSX reservation access: false
RSX FIFO Accuracy: Fast
SPU Verification: true
SPU Cache: true
SPU Profiler: false
@ -53,6 +56,10 @@ Core:
TSX Transaction First Limit: 800
TSX Transaction Second Limit: 2000
Clocks scale: 100
SPU Wake-Up Delay: 0
SPU Wake-Up Delay Thread Mask: 63
Max CPU Preempt Count: 0
Allow RSX CPU Preemptions: true
Sleep Timers Accuracy: As Host
Performance Report Threshold: 500
Enable Performance Report: false
@ -62,6 +69,7 @@ VFS:
Initialize Directories: true
Limit disk cache size: false
Disk cache maximum size (MB): 5120
Empty /dev_hdd0/tmp/: true
Video:
Renderer: Vulkan
Resolution: 1280x720
@ -83,6 +91,7 @@ Video:
Force High Precision Z buffer: false
Strict Rendering Mode: false
Disable ZCull Occlusion Queries: false
Disable Video Output: false
Disable Vertex Cache: false
Disable FIFO Reordering: false
Enable Frame Skip: false
@ -91,7 +100,7 @@ Video:
Disable Vulkan Memory Allocator: false
Use full RGB output range: true
Strict Texture Flushing: false
Disable native float16 support: false
Disable native float16 support: true
Multithreaded RSX: false
Relaxed ZCULL Sync: false
Enable 3D: false
@ -120,7 +129,7 @@ Video:
Asynchronous Texture Streaming 2: false
Enable FidelityFX Super Resolution Upscaling: false
FidelityFX CAS Sharpening Intensity: 50
Asynchronous Queue Scheduler: Safe
Asynchronous Queue Scheduler: Fast
Performance Overlay:
Enabled: false
Enable Framerate Graph: false
@ -159,7 +168,7 @@ Audio:
Master Volume: 100
Enable Buffering: true
Desired Audio Buffer Duration: 100
Enable Time Stretching: false
Enable Time Stretching: true
Time Stretching Threshold: 75
Microphone Type: "Null"
Microphone Devices: "@@@@@@@@@@@@"
@ -189,10 +198,15 @@ Net:
DNS address: 8.8.8.8
IP swap list: ""
PSN status: Disconnected
Savestate:
Start Paused: false
Suspend Emulation Savestate Mode: true
Inspection Mode Savestates: false
Save Disc Game Data: false
Miscellaneous:
Automatically start games after boot: true
Exit RPCS3 when process finishes: false
Start games in fullscreen mode: false
Exit RPCS3 when process finishes: true
Start games in fullscreen mode: true
Prevent display sleep while running games: true
Show trophy popups: true
Show shader compilation hint: true
@ -200,4 +214,3 @@ Miscellaneous:
GDB Server: 127.0.0.1:2345
Silence All Logs: false
Window Title Format: "FPS: %F | %R | %V | %T [%t]"
Log: {}

49
emu-configs/rpcs3/vfs.yml Normal file
View file

@ -0,0 +1,49 @@
$(EmulatorDir): "/home/deck/retrodeck/roms/ps3/emudir"
/dev_hdd0/: $(EmulatorDir)dev_hdd0/
/dev_hdd1/: $(EmulatorDir)dev_hdd1/
/dev_flash/: $(EmulatorDir)dev_flash/
/dev_flash2/: $(EmulatorDir)dev_flash2/
/dev_flash3/: $(EmulatorDir)dev_flash3/
/dev_bdvd/: $(EmulatorDir)dev_bdvd/
/app_home/: ""
/dev_usb***/:
/dev_usb000:
Path: $(EmulatorDir)dev_usb000/
Serial: ""
VID: ""
PID: ""
/dev_usb001:
Path: ""
Serial: ""
VID: ""
PID: ""
/dev_usb002:
Path: ""
Serial: ""
VID: ""
PID: ""
/dev_usb003:
Path: ""
Serial: ""
VID: ""
PID: ""
/dev_usb004:
Path: ""
Serial: ""
VID: ""
PID: ""
/dev_usb005:
Path: ""
Serial: ""
VID: ""
PID: ""
/dev_usb006:
Path: ""
Serial: ""
VID: ""
PID: ""
/dev_usb007:
Path: ""
Serial: ""
VID: ""
PID: ""

30
emu-configs/xemu.toml Normal file
View file

@ -0,0 +1,30 @@
[general]
show_welcome = false
screenshot_dir = '/home/deck/retrodeck/screenshots'
[input.bindings]
port1 = '03000000de280000ff11000001000000'
[display.quality]
surface_scale = 2
[display.window]
fullscreen_on_startup = true
startup_size = '1280x800'
last_width = 1620
last_height = 738
[display.ui]
fit = 'scale_16_9'
scale = 2
auto_scale = false
[sys]
mem_limit = '128'
[sys.files]
bootrom_path = '/home/deck/retrodeck/bios/mcpx_1.0.bin'
flashrom_path = '/home/deck/retrodeck/bios/Complex.bin'
eeprom_path = '/home/deck/retrodeck/saves/xbox/xemu/xbox-eeprom.bin'
hdd_path = '/home/deck/retrodeck/bios/xbox_hdd.qcow2'

View file

@ -947,7 +947,7 @@ Paths\gamedirs\4\deep_scan=false
Paths\gamedirs\4\deep_scan\default=true
Paths\gamedirs\4\expanded=true
Paths\gamedirs\4\expanded\default=true
Paths\gamedirs\4\path=/run/user/1000/doc/a06af84a/Pictures
Paths\gamedirs\4\path=~/retrodeck/roms/switch
Paths\gamedirs\size=4
Paths\language=en
Paths\language\default=false
@ -956,7 +956,7 @@ Paths\romsPath=~/retrodeck/roms/switch
Paths\symbolsPath=
Screenshots\enable_screenshot_save_as=true
Screenshots\enable_screenshot_save_as\default=true
Screenshots\screenshot_path=/var/data/yuzu/screenshots
Screenshots\screenshot_path=~/retrodeck/screenshots
Shortcuts\Main%20Window\Audio%20Mute\Unmute\Context=1
Shortcuts\Main%20Window\Audio%20Mute\Unmute\Context\default=true
Shortcuts\Main%20Window\Audio%20Mute\Unmute\Controller_KeySeq=

View file

@ -51,6 +51,20 @@
<entry>atari800-jz.atari800</entry>
</rule>
</emulator>
<emulator name="BASILISKII">
<!-- Macintosh 68k emulator Basilisk II -->
<rule type="systempath">
<entry>BasiliskII</entry>
<entry>net.cebix.basilisk</entry>
</rule>
<rule type="staticpath">
<entry>/var/lib/flatpak/exports/bin/net.cebix.basilisk</entry>
<entry>~/.local/share/flatpak/exports/bin/net.cebix.basilisk</entry>
<entry>~/Applications/BasiliskII-x86_64.AppImage</entry>
<entry>~/.local/bin/BasiliskII-x86_64.AppImage</entry>
<entry>~/bin/BasiliskII-x86_64.AppImage</entry>
</rule>
</emulator>
<emulator name="BLASTEM">
<!-- Sega Mega Drive/Genesis emulator BlastEm -->
<rule type="systempath">
@ -72,10 +86,21 @@
<entry>~/.local/share/flatpak/exports/bin/dev.bsnes.bsnes</entry>
</rule>
</emulator>
<emulator name="CEMU">
<!-- Nintendo Wii U emulator Cemu -->
<rule type="systempath">
<entry>Cemu</entry>
</rule>
<rule type="staticpath">
<entry>~/Applications/Cemu/Cemu</entry>
<entry>~/.local/bin/Cemu/Cemu</entry>
<entry>~/bin/Cemu/Cemu</entry>
</rule>
</emulator>
<emulator name="CITRA">
<!-- Nintendo 3DS emulator Citra -->
<rule type="systempath">
<entry>citra</entry>
<entry>citra-qt</entry>
<entry>citra-emu.citra-nightly</entry>
<entry>org.citra_emu.citra</entry>
</rule>
@ -149,6 +174,17 @@
<entry>~/bin/duckstation-qt-x64.AppImage</entry>
</rule>
</emulator>
<emulator name="EASYRPG">
<!-- EasyRPG game engine -->
<rule type="systempath">
<entry>easyrpg-player</entry>
</rule>
<rule type="staticpath">
<entry>~/Applications/easyrpg/easyrpg-player</entry>
<entry>~/.local/bin/easyrpg/easyrpg-player</entry>
<entry>~/bin/easyrpg/easyrpg-player</entry>
</rule>
</emulator>
<emulator name="FLYCAST">
<!-- Sega Dreamcast emulator Flycast -->
<rule type="systempath">
@ -183,10 +219,43 @@
<entry>~/bin/hypseus-singe/hypseus.bin</entry>
</rule>
</emulator>
<emulator name="LIGHTSPARK">
<!-- Adobe Flash player Lightspark -->
<rule type="systempath">
<entry>lightspark</entry>
</rule>
<rule type="staticpath">
<entry>~/Applications/lightspark/lightspark</entry>
<entry>~/.local/bin/lightspark/lightspark</entry>
<entry>~/bin/lightspark/lightspark</entry>
</rule>
</emulator>
<emulator name="LINAPPLE">
<!-- Apple II emulator LinApple -->
<rule type="systempath">
<entry>linapple</entry>
</rule>
<rule type="staticpath">
<entry>~/Applications/linapple/linapple</entry>
<entry>~/.local/bin/linapple/linapple</entry>
<entry>~/bin/linapple/linapple</entry>
</rule>
</emulator>
<emulator name="MAME">
<!-- Arcade emulator MAME -->
<rule type="systempath">
<entry>mame</entry>
<entry>org.mamedev.MAME</entry>
</rule>
<rule type="staticpath">
<entry>/var/lib/flatpak/exports/bin/org.mamedev.MAME</entry>
<entry>~/.local/share/flatpak/exports/bin/org.mamedev.MAME</entry>
</rule>
</emulator>
<emulator name="MEDNAFEN">
<!-- Multi-system emulator Mednafen -->
<rule type="systempath">
<entry>mednafen</entry>
</rule>
</emulator>
<emulator name="MELONDS">
@ -249,6 +318,17 @@
</emulator>
<emulator name="PCSX2">
<!-- Sony PlayStation 2 emulator PCSX2 -->
<rule type="systempath">
<entry>pcsx2-qt</entry>
</rule>
<rule type="staticpath">
<entry>~/Applications/pcsx2*-Qt.AppImage</entry>
<entry>~/.local/bin/pcsx2*-Qt.AppImage</entry>
<entry>~/bin/pcsx2*-Qt.AppImage</entry>
</rule>
</emulator>
<emulator name="PCSX2-LEGACY">
<!-- Sony PlayStation 2 emulator PCSX2 (legacy) -->
<rule type="systempath">
<entry>PCSX2</entry>
<entry>pcsx2</entry>
@ -284,9 +364,10 @@
<emulator name="PPSSPP">
<!-- Sony PlayStation Portable emulator PPSSPP -->
<rule type="systempath">
<entry>PPSSPPSDL</entry>
<entry>ppsspp-emu.ppsspp-sdl</entry>
<entry>org.ppsspp.PPSSPP</entry>
<entry>PPSSPPSDL</entry>
<entry>PPSSPPQt</entry>
</rule>
<rule type="staticpath">
<entry>/var/lib/flatpak/exports/bin/org.ppsspp.PPSSPP</entry>
@ -340,6 +421,17 @@
<entry>~/.local/share/flatpak/exports/bin/com.snes9x.Snes9x</entry>
</rule>
</emulator>
<emulator name="RUFFLE">
<!-- Adobe Flash player Ruffle -->
<rule type="systempath">
<entry>ruffle</entry>
</rule>
<rule type="staticpath">
<entry>~/Applications/ruffle/ruffle</entry>
<entry>~/.local/bin/ruffle/ruffle</entry>
<entry>~/bin/ruffle/ruffle</entry>
</rule>
</emulator>
<emulator name="RYUJINX">
<!-- Nintendo Switch emulator Ryujinx -->
<rule type="systempath">
@ -354,12 +446,99 @@
<entry>~/bin/publish/Ryujinx</entry>
</rule>
</emulator>
<emulator name="SCUMMVM">
<!-- ScummVM game engine -->
<rule type="systempath">
<entry>scummvm</entry>
<entry>org.scummvm.ScummVM</entry>
</rule>
<rule type="staticpath">
<entry>/var/lib/flatpak/exports/bin/org.scummvm.ScummVM</entry>
<entry>~/.local/share/flatpak/exports/bin/org.scummvm.ScummVM</entry>
</rule>
</emulator>
<emulator name="SDL2TRS">
<!-- Tandy TRS-80 emulator sdl2trs -->
<rule type="systempath">
<entry>sdl2trs</entry>
</rule>
<rule type="staticpath">
<entry>~/Applications/sdl2trs/sdl2trs</entry>
<entry>~/.local/bin/sdl2trs/sdl2trs</entry>
<entry>~/bin/sdl2trs/sdl2trs</entry>
</rule>
</emulator>
<emulator name="SHEEPSHAVER">
<!-- Macintosh PowerPC emulator SheepShaver -->
<rule type="systempath">
<entry>SheepShaver</entry>
</rule>
<rule type="staticpath">
<entry>~/Applications/SheepShaver-x86_64.AppImage</entry>
<entry>~/.local/bin/SheepShaver-x86_64.AppImage</entry>
<entry>~/bin/SheepShaver-x86_64.AppImage</entry>
</rule>
</emulator>
<emulator name="SIMCOUPE">
<!-- SAM Coupé emulator SimCoupé -->
<rule type="systempath">
<entry>simcoupe</entry>
</rule>
<rule type="staticpath">
<entry>~/Applications/simcoupe/simcoupe</entry>
<entry>~/.local/bin/simcoupe/simcoupe</entry>
<entry>~/bin/simcoupe/simcoupe</entry>
</rule>
</emulator>
<emulator name="SNES9X">
<!-- Super Nintendo emulator Snes9x -->
<rule type="systempath">
<entry>snes9x</entry>
</rule>
<rule type="staticpath">
<entry>/var/lib/flatpak/exports/bin/com.snes9x.Snes9x</entry>
<entry>~/.local/share/flatpak/exports/bin/com.snes9x.Snes9x</entry>
</rule>
</emulator>
<emulator name="SOLARUS">
<!-- Solarus game engine -->
<rule type="systempath">
<entry>solarus-run</entry>
<entry>solarus.run</entry>
</rule>
</emulator>
<emulator name="STEAM">
<!-- Valve Steam -->
<rule type="systempath">
<entry>steam</entry>
</rule>
</emulator>
<emulator name="TSUGARU">
<!-- Fujitsu FM Towns emulator Tsugaru -->
<rule type="staticpath">
<entry>~/Applications/tsugaru/Tsugaru_CUI</entry>
<entry>~/.local/bin/tsugaru/Tsugaru_CUI</entry>
<entry>~/bin/tsugaru/Tsugaru_CUI</entry>
</rule>
</emulator>
<emulator name="VBA-M">
<!-- Nintendo Game Boy Advance emulator VBA-M -->
<rule type="systempath">
<entry>visualboyadvance-m</entry>
</rule>
</emulator>
<emulator name="VITA3K">
<!-- Sony PlayStation Vita emulator Vita3K -->
<rule type="systempath">
<entry>vita3k</entry>
<entry>Vita3K</entry>
</rule>
<rule type="staticpath">
<entry>~/Applications/Vita3K/Vita3K</entry>
<entry>~/.local/bin/Vita3K/Vita3K</entry>
<entry>~/bin/Vita3K/Vita3K</entry>
</rule>
</emulator>
<emulator name="XEMU">
<!-- Microsoft Xbox emulator xemu -->
<rule type="systempath">
@ -374,6 +553,17 @@
<entry>~/bin/Xemu*.AppImage</entry>
</rule>
</emulator>
<emulator name="XROAR">
<!-- Dragon and Tandy 8-bit computer emulator XRoar -->
<rule type="systempath">
<entry>xroar</entry>
</rule>
<rule type="staticpath">
<entry>~/Applications/xroar/xroar</entry>
<entry>~/.local/bin/xroar/xroar</entry>
<entry>~/bin/xroar/xroar</entry>
</rule>
</emulator>
<emulator name="YUZU">
<!-- Nintendo Switch emulator Yuzu -->
<rule type="systempath">

View file

@ -14,7 +14,7 @@
<bool name="FoldersOnTop" value="true" />
<bool name="GamelistFilters" value="true" />
<bool name="GamelistVideoAudio" value="true" />
<bool name="GamelistVideoPillarbox" value="true" />
<bool name="GamelistVideoPillarbox" value="false" />
<bool name="GamelistVideoScanlines" value="false" />
<bool name="IgnoreGamelist" value="false" />
<bool name="InputOnlyFirstController" value="false" />
@ -42,9 +42,9 @@
<bool name="QuickSystemSelect" value="true" />
<bool name="RandomAddButton" value="false" />
<bool name="RunInBackground" value="false" />
<bool name="Scrape3DBoxes" value="true" />
<bool name="ScrapeBackCovers" value="true" />
<bool name="ScrapeControllers" value="true" />
<bool name="Scrape3DBoxes" value="false" />
<bool name="ScrapeBackCovers" value="false" />
<bool name="ScrapeControllers" value="false" />
<bool name="ScrapeCovers" value="true" />
<bool name="ScrapeGameNames" value="true" />
<bool name="ScrapeMarquees" value="true" />
@ -52,10 +52,10 @@
<bool name="ScrapePhysicalMedia" value="true" />
<bool name="ScrapeRatings" value="true" />
<bool name="ScrapeScreenshots" value="true" />
<bool name="ScrapeTitleScreens" value="true" />
<bool name="ScrapeTitleScreens" value="false" />
<bool name="ScrapeVideos" value="true" />
<bool name="ScraperExcludeRecursively" value="true" />
<bool name="ScraperHaltOnInvalidMedia" value="true" />
<bool name="ScraperHaltOnInvalidMedia" value="false" />
<bool name="ScraperIncludeFolders" value="false" />
<bool name="ScraperInteractive" value="false" />
<bool name="ScraperOverwriteData" value="false" />
@ -101,7 +101,7 @@
<string name="LaunchScreenDuration" value="normal" />
<string name="MediaDirectory" value="" />
<string name="MenuOpeningEffect" value="scale-up" />
<string name="MiximageBoxSize" value="medium" />
<string name="MiximageBoxSize" value="small" />
<string name="MiximagePhysicalMediaSize" value="medium" />
<string name="MiximageResolution" value="1280x800" />
<string name="MiximageScreenshotScaling" value="sharp" />
@ -115,7 +115,7 @@
<string name="ScreensaverSlideshowImageDir" value="~/.emulationstation/slideshow/custom_images" />
<string name="ScreensaverType" value="video" />
<string name="StartupSystem" value="" />
<string name="ThemeSet" value="art-book-next-de" />
<string name="ThemeSet" value="art-book-next" />
<string name="TransitionStyle" value="slide" />
<string name="UIMode" value="full" />
<string name="UIMode_passkey" value="uuddlrlrba" />

View file

@ -5,7 +5,7 @@
<name>3do</name>
<fullname>3DO</fullname>
<path>%ROMPATH%/3do</path>
<extension>.iso .ISO .bin .BIN .chd .CHD .cue .CUE .7z .7Z .zip .ZIP</extension>
<extension>.iso .ISO .bin .BIN .chd .CHD .cue .CUE</extension>
<command label="Opera">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/opera_libretro.so %ROM%</command>
<platform>3do</platform>
<theme>3do</theme>
@ -21,50 +21,52 @@
<platform>n64</platform>
<theme>64dd</theme>
</system>
<!--
<system>
<name>ags</name>
<fullname>Adventure Game Studio Game Engine</fullname>
<path>%ROMPATH%/ags</path>
<extension>.7z .7Z .zip .ZIP</extension>
<command>PLACEHOLDER %ROM%</command>
<extension>.desktop</extension>
<command>%ENABLESHORTCUTS% %EMULATOR_OS-SHELL% %ROM%</command>
<platform>ags</platform>
<theme>ags</theme>
</system>
-->
<system>
<name>amiga</name>
<fullname>Commodore Amiga</fullname>
<path>%ROMPATH%/amiga</path>
<extension>.adf .ADF .adz .ADZ .dms .DMS .fdi .FDI .ipf .IPF .hdf .HDF .hdz .HDZ .lha .LHA .cue .CUE .ccd .CCD .nrg .NRG .mds .MDS .iso .ISO .uae .UAE .m3u .M3U .7z .7Z .zip .ZIP</extension>
<extension>.adf .ADF .adz .ADZ .ccd .CCD .chd .CHD .cue .CUE .dms .DMS .fdi .FDI .hdf .HDF .hdz .HDZ .ipf .IPF .rp9 .RP9 .iso .ISO .lha .LHA .m3u .M3U .mds .MDS .nrg .NRG .uae .UAE .7z .7Z .zip .ZIP</extension>
<command label="PUAE">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/puae_libretro.so %ROM%</command>
<command label="PUAE 2021">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/puae2021_libretro.so %ROM%</command>
<platform>amiga</platform>
<theme>amiga</theme>
</system>
<system>
<name>amiga600</name>
<fullname>Commodore Amiga 600</fullname>
<path>%ROMPATH%/amiga600</path>
<extension>.adf .ADF .adz .ADZ .dms .DMS .fdi .FDI .ipf .IPF .hdf .HDF .hdz .HDZ .lha .LHA .cue .CUE .ccd .CCD .nrg .NRG .mds .MDS .iso .ISO .uae .UAE .m3u .M3U .7z .7Z .zip .ZIP</extension>
<command label="PUAE">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/puae_libretro.so %ROM%</command>
<command label="PUAE 2021">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/puae2021_libretro.so %ROM%</command>
<platform>amiga</platform>
<theme>amiga600</theme>
</system>
<system>
<name>amiga1200</name>
<fullname>Commodore Amiga 1200</fullname>
<path>%ROMPATH%/amiga1200</path>
<extension>.adf .ADF .adz .ADZ .dms .DMS .fdi .FDI .ipf .IPF .hdf .HDF .hdz .HDZ .lha .LHA .cue .CUE .ccd .CCD .nrg .NRG .mds .MDS .iso .ISO .uae .UAE .m3u .M3U .7z .7Z .zip .ZIP</extension>
<extension>.adf .ADF .adz .ADZ .ccd .CCD .chd .CHD .cue .CUE .dms .DMS .fdi .FDI .hdf .HDF .hdz .HDZ .ipf .IPF .rp9 .RP9 .iso .ISO .lha .LHA .m3u .M3U .mds .MDS .nrg .NRG .uae .UAE .7z .7Z .zip .ZIP</extension>
<command label="PUAE">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/puae_libretro.so %ROM%</command>
<command label="PUAE 2021">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/puae2021_libretro.so %ROM%</command>
<platform>amiga</platform>
<theme>amiga1200</theme>
</system>
<system>
<name>amiga600</name>
<fullname>Commodore Amiga 600</fullname>
<path>%ROMPATH%/amiga600</path>
<extension>.adf .ADF .adz .ADZ .ccd .CCD .chd .CHD .cue .CUE .dms .DMS .fdi .FDI .hdf .HDF .hdz .HDZ .ipf .IPF .rp9 .RP9 .iso .ISO .lha .LHA .m3u .M3U .mds .MDS .nrg .NRG .uae .UAE .7z .7Z .zip .ZIP</extension>
<command label="PUAE">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/puae_libretro.so %ROM%</command>
<command label="PUAE 2021">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/puae2021_libretro.so %ROM%</command>
<platform>amiga</platform>
<theme>amiga600</theme>
</system>
<system>
<name>amigacd32</name>
<fullname>Commodore Amiga CD32</fullname>
<path>%ROMPATH%/amigacd32</path>
<extension>.adf .ADF .adz .ADZ .dms .DMS .fdi .FDI .ipf .IPF .hdf .HDF .hdz .HDZ .lha .LHA .cue .CUE .ccd .CCD .nrg .NRG .mds .MDS .iso .ISO .uae .UAE .m3u .M3U .7z .7Z .zip .ZIP</extension>
<extension>.adf .ADF .adz .ADZ .ccd .CCD .chd .CHD .cue .CUE .dms .DMS .fdi .FDI .hdf .HDF .hdz .HDZ .ipf .IPF .rp9 .RP9 .iso .ISO .lha .LHA .m3u .M3U .mds .MDS .nrg .NRG .uae .UAE .7z .7Z .zip .ZIP</extension>
<command label="PUAE">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/puae_libretro.so %ROM%</command>
<command label="PUAE 2021">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/puae2021_libretro.so %ROM%</command>
<platform>amigacd32</platform>
@ -89,21 +91,25 @@
<platform>android</platform>
<theme>android</theme>
</system>
<!--
<system>
<name>apple2</name>
<fullname>Apple II</fullname>
<path>%ROMPATH%/apple2</path>
<extension>.nib .NIB .do .DO .po .PO .dsk .DSK .7z .7Z .zip .ZIP</extension>
<command>PLACEHOLDER %ROM%</command>
<extension>.do .DO .dsk .DSK .nib .NIB .po .PO</extension>
<command label="LinApple (Standalone)">%EMULATOR_LINAPPLE% -f -b &#45;&#45;d1 %ROM%</command> TJIS WAS DOULBE - BUT IT'S NOT ALLOWED IN THE COMMENTS
<command label="Mednafen (Standalone)">%EMULATOR_MEDNAFEN% -force_module apple2 %ROM%</command>
<command label="MAME (Standalone)">%STARTDIR%=~/.mame %EMULATOR_MAME% -rompath %ROMPATH%/apple2 apple2e -flop1 %ROM%</command>
<platform>apple2</platform>
<theme>apple2</theme>
</system>
-->
<system>
<name>apple2gs</name>
<fullname>Apple IIGS</fullname>
<path>%ROMPATH%/apple2gs</path>
<extension>.nib .NIB .do .DO .po .PO .dsk .DSK .7z .7Z .zip .ZIP</extension>
<command>PLACEHOLDER %ROM%</command>
<extension>.2mg .2MG</extension>
<command label="MAME (Standalone)">%STARTDIR%=~/.mame %EMULATOR_MAME% -rompath %ROMPATH%/apple2gs apple2gs -flop3 %ROM%</command>
<platform>apple2gs</platform>
<theme>apple2gs</theme>
</system>
@ -116,11 +122,12 @@
<command label="MAME 2010">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mame2010_libretro.so %ROM%</command>
<command label="MAME 2003-Plus">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mame2003_plus_libretro.so %ROM%</command>
<command label="MAME 2000">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mame2000_libretro.so %ROM%</command>
<command label="MAME (Standalone)">%STARTDIR%=~/.mame %EMULATOR_MAME% -rompath %ROMPATH%/arcade %BASENAME%</command>
<!-- <command label="MAME (Standalone)">%STARTDIR%=~/.mame %EMULATOR_MAME% -rompath %ROMPATH%/arcade %BASENAME%</command> -->
<command label="FinalBurn Neo">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/fbneo_libretro.so %ROM%</command>
<command label="FB Alpha 2012">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/fbalpha2012_libretro.so %ROM%</command>
<command label="Flycast">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/flycast_libretro.so %ROM%</command>
<command label="Flycast (Standalone)">%EMULATOR_FLYCAST% %ROM%</command>
<!-- <command label="Flycast (Standalone)">%EMULATOR_FLYCAST% %ROM%</command> -->
<command label="Kronos">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/kronos_libretro.so %ROM%</command>
<platform>arcade</platform>
<theme>arcade</theme>
</system>
@ -151,6 +158,7 @@
<extension>.xfd .XFD .atr .ATR .atx .ATX .cdm .CDM .cas .CAS .bin .BIN .a52 .A52 .xex .XEX .7z .7Z .zip .ZIP</extension>
<command label="a5200">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/a5200_libretro.so %ROM%</command>
<command label="Atari800">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/atari800_libretro.so %ROM%</command>
<!-- <command label="Atari800 (Standalone)">%EMULATOR_ATARI800% %ROM%</command> -->
<platform>atari5200</platform>
<theme>atari5200</theme>
</system>
@ -198,6 +206,7 @@
<extension>.lnx .LNX .o .O .7z .7Z .zip .ZIP</extension>
<command label="Handy">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/handy_libretro.so %ROM%</command>
<command label="Beetle Lynx">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mednafen_lynx_libretro.so %ROM%</command>
<!-- <command label="Mednafen (Standalone)">%EMULATOR_MEDNAFEN% -force_module lynx %ROM%</command> -->
<platform>atarilynx</platform>
<theme>atarilynx</theme>
</system>
@ -275,7 +284,7 @@
<name>cdtv</name>
<fullname>Commodore CDTV</fullname>
<path>%ROMPATH%/cdtv</path>
<extension>.cue .CUE .ccd .CCD .nrg .NRG .mds .MDS .iso .ISO .m3u .M3U .7z .7Z .zip .ZIP</extension>
<extension>.ccd .CCD .chd .CHD .cue .CUE .iso .ISO .m3u .M3U .mds .MDS .nrg .NRG .rp9 .RP9 .7z .7Z .zip .ZIP</extension>
<command label="PUAE">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/puae_libretro.so %ROM%</command>
<command label="PUAE 2021">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/puae2021_libretro.so %ROM%</command>
<platform>cdtv</platform>
@ -299,19 +308,22 @@
<platform>channelf</platform>
<theme>channelf</theme>
</system>
<!--
<system>
<name>coco</name>
<fullname>Tandy Color Computer</fullname>
<path>%ROMPATH%/coco</path>
<extension>.7z .7Z .zip .ZIP</extension>
<command>PLACEHOLDER %ROM%</command>
<extension>.cas .CAS .ccc .CCC .dsk .DSK .rom .ROM</extension>
<command label="XRoar CoCo 2 NTSC (Standalone)">%EMULATOR_XROAR% -fs -default-machine coco2bus %ROM%</command>
<command label="XRoar CoCo 2 PAL (Standalone)">%EMULATOR_XROAR% -fs -default-machine coco2b %ROM%</command>
<platform>coco</platform>
<theme>coco</theme>
</system>
-->
<system>
<name>colecovision</name>
<fullname>ColecoVision</fullname>
<path>%ROMPATH%/coleco</path>
<path>%ROMPATH%/colecovision</path>
<extension>.bin .BIN .cas .CAS .col .COL .cv .CV .dsk .DSK .m3u .M3U .mx1 .MX1 .mx2 .MX2 .ri .RI .rom .ROM .sc .SC .sg .SG .7z .7Z .zip .ZIP</extension>
<command label="blueMSX">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/bluemsx_libretro.so %ROM%</command>
<command label="Gearcoleco">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/gearcoleco_libretro.so %ROM%</command>
@ -350,9 +362,12 @@
<name>doom</name>
<fullname>Doom</fullname>
<path>%ROMPATH%/doom</path>
<extension>.wad .WAD .iwad .IWAD .pwad .PWAD</extension>
<command>%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/prboom_libretro.so %ROM%</command>
<platform>pc</platform>
<extension>.desktop .iwad .IWAD .pk4 .PK4 .pwad .PWAD .sh .wad .WAD</extension>
<command label="PrBoom">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/prboom_libretro.so %ROM%</command>
<command label="Boom 3">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/boom3_libretro.so %ROM%</command>
<command label="Boom 3 xp">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/boom3_xp_libretro.so %ROM%</command>
<command label="Shortcut or script">%ENABLESHORTCUTS% %EMULATOR_OS-SHELL% %ROM%</command>
<platform>pc, pcwindows</platform>
<theme>doom</theme>
</system>
<system>
@ -368,15 +383,18 @@
<platform>dos</platform>
<theme>dos</theme>
</system>
<!--
<system>
<name>dragon32</name>
<fullname>Dragon 32</fullname>
<path>%ROMPATH%/dragon32</path>
<extension>.7z .7Z .zip .ZIP</extension>
<command>PLACEHOLDER %ROM%</command>
<extension>.cas .CAS .ccc .CCC .dsk .DSK .rom .ROM</extension>
<command label="XRoar Dragon 32 (Standalone)">%EMULATOR_XROAR% -fs -default-machine dragon32 %ROM%</command>
<command label="XRoar Dragon 64 (Standalone)">%EMULATOR_XROAR% -fs -default-machine dragon64 %ROM%</command>
<platform>dragon32</platform>
<theme>dragon32</theme>
</system>
-->
<system>
<name>dreamcast</name>
<fullname>Sega Dreamcast</fullname>
@ -388,16 +406,27 @@
<platform>dreamcast</platform>
<theme>dreamcast</theme>
</system>
<system>
<name>easyrpg</name>
<fullname>EasyRPG Game Engine</fullname>
<path>%ROMPATH%/easyrpg</path>
<extension>.easyrpg .zip .ZIP</extension>
<command label="EasyRPG">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/easyrpg_libretro.so %ROM%</command>
<!-- <command label="EasyRPG Player (Standalone)">%STARTDIR%=%GAMEENTRYDIR% %EMULATOR_EASYRPG%</command> -->
<platform>easyrpg</platform>
<theme>easyrpg</theme>
</system>
<system>
<name>famicom</name>
<fullname>Nintendo Family Computer</fullname>
<path>%ROMPATH%/famicom</path>
<extension>.nes .NES .unf .UNF .unif .UNIF .7z .7Z .zip .ZIP</extension>
<extension>.fds .FDS .nes .NES .unf .UNF .unif .UNIF .7z .7Z .zip .ZIP</extension>
<command label="Mesen">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mesen_libretro.so %ROM%</command>
<command label="Nestopia UE">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/nestopia_libretro.so %ROM%</command>
<command label="Nestopia UE (Standalone)">%EMULATOR_NESTOPIA-UE% --fullscreen %ROM%</command>
<!-- <command label="Nestopia UE (Standalone)">%EMULATOR_NESTOPIA-UE% &#45;&#45;fullscreen %ROM%</command> -->
<command label="FCEUmm">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/fceumm_libretro.so %ROM%</command>
<command label="QuickNES">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/quicknes_libretro.so %ROM%</command>
<!-- <command label="Mednafen (Standalone)">%EMULATOR_MEDNAFEN% -force_module nes %ROM%</command> -->
<platform>famicom</platform>
<theme>famicom</theme>
</system>
@ -430,11 +459,33 @@
<extension>.nes .NES .fds .FDS .unf .UNF .UNIF .UNIF .7z .7Z .zip .ZIP</extension>
<command label="Mesen">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mesen_libretro.so %ROM%</command>
<command label="Nestopia UE">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/nestopia_libretro.so %ROM%</command>
<command label="Nestopia UE (Standalone)">%EMULATOR_NESTOPIA-UE% --fullscreen %ROM%</command>
<!-- <command label="Nestopia UE (Standalone)">%EMULATOR_NESTOPIA-UE% &#45;&#45;fullscreen %ROM%</command> -->
<command label="FCEUmm">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/fceumm_libretro.so %ROM%</command>
<!-- <command label="Mednafen (Standalone)">%EMULATOR_MEDNAFEN% -force_module nes %ROM%</command> -->
<platform>fds</platform>
<theme>fds</theme>
</system>
<!--
<system>
<name>flash</name>
<fullname>Adobe Flash</fullname>
<path>%ROMPATH%/flash</path>
<extension>.swf .SWF</extension>
<command label="Ruffle (Standalone)">%EMULATOR_RUFFLE% &#45;&#45;fullscreen %ROM%</command>
<command label="Lightspark (Standalone)">%EMULATOR_LIGHTSPARK% %ROM%</command>
<platform>flash</platform>
<theme>flash</theme>
</system>
<system>
<name>fmtowns</name>
<fullname>Fujitsu FM Towns</fullname>
<path>%ROMPATH%/fmtowns</path>
<extension>.cue .CUE .iso .ISO</extension>
<command label="Tsugaru (Standalone)">%EMULATOR_TSUGARU% %EMUDIR%/roms -HOSTSHORTCUT ESC 0 0 FORCEQUIT -FULLSCREEN -CD %ROM% %INJECT%=%BASENAME%.cfg</command>
<platform>fmtowns</platform>
<theme>fmtowns</theme>
</system>
-->
<system>
<name>gameandwatch</name>
<fullname>Nintendo Game and Watch</fullname>
@ -453,6 +504,7 @@
<command label="Genesis Plus GX Wide">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/genesis_plus_gx_wide_libretro.so %ROM%</command>
<command label="Gearsystem">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/gearsystem_libretro.so %ROM%</command>
<command label="SMS Plus GX">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/smsplus_libretro.so %ROM%</command>
<!-- <command label="Mednafen (Standalone)">%EMULATOR_MEDNAFEN% -force_module gg %ROM%</command> -->
<platform>gamegear</platform>
<theme>gamegear</theme>
</system>
@ -510,10 +562,10 @@
<name>gc</name>
<fullname>Nintendo GameCube</fullname>
<path>%ROMPATH%/gc</path>
<extension>.gcm .GCM .iso .ISO .wbfs .WBFS .wia .WIA .ciso .CISO .gcz .GCZ .elf .ELF .dol .DOL .dff .DFF .rvz .RVZ .tgc .TGC .wad .WAD .m3u .M3U .7z .7Z .zip .ZIP</extension>
<extension>.gcm .GCM .iso .ISO .wbfs .WBFS .wia .WIA .ciso .CISO .gcz .GCZ .elf .ELF .dol .DOL .dff .DFF .json .JSON .rvz .RVZ .tgc .TGC .wad .WAD .m3u .M3U .7z .7Z .zip .ZIP</extension>
<command label="Dolphin (Standalone)">%EMULATOR_DOLPHIN% -b -e %ROM%</command>
<command label="Dolphin">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/dolphin_libretro.so %ROM%</command>
<command label="PrimeHack (Standalone)">%EMULATOR_PRIMEHACK% -b -e %ROM%</command>
<!-- <command label="PrimeHack (Standalone)">%EMULATOR_PRIMEHACK% -b -e %ROM%</command> -->
<platform>gc</platform>
<theme>gc</theme>
</system>
@ -521,12 +573,13 @@
<name>genesis</name>
<fullname>Sega Genesis</fullname>
<path>%ROMPATH%/genesis</path>
<extension>.68k .68K .bin .BIN .bms .BMS .chd .CHD .cue .CUE .gen .GEN .gg .GG .iso .ISO .m3u .M3U .md .MD .mdx .MDX .sg .SG .sgd .SGD .smd .SMD .sms .SMS .7z .7Z .zip .ZIP</extension>
<extension>.32x .32X .68k .68K .bin .BIN .bms .BMS .chd .CHD .cue .CUE .gen .GEN .gg .GG .iso .ISO .m3u .M3U .md .MD .mdx .MDX .sg .SG .sgd .SGD .smd .SMD .sms .SMS .7z .7Z .zip .ZIP</extension>
<command label="Genesis Plus GX">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/genesis_plus_gx_libretro.so %ROM%</command>
<command label="Genesis Plus GX Wide">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/genesis_plus_gx_wide_libretro.so %ROM%</command>
<command label="PicoDrive">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/picodrive_libretro.so %ROM%</command>
<command label="BlastEm">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/blastem_libretro.so %ROM%</command>
<command label="BlastEm (Standalone)">%EMULATOR_BLASTEM% -m gen %ROM%</command>
<!-- <command label="Mednafen (Standalone)">%EMULATOR_MEDNAFEN% -force_module md %ROM%</command> -->
<platform>genesis</platform>
<theme>genesis</theme>
</system>
@ -534,8 +587,9 @@
<name>gx4000</name>
<fullname>Amstrad GX4000</fullname>
<path>%ROMPATH%/gx4000</path>
<extension>.7z .7Z .zip .ZIP</extension>
<command>PLACEHOLDER %ROM%</command>
<extension>.cdt .CDT .cpr .CPR .dsk .DSK .kcr .KCR .m3u .M3U .sna .SNA .tap .TAR .voc .VOC .7z .7Z .zip .ZIP</extension>
<command label="Caprice32">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/cap32_libretro.so %ROM%</command>
<command label="CrocoDS">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/crocods_libretro.so %ROM%</command>
<platform>gx4000</platform>
<theme>gx4000</theme>
</system>
@ -553,7 +607,7 @@
<fullname>Java 2 Micro Edition (J2ME)</fullname>
<path>%ROMPATH%/j2me</path>
<extension>.jar .JAR .7z .7Z .zip .ZIP</extension>
<command>%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/squirreljme_libretro.so %ROM%</command>
<command label="SquirrelJME">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/squirreljme_libretro.so %ROM%</command>
<platform>android</platform>
<theme>j2me</theme>
</system>
@ -575,11 +629,12 @@
<command label="MAME 2010">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mame2010_libretro.so %ROM%</command>
<command label="MAME 2003-Plus">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mame2003_plus_libretro.so %ROM%</command>
<command label="MAME 2000">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mame2000_libretro.so %ROM%</command>
<command label="MAME (Standalone)">%STARTDIR%=~/.mame %EMULATOR_MAME% -rompath %ROMPATH%/mame %BASENAME%</command>
<!-- <command label="MAME (Standalone)">%STARTDIR%=~/.mame %EMULATOR_MAME% -rompath %ROMPATH%/mame %BASENAME%</command> -->
<command label="FinalBurn Neo">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/fbneo_libretro.so %ROM%</command>
<command label="FB Alpha 2012">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/fbalpha2012_libretro.so %ROM%</command>
<command label="Flycast">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/flycast_libretro.so %ROM%</command>
<command label="Flycast (Standalone)">%EMULATOR_FLYCAST% %ROM%</command>
<!-- <command label="Flycast (Standalone)">%EMULATOR_FLYCAST% %ROM%</command> -->
<command label="Kronos">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/kronos_libretro.so %ROM%</command>
<platform>arcade</platform>
<theme>mame</theme>
</system>
@ -611,6 +666,7 @@
<command label="SMS Plus GX">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/smsplus_libretro.so %ROM%</command>
<command label="Gearsystem">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/gearsystem_libretro.so %ROM%</command>
<command label="PicoDrive">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/picodrive_libretro.so %ROM%</command>
<!-- <command label="Mednafen (Standalone)">%EMULATOR_MEDNAFEN% -force_module sms %ROM%</command> -->
<platform>mastersystem</platform>
<theme>mastersystem</theme>
</system>
@ -640,15 +696,25 @@
<name>megadrive</name>
<fullname>Sega Mega Drive</fullname>
<path>%ROMPATH%/megadrive</path>
<extension>.68k .68K .bin .BIN .bms .BMS .chd .CHD .cue .CUE .gen .GEN .gg .GG .iso .ISO .m3u .M3U .md .MD .mdx .MDX .sg .SG .sgd .SGD .smd .SMD .sms .SMS .7z .7Z .zip .ZIP</extension>
<extension>.32x .32X .68k .68K .bin .BIN .bms .BMS .chd .CHD .cue .CUE .gen .GEN .gg .GG .iso .ISO .m3u .M3U .md .MD .mdx .MDX .sg .SG .sgd .SGD .smd .SMD .sms .SMS .7z .7Z .zip .ZIP</extension>
<command label="Genesis Plus GX">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/genesis_plus_gx_libretro.so %ROM%</command>
<command label="Genesis Plus GX Wide">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/genesis_plus_gx_wide_libretro.so %ROM%</command>
<command label="PicoDrive">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/picodrive_libretro.so %ROM%</command>
<command label="BlastEm">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/blastem_libretro.so %ROM%</command>
<command label="BlastEm (Standalone)">%EMULATOR_BLASTEM% -m gen %ROM%</command>
<!-- <command label="BlastEm (Standalone)">%EMULATOR_BLASTEM% -m gen %ROM%</command>
<command label="Mednafen (Standalone)">%EMULATOR_MEDNAFEN% -force_module md %ROM%</command> -->
<platform>megadrive</platform>
<theme>megadrive</theme>
</system>
<system>
<name>megaduck</name>
<fullname>Creatronic Mega Duck</fullname>
<path>%ROMPATH%/megaduck</path>
<extension>.bin .BIN .7z .7Z .zip .ZIP</extension>
<command label="SameDuck">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/sameduck_libretro.so %ROM%</command>
<platform>megaduck</platform>
<theme>megaduck</theme>
</system>
<system>
<name>mess</name>
<fullname>Multi Emulator Super System</fullname>
@ -733,6 +799,17 @@
<platform>msxturbor</platform>
<theme>msxturbor</theme>
</system>
<!--
<system>
<name>mugen</name>
<fullname>M.U.G.E.N Game Engine</fullname>
<path>%ROMPATH%/mugen</path>
<extension>.7z .7Z .zip .ZIP</extension>
<command>PLACEHOLDER %ROM%</command>
<platform>mugen</platform>
<theme>mugen</theme>
</system>
-->
<system>
<name>multivision</name>
<fullname>Othello Multivision</fullname>
@ -757,13 +834,23 @@
<name>n64</name>
<fullname>Nintendo 64</fullname>
<path>%ROMPATH%/n64</path>
<extension>.n64 .N64 .v64 .V64 .z64 .Z64 .bin .BIN .u1 .U1 .7z .7Z .zip .ZIP</extension>
<extension>.bin .BIN .n64 .N64 .ndd .NDD .u1 .U1 .v64 .V64 .z64 .Z64 .7z .7Z .zip .ZIP</extension>
<command label="Mupen64Plus-Next">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mupen64plus_next_libretro.so %ROM%</command>
<command label="Mupen64Plus (Standalone)">%EMULATOR_MUPEN64PLUS% --nogui %ROM%</command>
<!-- <command label="Mupen64Plus (Standalone)">%EMULATOR_MUPEN64PLUS% &#45;&#45;nogui %ROM%</command> -->
<command label="ParaLLEl N64">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/parallel_n64_libretro.so %ROM%</command>
<platform>n64</platform>
<theme>n64</theme>
</system>
<system>
<name>n64dd</name>
<fullname>Nintendo 64DD</fullname>
<path>%ROMPATH%/n64dd</path>
<extension>.bin .BIN .n64 .N64 .ndd .NDD .u1 .U1 .v64 .V64 .z64 .Z64 .7z .7Z .zip .ZIP</extension>
<command label="ParaLLEl N64">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/parallel_n64_libretro.so %ROM%</command>
<command label="Mupen64Plus-Next">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mupen64plus_next_libretro.so %ROM%</command>
<platform>n64</platform>
<theme>n64dd</theme>
</system>
<system>
<name>naomi</name>
<fullname>Sega NAOMI</fullname>
@ -828,12 +915,13 @@
<name>nes</name>
<fullname>Nintendo Entertainment System</fullname>
<path>%ROMPATH%/nes</path>
<extension>.nes .NES .unf .UNF .unif .UNIF .7z .7Z .zip .ZIP</extension>
<extension>.fds .FDS .nes .NES .unf .UNF .unif .UNIF .7z .7Z .zip .ZIP</extension>
<command label="Mesen">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mesen_libretro.so %ROM%</command>
<command label="Nestopia UE">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/nestopia_libretro.so %ROM%</command>
<command label="Nestopia UE (Standalone)">%EMULATOR_NESTOPIA-UE% --fullscreen %ROM%</command>
<command label="FCEUmm">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/fceumm_libretro.so %ROM%</command>
<command label="QuickNES">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/quicknes_libretro.so %ROM%</command>
<!-- <command label="Mednafen (Standalone)">%EMULATOR_MEDNAFEN% -force_module nes %ROM%</command> -->
<platform>nes</platform>
<theme>nes</theme>
</system>
@ -844,6 +932,7 @@
<extension>.ngp .NGP .ngc .NGC .ngpc .NGPC .npc .NPC .7z .7Z .zip .ZIP</extension>
<command label="Beetle NeoPop">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mednafen_ngp_libretro.so %ROM%</command>
<command label="RACE">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/race_libretro.so %ROM%</command>
<!-- <command label="Mednafen (Standalone)">%EMULATOR_MEDNAFEN% -force_module ngp %ROM%</command> -->
<platform>ngp</platform>
<theme>ngp</theme>
</system>
@ -854,6 +943,7 @@
<extension>.ngp .NGP .ngc .NGC .ngpc .NGPC .npc .NPC .7z .7Z .zip .ZIP</extension>
<command label="Beetle NeoPop">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mednafen_ngp_libretro.so %ROM%</command>
<command label="RACE">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/race_libretro.so %ROM%</command>
<!-- <command label="Mednafen (Standalone)">%EMULATOR_MEDNAFEN% -force_module ngp %ROM%</command> -->
<platform>ngpc</platform>
<theme>ngpc</theme>
</system>
@ -875,15 +965,17 @@
<platform>openbor</platform>
<theme>openbor</theme>
</system>
<!--
<system>
<name>oric</name>
<fullname>Tangerine Computer Systems Oric</fullname>
<path>%ROMPATH%/oric</path>
<extension>.dsk .DSK .ort .ORT .tap .TAP .wav .WAV</extension>
<command label="Oricutron (Standalone)">%EMULATOR_ORICUTRON% %STARTDIR%=%EMUDIR% %ROM%</command>
<command label="Oricutron (Standalone)">%STARTDIR%=%EMUDIR% %EMULATOR_ORICUTRON% %ROM%</command>
<platform>oric</platform>
<theme>oric</theme>
</system>
-->
<system>
<name>palm</name>
<fullname>Palm OS</fullname>
@ -919,6 +1011,7 @@
<extension>.ccd .CCD .chd .CHD .cue .CUE .img .IMG .iso .ISO .m3u .M3U .pce .PCE .sgx .SGX .toc .TOC .7z .7Z .zip .ZIP</extension>
<command label="Beetle PCE">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mednafen_pce_libretro.so %ROM%</command>
<command label="Beetle PCE FAST">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mednafen_pce_fast_libretro.so %ROM%</command>
<!-- <command label="Mednafen (Standalone)">%EMULATOR_MEDNAFEN% -force_module pce %ROM%</command> -->
<platform>pcengine</platform>
<theme>pcengine</theme>
</system>
@ -929,6 +1022,7 @@
<extension>.ccd .CCD .chd .CHD .cue .CUE .img .IMG .iso .ISO .m3u .M3U .pce .PCE .sgx .SGX .toc .TOC .7z .7Z .zip .ZIP</extension>
<command label="Beetle PCE">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mednafen_pce_libretro.so %ROM%</command>
<command label="Beetle PCE FAST">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mednafen_pce_fast_libretro.so %ROM%</command>
<!-- <command label="Mednafen (Standalone)">%EMULATOR_MEDNAFEN% -force_module pce %ROM%</command> -->
<platform>pcenginecd</platform>
<theme>pcenginecd</theme>
</system>
@ -937,7 +1031,8 @@
<fullname>NEC PC-FX</fullname>
<path>%ROMPATH%/pcfx</path>
<extension>.cue CUE .ccd .CCD .toc .TOC .chd .CHD .7z .7Z .zip .ZIP</extension>
<command>%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mednafen_pcfx_libretro.so %ROM%</command>
<command label="Beetle PC-FX">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mednafen_pcfx_libretro.so %ROM%</command>
<!-- <command label="Mednafen (Standalone)">%EMULATOR_MEDNAFEN% -force_module pcfx %ROM%</command> -->
<platform>pcfx</platform>
<theme>pcfx</theme>
</system>
@ -966,8 +1061,8 @@
<name>ports</name>
<fullname>Ports</fullname>
<path>%ROMPATH%/ports</path>
<extension>.sh</extension>
<command>%EMULATOR_OS-SHELL% %ROM%</command>
<extension>.desktop .sh</extension>
<command>%ENABLESHORTCUTS% %EMULATOR_OS-SHELL% %ROM%</command>
<platform>pc</platform>
<theme>ports</theme>
</system>
@ -975,10 +1070,11 @@
<name>ps2</name>
<fullname>Sony PlayStation 2</fullname>
<path>%ROMPATH%/ps2</path>
<command label="PCSX2 (Standalone)">%EMULATOR_PCSX2% -batch %ROM%</command>
<extension>.bin .BIN .chd .CHD .ciso .CISO .cso .CSO .dump .DUMP .elf .ELF .gz .GZ .m3u .M3U .mdf .MDF .img .IMG .iso .ISO .isz .ISZ .ngr .NRG</extension>
<command label="PCSX2">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/pcsx2_libretro.so %ROM%</command>
<command label="PCSX2 (Standalone)">%EMULATOR_PCSX2% --nogui %ROM%</command>
<command label="Play! (Standalone)">%EMULATOR_PLAY!% --disc %ROM%</command>
<command label="PCSX2 Legacy (Standalone)">%EMULATOR_PCSX2-LEGACY% --nogui %ROM%</command>
<!-- <command label="Play! (Standalone)">%EMULATOR_PLAY!% &#45;&#45;disc %ROM%</command> -->
<platform>ps2</platform>
<theme>ps2</theme>
</system>
@ -986,7 +1082,7 @@
<name>ps3</name>
<fullname>Sony PlayStation 3</fullname>
<path>%ROMPATH%/ps3</path>
<extension>.ps3 .PS3 .ps3dir .PS3DIR</extension>
<extension>.desktop .ps3 .PS3 .ps3dir .PS3DIR</extension>
<command label="RPCS3 Shortcut (Standalone)">%ENABLESHORTCUTS% %EMULATOR_OS-SHELL% %ROM%</command>
<command label="RPCS3 Directory (Standalone)">%EMULATOR_RPCS3% --no-gui %ROM%</command>
<platform>ps3</platform>
@ -1011,25 +1107,28 @@
<platform>psp</platform>
<theme>psp</theme>
</system>
<!--
<system>
<name>psvita</name>
<fullname>Sony PlayStation Vita</fullname>
<path>%ROMPATH%/psvita</path>
<extension>.7z .7Z .zip .ZIP</extension>
<command>PLACEHOLDER %ROM%</command>
<extension>.psvita</extension>
<command label="Vita3K (Standalone)">%EMULATOR_VITA3K% -r %INJECT%=%BASENAME%.psvita</command>
<platform>psvita</platform>
<theme>psvita</theme>
</system>
-->
<system>
<name>psx</name>
<fullname>Sony PlayStation</fullname>
<path>%ROMPATH%/psx</path>
<extension>.bin .BIN .cbn .CBN .ccd .CCD .chd .CHD .cue .CUE .ecm .ECM .exe .EXE .img .IMG .iso .ISO .m3u .M3U .mdf .MDF .mds .MDS .pbp .PBP .psexe .PSEXE .psf .PSF .toc .TOC .z .Z .znx .ZNX .7z .7Z .zip .ZIP</extension>
<command label="SwanStation">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/swanstation_libretro.so %ROM%</command>
<command label="Beetle PSX">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mednafen_psx_libretro.so %ROM%</command>
<command label="Beetle PSX HW">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mednafen_psx_hw_libretro.so %ROM%</command>
<command label="PCSX ReARMed">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/pcsx_rearmed_libretro.so %ROM%</command>
<command label="SwanStation">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/swanstation_libretro.so %ROM%</command>
<command label="DuckStation (Standalone)">%EMULATOR_DUCKSTATION% -batch %ROM%</command>
<!-- <command label="Mednafen (Standalone)">%EMULATOR_MEDNAFEN% -force_module psx %ROM%</command> -->
<platform>psx</platform>
<theme>psx</theme>
</system>
@ -1039,6 +1138,7 @@
<path>%ROMPATH%/samcoupe</path>
<extension>.dsk .DSK .mgt .MGT .sbt .SBT .sad .SAD .7z .7Z .zip .ZIP</extension>
<command>%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/simcp_libretro.so %ROM%</command>
<!-- <command>%EMULATOR_SIMCOUPE% %ROM%</command> -->
<platform>samcoupe</platform>
<theme>samcoupe</theme>
</system>
@ -1067,6 +1167,7 @@
<command label="Kronos">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/kronos_libretro.so %ROM%</command>
<command label="YabaSanshiro">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/yabasanshiro_libretro.so %ROM%</command>
<command label="Yabause">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/yabause_libretro.so %ROM%</command>
<!-- <command label="Mednafen (Standalone)">%EMULATOR_MEDNAFEN% -force_module ss %ROM%</command> -->
<platform>saturn</platform>
<theme>saturn</theme>
</system>
@ -1079,6 +1180,7 @@
<command label="Kronos">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/kronos_libretro.so %ROM%</command>
<command label="YabaSanshiro">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/yabasanshiro_libretro.so %ROM%</command>
<command label="Yabause">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/yabause_libretro.so %ROM%</command>
<!-- <command label="Mednafen (Standalone)">%EMULATOR_MEDNAFEN% -force_module ss %ROM%</command> -->
<platform>saturn</platform>
<theme>saturnjp</theme>
</system>
@ -1087,7 +1189,8 @@
<fullname>ScummVM Game Engine</fullname>
<path>%ROMPATH%/scummvm</path>
<extension>.scummvm .SCUMMVM .svm .SVM</extension>
<command>%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/scummvm_libretro.so %ROM%</command>
<command label="ScummVM">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/scummvm_libretro.so %ROM%</command>
<!-- <command label="ScummVM (Standalone)">%STARTDIR%=%GAMEDIR% %EMULATOR_SCUMMVM% %BASENAME%</command> -->
<platform>scummvm</platform>
<theme>scummvm</theme>
</system>
@ -1158,6 +1261,17 @@
<platform>sg-1000</platform>
<theme>sg-1000</theme>
</system>
<system>
<name>sgb</name>
<fullname>Nintendo Super Game Boy</fullname>
<path>%ROMPATH%/sgb</path>
<extension>.gb .GB .gbc .GBC .sgb .SGB .7z .7Z .zip .ZIP</extension>
<command label="Mesen-S">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mesen-s_libretro.so %ROM%</command>
<command label="mGBA">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mgba_libretro.so %ROM%</command>
<!-- <command label="mGBA (Standalone)">%EMULATOR_MGBA% -f %ROM%</command> -->
<platform>gb</platform>
<theme>sgb</theme>
</system>
<system>
<name>snes</name>
<fullname>Nintendo SNES (Super Nintendo)</fullname>
@ -1192,15 +1306,17 @@
<platform>snes</platform>
<theme>snesna</theme>
</system>
<!--
<system>
<name>solarus</name>
<fullname>Solarus Game Engine</fullname>
<path>%ROMPATH%/solarus</path>
<extension>.7z .7Z .zip .ZIP</extension>
<command>PLACEHOLDER %ROM%</command>
<extension>.solarus</extension>
<command>%EMULATOR_SOLARUS% %ROM%</command>
<platform>solarus</platform>
<theme>solarus</theme>
</system>
-->
<system>
<name>spectravideo</name>
<fullname>Spectravideo</fullname>
@ -1244,13 +1360,22 @@
<platform>supergrafx</platform>
<theme>supergrafx</theme>
</system>
<system>
<name>supervision</name>
<fullname>Watara Supervision</fullname>
<path>%ROMPATH%/supervision</path>
<extension>.bin .BIN .sv .SV .7z .7Z .zip .ZIP</extension>
<command label="Potator">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/potator_libretro.so %ROM%</command>
<platform>supervision</platform>
<theme>supervision</theme>
</system>
<system>
<name>switch</name>
<fullname>Nintendo Switch</fullname>
<path>%ROMPATH%/switch</path>
<extension>.nca .NCA .nro .NRO .nso .NSO .nsp .NSP .xci .XCI .7z .7Z .zip .ZIP</extension>
<command label="Yuzu (Standalone)">%EMULATOR_YUZU% -f -g %ROM%</command>
<command label="Ryujinx (Standalone)">%EMULATOR_RYUJINX% %ROM%</command>
<!-- <command label="Ryujinx (Standalone)">%EMULATOR_RYUJINX% %ROM%</command> -->
<platform>switch</platform>
<theme>switch</theme>
</system>
@ -1263,15 +1388,17 @@
<platform>android</platform>
<theme>symbian</theme>
</system>
<!--
<system>
<name>tanodragon</name>
<fullname>Tano Dragon</fullname>
<path>%ROMPATH%/tanodragon</path>
<extension>.7z .7Z .zip .ZIP</extension>
<command>PLACEHOLDER %ROM%</command>
<extension>.cas .CAS .ccc .CCC .dsk .DSK .rom .ROM</extension>
<command label="XRoar (Standalone)">%EMULATOR_XROAR% -fs -default-machine tano %ROM%</command>
<platform>dragon32</platform>
<theme>tanodragon</theme>
</system>
-->
<system>
<name>tg16</name>
<fullname>NEC TurboGrafx-16</fullname>
@ -1279,6 +1406,7 @@
<extension>.ccd .CCD .chd .CHD .cue .CUE .img .IMG .iso .ISO .m3u .M3U .pce .PCE .sgx .SGX .toc .TOC .7z .7Z .zip .ZIP</extension>
<command label="Beetle PCE">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mednafen_pce_libretro.so %ROM%</command>
<command label="Beetle PCE FAST">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mednafen_pce_fast_libretro.so %ROM%</command>
<!-- <command label="Mednafen (Standalone)">%EMULATOR_MEDNAFEN% -force_module pce %ROM%</command> -->
<platform>pcengine</platform>
<theme>tg16</theme>
</system>
@ -1289,6 +1417,7 @@
<extension>.ccd .CCD .chd .CHD .cue .CUE .img .IMG .iso .ISO .m3u .M3U .pce .PCE .sgx .SGX .toc .TOC .7z .7Z .zip .ZIP</extension>
<command label="Beetle PCE">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mednafen_pce_libretro.so %ROM%</command>
<command label="Beetle PCE FAST">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mednafen_pce_fast_libretro.so %ROM%</command>
<!-- <command label="Mednafen (Standalone)">%EMULATOR_MEDNAFEN% -force_module pce %ROM%</command> -->
<platform>pcenginecd</platform>
<theme>tg-cd</theme>
</system>
@ -1305,8 +1434,8 @@
<name>tic80</name>
<fullname>TIC-80 Game Engine</fullname>
<path>%ROMPATH%/tic80</path>
<extension>.7z .7Z .zip .ZIP</extension>
<command>PLACEHOLDER %ROM%</command>
<extension>.tic .TIC</extension>
<command>%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/tic80_libretro.so %ROM%</command>
<platform>tic80</platform>
<theme>tic80</theme>
</system>
@ -1319,15 +1448,19 @@
<platform>moto</platform>
<theme>to8</theme>
</system>
<!--
<system>
<name>trs-80</name>
<fullname>Tandy TRS-80</fullname>
<path>%ROMPATH%/trs-80</path>
<extension>.7z .7Z .zip .ZIP</extension>
<command>PLACEHOLDER %ROM%</command>
<extension>.cmd .CMD .dsk .DSK</extension>
<command label="sdl2trs DOS Diskette (Standalone)">%STARTDIR%=%GAMEDIR% %EMULATOR_SDL2TRS% -rom %ROMPATH%/trs-80/level2.rom -disk0 %ROMPATH%/trs-80/boot.dsk -disk1 %ROM%</command>
<command label="sdl2trs Bootable Diskette (Standalone)">%STARTDIR%=%GAMEDIR% %EMULATOR_SDL2TRS% -rom %ROMPATH%/trs-80/level2.rom -disk0 %ROM%</command>
<command label="sdl2trs CMD File (Standalone)">%STARTDIR%=%GAMEDIR% %EMULATOR_SDL2TRS% -rom %ROMPATH%/trs-80/level2.rom %ROM%</command>
<platform>trs-80</platform>
<theme>trs-80</theme>
</system>
-->
<system>
<name>uzebox</name>
<fullname>Uzebox</fullname>
@ -1369,7 +1502,8 @@
<fullname>Nintendo Virtual Boy</fullname>
<path>%ROMPATH%/virtualboy</path>
<extension>.vb .VB .vboy .VBOY .bin .BIN .7z .7Z .zip .ZIP</extension>
<command>%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mednafen_vb_libretro.so %ROM%</command>
<command label="Beetle VB">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mednafen_vb_libretro.so %ROM%</command>
<!-- <command label="Mednafen (Standalone)">%EMULATOR_MEDNAFEN% -force_module vb %ROM%</command> -->
<platform>virtualboy</platform>
<theme>virtualboy</theme>
</system>
@ -1377,10 +1511,10 @@
<name>wii</name>
<fullname>Nintendo Wii</fullname>
<path>%ROMPATH%/wii</path>
<extension>.gcm .GCM .iso .ISO .wbfs .WBFS .wia .WIA .ciso .CISO .gcz .GCZ .elf .ELF .dol .DOL .dff .DFF .rvz .RVZ .tgc .TGC .wad .WAD .m3u .M3U .7z .7Z .zip .ZIP</extension>
<extension>.gcm .GCM .iso .ISO .wbfs .WBFS .wia .WIA .ciso .CISO .gcz .GCZ .elf .ELF .dol .DOL .dff .DFF .json .JSON .rvz .RVZ .tgc .TGC .wad .WAD .m3u .M3U .7z .7Z .zip .ZIP</extension>
<command label="Dolphin (Standalone)">%EMULATOR_DOLPHIN% -b -e %ROM%</command>
<command label="Dolphin">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/dolphin_libretro.so %ROM%</command>
<command label="PrimeHack (Standalone)">%EMULATOR_PRIMEHACK% -b -e %ROM%</command>
<!-- <command label="PrimeHack (Standalone)">%EMULATOR_PRIMEHACK% -b -e %ROM%</command> -->
<platform>wii</platform>
<theme>wii</theme>
</system>
@ -1388,17 +1522,19 @@
<name>wiiu</name>
<fullname>Nintendo Wii U</fullname>
<path>%ROMPATH%/wiiu</path>
<extension>.7z .7Z .zip .ZIP</extension>
<command>PLACEHOLDER %ROM%</command>
<extension>.rpx .RPX .wua .WUA .wud .WUD .wux .WUX</extension>
<command label="Cemu (Standalone)">%EMULATOR_CEMU% -g %ROM%</command>
<platform>wiiu</platform>
<theme>wiiu</theme>
</system>
<system>
<name>wonderswan</name>
<fullname>Bandai WonderSwan</fullname>
<path>%ROMPATH%/wonderswan</path>
<extension>.ws .WS .pc2 .PC2 .7z .7Z .zip .ZIP</extension>
<command>%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mednafen_wswan_libretro.so %ROM%</command>
<command label="Beetle Cygne">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mednafen_wswan_libretro.so %ROM%</command>
<!-- <command label="Mednafen (Standalone)">%EMULATOR_MEDNAFEN% -force_module wswan %ROM%</command> -->
<platform>wonderswan</platform>
<theme>wonderswan</theme>
</system>
@ -1407,7 +1543,8 @@
<fullname>Bandai WonderSwan Color</fullname>
<path>%ROMPATH%/wonderswancolor</path>
<extension>.ws .WS .wsc .WSC .pc2 .PC2 .7z .7Z .zip .ZIP</extension>
<command>%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mednafen_wswan_libretro.so %ROM%</command>
<command label="Beetle Cygne">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mednafen_wswan_libretro.so %ROM%</command>
<!-- <command label="Mednafen (Standalone)">%EMULATOR_MEDNAFEN% -force_module wswan %ROM%</command> -->
<platform>wonderswancolor</platform>
<theme>wonderswancolor</theme>
</system>

View file

@ -1,6 +1,13 @@
<?xml version="1.0"?>
<gameList>
<game>
<path>./cheevos.sh</path>
<name>RetroAchievements Login</name>
<desc>Enter your RetroAchievements account details.</desc>
<nogamecount>true</nogamecount>
<nomultiscrape>true</nomultiscrape>
</game>
<!-- <game>
<path>./start-retroarch.sh</path>
<name>Start RetroArch</name>
<desc>Start RetroArch to manually tweak your settings.</desc>
@ -55,7 +62,7 @@
<desc>Start RPCS3 to manually tweak your settings.</desc>
<nogamecount>true</nogamecount>
<nomultiscrape>true</nomultiscrape>
</game>
</game> -->
<game>
<path>./start-splore.sh</path>
<name>Start Splore</name>
@ -63,4 +70,32 @@
<nogamecount>true</nogamecount>
<nomultiscrape>true</nomultiscrape>
</game>
<!-- <game>
<path>./move-roms.sh</path>
<name>Move roms folder</name>
<desc>Move roms folder from internal to external and vice versa.</desc>
<nogamecount>true</nogamecount>
<nomultiscrape>true</nomultiscrape>
</game>
<game>
<path>./overlays.sh</path>
<name>Overlays configuration</name>
<desc>Configure or disable borders and shaders.</desc>
<nogamecount>true</nogamecount>
<nomultiscrape>true</nomultiscrape>
</game> -->
<game>
<path>./configure-emulators.sh</path>
<name>Configure Emulators</name>
<desc>Choose an emulator to configure.</desc>
<nogamecount>true</nogamecount>
<nomultiscrape>true</nomultiscrape>
</game>
<game>
<path>./rewind.sh</path>
<name>Rewind toggler</name>
<desc>Enable or disable the rewind function for some RetroArch cores.</desc>
<nogamecount>true</nogamecount>
<nomultiscrape>true</nomultiscrape>
</game>
</gameList>

View file

@ -1,24 +1,32 @@
#!/bin/bash
branch="main-"$(date +%d%m%y.%H%M)
# EDITABLES:
#rd_branch="main"
rd_branch="cooker"
#gits_folder=~/gits
gits_folder="/home/public-folder/gits" # without last /
cd ~/gits
# NON-EDITABLES
branch="$rd_branch-"$(date +%d%m%y.%H%M)
cd $gits_folder
rm -rf flathub
git clone --recursive https://github.com/flathub/net.retrodeck.retrodeck.git flathub
cd ~/gits/RetroDECK
git checkout main
cd $gits_folder/RetroDECK
git checkout $rd_branch
git submodule init
git submodule update
# NOTE: the only linked submodules are: rd-submodules/retroarch
# these must be included in the exclusion list as they must be redownloaded
#sync -rav --progress --exclude={'res/screenshots/','shared-modules/','rd-submodules/retroarch','.git/','docs','retrodeck-flatpak/','retrodeck-flatpak-cooker/','.flatpak-builder/'} ~/RetroDECK/ ~/flathub/
cd ~/gits/flathub
cd $gits_folder/flathub
git checkout -b $branch
git rm -rf *
git clean -fxd # restroing git index
cd ~/gits/RetroDECK
# Copying only a few files as the others are cloned by git in retrodeck.sh
cd $gits_folder/RetroDECK
cp -rf \
'rd-submodules' \
'flathub.json' \
@ -27,8 +35,8 @@ cp -rf \
'net.retrodeck.retrodeck.desktop' \
'net.retrodeck.retrodeck.yml' \
'README.md' \
~/gits/flathub/
cd ~/gits/flathub
$gits_folder/flathub/
cd $gits_folder/flathub
# #rebuilding submodules
# git config -f .gitmodules --get-regexp '^submodule\..*\.path$' |
@ -70,5 +78,5 @@ git submodule deinit -f .
# checkout again
git submodule update --init --recursive
git add *
git commit -m "Updated flathub/net.retrodeck.retrodeck from RetroDECK/main"
git commit -m "Updated flathub/net.retrodeck.retrodeck from RetroDECK/$rd_branch"
git push origin $branch

45
flathub.yml Normal file
View file

@ -0,0 +1,45 @@
app-id: net.retrodeck.retrodeck
runtime: org.kde.Platform
runtime-version: 5.15-21.08
#runtime-version: 6.3 # bumped because of pcsx2-qt
sdk: org.kde.Sdk
sdk-extensions:
- org.freedesktop.Sdk.Extension.llvm14 # Needed for rpcs3
- org.freedesktop.Sdk.Extension.dotnet6 # Needed for Ryujinx
base: io.qt.qtwebengine.BaseApp # Needed for Yuzu
base-version: 5.15-21.08 # Needed for Yuzu
command: retrodeck.sh
finish-args:
- --socket=x11
- --socket=wayland
- --socket=pulseaudio
- --share=ipc
- --share=network
- --device=all
- --filesystem=~/retrodeck:create
- --filesystem=/run/media
- --filesystem=/media
- --allow=multiarch
- --talk-name=org.freedesktop.ScreenSaver
- --talk-name=org.freedesktop.PowerManagement.Inhibit
- --talk-name=org.freedesktop.login1
- --filesystem=xdg-run/app/com.discordapp.Discord:create
# Yuzu
# - --filesystem=home:ro # This may break Yuzu, let's see
# - --filesystem=/run/media:ro
# Dolphin
- --allow=bluetooth
#- --env=QT_QPA_PLATFORM=xcb #not sure if this will break something
# rpcs3
- --socket=fallback-x11
modules:
- name: retrodeck
buildsystem: simple
build-commands:
- cp -rn files/* /app
sources:
- type: archive
url: https://artifacts.retrodeck.net/artifacts/RetroDECK-Artifact.tar.gz
sha256: __SHA__

106
global.sh Executable file
View file

@ -0,0 +1,106 @@
#!/bin/bash
# This file is containing some global function needed for the script such as the config file tools
# Static variables
rd_conf="/var/config/retrodeck/retrodeck.cfg" # RetroDECK config file path
emuconfigs="/app/retrodeck/emu-configs" # folder with all the default emulator configs
lockfile="/var/config/retrodeck/.lock" # where the lockfile is located
default_sd="/run/media/mmcblk0p1" # Steam Deck SD default path
hard_version="$(cat '/app/retrodeck/version')" # hardcoded version (in the readonly filesystem)
conf_write() {
# writes the variables in the retrodeck config file
echo "DEBUG: printing the config file content before writing it:"
cat "$rd_conf"
echo ""
echo "Writing the config file: $rd_conf"
# TODO: this can be optimized with a while and a list of variables to check
if [ ! -z "$version" ] #if the variable is not null then I update it
then
sed -i "s%version=.*%version=$version%" "$rd_conf"
fi
if [ ! -z "$rdhome" ]
then
sed -i "s%rdhome=.*%rdhome=$rdhome%" "$rd_conf"
fi
if [ ! -z "$roms_folder" ]
then
sed -i "s%roms_folder=.*%roms_folder=$roms_folder%" "$rd_conf"
fi
if [ ! -z "$saves_folder" ]
then
sed -i "s%saves_folder=.*%saves_folder=$saves_folder%" "$rd_conf"
fi
if [ ! -z "$states_folder" ]
then
sed -i "s%states_folder=.*%states_folder=$states_folder%" "$rd_conf"
fi
if [ ! -z "$media_folder" ]
then
sed -i "s%media_folder=.*%media_folder=$media_folder%" "$rd_conf"
fi
if [ ! -z "$themes_folder" ]
then
sed -i "s%themes_folder=.*%themes_folder=$themes_folder%" "$rd_conf"
fi
if [ ! -z "$sdcard" ]
then
sed -i "s%sdcard=.*%sdcard=$sdcard%" "$rd_conf"
fi
echo "DEBUG: New contents:"
cat "$rd_conf"
echo ""
}
# If there is no config file I initalize the file with the the default values
if [ ! -f "$rd_conf" ]
then
mkdir -p /var/config/retrodeck
echo "RetroDECK config file not found in $rd_conf"
echo "Initializing"
# Initializing the variables
if [ -z $version]; then
version="$hard_version" # if we are here means that the we are in a new installation, so the version is valorized with the hardcoded one
fi
rdhome="$HOME/retrodeck" # the retrodeck home, aka ~/retrodeck
roms_folder="$rdhome/roms" # the default roms folder path
saves_folder="$rdhome/saves" # the default saves folder path
states_folder="$rdhome/states" # the default states folder path
media_folder="$rdhome/downloaded_media" # the media folder, where all the scraped data is downloaded into
themes_folder="$rdhome/themes" # the themes folder
sdcard="$default_sd" # Steam Deck SD default path
# Writing the variables for the first time
echo '#!/bin/bash' >> $rd_conf
echo "version=$version" >> $rd_conf
echo "rdhome=$rdhome" >> $rd_conf
echo "roms_folder=$roms_folder" >> $rd_conf
echo "saves_folder=$saves_folder" >> $rd_conf
echo "states_folder=$states_folder" >> $rd_conf
echo "media_folder=$media_folder" >> $rd_conf
echo "themes_folder=$themes_folder" >> $rd_conf
echo "sdcard=$sdcard" >> $rd_conf
echo "Setting config file permissions"
chmod +rwx $rd_conf
# If the config file is existing i just read the variables (source it)
else
echo "Found RetroDECK config file in $rd_conf"
echo "Loading it"
source "$rd_conf"
fi

View file

@ -17,16 +17,22 @@
<image>https://github.com/XargonWan/RetroDECK/blob/main/res/logo.png?raw=true</image>
</screenshot>
<screenshot>
<image>https://github.com/XargonWan/RetroDECK/blob/main/res/screenshots/screen02.png?raw=true</image>
<image>https://github.com/XargonWan/RetroDECK/blob/main/res/screenshots/screen01.jpeg?raw=true</image>
</screenshot>
<screenshot>
<image>https://github.com/XargonWan/RetroDECK/blob/main/res/screenshots/screen03.png?raw=true</image>
<image>https://github.com/XargonWan/RetroDECK/blob/main/res/screenshots/screen02.jpeg?raw=true</image>
</screenshot>
<screenshot>
<image>https://github.com/XargonWan/RetroDECK/blob/main/res/screenshots/screen04.png?raw=true</image>
<image>https://github.com/XargonWan/RetroDECK/blob/main/res/screenshots/screen03.jpeg?raw=true</image>
</screenshot>
<screenshot>
<image>https://github.com/XargonWan/RetroDECK/blob/main/res/screenshots/screen05.png?raw=true</image>
<image>https://github.com/XargonWan/RetroDECK/blob/main/res/screenshots/screen04.jpeg?raw=true</image>
</screenshot>
<screenshot>
<image>https://github.com/XargonWan/RetroDECK/blob/main/res/screenshots/screen05.jpeg?raw=true</image>
</screenshot>
<screenshot>
<image>https://github.com/XargonWan/RetroDECK/blob/main/res/screenshots/screen06.jpeg?raw=true</image>
</screenshot>
</screenshots>
<description>
@ -38,6 +44,7 @@
No other software is needed as everything it's already included!</p>
<p>
NOTE: Albeit RetroDECK could possibily work on every distro, it's supported only on Steam Deck.</p>
<p>INSTALLATION INSTRUCTIONS:</p>
<ul>
<li>Start RetroDECK from the Desktop mode (first time only)</li>
@ -47,10 +54,41 @@
<li>Always start RetroDECK from Steam Library</li>
</ul>
<p>For a better experience is suggested to use the official Steam Controller Config available under community configs in Steam</p>
<p>Known Issues:</p>
<ul>
<li>PCSX2: due to its limitation, the standalone PCSX2 doesn't have any way to set the hotkeys, so no save and load state, no quit button. In order to quit press: STEAM -> PCSX2 -> (X) CLOSE WINDOW, be aware that the state is not automatically saved</li>
<li>As of this moment external controllers, local multiplayer in gamemode are not supported. Neither is running RetroDECK in desktop mode, we plan on adding the functionality in the future</li>
</ul>
IMPORTANT NOTE:
At the moment the emulator configs are reset during every update, this was made because every version they may bring new configurations, please back them up if you did some manual configs.
</description>
<project_license>GPL-3.0</project_license>
<metadata_license>CC0-1.0</metadata_license>
<releases>
<releases>
<release version="0.5.0b" date="2022-10-11">
<url>https://github.com/XargonWan/RetroDECK/releases/tag/0.5.5b</url>
<description>
<ul>
<li>VERY IMPORTANT: We are moving your saves! This can take time on the first boot. If you miss some saves they are not gone. Please read more in the wiki.</li>
<li>New Logo and Theme</li>
<li>Two new themes added: Alekfull-NX-Light and Retrofix-Revisited</li>
<li>Updated ES-DE to 1.2.6</li>
<li>Implemented the first steps towards a universal Emulator Configuration Tool in the TOOLS menu</li>
<li>Ability to log into your RetroAchievements account under the TOOLS menu for RetroArch only (supported standalones coming soon)</li>
<li>Updated RetroArch and all the standalone emulators</li>
<li>Added several free assets/fonts for RetroArch, PPSSPP, XEMU and BlueMSX</li>
<li>Added a new DEFAULT Emulator for the PS2: PCSX2-QT (the former PCSX2 default emulator is now called "PCSX2 (Legacy)")</li>
<li>Changed the DEFAULT Emulator for the PSX: Swanstation (Libretro) Core</li>
<li>Added a new Standalone Emulator for the PSX: Duckstation</li>
<li>Enhanced XEMU (XBOX) experience</li>
<li>And more, for the complete patch notes please check the wiki...</li>
</ul>
</description>
</release>
<release version="0.4.5b" date="2022-07-20">
<url>https://github.com/XargonWan/RetroDECK/releases/tag/0.4.5b</url>
@ -71,6 +109,8 @@
</release>
<release version="0.4.4b" date="2022-07-18">
<release version="0.4.4b" date="2022-07-18">
<url>https://github.com/XargonWan/RetroDECK/releases/tag/0.4.4b</url>
<description>
<ul>
@ -121,9 +161,9 @@
At the moment the emulator configs are reset during every update, this was made because every version they may bring new configurations, please back them up if you did some manual configs.
</p>
</description>
</release>
</release>
<release version="0.4.2b" date="2022-05-11">
<release version="0.4.2b" date="2022-07-01">
<url>https://github.com/XargonWan/RetroDECK/releases/tag/0.4.2b</url>
<description>
<p><b>Emulators:</b></p>

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -1,19 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 25.4.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 37.22 37.22" style="enable-background:new 0 0 37.22 37.22;" xml:space="preserve">
<style type="text/css">
.st0{fill:#FFFFFF;}
.st1{fill:url(#SVGID_1_);}
</style>
<circle cx="18.61" cy="18.61" r="18.61"/>
<path class="st0" d="M18.56,3.51v5.43c5.39,0,9.75,4.37,9.75,9.75s-4.37,9.75-9.75,9.75v5.43c8.39,0,15.19-6.8,15.19-15.19
S26.94,3.51,18.56,3.51z"/>
<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="11.074" y1="18.2778" x2="25.5185" y2="18.2778">
<stop offset="0" style="stop-color:#906DEC"/>
<stop offset="1" style="stop-color:#1D9EFE"/>
</linearGradient>
<path class="st1" d="M22.32,19.61c1.78-0.1,3.19-1.56,3.19-3.37c0-1.87-1.52-3.39-3.39-3.39h-9.8c-0.7,0-1.26,0.56-1.26,1.26v9.59
h2.7v-4.07h5.11l3.03,4.07h3.38l-2.93-4.08L22.32,19.61z M21.69,17.3h-7.87v-2.19h7.87c0.6,0,1.09,0.49,1.09,1.09
C22.78,16.81,22.29,17.3,21.69,17.3z"/>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%" height="100%" viewBox="0 0 256 256" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
<g transform="matrix(1.88235,0,0,1.86861,-7.52941,-5.60584)">
<path d="M140,37.25C140,18.347 124.765,3 106,3L38,3C19.235,3 4,18.347 4,37.25L4,105.75C4,124.653 19.235,140 38,140L106,140C124.765,140 140,124.653 140,105.75L140,37.25Z" style="fill:rgb(17,17,17);"/>
</g>
<g transform="matrix(2.02105,0,0,2.02105,-13.4737,-13.4737)">
<g id="D" transform="matrix(-0.674885,8.26495e-17,-8.26495e-17,-0.674885,223.747,109.037)">
<path d="M172.54,-2.511C175.786,-5.757 179.378,-8.24 183.315,-9.96C187.251,-11.68 191.533,-12.54 196.16,-12.54L271.855,-12.54L271.855,6.901L196.16,6.901C194.44,6.901 192.823,7.222 191.309,7.864C189.795,8.506 188.475,9.39 187.348,10.517C186.222,11.643 185.337,12.964 184.695,14.478C184.053,15.992 183.732,17.609 183.732,19.329L183.732,96.355C183.732,97.954 184.084,99.498 184.786,100.988C185.489,102.478 186.416,103.798 187.566,104.949C188.717,106.1 190.037,107.027 191.527,107.729C193.017,108.432 194.562,108.783 196.16,108.783L271.855,108.783L271.855,128.224L196.16,128.224C193.859,128.224 191.624,127.982 189.456,127.498C187.288,127.013 185.204,126.329 183.206,125.444C181.207,124.56 179.311,123.5 177.518,122.265C175.726,121.029 174.066,119.673 172.54,118.195C169.366,115.118 166.901,111.575 165.145,107.566C163.389,103.556 162.51,99.226 162.51,94.574L162.51,21.11C162.51,16.458 163.37,12.17 165.09,8.246C166.811,4.321 169.294,0.736 172.54,-2.511Z" style="fill:white;fill-rule:nonzero;"/>
</g>
<g id="Left-Symbol" serif:id="Left Symbol" transform="matrix(0.494792,-0,-0,0.494792,6.66667,6.66667)">
<use xlink:href="#_Image1" x="39.093" y="89.764" width="103.568px" height="78.228px" transform="matrix(0.995844,0,0,0.990223,0,0)"/>
</g>
</g>
<defs>
<image id="_Image1" width="104px" height="79px" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGgAAABPCAYAAAAHtYAvAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAGHUlEQVR4nO2de2xTVRzHP6cbe4qg8jB1ioQMcDJAHgEVMPyjgaAGQR4xhAxEGfIY8gaBGCXGGEULjMG2FhEG6JCBhEgEJWRBBkaDopIYwRAsigSHoMLa3usftzVla7eu/bWU9HySJvd37jnfnNzvPae95/Scq2hE7cTz6YZigqEYYKAKTUWhoehoKDBQmAqsYzCUwlBYaUGxocBsFBuAGS7Gn6ZUkFaQfnOx/9hsFIfSalE7rJa/rk3jBkNRbyjqDVS9qfjRUBw3FMcM1IlvXkpvaHx9W4sKDo5McPc1lKo0FP2aGKINajYOca3+MBSlpqL02+L0C9EaZAscfDnBPRs4DvSLVkxzAx2BlcDZXmXeioIy34PRiNgA6sa7+wBvA+ly9dP4yQSmAid7bvDt77HR16c1hW11493pQAXanETwOFCbX+4bGWkBGzAOGBC3KmkacxvwSbdyoziSzDZgYHzrowmBDSjtWmG81aXSsLWUsVdi6qQJwXxgy31OQ4XLYAMKE1cfTQgmApPDnbQBnRNXF00YVuc5TXuoE832f5qE0R5Yb3eZTbo6bVDy8BQwvnGiNii5WGN3mbnBCdqg5KIDMCo4QRuUfEwMDiSGd5YCLgGdWw0bUAAM8X+GI3PDj7C7zPbuIlUPMgZdHlPZ6TcBnVsRN3AAYLDDMxL4EMhttkTLZACj8d/0uosT4ujsNvuAYcDvAnL/d3PaIEHqZrX5GlgsIDUs8EykDZJnK3A2Ro1M4E7QBolzfGYbD/COgNQ9oA2KF0cFNLRBceS0gIY2KI5cBK7GqKENiiOK2J8xvaANihd5QFaMGr+CNihe5AtonANtULwYLqChDYoHA9d62gEzBaR0FxcnZgHtYtT4y12kroBlkBlzlTQADFrjGQ0sE5A6HDjQLUiIwQ5PCbCT2H+9AWwPHEjMB927c+qFvim4/MRmQKGhGGoohhrQXeBaAlwD9gQCCYMWIzPErrHYG/j+Ad3FJSPbgwNtUHJxEdgXnKANSi5muYvUv8EJ2qDkoQbY0ThRG5Qc/AnMcBepJs+k2qDkoOTcFHU+1Ak9knDzqQI+CHdSt6Cby5vApLNTbGEbiV7ZfXPwAsVnnrdVtJRRG5R4LgNjf55mOxBJZt3FJQ4T66f0wz9NS4vIHNAtKBFcBSoBx6kX01r9dyxtUPz4BXAAzpPT0y9HKyJh0BXgHwGdeHM7kC2o58VaflKP9b1SD5wCvvJ/zpyYkR7zI4zIdMOYyk6lAjpxZeqrfxcAdVhbsUiggMm1czIOCemFJGV+JFSuzP0BeE5QMg2oHvJew/2Cmk1IqZEE54rcPcByQcm7gN2POBpiXVUXlpRpQUGsAqoF9XoDmwY7PGH324mFlDNo04pcEygCvhOUHYu1mFqclDMIYPPy3KvA08AlQdnXBq3xPCmoB6SoQQBbXsk5AzwL+IQkFbB14FrPA0J6QAobBFC1LOdzYK6gZFtgd/91njukBFPaID9rAaegXj6w7aF13jQJsZQ3aNuyHBOYgcy60gBPAG9ICKW8QQA7luZcB57BGrqRYkGfUm/MD8baID8fLck+j7UFy3VB2Yre670x7aicUiMJLbFzSfYx4AVBySxgV68y793RCugW1Ihdi7M3A6sFJfOA6oIyX0Y0hbVBoVmIfxcrIR4F1vbc4Gv1cJA2KAQ1i7K9WPuHSmxIEWAaML21hbRBYdizMOsS1kavsW5IEYyjx0bfY60poA1qhr0Ls74HJglKpgPV+eW+LpEW0Aa1wL4FWTVY7wGSogNQ063ciGgOSRsUGa8DHwvq9QWcXSvCv7MhgDYoAj6dn2VgvV/hpKDsOCJYOqoNipD98zLjMYe0qkulMaq5DHokoRV8Ni/zNNadLzmHVHWf0+gZLoNuQa3k4MuZB4F5gpJtgd15TrN9qJPaoOhwAJsE9boDVXaX2WQOSRsUBV/MzTSBYqw/QkoxAusfRzegDYqSQyUZ17DmkEIuXYySRXaXecO7G7RBMXC4JMONNYcU8yuhg3DaXWb/QKANipHaORl1yM8h1dhdZmfQBolwZHbG+8C7gpJ5QLXdZWZog+RYABwU1BsCOP4DNMctuHcT4JEAAAAASUVORK5CYII="/>
</defs>
</svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 4.4 KiB

BIN
res/logo.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 103 KiB

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 510 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 428 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 615 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 574 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 598 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 114 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 542 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 194 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 675 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 469 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 650 KiB

297
res/splash.svg Executable file → Normal file

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 30 KiB

View file

@ -1,10 +1,16 @@
#!/bin/bash
lockfile="/var/config/retrodeck/.lock" # where the lockfile is located
version="$(cat /app/retrodeck/version)" # version info taken from the version file
rdhome="$HOME/retrodeck" # the retrodeck home, aka ~/retrodecck
emuconfigs="/app/retrodeck/emu-configs" # folder with all the default emulator configs
sdcard="/run/media/mmcblk0p1" # Steam Deck SD default path
# workaround to fix a bug when updating to 0.5.0b where the post update is not triggered
# basically from 0.5 it's not reading the version from the lockfile so it doesn't know from which version it came from and the new rule of global.sh is that if version is unknown it's like a first boot
# remove it in the future
lockfile="/var/config/retrodeck/.lock"
if [[ $(cat $lockfile) == *"0.4."* ]] || [[ $(cat $lockfile) == *"0.3."* ]] || [[ $(cat $lockfile) == *"0.2."* ]] || [[ $(cat $lockfile) == *"0.1."* ]]
then
echo "Running version workaround"
version=$(cat $lockfile)
fi
source /app/bin/global.sh
# We moved the lockfile in /var/config/retrodeck in order to solve issue #53 - Remove in a few versions
if [ -f "$HOME/retrodeck/.lock" ]
@ -58,9 +64,10 @@ dir_prep() {
tools_init() {
rm -rfv /var/config/retrodeck/tools/
mkdir -pv /var/config/retrodeck/tools/
cp -r /app/retrodeck/tools/* /var/config/retrodeck/tools/
cp -rfv /app/retrodeck/tools/* /var/config/retrodeck/tools/
mkdir -pv /var/config/emulationstation/.emulationstation/custom_systems/tools/
cp /app/retrodeck/tools-gamelist.xml /var/config/retrodeck/tools/gamelist.xml
rm -rfv /var/config/retrodeck/tools/gamelist.xml
cp -fv /app/retrodeck/tools-gamelist.xml /var/config/retrodeck/tools/gamelist.xml
}
standalones_init() {
@ -83,6 +90,7 @@ standalones_init() {
# initializing the firmware folder
dir_prep "$rdhome/bios/switch/registered" "/var/data/yuzu/nand/system/Contents/registered"
# configuring Yuzu
dir_prep "$rdhome/.logs/yuzu" "/var/data/yuzu/log"
mkdir -pv /var/config/yuzu/
cp -fvr $emuconfigs/yuzu/* /var/config/yuzu/
sed -i 's#~/retrodeck#'$rdhome'#g' /var/config/yuzu/qt-config.ini
@ -94,38 +102,49 @@ standalones_init() {
echo "----------------------"
mkdir -pv /var/config/dolphin-emu/
cp -fvr "$emuconfigs/dolphin/"* /var/config/dolphin-emu/
dir_prep "$rdhome/saves" "/var/data/dolphin-emu/GBA/Saves"
dir_prep "$rdhome/saves" "/var/data/dolphin-emu/Wii"
sed -i 's#~/retrodeck#'$rdhome'#g' /var/config/dolphin-emu/Dolphin.ini
dir_prep "$rdhome/saves/gc/dolphin/EUR" "/var/data/dolphin-emu/GC/EUR"
dir_prep "$rdhome/saves/gc/dolphin/USA" "/var/data/dolphin-emu/GC/USA"
dir_prep "$rdhome/saves/gc/dolphin/JAP" "/var/data/dolphin-emu/GC/JAP"
dir_prep "$rdhome/screenshots" "/var/data/dolphin-emu/ScreenShots"
dir_prep "$rdhome/states" "/var/data/dolphin-emu/StateSaves"
dir_prep "$rdhome/saves/wii/dolphin" "/var/data/dolphin-emu/Wii/"
# pcsx2
echo "----------------------"
echo "Initializing PCSX2"
echo "----------------------"
mkdir -pv /var/config/PCSX2/inis/
cp -fvr $emuconfigs/PCSX2_ui.ini /var/config/PCSX2/inis/
mkdir -pv "/var/config/PCSX2/inis"
mkdir -pv "$rdhome/saves/ps2/pcsx2/memcards"
mkdir -pv "$rdhome/states/ps2/pcsx2"
cp -fvr $emuconfigs/PCSX2/* /var/config/PCSX2/inis/
sed -i 's#~/retrodeck#'$rdhome'#g' /var/config/PCSX2/inis/PCSX2_ui.ini
cp -fvr $emuconfigs/GS.ini /var/config/PCSX2/inis/
cp -fvr $emuconfigs/PCSX2_vm.ini /var/config/PCSX2/inis/
dir_prep "$rdhome/states" "/var/config/PCSX2/sstates"
dir_prep "$rdhome/screenshots" "/var/config/PCSX2/snaps"
dir_prep "$rdhome/.logs" "/var/config/PCSX2/logs"
dir_prep "$rdhome/bios" "$rdhome/bios/pcsx2/bios"
sed -i 's#~/retrodeck#'$rdhome'#g' /var/config/PCSX2/inis/PCSX2.ini
#dir_prep "$rdhome/states/ps2/pcsx2" "/var/config/PCSX2/sstates"
#dir_prep "$rdhome/screenshots" "/var/config/PCSX2/snaps"
#dir_prep "$rdhome/.logs" "/var/config/PCSX2/logs"
#dir_prep "$rdhome/bios" "$rdhome/bios/pcsx2"
# MelonDS
echo "----------------------"
echo "Initializing MELONDS"
echo "----------------------"
mkdir -pv /var/config/melonDS/
mkdir -pv "$rdhome/saves/nds/melonds"
mkdir -pv "$rdhome/states/nds/melonds"
dir_prep "$rdhome/bios" "/var/config/melonDS/bios"
cp -fvr $emuconfigs/melonDS.ini /var/config/melonDS/
# Replace ~/retrodeck with $rdhome as ~ cannot be understood by MelonDS
sed -i 's#~/retrodeck#'$rdhome'#g' /var/config/melonDS/melonDS.ini
# CITRA
echo "----------------------"
echo "------------------------"
echo "Initializing CITRA"
echo "----------------------"
echo "------------------------"
mkdir -pv /var/config/citra-emu/
mkdir -pv "$rdhome/saves/n3ds/citra/nand/"
mkdir -pv "$rdhome/saves/n3ds/citra/sdmc/"
dir_prep "$rdhome/.logs/citra" "/var/data/citra-emu/log"
cp -fv $emuconfigs/citra-qt-config.ini /var/config/citra-emu/qt-config.ini
sed -i 's#~/retrodeck#'$rdhome'#g' /var/config/citra-emu/qt-config.ini
#TODO: do the same with roms folders after new variables is pushed (check even the others qt-emu)
@ -133,11 +152,44 @@ standalones_init() {
#sed -i 's#~/retrodeck#'$rdhome'#g' /var/config/citra-emu/qt-config.ini
# RPCS3
echo "----------------------"
echo "------------------------"
echo "Initializing RPCS3"
echo "----------------------"
echo "------------------------"
mkdir -pv /var/config/rpcs3/
cp -fvr $emuconfigs/config.yml /var/config/rpcs3/
cp -fvr $emuconfigs/rpcs3/* /var/config/rpcs3/
sed -i 's#/home/deck/retrodeck#'$rdhome'#g' /var/config/rpcs3/vfs.yml
# XEMU
echo "------------------------"
echo "Initializing XEMU"
echo "------------------------"
mkdir -pv $rdhome/saves/xbox/xemu/
cp -fv $emuconfigs/xemu.toml /var/data/xemu/xemu.toml
sed -i 's#/home/deck/retrodeck#'$rdhome'#g' /var/data/xemu/xemu.toml
# Preparing HD dummy Image if the image is not found
if [ ! -f $rdhome/bios/xbox_hdd.qcow2 ]
then
wget "https://github.com/mborgerson/xemu-hdd-image/releases/latest/download/xbox_hdd.qcow2.zip" -P $rdhome/bios/
unzip $rdhome/bios/xbox_hdd.qcow2.zip $rdhome/bios/
rm -rfv $rdhome/bios/xbox_hdd.qcow2.zip
fi
# PPSSPPSDL
echo "------------------------"
echo "Initializing PPSSPPSDL"
echo "------------------------"
mkdir -p /var/config/ppsspp/PSP/SYSTEM/
cp -fv $emuconfigs/ppssppsdl/* /var/config/ppsspp/PSP/SYSTEM/
sed -i 's#/home/deck/retrodeck#'$rdhome'#g' /var/config/ppsspp/PSP/SYSTEM/ppsspp.ini
# DUCKSTATION
echo "------------------------"
echo "Initializing DUCKSTATION"
echo "------------------------"
mkdir -p /var/config/duckstation/
cp -fv $emuconfigs/duckstation/* /var/config/duckstation
sed -i 's#/home/deck/retrodeck/bios#'$rdhome/bios'#g' /var/config/ppsspp/PSP/SYSTEM/settings.ini
# PICO-8
# Moved PICO-8 stuff in the finit as only it knows here roms folders is
@ -146,43 +198,223 @@ standalones_init() {
ra_init() {
dir_prep "$rdhome/bios" "/var/config/retroarch/system"
dir_prep "$rdhome/.logs/retroarch" "/var/config/retroarch/logs"
mkdir -pv /var/config/retroarch/cores/
cp /app/share/libretro/cores/* /var/config/retroarch/cores/
cp -f $emuconfigs/retroarch.cfg /var/config/retroarch/
cp -f $emuconfigs/retroarch-core-options.cfg /var/config/retroarch/
cp -fv $emuconfigs/retroarch.cfg /var/config/retroarch/
cp -fv $emuconfigs/retroarch-core-options.cfg /var/config/retroarch/
#rm -rf $rdhome/bios/bios # in some situations a double bios symlink is created
sed -i 's#~/retrodeck#'$rdhome'#g' /var/config/retroarch/retroarch.cfg
# PPSSPP
echo "--------------------------------"
echo "Initializing PPSSPP_LIBRETRO"
echo "--------------------------------"
if [ -d $rdhome/bios/PPSSPP/flash0/font ]
then
mv -fv $rdhome/bios/PPSSPP/flash0/font $rdhome/bios/PPSSPP/flash0/font.bak
fi
mkdir -p $rdhome/bios/PPSSPP
#if [ ! -f "$rdhome/bios/PPSSPP/ppge_atlas.zim" ]
#then
wget "https://github.com/hrydgard/ppsspp/archive/refs/heads/master.zip" -P $rdhome/bios/PPSSPP
unzip "$rdhome/bios/PPSSPP/master.zip" -d $rdhome/bios/PPSSPP/
mv "$rdhome/bios/PPSSPP/ppsspp-master/assets/"* "$rdhome/bios/PPSSPP/"
rm -rfv "$rdhome/bios/PPSSPP/master.zip"
rm -rfv "$rdhome/bios/PPSSPP/ppsspp-master"
#fi
if [ -d $rdhome/bios/PPSSPP/flash0/font.bak ]
then
mv -fv $rdhome/bios/PPSSPP/flash0/font.bak $rdhome/bios/PPSSPP/flash0/font
fi
# MSX / SVI / ColecoVision / SG-1000
echo "-----------------------------------------------------------"
echo "Initializing MSX / SVI / ColecoVision / SG-1000 LIBRETRO"
echo "-----------------------------------------------------------"
wget "http://bluemsx.msxblue.com/rel_download/blueMSXv282full.zip" -P $rdhome/bios/MSX
unzip "$rdhome/bios/MSX/blueMSXv282full.zip" $rdhome/bios/MSX
mv -rfv $rdhome/bios/MSX/Databases $rdhome/bios/Databases
mv -rfv $rdhome/bios/MSX/Machines $rdhome/bios/Machines
rm -rfv $rdhome/bios/MSX
}
create_lock() {
# creating RetroDECK's lock file and writing the version number in it
echo "$version" > "$lockfile"
# creating RetroDECK's lock file and writing the version in the config file
version=$hard_version
touch "$lockfile"
conf_write
}
post_update() {
# post update script
echo "Executing post-update script"
# Finding existing ROMs folder
if [ -d "$default_sd/retrodeck" ]
then
# ROMs on SD card
roms_folder="$default_sd/retrodeck/roms"
else
# ROMs on Internal
roms_folder="$HOME/retrodeck/roms"
fi
echo "ROMs folder found at $roms_folder"
# Unhiding downloaded media from the previous versions
if [ -d "$rdhome/.downloaded_media" ]
then
mv -fv "$rdhome/.downloaded_media" "$rdhome/downloaded_media"
mv -fv "$rdhome/.downloaded_media" "$media_folder"
fi
# Unhiding themes folder from the previous versions
if [ -d "$rdhome/.themes" ]
then
mv -fv "$rdhome/.themes" "$rdhome/themes"
mv -fv "$rdhome/.themes" "$themes_folder"
fi
# Doing the dir prep as we don't know from which version we came - Remove in a few versions
dir_prep "$rdhome/downloaded_media" "/var/config/emulationstation/.emulationstation/downloaded_media"
dir_prep "$rdhome/themes" "/var/config/emulationstation/.emulationstation/themes"
# Doing the dir prep as we don't know from which version we came
dir_prep "$media_folder" "/var/config/emulationstation/.emulationstation/downloaded_media"
dir_prep "$themes_folder" "/var/config/emulationstation/.emulationstation/themes"
mkdir -pv $rdhome/.logs #this was added later, maybe safe to remove in a few versions
# Resetting es_systems, now we need it but in the future I should think a better solution, maybe with sed
# Resetting es_settings, now we need it but in the future I should think a better solution, maybe with sed
cp -fv /app/retrodeck/es_settings.xml /var/config/emulationstation/.emulationstation/es_settings.xml
# 0.4 -> 0.5
# Perform save and state migration if needed
# Moving PCSX2 Saves
mv -fv /var/config/PCSX2/sstates/* $rdhome/states/ps2/pcsx2
mv -fv /var/config/PCSX2/memcards/* $rdhome/saves/ps2/memcards
versionwheresaveschanged="0.4.5b" # Hardcoded break point between unsorted and sorted saves
if [[ $(sed -e "s/\.//g" <<< $hard_version) > $(sed -e "s/\.//g" <<< $versionwheresaveschanged) ]] && [[ ! $(sed -e "s/\.//g" <<< $hard_version) == $(sed -e "s/\.//g" <<< $version) ]]; then # Check if user is upgrading from the version where save organization was changed. Try not to reuse this, it things 0.4.5b is newer than 0.4.5
migration_logfile=$rdhome/.logs/savemove_"$(date +"%Y_%m_%d_%I_%M_%p").log"
save_backup_file=$rdhome/savebackup_"$(date +"%Y_%m_%d_%I_%M_%p").zip"
state_backup_file=$rdhome/statesbackup_"$(date +"%Y_%m_%d_%I_%M_%p").zip"
zenity --icon-name=net.retrodeck.retrodeck --info --no-wrap \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
--title "RetroDECK" \
--text="You are updating to a version of RetroDECK where save file locations have changed!\n\nYour existing files will be backed up for safety and then sorted automatically.\n\nIf a file cannot be sorted automatically it will remain where it is for manual sorting.\n\nPLEASE BE PATIENT! This process can take several minutes if you have a large ROM library."
allgames=($(find "$roms_folder" -maxdepth 2 -mindepth 2 ! -name "systeminfo.txt" ! -name "systems.txt" ! -name "gc" ! -name "n3ds" ! -name "nds" ! -name "wii" ! -name "xbox" ! -name "*^*" | sed -e "s/ /\^/g")) # Build an array of all games and multi-disc-game-containing folders, adding whitespace placeholder
allsaves=($(find "$saves_folder" -mindepth 1 -maxdepth 1 -name "*.*" ! -name "gc" ! -name "n3ds" ! -name "nds" ! -name "wii" ! -name "xbox" | sed -e "s/ /\^/g")) # Build an array of all save files, ignoring standalone emulator sub-folders, adding whitespace placeholder
allstates=($(find "$states_folder" -mindepth 1 -maxdepth 1 -name "*.*" ! -name "gc" ! -name "n3ds" ! -name "nds" ! -name "wii" ! -name "xbox" | sed -e "s/ /\^/g")) # Build an array of all state files, ignoring standalone emulator sub-folders, adding whitespace placeholder
totalsaves=${#allsaves[@]}
totalstates=${#allstates[@]}
filesleft=
current_dest_folder=
gamestoskip=
tar -C $rdhome -czf $save_backup_file saves # Backup save directory for safety
echo "Saves backed up to" $save_backup_file >> $migration_logfile
tar -C $rdhome -czf $state_backup_file states # Backup state directory for safety
echo "States backed up to" $state_backup_file >> $migration_logfile
(
movefile() { # Take matching save and rom files and sort save into appropriate system folder
echo "# $filesleft $currentlybeingmoved remaining..." # These lines update the Zenity progress bar
progress=$(( 100 - (( 100 / "$totalfiles" ) * "$filesleft" )))
echo $progress
filesleft=$((filesleft-1))
if [[ ! " ${gamestoskip[*]} " =~ " ${1} " ]]; then # If the current game name exists multiple times in array ie. /roms/snes/Mortal Kombat 3.zip and /roms/genesis/Mortal Kombat 3.zip, skip and alert user to sort manually
game=$(sed -e "s/\^/ /g" <<< "$1") # Remove whitespace placeholder
gamebasename=$(basename "$game" | sed -e 's/\..*//') # Extract pure file name ie. /roms/snes/game1.zip becomes game1
systemdir="$(basename "$(dirname "$1")")" # Extract parent directory identifying system ROM belongs to
matches=($(find "$roms_folder" -maxdepth 2 -mindepth 2 -name "$gamebasename"".*" | sed -e 's/ /^/g' | sed -e 's/\..*//')) # Search for multiple instances of pure game name, adding to skip list if found
if [[ ${#matches[@]} -gt 1 ]]; then
echo "ERROR: Multiple ROMS found with name:" $gamebasename "Please sort saves and states for these ROMS manually" >> $migration_logfile
gamestoskip+=("$1")
return
fi
echo "INFO: Examining ROM file:" "$game" >> $migration_logfile
echo "INFO: System detected as" $systemdir >> $migration_logfile
sosfile=$(sed -e "s/\^/ /g" <<< "$2") # Remove whitespace placeholder from s-ave o-r s-tate file
sospurebasename="$(basename "$sosfile")" # Extract pure file name ie. /saves/game1.sav becomes game1
echo "INFO: Current save or state being examined for match:" $sosfile >> $migration_logfile
echo "INFO: Matching save or state" $sosfile "and game" $game "found." >> $migration_logfile
echo "INFO: Moving save or state to" $current_dest_folder"/"$systemdir"/"$sosbasename >> $migration_logfile
if [[ ! -d $current_dest_folder"/"$systemdir ]]; then # If system directory doesn't exist for save yet, create it
echo "WARNING: Creating missing system directory" $current_dest_folder"/"$systemdir
mkdir $current_dest_folder/$systemdir
fi
mv "$sosfile" -t $current_dest_folder/$systemdir # Move save to appropriate system directory
return
else
echo "WARNING: Game with name" "$(basename "$1" | sed -e "s/\^/ /g")" "already found. Skipping to next game..." >> $migration_logfile # Inform user of game being skipped due to duplicate ROM names
fi
}
find "$roms_folder" -mindepth 2 -maxdepth 2 -name "*\^*" -exec echo "ERROR: Game named" {} "found, please move save manually" \; >> $migration_logfile # Warn user if any of their files have the whitespace replacement character used by the script
totalfiles=$totalsaves #set variables for save file migration
filesleft=$totalsaves
currentlybeingmoved="saves"
current_dest_folder=$saves_folder
for i in "${allsaves[@]}"; do # For each save file, compare to every ROM file name looking for a match
found=
currentsave=($(basename "$i" | sed -e 's/\..*//')) # Extract pure file name ie. /saves/game1.sav becomes game1
for j in "${allgames[@]}"; do
currentgame=($(basename "$j" | sed -e 's/\..*//')) # Extract pure file name ie. /roms/snes/game1.zip becomes game1
[[ $currentgame == $currentsave ]] && { found=1; break; } # If names match move to next stage, otherwise skip
done
[[ -n $found ]] && movefile $j $i || echo "ERROR: No ROM match found for save file" $i | sed -e 's/\^/ /g' >> $migration_logfile # If a match is found, run movefile() otherwise warn user of stranded save file
done
totalfiles=$totalstates #set variables for state file migration
filesleft=$totalstates
currentlybeingmoved="states"
current_dest_folder=$states_folder
for i in "${allstates[@]}"; do # For each state file, compare to every ROM file name looking for a match
found=
currentstate=($(basename "$i" | sed -e 's/\..*//')) # Extract pure file name ie. /states/game1.sav becomes game1
for j in "${allgames[@]}"; do
currentgame=($(basename "$j" | sed -e 's/\..*//')) # Extract pure file name ie. /roms/snes/game1.zip becomes game1
[[ $currentgame == $currentstate ]] && { found=1; break; } # If names match move to next stage, otherwise skip
done
[[ -n $found ]] && movefile $j $i || echo "ERROR: No ROM match found for state file" $i | sed -e 's/\^/ /g' >> $migration_logfile # If a match is found, run movefile() otherwise warn user of stranded state file
done
) |
zenity --progress \
--icon-name=net.retrodeck.retrodeck \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
--title="Processing Files" \
--text="# files remaining..." \
--percentage=0 \
--no-cancel \
--auto-close
if [[ $(cat $migration_logfile | grep "ERROR" | wc -l) -eq 0 ]]; then
zenity --icon-name=net.retrodeck.retrodeck --info --no-wrap \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
--title "RetroDECK" \
--text="The migration process has sorted all of your files automatically.\n\nEverything should be working normally, if you experience any issues please check the RetroDECK wiki or contact us directly on the Discord."
else
cat $migration_logfile | grep "ERROR" > "$rdhome/manual_sort_needed.log"
zenity --icon-name=net.retrodeck.retrodeck --info --no-wrap \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
--title "RetroDECK" \
--text="The migration process was unable to sort $(cat $migration_logfile | grep "ERROR" | wc -l) files automatically.\n\nThese files will need to be moved manually to their new locations, find more detail on the RetroDECK wiki.\n\nA log of the files that need manual sorting can be found at $rdhome/manual_sort_needed.log"
fi
else
echo "Version" $version "is after the save and state organization was changed, no need to sort again"
fi
ra_init
standalones_init
tools_init
@ -196,47 +428,116 @@ start_retrodeck() {
emulationstation --home /var/config/emulationstation
}
browse(){
# Function for browsing the sd card
path_selected=false
while [ $path_selected == false ]
do
sdcard="$(zenity --file-selection --title="Choose retrodeck folder location" --directory)"
echo "Path choosed: $sdcard, answer=$?"
zenity --question --no-wrap --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --title "RetroDECK" \
--cancel-label="No" \
--ok-label "Yes" \
--text="Your rom folder will be:\n\n$sdcard/retrodeck/roms\n\nis that ok?"
if [ $? == 0 ] #yes
then
sdselected == true
roms_folder="$sdcard/retrodeck/roms"
break
else
zenity --question --no-wrap --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --title "RetroDECK" --cancel-label="No" --ok-label "Yes" --text="Do you want to quit?"
if [ $? == 0 ] # yes, quit
then
exit 0
fi
fi
done
}
#advanced(){
# # function to give advanced install options
# echo "Advaced choosed"
#
# choice=$(zenity --icon-name=net.retrodeck.retrodeck --info --no-wrap \
# --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --title "RetroDECK" \
# --ok-label "ROMs" \
# --extra-button "Media" \
# --extra-button "Themes" \
# --extra-button "Back" \
# --text="What do you want to change?\n\nROMS folder = $roms_folder\nMedia folder (scraped data) = $media_folder\nThemes folder=$themes_folder" )
# echo "Choice is $choice"
#
# case $choice in
#
# "" ) # Internal (yes)
# echo "ROMs"
# ;;
#
# "Media" )
# echo "Media"
# ;;
#
# "Themes" )
# echo "Themes"
# ;;
#
# "Back" ) # Browse + not found fallback
# echo "Back"
# finit
# ;;
#
# esac
#}
finit() {
# Force/First init, depending on the situation
echo "Executing finit"
# Internal or SD Card?
zenity --icon-name=net.retrodeck.retrodeck --question --no-wrap --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --title "RetroDECK" --ok-label "Internal" --cancel-label "SD Card" --text="Welcome to the first configuration of RetroDECK.\nThe setup will be quick but please READ CAREFULLY each message in order to avoid misconfigurations.\n\nWhere do you want your roms folder to be located?"
if [ $? == 0 ] #yes - Internal
then
roms_folder="$rdhome/roms"
else #no - SD Card
if [ -d "$sdcard" ];
then
roms_folder="$sdcard/retrodeck/roms"
else
sdselected=false
zenity --question --no-wrap --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --title "RetroDECK" --cancel-label="Cancel" --ok-label "Browse" --text="SD Card was not find in the default location.\nPlease choose the SD Card root.\nA retrodeck/roms folder will be created starting from the directory that you selected."
if [ $? == 1 ] #cancel
then
exit 0
fi
while [ $sdselected == false ]
do
sdcard="$(zenity --file-selection --title="Choose SD Card root" --directory)"
echo "DEBUG: sdcard=$sdcard, answer=$?"
zenity --question --no-wrap --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --title "RetroDECK" --cancel-label="No" --ok-label "Yes" --text="Your rom folder will be:\n\n$sdcard/retrodeck/roms\n\nis that ok?"
if [ $? == 0 ] #yes
then
sdselected == true
roms_folder="$sdcard/retrodeck/roms"
break
else
zenity --question --no-wrap --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --title "RetroDECK" --cancel-label="No" --ok-label "Yes" --text="Do you want to quit?"
if [ $? == 0 ] # yes, quit
then
exit 0
fi
fi
done
fi
fi
choice=$(zenity --icon-name=net.retrodeck.retrodeck --info --no-wrap \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --title "RetroDECK" \
--ok-label "Cancel" \
--extra-button "Internal" \
--extra-button "SD Card" \
--text="Welcome to the first configuration of RetroDECK.\nThe setup will be quick but please READ CAREFULLY each message in order to avoid misconfigurations.\n\nWhere do you want your roms folder to be located?" )
echo "Choice is $choice"
case $choice in
"" ) # Cancel or X button quits
echo "Now quitting"
kill $$
;;
"Internal" ) # Internal
echo "Internal selected"
roms_folder="$rdhome/roms"
;;
"SD Card" )
echo "SD Card selected"
if [ ! -d "$sdcard" ] # SD Card path is not existing
then
echo "Error: SD card not found"
zenity --question --no-wrap \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
--title "RetroDECK" --cancel-label="Cancel" \
--ok-label "Browse" \
--text="SD Card was not find in the default location.\nPlease choose the SD Card root.\nA retrodeck/roms folder will be created starting from the directory that you selected."
browse # Calling the browse function
else
roms_folder="$sdcard/retrodeck/roms" # sdcard variable is correct as its given by browse function
echo "ROMs folder = $roms_folder"
fi
;;
#"Advanced" ) # Browse + not found fallback
# echo "Advanced"
# advanced
#;;
esac
mkdir -pv $roms_folder
@ -281,7 +582,10 @@ finit() {
tools_init
create_lock
zenity --icon-name=net.retrodeck.retrodeck --info --no-wrap --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --title "RetroDECK" --text="Initialization completed.\nplease put your roms in:\n\n$roms_folder\n\nand your bioses in\n\n$rdhome/bios\n\nThen start the program again.\nIf you wish to change the roms location, you may use the tool located the tools section of RetroDECK.\n\nIMPORTANT NOTE:\nRetroDECK must be manually added and launched from your Steam Library in order to work correctly.\nMoreover is suggested to use BoilR to automatically add the SteamGridDB images to Steam (this will be automated soon).\nhttps://github.com/PhilipK/BoilR"
zenity --icon-name=net.retrodeck.retrodeck --info --no-wrap \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
--title "RetroDECK" \
--text="Installation completed.\nPlease put your roms in:\n\n$roms_folder\n\nand your bioses in\n\n$rdhome/bios\n\nThen start the program again.\nIf you wish to change the roms location, you may use the tool located the tools section of RetroDECK.\n\nIMPORTANT NOTES:\n- RetroDECK must be manually added and launched from your Steam Library in order to work correctly.\n- It's recommended to use the 'RetroDECK Offical Controller Config' from Steam (under community layouts).\n- It's suggested to use BoilR to automatically add the SteamGridDB images to Steam (this will be automated soon).\nhttps://github.com/PhilipK/BoilR"
# TODO: Replace the stuff above with BoilR code when ready
}
@ -290,7 +594,7 @@ finit() {
for i in "$@"; do
case $i in
-h*|--help*)
echo "RetroDECK v""$(cat /var/config/retrodeck/version)"
echo "RetroDECK v""$version"
echo "
Usage:
flatpak run [FLATPAK-RUN-OPTION] net.retrodeck-retrodeck [ARGUMENTS]
@ -298,6 +602,7 @@ flatpak run [FLATPAK-RUN-OPTION] net.retrodeck-retrodeck [ARGUMENTS]
Arguments:
-h, --help Print this help
-v, --version Print RetroDECK version
--info-msg Print paths and config informations
--reset Starts the initial RetroDECK installer (backup your data first!)
--reset-ra Resets RetroArch's config to the default values
--reset-sa Reset standalone emulator configs to the default values
@ -310,7 +615,16 @@ https://retrodeck.net
exit
;;
--version*|-v*)
cat /var/config/retrodeck/version
#conf_init
echo "RetroDECK v$version"
exit
;;
--info-msg*)
#conf_init
echo "RetroDECK v$version"
echo "RetroDECK config file is in: $rd_conf"
echo "Contents:"
cat $rd_conf
exit
;;
--reset-ra*)
@ -339,21 +653,29 @@ https://retrodeck.net
done
# UPDATE TRIGGERED
# if lockfile exists but the version doesn't match
if [ -f "$lockfile" ] && [ "$(cat "$lockfile")" != "$version" ];
# if lockfile exists
if [ -f "$lockfile" ]
then
echo "Lockfile version is "$(cat "$lockfile")" but the actual version is $version"
post_update
start_retrodeck
exit 0
fi
# LOCKFILE REMOVED
#conf_init # Initializing/reading the config file (sourced from global.sh)
# ...but the version doesn't match with the config file
if [ "$hard_version" != "$version" ];
then
echo "Config file's version is $version but the actual version is $hard_version"
post_update # Executing post update script
conf_write # Writing variables in the config file (sourced from global.sh)
start_retrodeck
exit 0
fi
# Else, LOCKFILE IS NOT EXISTING (WAS REMOVED)
# if the lock file doesn't exist at all means that it's a fresh install or a triggered reset
if [ ! -f "$lockfile" ];
then
else
echo "Lockfile not found"
finit
#conf_init # Initializing/reading the config file (sourced from global.sh)
finit # Executing First/Force init
conf_write # Writing variables in the config file (sourced from global.sh)
exit 0
fi

18
tools/cheevos.sh Executable file
View file

@ -0,0 +1,18 @@
#!/bin/bash
racfg="/var/config/retroarch/retroarch.cfg"
login=$(zenity --forms --title="RetroAchievements Login" \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
--text="Enter your RetroAchievements Account details.\n\nBe aware that this tool cannot verify your login details.\nFor registration and more info visit\nhttps://retroachievements.org/\n" \
--separator="=SEP=" \
--add-entry="Username" \
--add-password="Password")
arrIN=(${login//=SEP=/ })
user=${arrIN[0]}
pass=${arrIN[1]}
sed -i "s%cheevos_enable =.*%cheevos_enable = \"true\"%" $racfg
sed -i "s%cheevos_username =.*%cheevos_username = \"$user\"%" $racfg
sed -i "s%cheevos_password =.*%cheevos_password = \"$pass\"%" $racfg

62
tools/configure-emulators.sh Executable file
View file

@ -0,0 +1,62 @@
#!/bin/bash
zenity --title "RetroDECK" --question --no-wrap --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --text="Doing some changes in the emulator's configuration may create serious issues,\nplease continue only if you know what you're doing.\n\nDo you want to continue?"
if [ $? == 1 ] #no
then
exit 0
fi
emulator="$(zenity --list \
--width=600 \
--height=350 \
--title "RetroDECK" \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
--text="Which emulator do you want to configure?" \
--hide-header \
--column=emulator \
"RetroArch" \
"Citra" \
"Dolphin" \
"Duckstation" \
"MelonDS" \
"PCSX2-QT" \
"PCSX2-Legacy" \
"PPSSPP" \
"RPCS3" \
"XEMU" \
"Yuzu")"
if [ $emulator == "RetroArch" ]
then
retroarch
elif [ $emulator == "Citra" ]
then
citra-qt
elif [ $emulator == "Dolphin" ]
then
dolphin-emu
elif [ $emulator == "Duckstation" ]
then
duckstation-qt
elif [ $emulator == "MelonDS" ]
then
melonDS
elif [ $emulator == "PCSX2-Legacy" ]
then
pcsx2
elif [ $emulator == "PCSX2-QT" ]
then
pcsx2-qt
elif [ $emulator == "PPSSPP" ]
then
PPSSPPSDL
elif [ $emulator == "RPCS3" ]
then
rpcs3
elif [ $emulator == "Yuzu" ]
then
yuzu
elif [ $emulator == "XEMU" ]
then
xemu
fi

View file

@ -0,0 +1,32 @@
#!/bin/bash
source global.sh
zenity --question --no-wrap --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --title "RetroDECK" --cancel-label="Quit" --ok-label "Continue" --text="WARNING: this script is experimental\nplease be sure to backup your data before continuing.\n\nDo you want to continue?"
if [ $? == 1 ] #cancel
then
exit 0
fi
#conf_init
zenity --question --no-wrap --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --title "RetroDECK" --cancel-label="Cancel" --ok-label "Browse" --text="The roms folder is now: $roms_folder\nplease select the new location.\nA retrodeck/roms folder will be created starting from the directory that you selected."
if [ $? == 1 ] #cancel
then
exit 0
fi
new_roms_path="$(zenity --file-selection --title="Choose a new roms folder location" --directory)"/retrodeck/roms
zenity --title "RetroDECK" --question --no-wrap --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --text="Should I move the roms from\n\n$roms_folder\n\nto\n\n$new_roms_path?"
if [ $? == 0 ] #yes
then
mkdir -p $new_roms_path
mv -f $roms_folder $new_roms_path
rm -f /var/config/emulationstation/ROMs
ln -s $new_roms_path /var/config/emulationstation/ROMs
rm -f $roms_folder
zenity --icon-name=net.retrodeck.retrodeck --info --no-wrap --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --title "RetroDECK" --text="Done\nYour roms are now located in:\n\n$roms_folder\n\nPress OK to continue."
$roms_folder=$new_roms_path # Updating variable
conf_write # Writing variables in the config file (sourced from global.sh)
fi

View file

@ -0,0 +1,39 @@
#!/bin/bash
border="$(zenity --list \
--title "RetroDECK" \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
--text="Select the borders type" \
--hide-header \
--column=Border \
"None" \
"Light" \
"Dark")"
if [ $border == "None" ]
then
return
elif [ $border == "Light" ]
then
return
elif [ $border == "Dark" ]
then
return
fi
shader="$(zenity --list \
--title "RetroDECK" \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
--text="Select the shader type" \
--hide-header \
--column=Border \
"None" \
"Retro")"
if [ $shader == "None" ]
then
return
elif [ $shader == "Retro" ]
then
return
fi

23
tools/rewind.sh Executable file
View file

@ -0,0 +1,23 @@
#!/bin/bash
racfg="/var/config/retroarch/retroarch.cfg"
zenity --question \
--no-wrap --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
--title "RetroDECK" \
--text="Do you want to enable the rewind function in RetroArch cores?\n\nNOTE:\nThis may impact on performances expecially on the latest systems."
if [ $? == 0 ] #yes, enable
then
sed -i 's%rewind_enable = .*%rewind_enable = "true"' $racfg
zenity --info \
--no-wrap --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
--title "RetroDECK" \
--text="Rewind enabled\!\nYou can check on Libretro docs to see which cores supports this function."
else # no, disable
sed -i 's%rewind_enable = .*%rewind_enable = "false"' $racfg
zenity --info \
--no-wrap --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
--title "RetroDECK" \
--text="Rewind disabled."
fi

View file

@ -0,0 +1,55 @@
#!/bin/bash
THIS MUST BE PUT IN RETRODECK.SH
mkdir -p $rdhome/roms/ps3/emudir
#mkdir -p $rdhome/roms/ps3/dump cannot install in nogui
#user must install via emulator
source global.sh
install_ps3_fw(){
# Implement a check to see if the firmware is already installed then call this function
mkdir -p $rdhome/roms/ps3/.emudir
mkdir -p $rdhome/roms/ps3/tmp
chmod 777 $rdhome/roms/ps3/tmp
wget http://dus01.ps3.update.playstation.net/update/ps3/image/us/2022_0510_95307e1b51d3bcc33a274db91488d29f/PS3UPDAT.PUP -P $rdhome/roms/ps3/tmp/
rpcs3 --installfw $rdhome/roms/ps3/tmp/PS3UPDAT.PUP
rm -rf $rdhome/roms/ps3/tmp
}
zenity: "Hey I will destroy everything in $rdhome/roms/ps3/dump"
zenity: this will take a while, have a coffee
# this seems not to be working as rpcs3 doesn't support installation in --no-gui mode
rpcs3 --installpkg $rdhome/roms/ps3/dump/*
for each folder in $rdhome/roms/ps3/emudir/dev_hdd0/game/
gameid=foldername
if gamename.desktop doesnt exist
gamename=we need a file with ID - names
echo in $rdhome/roms/ps3/$gamname.desktop EOF<<
[Desktop Entry]
Encoding=UTF-8
Version=1.0
Type=Application
Terminal=false
Name=$gamename
Exec=rpcs3 --no-gui $rdhome/roms/ps3/emudir/dev_hdd0/game/$gameid
Icon=$rdhome/roms/ps3/emudir/dev_hdd0/game/$gameid/ICON0.PNG
EOF
fi
done
rm -rf $rdhome/roms/ps3/dump/*
zenity: done, restart retrodeck please

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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