Tengo unas experiencias de lo más poltergeist con un msx philips VG8020.
Pasa cuando cargo por el cessette ficheros rom, previamente convertidos a bin con la herramienta MSXR2B de JJC Software y luego cargados a alta velocidad.
Parece que la carga no plantea problemas y la mayoría de las veces el juego rom corre sin problemas.
Pero no todos. Aqui viene el primer fenomemo extraño. Probado en emulador el fichero wav el juego funciona pero en cargado real no. Un error de carga lo veo muy improbable. (Hay algunas rom covertidas que no funcionan ni en emulador pero imagino que eso es normal)
Pero luego lo más extraño; cuando quiero abandonar el juego rom cargado con reset o con el interruptor principal parece que el jeugo sigue estando ahí. Alguna vez se ve incluso la pantalla anterior. Cuando lo dejas más tiempo apagado y lo enciendes no arranca, incluso llegas a pensar que te lo has cargado. Hay que dejarlo mucho tiempo apagado para que se recupere. (y lo que es peor cade vez me da la sensación de que necesita más tiempo) En otros juegos convertidos desde dsk no hay nunca ese tipo de fallos.
Es esto normal? Puede haber algo del software (rutina de carga) que perjudique al hardaware contraviniendo la primera ley de la informatica?
MSX averiado?
- Guillian
- 32 bits

- Mensajes: 626
- Registrado: 02 Ene 2005 02:40
Re: MSX averiado?
Puede ser normal eso que te pasa. Un emulador interpreta el fichero digitalmente, con lo que no hay perdidas. Sin embargo, en el ordenador real es probable que te de problemas a altas velocidades.decicoder escribió: Pero no todos. Aqui viene el primer fenomemo extraño. Probado en emulador el fichero wav el juego funciona pero en cargado real no. Un error de carga lo veo muy improbable. (Hay algunas rom covertidas que no funcionan ni en emulador pero imagino que eso es normal)
Sí, esto es normal. La memoria tiene una cierta persistencia y no se borra completamente al apagar unos instantes y encender de nuevo. Y si pulsas RESET no se borra en absoluto.decicoder escribió: Pero luego lo más extraño; cuando quiero abandonar el juego rom cargado con reset o con el interruptor principal parece que el jeugo sigue estando ahí. Alguna vez se ve incluso la pantalla anterior. Cuando lo dejas más tiempo apagado y lo enciendes no arranca, incluso llegas a pensar que te lo has cargado. Hay que dejarlo mucho tiempo apagado para que se recupere. (y lo que es peor cade vez me da la sensación de que necesita más tiempo) En otros juegos convertidos desde dsk no hay nunca ese tipo de fallos.
Es esto normal? Puede haber algo del software (rutina de carga) que perjudique al hardaware contraviniendo la primera ley de la informatica?
La razón por la que ocurre con copias de ROM es ésta: la BIOS del MSX busca por todos los slots y subslots (incluyendo en los que está la RAM obviamente) una cabecera que indica si en ese slot se encuentra un programa en ROM. En el caso de un cartucho real, al sacarlo del slot ya no encuentra dicha cabecera y no arranca. Pero en el caso de las copias, esa cabecera persiste en la RAM y arranca de nuevo.
Esto pasa sobre todo en los MSX1. En los MSX2 y superiores se modificó la BIOS para borrar esos bytes de la RAM y evitar este problema.
- decicoder
- 8 bits

- Mensajes: 18
- Registrado: 01 Sep 2007 09:24
Re: MSX averiado?
Me dejas más tranquilo. Pero me llama la atención que no es un tiempo pequeño, es de minutos.Sí, esto es normal. La memoria tiene una cierta persistencia y no se borra completamente al apagar unos instantes y encender de nuevo. Y si pulsas RESET no se borra en absoluto.
- Guillian
- 32 bits

- Mensajes: 626
- Registrado: 02 Ene 2005 02:40
Re: MSX averiado?
Que aguante minutos no es lo normal. Es bastante extraño y más tratándose de memoria que necesita refresco para no perder su contenido. Ésta debe de ser la razón por la que en ocasiones no te arranca el ordenador y se queda colgado. Parte del contenido de la RAM se habrá borrado o corrompido pero la cabecera puede mantenerse y por eso se intenta ejecutar con el consecuente cuelgue.
Se me ocurre un apaño para evitarlo y es modificar el cargador de la ROM para que borre el primer byte de la cabecera y luego ejecute la ROM. De esta forma, al resetear la BIOS no reconocerá la supuesta ROM.
En caso de que el cargador deje en manos de la BIOS la detección y ejecucción de la ROM, lo que se puede hacer es modificar la cabecera (usando los bytes reservados #000a-#000f) para insertar el código necesario para borrar la cabecera y ejecutar el juego.
Por ejemplo:
Código para modificar la cabecera desde el cargador
ld hl,(#4002) ; Dirección de ejecución de la ROM
ld (#400e),hl ; Guardamos esa dirección en los bytes reservados
ld hl,#400a
ld (#4002),hl ; Ponemos nuestra rutina de parcheo y arranque como dirección de ejecución de la ROM
Código a insertar en la cabecera de la ROM a partir de +#000a (zona reservada de la ROM)
ld (#4000),a ; Borra la cabecera
jp #0000 ; Ejecuta la ROM. Esta dirección es la que se modifca desde el cargador con ld (#400e),hl
Así al arrancar la supuesta ROM, modificará la cabecera y ejecutará el juego. Con lo que al pulsar RESET la BIOS ya no lo reconocerá como ROM.
Se me ocurre un apaño para evitarlo y es modificar el cargador de la ROM para que borre el primer byte de la cabecera y luego ejecute la ROM. De esta forma, al resetear la BIOS no reconocerá la supuesta ROM.
En caso de que el cargador deje en manos de la BIOS la detección y ejecucción de la ROM, lo que se puede hacer es modificar la cabecera (usando los bytes reservados #000a-#000f) para insertar el código necesario para borrar la cabecera y ejecutar el juego.
Por ejemplo:
Código para modificar la cabecera desde el cargador
ld hl,(#4002) ; Dirección de ejecución de la ROM
ld (#400e),hl ; Guardamos esa dirección en los bytes reservados
ld hl,#400a
ld (#4002),hl ; Ponemos nuestra rutina de parcheo y arranque como dirección de ejecución de la ROM
Código a insertar en la cabecera de la ROM a partir de +#000a (zona reservada de la ROM)
ld (#4000),a ; Borra la cabecera
jp #0000 ; Ejecuta la ROM. Esta dirección es la que se modifca desde el cargador con ld (#400e),hl
Así al arrancar la supuesta ROM, modificará la cabecera y ejecutará el juego. Con lo que al pulsar RESET la BIOS ya no lo reconocerá como ROM.