The external files could change from version to version for many reasons. The executable rejects external files whose checksum doesn't match the expected checksum stored in the executable. Because the external files are conceptually part of the executable, there is only one correct set of bits for every file. This is partly to keep the executable from becoming absurdly large, and partly for copyright reasons.
#Mame 0.37b5 romset archive code
All code and data needed for emulation of most of the chips is compiled into the MAME executable, but for practical reasons, the contents of ROM chips are stored in external files. The complete circuit board layout of every game is stored in the MAME executable. MAME emulates a fixed, finite (if rather large) list of arcade games. Personally I have 2 MAME versions around so I can play some games that I don't have the updated ROMs for.
#Mame 0.37b5 romset archive download
The challenge for the users who need to play all games on the latest MAME is to find a reliable source to download "recent" roms, knowing that it's still barely legal to do so if you don't own the original machine to say the least. This allows MAME to emulate the bare metal, without any shortcuts, but since 1996 a lot of archives became invalid, and the confusion was even greater when Android/Raspberry Pi MAME4All version forked from an old 0.37b5 MAME core (newer MAME versions are a lot more CPU intensive) and retained the old versions of the ROMs.