mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-10-18 09:23:26 -05:00
docs: say what the pack installers really do
The EmuDeck pack README promised standalone keys set up automatically, which needs --standalone-copies, and named a Citra folder the installer never uses. The RetroArch README gave Windows users a shell command only, and RetroPie's sent a PC to a Linux partition it cannot open. Each guide now matches the installer.
This commit is contained in:
1 parent
8d0b6d5f93
commit
cc7f9fbdac
2 files changed
+64
-16
No files matched your search
+22
-16
@@ -36,8 +36,10 @@ def _build_readme(
|
||||
"INSTALLATION GUIDE\n\n"
|
||||
" Option A: Automatic (recommended)\n"
|
||||
" ---------------------------------\n"
|
||||
" Run this in a terminal:\n\n"
|
||||
" Linux, macOS, Steam Deck: run this in a terminal:\n\n"
|
||||
" curl -fsSL https://raw.githubusercontent.com/Abdess/retrobios/main/install.sh | sh\n\n"
|
||||
" Windows: run this in PowerShell:\n\n"
|
||||
" irm https://raw.githubusercontent.com/Abdess/retrobios/main/install.ps1 | iex\n\n"
|
||||
" The script auto-detects your RetroArch install and copies\n"
|
||||
" files to the correct location.\n\n"
|
||||
" Option B: Manual (PC)\n"
|
||||
@@ -104,20 +106,21 @@ def _build_readme(
|
||||
" ---------------------------------\n"
|
||||
" Open Konsole (or any terminal) and run:\n\n"
|
||||
" curl -fsSL https://raw.githubusercontent.com/Abdess/retrobios/main/install.sh | sh\n\n"
|
||||
" The script places BIOS files AND sets up standalone\n"
|
||||
" emulator keys automatically.\n\n"
|
||||
" The script places the BIOS files. To also copy the keys\n"
|
||||
" into the standalone emulators it finds, run:\n\n"
|
||||
" curl -fsSL https://raw.githubusercontent.com/Abdess/retrobios/main/install.sh | sh -s -- --standalone-copies\n\n"
|
||||
" Option B: Manual\n"
|
||||
" ----------------\n"
|
||||
" 1. Open Dolphin file manager\n"
|
||||
" 2. Navigate to ~/Emulation/bios/\n"
|
||||
" 3. Extract all files from this archive directly into ~/Emulation/bios/\n\n"
|
||||
" STANDALONE EMULATORS (extra step)\n"
|
||||
" Switch and 3DS emulators need keys in specific folders:\n"
|
||||
" prod.keys -> ~/.local/share/yuzu/keys/\n"
|
||||
" prod.keys -> ~/.local/share/eden/keys/\n"
|
||||
" prod.keys -> ~/.config/Ryujinx/system/\n"
|
||||
" aes_keys.txt -> ~/Emulation/bios/citra/keys/\n"
|
||||
" The automatic installer handles this for you.\n\n"
|
||||
" Switch and 3DS emulators need keys in their own folders:\n"
|
||||
" prod.keys -> ~/.local/share/yuzu/keys/\n"
|
||||
" prod.keys -> ~/.local/share/eden/keys/\n"
|
||||
" prod.keys -> ~/.config/Ryujinx/system/\n"
|
||||
" aes_keys.txt -> ~/.local/share/azahar/sysdata/\n"
|
||||
" The installer copies them with --standalone-copies.\n\n"
|
||||
),
|
||||
"retrodeck": (
|
||||
"INSTALLATION GUIDE (Steam Deck / Linux)\n\n"
|
||||
@@ -169,19 +172,22 @@ def _build_readme(
|
||||
),
|
||||
"retropie": (
|
||||
"INSTALLATION GUIDE (Raspberry Pi)\n\n"
|
||||
" Option A: Via network share\n"
|
||||
" Option A: Automatic\n"
|
||||
" -------------------\n"
|
||||
" On the Pi (F4 from EmulationStation, or over SSH), run:\n\n"
|
||||
" curl -fsSL https://raw.githubusercontent.com/Abdess/retrobios/main/install.sh | sh\n\n"
|
||||
" Option B: Via network share\n"
|
||||
" --------------------------\n"
|
||||
" 1. On your PC, open: \\\\RETROPIE\\bios\\\n"
|
||||
" 2. Extract all files from this archive directly into that folder\n\n"
|
||||
" Option B: Via SSH\n"
|
||||
" Option C: Via SSH\n"
|
||||
" -----------------\n"
|
||||
" 1. SSH into your Pi: ssh pi@retropie\n"
|
||||
" 2. Copy files to ~/RetroPie/BIOS/\n\n"
|
||||
" Option C: Via SD card\n"
|
||||
" ---------------------\n"
|
||||
" 1. Put the SD card in your PC\n"
|
||||
" 2. Navigate to /home/pi/RetroPie/BIOS/\n"
|
||||
" 3. Extract all files from this archive directly into that folder\n\n"
|
||||
" NOTE: the BIOS folder is on the card's Linux partition,\n"
|
||||
" which Windows and macOS cannot open: copying through the\n"
|
||||
" card works from a Linux computer only\n"
|
||||
" (<rootfs>/home/pi/RetroPie/BIOS/).\n\n"
|
||||
),
|
||||
}
|
||||
|
||||
|
||||
@@ -560,6 +560,48 @@ class ADamagedArchiveIsNotPacked(unittest.TestCase):
|
||||
self.assertIn("set.zip", str(caught.exception))
|
||||
|
||||
|
||||
class PackReadmesSayWhatTheInstallerDoes(unittest.TestCase):
|
||||
"""The EmuDeck README promised keys set up automatically (they need
|
||||
--standalone-copies) and gave a Citra path the installer never uses; the
|
||||
RetroArch README offered only `| sh`, which Windows cannot run."""
|
||||
|
||||
def _guide(self, platform: str) -> str:
|
||||
from packreadme import _build_readme
|
||||
|
||||
text = _build_readme(platform, platform, "", 1, 1)
|
||||
return text[text.index("INSTALLATION"):text.index("TROUBLESHOOTING")]
|
||||
|
||||
def test_retroarch_offers_the_windows_installer(self):
|
||||
guide = self._guide("retroarch")
|
||||
self.assertIn("install.sh | sh", guide)
|
||||
self.assertIn("install.ps1 | iex", guide)
|
||||
|
||||
def test_emudeck_keys_match_the_registry_and_the_flag(self):
|
||||
import re
|
||||
|
||||
guide = self._guide("emudeck")
|
||||
self.assertIn("--standalone-copies", guide)
|
||||
self.assertNotIn("emulator keys automatically", guide)
|
||||
self.assertNotIn("handles this for you", guide)
|
||||
with (ROOT / "platforms" / "_registry.yml").open(encoding="utf-8") as handle:
|
||||
registry = yaml.safe_load(handle)
|
||||
targets = {
|
||||
target.rstrip("/").replace("$HOME", "~")
|
||||
for copy in registry["_standalone_copies"]
|
||||
for target in copy.get("targets", {}).get("linux", [])
|
||||
}
|
||||
named = {
|
||||
path.rstrip("/") for path in re.findall(r"-> (~/\S+)", guide)
|
||||
}
|
||||
self.assertTrue(named)
|
||||
self.assertEqual(sorted(named - targets), [])
|
||||
|
||||
def test_retropie_never_sends_a_pc_to_the_linux_partition(self):
|
||||
guide = self._guide("retropie")
|
||||
self.assertNotIn("Put the SD card in your PC", guide)
|
||||
self.assertIn("install.sh | sh", guide)
|
||||
|
||||
|
||||
class FaqRegressions(unittest.TestCase):
|
||||
"""The FAQ states facts the code owns; these tie it back to the source.
|
||||
|
||||
|
||||
Reference in new issue
Block a user