Bueno, esto fue una verdadera odisea. Primero tuve que modificar el sintetizador para Spectrum 128K, quitarle las llamadas a la ROM, reubicarlo en $A000 para la MSX, cambiarle los puertos de 16 bits que usa la Spectrum para el PSG por los de 8 bits que usa la MSX, lo cual implica hacer un codigo totalmente distinto (cosas del Z80). Luego averiguar como pasar un archivo binario a una MSX, lo grabe desde la RAM del emulador de Spectrum a un archivo crudo, investigando encontre que los .BIN en MSX tienen una cabecera con $FE, dos bytes con la direccion de carga, dos bytes con la direccion donde termina, y dos bytes mas con la direccion de ejecucion. Me arme una cabecera con eso, gracias a que mi programa se ejecuta en la direccion de carga y de ahi salta a la verdadera rutina de inicio, no tuve que andar cambiandola cada vez que hacia una modificacion (hice 9 o 10 mientras ajustaba la velocidad en el emulador).
Una vez que tuve el .BIN y andaba "correctamente" en el BlueMSX, copie un DSK existente, borre cosas, le grabe el archivo, arme un AUTOEXEC.BAS, pero como era el DOS 1.03 por alguna razon no lo ejecutaba. Supuse que con un .BAT lo iba a tomar, pero como hacia un archivo de texto en MSX-DOS? Parece que COPY CON anda, pero CTRL Z no finaliza.
Asi que cargue la unidad B como un directorio en la PC, edite un archivo de texto con mi editor favorito WinVi, indicandole que era texto de DOS, escribi BASIC TESTMSX1.BAS, luego lo copie a la unidad A: desde el emulador, y ya tuve la imagen lista.
Ahora faltaba pasarlo a la PC, lo primero que hago es pasarlo a la Amiga por la red e intentar grabarlo con la controladora Catweasel, pero no tenia cargada la utilidad de imagenes porque desde que se me borro el disco de 80GB instale lo basico. Instalo el programa, intento escribir la imagen y en eso me acuerdo que el driver lee diskettes de 360K pero no escribe, asi que aborto la operacion (apagando la maquina porque se colgo).
Procedo a sacarle la tierra al viejo Pentium 4 corriendo XP, que es la unica PC que tengo con disketera de 5.25", busco alguna utilidad para grabar imagenes y encuentro el OmniFlop, eso reemplaza el driver de diskettes, permitiendo que XP maneje nativamente un monton de formatos, incluido el de 5.25" de 360K. Para mostrar el contenido anda perfecto, y para escribir la imagen, incluso despues se pone el diskette y lo lee, pero cuando se intenta copiar algun archivo se traba mal, machacando el disco y golpeando el cabezal. Puede que sea porque el sistema de archivos es de MSX y el driver intenta autodetectar el disco o algo y termina confundido. El asunto es que el diskette no se lee en MSX, da Disk I/O error.
Pienso donde tendre un booteable de MSDOS en 1.2MB para copiar las imagenes desde ahi, pero despues me doy cuenta que tampoco tengo como copiar el programa de MSX a ese diskette, asi que no tiene caso.
Cuando todo parecia perdido, me acuerdo que tengo el Big Blue Reader en la C64, busco y no encuentro el diskette, asi que a pasar el D64 a la Amiga por la red junto con el TESTMSX1.BIN (el sintetizador), formateo un diskette para C64, luego escribo la imagen del Big Blue Reader, luego leo el directorio del diskette en Amiga como una unidad mas, copio el TESTMSX1.BIN porque sobraba espacio, y me lo llevo a la C64.
Enciendo la C64, cargo el programa, selecciono que voy a copiar archivos, selecciono formato C64, elijo el archivo, indicando que le voy a cambiar el nombre (porque aparece TESTMSX1.BIN en formato PRG), indico que el disco de destino es MSDOS, coloco uno que me vino con la disketera y tiene espacio libre, le doy copiar, indico el nuevo nombre, TESTMSX1.BIN, y ya esta, archivo copiado.
Coloco el diskette en la DPF-555, enciendo todo, arranca un menu de juegos del diskette, da error al cargar el ARMY MOVES, como cae en BASIC pongo FILES, y ahi esta el archivo, luego BLOAD"A:TESTMSX1.BIN",R ... y funciona!
Sin embargo, funciona tan mal como en el BlueMSX, el sonido sale distorsionado, y por lo que vi en las capturas de sonido del emulador, hay algun tipo de interrupcion porque las ondas "patinan", es decir periodicamente alguna muestra se alarga en el tiempo, bastante, como 1ms mas, lo que provoca una distorsion en el sonido.
Asi que el BlueMSX, que sigue siendo desastroso igual, esta vez parece que tenia razon.
Lo que demostro no ser para nada compatible, son tanto las PCs como las MSXs, es un dolor de cabeza pasar un archivo. Pero el culpable es uno solo: Microsoft. No puede echarle la culpa al gobierno anterior.
En fin, me parece que hasta que no solucione el tema de la velocidad, no vale la pena avanzar mucho en la version MSX, tendre que continuar con lo planeado que era hacer la version TS2068. Si no leyeron el tema del sintetizador de voz en el foro Sinclair, les recomiendo que miren los ultimos mensajes, que hay un MP3 con la captura de como suena en Spectrum 128K emitiendo sonido digital por el PSG, para que escuchen como deberia sonar en MSX. Yo deshabilito las interrupciones durante toda la reproduccion, pero se ve que algo mas esta interrumpiendo.
La buena noticia del dia es que le puedo decir a Fekete que tanto la DPC-200 como la disketera andan bien, y que ya tiene un diskette con el Big Blue Reader listo.