2.    SPLIT / MERGE. ¿DE QUÉ VA TODO ESO?

 

Actualmente, el MAME permite almacenar los ROM sets de tres formas diferentes:

 

            ·    Not Split

            ·    Split / Not Merged

            ·    Split / Merged.

 

Para explicar estas posibilidades, vamos a utilizar el mismo ejemplo que anteriormente, el juego “1941 - Counter Attack”. Para ello, debemos tener presente la siguiente tabla, en la que figuran las distintas ROMs que componen cada uno de los sets:

 

1941 - World

(main set)

1941 - Japan

(clone set)

41e_30.rom

4136.bin

41e_31.rom

4137.bin

41e_35.rom

4142.bin

41e_36.rom

4143.bin

41_09.rom

41_09.rom

41_18.rom

41_18.rom

41_19.rom

41_19.rom

41_32.rom

41_32.rom

41_gfx1.rom

41_gfx1.rom

41_gfx3.rom

41_gfx3.rom

41_gfx5.rom

41_gfx5.rom

41_gfx7.rom

41_gfx7.rom

 

        2.1.    Método 1: Split / Not Merged

 

En modo Split / Not Merged, tendremos un archivo independiente para cada ROM set. En cada archivo se almacenarán todas las ROMs correspondientes a dicho set. En nuestro ejemplo, el contenido será el de cada una de las columnas de la tabla anterior, es decir, tendríamos un archivo 1941.zip, que contendría las 12 ROMs de la columna de la izquierda, y otro, 1941j.zip, con las 12 ROMs de la columna de la derecha.

 

        2.2.    Método 2: Split / Merged

 

Si nos fijamos atentamente en la tabla, veremos que las 8 últimas ROMs de ambos sets son iguales, por lo tanto, almacenando los datos en modo Not Merged, estamos duplicando la información innecesariamente, con el consiguiente desperdicio de espacio. El MAME permite resolver este problema eliminando las ROMs duplicadas de cada uno de los clone sets, y manteniéndolas únicamente en el main set. De esta forma, los ROM sets anteriores quedarían de la siguiente forma:

 

1941 - World

(main set)

1941 - Japan

(clone set)

41e_30.rom

4136.bin

41e_31.rom

4137.bin

41e_35.rom

4142.bin

41e_36.rom

4143.bin

41_09.rom

 

41_18.rom

 

41_19.rom

 

41_32.rom

 

41_gfx1.rom

 

41_gfx3.rom

 

41_gfx5.rom

 

41_gfx7.rom

 

 

De este modo, habremos reducido considerablemente el tamaño del archivo 1941j.zip sin perder información, ya que las ROMs que hemos eliminado se encuentran en el main set. A esta posibilidad de almacenamiento se le llama Split / Merged. El término Merged (“combinar” en inglés) hace referencia a esa “limpieza” de ROMs duplicadas, de ahí que la primera modalidad descrita sea Not Merged.

 

        2.3.    Método 3: Not Split

 

Todavía nos queda una última posibilidad, denominada Not Split. El término Split hace referencia a que estamos usando un archivo independiente para cada set. Esto supone que para la versión 0.59 del MAME debemos tener 3.290 archivos (que es el número de sets que soporta esta versión). Para reducir este número, podemos hacer que todas las ROMs de las distintas versiones de un juego se almacenen en un único archivo (el main set). En nuestro ejemplo, la cosa quedaría como sigue:

 

1941 - World

(main set)

1941 - Japan

(clone set)

41e_30.rom

 

41e_31.rom

 

41e_35.rom

 

41e_36.rom

 

41_09.rom

 

41_18.rom

 

41_19.rom

 

41_32.rom

 

41_gfx1.rom

 

41_gfx3.rom

 

41_gfx5.rom

 

41_gfx7.rom

 

4136.bin

 

4137.bin

 

4142.bin

 

4143.bin

 

 

Como vemos, ahora el main set no sólo contiene las ROMs que le correspondían, sino también las cuatro del clone set que no coincidían con alguna de las suyas. De esta forma, ya no hay necesidad de conservar el archivo 1941j.zip, ya que estaría vacío.

 

En nuestro ejemplo, sólo nos hemos ahorrado un archivo, pero si tenemos en cuenta que hay juegos que tienen bastantes versiones diferentes (por ejemplo, los Pac-Man, Galaxian o Asteroids), habremos reducido los 3.290 archivos a “solo” 1.870, es decir, un archivo por cada juego emulado por el MAME.

 

        2.4.    Conclusión

 

En resumen, los tres modos de almacenamiento soportados por el MAME son los siguientes:

 

            - Not Split: Un único archivo por cada juego con todas las ROMs de los distintos sets.

            - Split: Un archivo por cada set.

                        · Not Merged: Cada set contiene todas las ROMs necesarias.

                        · Merged: Los clone sets solo contienen las ROMs no contenidas en el main set.

 

        2.5.    Consideraciones finales

 

¿Es realmente útil el combinar las ROMs para ahorrar espacio, o nos estamos complicando la vida para ahorrar unos pocos bytes?

 

Un claro ejemplo del gran ahorro que suponen los modos Split / Merged y Not Split lo tenemos en el juego “Dungeons & Dragons: Shadow Over Mystara”. Este juego, en la versión 0.59 del MAME, consta de 6 sets (este número puede varias en futuras versiones). En modo Split / Not Merged, cada uno de estos sets ocupa 33,3 MB. Utilizando el modo Merged, solo conservamos intacto el main set, y en los demás estaremos eliminando ROMs que ocupan 28 MB. Esto por cada uno de los 5 clone sets, lo que supone un ahorro total de aproximadamente 140 MB!!

 

Si tenemos en cuenta que el ROM set completo en modo Split / Merged de la versión 0.59 del MAME ocupa aproximadamente 4 GB, y basándonos en este ejemplo, podemos asegurar que estamos ahorrando varios GB de espacio respecto al modo Split / Not Merged.

 

El mayor inconveniente (¿el único?) del modo Merged, es que al eliminar la información redundante de los clone sets estamos perdiendo compatibilidad de esos juegos con otros emuladores, por lo tanto no es conveniente almacenar las ROMs de este modo si vamos a utilizar otros emuladores diferentes al MAME.