Nueva actualización del core MSX1 (versión 1.3) del ZX-Uno

Fabio Belavenuto, tras muchos meses de intenso desarrollo, nos trae una nueva actualización de su core MSX1 para la placa ZX-Uno.

En esta nueva versión nos encontramos los siguientes cambios:

  • Mezclador separado para la salida de audio
  • Nuevo mezclador de audio con volumen ajustable, vía puertos SWIO. Se han corregido los niveles estándar del mezclador
  • Se añade feedback de la carga por audio
  • Se añade sonido OPLL del proyecto OCM
  • Se añade soporte para que el cargador cargue MSX BIOS y dos roms adicionales de 16 K para tarjetas con más de 512K de RAM.
  • Se añade un teclado español alternativo (gracias a desUBIKado)
  • Se añade un teclado japonés experimental (gracias a tanam (tms9918))
  • Corregido un error de teclado con el nuevo esquema para cargar teclado y cambiadas las tablas ROM.
  • Nueva utilidad MSXCTRL que permite cambiar todos los parámetros del core desde MSX-DOS modificando los valores de unos registros propios del core.
  • Se permite cambiar cambiar todos los parámetros del core mediante llamadas a determinados puertos. Se puede utilizar esta funcionalidad dentro de programas MSX-BASIC.
  • Corregidos errores que impedían que ciertos juegos funcionasen correctamente, por ejemplo, juegos en los que no funcionaba el joystick o bien juegos que al iniciarse es como si estuviese siempre pulsada la tecla ESPACIO.

Es posible encontrar el código fuente de su core en su github.

INSTALACIÓN

El core MSX1FPGA para la placa ZX-Uno se presenta sintetizado de 3 formas distintas para su uso con los distintos modelos de ZX-Uno:

  • Core para los modelos con 512K de memoria: COREX(512).ZX1
  • Core para el modelo ZX-UNO VGA 2M de ManuFerHi y los modelos con 2MB de memoria INTERNA: COREX(VGA2M).ZX1
  • Core para los modelos con 2MB de memoria EXTERNA (con addon de Antonio Villena): COREX(EXT2M).ZX1

Además de instalar el core, se deben instalar en la tarjeta SD de hasta 2 GB, que obligatoriamente debe estar formateada en FAT16, una serie de archivos y directorios:

Es conveniente eliminar los archivos de una versión anterior antes de instalar los de la nueva, excepto los de la carpeta MSX, que es donde se pueden ir poniendo los juegos y aplicaciones.

Con respecto a la versión “vanilla” de los archivos necesarios que me ha pasado Fabio, yo he realizado los siguientes cambios en la versión que os comparto:

  • La configuración del core en el fichero /MSX1FPGA/config.txt está puesto con salida de video PAL y teclado en español.
  • Se ha añadido a la carpeta UTIL los programas cargadores romload.com y ngload.com
  • Se ha añadido a la carteta UTIL la carpeta sofarun con el programa SofaRun 4.1 que es una aplicación diseñada para ejecutar disquetes (.DSK), casetes (.CAS) y cartuchos (.ROM).
  • El programa MSXCTRL se ha movido de la carpeta raíz a la UTIL para que así pueda ser llamado desde cualquier directorio de la SD
  • La definición del teclado español /MSX1FPGA/SPA.kmp ha sido sustituida por mi definición alternativa

DEFINICIONES DE TECLADOS

En la versión 1.3 se ha modificado la forma de definir la disposición de los símbolos en los teclados (.KMP), por lo que ya no son compatibles las definiciones de versiones anteriores del core.

En la definición alternativa del teclado español que he creado los símbolos de las teclas corresponden con las de un teclado de PC Español, más luego todos los de la versión ASCII de MSX con layout Internacional.

A diferencia del teclado alternativo español usado en la versión 1.2 del core, ahora sí se mantiene la tecla para la Ñ, y hay 2 teclas que realizan la función de la tecla DEAD para sacar distintos tipos de acentos.

Teclado SPA Alternativo – core MSX – ZX-Uno.v1.3

MSXCTRL

Esta nueva utilidad es exclusiva del core MSX1FPGA, y aparece por primera vez en la versión 1.3. Permite controlar todas las opciones del core que antes solo eran accesibles a través del fichero de configuración /MSX1FPGA/config.txt o pulsando determinadas teclas.

Ahora con esta utilidad, cuya funcionalidad es muy parecida al zxunocfg del core de Spectrum, es posible cambiar cualquier opción del core al vuelo desde el MSX-DOS, pudiendo además incluirla en un archivo de proceso por lotes como el AUTOEXEC.BAT para tener una configuración predeterminada cada vez que se arranque. Además, es posible usar varios parámetros a la vez.

Ejemplos de su uso:

Tecleando MSXCTRL obtenemos los parámetros que podemos utilizar:

MSXCTRL.COM - Utility to manipulate MSX1FPGA core.
HW ID = 06 - ZX-Uno Board
Version 1.3
Mem config = 82
Has HWDS = FALSE

Use:

MSXCTRL -h -i -r -b -[5|6] -m<0-2> 
        -c<0-1> -d<0-1> -t<0-1>
        [-w<filename> | -l<filename>]
        -k<0-255> -e<0-255> -p<0-255>
        -s<0-255> -o<0-255> -a<0-255>

Tecleando MSXCTRL -h obtenemos la ayuda con la funcionalidad de cada parámetro:

MSXCTRL.COM - Utility to manipulate MSX1FPGA core.
HW ID = 06 - ZX-Uno Board
Version 1.3
Mem config = 82
Has HWDS = FALSE

Use:

MSXCTRL -h -i -r -b -[5|6] -m<0-2> 
        -c<0-1> -d<0-1> -t<0-1>
        [-w<filename> | -l<filename>]
        -k<0-255> -e<0-255> -p<0-255>
        -s<0-255> -o<0-255> -a<0-255>
 -h       Show this help
 -i       Show raw info of reg. values
 -r       Reset registers to default
 -b       Boot the machine
 -5       Enable 50 Hz
 -6       Enable 60 Hz
 -w fn    Write the all registers to
          file <fn>
 -l fn    Load the all registers
          from file <fn>
 -m 0-2   ESCCI Mapper type (0=SCCI,
          1=ASCII8, 2=ASCII16)
 -c 0-1   Scanlines (0=OFF, 1=ON)
 -d 0-1   Scandoubler (0=OFF, 1=ON)
 -t 0-1   Turbo (0=OFF, 1=ON)
 -k 0-255 Keyboard Beep vol. (def=128)
 -e 0-255 EAR feedback volume (def=20)
 -p 0-255 PSG volume (def=240)
 -s 0-255 SCC volume (def=255)
 -o 0-255 OPLL volume (def=255)
 -a 0-255 AUX1 volume (def=255)

Tecleando MSXCTRL -i obtenemos los valores actuales del los registros:

MSXCTRL.COM - Utility to manipulate MSX1FPGA core.
HW ID = 06 - ZX-Uno Board
Version 1.3
Mem config = 82
Has HWDS = FALSE

Reg 0x10 = 0x0F PAL,Scanlines,Scandoubler,Nextor active
Reg 0x11 = 0x00 ESE-RAM mapper SCC-I
Reg 0x12 = 0x01 Turbo ON
Reg 0x20 = 0x80 Beep Volume
Reg 0x21 = 0x14 Ear Volume
Reg 0x22 = 0xF0 PSG Volume
Reg 0x23 = 0xFF SCC Volume
Reg 0x24 = 0xFF OPLL Volume
Reg 0x25 = 0xFF Aux1 Volume

Desde MSX-BASIC se pueden modificar los valores de estos registros si los queremos cambiar en un programa BASIC. Por ejemplo, para activar el modo TURBO se haría con esta serie de OUT:

OUT &H40,40: OUT &H48,&H12: OUT &H49,1

y la forma de desactivarlo sería esta:

OUT &H40,40: OUT &H48,&H12: OUT &H49,0

 

Para reproducir archivos de sonido VGM o VGZ utiliza esta versión VGM.COM

VGM

Solo funciona con el core sintetizado para 512K. En la versión para 2MB no funciona.

Esta entrada fue publicada en ZX-Uno y etiquetada , . Guarda el enlace permanente.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *