add retrodeck script

This commit is contained in:
Michel Roux 2024-09-07 00:54:14 +02:00
parent 302f5f4574
commit eea4a137ac
2 changed files with 346 additions and 0 deletions

296
missings/knowns.txt Normal file
View File

@ -0,0 +1,296 @@
3do_arcade_saot.bin
5200.rom
64DD_IPL.bin
7800 BIOS (E).rom
7800 BIOS (U).rom
airlbios.zip
areplay.bin
ATARIBAS.ROM
ATARIOSA.ROM
ATARIOSB.ROM
ATARIXL.ROM
awbios.zip
bios7.bin
bios9.bin
bios_CD_E.bin
bios_CD_J.bin
bios_CD_U.bin
BIOS.col
bios_E.sms
bios.gg
bios_J.sms
bios_MD.bin
bios.min
bios.sms
bios_U.sms
BS-X.bin
BS-X.bin.sfc (japan, oficial)
c52.bin
CD32 Extended-ROM r40.60 (1993)(Commodore)(CD32).rom
CDTV Extended-ROM v1.0 (1991)(Commodore)(CDTV)[!].rom
citra
citra/nand
citra/nand/00000000000000000000000000000000
citra/nand/00000000000000000000000000000000/title
citra/nand/00000000000000000000000000000000/title/0004009b
citra/nand/00000000000000000000000000000000/title/0004009b/00010202
citra/nand/00000000000000000000000000000000/title/0004009b/00010202/content
citra/nand/00000000000000000000000000000000/title/0004009b/00010202/content/00000000.app.romfs
citra/nand/00000000000000000000000000000000/title/0004009b/00010402
citra/nand/00000000000000000000000000000000/title/0004009b/00010402/content
citra/nand/00000000000000000000000000000000/title/0004009b/00010402/content/00000000.app.romfs
citra/nand/00000000000000000000000000000000/title/0004009b/00014002
citra/nand/00000000000000000000000000000000/title/0004009b/00014002/content
citra/nand/00000000000000000000000000000000/title/0004009b/00014002/content/00000000.app.romfs
citra/nand/00000000000000000000000000000000/title/0004009b/00014102
citra/nand/00000000000000000000000000000000/title/0004009b/00014102/content
citra/nand/00000000000000000000000000000000/title/0004009b/00014102/content/00000000.app.romfs
citra/nand/00000000000000000000000000000000/title/0004009b/00014202
citra/nand/00000000000000000000000000000000/title/0004009b/00014202/content
citra/nand/00000000000000000000000000000000/title/0004009b/00014202/content/00000000.app.romfs
citra/nand/00000000000000000000000000000000/title/0004009b/00014302
citra/nand/00000000000000000000000000000000/title/0004009b/00014302/content
citra/nand/00000000000000000000000000000000/title/0004009b/00014302/content/00000000.app.romfs
citra/nand/00000000000000000000000000000000/title/000400db
citra/nand/00000000000000000000000000000000/title/000400db/00010302
citra/nand/00000000000000000000000000000000/title/000400db/00010302/content
citra/nand/00000000000000000000000000000000/title/000400db/00010302/content/00000000.app.romfs
citra/sysdata
citra/sysdata/shared_font.bin
Complex_4627.bin
cx4.data.rom
CYRILLIC.FNT
dc
dc/airlbios.zip
dc/awbios.zip
dc/boot.bin
dc_boot.bin
dc/dc_boot.bin
dc/dc_flash.bin
dc/f355bios.zip
dc/f355dlx.zip
dc/flash.bin
dc_flash.bin
dc/hod2bios.zip
dc/naomi2.zip
dc/naomigd.zip
dc/naomi.zip
dc_nvmem.bin
DISK.ROM
disksys.rom
dolphin-emu
dolphin-emu/Sys
dolphin-emu/Sys/GC
dolphin-emu/Sys/GC/EUR
dolphin-emu/Sys/GC/EUR/IPL.bin
dolphin-emu/Sys/GC/JAP
dolphin-emu/Sys/GC/JAP/IPL.bin
dolphin-emu/Sys/GC/USA
dolphin-emu/Sys/GC/USA/IPL.bin
dsp1b.data.rom
dsp1b.program.rom
dsp1.data.rom
dsp1.program.rom
dsp2.data.rom
dsp2.program.rom
dsp3.data.rom
dsp3.program.rom
dsp4.data.rom
dsp4.program.rom
ECS.bin
epochtv.chr
EROM.BIN
exec.bin
f355bios.zip
f355dlx.zip
firmware.bin
FMPAC16.ROM
FMPAC.ROM
g7400.bin
gba_bios.bin
gb_bios.bin
gbc_bios.bin
gexpress.pce
ggenie.bin
goldstar.bin
grom.bin
hod2bios.zip
ITALIC.FNT
IVOICE.bin
jopac.bin
KANJI.ROM
keropi
keropi/cgrom.dat
keropi/iplrom30.dat
keropi/iplromco.dat
keropi/iplrom.dat
keropi/iplromxv.dat
kick34005.A500
kick34005.CDTV
kick37175.A500
kick40060.CD32
kick40060.CD32.ext
kick40063.A600
kick40068.A1200
kick40068.A4000
Kickstart v1.2 r33.180 (1986)(Commodore)(A500-A1000-A2000)[!].rom
Kickstart v1.2 rev 33.166 (1986)(Commodore)(A1000).rom
Kickstart v1.3 r34.5 (1987)(Commodore)(A500-A1000-A2000-CDTV)[o].rom
Kickstart v1.3 r34.5 (1987)(Commodore)(A500-A1000-A2000-CDTV)[!].rom
Kickstart v2.04 r37.175 (1991)(Commodore)(A500+)[!].rom
Kickstart v2.05 r37.350 (1992)(Commodore)(A600HD)[!].rom
Kickstart v3.1 r40.60 (1993)(Commodore)(CD32).rom
Kickstart v3.1 r40.68 (1993)(Commodore)(A1200)[!].rom
Kickstart v3.1 r40.68 (1993)(Commodore)(A3000).rom
Kickstart v3.1 r40.68 (1993)(Commodore)(A4000).rom
kronos
kronos/mpr-18811-mx.ic1
kronos/mpr-19367-mx.ic1
kronos/saturn_bios.bin
kronos/stvbios.zip
LICENSE
lynxboot.img
mcpx_1.0.bin
mpr-17933.bin
mpr-18811-mx.ic1
mpr-19367-mx.ic1
MSX2EXT.ROM
MSX2PEXT.ROM
MSX2P.ROM
MSX2.ROM
MSXDOS2.ROM
MSX.ROM
Mupen64plus
Mupen64plus/cache
Mupen64plus/cache/readme.txt
Mupen64plus/IPL.n64
naomi2.zip
naomi.bin
naomigd.zip
naomi.zip
neocd
neocd/000-lo.lo
neocd-cdz.bin
neocd-front-load.bin
neocd/front-sp1.bin
neocd/neocd.bin
neocd/neocd_f.rom
neocd/neocd_sf.rom
neocd/neocd_st.rom
neocd/neocd_sz.rom
neocd/neocd_t.rom
neocd/neocd_z.rom
neocd/ng-lo.rom
neocd-top-load.bin
neocd/top-sp1.bin
neocd-unibios-3.3.bin
neocd-unibios.bin
neocd/uni-bioscd.rom
neocd_z.rom
neocdz.zip
neogeo.zip
nes.pal
ng-lo.rom
np2kai
np2kai/2608_bd.wav
np2kai/2608_hh.wav
np2kai/2608_rim.wav
np2kai/2608_sd.wav
np2kai/2608_tom.wav
np2kai/2608_top.wav
np2kai/bios.rom
np2kai/font.bmp
np2kai/FONT.ROM
np2kai/itf.rom
np2kai/memory.bin
np2kai/sound.rom
o2rom.bin
PAINTER.ROM
palmos41-en-m515.rom
panafz10.bin
panafz10e-anvil.bin
panafz10e-anvil-norsa.bin
panafz10e-anvil-patched.bin
panafz10ja-anvil-kanji
panafz10ja-anvil-kanji.bin
panafz10-norsa.bin
panafz10-patched.bin
panafz1.bin
panafz1j.bin
panafz1j-kanji.bin
panafz1j-norsa.bin
panafz1-kanji.bin
pcfx.rom
pcsx2
pcsx2/bios
pcsx2/bios/EROM.BIN
pcsx2/bios/rom1.bin
ProSystem.dat
quasi88
quasi88/DISK.ROM
quasi88/font.rom
quasi88/N88_0.ROM
quasi88/N88_1.ROM
quasi88/N88_2.ROM
quasi88/N88_3.ROM
quasi88/n88jisho.rom
quasi88/N88KNJ1.ROM
quasi88/N88KNJ2.ROM
quasi88/N88N.ROM
quasi88/N88.ROM
rom1.bin
ROM2.BIN
rom.db
RS232.ROM
sanyotry.bin
saturn_bios.bin
scph10000.bin
scph1000.bin
scph1001.bin
scph101.bin
SCPH30004R.bin
SCPH30004R.MEC
SCPH30004R.NVM
scph39001.bin
scph39001.MEC
scph39001.NVM
scph5500.bin
scph5501.bin
scph5502.bin
scph7001.bin
scph7003.bin
sega_101.bin
sega_101_jp_us_eu_hack.bin
SGB1.sfc
SGB2.sfc
sgb_bios.bin
sk2chip.bin
sk.bin
sl31253.bin
sl31254.bin
sl90025.bin
st010.data.rom
st010.program.rom
st011.data.rom
st011.program.rom
st018.data.rom
st018.program.rom
STBIOS.bin
stvbios.zip
switch
switch/keys
switch/keys/prod.keys
switch/keys/title.keys
syscard1.pce
syscard2.pce
syscard2u.pce
syscard3.pce
syscard3u.pce
tos.img
uae_data
uae_data/drive_click_LOUD.wav
uae_data/drive_snatch_LOUD.wav
uae_data/drive_spin_LOUD.wav
uae_data/drive_spinnd_LOUD.wav
uae_data/drive_startup_LOUD.wav
upd7801g.s01

50
missings/retrodeck.py Executable file
View File

@ -0,0 +1,50 @@
#!/usr/bin/env python
from argparse import ArgumentParser
from csv import reader
from hashlib import md5
from pathlib import Path
from urllib import request
parser = ArgumentParser()
parser.add_argument(
"-d",
"--directory",
default=Path.cwd(),
type=Path,
help="Folder to scan for existing bioses",
)
args = parser.parse_args()
knowns = []
with open(Path(__file__).parent / "knowns.txt", "r") as f:
knowns = f.read().splitlines()
with request.urlopen(
"https://raw.githubusercontent.com/RetroDECK/RetroDECK/main/emu-configs/defaults/retrodeck/reference_lists/bios_checklist.cfg"
) as response:
bioses = reader(response.read().decode().splitlines(), delimiter="^")
for bios in bioses:
if "pico" in bios[0]:
continue
bios_path = args.directory / bios[1] / bios[0]
if not bios_path.is_file():
print(
f"\033[91mMissing {bios_path.relative_to(args.directory)} on {bios[3]} with hash {bios[2]}\033[00m"
)
elif bios[2] == "Unknown":
if str(bios_path.relative_to(args.directory)) not in knowns:
print(
f"Unknown checksum for {bios_path.relative_to(args.directory)} on {bios[3]}"
)
else:
with open(bios_path, "rb") as file:
checksum = md5(file.read()).hexdigest()
if checksum != bios[2] and bios[1] != "dc/":
print(
f"\033[93mChecksum mismatch for {bios_path.relative_to(args.directory)} on {bios[3]}: {checksum}\033[00m != \033[92m{bios[2]}\033[00m"
)