Spludlow Mame Web Header

Spludlow MAME - About


MAME: 0.226 - Released: 2020-10-27T09:04:48 - Machines: 42878 - rom: 317698 - disk: 1089 - Lists: 612 - Software: 126510 - rom: 208446 - disk: 9867

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

 



Spludlow Mame Web Footer