MAME - Graph



MAME stands for Multiple Arcade Machine Emulator. When used in conjunction with images of the original arcade game’s ROM and disk data, MAME attempts to reproduce that game as faithfully as possible on a more modern general-purpose computer. MAME can currently emulate several thousand different classic arcade video games from the late 1970s through the modern era.

Create the Constraints and load data

A list of Arcade Games currently emulated by MAME can be retrieved by using the listxml command line parameter

mame -listxml > mamelist.xml --- The generated list was converted to a CSV to simplyfy loading into neo4j.

Games and Clones

A small subset of the list was used for demo there are only 77 Games, and 212 Clones MAME version 0.169 emulates 10,567 games and 22,276 Clones

match (G:Game)
return count(G)
match (C:Clone)
return count(C)


Pacman is probably one of the most widely known video games of all time. Was released by Namco in 1980.

Trivia : Pacman was originally called PuckMan the name was changed due to the fact that the middle section of the P could be scratched to make an offensive word

match (C:Clone {name:'pacman'})-[:CLONEOF]-(G:Game)
match (M:Manufacturer)-[:MANUFACTURED]-(G)
match (Y:Year)-[:PRODUCED]-(G)
match (S:Source)-[:DRIVER]-(G)
return C,G,M,Y,S


Some of the video games may have clones , most times these are simply slightly different versions of the same game, for Example different Language , updated versions , or bootlegs. There were a lot of clones released for PuckMan

match (C:Clone )-[:CLONEOF]-(G:Game {name:'puckman'} )
return C,G

Other games also had clones

match (C:Clone)-[:CLONEOF]-(G:Game)
return , count(C) as Clones order by Clones  desc


A lot of arcade machines used the same hardware, this is is to say that when once an arcade was produced Game manufacturers wanted to reuse the hardware and only change the game ROMs. MAME implements this on drivers that support a particular type of hardware. For example the galaxian.cpp driver has the following games

This includes a variety of games, such as : * Frogger * Galaxian * Kong (a Donkey Kong bootleg) * Scramble

match (S:Source {name:'galaxian.cpp'})-[:DRIVER]-(G:Game)
return G.description as Name order by Name