MAME is a source-available project
which documents the hardware for a wide variety of (mostly vintage) arcade machines, computers, video game consoles, and calculators through software emulation. As a nice side effect to this documentation, MAME allows software and games for these hardware platforms to be run on modern PCs. Prior to version 0.162 (May 2015), MAME only supported arcade machines, and MESS
was a separate emulator for all other types of systems, built on the same code base, although there has been increasingly close cooperation between the teams for many years.