diff --git a/platforms/_registry.yml b/platforms/_registry.yml index c55619e0..80bdce0a 100644 --- a/platforms/_registry.yml +++ b/platforms/_registry.yml @@ -47,7 +47,7 @@ platforms: source_format: python_dict hash_type: md5 schedule: weekly - cores: [81, a5200, abuse, arduous, atari800, azahar, bennugd, bk, bluemsx, bsnes, bstone, cannonball, cap32, catacombgl, cdogs, cemu, cgenius, citron, clk, corsixth, demul, devilutionx, dhewm3, dice, dolphin, dosbox_pure, dxx-rebirth, easyrpg, ecwolf, eduke32, eka2l1, emuscv, etlegacy, fake08, fallout1-ce, fallout2-ce, fbneo, fceumm, flatpak, flycast, freechaf, freeintv, fury, fuse, gambatte, gearsystem, genesisplusgx, glide64mk2, gong, gsplus, gw, gzdoom, hatari, hcl, hurrican, hypseus-singe, ikemen, ioquake3, iortcw, jazz2-native, lindbergh-loader, lowresnx, lutro, mame, mame078plus, mednafen_lynx, mednafen_ngp, mednafen_supergrafx, mednafen_wswan, melonds, mgba, minivmac, model2emu, moonlight, mrboom, neocd, np2kai, nxengine, o2em, odcommander, openbor6412, openjazz, openjk, openjkdf2, openmohaa, opera, pce_fast, pcfx, pcsx2, pcsx_rearmed, pd777, picodrive, play, pokemini, potator, ppsspp, prboom, prosystem, puae, px68k, pygame, pyxel, quasi88, raze, reminiscence, rpcs3, ruffle, samcoupe, sameduck, scummvm, sdlpop, sh, shadps4, snes9x, solarus, sonic2013, sonic3-air, sonic-mania, steam, stella, superbroswar, supermodel, taradino, tgbdual, theforceengine, theodore, thextech, tic80, tr1x, tr2x, tsugaru, tyrian, tyrquake, uqm, uzem, vb, vecx, vice_x64, vircon32, virtualjaguar, vita3k, vox_official, vpinball, wasm4, wine-tkg, x1, x128, x16emu, xash3d_fwgs, xemu, xenia-canary, xpet, xplus4, xrick, xvic, yabasanshiro, yquake2, zc210] + cores: [81, a5200, abuse, amiberry, applewin, arduous, atari800, azahar, beetle-saturn, bennugd, bigpemu, bk, blastem, bluemsx, boom3, bsnes, bstone, cannonball, cap32, catacombgl, cdogs, cemu, cgenius, citron, clk, corsixth, demul, desmume, devilutionx, dhewm3, dice, dolphin, dosbox, dosbox_pure, duckstation, dxx-rebirth, easyrpg, ecwolf, eduke32, eka2l1, emuscv, ep128emu-core, etlegacy, fake08, fallout1-ce, fallout2-ce, fbneo, fceumm, flatpak, flycast, freechaf, freeintv, freej2me, fmsx, fsuae, fury, fuse, gambatte, gearcoleco, gearsystem, genesisplusgx, glide64mk2, gong, gpsp, gsplus, gw, gzdoom, handy, hatari, hcl, holani, hurrican, hypseus-singe, ikemen, ioquake3, iortcw, jazz2-native, kronos, lindbergh-loader, lowresnx, lutro, mame, mame078plus, mednafen_lynx, mednafen_ngp, mednafen_psx, mednafen_supergrafx, mednafen_wswan, melonds, mesen, mesen-s, mgba, minivmac, model2emu, moonlight, mrboom, mupen64plus-next, neocd, nestopia, np2kai, nxengine, o2em, odcommander, openbor6412, openjazz, openjk, openjkdf2, openmohaa, openmsx, opera, parallel_n64, pce_fast, pcfx, pcsx2, pcsx_rearmed, pd777, picodrive, play, pokemini, potator, ppsspp, prboom, prosystem, puae, puae2021, px68k, pygame, pyxel, quasi88, raze, redream, reminiscence, rpcs3, ruffle, ryujinx, samcoupe, same_cdi, sameduck, scummvm, sdlpop, sh, shadps4, smsplus, snes9x, solarus, sonic2013, sonic3-air, sonic-mania, squirreljme, steam, stella, stella2014, superbroswar, supermodel, swanstation, taradino, tgbdual, theforceengine, theodore, thextech, tic80, tr1x, tr2x, tsugaru, tyrian, tyrquake, uae4arm, uqm, uzem, vb, vba-m, vecx, vemulator, vice, vice_x64, vice_x128, vice_x64sc, vice_xpet, vice_xplus4, vice_xscpu64, vice_xvic, vircon32, virtualjaguar, vita3k, vitaquake2, vox_official, vpinball, wasm4, wine-tkg, x1, x128, x16emu, xash3d_fwgs, xemu, xenia, xenia-canary, xpet, xplus4, xrick, xroar, xvic, yabasanshiro, ymir, yquake2, zc210] target_scraper: batocera_targets target_source: "https://github.com/batocera-linux/batocera.linux" install: diff --git a/platforms/batocera.yml b/platforms/batocera.yml index 64beae5d..04793a1f 100644 --- a/platforms/batocera.yml +++ b/platforms/batocera.yml @@ -1,250 +1,297 @@ platform: Batocera version: '42' -homepage: "https://batocera.org" -source: "https://raw.githubusercontent.com/batocera-linux/batocera.linux/master/package/batocera/core/batocera-scripts/scripts/batocera-systems" +homepage: https://batocera.org +source: https://raw.githubusercontent.com/batocera-linux/batocera.linux/master/package/batocera/core/batocera-scripts/scripts/batocera-systems base_destination: bios hash_type: md5 verification_mode: md5 standalone_cores: - - abuse - - azahar - - bstone - - cannonball - - catacombgl - - cdogs - - cemu - - cgenius - - citron - - clk - - corsixth - - demul - - devilutionx - - dhewm3 - - dolphin - - dxx-rebirth - - easyrpg - - ecwolf - - eduke32 - - eka2l1 - - etlegacy - - fallout1-ce - - fallout2-ce - - flatpak - - fury - - gsplus - - gzdoom - - hcl - - hurrican - - hypseus-singe - - ikemen - - ioquake3 - - iortcw - - jazz2-native - - lexaloffle - - lindbergh-loader - - mame - - model2emu - - moonlight - - mupen64plus - - odcommander - - openbor - - openjazz - - openjk - - openjkdf2 - - openmohaa - - pcsx2 - - play - - ppsspp - - pygame - - pyxel - - raze - - rpcs3 - - ruffle - - samcoupe - - scummvm - - sdlpop - - shadps4 - - solarus - - sonic-mania - - sonic2013 - - sonic3-air - - steam - - supermodel - - taradino - - theforceengine - - thextech - - tr1x - - tr2x - - tsugaru - - tyrian - - uqm - - vice - - vita3k - - vpinball - - x16emu - - xash3d_fwgs - - xemu - - xenia-canary - - yquake2 +- abuse +- azahar +- bstone +- cannonball +- catacombgl +- cdogs +- cemu +- cgenius +- citron +- clk +- corsixth +- demul +- devilutionx +- dhewm3 +- dolphin +- dxx-rebirth +- easyrpg +- ecwolf +- eduke32 +- eka2l1 +- etlegacy +- fallout1-ce +- fallout2-ce +- flatpak +- fury +- gsplus +- gzdoom +- hcl +- hurrican +- hypseus-singe +- ikemen +- ioquake3 +- iortcw +- jazz2-native +- lexaloffle +- lindbergh-loader +- mame +- model2emu +- moonlight +- mupen64plus +- odcommander +- openbor +- openjazz +- openjk +- openjkdf2 +- openmohaa +- pcsx2 +- play +- ppsspp +- pygame +- pyxel +- raze +- rpcs3 +- ruffle +- samcoupe +- scummvm +- sdlpop +- shadps4 +- solarus +- sonic-mania +- sonic2013 +- sonic3-air +- steam +- supermodel +- taradino +- theforceengine +- thextech +- tr1x +- tr2x +- tsugaru +- tyrian +- uqm +- vice +- vita3k +- vpinball +- x16emu +- xash3d_fwgs +- xemu +- xenia-canary +- yquake2 cores: - - 81 - - a5200 - - abuse - - arduous - - atari800 - - azahar - - bennugd - - bk - - bluemsx - - bsnes - - bstone - - cannonball - - cap32 - - catacombgl - - cdogs - - cemu - - cgenius - - citron - - clk - - corsixth - - demul - - devilutionx - - dhewm3 - - dice - - dolphin - - dosbox_pure - - dxx-rebirth - - easyrpg - - ecwolf - - eduke32 - - eka2l1 - - emuscv - - etlegacy - - fake08 - - fallout1-ce - - fallout2-ce - - fbneo - - fceumm - - flatpak - - flycast - - freechaf - - freeintv - - fury - - fuse - - gambatte - - gearsystem - - genesisplusgx - - glide64mk2 - - gong - - gsplus - - gw - - gzdoom - - hatari - - hcl - - hurrican - - hypseus-singe - - ikemen - - ioquake3 - - iortcw - - jazz2-native - - lindbergh-loader - - lowresnx - - lutro - - mame - - mame078plus - - mednafen_lynx - - mednafen_ngp - - mednafen_supergrafx - - mednafen_wswan - - melonds - - mgba - - minivmac - - model2emu - - moonlight - - mrboom - - neocd - - np2kai - - nxengine - - o2em - - odcommander - - openbor6412 - - openjazz - - openjk - - openjkdf2 - - openmohaa - - opera - - pce_fast - - pcfx - - pcsx2 - - pcsx_rearmed - - pd777 - - picodrive - - play - - pokemini - - potator - - ppsspp - - prboom - - prosystem - - puae - - px68k - - pygame - - pyxel - - quasi88 - - raze - - reminiscence - - rpcs3 - - ruffle - - samcoupe - - sameduck - - scummvm - - sdlpop - - sh - - shadps4 - - snes9x - - solarus - - sonic2013 - - sonic3-air - - sonic-mania - - steam - - stella - - superbroswar - - supermodel - - taradino - - tgbdual - - theforceengine - - theodore - - thextech - - tic80 - - tr1x - - tr2x - - tsugaru - - tyrian - - tyrquake - - uqm - - uzem - - vb - - vecx - - vice_x64 - - vircon32 - - virtualjaguar - - vita3k - - vox_official - - vpinball - - wasm4 - - wine-tkg - - x1 - - x128 - - x16emu - - xash3d_fwgs - - xemu - - xenia-canary - - xpet - - xplus4 - - xrick - - xvic - - yabasanshiro - - yquake2 - - zc210 +- 81 +- a5200 +- abuse +- amiberry +- applewin +- arduous +- atari800 +- azahar +- beetle-saturn +- bennugd +- bigpemu +- bk +- blastem +- bluemsx +- boom3 +- bsnes +- bstone +- cannonball +- cap32 +- catacombgl +- cdogs +- cemu +- cgenius +- citron +- clk +- corsixth +- demul +- desmume +- devilutionx +- dhewm3 +- dice +- dolphin +- dosbox +- dosbox_pure +- duckstation +- dxx-rebirth +- easyrpg +- ecwolf +- eduke32 +- eka2l1 +- emuscv +- ep128emu-core +- etlegacy +- fake08 +- fallout1-ce +- fallout2-ce +- fbneo +- fceumm +- flatpak +- flycast +- fmsx +- freechaf +- freeintv +- freej2me +- fsuae +- fury +- fuse +- gambatte +- gearcoleco +- gearsystem +- genesisplusgx +- glide64mk2 +- gong +- gpsp +- gsplus +- gw +- gzdoom +- handy +- hatari +- hcl +- holani +- hurrican +- hypseus-singe +- ikemen +- ioquake3 +- iortcw +- jazz2-native +- kronos +- lindbergh-loader +- lowresnx +- lutro +- mame +- mame078plus +- mednafen_lynx +- mednafen_ngp +- mednafen_psx +- mednafen_supergrafx +- mednafen_wswan +- melonds +- mesen +- mesen-s +- mgba +- minivmac +- model2emu +- moonlight +- mrboom +- mupen64plus-next +- neocd +- nestopia +- np2kai +- nxengine +- o2em +- odcommander +- openbor6412 +- openjazz +- openjk +- openjkdf2 +- openmohaa +- openmsx +- opera +- parallel_n64 +- pce_fast +- pcfx +- pcsx2 +- pcsx_rearmed +- pd777 +- picodrive +- play +- pokemini +- potator +- ppsspp +- prboom +- prosystem +- puae +- puae2021 +- px68k +- pygame +- pyxel +- quasi88 +- raze +- redream +- reminiscence +- rpcs3 +- ruffle +- ryujinx +- samcoupe +- same_cdi +- sameduck +- scummvm +- sdlpop +- sh +- shadps4 +- smsplus +- snes9x +- solarus +- sonic-mania +- sonic2013 +- sonic3-air +- squirreljme +- steam +- stella +- stella2014 +- superbroswar +- supermodel +- swanstation +- taradino +- tgbdual +- theforceengine +- theodore +- thextech +- tic80 +- tr1x +- tr2x +- tsugaru +- tyrian +- tyrquake +- uae4arm +- uqm +- uzem +- vb +- vba-m +- vecx +- vemulator +- vice +- vice_x128 +- vice_x64 +- vice_x64sc +- vice_xpet +- vice_xplus4 +- vice_xscpu64 +- vice_xvic +- vircon32 +- virtualjaguar +- vita3k +- vitaquake2 +- vox_official +- vpinball +- wasm4 +- wine-tkg +- x1 +- x128 +- x16emu +- xash3d_fwgs +- xemu +- xenia +- xenia-canary +- xpet +- xplus4 +- xrick +- xroar +- xvic +- yabasanshiro +- ymir +- yquake2 +- zc210 systems: atari-400-800: files: diff --git a/scripts/truth.py b/scripts/truth.py index e0ea0e2a..1942964d 100644 --- a/scripts/truth.py +++ b/scripts/truth.py @@ -38,8 +38,14 @@ def _enrich_hashes(entry: dict, db: dict) -> None: sha1 = entry.get("sha1", "") md5 = entry.get("md5", "") + # Hashes can be lists (multi-hash) — use first string value + if isinstance(sha1, list): + sha1 = sha1[0] if sha1 else "" + if isinstance(md5, list): + md5 = md5[0] if md5 else "" + record = None - if sha1 and db.get("files"): + if sha1 and isinstance(sha1, str) and db.get("files"): record = db["files"].get(sha1) if record is None and md5: by_md5 = db.get("by_md5", {})