diff --git a/install.ps1 b/install.ps1 index 17373e83..62ab6571 100644 --- a/install.ps1 +++ b/install.ps1 @@ -101,4 +101,50 @@ foreach ($f in $toDownload) { } } +# Standalone emulator copies +if ($manifest.standalone_copies) { + Write-Host "`nStandalone emulators:" + foreach ($entry in $manifest.standalone_copies) { + if ($entry.note) { + $detectPaths = @() + if ($entry.detect -and $entry.detect.windows) { + $detectPaths = $entry.detect.windows + } + foreach ($dp in $detectPaths) { + $expanded = [Environment]::ExpandEnvironmentVariables($dp) + if (Test-Path $expanded) { + Write-Host " $($entry.note)" + break + } + } + continue + } + $sources = @() + if ($entry.pattern) { + $sources = Get-ChildItem -Path $biosPath -Filter $entry.pattern -File -ErrorAction SilentlyContinue + } elseif ($entry.file) { + $src = Join-Path $biosPath $entry.file + if (Test-Path $src) { $sources = @(Get-Item $src) } + } + if ($sources.Count -eq 0) { continue } + $targetDirs = @() + if ($entry.targets -and $entry.targets.windows) { + $targetDirs = $entry.targets.windows + } + foreach ($td in $targetDirs) { + $expanded = [Environment]::ExpandEnvironmentVariables($td) + if (-not (Test-Path $expanded)) { continue } + foreach ($s in $sources) { + $dest = Join-Path $expanded $s.Name + try { + Copy-Item $s.FullName $dest -Force + Write-Host " $($s.Name) -> $expanded" + } catch { + Write-Host " $($s.Name) -> $expanded FAILED" -ForegroundColor Red + } + } + } + } +} + Write-Host "`nDone. $downloaded downloaded, $upToDate already up to date." diff --git a/install/batocera.json b/install/batocera.json index f63307ae..1c780baa 100644 --- a/install/batocera.json +++ b/install/batocera.json @@ -4,7 +4,7 @@ "platform": "batocera", "display_name": "Batocera", "version": "1.0", - "generated": "2026-04-02T13:52:15Z", + "generated": "2026-04-03T09:43:11Z", "base_destination": "bios", "detect": [ { @@ -14,7 +14,222 @@ "bios_path": "/userdata/bios" } ], - "standalone_copies": [], + "standalone_copies": [ + { + "file": "prod.keys", + "targets": { + "linux": [ + "$HOME/.local/share/yuzu/keys", + "$HOME/.local/share/eden/keys", + "$HOME/.local/share/citron/keys", + "$HOME/.local/share/suyu/keys", + "$HOME/.config/Ryujinx/system" + ], + "windows": [ + "%APPDATA%\\yuzu\\keys", + "%APPDATA%\\eden\\keys", + "%APPDATA%\\citron\\keys", + "%APPDATA%\\suyu\\keys", + "%APPDATA%\\Ryujinx\\system" + ], + "darwin": [ + "$HOME/Library/Application Support/yuzu/keys", + "$HOME/Library/Application Support/Ryujinx/system" + ] + } + }, + { + "file": "title.keys", + "targets": { + "linux": [ + "$HOME/.local/share/yuzu/keys", + "$HOME/.local/share/eden/keys", + "$HOME/.local/share/citron/keys", + "$HOME/.local/share/suyu/keys" + ], + "windows": [ + "%APPDATA%\\yuzu\\keys", + "%APPDATA%\\eden\\keys", + "%APPDATA%\\citron\\keys", + "%APPDATA%\\suyu\\keys" + ], + "darwin": [ + "$HOME/Library/Application Support/yuzu/keys" + ] + } + }, + { + "file": "Citra/sysdata/aes_keys.txt", + "targets": { + "linux": [ + "$HOME/.local/share/azahar/sysdata" + ], + "windows": [ + "%APPDATA%\\Azahar\\sysdata" + ] + } + }, + { + "file": "Citra/sysdata/boot9.bin", + "targets": { + "linux": [ + "$HOME/.local/share/azahar/sysdata" + ], + "windows": [ + "%APPDATA%\\Azahar\\sysdata" + ] + } + }, + { + "pattern": "scph*.bin", + "targets": { + "linux": [ + "$HOME/.local/share/duckstation/bios" + ], + "windows": [ + "%LOCALAPPDATA%\\DuckStation\\bios", + "%USERPROFILE%\\Documents\\DuckStation\\bios" + ], + "darwin": [ + "$HOME/Library/Application Support/DuckStation/bios" + ] + } + }, + { + "pattern": "ps2-*.bin", + "targets": { + "linux": [ + "$HOME/.config/PCSX2/bios", + "$HOME/.var/app/net.pcsx2.PCSX2/config/PCSX2/bios" + ], + "windows": [ + "%USERPROFILE%\\Documents\\PCSX2\\bios" + ], + "darwin": [ + "$HOME/Library/Application Support/PCSX2/bios" + ] + } + }, + { + "note": "PS3 firmware (PS3UPDAT.PUP) found. Install via RPCS3 > File > Install Firmware.", + "detect": { + "linux": [ + "$HOME/.config/rpcs3" + ], + "windows": [ + "%APPDATA%\\rpcs3" + ] + } + }, + { + "file": "GC/USA/IPL.bin", + "targets": { + "linux": [ + "$HOME/.local/share/dolphin-emu/GC/USA" + ], + "windows": [ + "%APPDATA%\\Dolphin Emulator\\GC\\USA" + ], + "darwin": [ + "$HOME/Library/Application Support/Dolphin/GC/USA" + ] + } + }, + { + "file": "GC/EUR/IPL.bin", + "targets": { + "linux": [ + "$HOME/.local/share/dolphin-emu/GC/EUR" + ], + "windows": [ + "%APPDATA%\\Dolphin Emulator\\GC\\EUR" + ], + "darwin": [ + "$HOME/Library/Application Support/Dolphin/GC/EUR" + ] + } + }, + { + "file": "GC/JAP/IPL.bin", + "targets": { + "linux": [ + "$HOME/.local/share/dolphin-emu/GC/JAP" + ], + "windows": [ + "%APPDATA%\\Dolphin Emulator\\GC\\JAP" + ], + "darwin": [ + "$HOME/Library/Application Support/Dolphin/GC/JAP" + ] + } + }, + { + "file": "dsp_rom.bin", + "targets": { + "linux": [ + "$HOME/.local/share/dolphin-emu" + ], + "windows": [ + "%APPDATA%\\Dolphin Emulator" + ], + "darwin": [ + "$HOME/Library/Application Support/Dolphin" + ] + } + }, + { + "file": "dsp_coef.bin", + "targets": { + "linux": [ + "$HOME/.local/share/dolphin-emu" + ], + "windows": [ + "%APPDATA%\\Dolphin Emulator" + ], + "darwin": [ + "$HOME/Library/Application Support/Dolphin" + ] + } + }, + { + "file": "PPSSPP/ppge_atlas.zim", + "targets": { + "linux": [ + "$HOME/.config/ppsspp/PSP/SYSTEM" + ], + "windows": [ + "%USERPROFILE%\\Documents\\PPSSPP\\PSP\\SYSTEM" + ], + "darwin": [ + "$HOME/Library/Application Support/PPSSPP/PSP/SYSTEM" + ] + } + }, + { + "file": "dc/dc_boot.bin", + "targets": { + "linux": [ + "$HOME/.local/share/flycast/data", + "$HOME/.var/app/org.flycast.Flycast/data/flycast" + ], + "windows": [ + "%APPDATA%\\flycast\\data" + ] + } + }, + { + "file": "dc/dc_nvmem.bin", + "targets": { + "linux": [ + "$HOME/.local/share/flycast/data", + "$HOME/.var/app/org.flycast.Flycast/data/flycast" + ], + "windows": [ + "%APPDATA%\\flycast\\data" + ] + } + } + ], "total_files": 1547, "total_size": 4371484317, "files": [ diff --git a/install/emudeck.json b/install/emudeck.json index 4c1f6fdc..d1703a4f 100644 --- a/install/emudeck.json +++ b/install/emudeck.json @@ -4,7 +4,7 @@ "platform": "emudeck", "display_name": "EmuDeck", "version": "1.0", - "generated": "2026-04-01T14:41:53Z", + "generated": "2026-04-03T09:43:22Z", "base_destination": "bios", "detect": [ { @@ -34,19 +34,211 @@ "linux": [ "$HOME/.local/share/yuzu/keys", "$HOME/.local/share/eden/keys", + "$HOME/.local/share/citron/keys", + "$HOME/.local/share/suyu/keys", "$HOME/.config/Ryujinx/system" ], "windows": [ "%APPDATA%\\yuzu\\keys", - "%APPDATA%\\eden\\keys" + "%APPDATA%\\eden\\keys", + "%APPDATA%\\citron\\keys", + "%APPDATA%\\suyu\\keys", + "%APPDATA%\\Ryujinx\\system" + ], + "darwin": [ + "$HOME/Library/Application Support/yuzu/keys", + "$HOME/Library/Application Support/Ryujinx/system" ] } }, { - "file": "aes_keys.txt", + "file": "title.keys", "targets": { "linux": [ - "$HOME/Emulation/bios/citra/keys" + "$HOME/.local/share/yuzu/keys", + "$HOME/.local/share/eden/keys", + "$HOME/.local/share/citron/keys", + "$HOME/.local/share/suyu/keys" + ], + "windows": [ + "%APPDATA%\\yuzu\\keys", + "%APPDATA%\\eden\\keys", + "%APPDATA%\\citron\\keys", + "%APPDATA%\\suyu\\keys" + ], + "darwin": [ + "$HOME/Library/Application Support/yuzu/keys" + ] + } + }, + { + "file": "Citra/sysdata/aes_keys.txt", + "targets": { + "linux": [ + "$HOME/.local/share/azahar/sysdata" + ], + "windows": [ + "%APPDATA%\\Azahar\\sysdata" + ] + } + }, + { + "file": "Citra/sysdata/boot9.bin", + "targets": { + "linux": [ + "$HOME/.local/share/azahar/sysdata" + ], + "windows": [ + "%APPDATA%\\Azahar\\sysdata" + ] + } + }, + { + "pattern": "scph*.bin", + "targets": { + "linux": [ + "$HOME/.local/share/duckstation/bios" + ], + "windows": [ + "%LOCALAPPDATA%\\DuckStation\\bios", + "%USERPROFILE%\\Documents\\DuckStation\\bios" + ], + "darwin": [ + "$HOME/Library/Application Support/DuckStation/bios" + ] + } + }, + { + "pattern": "ps2-*.bin", + "targets": { + "linux": [ + "$HOME/.config/PCSX2/bios", + "$HOME/.var/app/net.pcsx2.PCSX2/config/PCSX2/bios" + ], + "windows": [ + "%USERPROFILE%\\Documents\\PCSX2\\bios" + ], + "darwin": [ + "$HOME/Library/Application Support/PCSX2/bios" + ] + } + }, + { + "note": "PS3 firmware (PS3UPDAT.PUP) found. Install via RPCS3 > File > Install Firmware.", + "detect": { + "linux": [ + "$HOME/.config/rpcs3" + ], + "windows": [ + "%APPDATA%\\rpcs3" + ] + } + }, + { + "file": "GC/USA/IPL.bin", + "targets": { + "linux": [ + "$HOME/.local/share/dolphin-emu/GC/USA" + ], + "windows": [ + "%APPDATA%\\Dolphin Emulator\\GC\\USA" + ], + "darwin": [ + "$HOME/Library/Application Support/Dolphin/GC/USA" + ] + } + }, + { + "file": "GC/EUR/IPL.bin", + "targets": { + "linux": [ + "$HOME/.local/share/dolphin-emu/GC/EUR" + ], + "windows": [ + "%APPDATA%\\Dolphin Emulator\\GC\\EUR" + ], + "darwin": [ + "$HOME/Library/Application Support/Dolphin/GC/EUR" + ] + } + }, + { + "file": "GC/JAP/IPL.bin", + "targets": { + "linux": [ + "$HOME/.local/share/dolphin-emu/GC/JAP" + ], + "windows": [ + "%APPDATA%\\Dolphin Emulator\\GC\\JAP" + ], + "darwin": [ + "$HOME/Library/Application Support/Dolphin/GC/JAP" + ] + } + }, + { + "file": "dsp_rom.bin", + "targets": { + "linux": [ + "$HOME/.local/share/dolphin-emu" + ], + "windows": [ + "%APPDATA%\\Dolphin Emulator" + ], + "darwin": [ + "$HOME/Library/Application Support/Dolphin" + ] + } + }, + { + "file": "dsp_coef.bin", + "targets": { + "linux": [ + "$HOME/.local/share/dolphin-emu" + ], + "windows": [ + "%APPDATA%\\Dolphin Emulator" + ], + "darwin": [ + "$HOME/Library/Application Support/Dolphin" + ] + } + }, + { + "file": "PPSSPP/ppge_atlas.zim", + "targets": { + "linux": [ + "$HOME/.config/ppsspp/PSP/SYSTEM" + ], + "windows": [ + "%USERPROFILE%\\Documents\\PPSSPP\\PSP\\SYSTEM" + ], + "darwin": [ + "$HOME/Library/Application Support/PPSSPP/PSP/SYSTEM" + ] + } + }, + { + "file": "dc/dc_boot.bin", + "targets": { + "linux": [ + "$HOME/.local/share/flycast/data", + "$HOME/.var/app/org.flycast.Flycast/data/flycast" + ], + "windows": [ + "%APPDATA%\\flycast\\data" + ] + } + }, + { + "file": "dc/dc_nvmem.bin", + "targets": { + "linux": [ + "$HOME/.local/share/flycast/data", + "$HOME/.var/app/org.flycast.Flycast/data/flycast" + ], + "windows": [ + "%APPDATA%\\flycast\\data" ] } } diff --git a/install/recalbox.json b/install/recalbox.json index 69c49e4b..907ffd57 100644 --- a/install/recalbox.json +++ b/install/recalbox.json @@ -4,7 +4,7 @@ "platform": "recalbox", "display_name": "Recalbox", "version": "1.0", - "generated": "2026-04-02T13:53:15Z", + "generated": "2026-04-03T09:44:06Z", "base_destination": "bios", "detect": [ { @@ -14,7 +14,222 @@ "bios_path": "/recalbox/share/bios" } ], - "standalone_copies": [], + "standalone_copies": [ + { + "file": "prod.keys", + "targets": { + "linux": [ + "$HOME/.local/share/yuzu/keys", + "$HOME/.local/share/eden/keys", + "$HOME/.local/share/citron/keys", + "$HOME/.local/share/suyu/keys", + "$HOME/.config/Ryujinx/system" + ], + "windows": [ + "%APPDATA%\\yuzu\\keys", + "%APPDATA%\\eden\\keys", + "%APPDATA%\\citron\\keys", + "%APPDATA%\\suyu\\keys", + "%APPDATA%\\Ryujinx\\system" + ], + "darwin": [ + "$HOME/Library/Application Support/yuzu/keys", + "$HOME/Library/Application Support/Ryujinx/system" + ] + } + }, + { + "file": "title.keys", + "targets": { + "linux": [ + "$HOME/.local/share/yuzu/keys", + "$HOME/.local/share/eden/keys", + "$HOME/.local/share/citron/keys", + "$HOME/.local/share/suyu/keys" + ], + "windows": [ + "%APPDATA%\\yuzu\\keys", + "%APPDATA%\\eden\\keys", + "%APPDATA%\\citron\\keys", + "%APPDATA%\\suyu\\keys" + ], + "darwin": [ + "$HOME/Library/Application Support/yuzu/keys" + ] + } + }, + { + "file": "Citra/sysdata/aes_keys.txt", + "targets": { + "linux": [ + "$HOME/.local/share/azahar/sysdata" + ], + "windows": [ + "%APPDATA%\\Azahar\\sysdata" + ] + } + }, + { + "file": "Citra/sysdata/boot9.bin", + "targets": { + "linux": [ + "$HOME/.local/share/azahar/sysdata" + ], + "windows": [ + "%APPDATA%\\Azahar\\sysdata" + ] + } + }, + { + "pattern": "scph*.bin", + "targets": { + "linux": [ + "$HOME/.local/share/duckstation/bios" + ], + "windows": [ + "%LOCALAPPDATA%\\DuckStation\\bios", + "%USERPROFILE%\\Documents\\DuckStation\\bios" + ], + "darwin": [ + "$HOME/Library/Application Support/DuckStation/bios" + ] + } + }, + { + "pattern": "ps2-*.bin", + "targets": { + "linux": [ + "$HOME/.config/PCSX2/bios", + "$HOME/.var/app/net.pcsx2.PCSX2/config/PCSX2/bios" + ], + "windows": [ + "%USERPROFILE%\\Documents\\PCSX2\\bios" + ], + "darwin": [ + "$HOME/Library/Application Support/PCSX2/bios" + ] + } + }, + { + "note": "PS3 firmware (PS3UPDAT.PUP) found. Install via RPCS3 > File > Install Firmware.", + "detect": { + "linux": [ + "$HOME/.config/rpcs3" + ], + "windows": [ + "%APPDATA%\\rpcs3" + ] + } + }, + { + "file": "GC/USA/IPL.bin", + "targets": { + "linux": [ + "$HOME/.local/share/dolphin-emu/GC/USA" + ], + "windows": [ + "%APPDATA%\\Dolphin Emulator\\GC\\USA" + ], + "darwin": [ + "$HOME/Library/Application Support/Dolphin/GC/USA" + ] + } + }, + { + "file": "GC/EUR/IPL.bin", + "targets": { + "linux": [ + "$HOME/.local/share/dolphin-emu/GC/EUR" + ], + "windows": [ + "%APPDATA%\\Dolphin Emulator\\GC\\EUR" + ], + "darwin": [ + "$HOME/Library/Application Support/Dolphin/GC/EUR" + ] + } + }, + { + "file": "GC/JAP/IPL.bin", + "targets": { + "linux": [ + "$HOME/.local/share/dolphin-emu/GC/JAP" + ], + "windows": [ + "%APPDATA%\\Dolphin Emulator\\GC\\JAP" + ], + "darwin": [ + "$HOME/Library/Application Support/Dolphin/GC/JAP" + ] + } + }, + { + "file": "dsp_rom.bin", + "targets": { + "linux": [ + "$HOME/.local/share/dolphin-emu" + ], + "windows": [ + "%APPDATA%\\Dolphin Emulator" + ], + "darwin": [ + "$HOME/Library/Application Support/Dolphin" + ] + } + }, + { + "file": "dsp_coef.bin", + "targets": { + "linux": [ + "$HOME/.local/share/dolphin-emu" + ], + "windows": [ + "%APPDATA%\\Dolphin Emulator" + ], + "darwin": [ + "$HOME/Library/Application Support/Dolphin" + ] + } + }, + { + "file": "PPSSPP/ppge_atlas.zim", + "targets": { + "linux": [ + "$HOME/.config/ppsspp/PSP/SYSTEM" + ], + "windows": [ + "%USERPROFILE%\\Documents\\PPSSPP\\PSP\\SYSTEM" + ], + "darwin": [ + "$HOME/Library/Application Support/PPSSPP/PSP/SYSTEM" + ] + } + }, + { + "file": "dc/dc_boot.bin", + "targets": { + "linux": [ + "$HOME/.local/share/flycast/data", + "$HOME/.var/app/org.flycast.Flycast/data/flycast" + ], + "windows": [ + "%APPDATA%\\flycast\\data" + ] + } + }, + { + "file": "dc/dc_nvmem.bin", + "targets": { + "linux": [ + "$HOME/.local/share/flycast/data", + "$HOME/.var/app/org.flycast.Flycast/data/flycast" + ], + "windows": [ + "%APPDATA%\\flycast\\data" + ] + } + } + ], "total_files": 1107, "total_size": 3980096655, "files": [ diff --git a/install/retroarch.json b/install/retroarch.json index 068254bb..8f08c5d3 100644 --- a/install/retroarch.json +++ b/install/retroarch.json @@ -4,7 +4,7 @@ "platform": "retroarch", "display_name": "RetroArch", "version": "1.0", - "generated": "2026-04-02T13:52:45Z", + "generated": "2026-04-03T09:43:38Z", "base_destination": "system", "detect": [ { @@ -32,7 +32,222 @@ "parse_key": "system_directory" } ], - "standalone_copies": [], + "standalone_copies": [ + { + "file": "prod.keys", + "targets": { + "linux": [ + "$HOME/.local/share/yuzu/keys", + "$HOME/.local/share/eden/keys", + "$HOME/.local/share/citron/keys", + "$HOME/.local/share/suyu/keys", + "$HOME/.config/Ryujinx/system" + ], + "windows": [ + "%APPDATA%\\yuzu\\keys", + "%APPDATA%\\eden\\keys", + "%APPDATA%\\citron\\keys", + "%APPDATA%\\suyu\\keys", + "%APPDATA%\\Ryujinx\\system" + ], + "darwin": [ + "$HOME/Library/Application Support/yuzu/keys", + "$HOME/Library/Application Support/Ryujinx/system" + ] + } + }, + { + "file": "title.keys", + "targets": { + "linux": [ + "$HOME/.local/share/yuzu/keys", + "$HOME/.local/share/eden/keys", + "$HOME/.local/share/citron/keys", + "$HOME/.local/share/suyu/keys" + ], + "windows": [ + "%APPDATA%\\yuzu\\keys", + "%APPDATA%\\eden\\keys", + "%APPDATA%\\citron\\keys", + "%APPDATA%\\suyu\\keys" + ], + "darwin": [ + "$HOME/Library/Application Support/yuzu/keys" + ] + } + }, + { + "file": "Citra/sysdata/aes_keys.txt", + "targets": { + "linux": [ + "$HOME/.local/share/azahar/sysdata" + ], + "windows": [ + "%APPDATA%\\Azahar\\sysdata" + ] + } + }, + { + "file": "Citra/sysdata/boot9.bin", + "targets": { + "linux": [ + "$HOME/.local/share/azahar/sysdata" + ], + "windows": [ + "%APPDATA%\\Azahar\\sysdata" + ] + } + }, + { + "pattern": "scph*.bin", + "targets": { + "linux": [ + "$HOME/.local/share/duckstation/bios" + ], + "windows": [ + "%LOCALAPPDATA%\\DuckStation\\bios", + "%USERPROFILE%\\Documents\\DuckStation\\bios" + ], + "darwin": [ + "$HOME/Library/Application Support/DuckStation/bios" + ] + } + }, + { + "pattern": "ps2-*.bin", + "targets": { + "linux": [ + "$HOME/.config/PCSX2/bios", + "$HOME/.var/app/net.pcsx2.PCSX2/config/PCSX2/bios" + ], + "windows": [ + "%USERPROFILE%\\Documents\\PCSX2\\bios" + ], + "darwin": [ + "$HOME/Library/Application Support/PCSX2/bios" + ] + } + }, + { + "note": "PS3 firmware (PS3UPDAT.PUP) found. Install via RPCS3 > File > Install Firmware.", + "detect": { + "linux": [ + "$HOME/.config/rpcs3" + ], + "windows": [ + "%APPDATA%\\rpcs3" + ] + } + }, + { + "file": "GC/USA/IPL.bin", + "targets": { + "linux": [ + "$HOME/.local/share/dolphin-emu/GC/USA" + ], + "windows": [ + "%APPDATA%\\Dolphin Emulator\\GC\\USA" + ], + "darwin": [ + "$HOME/Library/Application Support/Dolphin/GC/USA" + ] + } + }, + { + "file": "GC/EUR/IPL.bin", + "targets": { + "linux": [ + "$HOME/.local/share/dolphin-emu/GC/EUR" + ], + "windows": [ + "%APPDATA%\\Dolphin Emulator\\GC\\EUR" + ], + "darwin": [ + "$HOME/Library/Application Support/Dolphin/GC/EUR" + ] + } + }, + { + "file": "GC/JAP/IPL.bin", + "targets": { + "linux": [ + "$HOME/.local/share/dolphin-emu/GC/JAP" + ], + "windows": [ + "%APPDATA%\\Dolphin Emulator\\GC\\JAP" + ], + "darwin": [ + "$HOME/Library/Application Support/Dolphin/GC/JAP" + ] + } + }, + { + "file": "dsp_rom.bin", + "targets": { + "linux": [ + "$HOME/.local/share/dolphin-emu" + ], + "windows": [ + "%APPDATA%\\Dolphin Emulator" + ], + "darwin": [ + "$HOME/Library/Application Support/Dolphin" + ] + } + }, + { + "file": "dsp_coef.bin", + "targets": { + "linux": [ + "$HOME/.local/share/dolphin-emu" + ], + "windows": [ + "%APPDATA%\\Dolphin Emulator" + ], + "darwin": [ + "$HOME/Library/Application Support/Dolphin" + ] + } + }, + { + "file": "PPSSPP/ppge_atlas.zim", + "targets": { + "linux": [ + "$HOME/.config/ppsspp/PSP/SYSTEM" + ], + "windows": [ + "%USERPROFILE%\\Documents\\PPSSPP\\PSP\\SYSTEM" + ], + "darwin": [ + "$HOME/Library/Application Support/PPSSPP/PSP/SYSTEM" + ] + } + }, + { + "file": "dc/dc_boot.bin", + "targets": { + "linux": [ + "$HOME/.local/share/flycast/data", + "$HOME/.var/app/org.flycast.Flycast/data/flycast" + ], + "windows": [ + "%APPDATA%\\flycast\\data" + ] + } + }, + { + "file": "dc/dc_nvmem.bin", + "targets": { + "linux": [ + "$HOME/.local/share/flycast/data", + "$HOME/.var/app/org.flycast.Flycast/data/flycast" + ], + "windows": [ + "%APPDATA%\\flycast\\data" + ] + } + } + ], "total_files": 1627, "total_size": 5735234905, "files": [ diff --git a/install/retrobat.json b/install/retrobat.json index b4dc2e33..0afb25ff 100644 --- a/install/retrobat.json +++ b/install/retrobat.json @@ -4,7 +4,7 @@ "platform": "retrobat", "display_name": "RetroBat", "version": "1.0", - "generated": "2026-04-02T13:53:25Z", + "generated": "2026-04-03T09:44:16Z", "base_destination": "bios", "detect": [ { @@ -13,7 +13,222 @@ "path": "%USERPROFILE%\\RetroBat\\bios" } ], - "standalone_copies": [], + "standalone_copies": [ + { + "file": "prod.keys", + "targets": { + "linux": [ + "$HOME/.local/share/yuzu/keys", + "$HOME/.local/share/eden/keys", + "$HOME/.local/share/citron/keys", + "$HOME/.local/share/suyu/keys", + "$HOME/.config/Ryujinx/system" + ], + "windows": [ + "%APPDATA%\\yuzu\\keys", + "%APPDATA%\\eden\\keys", + "%APPDATA%\\citron\\keys", + "%APPDATA%\\suyu\\keys", + "%APPDATA%\\Ryujinx\\system" + ], + "darwin": [ + "$HOME/Library/Application Support/yuzu/keys", + "$HOME/Library/Application Support/Ryujinx/system" + ] + } + }, + { + "file": "title.keys", + "targets": { + "linux": [ + "$HOME/.local/share/yuzu/keys", + "$HOME/.local/share/eden/keys", + "$HOME/.local/share/citron/keys", + "$HOME/.local/share/suyu/keys" + ], + "windows": [ + "%APPDATA%\\yuzu\\keys", + "%APPDATA%\\eden\\keys", + "%APPDATA%\\citron\\keys", + "%APPDATA%\\suyu\\keys" + ], + "darwin": [ + "$HOME/Library/Application Support/yuzu/keys" + ] + } + }, + { + "file": "Citra/sysdata/aes_keys.txt", + "targets": { + "linux": [ + "$HOME/.local/share/azahar/sysdata" + ], + "windows": [ + "%APPDATA%\\Azahar\\sysdata" + ] + } + }, + { + "file": "Citra/sysdata/boot9.bin", + "targets": { + "linux": [ + "$HOME/.local/share/azahar/sysdata" + ], + "windows": [ + "%APPDATA%\\Azahar\\sysdata" + ] + } + }, + { + "pattern": "scph*.bin", + "targets": { + "linux": [ + "$HOME/.local/share/duckstation/bios" + ], + "windows": [ + "%LOCALAPPDATA%\\DuckStation\\bios", + "%USERPROFILE%\\Documents\\DuckStation\\bios" + ], + "darwin": [ + "$HOME/Library/Application Support/DuckStation/bios" + ] + } + }, + { + "pattern": "ps2-*.bin", + "targets": { + "linux": [ + "$HOME/.config/PCSX2/bios", + "$HOME/.var/app/net.pcsx2.PCSX2/config/PCSX2/bios" + ], + "windows": [ + "%USERPROFILE%\\Documents\\PCSX2\\bios" + ], + "darwin": [ + "$HOME/Library/Application Support/PCSX2/bios" + ] + } + }, + { + "note": "PS3 firmware (PS3UPDAT.PUP) found. Install via RPCS3 > File > Install Firmware.", + "detect": { + "linux": [ + "$HOME/.config/rpcs3" + ], + "windows": [ + "%APPDATA%\\rpcs3" + ] + } + }, + { + "file": "GC/USA/IPL.bin", + "targets": { + "linux": [ + "$HOME/.local/share/dolphin-emu/GC/USA" + ], + "windows": [ + "%APPDATA%\\Dolphin Emulator\\GC\\USA" + ], + "darwin": [ + "$HOME/Library/Application Support/Dolphin/GC/USA" + ] + } + }, + { + "file": "GC/EUR/IPL.bin", + "targets": { + "linux": [ + "$HOME/.local/share/dolphin-emu/GC/EUR" + ], + "windows": [ + "%APPDATA%\\Dolphin Emulator\\GC\\EUR" + ], + "darwin": [ + "$HOME/Library/Application Support/Dolphin/GC/EUR" + ] + } + }, + { + "file": "GC/JAP/IPL.bin", + "targets": { + "linux": [ + "$HOME/.local/share/dolphin-emu/GC/JAP" + ], + "windows": [ + "%APPDATA%\\Dolphin Emulator\\GC\\JAP" + ], + "darwin": [ + "$HOME/Library/Application Support/Dolphin/GC/JAP" + ] + } + }, + { + "file": "dsp_rom.bin", + "targets": { + "linux": [ + "$HOME/.local/share/dolphin-emu" + ], + "windows": [ + "%APPDATA%\\Dolphin Emulator" + ], + "darwin": [ + "$HOME/Library/Application Support/Dolphin" + ] + } + }, + { + "file": "dsp_coef.bin", + "targets": { + "linux": [ + "$HOME/.local/share/dolphin-emu" + ], + "windows": [ + "%APPDATA%\\Dolphin Emulator" + ], + "darwin": [ + "$HOME/Library/Application Support/Dolphin" + ] + } + }, + { + "file": "PPSSPP/ppge_atlas.zim", + "targets": { + "linux": [ + "$HOME/.config/ppsspp/PSP/SYSTEM" + ], + "windows": [ + "%USERPROFILE%\\Documents\\PPSSPP\\PSP\\SYSTEM" + ], + "darwin": [ + "$HOME/Library/Application Support/PPSSPP/PSP/SYSTEM" + ] + } + }, + { + "file": "dc/dc_boot.bin", + "targets": { + "linux": [ + "$HOME/.local/share/flycast/data", + "$HOME/.var/app/org.flycast.Flycast/data/flycast" + ], + "windows": [ + "%APPDATA%\\flycast\\data" + ] + } + }, + { + "file": "dc/dc_nvmem.bin", + "targets": { + "linux": [ + "$HOME/.local/share/flycast/data", + "$HOME/.var/app/org.flycast.Flycast/data/flycast" + ], + "windows": [ + "%APPDATA%\\flycast\\data" + ] + } + } + ], "total_files": 1169, "total_size": 4777641221, "files": [ diff --git a/install/retrodeck.json b/install/retrodeck.json index 8181c030..97520e14 100644 --- a/install/retrodeck.json +++ b/install/retrodeck.json @@ -4,17 +4,232 @@ "platform": "retrodeck", "display_name": "RetroDECK", "version": "1.0", - "generated": "2026-04-02T13:53:43Z", + "generated": "2026-04-03T09:44:33Z", "base_destination": "", "detect": [ { "os": "linux", "method": "path_exists", "path": "$HOME/.var/app/net.retrodeck.retrodeck", - "bios_path": "$HOME/retrodeck/bios" + "bios_path": "$HOME/retrodeck" + } + ], + "standalone_copies": [ + { + "file": "prod.keys", + "targets": { + "linux": [ + "$HOME/.local/share/yuzu/keys", + "$HOME/.local/share/eden/keys", + "$HOME/.local/share/citron/keys", + "$HOME/.local/share/suyu/keys", + "$HOME/.config/Ryujinx/system" + ], + "windows": [ + "%APPDATA%\\yuzu\\keys", + "%APPDATA%\\eden\\keys", + "%APPDATA%\\citron\\keys", + "%APPDATA%\\suyu\\keys", + "%APPDATA%\\Ryujinx\\system" + ], + "darwin": [ + "$HOME/Library/Application Support/yuzu/keys", + "$HOME/Library/Application Support/Ryujinx/system" + ] + } + }, + { + "file": "title.keys", + "targets": { + "linux": [ + "$HOME/.local/share/yuzu/keys", + "$HOME/.local/share/eden/keys", + "$HOME/.local/share/citron/keys", + "$HOME/.local/share/suyu/keys" + ], + "windows": [ + "%APPDATA%\\yuzu\\keys", + "%APPDATA%\\eden\\keys", + "%APPDATA%\\citron\\keys", + "%APPDATA%\\suyu\\keys" + ], + "darwin": [ + "$HOME/Library/Application Support/yuzu/keys" + ] + } + }, + { + "file": "Citra/sysdata/aes_keys.txt", + "targets": { + "linux": [ + "$HOME/.local/share/azahar/sysdata" + ], + "windows": [ + "%APPDATA%\\Azahar\\sysdata" + ] + } + }, + { + "file": "Citra/sysdata/boot9.bin", + "targets": { + "linux": [ + "$HOME/.local/share/azahar/sysdata" + ], + "windows": [ + "%APPDATA%\\Azahar\\sysdata" + ] + } + }, + { + "pattern": "scph*.bin", + "targets": { + "linux": [ + "$HOME/.local/share/duckstation/bios" + ], + "windows": [ + "%LOCALAPPDATA%\\DuckStation\\bios", + "%USERPROFILE%\\Documents\\DuckStation\\bios" + ], + "darwin": [ + "$HOME/Library/Application Support/DuckStation/bios" + ] + } + }, + { + "pattern": "ps2-*.bin", + "targets": { + "linux": [ + "$HOME/.config/PCSX2/bios", + "$HOME/.var/app/net.pcsx2.PCSX2/config/PCSX2/bios" + ], + "windows": [ + "%USERPROFILE%\\Documents\\PCSX2\\bios" + ], + "darwin": [ + "$HOME/Library/Application Support/PCSX2/bios" + ] + } + }, + { + "note": "PS3 firmware (PS3UPDAT.PUP) found. Install via RPCS3 > File > Install Firmware.", + "detect": { + "linux": [ + "$HOME/.config/rpcs3" + ], + "windows": [ + "%APPDATA%\\rpcs3" + ] + } + }, + { + "file": "GC/USA/IPL.bin", + "targets": { + "linux": [ + "$HOME/.local/share/dolphin-emu/GC/USA" + ], + "windows": [ + "%APPDATA%\\Dolphin Emulator\\GC\\USA" + ], + "darwin": [ + "$HOME/Library/Application Support/Dolphin/GC/USA" + ] + } + }, + { + "file": "GC/EUR/IPL.bin", + "targets": { + "linux": [ + "$HOME/.local/share/dolphin-emu/GC/EUR" + ], + "windows": [ + "%APPDATA%\\Dolphin Emulator\\GC\\EUR" + ], + "darwin": [ + "$HOME/Library/Application Support/Dolphin/GC/EUR" + ] + } + }, + { + "file": "GC/JAP/IPL.bin", + "targets": { + "linux": [ + "$HOME/.local/share/dolphin-emu/GC/JAP" + ], + "windows": [ + "%APPDATA%\\Dolphin Emulator\\GC\\JAP" + ], + "darwin": [ + "$HOME/Library/Application Support/Dolphin/GC/JAP" + ] + } + }, + { + "file": "dsp_rom.bin", + "targets": { + "linux": [ + "$HOME/.local/share/dolphin-emu" + ], + "windows": [ + "%APPDATA%\\Dolphin Emulator" + ], + "darwin": [ + "$HOME/Library/Application Support/Dolphin" + ] + } + }, + { + "file": "dsp_coef.bin", + "targets": { + "linux": [ + "$HOME/.local/share/dolphin-emu" + ], + "windows": [ + "%APPDATA%\\Dolphin Emulator" + ], + "darwin": [ + "$HOME/Library/Application Support/Dolphin" + ] + } + }, + { + "file": "PPSSPP/ppge_atlas.zim", + "targets": { + "linux": [ + "$HOME/.config/ppsspp/PSP/SYSTEM" + ], + "windows": [ + "%USERPROFILE%\\Documents\\PPSSPP\\PSP\\SYSTEM" + ], + "darwin": [ + "$HOME/Library/Application Support/PPSSPP/PSP/SYSTEM" + ] + } + }, + { + "file": "dc/dc_boot.bin", + "targets": { + "linux": [ + "$HOME/.local/share/flycast/data", + "$HOME/.var/app/org.flycast.Flycast/data/flycast" + ], + "windows": [ + "%APPDATA%\\flycast\\data" + ] + } + }, + { + "file": "dc/dc_nvmem.bin", + "targets": { + "linux": [ + "$HOME/.local/share/flycast/data", + "$HOME/.var/app/org.flycast.Flycast/data/flycast" + ], + "windows": [ + "%APPDATA%\\flycast\\data" + ] + } } ], - "standalone_copies": [], "total_files": 3153, "total_size": 6351500734, "files": [ diff --git a/mkdocs.yml b/mkdocs.yml index 5cf4fc82..cad80f5f 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -52,6 +52,7 @@ plugins: - search nav: - Home: index.md +- Which pack?: which-pack.md - Platforms: - Overview: platforms/index.md - Batocera: platforms/batocera.md diff --git a/scripts/common.py b/scripts/common.py index 93421616..cff66d06 100644 --- a/scripts/common.py +++ b/scripts/common.py @@ -743,15 +743,13 @@ def group_identical_platforms( inherits[platform] = False continue - base_dest = config.get("base_destination", "") entries = [] for sys_id, system in sorted(config.get("systems", {}).items()): for fe in system.get("files", []): dest = fe.get("destination", fe.get("name", "")) - full_dest = f"{base_dest}/{dest}" if base_dest else dest sha1 = fe.get("sha1", "") md5 = fe.get("md5", "") - entries.append(f"{full_dest}|{sha1}|{md5}") + entries.append(f"{dest}|{sha1}|{md5}") fp = hashlib.sha1("|".join(sorted(entries)).encode()).hexdigest() if target_cores_cache: diff --git a/scripts/generate_pack.py b/scripts/generate_pack.py index 00ccf0d9..bf2cc84e 100644 --- a/scripts/generate_pack.py +++ b/scripts/generate_pack.py @@ -974,10 +974,7 @@ def _build_readme( credits = "\nCONTRIBUTORS\n\n" for cb in contributors: username = cb.get("username", "") - contribution = cb.get("contribution", "") - pr = cb.get("pr") - pr_ref = f" (#{pr})" if pr else "" - credits += f" @{username} - {contribution}{pr_ref}\n" + credits += f" @{username}\n" credits += "\n" return header + source_info + guide + credits + footer diff --git a/scripts/generate_site.py b/scripts/generate_site.py index 38e6d912..dc485848 100644 --- a/scripts/generate_site.py +++ b/scripts/generate_site.py @@ -2215,6 +2215,7 @@ def generate_mkdocs_nav( return [ {"Home": "index.md"}, + {"Which pack?": "which-pack.md"}, {"Platforms": platform_nav}, {"Systems": system_nav}, {"Emulators": emu_nav},