Página 1 de 1

#1 Crear un custom BIOS/ROM ?

Publicado: 02 Jun 2021 21:34
por merlinkv
Hola chicos.

Pues al final me he picado y me gustaría aprender a poder crearme una ROM-BIOS customizada para mi Omega.

¿Cuál es mi idea?

Pues tener el System y BASIC 3.0 y meterle bien el Nextor, bien el MSX-DOS 2.44 y así, cuando arranque el Omega ya tener disponible el Nextor o el MSX-DOS sin necesidad de tener un disquette o cartucho insertado.

Es decir, el Omega con la TDC-600 rulando Nextor o MSX-DOS al arrancar, pero sin disquette insertado.

No sé si será posible e igual estoy haciendo una consulta sin sentido ... ¿Alguna idea? ¿Hay tutoriales?

Gracias.

:hola1:

#2 Re: Crear un custom BIOS/ROM ?

Publicado: 03 Jun 2021 08:42
por droman
Hoy no estoy muy fino... por temas del insti de mi hijo, estoy aún sin dormir :P Pero creo que mientras le vigilaba para que no dejase de hacer los trabajos... algo ví en la web de Konamiman sobre como integrar Nextor en una ROM para arrancar con algo... ahora no recuerdo en que dispositivo... pero te lo miro...

Por cierto, si tienes que trastear con BIOSES, el openMsx tiene una configuración de máquina basada en XML que entre otras cosas, marca que chips tiene tu máquina y que fichero contiene cada ROM. Yo, por ejemplo, lo edito para quitar el IC13 famoso del Sony F9S y poder cargar el emulador de Carnivore2.

Lo digo por que si tienes que hacer pruebas rápidas, siempre será mejor que tostar una cucaracha para el OMEGA. No vas a poder urgar con el Omega... pero trastea con un MSX2 que sea sencillito y que además, por ejemplo, lleve la disquetera integrada, como el Philips VG 8235.

La configuración de las máquinas está en un directorio del OpenMSX, pero no en el de usuario, si no dentro de Archivos de programa. Ahora no te puedo decir el sitio exacto por que estoy en Linux, pero es super fácil de encontrar, basicamente tienes una carpeta con el nombre de la máquina y dentro sus ficheros ROM y fuera un XML con el nombre de la máquina y toda la definición de hardware de la misma. Puedes, por ejemplo, aumentar la ram con cambiar un parámetro, o cambiar la configuración de memoria cambiando los slots... se hacen cosas chulas :)


EDITO: No sé si te vale, pero mira, esto lo he sacado de la web de Konamiman:
MKROMDSK 1.3: Aplicación que resultará útil para los que tengais un cartucho Flash ROM grabable. Lo que hace es crear un archivo ROM a partir del contenido del RAM disk existente en el momento de su ejecución. Si se graba ese archivo ROM en el cartucho Flash, al reiniciar el ordenador aparecerá una unidad de disco de sólo lectura con todos los ficheros y subdirectorios que habia en el RAM disk. Además, la ROM resultante incorpora el kernel del DOS 2.

La versión 1.3 corrige un fallo que causaba que las ROMs generadas no funcionaran en ordenadores sin kernel de MSX-DOS 2 ya cargado.

MKROMDSK requiere MSX-DOS 2 para funcionar, y consta de dos ficheros:

MKROMDSK.COM: El fichero ejecutable de la aplicación.
MKROMDSK.DAT: Plantilla usada para generar los ficheros ROM. Si tienes una imagen del kernel del MSX-DOS 2.20, no es necesario que bajes este fichero, puesto que MKROMDSK.COM puede generarlo a partir de dicha imagen. (NOTA: el kernel 2.30, presente en la DiskROM de los MSX Turbo-R, NO sirve; tiene que ser un kernel 2.20).
Si le hechas un vistazo a ese programa y su plantilla... lo mismo te aclara algo o te da pistas para intentar hacer lo que tú necesitas... o lo mismo no sé ni de lo que hablo y te lío más :P

#3 Re: Crear un custom BIOS/ROM ?

Publicado: 03 Jun 2021 09:36
por merlinkv
OK, muchas gracias droman, me instalaré el OpenMSX y probaré a ver.

#4 Re: Crear un custom BIOS/ROM ?

Publicado: 03 Jun 2021 09:49
por droman
Si te pones el openMsx, instala también el Catapult openMSX.
Es un GUI para el emulador.

Te dejo un link a una web que he visto esta mañana con un curso muy completo de ensamblador MSX y tiene una sección sobre openMSX

OpenMSX

Lo bueno de este curso y del de ensamblador, es que son video de Youtube en español... así que más sencillito, imposible.

#5 Re: Crear un custom BIOS/ROM ?

Publicado: 03 Jun 2021 12:11
por merlinkv
Lo primero que he hecho es actualizar mi Ubuntu a la última versión.

Me voy a releer la página de konamiman a ver si me pongo las pilas con este tema.

#6 Re: Crear un custom BIOS/ROM ?

Publicado: 05 Ago 2021 13:32
por msxmakers
hola a ambos,

Customizar las ROM para el omega es bastante fácil, de hecho creo que ya le envié un script a merlinkv.

Si no recuerdo mal el script ya baja las ROMS de internet (es un script para linux).

En cualquier caso, trato de aportar sobre este tema:

1) droman, no lo he leido profundamente pero todo esto que dices del discoRom y el discoRam es para hacer un disco entero con el sistema arrancando desde una ROM, aunque lo que merlinkv creo que quiere es tener la parte ROM del sistema, es decir, lo que Konamiman llama Kernel pero en msx.org es mencionado como MSX DISK BASIC EXTENSION 3

2) para integrar esto en el propio sistema necesitas 128K de rom disponibles. En los cartuchos que ya lo incorporan, se utiliza un mapeador de ROM y esto es lo primero que no sabría hacer con la ROM del OMEGA. El Omega tiene un chip ROM del que sólo ve 256K de una vez y está mapeado en los slots del sistema 0, 3-0, 3-1 y 3-3, no estoy seguro de que pueda añadir esa BIOS en los slots 3-0 + 3-3 (por ejemplo) pero sí se que como mínimo habría que recomponer ese código a según el modo de acceso (según el mapeador o en este caso sería sin mapeador).

3) Por lo que yo he oido, también hay que añadir el driver (es decir una parte de código de 16k que depende del dispositivo). así que ... o bien añadimos esto para integrar un dispositivo en concreto que sería el que tendría soporte básicamente... o no añadimos el driver, pero no se que dispositivos estarían directamente reconocidos, me explico:

En conversaciones recientes con Konamiman sobre esto me confirmó que la memoria de un rookie drive lleva el BIOS "nextor" (o el diskbasic llamale como quieras) y a continuación un driver del dispositivo para ese sistema. Al menos en el caso de el último adaptador que he estudidado, el msx-ide, el driver no es compatible con nextor y msx-dos2 a la vez, por lo que tienes que elegir. aunque también sé que si tengo insertado el msx-ide con el BIOS "nextor", puedo arrancar el sistema operativo de disco NEXTOR desde otros dispositivos que no llevan la BIOS de serie, así que o los driver son muy parecidos o solo dependen del S.O. en algunos casos.

Se que es difícil que me hayáis entendido a la primera y no soy el mas indicado para explicar esto, pero espero haber servido de ayuda.

Saludos.

#7 Re: Crear un custom BIOS/ROM ?

Publicado: 06 Ago 2021 21:59
por merlinkv
Hola.

Pues no recuerdo si me lo llegaste a enviar ... la verdad es que si es así, no lo encuentro ... ¿me lo puedes pasar otra vez?

He estado mirando el script para crear las ROMs del proyecto original del Omega y, no sé, pero no veo que esté la ROM (Bios) FM-PAC por ningún sitio.

He probado desde Linux Mint a ejecutar el script (tengo todas las roms necesarias) y las crea sin problemas.

El caso es que tengo también la ROM FM-PAC original (bueno, parcheada al inglés) y ocupa 64Kb, pero no tengo ni idea de como hacer para crear mi propia custom rom para poder añadirla.

Una ayudita para un novato, please? :empatia1:

#8 Re: Crear un custom BIOS/ROM ?

Publicado: 07 Ago 2021 19:09
por msxmakers
Hola,
me falta tiempo ahora para responderte pero yo utilicé la rom msxmusic que ocupa 16K.
es decir, busqué un equipo (creo que PHC-35) que llevaba de serie msxmusic (fmpac, es lo mismo o casi) y le añadi su rom de 16K justo donde la tiene el otro.
el script que yo tengo es una mod del que tiene kieslev en su github para añadir eso, cuando pueda lo cuelgo por aquí.
slds :beber1:

#9 Re: Crear un custom BIOS/ROM ?

Publicado: 07 Ago 2021 19:10
por msxmakers
y mirate este hilo que te ayudará a entender la memoria del msx...
hilo

#10 Re: Crear un custom BIOS/ROM ?

Publicado: 08 Ago 2021 08:26
por merlinkv
He buscado esa msxmusic del PHC-35 y no la tengo, tengo varias del PCH-35J pero ninguna es msxmusic.

Por lo que he leído el PHC-35J ...
It's the only MSX2+ model that doesn't include a disk drive and one of two MSX2+ machines that lacks a built-in MSX-MUSIC ...
Sí tengo una PCH-70FD2_FMBASIC.rom de 16Kb, pero no sé si ese "FM" se refiere a FM-PAC o a qué.

Cuando puedas, si me pasas tu script le echo un vistazo. :beber1:

#11 Re: Crear un custom BIOS/ROM ?

Publicado: 08 Ago 2021 10:57
por msxmakers
Justo esa, :aplauso1:
Mira el mapeo de rom del ph-35 en el wiki de msx.org y te dira donde situarlo, por ejemplo en el slot 3-3 en la pagina 1
Entonces el script que añada el fragmento en el mapeo del script, esto es slot 0, 3-0, 3-1, 3-3 y luego otra vez (segunda opcion de rom)
Justo ahora me hayo en un bolido hacia sevilla, :adios2: cuando pueda te copio el script. :ok1:
Saludos

#12 Re: Crear un custom BIOS/ROM ?

Publicado: 10 Ago 2021 17:39
por msxmakers
Instrucciones que seguí con Linux (fedora)
Situaros en el directorio destino

Código: Seleccionar todo

cd /home/...../omega-master-1.4eu/BIOS/
wget www.msxarchive.nl/pub/msx/emulator/openMSX/systemroms.zip
wget https://sourceforge.net/projects/cbios/files/cbios/0.29/cbios-0.29a.zip
descomprimir ambos con su carpeta

Código: Seleccionar todo

unzip systemroms.zip
unzip cbios-0.29a.zip
No recuerdo si esto hacía falta

Código: Seleccionar todo

cd cbios-0.29a | make
por comodidad copio los roms que realmente usaré en un directorio más cercano.

Código: Seleccionar todo

cp ./systemroms/machines/sanyo/phc-23jb_basic-bios2.rom ./systemroms/
cp ./systemroms/machines/sanyo/phc-23jb_msx2sub.rom ./systemroms/
cp ./systemroms/machines/philips/nms8250_basic-bios2.rom ./systemroms/
cp ./systemroms/machines/philips/nms8250_msx2sub.rom ./systemroms/
cp ./systemroms/machines/sanyo/phc-35j_basic-bios2p.rom ./systemroms/
cp ./systemroms/machines/sanyo/phc-35j_msx2psub.rom ./systemroms/
cp ./systemroms/machines/sanyo/phc-35j_kanjibasic.rom ./systemroms/
cp ./systemroms/machines/sanyo/phc-70fd2_*.rom ./systemroms/
Ahora ejecuto alguno de los scripts que están en el github de Kiselev, aquí copio el texto del que yo modifiqué para añadir fmbasic:

Código: Seleccionar todo

# este script genera una versión regional japonesa y otra internacional (con FM) de las ROMBIOS msx2+
# para compatibilidad con todo tipo de juegos
#!/bin/bash

SYSTEM_ROMS_DIR=systemroms
CBIOS_ROMS_DIR=cbios-0.29a/roms
# fija PATCH_KEYS en 1 para parchear el teclado en japones de las ROMs MSX2/MSX2+
# para que coincida con el layout del teclado international
PATCH_KEYS=1
PATCH_BACKSLASH=0
PATCH_VERSION=0

# Crea la imagen MSX2+ BIOS Jap + MSX2+ BIOS Int NTSC

# copia MSX2+ ROMs compatibles con NTSC
cat ${SYSTEM_ROMS_DIR}/phc-35j_basic-bios2p.rom > omega_msx2+_all_ntsc.bin #32k BASIC 3.0
dd if=/dev/zero ibs=1k count=32 | tr "\000" "\377" >> omega_msx2+_all_ntsc.bin #32K espacio vacío, slot 0, paginas 2 y 3
cat ${SYSTEM_ROMS_DIR}/phc-35j_msx2psub.rom >> omega_msx2+_all_ntsc.bin # BIOS extendida 16k 3-0 pag.0
cat ${SYSTEM_ROMS_DIR}/phc-35j_kanjibasic.rom >> omega_msx2+_all_ntsc.bin #32k kanji BASIC
dd if=/dev/zero ibs=1k count=144 | tr "\000" "\377" >> omega_msx2+_all_ntsc.bin # resto en blanco.
# parchea las teclas
if [ "$PATCH_KEYS" -eq "1" ]; then
  dd if=int_keys_patch.bin of=omega_msx2+_all_ntsc.bin bs=1 seek=3529 conv=notrunc
fi
# parchea la contrabarra
if [ "$PATCH_BACKSLASH" -eq "1" ]; then
  dd if=backslash_patch.bin of=omega_msx2+_all_ntsc.bin bs=1 seek=7839 conv=notrunc
fi

# parte alta con todas las modificaciones internacionales
PATCH_KEYS=1
PATCH_BACKSLASH=1
PATCH_VERSION=1

# copia el segundo conjunto de ROMS MSX2+ con FM
cat ${SYSTEM_ROMS_DIR}/phc-35j_basic-bios2p.rom >> omega_msx2+_all_ntsc.bin #32K BIOS&BASIC
dd if=/dev/zero ibs=1k count=32 | tr "\000" "\377" >> omega_msx2+_all_ntsc.bin #vacío slot 0 pag 2 y 3
cat ${SYSTEM_ROMS_DIR}/phc-35j_msx2psub.rom >> omega_msx2+_all_ntsc.bin #16k slot 3-1 pag 0 extensión BIOS
cat ${SYSTEM_ROMS_DIR}/phc-35j_kanjibasic.rom >> omega_msx2+_all_ntsc.bin #32k slot 3-1 pag 1y2 Kanji BASIC
dd if=/dev/zero ibs=1k count=16 | tr "\000" "\377" >> omega_msx2+_all_ntsc.bin # 16k vacío, pag.3 slot 3-0,
dd if=/dev/zero ibs=1k count=64 | tr "\000" "\377" >> omega_msx2+_all_ntsc.bin # 64k vacío paginas 0 a 3 de slot 3-1 
# el slot 3-2 es la RAM
dd if=/dev/zero ibs=1k count=16 | tr "\000" "\377" >> omega_msx2+_all_ntsc.bin # 16K pag.0 slot 3-3
cat ${SYSTEM_ROMS_DIR}/phc-70fd2_fmbasic.rom >> omega_msx2+_all_ntsc.bin #16k pag.1 slot 3-3 
dd if=/dev/zero ibs=1k count=32 | tr "\000" "\377" >> omega_msx2+_all_ntsc.bin #32k vacío slot 3-3 páginas 2 y 3.
# parcheo de teclas
if [ "$PATCH_KEYS" -eq "1" ]; then
  dd if=int_keys_patch.bin of=omega_msx2+_all_ntsc.bin bs=1 seek=265673 conv=notrunc
fi
# parcheo de la contrabarra
if [ "$PATCH_BACKSLASH" -eq "1" ]; then
  dd if=backslash_patch.bin of=omega_msx2+_all_ntsc.bin bs=1 seek=269983 conv=notrunc
fi

#13 Re: Crear un custom BIOS/ROM ?

Publicado: 10 Ago 2021 21:06
por merlinkv
Gracias msxmakers, a ver si saco un poco de tiempo y le meto mano.

#14 Re: Crear un custom BIOS/ROM ?

Publicado: 02 Sep 2021 15:15
por msxmakers
hola de nuevo,
para quien quiera ahondar más en el porqué o como customizar la ROM, especialmente para los diferentes teclados, encontrará detalles en el siguiente enlace.
Debate en retrobrewcomputers sobre Omega MSX
saludos.