Core MSX1 (fbelavenuto). CHANGELOG y GUÍA DE USO

Avatar de Usuario
desUBIKado
Mensajes: 1002
Registrado: 05 Ago 2016, 22:33

Core MSX1 (fbelavenuto). CHANGELOG y GUÍA DE USO

Mensaje por desUBIKado » 05 May 2018, 21:56

MSX1 clonado en FPGA mediante core creado por Fabio Belavenuto, con algunas partes del proyecto One Chip MSX (OCM)


Especificaciones:
  • MSX1
  • Memoria mapeada: 128K (ZX-Uno de 512 KB) o 1024K (ZX-Uno de 2MB)
  • Puede trabajar a 50Hz (PAL) o a 60Hz (NTSC)
  • Utiliza el sistema operativo Nextor-DOS, el cual es una versión ampliada y mejorada del MSX-DOS, con el cual es 100% compatible, unido a un driver para trabajar con tarjetas SD formateadas en FAT16. Permite cargar ficheros .CAS (imágenes de casetes) y .DSK (imágenes de disquetes)
  • Viene con Nestor BASIC el cual incluye el Kun-Basic o Turbo Basic, el cual permite compilar el programa BASIC "al vuelo" acelerado su ejecución 10 veces o más.
  • Megaram SCC/SCC+ del proyecto OCM de 256K. Permite cargar ficheros .ROM los cuales son volcados de cartuchos.
  • 512K of ESE-SCC (solo ZX-Uno de 2MB)
  • Teclado configurable en varios idiomas: Español, Inglés, Portugués de Brasil y Francés.
  • Salida de video VGA (Scandoubler), RGB 15/31 Khz y CVBS video (video compuesto)
  • Scanlines
  • Modo Turbo (7MHz)
  • Soporte para 2 joysticks
  • Permite la carga de ficheros por audio
  • Añadido internamente core JT51 (OPM YM2151 clone). Permite escuchar ficheros de música .VGM con reproductor VGMPlay for MSX a partir de la versión 1.2 rev. jepalza (16-Oct-2017) y funciona tanto con archivos VGM como VGZ (vmg zippeados)
  • Sonido OPLL (OPL Light, MSX MUSIC, Yamaha YM2413) del proyecto OCM
    vgm_zxuno.zip
    (3.3 MiB) Descargado 418 veces

Versiones:

Versión 1.3 (26-Mar-2019)

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 (OPL Light, MSX MUSIC, Yamaha YM2413) 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.
Anuncio en el foro
Descarga del core Hay cores para versiones 512K, 2MB internos y 2MB externos.

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


Versión 1.2 (15-May-2017)

Changes:
  • Added JT51 core (OPM YM2151 clone), thanks to Jose Tejada (jotego)
  • 1MB of Memory Mapper (2MB boars only)
  • 512K of ESE-SCC (2MB boars only)
  • Support for a second joystick
Anuncio en el foro
Descarga del core
Descarga del core para ZX-Uno 2M con 2 entradas de joystick


Versión 1.1 (18-Nov-2016)

Changes:
  • Implemented VDP99x8 Palette system: Register 16 and port #2 (0x9A in MSX)
  • Implemented in Switched I/O ports new makers: 0x08 (Panasoic) turbo register, 0xD4 (OCM) some smart commands
  • ESCCI (Megaram SCC from OCM) is now allocated in slot 2 (Partial support to MGLCOM.COM software)
  • Fixed M1 Wait generator
  • Fixed color index 2 in palette
  • New Loader with new FAT driver (from SMS papilio), saving some space in code.
  • New loader configured to FAT16 partitions only (ID 0x0E is not supported anymore)
  • Implemented Keymap reconfiguration by SWIOPORTS
  • Implemented V99x8 NTSC/PAL register #9 bit 1
  • Implemented Scandoubler (VGA mode) (Print Screen key toggle)
  • Added configuration system: All files should now be in MSX1FPGA directory
  • Added 7MHz turbo (F12 key toggle)
  • New option scanlines into config.txt file and 'Scroll-lock' key toggles.
Note that files should not be root anymore, but rather a specific directory 'MSX1FPGA'. File msx1_sd_files.zip updated.
Turbo can cause screen corruption.
The "config.txt" file contains self-explanation.

Código: Seleccionar todo

11SP01
||||||
|||||+-Scanlines: 1=Enabled, 0=Disabled
||||+--Turbo: 1=Initialize with turbo enabled
|||+---Color System: N=NTSC, P=PAL
||+----Keymap: E=English, B=Brazilian, F=Francese, S=Spanish
|+-----Scandoubler(VGA): 1=Enabled, 0=Disabled
+------Nextor: 1=Enabled, 0=Disabled 
Anuncio en el foro
Descarga del core


Versión 1.0 rev2 (06-Nov-2016)

Changes:
  • Fixed sprite bug in Nemesis and Penguin Adventure.
  • Deleted XPC files and added new ROMs in zip.
  • Some others little things.
Anuncio en el foro
Descarga del core Hay cores para el ZX-Uno 4.1 (crowdfunding), y para el prototipo v3.0 (pre-crowdfunding).


Versión 1.0 (31-Oct-2016)

Initial specifications:
  • MSX1 USA, 60Hz vertical frequency.
  • 128K RAM Mapper.
  • 128K Nextor (MSX-DOS2 evolution) ROM with SD driver.
  • 256K of RAM to Megaram SCC/SCC+ from OCM project.
  • Keyboard PT-BR layout (for a while).
  • Simple switched I/O ports (no software yet).
  • Multiple boards, incluing ZX-Uno.
  • CVBS video and RGB 15 KHz only, no scandoubler yet.
[/list]
Anuncio en el foro
Descarga del core (enlace EXTERNO no vinculado al foro ni la web). Hay 2 cores, uno para el ZX-Uno 4.1 (crowdfunding), y otro para el prototipo v3.0 (pre-crowdfunding).



INSTRUCCIONES DE USO DEL CORE:


Formatear una tarjeta SD en FAT16 (máx 4GB) y descomprimir el fichero 'msx1_sd_files.zip' en el directorio raíz de la tarjeta SD.
NOTA IMPORTANTE 2018.05.12: Al descomprimir el fichero 'msx1_sd_files.zip' se crea la carpeta MSX1FPGA, y dentro de ella se encuentra el fichero SPA.KMP con la definición de las teclas para el teclado español. Esta definición contiene numerosos errores, por ejemplo, las comillas no están en su sitio o bien es imposible conseguir el paréntesis de cierre. Podéis conseguir una definición alternativa del teclado español sin esos errores desde esta entrada

CTRL+ALT+DEL es Soft reset, CTRL+ALT+F12 es Hard reset (reinicia la máquina MSX como si la hubieses apagado) y CTRL+ALT+BACKSPACE resetea el ZX-Uno.

El puerto de joystick está mapeado como JoyMega, y configurado para usar un joypad de SEGA Genesis / Megadrive

Para cargar una ROM en el SCC Megaram se usa el comando ROMLOAD.COM (está en los ficheros de 'msx1_sd_files.zip' ) con '/S' para que comience inmediatamente. Ejemplo: ROMLOAD game.rom /S

Para ir al BASIC desde el MSX-DOS se debe ejecutar el comando BASIC
Para ir al MSX-DOS desde el BASIC se debe ejecutar CALL SYSTEM


Teclas del CORE:

- CTRL+ALT+SUP/Del = Soft Reset del MSX
- CTRL+ALT+F12 = Hard Reset del MSX. Si tienes cargada una rom con esto se descarga.
- CTRL+ALT+BACKSPACE = Resetea el ZX-Uno

- Print Screen / Impr Pant = Alterna modo de video entre VGA y RGB 15 KHz / CVBS video
- Scroll Lock / Bloq. Despl = Alterna a modo con Scanlines o sin ellas.
- Pausa /Inter = Alterna la salida de video entre 50 Hz y 60 Hz
- F11 = Alterna a modo Turbo o normal.

Y usando el teclado español alternativo:

- Right Alt / Alt Gr = Tecla CODE del MSX
- Left Alt / Alt = Tecla GRAPH del MSX
- Tecla Menú o Page Up / Re Pág = Tecla SELECT del MSX
- Home / Inicio = Tecla HOME del MSX (SHIFT + HOME --> CLS)
- End / Fin = Tecla STOP del MSX
- Ñ o Tecla Windows = Tecla DEAD del MSX


NOTAS:

- En BASIC usar las teclas "CTRL+STOP" para parar la ejecución de un programa. La tecla STOP de MSX está mapeada a la tecla END/Fin del PC.
- Para cambiar el modo de vídeo conmutando entre 50HZ y 60HZ, y de ese modo jugar a velocidad correcta a los juegos PAL, como "Invasion of the Zombie Monsters", a través de la salida VGA, se puede usar el programa "DISPLAY.COM", que está para descargar en este hilo.



CARGA DE PROGRAMAS:

Si tienes un :zxuno: con 2 MB de memoria, puedes usar las versiones específicas para 2 MB Internos o Externos, las cuales permiten la ejecución del programa Sofarun, diseñado para cargar imágenes de disco (.DSK), cassette (.CAS) y cartuchos (.ROM) de forma sencilla y trasparente al usuario.


A.- FICHEROS .ROM

Son volcados de programas en cartuchos. Para archivos de 48K o menos, utilizar el programa ODO.COM (hOndonadas De hOstias).
ODO is a ROM loader for MSX1 and up, running MSX-DOS (supports MSX-DOS2 too). It can load and play ROM files up to 48K in RAM. ROMs that execute from page 0 are supported as well.
Podéis descargaros la versión 0.4 desde aquí, y colocar luego el archivo "ODO.COM" en la carpeta "\util" de la tarjeta SD.

Para ficheros .ROM de más de 48K, usar el comando ROMLOAD. Se puede usar de dos formas:

1ª ROMLOAD fichero.ROM /S (el "/S" fuerza a la ejecución del programa), o
2ª fichero /S (el nombre del fichero .ROM sin la extensión)

Si no se pone el /S es necesario realizar un Soft Reset (CTRL+ALT+DEL/Supr) para que se ejecute el programa.
Por defecto el sistema de mapeo de memoria que utiliza es el de Konami. Si se trata de juegos que no son de Konami, como Golvellius o el Abu Simbel Profanation, hay que cambiar el "/S" por "/A" o "/1" - mapper ASCII8 y ASCII16 respectivamente - (se prueba uno u otro hasta encontrar el que funcione). Por ejemplo: ROMLOAD ascii8.rom /A /S

De todas formas, en la carpeta "\util" de la SD hay 2 ficheros: ROMLOAD.TXT con instrucciones de como usar este comando, y ROMLOAD.LST con una lista de juegos y las opciones que hay que usar para que carguen.

Existen asimismo más utilidades para cargar ficheros .ROM, como son la NGLOAD o SROM (del creador de Sofá Run). Es ir probando hasta que alguna nos funcione.


B.- FICHEROS .DSK

Para ello hay tres formas, usando las utilidades EMUFILE, MAPDRV o SRI. Supongamos que el disco del programa Cuerpo Humano: Sistema Circulatorio se llama CH-CIRCU.DSK, lo podremos cargar de estas tres formas:

1ª FORMA. EMUFILE

Código: Seleccionar todo

EMUFILE CH-CIRCU.DSK -r  
Este comando crea un fichero NEXT_DSK.DAT en el directorio raíz de la tarjeta SD con el contenido del disquete, y la opción "-r" fuerza un Soft Reset que hará que cuando vuelva a arrancar el Nextor-DOS cargue automáticamente el disquete.

Cada vez que arranquemos el ordenador se ejecutará el disquete, a menos que lo borremos. Para evitarlo, cuando arranque el ordenador debemos tener pulsada la tecla "0" (cero), y eso hará que no se cargue el disquete. En ese momento podemos borrar el archivo con un ERASE NEXT_DSK.DAT o DEL NEXT_DSK.DAT.

Para ver todas las opciones que tiene el comando EMUFILE, ejecutarlo simplemente tecleando su nombre. El comando permite el que se puedan montar varios disquetes a la vez, útil, por ejemplo, para un juego multi-disquete.


2ª FORMA. MAPDRV

Este comando monta el contenido de la imagen de un disquete en una nueva unidad de disco. Por ejemplo:

Código: Seleccionar todo

MAPDRV B: CH-CIRCU.DSK
Ahora podemos ir a la unidad B: y ver los ficheros. Vemos que hay un fichero AUTOEXEC.BAS, el cual podemos ejecutar simplemente con AUTOEXEC, y el programa ya arranca.

3ª FORMA. SRI

Este comando monta el contenido de la imagen de un disquete en memoria, por lo que solo funciona con los cores para ZX-Uno de 2MB. Por ejemplo:

Código: Seleccionar todo

SRI /B1 /C CH-CIRCU.DSK
Esta utilidad es del mismo creador que el famoso gestor de ficheros Sofá Run. Con la opción /B1 indico que el primer disquete es el que debe cargar en el arranque (con SRI se pueden usar varios disquetes a la vez) y con /C que simule la pulsación de la tecla CTRL al arrancarlo, lo cual hace que libere memoria y carguen más juegos que si no se utiliza esta opción.


Nota importante 2018.05.13: Hay imágenes de disquete que a veces no funcionan, y es posible que un mismo juego tenga varias versiones. Por ejemplo, en esta página veréis hasta 4 versiones en .dsk del juego La Abadía del Crimen. Solo me ha funcionado la etiquetada como "Abadia del Crimen, La (1988)(Opera Soft)(es)[a3]". Una forma sencilla de comprobar si la imagen .dsk tiene algún problema es usar el emulador de MSX on-line WebMSX, configurarlo como MSX 1, europeo o americano, según lo que queráis, y arrastar el fichero .dsk para probarlo. En el caso anterior, ninguna de las otras 3 versiones de La Abadía me funcionaron, y solo la que funcionaba en el WebMSX funcionó también en el ZX-Uno.


C.- FICHEROS .CAS

Son imágenes con el contenido de las cintas de audio. La forma de utilizarlas está muy bien explicado en el artículo Cargar archivos CAS con MegaFlashROM y un MSX-2

Los ficheros LOADCAX y LOADCAXX los tenéis dentro de este archivo
LOADCAX y LOADCAXX.7z
(1.89 KiB) Descargado 267 veces
Para utilizarlos se deben copiar a la carpeta donde se encuentren los ficheros .CAS

Para cargar los archivos .CAS debemos estar dentro del BASIC y ejecuar la siguiente instrucción:

BLOAD"LOADCAX",R'(nombre archivo sin su extensión CAS)

Si por ejemplo tendríamos un fichero abusimbe.cas con el Abu Simbel Profanation, pues entonces escribiríamos

BLOAD"LOADCAX",R'abusimbe

El LOADCAXX es un cargador alternativo al LOADCAX en caso de que este no funcione, y el funcionamiento es el mismo, aunque nunca me ha funcionado ninguna carga con él.


D.- FICHEROS .BAS

Son programas en BASIC que podemos grabar en la SD, y también cargarlos para ejecutarlos. Desde dentro del BASIC podremos teclear:

Código: Seleccionar todo

SAVE "A:HOLA.BAS"
para salvar el programa, y con

Código: Seleccionar todo

LOAD "A:HOLA.BAS"
lo recuperamos.

Para saber las diferencias entre CSAVE, BSAVE y SAVE, u otros comandos para almacenar y recuperar la información, se puede consultar este apartado con comandos del Disk BASIC del wiki de msx.org.

Para cargar un fichero .BAS desde el Nextor-DOS, simplemente escribimos su nombre con o sin extensión y pulsamos ENTER.


E.- ENTRADA AUDIO

El core permite la carga de programas por audio. Es muy importante no tener el TURBO activado, ya que este influye en la cuenta de los pulsos de la carga por audio, y no funcionará correctamente. Así, a velocidad normal de cpu, la forma de hacerlo es desde BASIC con los comandos:

Código: Seleccionar todo

RUN”CAS:”
o bien

Código: Seleccionar todo

BLOAD”CAS:”,R
o bien:

Código: Seleccionar todo

LOAD”CAS:”,R
Está perfectamente explicado en el artículo Cómo cargar programas en MSX.

Si se quiere oir el audio de la carga será necesario utilizar la versión del core 1.3 o superior, pudiendo con la utilidad MSXCTRL graduar su volumen.

En este entrada del foro de Vintagenarios se pueden encontrar multitud de programas de MSX en formato WAV que se pueden cargar por audio.

También se pueden usar aplicaciones que reproducen los formatos de cinta de MSX .CAS y .TSX, o utilizar dispositivos que los soportan como los Maxduinos, TZXduinos o Miniduinos.
Última edición por desUBIKado el 07 Dic 2021, 16:07, editado 26 veces en total.

Responder