From 6b573771119046bf3c76c9a0d9ce2a745f419ab5 Mon Sep 17 00:00:00 2001 From: Abdessamad Derraz <3028866+Abdess@users.noreply.github.com> Date: Tue, 6 Oct 2026 05:33:18 +0200 Subject: [PATCH] fix: name each retropie package once per target --- install/targets/retropie.json | 517 +++++++++++++++++- platforms/targets/retropie.yml | 114 +--- .../targets/retropie_targets_scraper.py | 7 +- tests/test_target_scrapers.py | 12 +- 4 files changed, 521 insertions(+), 129 deletions(-) diff --git a/install/targets/retropie.json b/install/targets/retropie.json index b766d503..6ff01b19 100644 --- a/install/targets/retropie.json +++ b/install/targets/retropie.json @@ -1,7 +1,14 @@ { "rpi1": [ "81", + "advmame", + "advmame-0.94", + "advmame-1.4", + "ags", + "alephone", + "amiberry", "atari800", + "basilisk", "beetle_lynx", "beetle_ngp", "beetle_pce_fast", @@ -11,29 +18,57 @@ "beetle_wswan", "bennugd", "bluemsx", + "cannonball", "caprice32", + "capricerpi", + "cdogs-sdl", + "cgenius", + "coolcv", + "daphne", + "darkplaces-quake", "desmume", "desmume2015", + "dgen", "dinothawr", "dirksimple", "dosbox", + "dosbox-sdl2", + "dosbox-staging", "dosbox_pure", + "dsda-doom", + "dxx-rebirth", + "eduke32", "ep128emu", "fbalpha2012", "fbneo", + "fbzx", "fceumm", "fmsx", "freechaf", "freeintv", + "frotz", "fuse", "gambatte", "geargrafx", "gearsystem", + "gemrb", "genesis_plus_gx", + "giana", + "gngeopi", "gpsp", "gw", "handy", "hatari", + "hypseus", + "ionfury", + "jumpnbump", + "jzintv", + "kodi", + "linapple", + "lincity-ng", + "love", + "love-0.10.2", + "lzdoom", "mame", "mame2000", "mame2003", @@ -41,51 +76,99 @@ "mame2010", "mame2015", "mame2016", + "mame4all", "mess", "mess2016", "mgba", + "micropolis", + "minecraft", + "minivmac", "mrboom", "mupen64plus", "mupen64plus_next", + "mysticmine", "neocd", "nestopia", "np2kai", + "np2pi", "nxengine", "o2em", + "openblok", + "openbor", + "openmsx", + "openttd", + "opentyrian", "opera", + "oricutron", + "osmose", "parallel_n64", + "pcsx-rearmed", "pcsx_rearmed", "picodrive", + "pifba", + "pisnes", "pokemini", "ppsspp", + "ppsspp-1.5.4", "prboom", "prosystem", "puae", "puae2021", "px68k", + "quake3", "quasi88", "quicknes", "retro8", + "retroarch", + "rpix86", "scummvm", + "scummvm-sdl1", + "sdlpop", + "sdltrs", + "simcoupe", "smsplus_gx", + "smw", "snes9x", "snes9x2002", "snes9x2005", "snes9x2010", + "solarus", + "splitwolf", + "srb2", "stella", "stella2014", + "stratagus", + "supertux", "tgbdual", "theodore", + "ti99sim", + "ti99sim-sdl1", "tic80", "tyrquake", + "uae4all", + "uae4arm", + "uqm", "vecx", "vice", + "vvvvvv", + "wolf4sdl", "x1", - "xrick" + "xm7", + "xrick", + "xroar", + "yquake2", + "zesarux" ], "rpi2": [ "81", + "advmame", + "advmame-0.94", + "advmame-1.4", + "ags", + "alephone", + "amiberry", "atari800", + "basilisk", "beetle_lynx", "beetle_ngp", "beetle_pce", @@ -98,31 +181,60 @@ "bennugd", "bluemsx", "bsnes", + "cannonball", "caprice32", + "capricerpi", + "cdogs-sdl", + "cgenius", + "coolcv", + "daphne", + "darkplaces-quake", "desmume", "desmume2015", + "dgen", "dinothawr", "dirksimple", "dosbox", + "dosbox-sdl2", + "dosbox-staging", "dosbox_pure", + "drastic", + "dsda-doom", + "dxx-rebirth", + "eduke32", "ep128emu", "fbalpha2012", "fbneo", + "fbzx", "fceumm", "flycast", - "flycast_dev", "fmsx", "freechaf", "freeintv", + "frotz", "fuse", "gambatte", "geargrafx", "gearsystem", + "gemrb", "genesis_plus_gx", + "giana", + "gngeopi", "gpsp", "gw", + "gzdoom", "handy", "hatari", + "hypseus", + "ionfury", + "jumpnbump", + "jzintv", + "kodi", + "linapple", + "lincity-ng", + "love", + "love-0.10.2", + "lzdoom", "mame", "mame2000", "mame2003", @@ -130,55 +242,104 @@ "mame2010", "mame2015", "mame2016", + "mame4all", "mesen", "mess", "mess2016", "mgba", + "micropolis", + "minecraft", + "minivmac", "mrboom", "mupen64plus", "mupen64plus_next", + "mysticmine", "neocd", "nestopia", "np2kai", + "np2pi", "nxengine", "o2em", + "openblok", + "openbor", + "openmsx", + "openttd", + "opentyrian", "opera", + "oricutron", + "osmose", "parallel_n64", + "pcsx-rearmed", "pcsx_rearmed", "picodrive", + "pifba", + "pisnes", "pokemini", "ppsspp", + "ppsspp-1.5.4", "prboom", "prosystem", "puae", "puae2021", "px68k", + "quake3", "quasi88", "quicknes", + "reicast", "retro8", + "retroarch", + "rpix86", "scummvm", + "scummvm-sdl1", + "sdlpop", + "sdltrs", + "simcoupe", "smsplus_gx", + "smw", "snes9x", "snes9x2002", "snes9x2005", "snes9x2010", + "solarus", + "splitwolf", + "srb2", "stella", "stella2014", + "stratagus", + "supertux", "tgbdual", "theodore", + "ti99sim", + "ti99sim-sdl1", "tic80", "tyrquake", + "uae4all", + "uae4arm", + "uqm", "vba_next", "vecx", "vice", "virtualjaguar", + "vvvvvv", + "wolf4sdl", "x1", + "xm7", "xrick", - "yabause" + "xroar", + "yabause", + "yquake2", + "zesarux" ], "rpi3": [ "81", + "advmame", + "advmame-0.94", + "advmame-1.4", + "ags", + "alephone", + "amiberry", "atari800", + "basilisk", "beetle_lynx", "beetle_ngp", "beetle_pce", @@ -191,31 +352,60 @@ "bennugd", "bluemsx", "bsnes", + "cannonball", "caprice32", + "capricerpi", + "cdogs-sdl", + "cgenius", + "coolcv", + "daphne", + "darkplaces-quake", "desmume", "desmume2015", + "dgen", "dinothawr", "dirksimple", "dosbox", + "dosbox-sdl2", + "dosbox-staging", "dosbox_pure", + "drastic", + "dsda-doom", + "dxx-rebirth", + "eduke32", "ep128emu", "fbalpha2012", "fbneo", + "fbzx", "fceumm", "flycast", - "flycast_dev", "fmsx", "freechaf", "freeintv", + "frotz", "fuse", "gambatte", "geargrafx", "gearsystem", + "gemrb", "genesis_plus_gx", + "giana", + "gngeopi", "gpsp", "gw", + "gzdoom", "handy", "hatari", + "hypseus", + "ionfury", + "jumpnbump", + "jzintv", + "kodi", + "linapple", + "lincity-ng", + "love", + "love-0.10.2", + "lzdoom", "mame", "mame2000", "mame2003", @@ -223,55 +413,104 @@ "mame2010", "mame2015", "mame2016", + "mame4all", "mesen", "mess", "mess2016", "mgba", + "micropolis", + "minecraft", + "minivmac", "mrboom", "mupen64plus", "mupen64plus_next", + "mysticmine", "neocd", "nestopia", "np2kai", + "np2pi", "nxengine", "o2em", + "openblok", + "openbor", + "openmsx", + "openttd", + "opentyrian", "opera", + "oricutron", + "osmose", "parallel_n64", + "pcsx-rearmed", "pcsx_rearmed", "picodrive", + "pifba", + "pisnes", "pokemini", "ppsspp", + "ppsspp-1.5.4", "prboom", "prosystem", "puae", "puae2021", "px68k", + "quake3", "quasi88", "quicknes", + "reicast", "retro8", + "retroarch", + "rpix86", "scummvm", + "scummvm-sdl1", + "sdlpop", + "sdltrs", + "simcoupe", "smsplus_gx", + "smw", "snes9x", "snes9x2002", "snes9x2005", "snes9x2010", + "solarus", + "splitwolf", + "srb2", + "steamlink", "stella", "stella2014", + "stratagus", + "supermodel3", + "supertux", "tgbdual", "theodore", + "ti99sim", + "ti99sim-sdl1", "tic80", "tyrquake", + "uae4all", + "uae4arm", + "uqm", "vba_next", "vecx", "vice", "virtualjaguar", + "vvvvvv", + "wolf4sdl", "x1", + "xm7", "xrick", - "yabause" + "xroar", + "yabause", + "yquake2", + "zesarux" ], "rpi4": [ "81", + "advmame", + "ags", + "alephone", + "amiberry", "atari800", + "basilisk", "beetle_lynx", "beetle_ngp", "beetle_pce", @@ -284,31 +523,58 @@ "bennugd", "bluemsx", "bsnes", + "cannonball", "caprice32", + "capricerpi", + "cdogs-sdl", + "cgenius", + "daphne", + "darkplaces-quake", "desmume", "desmume2015", "dinothawr", "dirksimple", "dosbox", + "dosbox-sdl2", + "dosbox-staging", "dosbox_pure", + "drastic", + "dsda-doom", + "dxx-rebirth", + "eduke32", "ep128emu", "fbalpha2012", "fbneo", + "fbzx", "fceumm", "flycast", "flycast_dev", "fmsx", "freechaf", "freeintv", + "frotz", "fuse", "gambatte", "geargrafx", "gearsystem", + "gemrb", "genesis_plus_gx", "gpsp", "gw", + "gzdoom", "handy", "hatari", + "hypseus", + "ionfury", + "ioquake3", + "jumpnbump", + "jzintv", + "kodi", + "linapple", + "lincity-ng", + "love", + "love-0.10.2", + "lzdoom", "mame", "mame2000", "mame2003", @@ -320,15 +586,26 @@ "mess", "mess2016", "mgba", + "micropolis", + "minivmac", "mrboom", "mupen64plus", "mupen64plus_next", + "mysticmine", "neocd", "nestopia", "np2kai", + "np2pi", "nxengine", "o2em", + "openblok", + "openbor", + "openmsx", + "openttd", + "opentyrian", "opera", + "oricutron", + "osmose", "parallel_n64", "pcsx_rearmed", "picodrive", @@ -341,30 +618,58 @@ "px68k", "quasi88", "quicknes", + "redream", + "reicast", "retro8", + "retroarch", "scummvm", + "sdlpop", + "sdltrs", + "simcoupe", "smsplus_gx", + "smw", "snes9x", "snes9x2002", "snes9x2005", "snes9x2010", + "solarus", + "splitwolf", + "srb2", + "steamlink", "stella", "stella2014", + "supermodel3", + "supertux", "tgbdual", "theodore", + "ti99sim", + "ti99sim-sdl1", "tic80", "tyrquake", + "uae4arm", + "uqm", "vba_next", "vecx", "vice", "virtualjaguar", + "vvvvvv", + "wolf4sdl", "x1", "xrick", - "yabause" + "xroar", + "yabasanshiro", + "yabause", + "yquake2", + "zesarux" ], "rpi5": [ "81", + "advmame", + "ags", + "alephone", + "amiberry", "atari800", + "basilisk", "beetle_lynx", "beetle_ngp", "beetle_pce", @@ -377,31 +682,58 @@ "bennugd", "bluemsx", "bsnes", + "cannonball", "caprice32", + "capricerpi", + "cdogs-sdl", + "cgenius", + "daphne", + "darkplaces-quake", "desmume", "desmume2015", "dinothawr", "dirksimple", "dosbox", + "dosbox-sdl2", + "dosbox-staging", "dosbox_pure", + "drastic", + "dsda-doom", + "dxx-rebirth", + "eduke32", "ep128emu", "fbalpha2012", "fbneo", + "fbzx", "fceumm", "flycast", "flycast_dev", "fmsx", "freechaf", "freeintv", + "frotz", "fuse", "gambatte", "geargrafx", "gearsystem", + "gemrb", "genesis_plus_gx", "gpsp", "gw", + "gzdoom", "handy", "hatari", + "hypseus", + "ionfury", + "ioquake3", + "jumpnbump", + "jzintv", + "kodi", + "linapple", + "lincity-ng", + "love", + "love-0.10.2", + "lzdoom", "mame", "mame2000", "mame2003", @@ -413,15 +745,26 @@ "mess", "mess2016", "mgba", + "micropolis", + "minivmac", "mrboom", "mupen64plus", "mupen64plus_next", + "mysticmine", "neocd", "nestopia", "np2kai", + "np2pi", "nxengine", "o2em", + "openblok", + "openbor", + "openmsx", + "openttd", + "opentyrian", "opera", + "oricutron", + "osmose", "parallel_n64", "pcsx_rearmed", "picodrive", @@ -434,30 +777,60 @@ "px68k", "quasi88", "quicknes", + "redream", + "reicast", "retro8", + "retroarch", "scummvm", + "sdlpop", + "sdltrs", + "simcoupe", "smsplus_gx", + "smw", "snes9x", "snes9x2002", "snes9x2005", "snes9x2010", + "solarus", + "splitwolf", + "srb2", + "steamlink", "stella", "stella2014", + "supermodel3", + "supertux", "tgbdual", "theodore", + "ti99sim", + "ti99sim-sdl1", "tic80", "tyrquake", + "uae4arm", + "uqm", "vba_next", "vecx", "vice", "virtualjaguar", + "vvvvvv", + "wolf4sdl", "x1", "xrick", - "yabause" + "xroar", + "yabasanshiro", + "yabause", + "yquake2", + "zesarux" ], "x86": [ "81", + "advmame", + "advmame-0.94", + "advmame-1.4", + "ags", + "alephone", + "amiberry", "atari800", + "basilisk", "beetle_lynx", "beetle_ngp", "beetle_pce", @@ -471,32 +844,59 @@ "bennugd", "bluemsx", "bsnes", + "cannonball", "caprice32", + "capricerpi", + "cdogs-sdl", + "cgenius", + "darkplaces-quake", "desmume", "desmume2015", + "dgen", "dinothawr", "dirksimple", "dosbox", + "dosbox-sdl2", + "dosbox-staging", "dosbox_pure", + "dsda-doom", + "dxx-rebirth", + "eduke32", "ep128emu", "fbalpha2012", "fbneo", + "fbzx", "fceumm", "flycast", "flycast_dev", "fmsx", "freechaf", "freeintv", + "frotz", + "fs-uae", "fuse", "gambatte", "geargrafx", "gearsystem", + "gemrb", "genesis_plus_gx", "gpsp", "gw", + "gzdoom", "handy", "hatari", + "hypseus", + "ionfury", + "ioquake3", + "jumpnbump", + "jzintv", + "kodi", "kronos", + "linapple", + "lincity-ng", + "love", + "love-0.10.2", + "lzdoom", "mame", "mame2000", "mame2003", @@ -508,16 +908,27 @@ "mess", "mess2016", "mgba", + "micropolis", + "minivmac", "mrboom", "mupen64plus", "mupen64plus_next", + "mysticmine", "neocd", "nestopia", "np2kai", "nxengine", "o2em", + "openblok", + "openmsx", + "openpht", + "openttd", + "opentyrian", "opera", + "oricutron", + "osmose", "parallel_n64", + "pcsx2", "pcsx_rearmed", "picodrive", "pokemini", @@ -529,29 +940,57 @@ "px68k", "quasi88", "quicknes", + "reicast", "retro8", + "retroarch", "scummvm", + "sdlpop", + "sdltrs", + "simcoupe", "smsplus_gx", + "smw", "snes9x", "snes9x2005", "snes9x2010", + "solarus", + "splitwolf", + "srb2", "stella", "stella2014", + "stratagus", + "supermodel3", + "supertux", "tgbdual", "theodore", + "ti99sim", + "ti99sim-sdl1", "tic80", "tyrquake", + "uqm", "vba_next", "vecx", "vice", "virtualjaguar", + "vvvvvv", + "wolf4sdl", "x1", + "xm7", "xrick", - "yabause" + "xroar", + "yabause", + "yquake2", + "zesarux" ], "x86_64": [ "81", + "advmame", + "advmame-0.94", + "advmame-1.4", + "ags", + "alephone", + "amiberry", "atari800", + "basilisk", "beetle_lynx", "beetle_ngp", "beetle_pce", @@ -565,32 +1004,60 @@ "bennugd", "bluemsx", "bsnes", + "cannonball", "caprice32", + "capricerpi", + "cdogs-sdl", + "cgenius", + "darkplaces-quake", "desmume", "desmume2015", + "dgen", "dinothawr", "dirksimple", + "dolphin", "dosbox", + "dosbox-sdl2", + "dosbox-staging", "dosbox_pure", + "dsda-doom", + "dxx-rebirth", + "eduke32", "ep128emu", "fbalpha2012", "fbneo", + "fbzx", "fceumm", "flycast", "flycast_dev", "fmsx", "freechaf", "freeintv", + "frotz", + "fs-uae", "fuse", "gambatte", "geargrafx", "gearsystem", + "gemrb", "genesis_plus_gx", "gpsp", "gw", + "gzdoom", "handy", "hatari", + "hypseus", + "ionfury", + "ioquake3", + "jumpnbump", + "jzintv", + "kodi", "kronos", + "linapple", + "lincity-ng", + "love", + "love-0.10.2", + "lzdoom", "mame", "mame2000", "mame2003", @@ -602,16 +1069,27 @@ "mess", "mess2016", "mgba", + "micropolis", + "minivmac", "mrboom", "mupen64plus", "mupen64plus_next", + "mysticmine", "neocd", "nestopia", "np2kai", "nxengine", "o2em", + "openblok", + "openmsx", + "openpht", + "openttd", + "opentyrian", "opera", + "oricutron", + "osmose", "parallel_n64", + "pcsx2", "pcsx_rearmed", "picodrive", "pokemini", @@ -623,24 +1101,45 @@ "px68k", "quasi88", "quicknes", + "reicast", "retro8", + "retroarch", "scummvm", + "sdlpop", + "sdltrs", + "simcoupe", "smsplus_gx", + "smw", "snes9x", "snes9x2005", "snes9x2010", + "solarus", + "splitwolf", + "srb2", "stella", "stella2014", + "stratagus", + "supermodel3", + "supertux", "tgbdual", "theodore", + "ti99sim", + "ti99sim-sdl1", "tic80", "tyrquake", + "uqm", "vba_next", "vecx", "vice", "virtualjaguar", + "vvvvvv", + "wolf4sdl", "x1", + "xm7", "xrick", - "yabause" + "xroar", + "yabause", + "yquake2", + "zesarux" ] } diff --git a/platforms/targets/retropie.yml b/platforms/targets/retropie.yml index 3bbe6f67..8abc16ac 100644 --- a/platforms/targets/retropie.yml +++ b/platforms/targets/retropie.yml @@ -1,6 +1,6 @@ platform: retropie source: https://api.github.com/repos/RetroPie/RetroPie-Setup/contents/scriptmodules -scraped_at: '2026-10-06T03:21:52Z' +scraped_at: '2026-10-06T03:33:14Z' targets: rpi1: architecture: armv6 @@ -13,7 +13,6 @@ targets: - alephone - amiberry - atari800 - - atari800 - basilisk - beetle_lynx - beetle_ngp @@ -38,7 +37,6 @@ targets: - dinothawr - dirksimple - dosbox - - dosbox - dosbox-sdl2 - dosbox-staging - dosbox_pure @@ -55,7 +53,6 @@ targets: - freeintv - frotz - fuse - - fuse - gambatte - geargrafx - gearsystem @@ -64,11 +61,9 @@ targets: - giana - gngeopi - gpsp - - gpsp - gw - handy - hatari - - hatari - hypseus - ionfury - jumpnbump @@ -95,7 +90,6 @@ targets: - minivmac - mrboom - mupen64plus - - mupen64plus - mupen64plus_next - mysticmine - neocd @@ -120,23 +114,19 @@ targets: - pisnes - pokemini - ppsspp - - ppsspp - ppsspp-1.5.4 - prboom - prosystem - puae - puae2021 - px68k - - px68k - quake3 - quasi88 - - quasi88 - quicknes - retro8 - retroarch - rpix86 - scummvm - - scummvm - scummvm-sdl1 - sdlpop - sdltrs @@ -144,7 +134,6 @@ targets: - smsplus_gx - smw - snes9x - - snes9x - snes9x2002 - snes9x2005 - snes9x2010 @@ -152,7 +141,6 @@ targets: - splitwolf - srb2 - stella - - stella - stella2014 - stratagus - superflappybirds @@ -163,20 +151,16 @@ targets: - ti99sim-sdl1 - tic80 - tyrquake - - tyrquake - uae4all - uae4arm - - uae4arm - uqm - vecx - vice - - vice - vvvvvv - wolf4sdl - x1 - xm7 - xrick - - xrick - xroar - yquake2 - zesarux @@ -191,7 +175,6 @@ targets: - alephone - amiberry - atari800 - - atari800 - basilisk - beetle_lynx - beetle_ngp @@ -219,7 +202,6 @@ targets: - dinothawr - dirksimple - dosbox - - dosbox - dosbox-sdl2 - dosbox-staging - dosbox_pure @@ -238,7 +220,6 @@ targets: - freeintv - frotz - fuse - - fuse - gambatte - geargrafx - gearsystem @@ -247,12 +228,10 @@ targets: - giana - gngeopi - gpsp - - gpsp - gw - gzdoom - handy - hatari - - hatari - hypseus - ionfury - jumpnbump @@ -264,7 +243,6 @@ targets: - love-0.10.2 - lzdoom - mame - - mame - mame2000 - mame2003 - mame2003_plus @@ -281,7 +259,6 @@ targets: - minivmac - mrboom - mupen64plus - - mupen64plus - mupen64plus_next - mysticmine - neocd @@ -306,24 +283,20 @@ targets: - pisnes - pokemini - ppsspp - - ppsspp - ppsspp-1.5.4 - prboom - prosystem - puae - puae2021 - px68k - - px68k - quake3 - quasi88 - - quasi88 - quicknes - reicast - retro8 - retroarch - rpix86 - scummvm - - scummvm - scummvm-sdl1 - sdlpop - sdltrs @@ -331,7 +304,6 @@ targets: - smsplus_gx - smw - snes9x - - snes9x - snes9x2002 - snes9x2005 - snes9x2010 @@ -339,7 +311,6 @@ targets: - splitwolf - srb2 - stella - - stella - stella2014 - stratagus - superflappybirds @@ -350,22 +321,18 @@ targets: - ti99sim-sdl1 - tic80 - tyrquake - - tyrquake - uae4all - uae4arm - - uae4arm - uqm - vba_next - vecx - vice - - vice - virtualjaguar - vvvvvv - wolf4sdl - x1 - xm7 - xrick - - xrick - xroar - yabause - yquake2 @@ -381,7 +348,6 @@ targets: - alephone - amiberry - atari800 - - atari800 - basilisk - beetle_lynx - beetle_ngp @@ -409,7 +375,6 @@ targets: - dinothawr - dirksimple - dosbox - - dosbox - dosbox-sdl2 - dosbox-staging - dosbox_pure @@ -428,7 +393,6 @@ targets: - freeintv - frotz - fuse - - fuse - gambatte - geargrafx - gearsystem @@ -437,12 +401,10 @@ targets: - giana - gngeopi - gpsp - - gpsp - gw - gzdoom - handy - hatari - - hatari - hypseus - ionfury - jumpnbump @@ -454,7 +416,6 @@ targets: - love-0.10.2 - lzdoom - mame - - mame - mame2000 - mame2003 - mame2003_plus @@ -471,7 +432,6 @@ targets: - minivmac - mrboom - mupen64plus - - mupen64plus - mupen64plus_next - mysticmine - neocd @@ -496,24 +456,20 @@ targets: - pisnes - pokemini - ppsspp - - ppsspp - ppsspp-1.5.4 - prboom - prosystem - puae - puae2021 - px68k - - px68k - quake3 - quasi88 - - quasi88 - quicknes - reicast - retro8 - retroarch - rpix86 - scummvm - - scummvm - scummvm-sdl1 - sdlpop - sdltrs @@ -521,7 +477,6 @@ targets: - smsplus_gx - smw - snes9x - - snes9x - snes9x2002 - snes9x2005 - snes9x2010 @@ -530,7 +485,6 @@ targets: - srb2 - steamlink - stella - - stella - stella2014 - stratagus - superflappybirds @@ -542,22 +496,18 @@ targets: - ti99sim-sdl1 - tic80 - tyrquake - - tyrquake - uae4all - uae4arm - - uae4arm - uqm - vba_next - vecx - vice - - vice - virtualjaguar - vvvvvv - wolf4sdl - x1 - xm7 - xrick - - xrick - xroar - yabause - yquake2 @@ -571,7 +521,6 @@ targets: - alephone - amiberry - atari800 - - atari800 - basilisk - beetle_lynx - beetle_ngp @@ -597,7 +546,6 @@ targets: - dinothawr - dirksimple - dosbox - - dosbox - dosbox-sdl2 - dosbox-staging - dosbox_pure @@ -611,14 +559,12 @@ targets: - fbzx - fceumm - flycast - - flycast - flycast_dev - fmsx - freechaf - freeintv - frotz - fuse - - fuse - gambatte - geargrafx - gearsystem @@ -629,7 +575,6 @@ targets: - gzdoom - handy - hatari - - hatari - hypseus - ionfury - ioquake3 @@ -642,7 +587,6 @@ targets: - love-0.10.2 - lzdoom - mame - - mame - mame2000 - mame2003 - mame2003_plus @@ -657,7 +601,6 @@ targets: - minivmac - mrboom - mupen64plus - - mupen64plus - mupen64plus_next - mysticmine - neocd @@ -679,14 +622,11 @@ targets: - picodrive - pokemini - ppsspp - - ppsspp - prboom - prosystem - puae - puae2021 - px68k - - px68k - - quasi88 - quasi88 - quicknes - redream @@ -694,7 +634,6 @@ targets: - retro8 - retroarch - scummvm - - scummvm - sdlpop - sdltrs - simcoupe @@ -709,7 +648,6 @@ targets: - srb2 - steamlink - stella - - stella - stella2014 - superflappybirds - supermodel3 @@ -720,20 +658,16 @@ targets: - ti99sim-sdl1 - tic80 - tyrquake - - tyrquake - - uae4arm - uae4arm - uqm - vba_next - vecx - vice - - vice - virtualjaguar - vvvvvv - wolf4sdl - x1 - xrick - - xrick - xroar - yabasanshiro - yabause @@ -748,7 +682,6 @@ targets: - alephone - amiberry - atari800 - - atari800 - basilisk - beetle_lynx - beetle_ngp @@ -774,7 +707,6 @@ targets: - dinothawr - dirksimple - dosbox - - dosbox - dosbox-sdl2 - dosbox-staging - dosbox_pure @@ -788,14 +720,12 @@ targets: - fbzx - fceumm - flycast - - flycast - flycast_dev - fmsx - freechaf - freeintv - frotz - fuse - - fuse - gambatte - geargrafx - gearsystem @@ -806,7 +736,6 @@ targets: - gzdoom - handy - hatari - - hatari - hypseus - ionfury - ioquake3 @@ -819,7 +748,6 @@ targets: - love-0.10.2 - lzdoom - mame - - mame - mame2000 - mame2003 - mame2003_plus @@ -834,7 +762,6 @@ targets: - minivmac - mrboom - mupen64plus - - mupen64plus - mupen64plus_next - mysticmine - neocd @@ -856,14 +783,11 @@ targets: - picodrive - pokemini - ppsspp - - ppsspp - prboom - prosystem - puae - puae2021 - px68k - - px68k - - quasi88 - quasi88 - quicknes - redream @@ -871,7 +795,6 @@ targets: - retro8 - retroarch - scummvm - - scummvm - sdlpop - sdltrs - simcoupe @@ -886,7 +809,6 @@ targets: - srb2 - steamlink - stella - - stella - stella2014 - superflappybirds - supermodel3 @@ -897,19 +819,16 @@ targets: - ti99sim-sdl1 - tic80 - tyrquake - - tyrquake - uae4arm - uqm - vba_next - vecx - vice - - vice - virtualjaguar - vvvvvv - wolf4sdl - x1 - xrick - - xrick - xroar - yabasanshiro - yabause @@ -926,7 +845,6 @@ targets: - alephone - amiberry - atari800 - - atari800 - basilisk - beetle_lynx - beetle_ngp @@ -953,7 +871,6 @@ targets: - dinothawr - dirksimple - dosbox - - dosbox - dosbox-sdl2 - dosbox-staging - dosbox_pure @@ -966,7 +883,6 @@ targets: - fbzx - fceumm - flycast - - flycast - flycast_dev - fmsx - freechaf @@ -974,7 +890,6 @@ targets: - frotz - fs-uae - fuse - - fuse - gambatte - geargrafx - gearsystem @@ -985,7 +900,6 @@ targets: - gzdoom - handy - hatari - - hatari - hypseus - ionfury - ioquake3 @@ -999,7 +913,6 @@ targets: - love-0.10.2 - lzdoom - mame - - mame - mame2000 - mame2003 - mame2003_plus @@ -1014,7 +927,6 @@ targets: - minivmac - mrboom - mupen64plus - - mupen64plus - mupen64plus_next - mysticmine - neocd @@ -1036,21 +948,17 @@ targets: - picodrive - pokemini - ppsspp - - ppsspp - prboom - prosystem - puae - puae2021 - px68k - - px68k - - quasi88 - quasi88 - quicknes - reicast - retro8 - retroarch - scummvm - - scummvm - sdlpop - sdltrs - simcoupe @@ -1063,7 +971,6 @@ targets: - splitwolf - srb2 - stella - - stella - stella2014 - stratagus - superflappybirds @@ -1075,19 +982,16 @@ targets: - ti99sim-sdl1 - tic80 - tyrquake - - tyrquake - uqm - vba_next - vecx - vice - - vice - virtualjaguar - vvvvvv - wolf4sdl - x1 - xm7 - xrick - - xrick - xroar - yabause - yquake2 @@ -1103,7 +1007,6 @@ targets: - alephone - amiberry - atari800 - - atari800 - basilisk - beetle_lynx - beetle_ngp @@ -1130,8 +1033,6 @@ targets: - dinothawr - dirksimple - dolphin - - dolphin - - dosbox - dosbox - dosbox-sdl2 - dosbox-staging @@ -1145,7 +1046,6 @@ targets: - fbzx - fceumm - flycast - - flycast - flycast_dev - fmsx - freechaf @@ -1153,7 +1053,6 @@ targets: - frotz - fs-uae - fuse - - fuse - gambatte - geargrafx - gearsystem @@ -1164,7 +1063,6 @@ targets: - gzdoom - handy - hatari - - hatari - hypseus - ionfury - ioquake3 @@ -1178,7 +1076,6 @@ targets: - love-0.10.2 - lzdoom - mame - - mame - mame2000 - mame2003 - mame2003_plus @@ -1193,7 +1090,6 @@ targets: - minivmac - mrboom - mupen64plus - - mupen64plus - mupen64plus_next - mysticmine - neocd @@ -1215,21 +1111,17 @@ targets: - picodrive - pokemini - ppsspp - - ppsspp - prboom - prosystem - puae - puae2021 - px68k - - px68k - - quasi88 - quasi88 - quicknes - reicast - retro8 - retroarch - scummvm - - scummvm - sdlpop - sdltrs - simcoupe @@ -1242,7 +1134,6 @@ targets: - splitwolf - srb2 - stella - - stella - stella2014 - stratagus - superflappybirds @@ -1254,19 +1145,16 @@ targets: - ti99sim-sdl1 - tic80 - tyrquake - - tyrquake - uqm - vba_next - vecx - vice - - vice - virtualjaguar - vvvvvv - wolf4sdl - x1 - xm7 - xrick - - xrick - xroar - yabause - yquake2 diff --git a/scripts/scraper/targets/retropie_targets_scraper.py b/scripts/scraper/targets/retropie_targets_scraper.py index f7e0dae8..06fb539b 100644 --- a/scripts/scraper/targets/retropie_targets_scraper.py +++ b/scripts/scraper/targets/retropie_targets_scraper.py @@ -137,8 +137,9 @@ class Scraper(BaseTargetScraper): print(" listing RetroPie scriptmodules...", file=sys.stderr) filenames = self._list_scriptmodules() - # {platform: [core_id, ...]} - platform_cores: dict[str, list[str]] = {p: [] for p in PLATFORM_FLAGS} + # A libretro and a standalone package can share a name (lr-dosbox, + # dosbox): a core list names each once. + platform_cores: dict[str, set[str]] = {p: set() for p in PLATFORM_FLAGS} for filename in filenames: content = self._fetch_module(filename) @@ -154,7 +155,7 @@ class Scraper(BaseTargetScraper): core_name = core_name[3:].replace("-", "_") for platform in PLATFORM_FLAGS: if _is_available(flags, platform): - platform_cores[platform].append(core_name) + platform_cores[platform].add(core_name) print(f" parsed {len(filenames)} scriptmodules", file=sys.stderr) diff --git a/tests/test_target_scrapers.py b/tests/test_target_scrapers.py index ddf35574..4643b5d8 100644 --- a/tests/test_target_scrapers.py +++ b/tests/test_target_scrapers.py @@ -88,13 +88,15 @@ class RetroPieModuleFlags(unittest.TestCase): def test_standalone_sections_are_listed_and_keep_their_id(self): listings = { - "emulators": [{"name": "dosbox-staging.sh"}], - "libretrocores": [{"name": "lr-beetle-psx.sh"}], + "emulators": [{"name": "dosbox-staging.sh"}, {"name": "dosbox.sh"}], + "libretrocores": [{"name": "lr-beetle-psx.sh"}, {"name": "lr-dosbox.sh"}], "ports": [{"name": "openbor.sh"}], } modules = { "emulators/dosbox-staging.sh": 'rp_module_id="dosbox-staging"\nrp_module_flags="sdl2"', "libretrocores/lr-beetle-psx.sh": 'rp_module_id="lr-beetle-psx"', + "libretrocores/lr-dosbox.sh": 'rp_module_id="lr-dosbox"', + "emulators/dosbox.sh": 'rp_module_id="dosbox"\nrp_module_flags="sdl1 !mali"', "ports/openbor.sh": 'rp_module_id="openbor"\nrp_module_flags="sdl1 !mali !x11"', } @@ -108,8 +110,10 @@ class RetroPieModuleFlags(unittest.TestCase): with mock.patch.object(retropie_targets_scraper, "_fetch", fake_fetch): targets = retropie_targets_scraper.Scraper().fetch_targets()["targets"] - self.assertEqual(targets["rpi4"]["cores"], ["beetle_psx", "dosbox-staging", "openbor"]) - self.assertEqual(targets["x86_64"]["cores"], ["beetle_psx", "dosbox-staging"]) + self.assertEqual( + targets["rpi4"]["cores"], ["beetle_psx", "dosbox", "dosbox-staging", "openbor"] + ) + self.assertEqual(targets["x86_64"]["cores"], ["beetle_psx", "dosbox", "dosbox-staging"]) if __name__ == "__main__":