Overscan en MSX1

Página 1/2
| 2

Por mohai

Paladin (841)

Imagen del mohai

12-08-2019, 20:21

Hola,

resulta que trasteando con el Palcom PX-7 (versión PAL), he descubierto una manera de hacer overscan al VDP.
Para los que no lo sepan, este MSX es capaz de superimponer la imagen a una fuente de vídeo externa que se le conecte.
El sistema para superimponer es mas o menos el siguiente: se extraen los sincronismos de la señal de vídeo entrante y se le inyectan al VDP (que en este caso es un TMS9929a). Luego el chip ajusta sus sincronismos con los externos y puede superponer los gráficos encima, donde esté seleccionado el color 0.

Login sesión o register para postear comentarios

Por mohai

Paladin (841)

Imagen del mohai

12-08-2019, 20:36

Bueno. La teoría dice que si el chip VDP es versión PAL, se le puede sincronizar con una fuente externa de vídeo PAL también, pero resulta que eso no es cierto del todo.
Se me ha ocurrido meterle vídeo NTSC y resulta que el chip es capaz de ajustar los sincronismos y mostrar una imagen estable.
La pega viene en que la imagen resultante es una mezcla de PAL sobre NTSC y los monitores que tengo cambian a NTSC, con lo cual la imágen del MSX se vé sin colores (Igual si le meto PAL a 60, se pueda arreglar, vete a saber ...).

Bueno, el caso es que el VDP cambia los tiempos de refresco y de sincronismo y se vuelve un poco gilipuertas, porque la imagen se estira hacia arriba y hacia abajo y en la parte superior muestra un tercio de caracteres más.

Me explico: La pantalla normalmente tiene 192 puntos de alto, repartidos en 24 líneas de caracteres, repartidos a su vez en 3 tercios, de arriba a abajo.
Pues cuando se activa este modo, se muestra en la parte de arriba un tercio de caracteres que no se corresponde a ninguno de los tercios normales. Debajo de éste están los 3 tercios habituales.
He descartado hacer pruebas en SCREEN 0, porque en este modo la pantalla también se estira en vertical, pero lo que muestra en la parte de arriba son caracteres a medio "entrelazar", con scanlines en vez de las líneas pares. Bastante poco aprovechable.

Por mohai

Paladin (841)

Imagen del mohai

12-08-2019, 20:45

He estado haciendo pruebas para ver cómo se direcciona el tercio "extra" y esto es lo que he averiguado:

- Tanto SCREEN 1 y 2 (y creo que el 3) se comportan de igual manera.
- Activando cada screen desde BASIC, usando los registros del VDP tal y como los ajusta el BASIC.
- Su tabla generadora de patrones (pattern generator table) comienza en 6912
- Su tabla de color (color table) comienza en 14336
- Su tabla de nombre de patrones (pattern table) comienza en 6912

Como véis, para este tercio extra, sus direcciones comienzan donde terminan las de los tercios normales, lo cual es un fastidio porque se solapan con las de los sprites se solapan entre ellas.

Supongo que la solución a estos conflictos sería usar algún modo de un solo juego de patrones o repetir el juego de patrones en algunos tercios, tocando los registros correspondientes.

Por mohai

Paladin (841)

Imagen del mohai

12-08-2019, 20:48

Una nota sobre este modo overscan:
En teoría se muestran 256 líneas de altura, porque SUPONGO que se muestran 8 líneas de caracteres extra en la parte de arriba, pero con los monitores que tengo ahora mismo, sólo he conseguido mostrar 6 caracteres y medio extra, lo que nos daría 244 líneas de alto.

Por mohai

Paladin (841)

Imagen del mohai

13-08-2019, 14:07

Otra cosa que casi se me olvida: las interrupciones dejan de funcionar. Ignoro si es porque se generan demasiado deprisa y el BASIC es incapaz de arenderlas o es que, simplemente dejan de generarse.
El caso es que el BASIC sigue funcionando perfectamente, pero no se lee el teclado.

Por [WYZ]

Champion (417)

Imagen del [WYZ]

13-08-2019, 18:37

WOW!!!

Por [WYZ]

Champion (417)

Imagen del [WYZ]

13-08-2019, 23:33

Necesitamos un video del descubrimiento! sería una genialidad aprovechar eso.¿podría hacerse en cualquier MSX1 con TMS99xx?

Por mohai

Paladin (841)

Imagen del mohai

15-08-2019, 00:03

[WYZ wrote:

]Necesitamos un video del descubrimiento! sería una genialidad aprovechar eso.¿podría hacerse en cualquier MSX1 con TMS99xx?

En principio, se podría en las versiones PAL. Ignoro si las versiones NTSC reaccionarían igual al aplicarles unos sincronismos diferentes de NTSC.
Se requeriría una pequeña modificación hardware y un generador de sincronismoa, que supongo no será muy complejo.

Por otro lado, he estado probando con un monitor de tubo y, jugando con el ajuste vertical, he contado 240 líneas en total.
No veo bordes verticales, del tercio superior que aparece nuevo, se ven sólo 6.5 líneas de caracteres y del tercio inferior, 7.5 líneas de caracteres.
Subiré fotos y haré un vídeo para explicar el efecto.

Por mohai

Paladin (841)

Imagen del mohai

16-08-2019, 19:28

Aqui dejo unas fotos.
La primera es el modo overscan en SCREEN 2, reconfigurando los punteros del VDP, obligando al modo de 1 sólo juego de caracteres.
Los números de la izquierda es la imagen de un MSX-2 a 60 Hz.
El Sprite negro que se muestra es accidental. No es un fallo del modo ni un error de los registros del VDP.
La segunda, el ajuste de registros que he usado. Es sólo un ejemplo.
La tercera, la imagen en un monitor de tubo. La línea verde que se vé a la izquierda, es el MSX-2 a 60 Hz.



En la tercera imágen se vé parte del texto de las teclas de función. He calculado que es media línea, con lo que del tercio inferior se verían 7.5 líneas de texto, dando en total 240 líneas de alto.
En otros monitores, en el tercio de abajo no he conseguido ver mas que 6.5 líneas, dando 232 líneas de alto.

Por mohai

Paladin (841)

Imagen del mohai

16-08-2019, 19:30

Y aquí os dejo un vídeo donde se vé el MSX con y sin el overscan

Por [WYZ]

Champion (417)

Imagen del [WYZ]

16-08-2019, 21:39

Running Naked in a Field of Flowers
¿a que direcciones corresponde ese primer "cuarto"?

Página 1/2
| 2