distribution/packages/jelos/sources/scripts/batocera-systems
2022-02-05 09:23:32 -05:00

612 lines
54 KiB
Python
Executable file

#!/usr/bin/env python
from __future__ import print_function
from hashlib import md5
from os.path import isfile
from collections import OrderedDict
import sys
systems = {
# Atari
"atari5200": {"name": "Atari 5200", "biosFiles": [{"md5": "281f20ea4320404ec820fb7ec0693b38", "file": "bios/5200.rom"}]},
"atari800": {"name": "Atari 800", "biosFiles": [{"md5": "06daac977823773a3eea3422fd26a703", "file": "bios/ATARIXL.ROM"},
{"md5": "0bac0c6a50104045d902df4503a4c30b", "file": "bios/ATARIBAS.ROM"},
{"md5": "eb1f32f5d9f382db1bbfb8d7f9cb343a", "file": "bios/ATARIOSA.ROM"},
{"md5": "a3e8d617c95d08031fe1b20d541434b2", "file": "bios/ATARIOSB.ROM"}]},
"atari7800": {"name": "Atari 7800", "biosFiles": [{"md5": "0763f1ffb006ddbe32e52d497ee848ae", "file": "bios/7800 BIOS (U).rom"}]},
"atarist": {"name": "Atari ST", "biosFiles": [{"md5": "b2a8570de2e850c5acf81cb80512d9f6", "file": "bios/tos.img"}]},
"atarilynx": {"name": "Lynx", "biosFiles": [{"md5": "fcd403db69f54290b51035d82f835e7b", "file": "bios/lynxboot.img"}]},
# Colecovision
"colecovision": {"name": "Colecovision", "biosFiles": [{"md5": "", "file": "bios/Machines/COL - Bit Corporation Dina/config.ini"},
{"md5": "1de922acdd742d31349c2801e9768c35", "file": "bios/Machines/COL - Bit Corporation Dina/czz50-1.rom"},
{"md5": "72b089dc55b7fe7ffb5028f365e8c045", "file": "bios/Machines/COL - Bit Corporation Dina/czz50-2.rom"},
{"md5": "2c66f5911e5b42b8ebe113403548eee7", "file": "bios/Machines/COL - ColecoVision/coleco.rom"},
{"md5": "", "file": "bios/Machines/COL - ColecoVision/config.ini"},
{"md5": "2c66f5911e5b42b8ebe113403548eee7", "file": "bios/Machines/COL - ColecoVision with Opcode Memory Extension/coleco.rom"},
{"md5": "", "file": "bios/Machines/COL - ColecoVision with Opcode Memory Extension/config.ini"},
{"md5": "", "file": "bios/Machines/COL - Spectravideo SVI-603 Coleco/config.ini"},
{"md5": "c60a2e85572c0ccb69505a7646d5c1b6", "file": "bios/Machines/COL - Spectravideo SVI-603 Coleco/SVI603.ROM"},
{"md5": "", "file": "bios/Databases/colecodb.xml"},
{"md5": "2c66f5911e5b42b8ebe113403548eee7", "file": "bios/colecovision.rom"},
{"md5": "2c66f5911e5b42b8ebe113403548eee7", "file": "bios/BIOS.col"}]},
# Commodore
"amiga": {"name": "Amiga/CD32", "biosFiles": [{"md5": "89da1838a24460e4b93f4f0c5d92d48d", "file": "bios/CDTV Extended-ROM v1.0 (1991)(Commodore)(CDTV)[!].rom"},
{"md5": "85ad74194e87c08904327de1a9443b7a", "file": "bios/Kickstart v1.2 r33.180 (1986)(Commodore)(A500-A1000-A2000)[!].rom"},
{"md5": "68c9c0826f6c0ca20546d588ee77391c", "file": "bios/Kickstart v1.2 rev 33.166 (1986)(Commodore)(A1000).rom"},
{"md5": "192d6d950d0ed3df8040b788502831c2", "file": "bios/Kickstart v1.3 r34.5 (1987)(Commodore)(A500-A1000-A2000-CDTV)[o].rom"},
{"md5": "82a21c1890cae844b3df741f2762d48d", "file": "bios/Kickstart v1.3 r34.5 (1987)(Commodore)(A500-A1000-A2000-CDTV)[!].rom"},
{"md5": "dc10d7bdd1b6f450773dfb558477c230", "file": "bios/Kickstart v2.04 r37.175 (1991)(Commodore)(A500+)[!].rom"},
{"md5": "465646c9b6729f77eea5314d1f057951", "file": "bios/Kickstart v2.05 r37.350 (1992)(Commodore)(A600HD)[!].rom"},
{"md5": "5f8924d013dd57a89cf349f4cdedc6b1", "file": "bios/Kickstart v3.1 r40.60 (1993)(Commodore)(CD32).rom"},
{"md5": "646773759326fbac3b2311fd8c8793ee", "file": "bios/Kickstart v3.1 r40.68 (1993)(Commodore)(A1200)[!].rom"},
{"md5": "413590e50098a056cfec418d3df0212d", "file": "bios/Kickstart v3.1 r40.68 (1993)(Commodore)(A3000).rom"},
{"md5": "9bdedde6a4f33555b4a270c8ca53297d", "file": "bios/Kickstart v3.1 r40.68 (1993)(Commodore)(A4000).rom"},
{"md5": "85ad74194e87c08904327de1a9443b7a", "file": "bios/kick33180.A500"},
{"md5": "82a21c1890cae844b3df741f2762d48d", "file": "bios/kick34005.A500"},
{"md5": "dc10d7bdd1b6f450773dfb558477c230", "file": "bios/kick37175.A500"},
{"md5": "5f8924d013dd57a89cf349f4cdedc6b1", "file": "bios/kick40060.CD32"},
{"md5": "bb72565701b1b6faece07d68ea5da639", "file": "bios/kick40060.CD32.ext"},
{"md5": "e40a5dfb3d017ba8779faba30cbd1c8e", "file": "bios/kick40063.A600"},
{"md5": "646773759326fbac3b2311fd8c8793ee", "file": "bios/kick40068.A1200"},
{"md5": "9bdedde6a4f33555b4a270c8ca53297d", "file": "bios/kick40068.A4000"},
{"md5": "bb72565701b1b6faece07d68ea5da639", "file": "bios/CD32 Extended-ROM r40.60 (1993)(Commodore)(CD32).rom"}]},
# Magnavox and Philips
"o2em": {"name": "Odyssey 2", "biosFiles": [{"md5": "562d5ebf9e030a40d6fabfc2f33139fd", "file": "bios/o2rom.bin"},
{"md5": "f1071cdb0b6b10dde94d3bc8a6146387", "file": "bios/c52.bin"},
{"md5": "c500ff71236068e0dc0d0603d265ae76", "file": "bios/g7400.bin"},
{"md5": "279008e4a0db2dc5f1c048853b033828", "file": "bios/jopac.bin"}]},
# Mattel
"intellivision": {"name": "Mattel Intellivision", "biosFiles": [{"md5": "62e761035cb657903761800f4437b8af", "file": "bios/exec.bin"},
{"md5": "0cd5946c6473e42e8e4c2137785e427f", "file": "bios/grom.bin"},
{"md5": "2e72a9a2b897d330a35c8b07a6146c52", "file": "bios/ECS.bin"},
{"md5": "d5530f74681ec6e0f282dab42e6b1c5f", "file": "bios/IVOICE.bin"}]},
# Microsoft
"msx": {"name": "MSX", "biosFiles": [{"md5": "", "file": "bios/Machines/Forte II Games - Pesadelo/config.ini"},
{"md5": "", "file": "bios/Machines/Forte II Games - Pesadelo/pesadelo.rom"},
{"md5": "", "file": "bios/Machines/MSX/config.ini"},
{"md5": "", "file": "bios/Machines/MSX/hardwareconfig.xml"},
{"md5": "", "file": "bios/Machines/MSX/MSX.ROM"},
{"md5": "", "file": "bios/Machines/MSX/MSX2.ROM"},
{"md5": "", "file": "bios/Machines/MSX/MSX2EXT.ROM"},
{"md5": "", "file": "bios/Machines/MSX/MSX2P.ROM"},
{"md5": "", "file": "bios/Machines/MSX/MSX2PEXT.ROM"},
{"md5": "", "file": "bios/Machines/MSX/MSXDOS2.ROM"},
{"md5": "", "file": "bios/Machines/MSX - Al Alamiah AX-170/config.ini"},
{"md5": "", "file": "bios/Machines/MSX - Arabic/config.ini"},
{"md5": "", "file": "bios/Machines/MSX - Brazilian/config.ini"},
{"md5": "", "file": "bios/Machines/MSX - Brazilian/hardwareconfig.xml"},
{"md5": "", "file": "bios/Machines/MSX - C-BIOS/cbios.txt"},
{"md5": "", "file": "bios/Machines/MSX - C-BIOS/cbios_logo_msx1.rom"},
{"md5": "", "file": "bios/Machines/MSX - C-BIOS/cbios_main_msx1.rom"},
{"md5": "", "file": "bios/Machines/MSX - C-BIOS/config.ini"},
{"md5": "", "file": "bios/Machines/MSX - Canon V-10/config.ini"},
{"md5": "", "file": "bios/Machines/MSX - Canon V-20/config.ini"},
{"md5": "", "file": "bios/Machines/MSX - Daewoo DPC-100/config.ini"},
{"md5": "", "file": "bios/Machines/MSX - Daewoo DPC-180/config.ini"},
{"md5": "", "file": "bios/Machines/MSX - Daewoo DPC-200/config.ini"},
{"md5": "", "file": "bios/Machines/MSX - Estonian/config.ini"},
{"md5": "", "file": "bios/Machines/MSX - Frael Bruc 100-1/config.ini"},
{"md5": "", "file": "bios/Machines/MSX - French/config.ini"},
{"md5": "", "file": "bios/Machines/MSX - German/config.ini"},
{"md5": "", "file": "bios/Machines/MSX - German/hardwareconfig.xml"},
{"md5": "", "file": "bios/Machines/MSX - Goldstar FC-200/config.ini"},
{"md5": "", "file": "bios/Machines/MSX - Gradiente Expert 1.0/config.ini"},
{"md5": "", "file": "bios/Machines/MSX - Gradiente Expert 1.1/config.ini"},
{"md5": "", "file": "bios/Machines/MSX - Gradiente Expert 1.3/config.ini"},
{"md5": "", "file": "bios/Machines/MSX - Gradiente Expert DDPlus/config.ini"},
{"md5": "", "file": "bios/Machines/MSX - Gradiente Expert Plus/config.ini"},
{"md5": "", "file": "bios/Machines/MSX - Japanese/config.ini"},
{"md5": "", "file": "bios/Machines/MSX - Japanese/hardwareconfig.xml"},
{"md5": "", "file": "bios/Machines/MSX - JVC HC-7GB/config.ini"},
{"md5": "", "file": "bios/Machines/MSX - Korean/config.ini"},
{"md5": "", "file": "bios/Machines/MSX - Korean/hardwareconfig.xml"},
{"md5": "", "file": "bios/Machines/MSX - Mitsubishi ML-F80/config.ini"},
{"md5": "", "file": "bios/Machines/MSX - Mitsubishi ML-FX1/config.ini"},
{"md5": "", "file": "bios/Machines/MSX - National CF-1200/config.ini"},
{"md5": "", "file": "bios/Machines/MSX2 - Panasonic FS-A1/config.ini"},
{"md5": "", "file": "bios/Machines/MSX2 - Panasonic FS-A1 (a)/config.ini"},
{"md5": "", "file": "bios/Machines/MSX2 - Panasonic FS-A1F/config.ini"},
{"md5": "", "file": "bios/Machines/MSX2 - Panasonic FS-A1FM/config.ini"},
{"md5": "", "file": "bios/Machines/MSX2 - Panasonic FS-A1MK2/config.ini"},
{"md5": "", "file": "bios/Machines/MSX2 - Philips NMS-8220/config.ini"},
{"md5": "", "file": "bios/Machines/MSX2 - Philips NMS-8220 (a)/config.ini"},
{"md5": "", "file": "bios/Machines/MSX2 - Philips NMS-8245/config.ini"},
{"md5": "", "file": "bios/Machines/MSX2 - Philips NMS-8245F/config.ini"},
{"md5": "", "file": "bios/Machines/MSX2 - Philips NMS-8250/config.ini"},
{"md5": "", "file": "bios/Machines/MSX2 - Philips NMS-8255/config.ini"},
{"md5": "", "file": "bios/Machines/MSX2 - Philips NMS-8280/config.ini"},
{"md5": "", "file": "bios/Machines/MSX2 - Philips NMS-8280G/config.ini"},
{"md5": "", "file": "bios/Machines/MSX2 - Philips VG-8230/config.ini"},
{"md5": "", "file": "bios/Machines/MSX2 - Philips VG-8235/config.ini"},
{"md5": "", "file": "bios/Machines/MSX - Sharp Epcom HotBit 1.2/config.ini"},
{"md5": "", "file": "bios/Machines/MSX - Sharp Epcom HotBit 1.3b/config.ini"},
{"md5": "", "file": "bios/Machines/MSX - Sharp Epcom HotBit 1.3p/config.ini"},
{"md5": "", "file": "bios/Machines/MSX - Sony HB-10P/config.ini"},
{"md5": "", "file": "bios/Machines/MSX - Sony HB-201/config.ini"},
{"md5": "", "file": "bios/Machines/MSX - Sony HB-201P/config.ini"},
{"md5": "", "file": "bios/Machines/MSX - Sony HB-20P/config.ini"},
{"md5": "", "file": "bios/Machines/MSX - Sony HB-501P/config.ini"},
{"md5": "", "file": "bios/Machines/MSX - Sony HB-55D/config.ini"},
{"md5": "", "file": "bios/Machines/MSX - Sony HB-55P/config.ini"},
{"md5": "", "file": "bios/Machines/MSX - Sony HB-75D/config.ini"},
{"md5": "", "file": "bios/Machines/MSX - Sony HB-75P/config.ini"},
{"md5": "", "file": "bios/Machines/MSX - Spanish/config.ini"},
{"md5": "", "file": "bios/Machines/MSX - Spectravideo SVI-728/config.ini"},
{"md5": "", "file": "bios/Machines/MSX - Spectravideo SVI-738/config.ini"},
{"md5": "", "file": "bios/Machines/MSX2 - Spectravideo SVI-738-2 CUC/config.ini"},
{"md5": "", "file": "bios/Machines/MSX2 - Spectravideo SVI-738-2 JP Grobler/config.ini"},
{"md5": "", "file": "bios/Machines/MSX2 - Spectravideo SVI-738-2 LC Grosso/config.ini"},
{"md5": "", "file": "bios/Machines/MSX2 - Swedish/config.ini"},
{"md5": "", "file": "bios/Machines/MSX2 - Talent TPC-310/config.ini"},
{"md5": "", "file": "bios/Machines/MSX2 - Toshiba HX-23/config.ini"},
{"md5": "", "file": "bios/Machines/MSX2 - Toshiba HX-23F/config.ini"},
{"md5": "", "file": "bios/Machines/MSX2 - Virtual Haesung Console/config.ini"},
{"md5": "", "file": "bios/Machines/MSX2 - Yamaha CX7M/config.ini"},
{"md5": "", "file": "bios/Machines/MSX2 - Yamaha CX7M-128/config.ini"},
{"md5": "", "file": "bios/Machines/MSX2+/config.ini"},
{"md5": "", "file": "bios/Machines/MSX2+/hardwareconfig.xml"},
{"md5": "", "file": "bios/Machines/MSX2+/MSX.ROM"},
{"md5": "", "file": "bios/Machines/MSX2+/MSX2.ROM"},
{"md5": "", "file": "bios/Machines/MSX2+/MSX2EXT.ROM"},
{"md5": "", "file": "bios/Machines/MSX2+/MSX2P.ROM"},
{"md5": "", "file": "bios/Machines/MSX2+/MSX2PEXT.ROM"},
{"md5": "", "file": "bios/Machines/MSX2+/MSXDOS2.ROM"},
{"md5": "", "file": "bios/Machines/MSX2+ - Brazilian/config.ini"},
{"md5": "", "file": "bios/Machines/MSX2+ - C-BIOS/cbios.txt"},
{"md5": "", "file": "bios/Machines/MSX2+ - C-BIOS/cbios_logo_msx2+.rom"},
{"md5": "", "file": "bios/Machines/MSX2+ - C-BIOS/cbios_main_msx2+.rom"},
{"md5": "", "file": "bios/Machines/MSX2+ - C-BIOS/cbios_music.rom"},
{"md5": "", "file": "bios/Machines/MSX2+ - C-BIOS/cbios_sub.rom"},
{"md5": "", "file": "bios/Machines/MSX2+ - C-BIOS/config.ini"},
{"md5": "", "file": "bios/Machines/MSX2+ - Ciel Expert 3 IDE/config.ini"},
{"md5": "", "file": "bios/Machines/MSX2+ - Ciel Expert 3 Turbo/config.ini"},
{"md5": "", "file": "bios/Machines/MSX - Spectravideo SVI-738 Swedish/config.ini"},
{"md5": "", "file": "bios/Machines/MSX - Swedish/config.ini"},
{"md5": "", "file": "bios/Machines/MSX - Swedish/hardwareconfig.xml"},
{"md5": "", "file": "bios/Machines/MSX - Talent DPC-200/config.ini"},
{"md5": "", "file": "bios/Machines/MSX - Talent DPC-200A/config.ini"},
{"md5": "", "file": "bios/Machines/MSX - Toshiba HX-10/config.ini"},
{"md5": "", "file": "bios/Machines/MSX - Toshiba HX-10S/config.ini"},
{"md5": "", "file": "bios/Machines/MSX - Toshiba HX-20/config.ini"},
{"md5": "", "file": "bios/Machines/MSX - Yamaha CX5M-1/config.ini"},
{"md5": "", "file": "bios/Machines/MSX - Yamaha CX5M-128/config.ini"},
{"md5": "", "file": "bios/Machines/MSX - Yamaha CX5M-2/config.ini"},
{"md5": "", "file": "bios/Machines/MSX - Yamaha CX5MII/config.ini"},
{"md5": "", "file": "bios/Machines/MSX - Yamaha YIS303/config.ini"},
{"md5": "", "file": "bios/Machines/MSX - Yamaha YIS503/config.ini"},
{"md5": "", "file": "bios/Machines/MSX - Yamaha YIS503F/config.ini"},
{"md5": "", "file": "bios/Machines/MSX - Yamaha YIS503II/config.ini"},
{"md5": "", "file": "bios/Machines/MSX - Yamaha YIS503IIR/config.ini"},
{"md5": "", "file": "bios/Machines/MSX - Yamaha YIS503M/config.ini"},
{"md5": "", "file": "bios/Machines/MSX - Yashica YC-64/config.ini"},
{"md5": "", "file": "bios/Machines/MSX - Yeno DPC-64/config.ini"},
{"md5": "", "file": "bios/Machines/MSX - Yeno MX64/config.ini"},
{"md5": "", "file": "bios/Machines/MSX2/config.ini"},
{"md5": "", "file": "bios/Machines/MSX2/hardwareconfig.xml"},
{"md5": "", "file": "bios/Machines/MSX2/MSX.ROM"},
{"md5": "", "file": "bios/Machines/MSX2/MSX2.ROM"},
{"md5": "", "file": "bios/Machines/MSX2/MSX2EXT.ROM"},
{"md5": "", "file": "bios/Machines/MSX2/MSX2P.ROM"},
{"md5": "", "file": "bios/Machines/MSX2/MSX2PEXT.ROM"},
{"md5": "", "file": "bios/Machines/MSX2/MSXDOS2.ROM"},
{"md5": "", "file": "bios/Machines/MSX2 - Al Alamiah AX-350/config.ini"},
{"md5": "", "file": "bios/Machines/MSX2 - Al Alamiah AX-370/config.ini"},
{"md5": "", "file": "bios/Machines/MSX2 - Arabic/config.ini"},
{"md5": "", "file": "bios/Machines/MSX2 - Arabic/hardwareconfig.xml"},
{"md5": "", "file": "bios/Machines/MSX2 - Brazilian/config.ini"},
{"md5": "", "file": "bios/Machines/MSX2 - Brazilian/hardwareconfig.xml"},
{"md5": "", "file": "bios/Machines/MSX2 - C-BIOS/cbios.txt"},
{"md5": "", "file": "bios/Machines/MSX2 - C-BIOS/cbios_logo_msx2.rom"},
{"md5": "", "file": "bios/Machines/MSX2 - C-BIOS/cbios_main_msx2.rom"},
{"md5": "", "file": "bios/Machines/MSX2 - C-BIOS/cbios_sub.rom"},
{"md5": "", "file": "bios/Machines/MSX2 - C-BIOS/config.ini"},
{"md5": "", "file": "bios/Machines/MSX2 - Daewoo CPC-300/config.ini"},
{"md5": "", "file": "bios/Machines/MSX2 - Daewoo CPC-300E/config.ini"},
{"md5": "", "file": "bios/Machines/MSX2 - Daewoo CPC-400/config.ini"},
{"md5": "", "file": "bios/Machines/MSX2 - Daewoo CPC-400S/config.ini"},
{"md5": "", "file": "bios/Machines/MSX2 - Estonian/config.ini"},
{"md5": "", "file": "bios/Machines/MSX2 - French/config.ini"},
{"md5": "", "file": "bios/Machines/MSX2 - French/hardwareconfig.xml"},
{"md5": "", "file": "bios/Machines/MSX2 - German/config.ini"},
{"md5": "", "file": "bios/Machines/MSX2 - German/hardwareconfig.xml"},
{"md5": "", "file": "bios/Machines/MSX2 - Gradiente Expert 2.0/config.ini"},
{"md5": "", "file": "bios/Machines/MSX2 - Japanese/config.ini"},
{"md5": "", "file": "bios/Machines/MSX2 - Japanese/hardwareconfig.xml"},
{"md5": "", "file": "bios/Machines/MSX2 - Korean/config.ini"},
{"md5": "", "file": "bios/Machines/MSX2 - Korean/hardwareconfig.xml"},
{"md5": "", "file": "bios/Machines/MSX2 - National FS-4500/config.ini"},
{"md5": "", "file": "bios/Machines/MSX2 - National FS-4600/config.ini"},
{"md5": "", "file": "bios/Machines/MSX2 - National FS-4700/config.ini"},
{"md5": "", "file": "bios/Machines/MSX2 - National FS-5000/config.ini"},
{"md5": "", "file": "bios/Machines/MSX2 - National FS-5500F1/config.ini"},
{"md5": "", "file": "bios/Machines/MSX2 - National FS-5500F2/config.ini"},
{"md5": "", "file": "bios/Machines/MSX - Daewoo DPC-200E/config.ini"},
{"md5": "", "file": "bios/Machines/MSX - National CF-2000/config.ini"},
{"md5": "", "file": "bios/Machines/MSX - Sharp Epcom HotBit 1.1/config.ini"},
{"md5": "", "file": "bios/Machines/MSX - Spectravideo SVI-738 Henrik Gilvad/config.ini"},
{"md5": "", "file": "bios/Machines/MSX - Yamaha YIS503IIR Estonian/config.ini"},
{"md5": "", "file": "bios/Machines/MSX2 - Only PSG/config.ini"},
{"md5": "", "file": "bios/Machines/MSX2 - Only PSG/hardwareconfig.xml"},
{"md5": "", "file": "bios/Machines/MSX2 - Philips VG-8235F/config.ini"},
{"md5": "", "file": "bios/Machines/MSX2 - Spanish/config.ini"},
{"md5": "", "file": "bios/Machines/MSX2 - Spanish/hardwareconfig.xml"},
{"md5": "", "file": "bios/Machines/MSX2+ - European/config.ini"},
{"md5": "", "file": "bios/Machines/MSX - National CF-2700/config.ini"},
{"md5": "", "file": "bios/Machines/MSX - National CF-3000/config.ini"},
{"md5": "", "file": "bios/Machines/MSX - National CF-3300/config.ini"},
{"md5": "", "file": "bios/Machines/MSX - National FS-1300/config.ini"},
{"md5": "", "file": "bios/Machines/MSX - National FS-4000/config.ini"},
{"md5": "", "file": "bios/Machines/MSX - Olympia PHC-2/config.ini"},
{"md5": "", "file": "bios/Machines/MSX - Olympia PHC-28/config.ini"},
{"md5": "", "file": "bios/Machines/MSX - Panasonic CF-2700G/config.ini"},
{"md5": "", "file": "bios/Machines/MSX - Philips NMS-801/config.ini"},
{"md5": "", "file": "bios/Machines/MSX - Philips VG-8000/config.ini"},
{"md5": "", "file": "bios/Machines/MSX - Philips VG-8010/config.ini"},
{"md5": "", "file": "bios/Machines/MSX - Philips VG-8010F/config.ini"},
{"md5": "", "file": "bios/Machines/MSX - Philips VG-8020-00/config.ini"},
{"md5": "", "file": "bios/Machines/MSX - Philips VG-8020-20/config.ini"},
{"md5": "", "file": "bios/Machines/MSX - Philips VG-8020F/config.ini"},
{"md5": "", "file": "bios/Machines/MSX - Pioneer PX-7/config.ini"},
{"md5": "", "file": "bios/Machines/MSX - Pioneer PX-V60/config.ini"},
{"md5": "", "file": "bios/Machines/MSX - Russian/config.ini"},
{"md5": "", "file": "bios/Machines/MSX - Sanyo MPC-100/config.ini"},
{"md5": "", "file": "bios/Machines/MSX - Sanyo MPC-64/config.ini"},
{"md5": "", "file": "bios/Machines/MSX - Sanyo PHC-28L/config.ini"},
{"md5": "", "file": "bios/Machines/MSX - Sanyo PHC-28S/config.ini"},
{"md5": "", "file": "bios/Machines/MSX - Sanyo Wavy MPC-10/config.ini"},
{"md5": "", "file": "bios/Machines/MSX2+ - Gradiente Expert AC88+/config.ini"},
{"md5": "", "file": "bios/Machines/MSX2+ - Gradiente Expert DDX+/config.ini"},
{"md5": "", "file": "bios/Machines/MSX2+ - MSXPLAYer 2003/config.ini"},
{"md5": "", "file": "bios/Machines/MSX2+ - Panasonic FS-A1FX/config.ini"},
{"md5": "", "file": "bios/Machines/MSX2+ - Panasonic FS-A1WSX/config.ini"},
{"md5": "", "file": "bios/Machines/MSX2+ - Panasonic FS-A1WX/config.ini"},
{"md5": "", "file": "bios/Machines/MSX2+ - Panasonic FS-A1WX (a)/config.ini"},
{"md5": "", "file": "bios/Machines/MSX2+ - Sanyo Wavy PHC-35J/config.ini"},
{"md5": "", "file": "bios/Machines/MSX2+ - Sanyo Wavy PHC-70FD1/config.ini"},
{"md5": "", "file": "bios/Machines/MSX2+ - Sanyo Wavy PHC-70FD2/config.ini"},
{"md5": "", "file": "bios/Machines/MSX2+ - Sony HB-F1XDJ/config.ini"},
{"md5": "", "file": "bios/Machines/MSX2+ - Sony HB-F1XV/config.ini"},
{"md5": "", "file": "bios/Machines/MSX2+ - Sony HB-F9S+/config.ini"},
{"md5": "", "file": "bios/Machines/MSXturboR/config.ini"},
{"md5": "", "file": "bios/Machines/MSXturboR - European/config.ini"},
{"md5": "", "file": "bios/Machines/MSXturboR - Panasonic FS-A1GT/config.ini"},
{"md5": "", "file": "bios/Machines/MSXturboR - Panasonic FS-A1ST/config.ini"},
{"md5": "", "file": "bios/Machines/MSXturboR - Panasonic FS-A1ST (a)/config.ini"},
{"md5": "", "file": "bios/Machines/MSXturboR - Panasonic FS-A1ST (b)/config.ini"},
{"md5": "", "file": "bios/Machines/Shared Roms/MSX2G.rom"},
{"md5": "", "file": "bios/Machines/Shared Roms/MSXDOS23.ROM"},
{"md5": "", "file": "bios/Machines/Shared Roms/ARAB1.ROM"},
{"md5": "", "file": "bios/Machines/Shared Roms/ARABIC.rom"},
{"md5": "", "file": "bios/Machines/Shared Roms/BEERIDE.ROM"},
{"md5": "", "file": "bios/Machines/Shared Roms/FMPAC.rom"},
{"md5": "", "file": "bios/Machines/Shared Roms/GCVMX80.ROM"},
{"md5": "", "file": "bios/Machines/Shared Roms/HANGUL.rom"},
{"md5": "", "file": "bios/Machines/Shared Roms/KANJI.rom"},
{"md5": "", "file": "bios/Machines/Shared Roms/MICROSOLDISK.ROM"},
{"md5": "", "file": "bios/Machines/Shared Roms/MOONSOUND.rom"},
{"md5": "", "file": "bios/Machines/Shared Roms/MSX.rom"},
{"md5": "", "file": "bios/Machines/Shared Roms/MSX2.rom"},
{"md5": "", "file": "bios/Machines/Shared Roms/MSX2AR.ROM"},
{"md5": "", "file": "bios/Machines/Shared Roms/MSX2AREXT.ROM"},
{"md5": "", "file": "bios/Machines/Shared Roms/MSX2BR.rom"},
{"md5": "", "file": "bios/Machines/Shared Roms/MSX2BREXT.rom"},
{"md5": "", "file": "bios/Machines/Shared Roms/MSX2EXT.rom"},
{"md5": "", "file": "bios/Machines/Shared Roms/MSX2FR.rom"},
{"md5": "", "file": "bios/Machines/Shared Roms/MSX2FREXT.rom"},
{"md5": "", "file": "bios/Machines/Shared Roms/MSX2GEXT.rom"},
{"md5": "", "file": "bios/Machines/Shared Roms/MSX2HAN.rom"},
{"md5": "", "file": "bios/Machines/Shared Roms/MSX2J.rom"},
{"md5": "", "file": "bios/Machines/Shared Roms/MSX2JEXT.rom"},
{"md5": "", "file": "bios/Machines/Shared Roms/MSX2KR.rom"},
{"md5": "", "file": "bios/Machines/Shared Roms/MSX2KREXT.rom"},
{"md5": "", "file": "bios/Machines/Shared Roms/MSX2P.rom"},
{"md5": "", "file": "bios/Machines/Shared Roms/MSX2PEXT.rom"},
{"md5": "", "file": "bios/Machines/Shared Roms/MSX2PMUS.rom"},
{"md5": "", "file": "bios/Machines/Shared Roms/MSX2R.rom"},
{"md5": "", "file": "bios/Machines/Shared Roms/MSX2R2.ROM"},
{"md5": "", "file": "bios/Machines/Shared Roms/MSX2REXT.rom"},
{"md5": "", "file": "bios/Machines/Shared Roms/MSX2SE.rom"},
{"md5": "", "file": "bios/Machines/Shared Roms/MSX2SP.rom"},
{"md5": "", "file": "bios/Machines/Shared Roms/MSX2SPEXT.rom"},
{"md5": "", "file": "bios/Machines/Shared Roms/MSXAR.ROM"},
{"md5": "", "file": "bios/Machines/Shared Roms/MSXBR.rom"},
{"md5": "", "file": "bios/Machines/Shared Roms/MSXDOS2.ROM"},
{"md5": "", "file": "bios/Machines/Shared Roms/MSXFR.rom"},
{"md5": "", "file": "bios/Machines/Shared Roms/MSXG.rom"},
{"md5": "", "file": "bios/Machines/Shared Roms/MSXHAN.rom"},
{"md5": "", "file": "bios/Machines/Shared Roms/MSXJ.rom"},
{"md5": "", "file": "bios/Machines/Shared Roms/MSXKANJI.rom"},
{"md5": "", "file": "bios/Machines/Shared Roms/MSXKR.rom"},
{"md5": "", "file": "bios/Machines/Shared Roms/MSXR.rom"},
{"md5": "", "file": "bios/Machines/Shared Roms/MSXR2.rom"},
{"md5": "", "file": "bios/Machines/Shared Roms/MSXSE.ROM"},
{"md5": "", "file": "bios/Machines/Shared Roms/MSXSP.rom"},
{"md5": "", "file": "bios/Machines/Shared Roms/MSXTR.ROM"},
{"md5": "", "file": "bios/Machines/Shared Roms/MSXTREXT.ROM"},
{"md5": "", "file": "bios/Machines/Shared Roms/MSXTRMUS.ROM"},
{"md5": "", "file": "bios/Machines/Shared Roms/MSXTROPT.ROM"},
{"md5": "", "file": "bios/Machines/Shared Roms/NATIONALDISK.rom"},
{"md5": "", "file": "bios/Machines/Shared Roms/NOVAXIS.rom"},
{"md5": "", "file": "bios/Machines/Shared Roms/nowindDos1.rom"},
{"md5": "", "file": "bios/Machines/Shared Roms/nowindDos2.rom"},
{"md5": "", "file": "bios/Machines/Shared Roms/PAINT.rom"},
{"md5": "", "file": "bios/Machines/Shared Roms/PANASONICDISK.rom"},
{"md5": "", "file": "bios/Machines/Shared Roms/PHILIPSDISK.rom"},
{"md5": "", "file": "bios/Machines/Shared Roms/RS232.ROM"},
{"md5": "", "file": "bios/Machines/Shared Roms/Shared.txt"},
{"md5": "", "file": "bios/Machines/Shared Roms/SUNRISEIDE.rom"},
{"md5": "", "file": "bios/Machines/Shared Roms/SWP.rom"},
{"md5": "", "file": "bios/Machines/Shared Roms/XBASIC2.rom"},
{"md5": "", "file": "bios/Machines/SVI - Spectravideo SVI-318/config.ini"},
{"md5": "", "file": "bios/Machines/SVI - Spectravideo SVI-318/svi318.rom"},
{"md5": "", "file": "bios/Machines/SVI - Spectravideo SVI-328/config.ini"},
{"md5": "", "file": "bios/Machines/SVI - Spectravideo SVI-328/svi328.rom"},
{"md5": "", "file": "bios/Machines/SVI - Spectravideo SVI-328 80 Column/config.ini"},
{"md5": "", "file": "bios/Machines/SVI - Spectravideo SVI-328 80 Column/svi328a.rom"},
{"md5": "", "file": "bios/Machines/SVI - Spectravideo SVI-328 80 Column/svi806.rom"},
{"md5": "", "file": "bios/Machines/SVI - Spectravideo SVI-328 80 Swedish/config.ini"},
{"md5": "", "file": "bios/Machines/SVI - Spectravideo SVI-328 80 Swedish/svi328a.rom"},
{"md5": "", "file": "bios/Machines/SVI - Spectravideo SVI-328 80 Swedish/svi806se.rom"},
{"md5": "", "file": "bios/Machines/SVI - Spectravideo SVI-328 MK2/config.ini"},
{"md5": "", "file": "bios/Machines/SVI - Spectravideo SVI-328 MK2/svi328a.rom"},
{"md5": "", "file": "bios/Machines/SVI - Spectravideo SVI-328 MK2/svi806.rom"},
{"md5": "", "file": "bios/Machines/Turbo-R/hardwareconfig.xml"},
{"md5": "", "file": "bios/Machines/MSX2 - Philips VG-8240/config.ini"},
{"md5": "", "file": "bios/Machines/MSX2 - Russian/config.ini"},
{"md5": "", "file": "bios/Machines/MSX2 - Russian/hardwareconfig.xml"},
{"md5": "", "file": "bios/Machines/MSX2 - Sanyo Wavy MPC-25FD/config.ini"},
{"md5": "", "file": "bios/Machines/MSX2 - Sanyo Wavy PHC-23/config.ini"},
{"md5": "", "file": "bios/Machines/MSX2 - Sharp Epcom HotBit 2.0/config.ini"},
{"md5": "", "file": "bios/Machines/MSX2 - Sony HB-F1/config.ini"},
{"md5": "", "file": "bios/Machines/MSX2 - Sony HB-F1II/config.ini"},
{"md5": "", "file": "bios/Machines/MSX2 - Sony HB-F1XD/config.ini"},
{"md5": "", "file": "bios/Machines/MSX2 - Sony HB-F1XDMK2/config.ini"},
{"md5": "", "file": "bios/Machines/MSX2 - Sony HB-F500/config.ini"},
{"md5": "", "file": "bios/Machines/MSX2 - Sony HB-F500P/config.ini"},
{"md5": "", "file": "bios/Machines/MSX2 - Sony HB-F700D/config.ini"},
{"md5": "", "file": "bios/Machines/MSX2 - Sony HB-F700F/config.ini"},
{"md5": "", "file": "bios/Machines/MSX2 - Sony HB-F700P/config.ini"},
{"md5": "", "file": "bios/Machines/MSX2 - Sony HB-F700S/config.ini"},
{"md5": "", "file": "bios/Machines/MSX2 - Sony HB-F900/config.ini"},
{"md5": "", "file": "bios/Machines/MSX2 - Sony HB-F900 (a)/config.ini"},
{"md5": "", "file": "bios/Machines/MSX2 - Sony HB-F9P/config.ini"},
{"md5": "", "file": "bios/Machines/MSX2 - Sony HB-F9P Russian/config.ini"},
{"md5": "", "file": "bios/Machines/MSX2 - Sony HB-F9S/config.ini"},
{"md5": "", "file": "bios/Machines/MSX2 - Sony HB-G900AP/config.ini"},
{"md5": "", "file": "bios/Machines/MSX2 - Sony HB-G900P/config.ini"}]},
# NEC
"pcengine": {"name": "PC Engine", "biosFiles": [{"md5": "38179df8f4ac870017db21ebcbf53114;ff1a674273fe3540ccef576376407d1d", "file": "bios/syscard3.pce"}]},
"pcfx": {"name": "PC-FX", "biosFiles": [{"md5": "08e36edbea28a017f79f8d4f7ff9b6d7", "file": "bios/pcfx.rom"}]},
"supergrafx": {"name": "Supergrafx", "biosFiles": [{"md5": "38179df8f4ac870017db21ebcbf53114;ff1a674273fe3540ccef576376407d1d", "file": "bios/syscard3.pce"},
{"md5": "", "file": "bios/syscard2.pce"},
{"md5": "", "file": "bios/syscard1.pce"},
{"md5": "", "file": "bios/gexpress.pce"}]},
"pc88": {"name": "NEC - PC-8800", "biosFiles": [{"md5": "", "file": "bios/quasi88/DISK.ROM"},
{"md5": "", "file": "bios/quasi88/N88.ROM"},
{"md5": "", "file": "bios/quasi88/N88N.ROM"},
{"md5": "", "file": "bios/quasi88/N88_0.ROM"},
{"md5": "", "file": "bios/quasi88/N88_1.ROM"},
{"md5": "", "file": "bios/quasi88/N88_2.ROM"},
{"md5": "", "file": "bios/quasi88/N88_3.ROM"},
{"md5": "", "file": "bios/quasi88/N88_KNJ1.ROM"},
{"md5": "", "file": "bios/quasi88/N88_KNJ2.ROM"}]},
# Nintendo
"fds": {"name": "Nintendo Family Computer Disk System", "biosFiles": [{"md5": "", "file": "bios/NstDatabase.xml"},
{"md5": "ca30b50f880eb660a320674ed365ef7a", "file": "bios/disksys.rom"}]},
"gb": {"name": "Game Boy", "biosFiles": [{"md5": "32fbbd84168d3482956eb3c5051637f5", "file": "bios/gb_bios.bin"},
{"md5": "dbfce9db9deaa2567f6a84fde55f9680", "file": "bios/gbc_bios.bin"}]},
"gbc": {"name": "Game Boy Color", "biosFiles": [{"md5": "32fbbd84168d3482956eb3c5051637f5", "file": "bios/gb_bios.bin"},
{"md5": "dbfce9db9deaa2567f6a84fde55f9680", "file": "bios/gbc_bios.bin"}]},
"gba": {"name": "Game Boy Advance", "biosFiles": [{"md5": "a860e8c0b6d573d191e4ec7db1b1e4f6", "file": "bios/gba_bios.bin"},
{"md5": "32fbbd84168d3482956eb3c5051637f5", "file": "bios/gb_bios.bin"},
{"md5": "dbfce9db9deaa2567f6a84fde55f9680", "file": "bios/gbc_bios.bin"},
{"md5": "d574d4f9c12f305074798f54c091a8b4", "file": "bios/sgb_bios.bin"}]},
"n64": {"name": "Nintendo 64", "biosFiles": [{"md5": "8d3d9f294b6e174bc7b1d2fd1c727530", "file": "bios/64DD_IPL.bin"}]},
"nds": {"name": "Nintendo DS", "biosFiles": [{"md5": "145eaef5bd3037cbc247c213bb3da1b3", "file": "bios/firmware.bin"},
{"md5": "df692a80a5b1bc90728bc3dfc76cd948", "file": "bios/bios7.bin"},
{"md5": "a392174eb3e572fed6447e956bde4b25", "file": "bios/bios9.bin"}]},
"satellaview": {"name": "Satellaview", "biosFiles": [{"md5": "fed4d8242cfbed61343d53d48432aced;96cf17bf589fcbfa6f8de2dc84f19fa2", "file": "bios/BS-X.bin"}]},
"sufami": {"name": "Sufami", "biosFiles": [{"md5": "d3a44ba7d42a74d3ac58cb9c14c6a5ca", "file": "bios/STBIOS.bin"}]},
# Panasonic, Sanyo and Goldstar
"3do": {"name": "3DO", "biosFiles": [{"md5": "f47264dd47fe30f73ab3c010015c155b", "file": "bios/panafz1.bin"},
{"md5": "51f2f43ae2f3508a14d9f56597e2d3ce", "file": "bios/panafz10.bin"},
{"md5": "8639fd5e549bd6238cfee79e3e749114", "file": "bios/goldstar.bin"},
{"md5": "35fa1a1ebaaeea286dc5cd15487c13ea", "file": "bios/sanyotry.bin"},
{"md5": "8970fc987ab89a7f64da9f8a8c4333ff", "file": "bios/3do_arcade_saot.bin"}]},
# Sega
"naomi": {"name": "Naomi", "biosFiles": [{"md5": "3bffafac42a7767d8dcecf771f5552ba", "file": "bios/dc/naomi_boot.bin"},
{"md5": "e63d892cdb8b532351dc7020bb60b6f4", "file": "bios/dc/naomi.zip"}]},
"atomiswave": {"name": "Atomiswave", "biosFiles": [{"md5": "0ec5ae5b5a5c4959fa8b43fcf8687f7c", "file": "bios/dc/awbios.zip"}]},
"dreamcast": {"name": "Dreamcast", "biosFiles": [{"md5": "e10c53c2f8b90bab96ead2d368858623", "file": "bios/dc/dc_boot.bin"},
{"md5": "0a93f7940c455905bea6e392dfde92a4", "file": "bios/dc/dc_flash.bin"}]},
"gamegear": {"name": "Game Gear", "biosFiles": [{"md5": "672e104c3be3a238301aceffc3b23fd6", "file": "bios/bios.gg"}]},
"mastersystem": {"name": "MasterSystem", "biosFiles": [{"md5": "840481177270d5642a14ca71ee72844c", "file": "bios/bios_E.sms"},
{"md5": "840481177270d5642a14ca71ee72844c", "file": "bios/bios_U.sms"},
{"md5": "24a519c53f67b00640d0048ef7089105", "file": "bios/bios_J.sms"}]},
"saturn": {"name": "Sega Saturn", "biosFiles": [{"md5": "af5828fdff51384f99b3c4926be27762", "file": "bios/saturn_bios.bin"},
{"md5": "85ec9ca47d8f6807718151cbcca8b964", "file": "bios/sega_101.bin"},
{"md5": "3240872c70984b6cbfda1586cab68dbe", "file": "bios/mpr-17933.bin"},
{"md5": "255113ba943c92a54facd25a10fd780c", "file": "bios/mpr-18811-mx.ic1"},
{"md5": "1cd19988d1d72a3e7caa0b73234c96b4", "file": "bios/mpr-19367-mx.ic1"},
{"md5": "53a094ad3a188f86de4e64624fe9b3ca", "file": "bios/stvbios.zip"}]},
"segacd": {"name": "Sega CD", "biosFiles": [{"md5": "e66fa1dc5820d254611fdcdba0662372", "file": "bios/bios_CD_E.bin"},
{"md5": "854b9150240a198070150e4566ae1290", "file": "bios/bios_CD_U.bin"},
{"md5": "278a9397d192149e84e820ac621a8edd", "file": "bios/bios_CD_J.bin"}]},
"sc-3000": {"name": "SC-3000", "biosFiles": [{"md5": "", "file": "bios/Machines/SEGA - SC-3000/config.ini"}]},
# Sharp
"x68000": {"name": "Sharp x68000", "biosFiles": [{"md5": "", "file": "bios/keropi/iplrom.dat"},
{"md5": "", "file": "bios/keropi/iplrom30.dat"},
{"md5": "", "file": "bios/keropi/iplromco.dat"},
{"md5": "", "file": "bios/keropi/iplromxv.dat"},
{"md5": "", "file": "bios/keropi/cgrom.dat"}]},
"x1": {"name": "Sharp X1", "biosFiles": [{"md5": "eeeea1cd29c6e0e8b094790ae969bfa7", "file": "bios/xmil/IPLROM.X1"},
{"md5": "851e4a5936f17d13f8c39a980cf00d77", "file": "bios/xmil/IPLROM.X1T"}]},
# SNK
"neogeo": {"name": "NeoGeo", "biosFiles": [{"md5": "", "file": "neogeo/neogeo.zip"}]},
"neogeocd": {"name": "NeoGeo CD", "biosFiles": [{"md5": "", "file": "neogeo/neogeo.zip"},
{"md5": "", "file": "bios/neocdz.zip"},
{"md5": "e255264d85d5765013b1b2fa8109dd53", "file": "bios/neocd/ng-lo.rom"},
{"md5": "f39572af7584cb5b3f70ae8cc848aba2", "file": "bios/neocd/neocd_z.rom"}]},
# Sony Computer Entertainment
"psx": {"name": "PSX", "biosFiles": [{"md5": "8dd7d5296a650fac7319bce665a6a53c", "file": "bios/scph5500.bin"},
{"md5": "490f666e1afb15b7362b406ed1cea246", "file": "bios/scph5501.bin"},
{"md5": "32736f17079d0b2b7024407c39bd3050", "file": "bios/scph5502.bin"}]},
# Sinclair
"zxspectrum": {"name": "ZX Spectrum", "biosFiles": [{"md5": "", "file": "bios/128p-0.rom"},
{"md5": "", "file": "bios/128p-1.rom"},
{"md5": "", "file": "bios/trdos.rom"},
{"md5": "", "file": "bios/gluck.rom"},
{"md5": "", "file": "bios/256s-0.rom"},
{"md5": "", "file": "bios/256s-1.rom"},
{"md5": "", "file": "bios/256s-2.rom"},
{"md5": "", "file": "bios/256s-3.rom"}]},
}
class BiosStatus:
MISSING = "MISSING"
UNTESTED = "UNTESTED"
def md5sum(filename, blocksize=65536):
hash = md5()
with open(filename, "rb") as f:
for block in iter(lambda: f.read(blocksize), b""):
hash.update(block)
return hash.hexdigest()
def checkBios(systems, prefix):
missingBios = {}
for system in systems.keys():
for file in systems[system]["biosFiles"]:
x = 0
filepath = prefix + "/" + file["file"]
if ";" in file["md5"]:
filehashes = file["md5"].split(";")
else:
filehashes = (file["md5"],)
if isfile(filepath):
md5 = md5sum(filepath)
if md5 not in filehashes and file["md5"] != "":
if system not in missingBios:
missingBios[system] = {}
for filehash in filehashes:
x += 1
missingBios[system][file["file"]+"(hash%s)" % x] = {"status": BiosStatus.UNTESTED, "md5": filehash, "file": file["file"]}
else:
if system not in missingBios:
missingBios[system] = {}
for filehash in filehashes:
x += 1
missingBios[system][file["file"]+"(hash%s)" % x] = {"status": BiosStatus.MISSING, "md5": filehash, "file": file["file"]}
return missingBios
# Returns True if missing, False if nothing is missing
def displayMissingBios(systems, missingBios):
sortedMissingBios = OrderedDict(sorted(missingBios.items()))
if sortedMissingBios:
for system in sortedMissingBios:
print("> {}".format(systems[system]["name"]))
for file in sortedMissingBios[system].keys():
md5str = "-"
if sortedMissingBios[system][file]["md5"] != "":
md5str = sortedMissingBios[system][file]["md5"]
print("{} {} {}".format(sortedMissingBios[system][file]["status"], md5str, sortedMissingBios[system][file]["file"]))
return True
else:
print("No missing bios")
return False
def createReadme(systems):
for system in sorted(systems):
print("{}:".format(systems[system]["name"]))
for bios in systems[system]["biosFiles"]:
if ";" in bios["md5"]:
filehashes = bios["md5"].split(";")
else:
filehashes = (bios["md5"],)
for filehash in filehashes:
print("{:32} {}".format(filehash, "/storage/roms/" + bios["file"]))
print("")
if __name__ == '__main__':
if len(sys.argv) == 1:
prefix = "/storage/roms/"
if displayMissingBios(systems, checkBios(systems, prefix)):
exit(2)
elif sys.argv[1] == "--createReadme":
createReadme(systems)
elif len(sys.argv) == 3 and sys.argv[1] in ["--filter", "--strictfilter"]:
prefix = "/storage/roms/"
lowered_name = sys.argv[2].lower()
filtered_systems = {}
for system in systems:
lowered_system = system.lower()
lowered_system_name = systems[system]['name'].lower()
if ((lowered_name == lowered_system or lowered_name == lowered_system_name) or
(sys.argv[1] == "--filter" and (lowered_name in lowered_system or lowered_name in lowered_system_name))):
filtered_systems[system] = systems[system]
if len(filtered_systems) == 0:
print("No system named {} found".format(sys.argv[2]))
exit(1)
if displayMissingBios(filtered_systems, checkBios(filtered_systems, prefix)):
exit(2)