diff --git a/Ample/Resources/roms.plist b/Ample/Resources/roms.plist index 9fdb354..f94c384 100644 --- a/Ample/Resources/roms.plist +++ b/Ample/Resources/roms.plist @@ -28,7 +28,6 @@ a2mouse a2parprn a2pic - a2pic a2ramfac a2scsi a2sider1 @@ -50,7 +49,11 @@ a2vuliie a2zipdrv a3fdc + agat7_flop + agat840k_hle + agat9_flop agat_fdc + ap2000 apple1 apple2 apple2c @@ -64,17 +67,29 @@ cecg ceci cecm - cga + cffa1 + chessmachine cmsscsi + comx_pl80 d2fdc diskii13 egret + ex800 + ie15_device + ie15kbd + kb_ec1841 + kb_iskr1030 + kb_pc83 + kb_pcxt83 keytronic_pc3270 + lx800 + lx810l m68705p3 maciici maclc maclc2 maclc3 + nb_48gc nb_824gc nb_aenet nb_amc3b @@ -90,7 +105,9 @@ nb_spdq nb_vikbw nb_wspt + p72 qsound + swtpc8212_device votrax ym2608 zijini diff --git a/python/mkroms.py b/python/mkroms.py new file mode 100644 index 0000000..9561a4f --- /dev/null +++ b/python/mkroms.py @@ -0,0 +1,118 @@ +import argparse +import subprocess + +from plist import to_plist + +import xml.etree.ElementTree as ET + +from machines import MACHINES + + + +# a2pcxport dependencies. not automatically included though +# (would need to manually pull devnames from a2pcxport then) +# listxml for them. + +EXTRA_MACHINES = [ + 'vgmplay', + 'cga', + 'kb_iskr1030', + 'kb_ec1841', + 'kb_pc83', + 'kb_pcxt83', + 'keytronic_pc3270', +] + + +p = argparse.ArgumentParser() +p.add_argument('machine', nargs="*") +args = p.parse_args() + +machines = args.machine +if not machines: machines = [ *MACHINES, *EXTRA_MACHINES] + +# roms stored in other files. +EXCLUDE = [ + 'ace100', + 'agat7', + 'agat9', + 'albert', + 'am100', + 'am64', + 'apple2cp', + 'apple2ee', + 'apple2eefr', + 'apple2ees', + 'apple2eeuk', + 'apple2ep', + 'apple2euk', + 'apple2gsr0', + 'apple2gsr1', + 'apple2jp', + 'apple2p', + 'basis108', + 'craft2p', + 'dodo', + 'elppa', + 'hkc8800a', + 'ivelultr', + 'las128e2', + 'las128ex', + 'laser128', + 'laser2c', + 'maxxi', + 'microeng', + 'mprof3', + 'prav82', + 'prav8c', + 'prav8m', + 'space84', + 'spectred', + 'uniap2en', + 'uniap2pt', + 'uniap2ti', +] + + +mnames = set() +rnames = set() +for m in machines: + + print(m) + + env = {'DYLD_FALLBACK_FRAMEWORK_PATH': '../embedded'} + st = subprocess.run(["../embedded/mame64", m, "-listxml"], capture_output=True, env=env) + if st.returncode != 0: + print("mame error: {}".format(m)) + exit(1) + + data = { } + + xml = st.stdout + root = ET.fromstring(xml) + + # find machines that have a rom child + for x in root.findall('machine/rom/..'): + mnames.add(x.get('name')) + for y in x.findall('./rom'): + rnames.add(y.get('name')) + + +# print("\n\n\n") +# ll = list(mnames.difference(EXCLUDE)) +# ll.sort() +# for x in ll: +# print(x) + +ROMS = list(mnames.difference(EXCLUDE)) +ROMS.sort() + +data = {} +data["source"] = "https://archive.org/download/mame0.224" +data["type"] = "zip" +data["version"] = "0.224" +data["roms"] = ROMS + +# print(ROMS) +with open("../Ample/Resources/roms.plist", "w") as f: + f.write(to_plist(data))