diff --git a/install/amberelec.json b/install/amberelec.json index ae88cd88..dcb95be9 100644 --- a/install/amberelec.json +++ b/install/amberelec.json @@ -1660,6 +1660,43 @@ "psx" ] }, + "system_titles": { + "3do": "3DO", + "atari-400-800": "Atari 400-800", + "atari-5200": "Atari 5200", + "atari-7800": "Atari 7800", + "atari-lynx": "Atari Lynx", + "atari-st": "Atari ST", + "coleco-colecovision": "ColecoVision", + "commodore-amiga": "Commodore Amiga", + "magnavox-odyssey2": "Magnavox Odyssey2", + "mattel-intellivision": "Mattel Intellivision", + "microsoft-msx": "Microsoft MSX", + "nec-pc-88": "NEC PC-88", + "nec-pc-engine": "NEC PC Engine", + "nec-pc-fx": "NEC PC-FX", + "nintendo-64": "Nintendo 64", + "nintendo-ds": "Nintendo DS", + "nintendo-fds": "Nintendo Famicom Disk System", + "nintendo-gb": "Nintendo Game Boy", + "nintendo-gba": "Nintendo Game Boy Advance", + "nintendo-gbc": "Nintendo Game Boy Color", + "nintendo-satellaview": "Nintendo Satellaview", + "nintendo-sufami-turbo": "Nintendo SuFami Turbo", + "sc-3000": "Sega SC-3000", + "sega-dreamcast": "Sega Dreamcast", + "sega-dreamcast-arcade": "Sega Dreamcast-based arcade boards", + "sega-game-gear": "Sega Game Gear", + "sega-master-system": "Sega Master System", + "sega-mega-cd": "Sega Mega CD", + "sega-saturn": "Sega Saturn", + "sharp-x1": "Sharp X1", + "sharp-x68000": "Sharp X68000", + "sinclair-zx-spectrum": "Sinclair ZX Spectrum", + "snk-neogeo": "SNK Neo Geo", + "snk-neogeo-cd": "SNK Neo Geo CD", + "sony-playstation": "Sony PlayStation" + }, "files": [ { "dest": "bios/panafz1.bin", diff --git a/install/batocera.json b/install/batocera.json index ab47b4e3..4efea9b0 100644 --- a/install/batocera.json +++ b/install/batocera.json @@ -6029,6 +6029,104 @@ "vsmile" ] }, + "system_titles": { + "3do": "3DO", + "acorn-bbc-micro": "Acorn BBC Micro", + "adam": "Coleco Adam", + "apfm1000": "APF M-1000", + "apple-ii": "Apple II", + "apple-iigs": "Apple IIGS", + "apple-macintosh-ii": "Apple Macintosh II", + "archimedes": "Acorn Archimedes", + "astrocade": "Bally Astrocade", + "atari-400-800": "Atari 400-800", + "atari-5200": "Atari 5200", + "atari-lynx": "Atari Lynx", + "atari-st": "Atari ST", + "atom": "Acorn Atom", + "beena": "Sega Beena", + "camplynx": "Camputers Lynx", + "cdi": "Philips CD-i", + "cgenie": "EACA Colour Genie", + "chihiro": "Sega Chihiro", + "coco": "Tandy CoCo", + "coleco-colecovision": "ColecoVision", + "commodore-amiga": "Commodore Amiga", + "crvision": "VTech CreatiVision", + "dragon64": "Dragon 64", + "electron": "Acorn Electron", + "elektronika-bk": "Elektronika BK", + "enterprise-64-128": "Enterprise 64-128", + "entex-advision": "Entex Adventure Vision", + "fairchild-channel-f": "Fairchild Channel F", + "fm7": "Fujitsu FM-7", + "fmtowns": "Fujitsu FM Towns", + "gamate": "Bit Corporation Gamate", + "gamecom": "Tiger Game.com", + "gamepark-gp32": "GamePark GP32", + "gamepock": "Epoch Game Pocket Computer", + "gmaster": "Hartung Game Master", + "hikaru": "Sega Hikaru", + "laser310": "VTech Laser 310", + "loopy": "Casio Loopy", + "magnavox-odyssey2": "Magnavox Odyssey2", + "mattel-intellivision": "Mattel Intellivision", + "mc10": "Tandy MC-10", + "microsoft-msx": "Microsoft MSX", + "mz2000": "Sharp MZ-2000", + "mz2500": "Sharp MZ-2500", + "mz700": "Sharp MZ-700", + "mz800": "Sharp MZ-800", + "mz80k": "Sharp MZ-80K", + "nec-pc-88": "NEC PC-88", + "nec-pc-98": "NEC PC-98", + "nec-pc-engine": "NEC PC Engine", + "nec-pc-fx": "NEC PC-FX", + "nintendo-64dd": "Nintendo 64DD", + "nintendo-ds": "Nintendo DS", + "nintendo-fds": "Nintendo Famicom Disk System", + "nintendo-gamecube": "Nintendo GameCube", + "nintendo-gba": "Nintendo Game Boy Advance", + "nintendo-satellaview": "Nintendo Satellaview", + "nintendo-sgb": "Nintendo Super Game Boy", + "nintendo-sufami-turbo": "Nintendo SuFami Turbo", + "oricatmos": "Oric Atmos", + "pc60": "NEC PC-6001", + "pc80": "NEC PC-8001", + "pcw": "Amstrad PCW", + "philips-videopac": "Philips Videopac", + "pv2000": "Casio PV-2000", + "rx78": "Bandai RX-78", + "scummvm": "ScummVM games", + "scv": "Epoch Super Cassette Vision", + "sega-ai": "Sega AI", + "sega-dreamcast": "Sega Dreamcast", + "sega-dreamcast-arcade": "Sega Dreamcast-based arcade boards", + "sega-mega-cd": "Sega Mega CD", + "sega-saturn": "Sega Saturn", + "sharp-x1": "Sharp X1", + "sharp-x68000": "Sharp X68000", + "snk-neogeo": "SNK Neo Geo", + "snk-neogeo-cd": "SNK Neo Geo CD", + "sony-playstation": "Sony PlayStation", + "sony-playstation-2": "Sony PlayStation 2", + "sony-playstation-3": "Sony PlayStation 3", + "sony-playstation-vita": "Sony PlayStation Vita", + "supracan": "Funtech Super A'Can", + "tandy-vis": "Tandy VIS", + "ti99": "Texas Instruments TI-99", + "triforce": "Sega Triforce", + "trs80": "Tandy TRS-80", + "tutor": "Tomy Tutor", + "vectrex": "GCE Vectrex", + "vgmplay": "Video game music files", + "videoton-tvc": "Videoton TVC", + "vtech-socrates": "VTech Socrates", + "vtech-vsmile": "VTech V.Smile", + "xbox": "Microsoft Xbox", + "xegs": "Atari XEGS", + "zc210": "Zelda Classic" + }, "files": [ { "dest": "panafz1.bin", diff --git a/install/bizhawk.json b/install/bizhawk.json index 399f46d9..4db7b87b 100644 --- a/install/bizhawk.json +++ b/install/bizhawk.json @@ -6,7 +6,7 @@ "platform": "bizhawk", "display_name": "BizHawk", "version": "1.0", - "generated": "2026-10-23T07:11:31Z", + "generated": "2026-10-23T12:47:02Z", "base_destination": "Firmware", "detect": [ { @@ -131,6 +131,40 @@ "TI83" ] }, + "system_titles": { + "3do": "3DO", + "apple-ii": "Apple II", + "atari-7800": "Atari 7800", + "atari-lynx": "Atari Lynx", + "coleco-colecovision": "ColecoVision", + "commodore-amiga": "Commodore Amiga", + "commodore-c64": "Commodore C64", + "doom": "Doom", + "fairchild-channel-f": "Fairchild Channel F", + "gce-vectrex": "GCE Vectrex", + "mattel-intellivision": "Mattel Intellivision", + "microsoft-msx": "Microsoft MSX", + "nec-pc-engine-cd": "NEC PC Engine CD", + "nec-pc-fx": "NEC PC-FX", + "nintendo-3ds": "Nintendo 3DS", + "nintendo-64dd": "Nintendo 64DD", + "nintendo-ds": "Nintendo DS", + "nintendo-gb": "Nintendo Game Boy", + "nintendo-gba": "Nintendo Game Boy Advance", + "nintendo-gbc": "Nintendo Game Boy Color", + "nintendo-nes": "Nintendo NES", + "nintendo-satellaview": "Nintendo Satellaview", + "nintendo-snes": "Nintendo SNES", + "philips-videopac": "Philips Videopac", + "sega-32x": "Sega 32X", + "sega-game-gear": "Sega Game Gear", + "sega-master-system": "Sega Master System", + "sega-mega-drive": "Sega Mega Drive", + "sega-saturn": "Sega Saturn", + "sinclair-zx-spectrum": "Sinclair ZX Spectrum", + "sony-playstation": "Sony PlayStation", + "texas-instruments-ti-83": "Texas Instruments TI-83" + }, "files": [ { "dest": "panafz1.bin", diff --git a/install/emudeck.json b/install/emudeck.json index 1201af98..45f83642 100644 --- a/install/emudeck.json +++ b/install/emudeck.json @@ -1053,6 +1053,27 @@ ] }, "system_names": {}, + "system_titles": { + "coleco-colecovision": "ColecoVision", + "nintendo-3ds": "Nintendo 3DS", + "nintendo-64": "Nintendo 64", + "nintendo-ds": "Nintendo DS", + "nintendo-gamecube": "Nintendo GameCube", + "nintendo-nes": "Nintendo NES", + "nintendo-switch": "Nintendo Switch", + "nintendo-wii-u": "Nintendo Wii U", + "panasonic-3do": "3DO", + "sega-dreamcast": "Sega Dreamcast", + "sega-dreamcast-arcade": "Sega Dreamcast-based arcade boards", + "sega-mega-cd": "Sega Mega CD", + "sega-saturn": "Sega Saturn", + "snk-neogeo": "SNK Neo Geo", + "snk-neogeo-cd": "SNK Neo Geo CD", + "sony-playstation": "Sony PlayStation", + "sony-playstation-2": "Sony PlayStation 2", + "sony-psp": "Sony PlayStation Portable", + "xbox": "Microsoft Xbox" + }, "files": [ { "dest": "colecovision.rom", diff --git a/install/emuelec.json b/install/emuelec.json index 47a40bfb..06a84caf 100644 --- a/install/emuelec.json +++ b/install/emuelec.json @@ -2903,6 +2903,58 @@ "RickDangerous" ] }, + "system_titles": { + "3do": "3DO", + "atari-400-800": "Atari 400-800", + "atari-5200": "Atari 5200", + "atari-7800": "Atari 7800", + "atari-lynx": "Atari Lynx", + "atari-st": "Atari ST", + "cave-story": "Cave Story", + "cdi": "Philips CD-i", + "coleco-colecovision": "ColecoVision", + "commodore-amiga": "Commodore Amiga", + "diablo": "Diablo", + "dinothawr": "Dinothawr game", + "doom": "Doom", + "duke-nukem-2": "Duke Nukem II", + "duke3d": "Duke Nukem 3D", + "flashback": "Flashback", + "fmtowns": "Fujitsu FM Towns", + "magnavox-odyssey2": "Magnavox Odyssey2", + "mattel-intellivision": "Mattel Intellivision", + "microsoft-msx": "Microsoft MSX", + "nec-pc-engine": "NEC PC Engine", + "nec-pc-fx": "NEC PC-FX", + "nintendo-64": "Nintendo 64", + "nintendo-ds": "Nintendo DS", + "nintendo-fds": "Nintendo Famicom Disk System", + "nintendo-gb": "Nintendo Game Boy", + "nintendo-gba": "Nintendo Game Boy Advance", + "nintendo-gbc": "Nintendo Game Boy Color", + "nintendo-satellaview": "Nintendo Satellaview", + "nintendo-sufami-turbo": "Nintendo SuFami Turbo", + "quake": "Quake", + "sc-3000": "Sega SC-3000", + "sega-dreamcast": "Sega Dreamcast", + "sega-dreamcast-arcade": "Sega Dreamcast-based arcade boards", + "sega-game-gear": "Sega Game Gear", + "sega-master-system": "Sega Master System", + "sega-mega-cd": "Sega Mega CD", + "sega-outrun": "OutRun", + "sega-saturn": "Sega Saturn", + "sharp-x68000": "Sharp X68000", + "snk-neogeo": "SNK Neo Geo", + "snk-neogeo-cd": "SNK Neo Geo CD", + "sonic-1-2013": "Sonic the Hedgehog (2013)", + "sonic-2-2013": "Sonic the Hedgehog 2 (2013)", + "sonic-mania": "Sonic Mania", + "soniccd": "Sonic CD", + "sony-playstation": "Sony PlayStation", + "tyrian": "Tyrian", + "vvvvvv": "VVVVVV game", + "xrick": "Rick Dangerous" + }, "files": [ { "dest": "bios/panafz1.bin", diff --git a/install/knulli.json b/install/knulli.json index 99fe1c0b..382c319b 100644 --- a/install/knulli.json +++ b/install/knulli.json @@ -5646,6 +5646,82 @@ "vsmile" ] }, + "system_titles": { + "3do": "3DO", + "acorn-bbc-micro": "Acorn BBC Micro", + "adam": "Coleco Adam", + "apfm1000": "APF M-1000", + "apple-ii": "Apple II", + "apple-iigs": "Apple IIGS", + "apple-macintosh-ii": "Apple Macintosh II", + "archimedes": "Acorn Archimedes", + "astrocde": "Bally Astrocade", + "atari-400-800": "Atari 400-800", + "atari-5200": "Atari 5200", + "atari-lynx": "Atari Lynx", + "atari-st": "Atari ST", + "atom": "Acorn Atom", + "camplynx": "Camputers Lynx", + "cdi": "Philips CD-i", + "chihiro": "Sega Chihiro", + "coco": "Tandy CoCo", + "commodore-amiga": "Commodore Amiga", + "crvision": "VTech CreatiVision", + "electron": "Acorn Electron", + "entex-advision": "Entex Adventure Vision", + "fairchild-channel-f": "Fairchild Channel F", + "fm7": "Fujitsu FM-7", + "fmtowns": "Fujitsu FM Towns", + "fpinball": "Future Pinball tables", + "gamate": "Bit Corporation Gamate", + "gamecom": "Tiger Game.com", + "gamepark-gp32": "GamePark GP32", + "gamepock": "Epoch Game Pocket Computer", + "gmaster": "Hartung Game Master", + "hikaru": "Sega Hikaru", + "laser310": "VTech Laser 310", + "magnavox-odyssey2": "Magnavox Odyssey2", + "mattel-intellivision": "Mattel Intellivision", + "microsoft-msx": "Microsoft MSX", + "microsoft-xbox": "Microsoft Xbox", + "nec-pc-88": "NEC PC-88", + "nec-pc-98": "NEC PC-98", + "nec-pc-engine": "NEC PC Engine", + "nec-pc-fx": "NEC PC-FX", + "nintendo-64dd": "Nintendo 64DD", + "nintendo-ds": "Nintendo DS", + "nintendo-fds": "Nintendo Famicom Disk System", + "nintendo-gamecube": "Nintendo GameCube", + "nintendo-gba": "Nintendo Game Boy Advance", + "nintendo-satellaview": "Nintendo Satellaview", + "nintendo-sgb": "Nintendo Super Game Boy", + "nintendo-sufami-turbo": "Nintendo SuFami Turbo", + "philips-videopac": "Philips Videopac", + "scummvm": "ScummVM games", + "scv": "Epoch Super Cassette Vision", + "sega-dreamcast": "Sega Dreamcast", + "sega-dreamcast-arcade": "Sega Dreamcast-based arcade boards", + "sega-mega-cd": "Sega Mega CD", + "sega-saturn": "Sega Saturn", + "sharp-x1": "Sharp X1", + "sharp-x68000": "Sharp X68000", + "snk-neogeo": "SNK Neo Geo", + "snk-neogeo-cd": "SNK Neo Geo CD", + "sony-playstation": "Sony PlayStation", + "sony-playstation-2": "Sony PlayStation 2", + "sony-playstation-3": "Sony PlayStation 3", + "sony-playstation-vita": "Sony PlayStation Vita", + "supracan": "Funtech Super A'Can", + "tandy-vis": "Tandy VIS", + "ti99": "Texas Instruments TI-99", + "tutor": "Tomy Tutor", + "vectrex": "GCE Vectrex", + "vgmplay": "Video game music files", + "vtech-socrates": "VTech Socrates", + "vtech-vsmile": "VTech V.Smile", + "xegs": "Atari XEGS", + "zc210": "Zelda Classic" + }, "files": [ { "dest": "panafz1.bin", diff --git a/install/lakka.json b/install/lakka.json index bf9271e4..c6a10279 100644 --- a/install/lakka.json +++ b/install/lakka.json @@ -1418,6 +1418,73 @@ "Videoton - TV Computer" ] }, + "system_titles": { + "3do": "3DO", + "amstrad-cpc": "Amstrad CPC", + "apple-macintosh-ii": "Apple Macintosh II", + "arcade": "Arcade games", + "atari-400-800": "Atari 400-800", + "atari-5200": "Atari 5200", + "atari-7800": "Atari 7800", + "atari-lynx": "Atari Lynx", + "atari-st": "Atari ST", + "coleco-colecovision": "ColecoVision", + "commodore-amiga": "Commodore Amiga", + "commodore-c128": "Commodore C128", + "dinothawr": "Dinothawr game", + "doom": "Doom", + "dos": "MS-DOS", + "elektronika-bk": "Elektronika BK", + "enterprise-64-128": "Enterprise 64-128", + "epoch-scv": "Epoch Super Cassette Vision", + "fairchild-channel-f": "Fairchild Channel F", + "galaksija": "Galaksija computer", + "j2me": "Java J2ME", + "magnavox-odyssey2": "Magnavox Odyssey2", + "mattel-intellivision": "Mattel Intellivision", + "microsoft-msx": "Microsoft MSX", + "nec-pc-88": "NEC PC-88", + "nec-pc-98": "NEC PC-98", + "nec-pc-engine": "NEC PC Engine", + "nec-pc-fx": "NEC PC-FX", + "nintendo-64dd": "Nintendo 64DD", + "nintendo-ds": "Nintendo DS", + "nintendo-dsi": "Nintendo DSi", + "nintendo-fds": "Nintendo Famicom Disk System", + "nintendo-gamecube": "Nintendo GameCube", + "nintendo-gb": "Nintendo Game Boy", + "nintendo-gba": "Nintendo Game Boy Advance", + "nintendo-gbc": "Nintendo Game Boy Color", + "nintendo-nes": "Nintendo NES", + "nintendo-pokemon-mini": "Nintendo Pokemon Mini", + "nintendo-satellaview": "Nintendo Satellaview", + "nintendo-sgb": "Nintendo Super Game Boy", + "nintendo-snes": "Nintendo SNES", + "nintendo-sufami-turbo": "Nintendo SuFami Turbo", + "palm-os": "Palm OS", + "philips-cdi": "Philips CD-i", + "philips-videopac": "Philips Videopac", + "scummvm": "ScummVM games", + "sega-dreamcast": "Sega Dreamcast", + "sega-dreamcast-arcade": "Sega Dreamcast-based arcade boards", + "sega-game-gear": "Sega Game Gear", + "sega-master-system": "Sega Master System", + "sega-mega-cd": "Sega Mega CD", + "sega-mega-drive": "Sega Mega Drive", + "sega-saturn": "Sega Saturn", + "sharp-x1": "Sharp X1", + "sharp-x68000": "Sharp X68000", + "sinclair-zx-spectrum": "Sinclair ZX Spectrum", + "snk-neogeo-cd": "SNK Neo Geo CD", + "sony-playstation": "Sony PlayStation", + "sony-playstation-2": "Sony PlayStation 2", + "sony-psp": "Sony PlayStation Portable", + "ti-83": "Texas Instruments TI-83", + "videoton-tvc": "Videoton TVC", + "vircon32": "Vircon32 cartridges", + "wolfenstein-3d": "Wolfenstein 3D", + "xrick": "Rick Dangerous" + }, "files": [ { "dest": "3do_arcade_saot.bin", diff --git a/install/minui.json b/install/minui.json index b44b2ea0..b10f3869 100644 --- a/install/minui.json +++ b/install/minui.json @@ -6,7 +6,7 @@ "platform": "minui", "display_name": "MinUI", "version": "1.0", - "generated": "2026-10-22T05:12:35Z", + "generated": "2026-10-23T12:47:02Z", "base_destination": "", "detect": [ { @@ -39,6 +39,7 @@ }, "system_cores": {}, "system_names": {}, + "system_titles": {}, "files": [ { "dest": "Bios/MGBA/gb_bios.bin", diff --git a/install/misterfpga.json b/install/misterfpga.json index 0f5aa2a1..5afcb6bf 100644 --- a/install/misterfpga.json +++ b/install/misterfpga.json @@ -6,7 +6,7 @@ "platform": "misterfpga", "display_name": "MiSTer FPGA", "version": "1.0", - "generated": "2026-10-23T07:11:31Z", + "generated": "2026-10-23T12:47:02Z", "base_destination": "games", "detect": [ { @@ -93,6 +93,48 @@ "GameCom" ] }, + "system_titles": { + "3do": "3DO", + "apple-iigs": "Apple IIGS", + "atari-jaguar": "Atari Jaguar", + "atari-lynx": "Atari Lynx", + "bally-astrocade": "Bally Astrocade", + "casio-pv2000": "Casio PV-2000", + "coco3": "Tandy Color Computer 3", + "creativision": "VTech CreatiVision", + "epoch-scv": "Epoch Super Cassette Vision", + "gamate": "Bit Corporation Gamate", + "gameking": "TimeTop GameKing", + "interact": "Interact Home Computer", + "loopy": "Casio Loopy", + "marty": "Fujitsu FM Towns Marty", + "mattel-intellivision": "Mattel Intellivision", + "microsoft-msx": "Microsoft MSX", + "nec-pc-88": "NEC PC-88", + "nec-pc-engine-cd": "NEC PC Engine CD", + "ngpc": "SNK Neo Geo Pocket Color", + "nintendo-64": "Nintendo 64", + "nintendo-gb": "Nintendo Game Boy", + "nintendo-gba": "Nintendo Game Boy Advance", + "nintendo-nes": "Nintendo NES", + "nintendo-pokemon-mini": "Nintendo Pokemon Mini", + "nintendo-sgb": "Nintendo Super Game Boy", + "nintendo-snes": "Nintendo SNES", + "philips-cdi": "Philips CD-i", + "pocket-challenge-v2": "Benesse Pocket Challenge V2", + "sega-mega-cd": "Sega Mega CD", + "sega-saturn": "Sega Saturn", + "snk-neogeo": "SNK Neo Geo", + "snk-neogeo-cd": "SNK Neo Geo CD", + "sony-playstation": "Sony PlayStation", + "studio-ii": "RCA Studio II", + "superacan": "Funtech Super A'Can", + "ti99": "Texas Instruments TI-99", + "tiger-game-com": "Tiger Game.com", + "videobrain": "Umtech VideoBrain", + "wonderswan": "Bandai WonderSwan", + "wonderswan-color": "Bandai WonderSwan Color" + }, "files": [ { "dest": "3DO/boot.rom", diff --git a/install/myminui.json b/install/myminui.json index 16952236..8fc13f3d 100644 --- a/install/myminui.json +++ b/install/myminui.json @@ -6,7 +6,7 @@ "platform": "myminui", "display_name": "MyMinUI", "version": "1.0", - "generated": "2026-10-23T11:13:30Z", + "generated": "2026-10-23T12:47:02Z", "base_destination": "", "detect": [ { @@ -91,6 +91,7 @@ }, "system_cores": {}, "system_names": {}, + "system_titles": {}, "files": [ { "dest": "Bios/DOS/MT32_CONTROL.ROM", diff --git a/install/nextui.json b/install/nextui.json index d603fd0e..4ae61e2a 100644 --- a/install/nextui.json +++ b/install/nextui.json @@ -6,7 +6,7 @@ "platform": "nextui", "display_name": "NextUI", "version": "1.0", - "generated": "2026-10-23T07:11:31Z", + "generated": "2026-10-23T12:47:02Z", "base_destination": "", "detect": [ { @@ -88,6 +88,7 @@ }, "system_cores": {}, "system_names": {}, + "system_titles": {}, "files": [ { "dest": "Bios/FBN/fbneo/hiscore.dat", diff --git a/install/recalbox.json b/install/recalbox.json index b3c32c30..c310793c 100644 --- a/install/recalbox.json +++ b/install/recalbox.json @@ -6,7 +6,7 @@ "platform": "recalbox", "display_name": "Recalbox", "version": "1.0", - "generated": "2026-10-23T11:13:30Z", + "generated": "2026-10-23T12:47:02Z", "base_destination": "bios", "detect": [ { @@ -1584,6 +1584,65 @@ "ps2" ] }, + "system_titles": { + "3do": "3DO", + "64dd": "Nintendo 64DD", + "apple2gs": "Apple IIGS", + "atari-400-800": "Atari 400-800", + "atari-5200": "Atari 5200", + "atari-7800": "Atari 7800", + "atari-st": "Atari ST", + "cdi": "Philips CD-i", + "coco": "Tandy CoCo", + "coleco-colecovision": "ColecoVision", + "commodore-amiga": "Commodore Amiga", + "commodore-c64": "Commodore C64", + "dragon64": "Dragon 64", + "elektronika-bk": "Elektronika BK", + "fairchild-channel-f": "Fairchild Channel F", + "lynx": "Atari Lynx", + "macintosh": "Apple Macintosh", + "magnavox-odyssey2": "Magnavox Odyssey2", + "mattel-intellivision": "Mattel Intellivision", + "microsoft-msx": "Microsoft MSX", + "naomi2": "Sega NAOMI 2", + "nec-pc-engine": "NEC PC Engine", + "nec-pc-fx": "NEC PC-FX", + "nintendo-ds": "Nintendo DS", + "nintendo-fds": "Nintendo Famicom Disk System", + "nintendo-gamecube": "Nintendo GameCube", + "nintendo-gb": "Nintendo Game Boy", + "nintendo-gba": "Nintendo Game Boy Advance", + "nintendo-gbc": "Nintendo Game Boy Color", + "nintendo-pokemon-mini": "Nintendo Pokemon Mini", + "nintendo-sufami-turbo": "Nintendo SuFami Turbo", + "oricatmos": "Oric Atmos", + "palm-os": "Palm OS", + "pc88": "NEC PC-88", + "pc98": "NEC PC-98", + "philips-videopac": "Philips Videopac", + "satellaview": "Nintendo Satellaview", + "scummvm": "ScummVM games", + "scv": "Epoch Super Cassette Vision", + "sega-dreamcast": "Sega Dreamcast", + "sega-dreamcast-arcade": "Sega Dreamcast-based arcade boards", + "sega-game-gear": "Sega Game Gear", + "sega-master-system": "Sega Master System", + "sega-mega-cd": "Sega Mega CD", + "sega-mega-drive": "Sega Mega Drive", + "sega-saturn": "Sega Saturn", + "sharp-x68000": "Sharp X68000", + "sinclair-zx-spectrum": "Sinclair ZX Spectrum", + "snk-neogeo": "SNK Neo Geo", + "snk-neogeo-cd": "SNK Neo Geo CD", + "sony-playstation": "Sony PlayStation", + "sony-playstation-2": "Sony PlayStation 2", + "spectravideo": "Spectravideo", + "stv": "Sega ST-V", + "ti994a": "Texas Instruments TI-99", + "x1": "Sharp X1", + "xbox": "Microsoft Xbox" + }, "files": [ { "dest": "3do/panafz1.bin", diff --git a/install/retroarch.json b/install/retroarch.json index 4e0d7843..14475043 100644 --- a/install/retroarch.json +++ b/install/retroarch.json @@ -2029,6 +2029,73 @@ "Videoton - TV Computer" ] }, + "system_titles": { + "3do": "3DO", + "amstrad-cpc": "Amstrad CPC", + "apple-macintosh-ii": "Apple Macintosh II", + "arcade": "Arcade games", + "atari-400-800": "Atari 400-800", + "atari-5200": "Atari 5200", + "atari-7800": "Atari 7800", + "atari-lynx": "Atari Lynx", + "atari-st": "Atari ST", + "coleco-colecovision": "ColecoVision", + "commodore-amiga": "Commodore Amiga", + "commodore-c128": "Commodore C128", + "dinothawr": "Dinothawr game", + "doom": "Doom", + "dos": "MS-DOS", + "elektronika-bk": "Elektronika BK", + "enterprise-64-128": "Enterprise 64-128", + "epoch-scv": "Epoch Super Cassette Vision", + "fairchild-channel-f": "Fairchild Channel F", + "galaksija": "Galaksija computer", + "j2me": "Java J2ME", + "magnavox-odyssey2": "Magnavox Odyssey2", + "mattel-intellivision": "Mattel Intellivision", + "microsoft-msx": "Microsoft MSX", + "nec-pc-88": "NEC PC-88", + "nec-pc-98": "NEC PC-98", + "nec-pc-engine": "NEC PC Engine", + "nec-pc-fx": "NEC PC-FX", + "nintendo-64dd": "Nintendo 64DD", + "nintendo-ds": "Nintendo DS", + "nintendo-dsi": "Nintendo DSi", + "nintendo-fds": "Nintendo Famicom Disk System", + "nintendo-gamecube": "Nintendo GameCube", + "nintendo-gb": "Nintendo Game Boy", + "nintendo-gba": "Nintendo Game Boy Advance", + "nintendo-gbc": "Nintendo Game Boy Color", + "nintendo-nes": "Nintendo NES", + "nintendo-pokemon-mini": "Nintendo Pokemon Mini", + "nintendo-satellaview": "Nintendo Satellaview", + "nintendo-sgb": "Nintendo Super Game Boy", + "nintendo-snes": "Nintendo SNES", + "nintendo-sufami-turbo": "Nintendo SuFami Turbo", + "palm-os": "Palm OS", + "philips-cdi": "Philips CD-i", + "philips-videopac": "Philips Videopac", + "scummvm": "ScummVM games", + "sega-dreamcast": "Sega Dreamcast", + "sega-dreamcast-arcade": "Sega Dreamcast-based arcade boards", + "sega-game-gear": "Sega Game Gear", + "sega-master-system": "Sega Master System", + "sega-mega-cd": "Sega Mega CD", + "sega-mega-drive": "Sega Mega Drive", + "sega-saturn": "Sega Saturn", + "sharp-x1": "Sharp X1", + "sharp-x68000": "Sharp X68000", + "sinclair-zx-spectrum": "Sinclair ZX Spectrum", + "snk-neogeo-cd": "SNK Neo Geo CD", + "sony-playstation": "Sony PlayStation", + "sony-playstation-2": "Sony PlayStation 2", + "sony-psp": "Sony PlayStation Portable", + "ti-83": "Texas Instruments TI-83", + "videoton-tvc": "Videoton TVC", + "vircon32": "Vircon32 cartridges", + "wolfenstein-3d": "Wolfenstein 3D", + "xrick": "Rick Dangerous" + }, "files": [ { "dest": "3do_arcade_saot.bin", diff --git a/install/retrobat.json b/install/retrobat.json index 52c3de4c..46d0cc27 100644 --- a/install/retrobat.json +++ b/install/retrobat.json @@ -3432,6 +3432,98 @@ "ecwolf" ] }, + "system_titles": { + "3do": "3DO", + "adam": "Coleco Adam", + "apfm1000": "APF M-1000", + "apple-ii": "Apple II", + "apple-iigs": "Apple IIGS", + "aquarius": "Mattel Aquarius", + "archimedes": "Acorn Archimedes", + "astrocde": "Bally Astrocade", + "atari-400-800": "Atari 400-800", + "atari-5200": "Atari 5200", + "atari-jaguar": "Atari Jaguar", + "atari-lynx": "Atari Lynx", + "atari-st": "Atari ST", + "atari7800": "Atari 7800", + "atom": "Acorn Atom", + "bbcmicro": "Acorn BBC Micro", + "camplynx": "Camputers Lynx", + "cdi": "Philips CD-i", + "chihiro": "Sega Chihiro", + "coco": "Tandy CoCo", + "coleco-colecovision": "ColecoVision", + "commodore-amiga": "Commodore Amiga", + "crvision": "VTech CreatiVision", + "dragon32": "Dragon 32", + "electron": "Acorn Electron", + "elektronika-bk": "Elektronika BK", + "emerson-arcadia-2001": "Emerson Arcadia 2001", + "entex-advision": "Entex Adventure Vision", + "fairchild-channel-f": "Fairchild Channel F", + "fm7": "Fujitsu FM-7", + "fmtowns": "Fujitsu FM Towns", + "gamate": "Bit Corporation Gamate", + "gamecom": "Tiger Game.com", + "gamepark-gp32": "GamePark GP32", + "gamepock": "Epoch Game Pocket Computer", + "gmaster": "Hartung Game Master", + "hikaru": "Sega Hikaru", + "j2me": "Java J2ME", + "laseractive": "Pioneer LaserActive", + "loopy": "Casio Loopy", + "magnavox-odyssey2": "Magnavox Odyssey2", + "mattel-intellivision": "Mattel Intellivision", + "megacd": "Sega Mega CD", + "microsoft-msx": "Microsoft MSX", + "namco-system246": "Namco System 246", + "nec-pc-88": "NEC PC-88", + "nec-pc-98": "NEC PC-98", + "nec-pc-engine": "NEC PC Engine", + "nec-pc-fx": "NEC PC-FX", + "neogeo64": "SNK Hyper Neo Geo 64", + "ngage": "Nokia N-Gage", + "ngp": "SNK Neo Geo Pocket", + "ngpc": "SNK Neo Geo Pocket Color", + "nintendo-64dd": "Nintendo 64DD", + "nintendo-ds": "Nintendo DS", + "nintendo-fds": "Nintendo Famicom Disk System", + "nintendo-gb": "Nintendo Game Boy", + "nintendo-gba": "Nintendo Game Boy Advance", + "nintendo-gbc": "Nintendo Game Boy Color", + "nintendo-pokemon-mini": "Nintendo Pokemon Mini", + "nintendo-satellaview": "Nintendo Satellaview", + "nintendo-sgb": "Nintendo Super Game Boy", + "nintendo-sufami-turbo": "Nintendo SuFami Turbo", + "pegasus": "Aamber Pegasus", + "pv1000": "Casio PV-1000", + "scummvm": "ScummVM games", + "scv": "Epoch Super Cassette Vision", + "sega-dreamcast": "Sega Dreamcast", + "sega-dreamcast-arcade": "Sega Dreamcast-based arcade boards", + "sega-master-system": "Sega Master System", + "sega-saturn": "Sega Saturn", + "sega32x": "Sega 32X", + "segastv": "Sega ST-V", + "sharp-x1": "Sharp X1", + "sharp-x68000": "Sharp X68000", + "snk-neogeo": "SNK Neo Geo", + "snk-neogeo-cd": "SNK Neo Geo CD", + "sony-playstation": "Sony PlayStation", + "sony-playstation-2": "Sony PlayStation 2", + "supracan": "Funtech Super A'Can", + "ti99": "Texas Instruments TI-99", + "triforce": "Sega Triforce", + "tutor": "Tomy Tutor", + "vc4000": "Interton VC 4000", + "vectrex": "GCE Vectrex", + "vg5k": "Philips VG 5000", + "vtech-vsmile": "VTech V.Smile", + "wolfenstein3d": "Wolfenstein 3D", + "xbox": "Microsoft Xbox", + "xegs": "Atari XEGS" + }, "files": [ { "dest": "panafz1.bin", diff --git a/install/retrodeck.json b/install/retrodeck.json index 6fdc1351..a3bffcd2 100644 --- a/install/retrodeck.json +++ b/install/retrodeck.json @@ -2116,6 +2116,73 @@ "wolfenstein" ] }, + "system_titles": { + "3do": "3DO", + "amstrad-cpc": "Amstrad CPC", + "apple-ii": "Apple II", + "apple-iigs": "Apple IIGS", + "apple-macintosh-ii": "Apple Macintosh II", + "arcade": "Arcade games", + "atari-400-800": "Atari 400-800", + "atari-5200": "Atari 5200", + "atari-7800": "Atari 7800", + "atari-jaguar": "Atari Jaguar", + "atari-lynx": "Atari Lynx", + "atari-st": "Atari ST", + "coco": "Tandy CoCo", + "coleco-colecovision": "ColecoVision", + "commodore-amiga": "Commodore Amiga", + "commodore-c64": "Commodore C64", + "doom": "Doom", + "dragon64": "Dragon 64", + "enterprise-64-128": "Enterprise 64-128", + "epoch-scv": "Epoch Super Cassette Vision", + "fairchild-channel-f": "Fairchild Channel F", + "hartung-game-master": "Hartung Game Master", + "j2me": "Java J2ME", + "mattel-intellivision": "Mattel Intellivision", + "microsoft-msx": "Microsoft MSX", + "microsoft-xbox": "Microsoft Xbox", + "nec-pc-88": "NEC PC-88", + "nec-pc-98": "NEC PC-98", + "nec-pc-engine": "NEC PC Engine", + "nec-pc-fx": "NEC PC-FX", + "neogeo": "SNK Neo Geo", + "ngp": "SNK Neo Geo Pocket", + "ngpc": "SNK Neo Geo Pocket Color", + "nintendo-3ds": "Nintendo 3DS", + "nintendo-64dd": "Nintendo 64DD", + "nintendo-ds": "Nintendo DS", + "nintendo-gb": "Nintendo Game Boy", + "nintendo-gba": "Nintendo Game Boy Advance", + "nintendo-gbc": "Nintendo Game Boy Color", + "nintendo-nes": "Nintendo NES", + "nintendo-pokemon-mini": "Nintendo Pokemon Mini", + "nintendo-snes": "Nintendo SNES", + "odyssey2": "Magnavox Odyssey2", + "philips-cdi": "Philips CD-i", + "pico8": "Lexaloffle PICO-8", + "scummvm": "ScummVM games", + "sega-dreamcast": "Sega Dreamcast", + "sega-game-gear": "Sega Game Gear", + "sega-master-system": "Sega Master System", + "sega-mega-cd": "Sega Mega CD", + "sega-mega-drive": "Sega Mega Drive", + "sega-saturn": "Sega Saturn", + "sega32x": "Sega 32X", + "sinclair-zx-spectrum": "Sinclair ZX Spectrum", + "snk-neogeo-cd": "SNK Neo Geo CD", + "sony-playstation": "Sony PlayStation", + "sony-playstation-2": "Sony PlayStation 2", + "sony-psp": "Sony PlayStation Portable", + "supracan": "Funtech Super A'Can", + "tiger-game-com": "Tiger Game.com", + "triforce": "Sega Triforce", + "vectrex": "GCE Vectrex", + "vtech-vsmile": "VTech V.Smile", + "wolfenstein-3d": "Wolfenstein 3D", + "x68000": "Sharp X68000" + }, "files": [ { "dest": "bios/panafz1.bin", diff --git a/install/retropie.json b/install/retropie.json index 5437f1e5..ec82fa0e 100644 --- a/install/retropie.json +++ b/install/retropie.json @@ -4887,6 +4887,73 @@ "Videoton - TV Computer" ] }, + "system_titles": { + "3do": "3DO", + "amstrad-cpc": "Amstrad CPC", + "apple-macintosh-ii": "Apple Macintosh II", + "arcade": "Arcade games", + "atari-400-800": "Atari 400-800", + "atari-5200": "Atari 5200", + "atari-7800": "Atari 7800", + "atari-lynx": "Atari Lynx", + "atari-st": "Atari ST", + "coleco-colecovision": "ColecoVision", + "commodore-amiga": "Commodore Amiga", + "commodore-c128": "Commodore C128", + "dinothawr": "Dinothawr game", + "doom": "Doom", + "dos": "MS-DOS", + "elektronika-bk": "Elektronika BK", + "enterprise-64-128": "Enterprise 64-128", + "epoch-scv": "Epoch Super Cassette Vision", + "fairchild-channel-f": "Fairchild Channel F", + "galaksija": "Galaksija computer", + "j2me": "Java J2ME", + "magnavox-odyssey2": "Magnavox Odyssey2", + "mattel-intellivision": "Mattel Intellivision", + "microsoft-msx": "Microsoft MSX", + "nec-pc-88": "NEC PC-88", + "nec-pc-98": "NEC PC-98", + "nec-pc-engine": "NEC PC Engine", + "nec-pc-fx": "NEC PC-FX", + "nintendo-64dd": "Nintendo 64DD", + "nintendo-ds": "Nintendo DS", + "nintendo-dsi": "Nintendo DSi", + "nintendo-fds": "Nintendo Famicom Disk System", + "nintendo-gamecube": "Nintendo GameCube", + "nintendo-gb": "Nintendo Game Boy", + "nintendo-gba": "Nintendo Game Boy Advance", + "nintendo-gbc": "Nintendo Game Boy Color", + "nintendo-nes": "Nintendo NES", + "nintendo-pokemon-mini": "Nintendo Pokemon Mini", + "nintendo-satellaview": "Nintendo Satellaview", + "nintendo-sgb": "Nintendo Super Game Boy", + "nintendo-snes": "Nintendo SNES", + "nintendo-sufami-turbo": "Nintendo SuFami Turbo", + "palm-os": "Palm OS", + "philips-cdi": "Philips CD-i", + "philips-videopac": "Philips Videopac", + "scummvm": "ScummVM games", + "sega-dreamcast": "Sega Dreamcast", + "sega-dreamcast-arcade": "Sega Dreamcast-based arcade boards", + "sega-game-gear": "Sega Game Gear", + "sega-master-system": "Sega Master System", + "sega-mega-cd": "Sega Mega CD", + "sega-mega-drive": "Sega Mega Drive", + "sega-saturn": "Sega Saturn", + "sharp-x1": "Sharp X1", + "sharp-x68000": "Sharp X68000", + "sinclair-zx-spectrum": "Sinclair ZX Spectrum", + "snk-neogeo-cd": "SNK Neo Geo CD", + "sony-playstation": "Sony PlayStation", + "sony-playstation-2": "Sony PlayStation 2", + "sony-psp": "Sony PlayStation Portable", + "ti-83": "Texas Instruments TI-83", + "videoton-tvc": "Videoton TVC", + "vircon32": "Vircon32 cartridges", + "wolfenstein-3d": "Wolfenstein 3D", + "xrick": "Rick Dangerous" + }, "files": [ { "dest": "3do_arcade_saot.bin", diff --git a/install/rocknix.json b/install/rocknix.json index b780bb9b..4b06aeae 100644 --- a/install/rocknix.json +++ b/install/rocknix.json @@ -1644,6 +1644,22 @@ "ps3" ] }, + "system_titles": { + "microsoft-xbox": "Microsoft Xbox", + "nintendo-ds": "Nintendo DS", + "nintendo-gamecube": "Nintendo GameCube", + "nintendo-gb": "Nintendo Game Boy", + "nintendo-gba": "Nintendo Game Boy Advance", + "nintendo-gbc": "Nintendo Game Boy Color", + "sega-dreamcast": "Sega Dreamcast", + "sega-game-gear": "Sega Game Gear", + "sega-master-system": "Sega Master System", + "sega-mega-cd": "Sega Mega CD", + "sega-saturn": "Sega Saturn", + "sony-playstation": "Sony PlayStation", + "sony-playstation-2": "Sony PlayStation 2", + "sony-playstation-3": "Sony PlayStation 3" + }, "files": [ { "dest": "xemu/bios/mcpx_1.0.bin", diff --git a/install/romm.json b/install/romm.json index 7b1ed043..a3b23690 100644 --- a/install/romm.json +++ b/install/romm.json @@ -6,7 +6,7 @@ "platform": "romm", "display_name": "RomM", "version": "1.0", - "generated": "2026-10-23T07:11:31Z", + "generated": "2026-10-23T12:47:02Z", "base_destination": "bios", "detect": [ { @@ -9252,6 +9252,63 @@ "wolfenstein" ] }, + "system_titles": { + "3do": "3DO", + "amstrad-cpc": "Amstrad CPC", + "apple-macintosh-ii": "Apple Macintosh II", + "arcade": "Arcade games", + "atari-400-800": "Atari 400-800", + "atari-5200": "Atari 5200", + "atari-7800": "Atari 7800", + "atari-lynx": "Atari Lynx", + "atari-st": "Atari ST", + "coleco-colecovision": "ColecoVision", + "commodore-amiga": "Commodore Amiga", + "doom": "Doom", + "enterprise-64-128": "Enterprise 64-128", + "fairchild-channel-f": "Fairchild Channel F", + "j2me": "Java J2ME", + "magnavox-odyssey2": "Magnavox Odyssey2", + "mattel-intellivision": "Mattel Intellivision", + "microsoft-msx": "Microsoft MSX", + "microsoft-xbox": "Microsoft Xbox", + "nec-pc-98": "NEC PC-98", + "nec-pc-engine": "NEC PC Engine", + "nec-pc-engine-cd": "NEC PC Engine CD", + "nec-pc-fx": "NEC PC-FX", + "nintendo-64dd": "Nintendo 64DD", + "nintendo-ds": "Nintendo DS", + "nintendo-fds": "Nintendo Famicom Disk System", + "nintendo-gamecube": "Nintendo GameCube", + "nintendo-gb": "Nintendo Game Boy", + "nintendo-gba": "Nintendo Game Boy Advance", + "nintendo-gbc": "Nintendo Game Boy Color", + "nintendo-nes": "Nintendo NES", + "nintendo-pokemon-mini": "Nintendo Pokemon Mini", + "nintendo-satellaview": "Nintendo Satellaview", + "nintendo-sgb": "Nintendo Super Game Boy", + "nintendo-snes": "Nintendo SNES", + "nintendo-sufami-turbo": "Nintendo SuFami Turbo", + "philips-videopac": "Philips Videopac", + "scummvm": "ScummVM games", + "sega-dreamcast": "Sega Dreamcast", + "sega-game-gear": "Sega Game Gear", + "sega-master-system": "Sega Master System", + "sega-mega-cd": "Sega Mega CD", + "sega-mega-drive": "Sega Mega Drive", + "sega-saturn": "Sega Saturn", + "sharp-x1": "Sharp X1", + "sharp-x68000": "Sharp X68000", + "sinclair-zx-spectrum": "Sinclair ZX Spectrum", + "snk-neogeo-aes": "SNK Neo Geo AES", + "snk-neogeo-cd": "SNK Neo Geo CD", + "snk-neogeo-mvs": "SNK Neo Geo MVS", + "sony-playstation": "Sony PlayStation", + "sony-playstation-2": "Sony PlayStation 2", + "sony-psp": "Sony PlayStation Portable", + "videoton-tvc": "Videoton TVC", + "wolfenstein-3d": "Wolfenstein 3D" + }, "files": [ { "dest": "3do/3do_arcade_saot.bin", diff --git a/schemas/install-manifest.schema.json b/schemas/install-manifest.schema.json index a2fd94b8..e3587ce6 100644 --- a/schemas/install-manifest.schema.json +++ b/schemas/install-manifest.schema.json @@ -136,6 +136,14 @@ "uniqueItems": true } }, + "system_titles": { + "description": "Each system id with the name a person reads for it, the one the site prints (Sony PlayStation). A system the site cannot name is absent.", + "type": "object", + "additionalProperties": { + "type": "string", + "minLength": 1 + } + }, "system_names": { "description": "Each platform system with the names the platform's own file gives it (native_system), which the installer accepts for --system.", "type": "object", diff --git a/scripts/generate_pack.py b/scripts/generate_pack.py index 319cb8f8..90dd2ab3 100644 --- a/scripts/generate_pack.py +++ b/scripts/generate_pack.py @@ -12,7 +12,7 @@ and 3-tier storage (embedded/external/user_provided). from __future__ import annotations -from collections.abc import Callable, Iterator +from collections.abc import Callable, Iterable, Iterator from artifacts import _build_timestamp, set_plain_mode import argparse @@ -4095,6 +4095,32 @@ def _record_unplaceable(unplaceable: list[dict], record_omission: Callable[..., CASE_FOLDING_OS = frozenset({"windows", "darwin"}) +def system_titles(*entry_lists: Iterable[dict]) -> dict[str, str]: + """The name a person reads for each system the entries carry. + + Batocera names PlayStation `psx` and the installer showed + `sony-playstation (psx)`: neither is what a beginner looks for. The + title is the one the site prints, so a system reads the same on its + page and in the installer. A system the site cannot name is left out, + and the installer shows its id: the site build refuses such a system, + so only a test fixture reaches here with one. + """ + from siterender import system_name + + ids = { + sys_id + for entries in entry_lists for entry in entries + for sys_id in entry.get("systems") or [] + } + titles: dict[str, str] = {} + for sys_id in sorted(ids): + try: + titles[sys_id] = system_name(sys_id) + except KeyError: + continue + return titles + + def generate_manifest( platform_name: str, platforms_dir: str, @@ -4562,6 +4588,7 @@ def generate_manifest( # The names the platform itself gives its systems (Batocera's psx), # which --system accepts beside the ids. "system_names": platform_system_names(config, list(pack_systems)), + "system_titles": system_titles(manifest_files, omitted_by_destination.values()), "files": manifest_files, } if data_directories: diff --git a/tests/test_install_selection.py b/tests/test_install_selection.py index 667a8d21..3577b6da 100644 --- a/tests/test_install_selection.py +++ b/tests/test_install_selection.py @@ -1093,6 +1093,19 @@ class ThePlatformsOwnSystemNamesAreAccepted(unittest.TestCase): self.assertIn('"system_names": platform_system_names(config, list(pack_systems))', source) + def test_every_listed_system_gets_the_title_the_site_prints(self): + sys.path.insert(0, str(REPO_ROOT / "scripts")) + from generate_pack import system_titles # noqa: PLC0415 + + files = [{"dest": "a.bin", "systems": ["sony-playstation", "nintendo-gba"]}] + omitted = [{"dest": "b.bin", "systems": ["3do"]}] + self.assertEqual(system_titles(files, omitted), { + "3do": "3DO", + "nintendo-gba": "Nintendo Game Boy Advance", + "sony-playstation": "Sony PlayStation", + }) + self.assertEqual(system_titles([{"dest": "c.bin", "systems": ["sys-a"]}]), {}) + def test_a_native_name_narrows_and_lists(self): with FakeRepository() as repo: path = repo.root / "install" / "retroarch.json"