diff --git a/install/targets/rocknix.json b/install/targets/rocknix.json index d6e122564..ad091575a 100644 --- a/install/targets/rocknix.json +++ b/install/targets/rocknix.json @@ -1,6 +1,7 @@ { "amd64": [ "81", + "DoubleCherryGB", "a5200", "amiberry", "arduous", @@ -27,11 +28,12 @@ "bk", "bluemsx", "boom3", + "boom3_xp", "bsnes", "bsnes2014_accuracy", "bsnes2014_balanced", "bsnes2014_performance", - "bsnes_hd", + "bsnes_hd_beta", "bsnes_mercury_accuracy", "bsnes_mercury_balanced", "bsnes_mercury_performance", @@ -44,7 +46,6 @@ "dolphin-sa", "dosbox_core", "dosbox_pure", - "doublecherrygb", "duckstation", "duckstation-sa", "easyrpg", @@ -58,7 +59,6 @@ "flycast", "flycast-sa", "fmsx", - "freechaf", "freeintv", "freej2me", "fuse", @@ -88,9 +88,9 @@ "mednafen", "melonds", "melonds-sa", - "melonds_ds", + "melondsds", "mesen", - "mesen_s", + "mesen-s", "mgba", "minivmac", "mojozork", @@ -98,7 +98,7 @@ "mu", "mupen64plus", "mupen64plus-sa", - "mupen64plus_nx", + "mupen64plus_next", "nanoboyadvance", "nanoboyadvance-sa", "neocd", @@ -130,7 +130,7 @@ "scummvm-sa", "skyemu", "skyemu-sa", - "smsplus_gx", + "smsplus", "snes9x", "snes9x2002", "snes9x2005_plus", @@ -150,6 +150,11 @@ "vecx", "vice", "vice-sa", + "vice_x128", + "vice_x64", + "vice_xpet", + "vice_xplus4", + "vice_xvic", "vircon32", "virtualjaguar", "vita3k", @@ -157,14 +162,15 @@ "vitaquake2", "vitaquake3", "wasm4", + "x1", "xemu", "xemu-sa", - "xmil", "yabasanshiro", "yabasanshiro-sa" ], "h700": [ "81", + "DoubleCherryGB", "a5200", "amiberry", "arduous", @@ -194,7 +200,6 @@ "desmume", "dosbox_core", "dosbox_pure", - "doublecherrygb", "drastic", "drastic-sa", "dsperate", @@ -213,7 +218,6 @@ "flycast-sa", "flycast2021", "fmsx", - "freechaf", "freeintv", "freej2me", "fuse", @@ -241,9 +245,9 @@ "mame2015", "mednafen", "melonds", - "melonds_ds", + "melondsds", "mesen", - "mesen_s", + "mesen-s", "mgba", "minivmac", "mojozork", @@ -251,7 +255,7 @@ "mu", "mupen64plus", "mupen64plus-sa", - "mupen64plus_nx", + "mupen64plus_next", "neocd", "nestopia", "np2kai", @@ -260,6 +264,7 @@ "opera", "parallel_n64", "pcsx_rearmed", + "pcsx_rearmed32", "pico-8", "picodrive", "pokemini", @@ -280,7 +285,7 @@ "scummvm", "scummvm-sa", "skyemu", - "smsplus_gx", + "smsplus", "snes9x", "snes9x2002", "snes9x2005_plus", @@ -301,16 +306,23 @@ "vecx", "vice", "vice-sa", + "vice_x128", + "vice_x64", + "vice_xpet", + "vice_xplus4", + "vice_xvic", "vircon32", "virtualjaguar", "vitaquake2", "wasm4", - "xmil", + "x1", + "yabadabadoo", "yabasanshiro", "yabasanshiro-sa" ], "pc": [ "81", + "DoubleCherryGB", "a5200", "amiberry", "arduous", @@ -337,11 +349,12 @@ "bk", "bluemsx", "boom3", + "boom3_xp", "bsnes", "bsnes2014_accuracy", "bsnes2014_balanced", "bsnes2014_performance", - "bsnes_hd", + "bsnes_hd_beta", "bsnes_mercury_accuracy", "bsnes_mercury_balanced", "bsnes_mercury_performance", @@ -354,7 +367,6 @@ "dolphin-sa", "dosbox_core", "dosbox_pure", - "doublecherrygb", "duckstation", "duckstation-sa", "easyrpg", @@ -368,7 +380,6 @@ "flycast", "flycast-sa", "fmsx", - "freechaf", "freeintv", "freej2me", "fuse", @@ -398,9 +409,9 @@ "mednafen", "melonds", "melonds-sa", - "melonds_ds", + "melondsds", "mesen", - "mesen_s", + "mesen-s", "mgba", "minivmac", "mojozork", @@ -408,7 +419,7 @@ "mu", "mupen64plus", "mupen64plus-sa", - "mupen64plus_nx", + "mupen64plus_next", "nanoboyadvance", "nanoboyadvance-sa", "neocd", @@ -440,7 +451,7 @@ "scummvm-sa", "skyemu", "skyemu-sa", - "smsplus_gx", + "smsplus", "snes9x", "snes9x2002", "snes9x2005_plus", @@ -460,6 +471,11 @@ "vecx", "vice", "vice-sa", + "vice_x128", + "vice_x64", + "vice_xpet", + "vice_xplus4", + "vice_xvic", "vircon32", "virtualjaguar", "vita3k", @@ -467,14 +483,15 @@ "vitaquake2", "vitaquake3", "wasm4", + "x1", "xemu", "xemu-sa", - "xmil", "yabasanshiro", "yabasanshiro-sa" ], "rk3326": [ "81", + "DoubleCherryGB", "a5200", "amiberry", "arduous", @@ -504,7 +521,6 @@ "desmume", "dosbox_core", "dosbox_pure", - "doublecherrygb", "drastic", "drastic-sa", "dsperate", @@ -523,7 +539,6 @@ "flycast-sa", "flycast2021", "fmsx", - "freechaf", "freeintv", "freej2me", "fuse", @@ -551,9 +566,9 @@ "mame2015", "mednafen", "melonds", - "melonds_ds", + "melondsds", "mesen", - "mesen_s", + "mesen-s", "mgba", "minivmac", "mojozork", @@ -561,7 +576,7 @@ "mu", "mupen64plus", "mupen64plus-sa", - "mupen64plus_nx", + "mupen64plus_next", "neocd", "nestopia", "np2kai", @@ -570,6 +585,7 @@ "opera", "parallel_n64", "pcsx_rearmed", + "pcsx_rearmed32", "pico-8", "picodrive", "pokemini", @@ -590,7 +606,7 @@ "scummvm", "scummvm-sa", "skyemu", - "smsplus_gx", + "smsplus", "snes9x", "snes9x2002", "snes9x2005_plus", @@ -611,19 +627,24 @@ "vecx", "vice", "vice-sa", + "vice_x128", + "vice_x64", + "vice_xpet", + "vice_xplus4", + "vice_xvic", "vircon32", "virtualjaguar", "vitaquake2", "wasm4", - "xmil", + "x1", + "yabadabadoo", "yabasanshiro", "yabasanshiro-sa" ], "rk3399": [ "81", + "DoubleCherryGB", "a5200", - "aethersx2", - "aethersx2-sa", "amiberry", "arduous", "armsx2", @@ -647,7 +668,7 @@ "bsnes2014_accuracy", "bsnes2014_balanced", "bsnes2014_performance", - "bsnes_hd", + "bsnes_hd_beta", "bsnes_mercury_accuracy", "bsnes_mercury_balanced", "bsnes_mercury_performance", @@ -659,7 +680,6 @@ "dolphin-sa", "dosbox_core", "dosbox_pure", - "doublecherrygb", "drastic", "drastic-sa", "dsperate", @@ -678,7 +698,6 @@ "flycast-sa", "flycast2021", "fmsx", - "freechaf", "freeintv", "freej2me", "fuse", @@ -707,9 +726,9 @@ "mednafen", "melonds", "melonds-sa", - "melonds_ds", + "melondsds", "mesen", - "mesen_s", + "mesen-s", "mgba", "minivmac", "mojozork", @@ -717,7 +736,7 @@ "mu", "mupen64plus", "mupen64plus-sa", - "mupen64plus_nx", + "mupen64plus_next", "nanoboyadvance", "nanoboyadvance-sa", "neocd", @@ -728,6 +747,7 @@ "opera", "parallel_n64", "pcsx_rearmed", + "pcsx_rearmed32", "pico-8", "picodrive", "pokemini", @@ -748,7 +768,7 @@ "scummvm", "scummvm-sa", "skyemu", - "smsplus_gx", + "smsplus", "snes9x", "snes9x2002", "snes9x2005_plus", @@ -769,19 +789,24 @@ "vecx", "vice", "vice-sa", + "vice_x128", + "vice_x64", + "vice_xpet", + "vice_xplus4", + "vice_xvic", "vircon32", "virtualjaguar", "vitaquake2", "wasm4", - "xmil", + "x1", + "yabadabadoo", "yabasanshiro", "yabasanshiro-sa" ], "rk3566": [ "81", + "DoubleCherryGB", "a5200", - "aethersx2", - "aethersx2-sa", "amiberry", "arduous", "armsx2", @@ -816,7 +841,6 @@ "dolphin-sa", "dosbox_core", "dosbox_pure", - "doublecherrygb", "drastic", "drastic-sa", "dsperate", @@ -835,7 +859,6 @@ "flycast-sa", "flycast2021", "fmsx", - "freechaf", "freeintv", "freej2me", "fuse", @@ -864,9 +887,9 @@ "mednafen", "melonds", "melonds-sa", - "melonds_ds", + "melondsds", "mesen", - "mesen_s", + "mesen-s", "mgba", "minivmac", "mojozork", @@ -874,7 +897,7 @@ "mu", "mupen64plus", "mupen64plus-sa", - "mupen64plus_nx", + "mupen64plus_next", "neocd", "nestopia", "np2kai", @@ -883,6 +906,7 @@ "opera", "parallel_n64", "pcsx_rearmed", + "pcsx_rearmed32", "pico-8", "picodrive", "pokemini", @@ -903,7 +927,7 @@ "scummvm", "scummvm-sa", "skyemu", - "smsplus_gx", + "smsplus", "snes9x", "snes9x2002", "snes9x2005_plus", @@ -924,21 +948,26 @@ "vecx", "vice", "vice-sa", + "vice_x128", + "vice_x64", + "vice_xpet", + "vice_xplus4", + "vice_xvic", "vircon32", "virtualjaguar", "vita3k", "vita3k-sa", "vitaquake2", "wasm4", - "xmil", + "x1", + "yabadabadoo", "yabasanshiro", "yabasanshiro-sa" ], "rk3576": [ "81", + "DoubleCherryGB", "a5200", - "aethersx2", - "aethersx2-sa", "amiberry", "arduous", "armsx2", @@ -973,7 +1002,6 @@ "dolphin-sa", "dosbox_core", "dosbox_pure", - "doublecherrygb", "drastic", "drastic-sa", "dsperate", @@ -992,7 +1020,6 @@ "flycast-sa", "flycast2021", "fmsx", - "freechaf", "freeintv", "freej2me", "fuse", @@ -1021,9 +1048,9 @@ "mednafen", "melonds", "melonds-sa", - "melonds_ds", + "melondsds", "mesen", - "mesen_s", + "mesen-s", "mgba", "minivmac", "mojozork", @@ -1031,7 +1058,7 @@ "mu", "mupen64plus", "mupen64plus-sa", - "mupen64plus_nx", + "mupen64plus_next", "neocd", "nestopia", "np2kai", @@ -1040,6 +1067,7 @@ "opera", "parallel_n64", "pcsx_rearmed", + "pcsx_rearmed32", "pico-8", "picodrive", "pokemini", @@ -1060,7 +1088,7 @@ "scummvm", "scummvm-sa", "skyemu", - "smsplus_gx", + "smsplus", "snes9x", "snes9x2002", "snes9x2005_plus", @@ -1081,21 +1109,26 @@ "vecx", "vice", "vice-sa", + "vice_x128", + "vice_x64", + "vice_xpet", + "vice_xplus4", + "vice_xvic", "vircon32", "virtualjaguar", "vita3k", "vita3k-sa", "vitaquake2", "wasm4", - "xmil", + "x1", + "yabadabadoo", "yabasanshiro", "yabasanshiro-sa" ], "rk3588": [ "81", + "DoubleCherryGB", "a5200", - "aethersx2", - "aethersx2-sa", "amiberry", "arduous", "armsx2", @@ -1122,7 +1155,7 @@ "bsnes2014_accuracy", "bsnes2014_balanced", "bsnes2014_performance", - "bsnes_hd", + "bsnes_hd_beta", "bsnes_mercury_accuracy", "bsnes_mercury_balanced", "bsnes_mercury_performance", @@ -1134,7 +1167,6 @@ "dolphin-sa", "dosbox_core", "dosbox_pure", - "doublecherrygb", "drastic", "drastic-sa", "dsperate", @@ -1153,7 +1185,6 @@ "flycast-sa", "flycast2021", "fmsx", - "freechaf", "freeintv", "freej2me", "fuse", @@ -1182,9 +1213,9 @@ "mednafen", "melonds", "melonds-sa", - "melonds_ds", + "melondsds", "mesen", - "mesen_s", + "mesen-s", "mgba", "minivmac", "mojozork", @@ -1192,7 +1223,7 @@ "mu", "mupen64plus", "mupen64plus-sa", - "mupen64plus_nx", + "mupen64plus_next", "neocd", "nestopia", "np2kai", @@ -1201,6 +1232,7 @@ "opera", "parallel_n64", "pcsx_rearmed", + "pcsx_rearmed32", "pico-8", "picodrive", "pokemini", @@ -1221,7 +1253,7 @@ "scummvm", "scummvm-sa", "skyemu", - "smsplus_gx", + "smsplus", "snes9x", "snes9x2002", "snes9x2005_plus", @@ -1244,21 +1276,26 @@ "vecx", "vice", "vice-sa", + "vice_x128", + "vice_x64", + "vice_xpet", + "vice_xplus4", + "vice_xvic", "vircon32", "virtualjaguar", "vita3k", "vita3k-sa", "vitaquake2", "wasm4", - "xmil", + "x1", + "yabadabadoo", "yabasanshiro", "yabasanshiro-sa" ], "s922x": [ "81", + "DoubleCherryGB", "a5200", - "aethersx2", - "aethersx2-sa", "amiberry", "arduous", "armsx2", @@ -1287,7 +1324,7 @@ "bsnes2014_accuracy", "bsnes2014_balanced", "bsnes2014_performance", - "bsnes_hd", + "bsnes_hd_beta", "bsnes_mercury_accuracy", "bsnes_mercury_balanced", "bsnes_mercury_performance", @@ -1298,7 +1335,6 @@ "dolphin-sa", "dosbox_core", "dosbox_pure", - "doublecherrygb", "drastic", "drastic-sa", "dsperate", @@ -1317,7 +1353,6 @@ "flycast-sa", "flycast2021", "fmsx", - "freechaf", "freeintv", "freej2me", "fuse", @@ -1344,9 +1379,9 @@ "mame2015", "melonds", "melonds-sa", - "melonds_ds", + "melondsds", "mesen", - "mesen_s", + "mesen-s", "mgba", "minivmac", "mojozork", @@ -1354,7 +1389,7 @@ "mu", "mupen64plus", "mupen64plus-sa", - "mupen64plus_nx", + "mupen64plus_next", "neocd", "nestopia", "np2kai", @@ -1363,6 +1398,7 @@ "opera", "parallel_n64", "pcsx_rearmed", + "pcsx_rearmed32", "pico-8", "picodrive", "pokemini", @@ -1383,7 +1419,7 @@ "scummvm", "scummvm-sa", "skyemu", - "smsplus_gx", + "smsplus", "snes9x", "snes9x2002", "snes9x2005_plus", @@ -1404,21 +1440,203 @@ "vecx", "vice", "vice-sa", + "vice_x128", + "vice_x64", + "vice_xpet", + "vice_xplus4", + "vice_xvic", "vircon32", "virtualjaguar", "vita3k", "vita3k-sa", "vitaquake2", "wasm4", - "xmil", + "x1", + "yabasanshiro", + "yabasanshiro-sa" + ], + "sdm845": [ + "81", + "DoubleCherryGB", + "a5200", + "amiberry", + "arduous", + "armsx2", + "armsx2-sa", + "atari800", + "azahar", + "azahar-sa", + "b2", + "beetle_gba", + "beetle_lynx", + "beetle_ngp", + "beetle_pce", + "beetle_pce_fast", + "beetle_pcfx", + "beetle_psx", + "beetle_saturn", + "beetle_supafaust", + "beetle_supergrafx", + "beetle_vb", + "beetle_wswan", + "bigpemu", + "bigpemu-sa", + "bk", + "bluemsx", + "bsnes", + "bsnes2014_accuracy", + "bsnes2014_balanced", + "bsnes2014_performance", + "bsnes_hd_beta", + "bsnes_mercury_accuracy", + "bsnes_mercury_balanced", + "bsnes_mercury_performance", + "cap32", + "cemu", + "cemu-sa", + "crocods", + "daedalusx64", + "daedalusx64-sa", + "daphne", + "desmume", + "dolphin", + "dolphin-sa", + "dosbox_core", + "dosbox_pure", + "dsperate", + "dsperate-sa", + "duckstation", + "duckstation-sa", + "easyrpg", + "ecwolf", + "emuscv", + "fake08", + "fbalpha2012", + "fbalpha2019", + "fbneo", + "fceumm", + "flycast", + "flycast-sa", + "flycast2021", + "fmsx", + "freeintv", + "freej2me", + "fuse", + "gambatte", + "gearboy", + "gearcoleco", + "geargrafx", + "gearlynx", + "gearsystem", + "genesis_plus_gx", + "genesis_plus_gx_wide", + "geolith", + "gpsp", + "gw", + "gzdoom", + "gzdoom-sa", + "handy", + "hatari", + "hatarisa", + "hypseus-singe", + "jaxe", + "kronos", + "mame", + "mame2003_plus", + "mame2010", + "mame2015", + "mednafen", + "melonds", + "melonds-sa", + "melondsds", + "mesen", + "mesen-s", + "mgba", + "minivmac", + "mojozork", + "moonlight", + "mu", + "mupen64plus", + "mupen64plus-sa", + "mupen64plus_next", + "nanoboyadvance", + "nanoboyadvance-sa", + "neocd", + "nestopia", + "np2kai", + "o2em", + "openbor", + "opera", + "parallel_n64", + "pcsx_rearmed", + "pcsx_rearmed32", + "pico-8", + "picodrive", + "pokemini", + "potator", + "ppsspp", + "ppsspp-sa", + "prboom", + "prosystem", + "puae", + "puae2021", + "px68k", + "quasi88", + "quicknes", + "race", + "rpcs3", + "rpcs3-sa", + "same_cdi", + "sameboy", + "sameduck", + "scummvm", + "scummvm-sa", + "skyemu", + "skyemu-sa", + "smsplus", + "snes9x", + "snes9x2002", + "snes9x2005_plus", + "snes9x2010", + "stella", + "supermodel", + "supermodel-sa", + "supersnes9x", + "swanstation", + "tgbdual", + "theodore", + "tic80", + "touchhle", + "touchhle-sa", + "tyrquake", + "uae4arm", + "uzem", + "vba_next", + "vbam", + "vecx", + "vice", + "vice-sa", + "vice_x128", + "vice_x64", + "vice_xpet", + "vice_xplus4", + "vice_xvic", + "vircon32", + "virtualjaguar", + "vita3k", + "vita3k-sa", + "vitaquake2", + "wasm4", + "x1", + "xemu", + "xemu-sa", "yabasanshiro", "yabasanshiro-sa" ], "sm4450": [ "81", + "DoubleCherryGB", "a5200", - "aethersx2", - "aethersx2-sa", "amiberry", "arduous", "armsx2", @@ -1447,7 +1665,7 @@ "bsnes2014_accuracy", "bsnes2014_balanced", "bsnes2014_performance", - "bsnes_hd", + "bsnes_hd_beta", "bsnes_mercury_accuracy", "bsnes_mercury_balanced", "bsnes_mercury_performance", @@ -1463,7 +1681,6 @@ "dolphin-sa", "dosbox_core", "dosbox_pure", - "doublecherrygb", "dsperate", "dsperate-sa", "duckstation", @@ -1480,7 +1697,6 @@ "flycast-sa", "flycast2021", "fmsx", - "freechaf", "freeintv", "freej2me", "fuse", @@ -1510,9 +1726,9 @@ "mednafen", "melonds", "melonds-sa", - "melonds_ds", + "melondsds", "mesen", - "mesen_s", + "mesen-s", "mgba", "minivmac", "mojozork", @@ -1520,7 +1736,7 @@ "mu", "mupen64plus", "mupen64plus-sa", - "mupen64plus_nx", + "mupen64plus_next", "nanoboyadvance", "nanoboyadvance-sa", "neocd", @@ -1531,6 +1747,7 @@ "opera", "parallel_n64", "pcsx_rearmed", + "pcsx_rearmed32", "pico-8", "picodrive", "pokemini", @@ -1552,7 +1769,7 @@ "scummvm-sa", "skyemu", "skyemu-sa", - "smsplus_gx", + "smsplus", "snes9x", "snes9x2002", "snes9x2005_plus", @@ -1575,23 +1792,28 @@ "vecx", "vice", "vice-sa", + "vice_x128", + "vice_x64", + "vice_xpet", + "vice_xplus4", + "vice_xvic", "vircon32", "virtualjaguar", "vita3k", "vita3k-sa", "vitaquake2", "wasm4", + "x1", "xemu", "xemu-sa", - "xmil", + "yabadabadoo", "yabasanshiro", "yabasanshiro-sa" ], "sm6115": [ "81", + "DoubleCherryGB", "a5200", - "aethersx2", - "aethersx2-sa", "amiberry", "arduous", "armsx2", @@ -1618,7 +1840,7 @@ "bsnes2014_accuracy", "bsnes2014_balanced", "bsnes2014_performance", - "bsnes_hd", + "bsnes_hd_beta", "bsnes_mercury_accuracy", "bsnes_mercury_balanced", "bsnes_mercury_performance", @@ -1630,7 +1852,6 @@ "dolphin-sa", "dosbox_core", "dosbox_pure", - "doublecherrygb", "drastic", "drastic-sa", "dsperate", @@ -1649,7 +1870,6 @@ "flycast-sa", "flycast2021", "fmsx", - "freechaf", "freeintv", "freej2me", "fuse", @@ -1678,9 +1898,9 @@ "mednafen", "melonds", "melonds-sa", - "melonds_ds", + "melondsds", "mesen", - "mesen_s", + "mesen-s", "mgba", "minivmac", "mojozork", @@ -1688,7 +1908,7 @@ "mu", "mupen64plus", "mupen64plus-sa", - "mupen64plus_nx", + "mupen64plus_next", "neocd", "nestopia", "np2kai", @@ -1697,6 +1917,7 @@ "opera", "parallel_n64", "pcsx_rearmed", + "pcsx_rearmed32", "pico-8", "picodrive", "pokemini", @@ -1717,7 +1938,7 @@ "scummvm", "scummvm-sa", "skyemu", - "smsplus_gx", + "smsplus", "snes9x", "snes9x2002", "snes9x2005_plus", @@ -1740,21 +1961,26 @@ "vecx", "vice", "vice-sa", + "vice_x128", + "vice_x64", + "vice_xpet", + "vice_xplus4", + "vice_xvic", "vircon32", "virtualjaguar", "vita3k", "vita3k-sa", "vitaquake2", "wasm4", - "xmil", + "x1", + "yabadabadoo", "yabasanshiro", "yabasanshiro-sa" ], "sm8250": [ "81", + "DoubleCherryGB", "a5200", - "aethersx2", - "aethersx2-sa", "amiberry", "arduous", "armsx2", @@ -1783,7 +2009,7 @@ "bsnes2014_accuracy", "bsnes2014_balanced", "bsnes2014_performance", - "bsnes_hd", + "bsnes_hd_beta", "bsnes_mercury_accuracy", "bsnes_mercury_balanced", "bsnes_mercury_performance", @@ -1799,7 +2025,6 @@ "dolphin-sa", "dosbox_core", "dosbox_pure", - "doublecherrygb", "dsperate", "dsperate-sa", "duckstation", @@ -1816,7 +2041,6 @@ "flycast-sa", "flycast2021", "fmsx", - "freechaf", "freeintv", "freej2me", "fuse", @@ -1846,9 +2070,9 @@ "mednafen", "melonds", "melonds-sa", - "melonds_ds", + "melondsds", "mesen", - "mesen_s", + "mesen-s", "mgba", "minivmac", "mojozork", @@ -1856,7 +2080,7 @@ "mu", "mupen64plus", "mupen64plus-sa", - "mupen64plus_nx", + "mupen64plus_next", "nanoboyadvance", "nanoboyadvance-sa", "neocd", @@ -1867,6 +2091,7 @@ "opera", "parallel_n64", "pcsx_rearmed", + "pcsx_rearmed32", "pico-8", "picodrive", "pokemini", @@ -1890,7 +2115,7 @@ "scummvm-sa", "skyemu", "skyemu-sa", - "smsplus_gx", + "smsplus", "snes9x", "snes9x2002", "snes9x2005_plus", @@ -1913,23 +2138,27 @@ "vecx", "vice", "vice-sa", + "vice_x128", + "vice_x64", + "vice_xpet", + "vice_xplus4", + "vice_xvic", "vircon32", "virtualjaguar", "vita3k", "vita3k-sa", "vitaquake2", "wasm4", + "x1", "xemu", "xemu-sa", - "xmil", "yabasanshiro", "yabasanshiro-sa" ], "sm8550": [ "81", + "DoubleCherryGB", "a5200", - "aethersx2", - "aethersx2-sa", "amiberry", "arduous", "ares", @@ -1960,7 +2189,7 @@ "bsnes2014_accuracy", "bsnes2014_balanced", "bsnes2014_performance", - "bsnes_hd", + "bsnes_hd_beta", "bsnes_mercury_accuracy", "bsnes_mercury_balanced", "bsnes_mercury_performance", @@ -1976,7 +2205,6 @@ "dolphin-sa", "dosbox_core", "dosbox_pure", - "doublecherrygb", "drastic", "drastic-sa", "dsperate", @@ -1995,7 +2223,6 @@ "flycast-sa", "flycast2021", "fmsx", - "freechaf", "freeintv", "freej2me", "fuse", @@ -2027,9 +2254,9 @@ "mednafen", "melonds", "melonds-sa", - "melonds_ds", + "melondsds", "mesen", - "mesen_s", + "mesen-s", "mgba", "minivmac", "mojozork", @@ -2037,7 +2264,7 @@ "mu", "mupen64plus", "mupen64plus-sa", - "mupen64plus_nx", + "mupen64plus_next", "nanoboyadvance", "nanoboyadvance-sa", "neocd", @@ -2048,6 +2275,7 @@ "opera", "parallel_n64", "pcsx_rearmed", + "pcsx_rearmed32", "pico-8", "picodrive", "pokemini", @@ -2071,7 +2299,7 @@ "scummvm-sa", "skyemu", "skyemu-sa", - "smsplus_gx", + "smsplus", "snes9x", "snes9x2002", "snes9x2005_plus", @@ -2094,23 +2322,27 @@ "vecx", "vice", "vice-sa", + "vice_x128", + "vice_x64", + "vice_xpet", + "vice_xplus4", + "vice_xvic", "vircon32", "virtualjaguar", "vita3k", "vita3k-sa", "vitaquake2", "wasm4", + "x1", "xemu", "xemu-sa", - "xmil", "yabasanshiro", "yabasanshiro-sa" ], "sm8650": [ "81", + "DoubleCherryGB", "a5200", - "aethersx2", - "aethersx2-sa", "amiberry", "arduous", "ares", @@ -2141,7 +2373,7 @@ "bsnes2014_accuracy", "bsnes2014_balanced", "bsnes2014_performance", - "bsnes_hd", + "bsnes_hd_beta", "bsnes_mercury_accuracy", "bsnes_mercury_balanced", "bsnes_mercury_performance", @@ -2154,7 +2386,6 @@ "dolphin-sa", "dosbox_core", "dosbox_pure", - "doublecherrygb", "dsperate", "dsperate-sa", "duckstation", @@ -2171,7 +2402,6 @@ "flycast-sa", "flycast2021", "fmsx", - "freechaf", "freeintv", "freej2me", "fuse", @@ -2202,9 +2432,9 @@ "mednafen", "melonds", "melonds-sa", - "melonds_ds", + "melondsds", "mesen", - "mesen_s", + "mesen-s", "mgba", "minivmac", "mojozork", @@ -2212,7 +2442,7 @@ "mu", "mupen64plus", "mupen64plus-sa", - "mupen64plus_nx", + "mupen64plus_next", "nanoboyadvance", "nanoboyadvance-sa", "neocd", @@ -2223,6 +2453,7 @@ "opera", "parallel_n64", "pcsx_rearmed", + "pcsx_rearmed32", "pico-8", "picodrive", "pokemini", @@ -2246,7 +2477,7 @@ "scummvm-sa", "skyemu", "skyemu-sa", - "smsplus_gx", + "smsplus", "snes9x", "snes9x2002", "snes9x2005_plus", @@ -2269,23 +2500,27 @@ "vecx", "vice", "vice-sa", + "vice_x128", + "vice_x64", + "vice_xpet", + "vice_xplus4", + "vice_xvic", "vircon32", "virtualjaguar", "vita3k", "vita3k-sa", "vitaquake2", "wasm4", + "x1", "xemu", "xemu-sa", - "xmil", "yabasanshiro", "yabasanshiro-sa" ], "sm8750": [ "81", + "DoubleCherryGB", "a5200", - "aethersx2", - "aethersx2-sa", "amiberry", "arduous", "ares", @@ -2316,7 +2551,7 @@ "bsnes2014_accuracy", "bsnes2014_balanced", "bsnes2014_performance", - "bsnes_hd", + "bsnes_hd_beta", "bsnes_mercury_accuracy", "bsnes_mercury_balanced", "bsnes_mercury_performance", @@ -2329,7 +2564,6 @@ "dolphin-sa", "dosbox_core", "dosbox_pure", - "doublecherrygb", "dsperate", "dsperate-sa", "duckstation", @@ -2346,7 +2580,6 @@ "flycast-sa", "flycast2021", "fmsx", - "freechaf", "freeintv", "freej2me", "fuse", @@ -2377,9 +2610,9 @@ "mednafen", "melonds", "melonds-sa", - "melonds_ds", + "melondsds", "mesen", - "mesen_s", + "mesen-s", "mgba", "minivmac", "mojozork", @@ -2387,7 +2620,7 @@ "mu", "mupen64plus", "mupen64plus-sa", - "mupen64plus_nx", + "mupen64plus_next", "nanoboyadvance", "nanoboyadvance-sa", "neocd", @@ -2398,6 +2631,7 @@ "opera", "parallel_n64", "pcsx_rearmed", + "pcsx_rearmed32", "pico-8", "picodrive", "pokemini", @@ -2421,7 +2655,7 @@ "scummvm-sa", "skyemu", "skyemu-sa", - "smsplus_gx", + "smsplus", "snes9x", "snes9x2002", "snes9x2005_plus", @@ -2444,20 +2678,26 @@ "vecx", "vice", "vice-sa", + "vice_x128", + "vice_x64", + "vice_xpet", + "vice_xplus4", + "vice_xvic", "vircon32", "virtualjaguar", "vita3k", "vita3k-sa", "vitaquake2", "wasm4", + "x1", "xemu", "xemu-sa", - "xmil", "yabasanshiro", "yabasanshiro-sa" ], "x86_64": [ "81", + "DoubleCherryGB", "a5200", "amiberry", "arduous", @@ -2484,11 +2724,12 @@ "bk", "bluemsx", "boom3", + "boom3_xp", "bsnes", "bsnes2014_accuracy", "bsnes2014_balanced", "bsnes2014_performance", - "bsnes_hd", + "bsnes_hd_beta", "bsnes_mercury_accuracy", "bsnes_mercury_balanced", "bsnes_mercury_performance", @@ -2501,7 +2742,6 @@ "dolphin-sa", "dosbox_core", "dosbox_pure", - "doublecherrygb", "duckstation", "duckstation-sa", "easyrpg", @@ -2515,7 +2755,6 @@ "flycast", "flycast-sa", "fmsx", - "freechaf", "freeintv", "freej2me", "fuse", @@ -2545,9 +2784,9 @@ "mednafen", "melonds", "melonds-sa", - "melonds_ds", + "melondsds", "mesen", - "mesen_s", + "mesen-s", "mgba", "minivmac", "mojozork", @@ -2555,7 +2794,7 @@ "mu", "mupen64plus", "mupen64plus-sa", - "mupen64plus_nx", + "mupen64plus_next", "nanoboyadvance", "nanoboyadvance-sa", "neocd", @@ -2587,7 +2826,7 @@ "scummvm-sa", "skyemu", "skyemu-sa", - "smsplus_gx", + "smsplus", "snes9x", "snes9x2002", "snes9x2005_plus", @@ -2607,6 +2846,11 @@ "vecx", "vice", "vice-sa", + "vice_x128", + "vice_x64", + "vice_xpet", + "vice_xplus4", + "vice_xvic", "vircon32", "virtualjaguar", "vita3k", @@ -2614,9 +2858,9 @@ "vitaquake2", "vitaquake3", "wasm4", + "x1", "xemu", "xemu-sa", - "xmil", "yabasanshiro", "yabasanshiro-sa" ] diff --git a/platforms/rocknix.yml b/platforms/rocknix.yml index 88a0f42fa..ed9e6620f 100644 --- a/platforms/rocknix.yml +++ b/platforms/rocknix.yml @@ -6,66 +6,191 @@ base_destination: bios hash_type: md5 verification_mode: md5 cores: -- retroarch +- "81" +- DoubleCherryGB +- a5200 - amiberry +- arduous - ares - ares-sa - armsx2 - armsx2-sa +- atari800 - azahar - azahar-sa +- b2 +- beetle_gba +- beetle_lynx +- beetle_ngp +- beetle_pce +- beetle_pce_fast +- beetle_pcfx +- beetle_psx +- beetle_saturn +- beetle_supafaust +- beetle_supergrafx +- beetle_vb +- beetle_wswan - bigpemu - bigpemu-sa +- bk +- bluemsx +- boom3 +- boom3_xp +- bsnes +- bsnes2014_accuracy +- bsnes2014_balanced +- bsnes2014_performance +- bsnes_hd_beta +- bsnes_mercury_accuracy +- bsnes_mercury_balanced +- bsnes_mercury_performance +- cap32 - cemu - cemu-sa +- crocods - daedalusx64 - daedalusx64-sa +- daphne +- desmume - dolphin - dolphin-sa +- dosbox_core +- dosbox_pure - drastic - drastic-sa - dsperate - dsperate-sa - duckstation - duckstation-sa +- easyrpg +- ecwolf +- emuscv +- fake08 +- fbalpha2012 +- fbalpha2019 +- fbneo +- fceumm - flycast - flycast-sa +- flycast2021 +- fmsx +- freeintv +- freej2me +- fuse +- gambatte +- gearboy +- gearcoleco +- geargrafx +- gearlynx +- gearsystem +- genesis_plus_gx +- genesis_plus_gx_wide +- geolith - gopher64 - gopher64-sa +- gpsp +- gw - gzdoom - gzdoom-sa +- handy - hatari - hatarisa - heroic - hypseus-singe +- jaxe +- kronos +- mame +- mame2003_plus +- mame2010 +- mame2015 - mednafen - melonds - melonds-sa +- melondsds +- mesen +- mesen-s +- mgba +- minivmac +- mojozork +- mu - mupen64plus - mupen64plus-sa +- mupen64plus_next - nanoboyadvance - nanoboyadvance-sa +- neocd +- nestopia +- np2kai +- o2em - openbor +- opera +- parallel_n64 +- pcsx_rearmed +- pcsx_rearmed32 - pico-8 +- picodrive +- pokemini +- potator - ppsspp - ppsspp-sa +- prboom +- prosystem +- puae +- puae2021 +- px68k +- quasi88 +- quicknes +- race - rpcs3 - rpcs3-sa +- same_cdi +- sameboy +- sameduck - scummvm - scummvm-sa - skyemu - skyemu-sa +- smsplus +- snes9x +- snes9x2002 +- snes9x2005_plus +- snes9x2010 - steam +- stella - supermodel - supermodel-sa +- supersnes9x +- swanstation +- tgbdual +- theodore +- tic80 - touchhle - touchhle-sa +- tyrquake +- uae4arm +- uzem +- vba_next +- vbam +- vecx - vice - vice-sa +- vice_x128 +- vice_x64 +- vice_xpet +- vice_xplus4 +- vice_xvic +- vircon32 +- virtualjaguar - vita3k - vita3k-sa +- vitaquake2 +- vitaquake3 +- wasm4 +- x1 - xemu - xemu-sa +- yabadabadoo - yabasanshiro - yabasanshiro-sa standalone_cores: diff --git a/platforms/targets/rocknix.yml b/platforms/targets/rocknix.yml index c5eb2d604..35113c4fa 100644 --- a/platforms/targets/rocknix.yml +++ b/platforms/targets/rocknix.yml @@ -1,11 +1,12 @@ platform: rocknix source: https://github.com/ROCKNIX/distribution/tree/20261101/projects/ROCKNIX/packages/virtual/emulators/package.mk -scraped_at: '2026-11-09T16:01:58Z' +scraped_at: '2026-11-09T20:12:32Z' targets: amd64: architecture: x86_64 cores: - '81' + - DoubleCherryGB - a5200 - amiberry - arduous @@ -32,11 +33,12 @@ targets: - bk - bluemsx - boom3 + - boom3_xp - bsnes - bsnes2014_accuracy - bsnes2014_balanced - bsnes2014_performance - - bsnes_hd + - bsnes_hd_beta - bsnes_mercury_accuracy - bsnes_mercury_balanced - bsnes_mercury_performance @@ -49,7 +51,6 @@ targets: - dolphin-sa - dosbox_core - dosbox_pure - - doublecherrygb - duckstation - duckstation-sa - easyrpg @@ -92,9 +93,9 @@ targets: - mednafen - melonds - melonds-sa - - melonds_ds + - melondsds - mesen - - mesen_s + - mesen-s - mgba - minivmac - mojozork @@ -102,7 +103,7 @@ targets: - mu - mupen64plus - mupen64plus-sa - - mupen64plus_nx + - mupen64plus_next - nanoboyadvance - nanoboyadvance-sa - neocd @@ -134,7 +135,7 @@ targets: - scummvm-sa - skyemu - skyemu-sa - - smsplus_gx + - smsplus - snes9x - snes9x2002 - snes9x2005_plus @@ -154,6 +155,11 @@ targets: - vecx - vice - vice-sa + - vice_x128 + - vice_x64 + - vice_xpet + - vice_xplus4 + - vice_xvic - vircon32 - virtualjaguar - vita3k @@ -162,15 +168,16 @@ targets: - vitaquake3 - wasm4 - wine + - x1 - xemu - xemu-sa - - xmil - yabasanshiro - yabasanshiro-sa h700: architecture: aarch64 cores: - '81' + - DoubleCherryGB - a5200 - amiberry - arduous @@ -202,7 +209,6 @@ targets: - desmume - dosbox_core - dosbox_pure - - doublecherrygb - drastic - drastic-sa - dsperate @@ -248,9 +254,9 @@ targets: - mame2015 - mednafen - melonds - - melonds_ds + - melondsds - mesen - - mesen_s + - mesen-s - mgba - minivmac - mojozork @@ -258,7 +264,7 @@ targets: - mu - mupen64plus - mupen64plus-sa - - mupen64plus_nx + - mupen64plus_next - neocd - nestopia - np2kai @@ -267,6 +273,7 @@ targets: - opera - parallel_n64 - pcsx_rearmed + - pcsx_rearmed32 - pico-8 - picodrive - pokemini @@ -288,7 +295,7 @@ targets: - scummvm - scummvm-sa - skyemu - - smsplus_gx + - smsplus - snes9x - snes9x2002 - snes9x2005_plus @@ -309,12 +316,17 @@ targets: - vecx - vice - vice-sa + - vice_x128 + - vice_x64 + - vice_xpet + - vice_xplus4 + - vice_xvic - vircon32 - virtualjaguar - vitaquake2 - wasm4 - wine - - xmil + - x1 - yabadabadoo - yabasanshiro - yabasanshiro-sa @@ -322,6 +334,7 @@ targets: architecture: aarch64 cores: - '81' + - DoubleCherryGB - a5200 - amiberry - arduous @@ -353,7 +366,6 @@ targets: - desmume - dosbox_core - dosbox_pure - - doublecherrygb - drastic - drastic-sa - dsperate @@ -399,9 +411,9 @@ targets: - mame2015 - mednafen - melonds - - melonds_ds + - melondsds - mesen - - mesen_s + - mesen-s - mgba - minivmac - mojozork @@ -409,7 +421,7 @@ targets: - mu - mupen64plus - mupen64plus-sa - - mupen64plus_nx + - mupen64plus_next - neocd - nestopia - np2kai @@ -418,6 +430,7 @@ targets: - opera - parallel_n64 - pcsx_rearmed + - pcsx_rearmed32 - pico-8 - picodrive - pokemini @@ -439,7 +452,7 @@ targets: - scummvm - scummvm-sa - skyemu - - smsplus_gx + - smsplus - snes9x - snes9x2002 - snes9x2005_plus @@ -460,12 +473,17 @@ targets: - vecx - vice - vice-sa + - vice_x128 + - vice_x64 + - vice_xpet + - vice_xplus4 + - vice_xvic - vircon32 - virtualjaguar - vitaquake2 - wasm4 - wine - - xmil + - x1 - yabadabadoo - yabasanshiro - yabasanshiro-sa @@ -473,6 +491,7 @@ targets: architecture: aarch64 cores: - '81' + - DoubleCherryGB - a5200 - amiberry - arduous @@ -499,7 +518,7 @@ targets: - bsnes2014_accuracy - bsnes2014_balanced - bsnes2014_performance - - bsnes_hd + - bsnes_hd_beta - bsnes_mercury_accuracy - bsnes_mercury_balanced - bsnes_mercury_performance @@ -511,7 +530,6 @@ targets: - dolphin-sa - dosbox_core - dosbox_pure - - doublecherrygb - drastic - drastic-sa - dsperate @@ -558,9 +576,9 @@ targets: - mednafen - melonds - melonds-sa - - melonds_ds + - melondsds - mesen - - mesen_s + - mesen-s - mgba - minivmac - mojozork @@ -568,7 +586,7 @@ targets: - mu - mupen64plus - mupen64plus-sa - - mupen64plus_nx + - mupen64plus_next - nanoboyadvance - nanoboyadvance-sa - neocd @@ -579,6 +597,7 @@ targets: - opera - parallel_n64 - pcsx_rearmed + - pcsx_rearmed32 - pico-8 - picodrive - pokemini @@ -600,7 +619,7 @@ targets: - scummvm - scummvm-sa - skyemu - - smsplus_gx + - smsplus - snes9x - snes9x2002 - snes9x2005_plus @@ -621,12 +640,17 @@ targets: - vecx - vice - vice-sa + - vice_x128 + - vice_x64 + - vice_xpet + - vice_xplus4 + - vice_xvic - vircon32 - virtualjaguar - vitaquake2 - wasm4 - wine - - xmil + - x1 - yabadabadoo - yabasanshiro - yabasanshiro-sa @@ -634,6 +658,7 @@ targets: architecture: aarch64 cores: - '81' + - DoubleCherryGB - a5200 - amiberry - arduous @@ -671,7 +696,6 @@ targets: - dolphin-sa - dosbox_core - dosbox_pure - - doublecherrygb - drastic - drastic-sa - dsperate @@ -718,9 +742,9 @@ targets: - mednafen - melonds - melonds-sa - - melonds_ds + - melondsds - mesen - - mesen_s + - mesen-s - mgba - minivmac - mojozork @@ -728,7 +752,7 @@ targets: - mu - mupen64plus - mupen64plus-sa - - mupen64plus_nx + - mupen64plus_next - neocd - nestopia - np2kai @@ -737,6 +761,7 @@ targets: - opera - parallel_n64 - pcsx_rearmed + - pcsx_rearmed32 - pico-8 - picodrive - pokemini @@ -758,7 +783,7 @@ targets: - scummvm - scummvm-sa - skyemu - - smsplus_gx + - smsplus - snes9x - snes9x2002 - snes9x2005_plus @@ -779,6 +804,11 @@ targets: - vecx - vice - vice-sa + - vice_x128 + - vice_x64 + - vice_xpet + - vice_xplus4 + - vice_xvic - vircon32 - virtualjaguar - vita3k @@ -786,7 +816,7 @@ targets: - vitaquake2 - wasm4 - wine - - xmil + - x1 - yabadabadoo - yabasanshiro - yabasanshiro-sa @@ -794,6 +824,7 @@ targets: architecture: aarch64 cores: - '81' + - DoubleCherryGB - a5200 - amiberry - arduous @@ -831,7 +862,6 @@ targets: - dolphin-sa - dosbox_core - dosbox_pure - - doublecherrygb - drastic - drastic-sa - dsperate @@ -878,9 +908,9 @@ targets: - mednafen - melonds - melonds-sa - - melonds_ds + - melondsds - mesen - - mesen_s + - mesen-s - mgba - minivmac - mojozork @@ -888,7 +918,7 @@ targets: - mu - mupen64plus - mupen64plus-sa - - mupen64plus_nx + - mupen64plus_next - neocd - nestopia - np2kai @@ -897,6 +927,7 @@ targets: - opera - parallel_n64 - pcsx_rearmed + - pcsx_rearmed32 - pico-8 - picodrive - pokemini @@ -918,7 +949,7 @@ targets: - scummvm - scummvm-sa - skyemu - - smsplus_gx + - smsplus - snes9x - snes9x2002 - snes9x2005_plus @@ -939,6 +970,11 @@ targets: - vecx - vice - vice-sa + - vice_x128 + - vice_x64 + - vice_xpet + - vice_xplus4 + - vice_xvic - vircon32 - virtualjaguar - vita3k @@ -946,7 +982,7 @@ targets: - vitaquake2 - wasm4 - wine - - xmil + - x1 - yabadabadoo - yabasanshiro - yabasanshiro-sa @@ -954,6 +990,7 @@ targets: architecture: aarch64 cores: - '81' + - DoubleCherryGB - a5200 - amiberry - arduous @@ -983,7 +1020,7 @@ targets: - bsnes2014_accuracy - bsnes2014_balanced - bsnes2014_performance - - bsnes_hd + - bsnes_hd_beta - bsnes_mercury_accuracy - bsnes_mercury_balanced - bsnes_mercury_performance @@ -995,7 +1032,6 @@ targets: - dolphin-sa - dosbox_core - dosbox_pure - - doublecherrygb - drastic - drastic-sa - dsperate @@ -1042,9 +1078,9 @@ targets: - mednafen - melonds - melonds-sa - - melonds_ds + - melondsds - mesen - - mesen_s + - mesen-s - mgba - minivmac - mojozork @@ -1052,7 +1088,7 @@ targets: - mu - mupen64plus - mupen64plus-sa - - mupen64plus_nx + - mupen64plus_next - neocd - nestopia - np2kai @@ -1061,6 +1097,7 @@ targets: - opera - parallel_n64 - pcsx_rearmed + - pcsx_rearmed32 - pico-8 - picodrive - pokemini @@ -1082,7 +1119,7 @@ targets: - scummvm - scummvm-sa - skyemu - - smsplus_gx + - smsplus - snes9x - snes9x2002 - snes9x2005_plus @@ -1105,6 +1142,11 @@ targets: - vecx - vice - vice-sa + - vice_x128 + - vice_x64 + - vice_xpet + - vice_xplus4 + - vice_xvic - vircon32 - virtualjaguar - vita3k @@ -1112,7 +1154,7 @@ targets: - vitaquake2 - wasm4 - wine - - xmil + - x1 - yabadabadoo - yabasanshiro - yabasanshiro-sa @@ -1120,6 +1162,7 @@ targets: architecture: aarch64 cores: - '81' + - DoubleCherryGB - a5200 - amiberry - arduous @@ -1151,7 +1194,7 @@ targets: - bsnes2014_accuracy - bsnes2014_balanced - bsnes2014_performance - - bsnes_hd + - bsnes_hd_beta - bsnes_mercury_accuracy - bsnes_mercury_balanced - bsnes_mercury_performance @@ -1162,7 +1205,6 @@ targets: - dolphin-sa - dosbox_core - dosbox_pure - - doublecherrygb - drastic - drastic-sa - dsperate @@ -1207,9 +1249,9 @@ targets: - mame2015 - melonds - melonds-sa - - melonds_ds + - melondsds - mesen - - mesen_s + - mesen-s - mgba - minivmac - mojozork @@ -1217,7 +1259,7 @@ targets: - mu - mupen64plus - mupen64plus-sa - - mupen64plus_nx + - mupen64plus_next - neocd - nestopia - np2kai @@ -1226,6 +1268,7 @@ targets: - opera - parallel_n64 - pcsx_rearmed + - pcsx_rearmed32 - pico-8 - picodrive - pokemini @@ -1247,7 +1290,7 @@ targets: - scummvm - scummvm-sa - skyemu - - smsplus_gx + - smsplus - snes9x - snes9x2002 - snes9x2005_plus @@ -1268,6 +1311,11 @@ targets: - vecx - vice - vice-sa + - vice_x128 + - vice_x64 + - vice_xpet + - vice_xplus4 + - vice_xvic - vircon32 - virtualjaguar - vita3k @@ -1275,13 +1323,14 @@ targets: - vitaquake2 - wasm4 - wine - - xmil + - x1 - yabasanshiro - yabasanshiro-sa sdm845: architecture: aarch64 cores: - '81' + - DoubleCherryGB - a5200 - amiberry - arduous @@ -1313,7 +1362,7 @@ targets: - bsnes2014_accuracy - bsnes2014_balanced - bsnes2014_performance - - bsnes_hd + - bsnes_hd_beta - bsnes_mercury_accuracy - bsnes_mercury_balanced - bsnes_mercury_performance @@ -1329,7 +1378,6 @@ targets: - dolphin-sa - dosbox_core - dosbox_pure - - doublecherrygb - dsperate - dsperate-sa - duckstation @@ -1376,9 +1424,9 @@ targets: - mednafen - melonds - melonds-sa - - melonds_ds + - melondsds - mesen - - mesen_s + - mesen-s - mgba - minivmac - mojozork @@ -1386,7 +1434,7 @@ targets: - mu - mupen64plus - mupen64plus-sa - - mupen64plus_nx + - mupen64plus_next - nanoboyadvance - nanoboyadvance-sa - neocd @@ -1397,6 +1445,7 @@ targets: - opera - parallel_n64 - pcsx_rearmed + - pcsx_rearmed32 - pico-8 - picodrive - pokemini @@ -1421,7 +1470,7 @@ targets: - scummvm-sa - skyemu - skyemu-sa - - smsplus_gx + - smsplus - snes9x - snes9x2002 - snes9x2005_plus @@ -1445,6 +1494,11 @@ targets: - vecx - vice - vice-sa + - vice_x128 + - vice_x64 + - vice_xpet + - vice_xplus4 + - vice_xvic - vircon32 - virtualjaguar - vita3k @@ -1452,15 +1506,16 @@ targets: - vitaquake2 - wasm4 - wine + - x1 - xemu - xemu-sa - - xmil - yabasanshiro - yabasanshiro-sa sm4450: architecture: aarch64 cores: - '81' + - DoubleCherryGB - a5200 - amiberry - arduous @@ -1492,7 +1547,7 @@ targets: - bsnes2014_accuracy - bsnes2014_balanced - bsnes2014_performance - - bsnes_hd + - bsnes_hd_beta - bsnes_mercury_accuracy - bsnes_mercury_balanced - bsnes_mercury_performance @@ -1508,7 +1563,6 @@ targets: - dolphin-sa - dosbox_core - dosbox_pure - - doublecherrygb - dsperate - dsperate-sa - duckstation @@ -1555,9 +1609,9 @@ targets: - mednafen - melonds - melonds-sa - - melonds_ds + - melondsds - mesen - - mesen_s + - mesen-s - mgba - minivmac - mojozork @@ -1565,7 +1619,7 @@ targets: - mu - mupen64plus - mupen64plus-sa - - mupen64plus_nx + - mupen64plus_next - nanoboyadvance - nanoboyadvance-sa - neocd @@ -1576,6 +1630,7 @@ targets: - opera - parallel_n64 - pcsx_rearmed + - pcsx_rearmed32 - pico-8 - picodrive - pokemini @@ -1598,7 +1653,7 @@ targets: - scummvm-sa - skyemu - skyemu-sa - - smsplus_gx + - smsplus - snes9x - snes9x2002 - snes9x2005_plus @@ -1622,6 +1677,11 @@ targets: - vecx - vice - vice-sa + - vice_x128 + - vice_x64 + - vice_xpet + - vice_xplus4 + - vice_xvic - vircon32 - virtualjaguar - vita3k @@ -1629,9 +1689,9 @@ targets: - vitaquake2 - wasm4 - wine + - x1 - xemu - xemu-sa - - xmil - yabadabadoo - yabasanshiro - yabasanshiro-sa @@ -1639,6 +1699,7 @@ targets: architecture: aarch64 cores: - '81' + - DoubleCherryGB - a5200 - amiberry - arduous @@ -1668,7 +1729,7 @@ targets: - bsnes2014_accuracy - bsnes2014_balanced - bsnes2014_performance - - bsnes_hd + - bsnes_hd_beta - bsnes_mercury_accuracy - bsnes_mercury_balanced - bsnes_mercury_performance @@ -1680,7 +1741,6 @@ targets: - dolphin-sa - dosbox_core - dosbox_pure - - doublecherrygb - drastic - drastic-sa - dsperate @@ -1727,9 +1787,9 @@ targets: - mednafen - melonds - melonds-sa - - melonds_ds + - melondsds - mesen - - mesen_s + - mesen-s - mgba - minivmac - mojozork @@ -1737,7 +1797,7 @@ targets: - mu - mupen64plus - mupen64plus-sa - - mupen64plus_nx + - mupen64plus_next - neocd - nestopia - np2kai @@ -1746,6 +1806,7 @@ targets: - opera - parallel_n64 - pcsx_rearmed + - pcsx_rearmed32 - pico-8 - picodrive - pokemini @@ -1767,7 +1828,7 @@ targets: - scummvm - scummvm-sa - skyemu - - smsplus_gx + - smsplus - snes9x - snes9x2002 - snes9x2005_plus @@ -1790,6 +1851,11 @@ targets: - vecx - vice - vice-sa + - vice_x128 + - vice_x64 + - vice_xpet + - vice_xplus4 + - vice_xvic - vircon32 - virtualjaguar - vita3k @@ -1797,7 +1863,7 @@ targets: - vitaquake2 - wasm4 - wine - - xmil + - x1 - yabadabadoo - yabasanshiro - yabasanshiro-sa @@ -1805,6 +1871,7 @@ targets: architecture: aarch64 cores: - '81' + - DoubleCherryGB - a5200 - amiberry - arduous @@ -1836,7 +1903,7 @@ targets: - bsnes2014_accuracy - bsnes2014_balanced - bsnes2014_performance - - bsnes_hd + - bsnes_hd_beta - bsnes_mercury_accuracy - bsnes_mercury_balanced - bsnes_mercury_performance @@ -1852,7 +1919,6 @@ targets: - dolphin-sa - dosbox_core - dosbox_pure - - doublecherrygb - dsperate - dsperate-sa - duckstation @@ -1899,9 +1965,9 @@ targets: - mednafen - melonds - melonds-sa - - melonds_ds + - melondsds - mesen - - mesen_s + - mesen-s - mgba - minivmac - mojozork @@ -1909,7 +1975,7 @@ targets: - mu - mupen64plus - mupen64plus-sa - - mupen64plus_nx + - mupen64plus_next - nanoboyadvance - nanoboyadvance-sa - neocd @@ -1920,6 +1986,7 @@ targets: - opera - parallel_n64 - pcsx_rearmed + - pcsx_rearmed32 - pico-8 - picodrive - pokemini @@ -1944,7 +2011,7 @@ targets: - scummvm-sa - skyemu - skyemu-sa - - smsplus_gx + - smsplus - snes9x - snes9x2002 - snes9x2005_plus @@ -1968,6 +2035,11 @@ targets: - vecx - vice - vice-sa + - vice_x128 + - vice_x64 + - vice_xpet + - vice_xplus4 + - vice_xvic - vircon32 - virtualjaguar - vita3k @@ -1975,15 +2047,16 @@ targets: - vitaquake2 - wasm4 - wine + - x1 - xemu - xemu-sa - - xmil - yabasanshiro - yabasanshiro-sa sm8550: architecture: aarch64 cores: - '81' + - DoubleCherryGB - a5200 - amiberry - arduous @@ -2017,7 +2090,7 @@ targets: - bsnes2014_accuracy - bsnes2014_balanced - bsnes2014_performance - - bsnes_hd + - bsnes_hd_beta - bsnes_mercury_accuracy - bsnes_mercury_balanced - bsnes_mercury_performance @@ -2033,7 +2106,6 @@ targets: - dolphin-sa - dosbox_core - dosbox_pure - - doublecherrygb - drastic - drastic-sa - dsperate @@ -2084,9 +2156,9 @@ targets: - mednafen - melonds - melonds-sa - - melonds_ds + - melondsds - mesen - - mesen_s + - mesen-s - mgba - minivmac - mojozork @@ -2094,7 +2166,7 @@ targets: - mu - mupen64plus - mupen64plus-sa - - mupen64plus_nx + - mupen64plus_next - nanoboyadvance - nanoboyadvance-sa - neocd @@ -2105,6 +2177,7 @@ targets: - opera - parallel_n64 - pcsx_rearmed + - pcsx_rearmed32 - pico-8 - picodrive - pokemini @@ -2129,7 +2202,7 @@ targets: - scummvm-sa - skyemu - skyemu-sa - - smsplus_gx + - smsplus - snes9x - snes9x2002 - snes9x2005_plus @@ -2153,6 +2226,11 @@ targets: - vecx - vice - vice-sa + - vice_x128 + - vice_x64 + - vice_xpet + - vice_xplus4 + - vice_xvic - vircon32 - virtualjaguar - vita3k @@ -2160,15 +2238,16 @@ targets: - vitaquake2 - wasm4 - wine + - x1 - xemu - xemu-sa - - xmil - yabasanshiro - yabasanshiro-sa sm8650: architecture: aarch64 cores: - '81' + - DoubleCherryGB - a5200 - amiberry - arduous @@ -2201,7 +2280,7 @@ targets: - bsnes2014_accuracy - bsnes2014_balanced - bsnes2014_performance - - bsnes_hd + - bsnes_hd_beta - bsnes_mercury_accuracy - bsnes_mercury_balanced - bsnes_mercury_performance @@ -2214,7 +2293,6 @@ targets: - dolphin-sa - dosbox_core - dosbox_pure - - doublecherrygb - dsperate - dsperate-sa - duckstation @@ -2262,9 +2340,9 @@ targets: - mednafen - melonds - melonds-sa - - melonds_ds + - melondsds - mesen - - mesen_s + - mesen-s - mgba - minivmac - mojozork @@ -2272,7 +2350,7 @@ targets: - mu - mupen64plus - mupen64plus-sa - - mupen64plus_nx + - mupen64plus_next - nanoboyadvance - nanoboyadvance-sa - neocd @@ -2283,6 +2361,7 @@ targets: - opera - parallel_n64 - pcsx_rearmed + - pcsx_rearmed32 - pico-8 - picodrive - pokemini @@ -2307,7 +2386,7 @@ targets: - scummvm-sa - skyemu - skyemu-sa - - smsplus_gx + - smsplus - snes9x - snes9x2002 - snes9x2005_plus @@ -2331,6 +2410,11 @@ targets: - vecx - vice - vice-sa + - vice_x128 + - vice_x64 + - vice_xpet + - vice_xplus4 + - vice_xvic - vircon32 - virtualjaguar - vita3k @@ -2338,15 +2422,16 @@ targets: - vitaquake2 - wasm4 - wine + - x1 - xemu - xemu-sa - - xmil - yabasanshiro - yabasanshiro-sa sm8750: architecture: aarch64 cores: - '81' + - DoubleCherryGB - a5200 - amiberry - arduous @@ -2379,7 +2464,7 @@ targets: - bsnes2014_accuracy - bsnes2014_balanced - bsnes2014_performance - - bsnes_hd + - bsnes_hd_beta - bsnes_mercury_accuracy - bsnes_mercury_balanced - bsnes_mercury_performance @@ -2392,7 +2477,6 @@ targets: - dolphin-sa - dosbox_core - dosbox_pure - - doublecherrygb - dsperate - dsperate-sa - duckstation @@ -2440,9 +2524,9 @@ targets: - mednafen - melonds - melonds-sa - - melonds_ds + - melondsds - mesen - - mesen_s + - mesen-s - mgba - minivmac - mojozork @@ -2450,7 +2534,7 @@ targets: - mu - mupen64plus - mupen64plus-sa - - mupen64plus_nx + - mupen64plus_next - nanoboyadvance - nanoboyadvance-sa - neocd @@ -2461,6 +2545,7 @@ targets: - opera - parallel_n64 - pcsx_rearmed + - pcsx_rearmed32 - pico-8 - picodrive - pokemini @@ -2485,7 +2570,7 @@ targets: - scummvm-sa - skyemu - skyemu-sa - - smsplus_gx + - smsplus - snes9x - snes9x2002 - snes9x2005_plus @@ -2509,6 +2594,11 @@ targets: - vecx - vice - vice-sa + - vice_x128 + - vice_x64 + - vice_xpet + - vice_xplus4 + - vice_xvic - vircon32 - virtualjaguar - vita3k @@ -2516,8 +2606,8 @@ targets: - vitaquake2 - wasm4 - wine + - x1 - xemu - xemu-sa - - xmil - yabasanshiro - yabasanshiro-sa diff --git a/scripts/scraper/rocknix_scraper.py b/scripts/scraper/rocknix_scraper.py index dc7019ea6..b4aa7e4ab 100644 --- a/scripts/scraper/rocknix_scraper.py +++ b/scripts/scraper/rocknix_scraper.py @@ -190,6 +190,25 @@ class Scraper(BaseScraper): self.tag = None if url else fetch_github_latest_version(GITHUB_REPO) super().__init__(url=url or SOURCE_TEMPLATE.format(ref=self.tag)) + def _built_cores(self, standalone: list[str]) -> tuple[list[str], list[str]]: + """(cores, standalone cores) at least one device image carries. + + RetroArch runs the libretro cores the packages of its emulators + metapackage install per device + (projects/ROCKNIX/packages/virtual/emulators/package.mk), read by + the targets scraper, where every libretro profile counted before. A + standalone package no device carries is not run either. + """ + try: + from .targets.rocknix_targets_scraper import Scraper as DeviceTargets + except ImportError: + from scraper.targets.rocknix_targets_scraper import Scraper as DeviceTargets + builds = DeviceTargets().device_builds(self.tag or launcher_revision(self.url)) + libretro = sorted({core for _arch, lr, _sa in builds.values() for core in lr}) + carried = set(standalone_emulators(sorted({p for *_rest, sa in builds.values() for p in sa}))) + standalone = [name for name in standalone if name in carried] + return sorted({*libretro, *standalone}), standalone + def _fetch_standalone(self) -> list[str]: """The packages of projects/ROCKNIX/packages/emulators/standalone.""" import json @@ -281,7 +300,7 @@ class Scraper(BaseScraper): ) entry["files"].append(requirement_entry(req)) - standalone = self._fetch_standalone() + cores, standalone = self._built_cores(self._fetch_standalone()) return { "platform": "ROCKNIX", "version": self.tag or fetch_github_latest_version(GITHUB_REPO), @@ -290,9 +309,7 @@ class Scraper(BaseScraper): "base_destination": "bios", "hash_type": "md5", "verification_mode": "md5", - # RetroArch with every libretro core, plus the standalone - # emulators ROCKNIX packages beside it. - "cores": ["retroarch", *standalone], + "cores": cores, "standalone_cores": standalone, # Launched both ways only where package.mk also adds the # emulator as a RetroArch core. diff --git a/scripts/scraper/targets/rocknix_targets_scraper.py b/scripts/scraper/targets/rocknix_targets_scraper.py index 9966d11c1..e9b5f7dd3 100644 --- a/scripts/scraper/targets/rocknix_targets_scraper.py +++ b/scripts/scraper/targets/rocknix_targets_scraper.py @@ -5,6 +5,8 @@ Sources (ROCKNIX/distribution, at the release tag platforms/rocknix.yml names): image carries, those aarch64 adds, and a `case "${DEVICE}"` block per SoC - projects/ROCKNIX/devices//options -- ENABLE_32BIT, which the 32-bit cores of a device depend on (distributions/ROCKNIX/options defaults it on) + - each libretro package's package.mk -- the cores its makeinstall_target + copies to ${INSTALL}/usr/lib/libretro (vice-lr installs ten of them) An H700 or RK3326 handheld carries neither Dolphin nor AetherSX2: without a target list, its pack shipped the PS2, GameCube and PS3 firmware anyway. @@ -13,6 +15,7 @@ target list, its pack shipped the PS2, GameCube and PS3 firmware anyway. from __future__ import annotations import argparse +import json import re import sys from datetime import datetime, timezone @@ -89,18 +92,90 @@ def parse_device_cores( return libretro, standalone -def core_names(libretro: list[str], standalone: list[str]) -> list[str]: - """Package names as the profiles' cores: lists spell them. +_INSTALL_BODY_RE = re.compile(r"^makeinstall_target\(\)\s*\{\n(.*?)^\}", re.M | re.S) +_COPY_RE = re.compile(r"\bcp\s+(.*?)\s+\$\{?INSTALL\}?/usr/lib/libretro(?:/(\S*))?") +_CORE_FILE_RE = re.compile(r"([\w+.-]+)_libretro\.(?:so\b|\{[^}]*\bso\b[^}]*\})") +_TEST_RE = re.compile(r'\[\s*"\$\{(\w+)\}"\s*=\s*"([^"]*)"\s*\]') - A libretro package is the core's name with `-lr` (`beetle-psx-lr`, - `neocd_lr`), spelled with underscores as the buildbot names it. A - standalone package is kept under both spellings, as the platform - scraper keeps it: `vice-sa` is the only name vice-standalone answers - to, `vice` that of the libretro profile. + +def installed_cores(package_mk: str, arch: str, with_32bit: bool) -> list[str]: + """The cores a libretro package installs on a device. + + The name is that of the file makeinstall_target copies to + ${INSTALL}/usr/lib/libretro ($INSTALL in some), renamed when the copy names its target: + beetle-psx-lr copies mednafen_psx_libretro.so as beetle_psx_libretro.so, + vice-lr ten EMUTYPE builds. pcsx_rearmed-lr picks its file by + TARGET_ARCH and adds the 32-bit build when ENABLE_32BIT is on, desmume-lr + copies the 32-bit build on aarch64 (ARCH). A test on another variable, + or a package that installs no core, is an error. """ - names = {re.sub(r"[-_]lr$", "", package).replace("-", "_") for package in libretro} - names.update(standalone_emulators(standalone)) - return sorted(names) + body = _INSTALL_BODY_RE.search(package_mk) + if body is None: + raise RuntimeError("package.mk has no makeinstall_target") + # config/options:36 sets TARGET_ARCH="${ARCH}". + values = {"ARCH": arch, "TARGET_ARCH": arch, "ENABLE_32BIT": "true" if with_32bit else "false"} + + def holds(condition: str) -> bool: + tests = _TEST_RE.findall(condition) + if not tests or re.sub(_TEST_RE, "", condition).strip(" ;&") not in ("", "then"): + raise RuntimeError(f"makeinstall_target tests {condition.strip()!r}") + for variable, value in tests: + if variable not in values: + raise RuntimeError(f"makeinstall_target tests ${{{variable}}}") + if values[variable] != value: + return False + return True + + found: list[str] = [] + stack: list[bool] = [] + in_case = False + for raw in body.group(1).splitlines(): + line = raw.strip() + if re.match(r"case \$\{TARGET_ARCH\} in$", line): + in_case = True + stack.append(False) + continue + if line == "esac": + in_case = False + stack.pop() + continue + if in_case and (arm := re.match(r"([\w|*]+)\)\s*(.*)$", line)): + stack[-1] = arch in arm.group(1).split("|") or arm.group(1) == "*" + line = arm.group(2) + if line.startswith("if "): + stack.append(holds(line[3:])) + continue + if line == "else": + stack[-1] = not stack[-1] + continue + if line == "fi": + stack.pop() + continue + if not all(stack): + continue + for sources, target in _COPY_RE.findall(line): + if named := _CORE_FILE_RE.search(target): + found.append(named.group(1)) + continue + for source in sources.split(): + if not source.startswith("-") and (named := _CORE_FILE_RE.search(source.rsplit("/", 1)[-1])): + found.append(named.group(1)) + if not found: + raise RuntimeError("makeinstall_target installs no libretro core") + return sorted(set(found)) + + +def package_paths(tree: list[str]) -> dict[str, str]: + """package name -> its package.mk, a ROCKNIX project package first. + + The build takes projects/ROCKNIX/packages/<...>/ over + packages/<...>/ when both exist. + """ + found: dict[str, str] = {} + for path in sorted(tree, key=lambda p: not p.startswith("projects/ROCKNIX/")): + if path.endswith("/package.mk"): + found.setdefault(path.rsplit("/", 2)[-2], path) + return found # A package that builds nothing itself and pulls other cores in. idtech-lr @@ -149,13 +224,40 @@ class Scraper(BaseTargetScraper): raise RuntimeError(f"no device in {DEVICES_DIR} at {self.tag}") return sorted(devices) - def fetch_targets(self) -> dict: - self.tag = self.pinned_revision(PLATFORM_NAME) + def _tree(self) -> list[str]: + listing = json.loads(fetch_bytes( + f"https://api.github.com/repos/ROCKNIX/distribution/git/trees/{self.tag}?recursive=1", + headers=github_headers(), + )) + if listing.get("truncated"): + raise RuntimeError(f"ROCKNIX tree at {self.tag} is truncated") + return [entry["path"] for entry in listing.get("tree", [])] + + def device_builds(self, tag: str | None = None) -> dict[str, tuple[str, list[str], list[str]]]: + """{device: (architecture, libretro cores, standalone packages)}. + + Read at `tag`, by default the revision platforms/rocknix.yml was + scraped at: metapackages resolved to the packages they pull in, and + each libretro package to the cores it installs on the device. + """ + self.tag = tag or self.pinned_revision(PLATFORM_NAME) package_mk = self._raw(EMULATORS_MK) if "LIBRETRO_CORES" not in package_mk: raise RuntimeError(f"no LIBRETRO_CORES in {EMULATORS_MK} at {self.tag}") + paths = package_paths(self._tree()) + texts: dict[str, str] = {} - targets: dict[str, dict] = {} + def cores_of(package: str, arch: str, with_32bit: bool) -> list[str]: + if package not in paths: + raise RuntimeError(f"no package.mk for {package} at {self.tag}") + if package not in texts: + texts[package] = self._raw(paths[package]) + try: + return installed_cores(texts[package], arch, with_32bit) + except RuntimeError as e: + raise RuntimeError(f"{paths[package]}: {e}") from e + + builds: dict[str, tuple[str, list[str], list[str]]] = {} for device in self._devices(): options = self._raw(f"{DEVICES_DIR}/{device}/options") arch = "x86_64" if device == "AMD64" else "aarch64" @@ -165,9 +267,19 @@ class Scraper(BaseTargetScraper): if meta in libretro: libretro.remove(meta) libretro += metapackage_cores(self._raw(path), arch) - cores = core_names(libretro, standalone) - targets[device.lower()] = {"architecture": arch, "cores": cores} - print(f" {device.lower()} ({arch}): {len(cores)} cores", file=sys.stderr) + cores = sorted({c for package in libretro for c in cores_of(package, arch, with_32bit)}) + builds[device.lower()] = (arch, cores, standalone) + return builds + + def fetch_targets(self) -> dict: + targets: dict[str, dict] = {} + for device, (arch, libretro, standalone) in self.device_builds().items(): + # A standalone package is kept under both spellings, as the + # platform scraper keeps it: vice-sa is the only name + # vice-standalone answers to, vice that of the libretro profile. + cores = sorted({*libretro, *standalone_emulators(standalone)}) + targets[device] = {"architecture": arch, "cores": cores} + print(f" {device} ({arch}): {len(cores)} cores", file=sys.stderr) return { "platform": PLATFORM_NAME, diff --git a/tests/test_launchers_rocknix.py b/tests/test_launchers_rocknix.py index 26fa9192c..aa721896b 100644 --- a/tests/test_launchers_rocknix.py +++ b/tests/test_launchers_rocknix.py @@ -619,8 +619,10 @@ class PlatformRecords(unittest.TestCase): cls.config = yaml.safe_load((REPO_ROOT / "platforms" / "rocknix.yml").read_text()) def test_every_emulator_is_one_rocknix_packages(self): + # RetroArch itself runs the libretro cores the list names. cores = set(self.config["cores"]) - self.assertEqual(sorted({r["emulator"] for r in self.config["launchers"]} - cores), []) + self.assertEqual(sorted({r["emulator"] for r in self.config["launchers"]} - cores), + ["retroarch"]) def test_every_reference_is_in_the_rocknix_project(self): for record in self.config["launchers"]: diff --git a/tests/test_scraper_contract.py b/tests/test_scraper_contract.py index e4ca795b4..a7555649d 100644 --- a/tests/test_scraper_contract.py +++ b/tests/test_scraper_contract.py @@ -480,7 +480,10 @@ class RocknixRunsItsStandaloneEmulators(unittest.TestCase): root = Path(__file__).resolve().parents[1] platform = yaml.safe_load((root / "platforms" / "rocknix.yml").read_text()) self.assertIn(f"/distribution/{platform['version']}/", platform["source"]) - self.assertIn("retroarch", platform["cores"]) + # RetroArch runs the libretro cores some device image installs, not + # every libretro profile. + self.assertNotIn("retroarch", platform["cores"]) + self.assertIn("beetle_psx", platform["cores"]) registry = yaml.safe_load((root / "platforms" / "_registry.yml").read_text()) self.assertNotIn("cores", registry["platforms"]["rocknix"]) diff --git a/tests/test_target_scrapers.py b/tests/test_target_scrapers.py index 81c389d5d..9d231ade6 100644 --- a/tests/test_target_scrapers.py +++ b/tests/test_target_scrapers.py @@ -393,35 +393,60 @@ class RocknixPerDevice(unittest.TestCase): ) def test_each_device_gets_its_own_cores(self): - from scraper.targets.rocknix_targets_scraper import ( # noqa: PLC0415 - core_names, - parse_device_cores, - ) + from scraper.targets.rocknix_targets_scraper import parse_device_cores # noqa: PLC0415 - h700 = core_names(*parse_device_cores(self.PACKAGE_MK, "H700", "aarch64", True)) - self.assertTrue({"drastic", "gpsp", "duckstation", "beetle_psx", "hatari", - "81", "neocd"} <= set(h700)) - self.assertFalse({"aethersx2", "dolphin"} & set(h700)) - no32 = core_names(*parse_device_cores(self.PACKAGE_MK, "H700", "aarch64", False)) - self.assertNotIn("gpsp", no32) - amd64 = core_names(*parse_device_cores(self.PACKAGE_MK, "AMD64", "x86_64", False)) - self.assertIn("dolphin", amd64) - self.assertNotIn("drastic", amd64) + libretro, standalone = parse_device_cores(self.PACKAGE_MK, "H700", "aarch64", True) + self.assertTrue({"gpsp-lr", "duckstation-lr", "beetle-psx-lr", "81-lr", + "neocd_lr"} <= set(libretro)) + self.assertTrue({"drastic-sa", "hatarisa"} <= set(standalone)) + self.assertFalse({"aethersx2-sa", "dolphin-sa"} & set(standalone)) + libretro, _ = parse_device_cores(self.PACKAGE_MK, "H700", "aarch64", False) + self.assertNotIn("gpsp-lr", libretro) + _, standalone = parse_device_cores(self.PACKAGE_MK, "AMD64", "x86_64", False) + self.assertIn("dolphin-sa", standalone) + self.assertNotIn("drastic-sa", standalone) + + def test_a_package_names_the_cores_it_installs(self): + """vice-lr builds ten EMUTYPEs: read as the package name, vice_x64 + and its siblings reached no ROCKNIX device.""" + from scraper.targets.rocknix_targets_scraper import installed_cores # noqa: PLC0415 + + vice = ("makeinstall_target() {\n mkdir -p ${INSTALL}/usr/lib/libretro\n" + " cp -a built/vice_x128_libretro.so ${INSTALL}/usr/lib/libretro\n" + " cp -a built/vice_x64_libretro.so ${INSTALL}/usr/lib/libretro\n}\n") + self.assertEqual(installed_cores(vice, "aarch64", True), ["vice_x128", "vice_x64"]) + renamed = ("makeinstall_target() {\n" + " cp -a mednafen_psx_libretro.so ${INSTALL}/usr/lib/libretro/beetle_psx_libretro.so\n" + " cp -a fake08_libretro.{so,info} $INSTALL/usr/lib/libretro\n}\n") + self.assertEqual(installed_cores(renamed, "aarch64", True), ["beetle_psx", "fake08"]) + pcsx = ("makeinstall_target() {\n" + " case ${TARGET_ARCH} in\n" + " aarch64|x86_64) cp -a ../pcsx_rearmed_libretro.so ${INSTALL}/usr/lib/libretro ;;\n" + " arm) cp -a ../pcsx_rearmed_libretro.so ${INSTALL}/usr/lib/libretro/pcsx_rearmed32_libretro.so ;;\n" + " esac\n" + ' if [ "${TARGET_ARCH}" = "aarch64" ] && [ "${ENABLE_32BIT}" = "true" ]; then\n' + " cp -a x/usr/lib/libretro/pcsx_rearmed32_libretro.so ${INSTALL}/usr/lib/libretro\n" + " fi\n}\n") + self.assertEqual(installed_cores(pcsx, "aarch64", True), ["pcsx_rearmed", "pcsx_rearmed32"]) + self.assertEqual(installed_cores(pcsx, "aarch64", False), ["pcsx_rearmed"]) + self.assertEqual(installed_cores(pcsx, "x86_64", True), ["pcsx_rearmed"]) + with self.assertRaises(RuntimeError): + installed_cores('makeinstall_target() {\n if [ "${DEVICE}" = "H700" ]; then\n' + " cp a_libretro.so ${INSTALL}/usr/lib/libretro\n fi\n}\n", + "aarch64", True) + with self.assertRaises(RuntimeError): + installed_cores("makeinstall_target() {\n :\n}\n", "aarch64", True) def test_a_standalone_package_keeps_both_spellings(self): """vice-standalone answers to vice-sa only, as scummvm-standalone to scummvm-sa: stripped to vice, every targeted pack left them out while the untargeted one, read from the platform scraper, kept them.""" from scraper.rocknix_scraper import standalone_emulators # noqa: PLC0415 - from scraper.targets.rocknix_targets_scraper import ( # noqa: PLC0415 - core_names, - parse_device_cores, - ) + from scraper.targets.rocknix_targets_scraper import parse_device_cores # noqa: PLC0415 - libretro, standalone = parse_device_cores(self.PACKAGE_MK, "SM8550", "aarch64", False) - names = set(core_names(libretro, standalone)) + _, standalone = parse_device_cores(self.PACKAGE_MK, "SM8550", "aarch64", False) + names = set(standalone_emulators(standalone)) self.assertTrue({"aethersx2-sa", "aethersx2", "dolphin-sa", "dolphin"} <= names) - self.assertTrue(set(standalone_emulators(standalone)) <= names) def test_a_metapackage_names_the_cores_it_installs(self): from scraper.targets.rocknix_targets_scraper import metapackage_cores # noqa: PLC0415