diff --git a/scripts/generate_site.py b/scripts/generate_site.py
index ccd8e4a05..7a1787e76 100644
--- a/scripts/generate_site.py
+++ b/scripts/generate_site.py
@@ -9114,6 +9114,21 @@ def _install_args(platform: str, system: str, shell: str) -> str:
return f"--platform {platform} --system {quoted}"
+def _default_setup(declared: list[tuple[str, str]]) -> tuple[str, str]:
+ """The setup an install box shows before the reader picks one.
+
+ The first in alphabetical order was AmberELEC on 17 system pages, a
+ handheld system under a Windows tab. RetroArch runs on every OS the box
+ has a tab for. Without it, a setup the release publishes a ZIP for,
+ the ones most people download (`release_pack`).
+ """
+ for wanted in (lambda p: p == "retroarch", has_release_pack):
+ chosen = next((pair for pair in declared if wanted(pair[0])), None)
+ if chosen:
+ return chosen
+ return declared[0]
+
+
def _install_picker(declared: list[tuple[str, str]]) -> list[str]:
"""One command, for the setup the reader picks, under the OS tabs.
@@ -9128,15 +9143,16 @@ def _install_picker(declared: list[tuple[str, str]]) -> list[str]:
return html.escape(text, quote=False).replace('"', """)
names = Counter(platform for platform, _system in declared)
+ lead = _default_setup(declared)
options = "".join(
- f'"
for platform, system in declared)
- lead = declared[0]
args = {key: _install_args(*lead, TERMINALS[key][2]) for key in INSTALL_PICKER_OSES}
return [
"Each platform names the system its own way.",
diff --git a/tests/test_site_density_cards.py b/tests/test_site_density_cards.py
index 9c031adec..6bea1ba41 100644
--- a/tests/test_site_density_cards.py
+++ b/tests/test_site_density_cards.py
@@ -193,11 +193,23 @@ class AnInstallBoxShowsOneCommand(unittest.TestCase):
self.assertEqual(re.findall(r' None:
+ """AmberELEC led 17 system pages, a handheld system under the
+ Windows tab, for being first in alphabetical order."""
+ self.assertEqual(gs._default_setup([("amberelec", "psx"), ("retroarch", "Sony - PlayStation")]),
+ ("retroarch", "Sony - PlayStation"))
+ self.assertEqual(gs._default_setup([("amberelec", "x"), ("batocera", "x")]), ("batocera", "x"))
+ self.assertEqual(gs._default_setup([("amberelec", "x"), ("knulli", "x")]), ("amberelec", "x"))
+ select = re.search(r"", self.text).group(1)
+ self.assertEqual(re.findall(r'