La estructura interna del código de MAME ha variado bastante desde sus comienzos allá por finales de los 90. Hoy en día se ha modernizado muchísimo y se utilizan técnicas de diseño de software actuales y más acordes con los tiempos.
Digamos que, por simplificar un poco la explicación, MAME se ha modularizado de manera que cada componente hardware tiene su propio código. Estos luego son unidos y acoplados según las necesidades del sistema a emular, es decir, cada CPU, DSP, RAM, chip de audio, multiplexor, controlador, etc, lleva su propia parte del código de manera que pueda ser utilizada sólo en aquellas partes que haga falta. Luego dispone también de un tronco común donde se integra la interface gráfica, todas las librerías de tratamiento de imágenes, compresión, tratamiento de ficheros y otras partes necesarias para que funcione el conjunto del emulador.
Un saludo.