MAME: 0.229 - Released: 2021-02-23T19:19:22 - Machines: 43215 - rom: 324459 - disk: 1132 - Lists: 625 - Software: 127164 - rom: 210550 - disk: 10044
This web provides a quick and simple way to query the
current MAME machines and software lists. Various reports are provided and MAME
datasets are available for download in various formats.
Built as a hobbyist project using the Spludlow Framework. Originally, I just
wanted a way of identifying and validating ROMs from real arcade boards, but
then I became interested in the MAME emulator.
Updates on each MAME release are performed automatically,
the official MAME site is
checked at 06:30 UK time each day, if a new release is available the site will
All data is obtained from the official MAME binary archive. There are 2 databases:
Machine – Obtained using mame64.exe -listxml
Software – Obtained using mame64.exe -listsoftware for the
XML schema and then using the /hash/ directory for the data.
NOTE: The hash directory contains software lists that are
not included in the -listsoftware output, these are lists that don’t currently
have any machine support.
On each release the machine & software MS SQL Databases
used by the site are completely replaced by parsing the XML using Spludlow.Data.XML.
ConvertRelational(). This will automatically create the schema add identity
primary & foreign keys and load the table rows.
Processing is performed using message queues provided by the
Spludlow Framework. Queues are a good
way of executing each processing step, in parts rather than one big step.
If something breaks in a step the queue will stop and report
the error. Now the problem can be fixed either in code or configuration and the
queue started to pick up where it left off.
At 6:30 UK time each day
Parse the binary archive download link “mame0REL_64bit.exe” from
the HTML at https://www.mamedev.org/release.php
Compare the available release to the current variable if it has
changed then perform the update
Queue all processing steps
Update the current variable (this ensures the processing steps
will not be queued again)
The processing steps, individual queue jobs:
Add release row to history database with links to binary, source,
what’s new, and GitHub.
Download binary, source, and what’s new.
Extract binary and output all XML -listxml & -listsoftware
Merge software list XML header with /hash/ directory
Parse Machine & Software XML to temporary MS SQL databases
Run various reports used by the site and save to temporary
reports MS SQL database
Process data products: MS Access, MySQL, MS SQL.
Insert the history search rows (hashes & name resolvers)
Create the web header string (version and row counts)
Stop the web
Replace live machine, software, and reports databases with the
temporary ones (using MS SQL BAK).
Start the Web
Here are the automatically generated database diagram in
SSMS (click for the PDF)
MAME Software Lists