@wembley9 Los .dat son simplemente información de apoyo, es un archivo que lista los juegos compatibles con el emulador y los archivos que usa.
Empiezo desde el principio por si acaso. FBA y MAME son dos emuladores independientes, cada uno tiene unas compatibilidades y van a su ritmo. Con cada versión, se añaden más juegos, y se modifican los ya existentes: se redumpean, se cambian los archivos de dentro del zip... por eso hay que echar cuenta a la versión de la rom, porque aunque en esencia un juego siempre sea el mismo, el emulador busca encontrárselo "troceado" de una manera y si se la das de otra, pues se lía y no lo ejecuta.
Un .dat contiene información de las roms que soporta el emulador. Por ejemplo, aquí tienes un trozo del archivo referente al juego The Punisher:
<game name="punisher">
<description>The Punisher (930422 etc)</description>
<year>1993</year>
<manufacturer>Capcom</manufacturer>
<rom name="pse_26.11e" size="131072" crc="389a99d2"/>
<rom name="pse_30.11f" size="131072" crc="68fb06ac"/>
<rom name="pse_27.12e" size="131072" crc="3eb181c3"/>
<rom name="pse_31.12f" size="131072" crc="37108e7b"/>
<rom name="pse_24.9e" size="131072" crc="0f434414"/>
<rom name="pse_28.9f" size="131072" crc="b732345d"/>
<rom name="pse_25.10e" size="131072" crc="b77102e2"/>
<rom name="pse_29.10f" size="131072" crc="ec037bce"/>
<rom name="ps_21.6f" size="524288" crc="8affa5a9"/>
<rom name="ps-1m.3a" size="524288" crc="77b7ccab"/>
<rom name="ps-3m.5a" size="524288" crc="0122720b"/>
<rom name="ps-2m.4a" size="524288" crc="64fa58d4"/>
<rom name="ps-4m.6a" size="524288" crc="60da42c8"/>
<rom name="ps-5m.7a" size="524288" crc="c54ea839"/>
<rom name="ps-7m.9a" size="524288" crc="04c5acbd"/>
<rom name="ps-6m.8a" size="524288" crc="a544f4cc"/>
<rom name="ps-8m.10a" size="524288" crc="8f02f436"/>
<rom name="ps_q.5k" size="131072" crc="49ff4446"/>
<rom name="ps-q1.1k" size="524288" crc="31fd8726"/>
<rom name="ps-q2.2k" size="524288" crc="980a9eef"/>
<rom name="ps-q3.3k" size="524288" crc="0dd44491"/>
<rom name="ps-q4.4k" size="524288" crc="bed42f03"/>
<rom name="buf1" size="279" crc="eb122de7"/>
<rom name="ioa1" size="279" crc="59c7ee3b"/>
<rom name="prg2" size="279" crc="4386879a"/>
<rom name="rom1" size="279" crc="41dc73b9"/>
<rom name="ps63b.1a" size="279" crc="03a758b0"/>
<rom name="iob1.12d" size="279" crc="3abc0700"/>
<rom name="bprg1.11d" size="279" crc="31793da7"/>
<rom name="ioc1.ic1" size="260" crc="a399772d"/>
<rom name="d7l1.7l" size="279" crc="27b7410d"/>
<rom name="d8l1.8l" size="279" crc="539fc7da"/>
<rom name="d9k2.9k" size="279" crc="cd85a156"/>
<rom name="d10f1.10f" size="279" crc="6619c494"/>
</game>
Como ves, aparte del nombre del juego, el fabricante y el año, lo que tiene es un listado de los ficheros que van en el zip de la rom, no tiene más. Pues así con todos los juegos que soporta. Estos .dat se pueden encontrar por internet o directamente desde el propio emulador de Windows. Te bajas la versión concreta, y hay una opción de exportar .dat.
La gracia de estos archivos es ejecutarlos desde un software de gestión de roms. Yo uso Romcenter, por ejemplo, aunque también uso a veces Clrmamepro. Con estos programas, cargas el dat, indicas la carpeta de las roms, y te dice cuales están bien, cuales habría que reparar (cambiando el nombre, moviendo archivos entre ellas para hacerlas funcionales), o directamente, cuales es mejor borrar.
Por ejemplo, como el romset FBA 0.2.97.35 es difícil de encontrar, lo más sencillo es buscar un paquete de roms con la versión más cercana (FBA 0.2.97.39, por ejemplo) y cargar en Romcenter (o en el que más te guste) el .dat objetivo (FBA 0.2.97.35) en mi ejemplo. Le das a fix, y él solito te adapta todo para que quede de forma correcta.
También decir que hay .dat de juegos de consola, que buscan listar absolutamente todas las roms que existen para ese sistema. Se usan para poder comprobar que tienes todas las roms disponibles y en su última versión.
Espero haber sido más o menos claro y no haberme confundido con nada (si alguien lee algo incorrecto, que me corrija, plis xD). En resumidas cuentas, yendo directo a tus preguntas...
- En el caso de los arcades, son un listado con los juegos soportados por el emulador y qué archivos espera encontrar.
- Se usan en programas aparte para facilitarle la vida al usuario, el emulador ya incluye esa info.