HispaMSX

Rarezas del TMS9918 y cia

2005-02-05 12:59:43
Hola a todos!

Recientemente, mientras desarrollaba una de las proxima entrada de Karoshi Corp para MSXdev'05, tuve que enfrentarme a un error absurdo, indetectable. El juego funcionaba perfectamente en ordenadores MSX2/MSX2+/Turbo-R y en emuladores, pero al ejecutarlo en un MSX1, los graficos se corrompian. Repase linea por linea todo el codigo, intente distintas soluciones y aproximaciones, y nada funcionaba bien: el problema persistia.

Entonces descubri que dejaba reseteado (valor 0) el bit mas alto del registro 1 del VDP, lo que se supone que no tiene ningun efecto en los ordenadores MSX (segun toda la documentacion disponible sobre el MSX que he conseguido consultar). El significado de este bit, segun la documentacion de Texas Instruments, es el siguiente:

0- solo 4 KB de VRAM instalados
1- 8/16 KB de VRAM instalados

Como en el MSX siempre hay, como minimo, 16 KB de VRAM, no deberia haber ningun problema. Sin embargo, este bit si que tiene efectos, al contrario de lo que dice la documentacion sobre el MSX. En los ordenadores de siguientes generaciones, que utilizan chips Yamaha V9938 y V9958, no hay problemas, y el bit es ignorado. Sin embargo, en los MSX1, el bit es tenido en cuenta y cambia de algun modo la conducta del procesador de video. Alguien tiene alguna pista sobre el fenomeno en si? Esta informacion seria util para perfeccionar los emuladores disponibles, que no recogen este efecto. Ideas? Sugerencias?

Parece que cambie la forma de interpretar las direcciones que se pasan al VDP, y que haya algun cambio cuando se atiende a la interrupcion V-blank. Pero no tengo ni idea de lo que pasa! NO LO ENTIENDO. Por eso os pido ayuda. Gracias por adelantado.

Un saludo,

Edu Robsy



<Anterior en la conversación] Conversación actual [Siguiente en la conversación>
  • Rarezas del TMS9918 y cia, Eduardo Robsy Petrus <=