MAME: 0.271 - Released: 2024-10-30T15:59:16 - Machines: 47358 - rom: 354314 - disk: 1336 - Lists: 717 - Software: 138541 - rom: 234702 - disk: 11183
Introduction
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
update.
Data Source
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.
Data Conversion
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.
Update Processes
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
Database Diagrams
Here are the automatically generated database diagram in
SSMS (click for the PDF)
MAME Machines
MAME Software Lists