Yes, you can compile any version of MAME that you can get source code for (which should legally be all versions). MAMEDevs provide older versions on a different page than the current release, but they are all available. This is not part of you question, but be aware that if you want to compile something REALLY old (v0.70 for example), you won't be able to use HK's compiler since the actual compiler has changed. You can take the exe that the compiler generates and drop it in the same location that you currently have the mame.exe. If it's the same version, then yes it will work without any changes. If there is a version difference, you might need to alter your mame.ini. GameEx can support different versions of MAME in a couple ways. There is support built in to use Zinc and Model2 emulators for supported games, but there is no built in second version of MAME available in the menus. You can create a new emulator for your second version of MAME and use it that way. If you want to take the next step, you can use the mameemumap.ini file to have those files show up in the same list and just play through your alternate version of MAME. If you want to go that route (I highly recommend that approach), you should check out Tempest's GUI which makes setting this up EXTREMELY simple.