From f2e21f3a4470a8c9417c209f63f9314c287a6e65 Mon Sep 17 00:00:00 2001 From: Abdessamad Derraz <3028866+Abdess@users.noreply.github.com> Date: Sat, 24 Oct 2026 00:39:34 +0200 Subject: [PATCH] docs: name profiles as their projects write them emulator: carried the file stem on 67 profiles, so site links read like ids. Each now takes the project's own name (libretro .info corename, README title, window title or site title). tests/test_profile_names.py allows the stem only on a commented list: lowercase project names, test cores, aliases and the template. --- emulators/advanced_tests.yml | 2 +- emulators/amiarcadia.yml | 2 +- emulators/beebem.yml | 2 +- emulators/beetle_saturn.yml | 2 +- emulators/corsixth.yml | 2 +- emulators/devilutionx.yml | 2 +- emulators/dxx-rebirth.yml | 2 +- emulators/eka2l1.yml | 2 +- emulators/ep128emu_core.yml | 2 +- emulators/fallout1-ce.yml | 2 +- emulators/fallout2-ce.yml | 2 +- emulators/future-pinball-fploader.yml | 2 +- emulators/future-pinball.yml | 2 +- emulators/gopher64.yml | 2 +- emulators/lightspark.yml | 2 +- emulators/mednafen_gba.yml | 2 +- emulators/mednafen_pce.yml | 2 +- emulators/mednafen_pce_fast.yml | 2 +- emulators/mednafen_snes.yml | 2 +- emulators/mednafen_supafaust.yml | 2 +- emulators/mednafen_supergrafx.yml | 2 +- emulators/mesen-s.yml | 2 +- emulators/mpv.yml | 2 +- emulators/nekop2.yml | 2 +- emulators/openbor.yml | 2 +- emulators/openjk.yml | 2 +- emulators/pce-emu.yml | 2 +- emulators/play.yml | 2 +- emulators/pokketstation.yml | 2 +- emulators/project64.yml | 2 +- emulators/px68k.yml | 2 +- emulators/radio.yml | 2 +- emulators/ruffle.yml | 2 +- emulators/sameduck.yml | 2 +- emulators/sdlpop.yml | 2 +- emulators/shadps4.yml | 2 +- emulators/skyemu.yml | 2 +- emulators/snes9x.yml | 2 +- emulators/solarus.yml | 2 +- emulators/swanstation.yml | 2 +- emulators/test_netplay.yml | 2 +- emulators/testaudio_callback.yml | 2 +- emulators/testaudio_no_callback.yml | 2 +- emulators/testaudio_playback_wav.yml | 2 +- emulators/testgl_compute_shaders.yml | 2 +- emulators/testgl_ff.yml | 2 +- emulators/testinput_buttontest.yml | 2 +- emulators/testretroluxury.yml | 2 +- emulators/testsw.yml | 2 +- emulators/testsw_vram.yml | 2 +- emulators/testvulkan_async_compute.yml | 2 +- emulators/ti99sim-sdl1.yml | 2 +- emulators/ti99sim.yml | 2 +- emulators/trident.yml | 2 +- emulators/tsugaru.yml | 2 +- emulators/uae4arm.yml | 2 +- emulators/uqm.yml | 2 +- emulators/video_processor.yml | 2 +- emulators/visual-pinball.yml | 2 +- emulators/vitavoyager.yml | 2 +- emulators/x16emu.yml | 2 +- emulators/x64sdl.yml | 2 +- emulators/xm6pro68k.yml | 2 +- emulators/xm6typeg.yml | 2 +- emulators/yabasanshiro.yml | 2 +- emulators/yabause.yml | 2 +- emulators/ymir.yml | 2 +- tests/test_profile_names.py | 96 ++++++++++++++++++++++++++ 68 files changed, 163 insertions(+), 67 deletions(-) create mode 100644 tests/test_profile_names.py diff --git a/emulators/advanced_tests.yml b/emulators/advanced_tests.yml index 27cde8a5..92064b49 100644 --- a/emulators/advanced_tests.yml +++ b/emulators/advanced_tests.yml @@ -1,4 +1,4 @@ -emulator: advanced_tests +emulator: "Advanced Test" type: libretro core_classification: pure_libretro source: "https://github.com/libretro/libretro-samples" diff --git a/emulators/amiarcadia.yml b/emulators/amiarcadia.yml index cf8d683e..bb5400f9 100644 --- a/emulators/amiarcadia.yml +++ b/emulators/amiarcadia.yml @@ -1,4 +1,4 @@ -emulator: amiarcadia +emulator: "AmiArcadia" type: libretro core_classification: official_port source: "https://github.com/warmenhoven/amiarcadia" diff --git a/emulators/beebem.yml b/emulators/beebem.yml index e894bd7d..2ae84f1b 100644 --- a/emulators/beebem.yml +++ b/emulators/beebem.yml @@ -1,4 +1,4 @@ -emulator: beebem +emulator: "BeebEm" type: standalone core_classification: other source: "https://github.com/stardot/beebem-windows" diff --git a/emulators/beetle_saturn.yml b/emulators/beetle_saturn.yml index e5446406..de31438d 100644 --- a/emulators/beetle_saturn.yml +++ b/emulators/beetle_saturn.yml @@ -1,4 +1,4 @@ -emulator: beetle_saturn +emulator: "Beetle Saturn" type: libretro core_classification: community_fork core: mednafen_saturn_libretro diff --git a/emulators/corsixth.yml b/emulators/corsixth.yml index 361ffb90..8c4d5bd0 100644 --- a/emulators/corsixth.yml +++ b/emulators/corsixth.yml @@ -1,4 +1,4 @@ -emulator: corsixth +emulator: "CorsixTH" type: standalone core_classification: game_engine source: "https://github.com/CorsixTH/CorsixTH" diff --git a/emulators/devilutionx.yml b/emulators/devilutionx.yml index be2e9b49..4e192bd3 100644 --- a/emulators/devilutionx.yml +++ b/emulators/devilutionx.yml @@ -1,4 +1,4 @@ -emulator: devilutionx +emulator: "DevilutionX" type: standalone core_classification: game_engine source: "https://github.com/diasurgical/DevilutionX" diff --git a/emulators/dxx-rebirth.yml b/emulators/dxx-rebirth.yml index b8fd9558..d4c6578a 100644 --- a/emulators/dxx-rebirth.yml +++ b/emulators/dxx-rebirth.yml @@ -1,4 +1,4 @@ -emulator: dxx-rebirth +emulator: "DXX-Rebirth" type: standalone core_classification: game_engine source: "https://github.com/dxx-rebirth/dxx-rebirth" diff --git a/emulators/eka2l1.yml b/emulators/eka2l1.yml index 7e7317cb..04f20f3c 100644 --- a/emulators/eka2l1.yml +++ b/emulators/eka2l1.yml @@ -1,4 +1,4 @@ -emulator: eka2l1 +emulator: "EKA2L1" type: standalone + libretro core_classification: community_fork source: diff --git a/emulators/ep128emu_core.yml b/emulators/ep128emu_core.yml index d8153038..88182699 100644 --- a/emulators/ep128emu_core.yml +++ b/emulators/ep128emu_core.yml @@ -1,4 +1,4 @@ -emulator: ep128emu_core +emulator: "ep128emu" type: libretro core_classification: community_fork display_name: "Enterprise - 64/128 (ep128emu)" diff --git a/emulators/fallout1-ce.yml b/emulators/fallout1-ce.yml index 31902353..d1601e0a 100644 --- a/emulators/fallout1-ce.yml +++ b/emulators/fallout1-ce.yml @@ -1,4 +1,4 @@ -emulator: fallout1-ce +emulator: "Fallout Community Edition" type: standalone core_classification: game_engine source: "https://github.com/alexbatalov/fallout1-ce" diff --git a/emulators/fallout2-ce.yml b/emulators/fallout2-ce.yml index ea3b9cfd..21d5a038 100644 --- a/emulators/fallout2-ce.yml +++ b/emulators/fallout2-ce.yml @@ -1,4 +1,4 @@ -emulator: fallout2-ce +emulator: "Fallout 2 Community Edition" type: standalone core_classification: game_engine source: "https://github.com/alexbatalov/fallout2-ce" diff --git a/emulators/future-pinball-fploader.yml b/emulators/future-pinball-fploader.yml index cea52b17..7b036a34 100644 --- a/emulators/future-pinball-fploader.yml +++ b/emulators/future-pinball-fploader.yml @@ -1,4 +1,4 @@ -emulator: future-pinball-fploader +emulator: "BAM FPLoader" type: standalone core_classification: enhanced_fork source: "https://github.com/ravarcade/BAM_FPloader" diff --git a/emulators/future-pinball.yml b/emulators/future-pinball.yml index 5042d4a7..4f7bd5e8 100644 --- a/emulators/future-pinball.yml +++ b/emulators/future-pinball.yml @@ -1,4 +1,4 @@ -emulator: future-pinball +emulator: "Future Pinball" type: standalone core_classification: game_engine source: "https://futurepinball.com/" diff --git a/emulators/gopher64.yml b/emulators/gopher64.yml index d48490f0..8cabc1fd 100644 --- a/emulators/gopher64.yml +++ b/emulators/gopher64.yml @@ -1,4 +1,4 @@ -emulator: gopher64 +emulator: "Gopher64" type: standalone core_classification: other source: "https://github.com/gopher64/gopher64" diff --git a/emulators/lightspark.yml b/emulators/lightspark.yml index 8ffdf195..e2b7a07c 100644 --- a/emulators/lightspark.yml +++ b/emulators/lightspark.yml @@ -1,4 +1,4 @@ -emulator: lightspark +emulator: "Lightspark" type: standalone core_classification: game_engine source: "https://github.com/lightspark/lightspark" diff --git a/emulators/mednafen_gba.yml b/emulators/mednafen_gba.yml index c14b5f01..6c33feae 100644 --- a/emulators/mednafen_gba.yml +++ b/emulators/mednafen_gba.yml @@ -1,4 +1,4 @@ -emulator: "mednafen_gba" +emulator: "Beetle GBA" type: libretro core_classification: frozen_snapshot source: "https://github.com/libretro/beetle-gba-libretro" diff --git a/emulators/mednafen_pce.yml b/emulators/mednafen_pce.yml index 153ee458..9f039e2f 100644 --- a/emulators/mednafen_pce.yml +++ b/emulators/mednafen_pce.yml @@ -1,4 +1,4 @@ -emulator: mednafen_pce +emulator: "Beetle PCE" type: libretro core_classification: community_fork source: "https://github.com/libretro/beetle-pce-libretro" diff --git a/emulators/mednafen_pce_fast.yml b/emulators/mednafen_pce_fast.yml index 0053d1d9..24315d3c 100644 --- a/emulators/mednafen_pce_fast.yml +++ b/emulators/mednafen_pce_fast.yml @@ -1,4 +1,4 @@ -emulator: mednafen_pce_fast +emulator: "Beetle PCE Fast" type: libretro core_classification: community_fork source: "https://github.com/libretro/beetle-pce-fast-libretro" diff --git a/emulators/mednafen_snes.yml b/emulators/mednafen_snes.yml index ed43d8bb..2a266610 100644 --- a/emulators/mednafen_snes.yml +++ b/emulators/mednafen_snes.yml @@ -1,4 +1,4 @@ -emulator: mednafen_snes +emulator: "Beetle bsnes" type: libretro core_classification: frozen_snapshot source: "https://github.com/libretro/beetle-bsnes-libretro" diff --git a/emulators/mednafen_supafaust.yml b/emulators/mednafen_supafaust.yml index a3b91783..ed67ba7d 100644 --- a/emulators/mednafen_supafaust.yml +++ b/emulators/mednafen_supafaust.yml @@ -1,4 +1,4 @@ -emulator: mednafen_supafaust +emulator: "Beetle Supafaust" type: libretro core_classification: community_fork source: "https://github.com/libretro/supafaust" diff --git a/emulators/mednafen_supergrafx.yml b/emulators/mednafen_supergrafx.yml index df67df17..a73191d6 100644 --- a/emulators/mednafen_supergrafx.yml +++ b/emulators/mednafen_supergrafx.yml @@ -1,4 +1,4 @@ -emulator: mednafen_supergrafx +emulator: "Beetle SuperGrafx" type: libretro core_classification: community_fork source: "https://github.com/libretro/beetle-supergrafx-libretro" diff --git a/emulators/mesen-s.yml b/emulators/mesen-s.yml index 6bec6c52..79fc1543 100644 --- a/emulators/mesen-s.yml +++ b/emulators/mesen-s.yml @@ -1,7 +1,7 @@ # mesen-s - SNES / Game Boy / Game Boy Color emulator # Profiled from: libretro/Mesen-S (libretro port) + SourMesen/Mesen-S (upstream) -emulator: mesen-s +emulator: "Mesen-S" display_name: "Mesen-S" type: libretro core_classification: official_port diff --git a/emulators/mpv.yml b/emulators/mpv.yml index 925f2c96..d1676222 100644 --- a/emulators/mpv.yml +++ b/emulators/mpv.yml @@ -1,4 +1,4 @@ -emulator: mpv +emulator: "MPV" type: libretro core_classification: community_fork source: "https://github.com/libretro/libretro-mpv" diff --git a/emulators/nekop2.yml b/emulators/nekop2.yml index b684c094..4f7ed432 100644 --- a/emulators/nekop2.yml +++ b/emulators/nekop2.yml @@ -1,4 +1,4 @@ -emulator: nekop2 +emulator: "Neko Project II" type: libretro core_classification: community_fork source: "https://github.com/libretro/libretro-meowPC98" diff --git a/emulators/openbor.yml b/emulators/openbor.yml index 10c03043..15416125 100644 --- a/emulators/openbor.yml +++ b/emulators/openbor.yml @@ -1,4 +1,4 @@ -emulator: openbor +emulator: "OpenBOR" type: standalone core_classification: game_engine source: "https://github.com/DCurrent/openbor" diff --git a/emulators/openjk.yml b/emulators/openjk.yml index b3c364f7..c04ed1ab 100644 --- a/emulators/openjk.yml +++ b/emulators/openjk.yml @@ -1,4 +1,4 @@ -emulator: openjk +emulator: "OpenJK" type: standalone core_classification: game_engine source: "https://github.com/JACoders/OpenJK" diff --git a/emulators/pce-emu.yml b/emulators/pce-emu.yml index fd27e46e..cfe320bf 100644 --- a/emulators/pce-emu.yml +++ b/emulators/pce-emu.yml @@ -1,4 +1,4 @@ -emulator: pce-emu +emulator: "PCE.emu" type: standalone core_classification: community_fork source: "https://github.com/Rakashazi/emu-ex-plus-alpha" diff --git a/emulators/play.yml b/emulators/play.yml index d1c8109c..6298318b 100644 --- a/emulators/play.yml +++ b/emulators/play.yml @@ -1,4 +1,4 @@ -emulator: play +emulator: "Play!" type: libretro core_classification: official_port source: "https://github.com/jpd002/Play-" diff --git a/emulators/pokketstation.yml b/emulators/pokketstation.yml index 38a24c36..9a19ee95 100644 --- a/emulators/pokketstation.yml +++ b/emulators/pokketstation.yml @@ -1,4 +1,4 @@ -emulator: pokketstation +emulator: "Pokket" type: libretro core_classification: official_port source: "https://github.com/mentalfoundry/Pokket" diff --git a/emulators/project64.yml b/emulators/project64.yml index bfee6311..dbcd0982 100644 --- a/emulators/project64.yml +++ b/emulators/project64.yml @@ -1,4 +1,4 @@ -emulator: project64 +emulator: "Project64" type: standalone core_classification: other source: "https://github.com/project64/project64" diff --git a/emulators/px68k.yml b/emulators/px68k.yml index b0b3fd51..d2ad3692 100644 --- a/emulators/px68k.yml +++ b/emulators/px68k.yml @@ -1,4 +1,4 @@ -emulator: px68k +emulator: "PX68k" type: libretro core_classification: community_fork source: "https://github.com/libretro/px68k-libretro" diff --git a/emulators/radio.yml b/emulators/radio.yml index 7b35d572..71fd56f7 100644 --- a/emulators/radio.yml +++ b/emulators/radio.yml @@ -1,4 +1,4 @@ -emulator: radio +emulator: "Radio" type: utility core_classification: pure_libretro source: "https://git.libretro.com/libretro/libretro-radio" diff --git a/emulators/ruffle.yml b/emulators/ruffle.yml index 61da372f..b4aea480 100644 --- a/emulators/ruffle.yml +++ b/emulators/ruffle.yml @@ -1,4 +1,4 @@ -emulator: ruffle +emulator: "Ruffle" type: standalone core_classification: game_engine source: "https://github.com/ruffle-rs/ruffle" diff --git a/emulators/sameduck.yml b/emulators/sameduck.yml index d9eb9629..d2947fe4 100644 --- a/emulators/sameduck.yml +++ b/emulators/sameduck.yml @@ -1,4 +1,4 @@ -emulator: sameduck +emulator: "SameDuck" type: libretro core_classification: official_port source: "https://github.com/LIJI32/SameBoy" diff --git a/emulators/sdlpop.yml b/emulators/sdlpop.yml index efce7dda..94511bd7 100644 --- a/emulators/sdlpop.yml +++ b/emulators/sdlpop.yml @@ -1,4 +1,4 @@ -emulator: sdlpop +emulator: "SDLPoP" type: standalone core_classification: game_engine source: "https://github.com/NagyD/SDLPoP" diff --git a/emulators/shadps4.yml b/emulators/shadps4.yml index 4ec3edb7..7e2b4e8e 100644 --- a/emulators/shadps4.yml +++ b/emulators/shadps4.yml @@ -1,4 +1,4 @@ -emulator: shadps4 +emulator: "shadPS4" type: standalone source: "https://github.com/shadps4-emu/shadPS4" upstream: "https://github.com/shadps4-emu/shadPS4" diff --git a/emulators/skyemu.yml b/emulators/skyemu.yml index 6ca7d6d5..e7e93ade 100644 --- a/emulators/skyemu.yml +++ b/emulators/skyemu.yml @@ -1,4 +1,4 @@ -emulator: skyemu +emulator: "SkyEmu" type: standalone + libretro core_classification: official_port source: https://github.com/skylersaleh/SkyEmu/blob/v5/src/libretro.c diff --git a/emulators/snes9x.yml b/emulators/snes9x.yml index d1dcc1b3..d1c0f201 100644 --- a/emulators/snes9x.yml +++ b/emulators/snes9x.yml @@ -1,4 +1,4 @@ -emulator: snes9x +emulator: "Snes9x" type: libretro core_classification: official_port source: "https://github.com/libretro/snes9x" diff --git a/emulators/solarus.yml b/emulators/solarus.yml index eb3b0c3e..e3d24899 100644 --- a/emulators/solarus.yml +++ b/emulators/solarus.yml @@ -1,4 +1,4 @@ -emulator: solarus +emulator: "Solarus" type: standalone core_classification: game_engine source: "https://gitlab.com/solarus-games/solarus" diff --git a/emulators/swanstation.yml b/emulators/swanstation.yml index 11e51bd4..20d6421f 100644 --- a/emulators/swanstation.yml +++ b/emulators/swanstation.yml @@ -1,4 +1,4 @@ -emulator: swanstation +emulator: "SwanStation" type: libretro core_classification: community_fork source: "https://github.com/libretro/swanstation" diff --git a/emulators/test_netplay.yml b/emulators/test_netplay.yml index b1dbfcf2..d671919d 100644 --- a/emulators/test_netplay.yml +++ b/emulators/test_netplay.yml @@ -1,4 +1,4 @@ -emulator: test_netplay +emulator: "netplay-test" type: libretro core_classification: pure_libretro profiled_date: "2026-03-25" diff --git a/emulators/testaudio_callback.yml b/emulators/testaudio_callback.yml index d17970ba..d50ac9ab 100644 --- a/emulators/testaudio_callback.yml +++ b/emulators/testaudio_callback.yml @@ -1,4 +1,4 @@ -emulator: testaudio_callback +emulator: "TestAudio Callback" type: libretro core_classification: pure_libretro source: "https://github.com/libretro/libretro-samples" diff --git a/emulators/testaudio_no_callback.yml b/emulators/testaudio_no_callback.yml index e413995a..d932329f 100644 --- a/emulators/testaudio_no_callback.yml +++ b/emulators/testaudio_no_callback.yml @@ -1,4 +1,4 @@ -emulator: testaudio_no_callback +emulator: "TestAudio NoCallback" type: libretro core_classification: pure_libretro source: "https://github.com/libretro/libretro-samples" diff --git a/emulators/testaudio_playback_wav.yml b/emulators/testaudio_playback_wav.yml index 7d6e1029..1a75d881 100644 --- a/emulators/testaudio_playback_wav.yml +++ b/emulators/testaudio_playback_wav.yml @@ -1,4 +1,4 @@ -emulator: testaudio_playback_wav +emulator: "TestAudio Playback Wav" type: libretro core_classification: pure_libretro source: "https://github.com/libretro/libretro-samples" diff --git a/emulators/testgl_compute_shaders.yml b/emulators/testgl_compute_shaders.yml index 812dea48..4e89cec4 100644 --- a/emulators/testgl_compute_shaders.yml +++ b/emulators/testgl_compute_shaders.yml @@ -1,4 +1,4 @@ -emulator: testgl_compute_shaders +emulator: "TestGL ComputeShaders" type: libretro core_classification: pure_libretro source: "https://github.com/libretro/libretro-samples" diff --git a/emulators/testgl_ff.yml b/emulators/testgl_ff.yml index 7eefa200..21ad2d7f 100644 --- a/emulators/testgl_ff.yml +++ b/emulators/testgl_ff.yml @@ -1,4 +1,4 @@ -emulator: testgl_ff +emulator: "TestGL (FF)" type: libretro core_classification: pure_libretro source: "https://github.com/libretro/libretro-samples" diff --git a/emulators/testinput_buttontest.yml b/emulators/testinput_buttontest.yml index 9ab0659a..0a71f6dd 100644 --- a/emulators/testinput_buttontest.yml +++ b/emulators/testinput_buttontest.yml @@ -1,4 +1,4 @@ -emulator: testinput_buttontest +emulator: "Button Test" type: libretro core_classification: pure_libretro source: "https://github.com/libretro/libretro-samples" diff --git a/emulators/testretroluxury.yml b/emulators/testretroluxury.yml index c9b3f211..99e3da0c 100644 --- a/emulators/testretroluxury.yml +++ b/emulators/testretroluxury.yml @@ -1,4 +1,4 @@ -emulator: testretroluxury +emulator: "Test RetroLuxury" type: libretro core_classification: pure_libretro source: "https://github.com/libretro/retroluxury" diff --git a/emulators/testsw.yml b/emulators/testsw.yml index 33e3e528..672062ad 100644 --- a/emulators/testsw.yml +++ b/emulators/testsw.yml @@ -1,4 +1,4 @@ -emulator: testsw +emulator: "TestSW" type: libretro core_classification: pure_libretro source: "https://github.com/libretro/libretro-samples" diff --git a/emulators/testsw_vram.yml b/emulators/testsw_vram.yml index 9b172f15..be0836cd 100644 --- a/emulators/testsw_vram.yml +++ b/emulators/testsw_vram.yml @@ -1,4 +1,4 @@ -emulator: testsw_vram +emulator: "TestSW VRAM" type: libretro core_classification: pure_libretro source: "https://github.com/libretro/libretro-samples" diff --git a/emulators/testvulkan_async_compute.yml b/emulators/testvulkan_async_compute.yml index 0acf3756..1a80cd7e 100644 --- a/emulators/testvulkan_async_compute.yml +++ b/emulators/testvulkan_async_compute.yml @@ -1,4 +1,4 @@ -emulator: testvulkan_async_compute +emulator: "TestVulkan AsyncCompute" type: libretro core_classification: pure_libretro source: "https://github.com/libretro/libretro-samples" diff --git a/emulators/ti99sim-sdl1.yml b/emulators/ti99sim-sdl1.yml index 4fcdcc2b..c1219c58 100644 --- a/emulators/ti99sim-sdl1.yml +++ b/emulators/ti99sim-sdl1.yml @@ -1,4 +1,4 @@ -emulator: ti99sim-sdl1 +emulator: "TI-99/Sim 0.15.0" display_name: "TI-99/Sim 0.15.0 (SDL1)" type: standalone core_classification: frozen_snapshot diff --git a/emulators/ti99sim.yml b/emulators/ti99sim.yml index 8cd79bdc..a2f391be 100644 --- a/emulators/ti99sim.yml +++ b/emulators/ti99sim.yml @@ -1,4 +1,4 @@ -emulator: ti99sim +emulator: "TI-99/Sim" display_name: "TI-99/Sim" type: standalone source: https://github.com/christianhaitian/ti99sim diff --git a/emulators/trident.yml b/emulators/trident.yml index 498e196e..8c726b18 100644 --- a/emulators/trident.yml +++ b/emulators/trident.yml @@ -1,4 +1,4 @@ -emulator: trident +emulator: "Trident" display_name: "Nintendo - 3DS (Trident)" type: libretro core_classification: community_fork diff --git a/emulators/tsugaru.yml b/emulators/tsugaru.yml index 9709c8bc..f66e7c98 100644 --- a/emulators/tsugaru.yml +++ b/emulators/tsugaru.yml @@ -1,4 +1,4 @@ -emulator: tsugaru +emulator: "Tsugaru" display_name: Tsugaru type: standalone source: "https://github.com/captainys/TOWNSEMU" diff --git a/emulators/uae4arm.yml b/emulators/uae4arm.yml index 197db468..bdd5ec8f 100644 --- a/emulators/uae4arm.yml +++ b/emulators/uae4arm.yml @@ -1,4 +1,4 @@ -emulator: uae4arm +emulator: "UAE4ARM" type: libretro core_classification: community_fork cores: [uae4arm, "uae4arm_32b"] diff --git a/emulators/uqm.yml b/emulators/uqm.yml index 54243aef..42de1637 100644 --- a/emulators/uqm.yml +++ b/emulators/uqm.yml @@ -1,4 +1,4 @@ -emulator: uqm +emulator: "The Ur-Quan Masters" type: standalone core_classification: game_engine source: "https://github.com/juj/sc2-uqm" diff --git a/emulators/video_processor.yml b/emulators/video_processor.yml index 9469582e..dd246ddc 100644 --- a/emulators/video_processor.yml +++ b/emulators/video_processor.yml @@ -1,4 +1,4 @@ -emulator: video_processor +emulator: "V4L2" type: utility core_classification: pure_libretro source: "https://github.com/libretro/libretro-video-processor" diff --git a/emulators/visual-pinball.yml b/emulators/visual-pinball.yml index 363b123f..495a7a60 100644 --- a/emulators/visual-pinball.yml +++ b/emulators/visual-pinball.yml @@ -1,4 +1,4 @@ -emulator: visual-pinball +emulator: "Visual Pinball X" type: standalone core_classification: game_engine source: "https://github.com/vpinball/vpinball" diff --git a/emulators/vitavoyager.yml b/emulators/vitavoyager.yml index b168f3bc..28988e2f 100644 --- a/emulators/vitavoyager.yml +++ b/emulators/vitavoyager.yml @@ -1,4 +1,4 @@ -emulator: vitavoyager +emulator: "vitaVoyager" type: libretro core_classification: community_fork source: "https://github.com/libretro/vitavoyager" diff --git a/emulators/x16emu.yml b/emulators/x16emu.yml index f4d03e73..3d2d5240 100644 --- a/emulators/x16emu.yml +++ b/emulators/x16emu.yml @@ -1,4 +1,4 @@ -emulator: x16emu +emulator: "Commander X16 Emulator" type: standalone source: "https://github.com/X16Community/x16-emulator" upstream: "https://github.com/X16Community/x16-emulator" diff --git a/emulators/x64sdl.yml b/emulators/x64sdl.yml index 55bded75..cb74df3b 100644 --- a/emulators/x64sdl.yml +++ b/emulators/x64sdl.yml @@ -1,4 +1,4 @@ -emulator: x64sdl +emulator: "VICE SDL" type: libretro core_classification: community_fork source: "https://github.com/r-type/sdlvice-libretro" diff --git a/emulators/xm6pro68k.yml b/emulators/xm6pro68k.yml index 1a0105d0..44f60574 100644 --- a/emulators/xm6pro68k.yml +++ b/emulators/xm6pro68k.yml @@ -1,4 +1,4 @@ -emulator: xm6pro68k +emulator: "XM6 Pro-68k" type: standalone core_classification: enhanced_fork source: "https://mijet.eludevisibility.org/XM6%20Pro-68k/XM6%20Pro-68k.html" diff --git a/emulators/xm6typeg.yml b/emulators/xm6typeg.yml index 77c2729d..c44b057e 100644 --- a/emulators/xm6typeg.yml +++ b/emulators/xm6typeg.yml @@ -1,4 +1,4 @@ -emulator: xm6typeg +emulator: "XM6 TypeG" type: standalone core_classification: enhanced_fork source: "http://retropc.net/pi/xm6/index.html" diff --git a/emulators/yabasanshiro.yml b/emulators/yabasanshiro.yml index dddf530f..fa7e661f 100644 --- a/emulators/yabasanshiro.yml +++ b/emulators/yabasanshiro.yml @@ -1,4 +1,4 @@ -emulator: yabasanshiro +emulator: "YabaSanshiro" type: libretro core_classification: official_port source: "https://github.com/libretro/yabause/tree/yabasanshiro" diff --git a/emulators/yabause.yml b/emulators/yabause.yml index 742ebcc7..1d05ae06 100644 --- a/emulators/yabause.yml +++ b/emulators/yabause.yml @@ -1,4 +1,4 @@ -emulator: yabause +emulator: "Yabause" type: libretro core_classification: community_fork source: "https://github.com/libretro/yabause" diff --git a/emulators/ymir.yml b/emulators/ymir.yml index 896d4519..07a4abec 100644 --- a/emulators/ymir.yml +++ b/emulators/ymir.yml @@ -1,4 +1,4 @@ -emulator: ymir +emulator: "Ymir" type: standalone + libretro core_classification: community_fork source: diff --git a/tests/test_profile_names.py b/tests/test_profile_names.py new file mode 100644 index 00000000..29676beb --- /dev/null +++ b/tests/test_profile_names.py @@ -0,0 +1,96 @@ +"""A profile's `emulator:` is the name the project gives itself. + +The site titles every emulator page and link with it. A value equal to the +file stem reads as an id ("corsixth", "shadps4") unless the project writes its +own name that way. +""" + +from __future__ import annotations + +import sys +import unittest +from pathlib import Path + +REPO_ROOT = Path(__file__).resolve().parent.parent +sys.path.insert(0, str(REPO_ROOT / "scripts")) + +from common import load_emulator_profiles # noqa: E402 + +STEM_NAMED = { + # Template and test cores, no emulator page. + "00_example": "template", + "test": "type test", + "testgl": "type test", + "testvulkan": "type test", + "vidtest": "type test", + # Aliases, no emulator page. + "mednafen_lynx": "alias", + "mednafen_ngp": "alias", + "mednafen_pcfx": "alias", + "mednafen_psx": "alias", + "mednafen_psx_hw": "alias", + "mednafen_saturn": "alias", + "mednafen_vb": "alias", + "mednafen_wswan": "alias", + "mkxp-z": "alias", + "parallel_n64_debug": "alias", + # Libretro cores whose .info corename is the stem. + "2048": "corename 2048", + "a5200": "corename a5200", + "b2": "corename b2", + "bnes": "corename bnes", + "boom3": "corename boom3", + "bsnes": "corename bsnes, the project writes bsnes", + "bsnes-jg": "corename bsnes-jg", + "galaksija": "corename galaksija", + "nes": "corename nes", + "uzem": "corename uzem", + "vecx": "corename vecx", + "xemu": "corename xemu, the project writes xemu", + "yaps2": "corename yaps2, README title yaps2", + # Lowercase project names. + "advanced_drastic": "README title advanced_drastic", + "ares": "the project writes ares", + "ccleste": "README title ccleste", + "dhewm3": "window title dhewm3 (ENGINE_VERSION)", + "dsda-doom": "README title dsda-doom", + "fheroes2": "README title fheroes2", + "hode": "README title hode", + "ioquake3": "the project writes ioquake3", + "izapple2": "README title izapple2", + "jgenesis": "README title jgenesis", + "np2pi": "repository and binary np2pi, no title in the source", + "rpix86": "the author writes rpix86", + "simple64": "window title simple64", + "sixtyforce": "site title sixtyforce", + "veesem": "README title veesem", +} + + +class ProfileNames(unittest.TestCase): + @classmethod + def setUpClass(cls) -> None: + cls.profiles = load_emulator_profiles( + REPO_ROOT / "emulators", skip_aliases=False + ) + + def test_emulator_name_is_not_the_file_stem(self) -> None: + stem_named = sorted( + stem + for stem, profile in self.profiles.items() + if str(profile.get("emulator", "")) == stem + and stem not in STEM_NAMED + ) + self.assertEqual(stem_named, [], "set emulator: to the project's own name") + + def test_allow_list_has_no_stale_entry(self) -> None: + stale = sorted( + stem + for stem in STEM_NAMED + if str(self.profiles.get(stem, {}).get("emulator", "")) != stem + ) + self.assertEqual(stale, []) + + +if __name__ == "__main__": + unittest.main()