DESCRIPCIÓN

(English version)

MegaFlashROM es un cartucho para MSX, creado por Manuel Pazos, provisto de una memoria flash en la que podemos cargar el volcado de una ROM original y que permanecerá grabado hasta que la sustituyamos por otro.

En 2013 se ha lanzado la versión MegaFlashROM SSC+ SD. La principal ventaja que aporta esta nueva versión respecto a las existentes previamente es que podemos cargar software directamente desde la tarjeta MicroSD. Repasemos sus características básicas:

  • Flash ROM de 8 MB.
  • MegaFlashROM de 7 MB en la que podremos almacenar:
  • Hasta 9 imágenes de disco (DSK).
  • Multi ROMs de hasta 511 ROMS.
  • Chip SCC+ (una versión mejorada del chip SCC).
  • Ranura para insertar una tarjeta MicroSD (existe otra versión, algo más cara, con dos ranuras).
  • Modo de recuperación, desde la que podremos borrar la MegaFlashROM o restaurar el sistema en el caso de que hayamos roto algo.
  • En general, todas las características que tenía el cartucho MegaFlashROM SSC+.

El cartucho es compatible con MSX (64 KB RAM) y MSX2 (128 KB RAM) y tiene un precio de venta de 99€ (en marzo de 2013).

A continuación iremos desgranando las posibilidades que ofrece a un usuario básico de MSX, sin mucho conocimiento del sistema, que lo que pretenda principalmente sea disfrutar del amplio catálogo de juegos que aparecieron para este sistema. Comentar que, en caso de tener un MSX2, las posibilidades se multiplican, pero no vamos a cubrir ese caso (principalmente por no disponer de un MSX2 para hacer las pruebas pertinentes).

Todas las pruebas se han realizado con un MSX Sony HitBit 75P.

El sistema operativo MSX-DOS no tiene soporte para subdirectorios, por lo que todos los ficheros irán grabados en la raíz de la partición correspondiente en la tarjeta SD.

Por descontado, el software, ya sea en formato ROM o en formato DSK, debe ser compatible con MSX1. Si no, no funcionará. El MegaFlashROM es una virguería, pero no hace milagros. También hay que desconfiar de software que hayamos conseguido y que sea producto de volcados de disco a ROM o de cinta a ROM, ya que puede que no funcione correctamente con un equipo MSX1 básico.

EL CARTUCHO

El cartucho en sí dispone de tres partes diferenciadas:

  • El MegaFlashROM SCC+ que es por simplificar, la ROM flash en la que se cargan las ROMs, imágenes de disco, etc. (y contiene el chip SCC+).
  • El lector SD, que es donde va grabado el sistema operativo Nextor y el encargado de acceder a la tarjeta.
  • La herramienta de recuperación, que sirve para reinstalar el cartucho o borrar alguna de sus partes.

ARRANCANDO DESDE EL CARTUCHO

Si arrancamos nuestro MSX con el cartucho introducido tal y como nos lo deja Manuel preparado, en vez de nuestro añorado intérprete BASIC encontraremos el sistema operativo Nextor, aunque al tratarse de un ordenador MSX1 con 64 KB de RAM, lo que se ejecutará es MSX-DOS. Los que hayáis manejado alguna vez un PC con MS-DOS os sentiréis transportados al pasado, ya que funciona prácticamente igual (con bastantes más limitaciones, eso sí).

La unidad de disco A: es una unidad flash de sólo lectura que se encuentra dentro del MegaFlashROM, y que contiene el sistema operativo y la utilidad OPFXSD.COM, imprescindible ya que es la que gobierna la funcionalidad del cartucho, y que veremos más adelante. Si ejecutamos el comando DIR, veremos un listado del contenido de la unidad.

Comentar que en Nextor, al igual que en MS-DOS, los ficheros tienen un formato estándar de 8 caracteres de nombre + 3 caracteres de extensión, no haciendo distinción entre mayúsculas y minúsculas.

También comentar que observaremos algunos errores en el arranque. Esto se debe a que Manuel ha dejado preparado el arranque para que se lancen utilidades que sólo funcionan en un MSX2. Debemos ignorarlos sin más.

PREPARANDO LA TARJETA MICROSD

Lo primero que tenemos que hacer es preparar una tarjeta MicroSD desde la que alimentaremos de software el cartucho. En el caso del MSX, necesitamos crear una partición FAT12. Para evitar problemas, lo mejor es crear la partición desde el propio MSX. Lo podemos hacer siguiendo estos pasos:

Invocamos el intérprete BASIC con la orden:

BASIC


Arrancamos la utilidad de particionado con la orden:

CALL FDISK


Una vez dentro de la utilidad de particionado, seleccionaremos nuestro dispositivo, el MegaFlashROM (1):

Nuestra tarjeta MicroSD (2). La unidad (1) es el disco flash de solo lectura:

Y, por último, la unidad lógica (1):

Mientras que se pueden ir creando particiones una a una, para eliminarlas hay que borrarlas todas de golpe. Vamos a hacer eso y a crear un par de particiones de 16 MB. Para borrarlas usaremos la opción (D):

El sistema nos pedirá confirmación:

Una vez borradas todas las particiones, procederemos a crear las nuevas con la opción (A):

Otra más. Podríamos añadir particiones de un tamaño arbitrario, pero las de 16 MB funcionan bien con el MSX1.

Con la opción (W) grabaremos la tabla de particiones permanentemente en la tarjeta MicroSD:

Hemos terminado. El sistema recomienda hacer reset antes de continuar:

Una vez tengamos la tarjeta preparada, podemos introducirla en nuestro ordenador habitual y grabar los ficheros ROM y DSK que vamos a grabar en el cartucho posteriormente.

Como precaución, recomendaría copiar el contenido de la unidad A: (flash de sólo lectura) en la MicroSD y guardarlos a buen recaudo, por si necesitáramos restaurarlos más adelante.

En el MSX1 sólo dispondremos de las unidades A: (disco flash de sólo lectura) y B: (primera partición de la tarjeta MicroSD). Si queremos acceder al resto de particiones de la tarjeta, tenemos que mapearlas. Se hace de la siguiente forma:

  • Desde MSX-DOS, accedemos al BASIC del ordenador.
BASIC
  • Desde BASIC, invocamos la utilidad mapdrv. Por ejemplo, para acceder a la segunda partición de la tarjeta MicroSD desde la unidad B:, el comando sería:
CALL MAPDRV("B:",2)
  • Volvemos a MSX-DOS.
CALL SYSTEM
  • Si listamos los ficheros, veremos que estamos accediendo a la segunda partición.

GRABANDO UNA ROM

El programa que gobierna todas las posibilidades del cartucho es OPFXSD.COM. En la documentación que podemos descargar de la web oficial encontraremos un listado completo de todos los parámetros válidos. Aquí sólo comentaremos los más básicos.

Para grabar una ROM en el cartucho, basta con ejecutar desde MSX-DOS el siguiente comando:

OPFXSD FICHERO.ROM

OPFXSD leerá el fichero de la SD y lo grabará en la flash del cartucho:

Una vez volcado a la flash, bastará con reiniciar el MSX para que, al arrancar, se ejecute el contenido del cartucho.

Si queremos que no se ejecute, tenemos dos opciones:

  • Arrancar el MSX con la tecla Escape pulsada. Esto hará que no se ejecute el contenido de la flash ROM y saltemos directamente al sistema.
  • Acceder al menú de recuperación y borrar el contenido de la flash ROM. Más adelante se explica cómo hacerlo.

Si queremos grabar y lanzar directamente la ROM, basta con añadir el parámetro /X, así:

OPFXSD FICHERO.ROM /X

El procedimiento arrancará de manera similar al caso anterior. Solo que, al terminar, se lanzará la ROM automáticamente, sin necesidad de reiniciar el MSX de forma manual.

En ocasiones me ha ocurrido que el proceso de grabación se bloquea y no finaliza. Podría ser que hubiera algún problema con la tarjeta MicroSD o los contactos del cartucho. En ese caso, se puede probar a volcar los datos a velocidad x1 con el parámetro adecuado (por defecto se graban a velocidad 4x):

OPFXSD FICHERO.ROM /1

GRABANDO UNA MULTIROM

Grabar una ROM cada vez puede ser un proceso tedioso, especialmente cuando estamos en la fase de “probar juegos”. Afortunadamente, el MegaFlashROM nos permite crear recopilaciones de hasta 511 ROMs, creándose un menú al efecto en el que podremos elegir qué ROM queremos ejecutar cuando arranque el sistema desde el cartucho.

Veamos cómo hacerlo:

  • Desde nuestro ordenador habitual, creamos en la SD un fichero llamado MULTIROM.OPF, en el que pondremos la lista de ROMs que queremos añadir al cartucho, cada fichero en una línea, terminando con una línea en la que introduciremos la palabra [END] (con corchetes incluidos). En la misma ruta, grabaremos todos los ficheros ROM que vayamos a incluir en la compilación. Ejemplo:
BANKPANI.ROM

MHUNTER.ROM

NEMESIS.ROM

[END]

  • La última versión de OPFXSD permite indicar, al lado del nombre de la ROM, el tipo de mapper que debe utilizar (por si la detección automática no funcionase correctamente). La sintaxis es la misma que si grabamos una única ROM, indicada en el manual de instrucciones. Ejemplo (indicamos el uso del mapeador Konami SCC):
BANKPANI.ROM

MHUNTER.ROM /K5

NEMESIS.ROM

[END]

  • Desde el MSX, ejecutamos el comando OPFXSD /O, que se encargará de analizar el fichero MULTIROM.OPF y grabar la recopilación en la memoria flash del cartucho. Si hay algún error (algún fichero de ROM que falta o similar) nos aparecerá por pantalla.
  • Si todo ha ido bien, podremos reiniciar el equipo y disfrutar de nuestra colección de juegos.
  • La última versión de OPFXSD permite indicar, además, el nombre del fichero .OPF que contiene la recopilación. De esta manera, podemos guardar diferentes recopilaciones en la tarjeta MicroSD, listas para grabar en la ROM.

GRABANDO UNA IMAGEN DE DISCO

El procedimiento para grabar una imagen de disco es análogo al visto para grabar una ROM. El comando que debemos ejecutar es similar:

OPFXSD IMAGEN.DSK /D1




El sistema se encarga de todo lo necesario para que, la próxima vez que arranquemos el MSX, se cargue la imagen de disco y se ejecute. Podemos almacenar hasta 9 imágenes de disco de manera simultánea (de D1 a D9). El ordenador arranca automáticamente la imagen grabada en D1, aunque podemos iniciar cualquiera de las otras si dejamos pulsado el número correspondiente en el teclado durante el arranque. Esto también nos servirá para juegos multidisco (funcionalidad que no he podido probar).

MODO DE RECUPERACIÓN

Para acceder al menú de recuperación, debemos arrancar el MSX con la tecla Cursor Arriba pulsada.

Dispondremos de las siguientes opciones:

  • F1. Borrar el contenido de la ROM que estuviera grabada en la flash.
  • F2. Borrar el kernel de gestión de la SD.
  • F3. Borrar el disco ROM.
  • F4. Instalar el kernel del cartucho.
  • F5. Mostrar información sobre la tarjeta (o tarjetas) SD.

Normalmente sólo emplearemos la primera de ellas.

Las tres siguientes son útiles para recuperar el estado inicial del cartucho en el caso de que hayamos cometido algún error en su manejo. A continuación veremos cómo:

Para restaurar el kernel del cartucho, tenemos que grabar el fichero KERNEL.DAT en la MicroSD, arrancar en modo recuperación y usar la opción F4. Se recomienda que dicho fichero sea el único existente en la primera partición de la tarjeta. Comentar que, en este caso, la tarjeta MicroSD puede estar formateada en FAT 16 o, incluso, FAT 32 (no comprobado), ya que el software de recuperación accede a los sectores del dispositivo a nivel físico, no lógico.

Si por lo que sea nos hemos cargado el contenido de la unidad A: (yo lo hice y todavía no sé cómo), podemos arrancar MSX-DOS si tenemos los ficheros del sistema en la tarjeta MicroSD (por eso recomendamos al principio hacer una copia del contenido de la unidad A:).

Una vez hayamos arrancado MSX-DOS, para proseguir la restauración debemos ejecutar el comando:

OPFXSD DSKROM.ROM /I1

para grabar el kernel necesario para lanzar imágenes de disco. Después, ejecutaremos el comando:

OPFXSD ROMDISK.DSK /ID

para restaurar el contenido de la unidad flash de sólo lectura (A:).

FICHEROS DE RECUPERACIÓN

ENLACES DE INTERÉS

COMPATIBILIDAD

Hasta la fecha se había probado el dispositivo con múltiples ordenadores MSX, funcionando en todos los casos. Sin embargo en el MSX Sony Hit Bit 20P de Santiago Romero el cartucho no funcionaba. Se determinó que podría ser que el ordenador escanease los slots extendidos antes de que el  MegaFlashROM los habilitase, con lo cual sería necesario realizar un reset soft tecleando el siguiente comando:

DEFUSR=0:?USR(0)

AGRADECIMIENTOS

A Manuel Pazos, tanto por crear el cartucho como por su ayuda con su puesta en marcha y resolver rápida y diligentemente mis dudas.