@retrocake said:
what about the game roms make it specific to an emulator? Isn't there a standard, at least for the game roms?
The quick answer to most of your questions is that only the names of roms for arcade emulators are consistent. For example, dkong.zip is Donkey Kong. However, the individual files within the zip, and the binary data within those files--this data changes as the emulators have evolved. It is not true in every single case, but during major emulator changes, the ROMs get updated too.
The best way to describe this is that in the early days, emulators took some shortcuts. For example, early versions of a ROM zip file might be incomplete compared to today. Certain game elements might have been skipped back then, or missed because the early emulator did not need them. Later, as emulators improved, it required that they go back and re-capture the original game chips to get more complete versions of their contents (perhaps an over-simplification, but you get the idea). So, although a specific zip file is named the same from one set to the next, the files inside can change over time to match the improvements of the emulator. Each version of MAME for example, needs to use ROMs that match. This is why you cannot just get "the latest" ROM and expect it to work with an old version of MAME/FBA. Think about this--the same is true for other software. You cannot open an new Excel file using the old version of Excel. But emulators are even more picky since they cannot use older ROMs either because they are expecting the zip file to have everything the new emulator needs to perform accurate emulation.
NeoGeo games are the same, but in addition to the game ROMs, they rely on a NeoGeo zip file which simply has a common set of data that they all need/use. You can think of the NeoGeo BIOS as a parent ROM required for any single game to work properly. Yet, this too is version dependent. In a complete romset that includes NeoGeo games, it will also include the neogeo.zip that matches them.
The short answer is that ROMs, BIOS files and Emulators evolve together over time. Using a specific emulator requires its matching set because you are essentially using software and documents from a snapshot of the development lifecycle, so mixing and matching pieces just doesn't work. However, you can use utilities like CLRMAMEPRO to scan a collection of files from multiple sets and, provided you have all of the pieces, rebuild individual ROM zip files or entire sets using a corresponding .dat file as a reference. The emulators do not do this for you, and using utilities like this is a complicated endeavor, so you are often better off just finding the matching romset for the emulator you are using.