V9990 El Videochip del futuro
Artículo por: Stefan Boer, 1994
Pubicado en Sunrise Magazine #13 y MSX Computer & Club Magazine #69
Traducido y publicado en español en la revista Hnostar #25
Realmente no han habido nuevos desarrollos de hardware para MSX desde el Turbo R. Pero ahora, MSX-Händlergemein-schaft de Suiza está trabajando en el Graphics 9000, una tarjeta de video de 16 bits para el Turbo R, con el nuevo V9990 de Yamaha. El Graphics 9000 estará disponible en Octubre o Noviembre de 1994, por aproximadamente 290 US$.
TARJETA DE EVALUACION
Desde la International MSX Fair en Tilburg, el 26 de Marzo de 1994, soy el orgulloso dueño de una de las diez tabletas de evaluación del V9990 que hay en Europa en estos momentos. La tableta de evaluación es una impresión (aprox. 6 x 6) con un montón de material electrónico que yo no entiendo, con su V9990 en el medio en un cuadrado como el R800. El V9938 (videochio del MSX2) y el V9958 (MSX2+) son rectangulares.
Las conexiones en la tableta incluyen un conector para un interface al Turbo R y otro para scart lead. Puedes conectar la tableta al monitor o directamente al televisor con un scart lead y así la imgen del V9990 va directamente al monitor. Esta es una pequeña desventaja si tú sólo tienes monitor, como yo, porque esto implica que tienes que accionar los interruptores cuando quieres trabajar en el V9990 después de trabajar en el V9958 y viceversa. Puedes conectar un moniotr VGA (640x400 o 640x480 en 16 colores) o, incluso, un LCD (pantalla de cristal líquido) al V9990 pero, desafortunadamente, todavía no he podido probarlo.
EL BASIC DEL V9990
Si conectas el V9990 a tu Turbo R y monitor y enciendes el ordenador, la pantalla permanecerá en blanco al principio. Esto es porque el sistema operativo del Turbo R todavía usa el V9958. Tienes que ejecutar un programa de V9990 antes para poder ver algo.
Henrik Gilvad de Dinamarca, modificó el BASIC del Turbo R para poder trabajar con el V9990. Además, modificí el KUN Compiler (también conocido como XBASIC). El V9990 BASIC, BIOS y KUN están cargadaos dentro de la DRAM* del Turbo R. El BASIC no es completamente compatible con el BASIC normal, no lo tiene que ser y no es posible debido a algunas diferencias de hardware.
* NOTA: Como la ROM es significativamente más lenta, entonces la RAM del Turbo R tiene la posibilidad de copiar las ROMs por encima de 64kB de la RAM principal, la cual es llamada DRAM. El motor del Turbo R (S1990) hace esto posible en el V9990 (KUN)BASIC.
Una diferencia importante entre el V9938 y el V9990 es que el V9990 no tiene modo-texto. Henrik Gilvad solucionó este problema programando su propio modo-texto en el modo P2 del V9990. Es un modo-texto de 64 columnas muy rápido con lel set de caracteres internacional por lo que los caracteres del Turbo R co pueden molestarte más.
El V9990 BASIC soporta los siguientes modos de pantalla:
pantalla nota
0 64 columnas en modo texto
1 serán 32 columnas en modo texto
2 modo P1 (256x212 dualplane patternmode)
3 modo P2 (512x212 patternmode)
4 idéntico al screen 2
5...12 idéntico al MSX2/2+ excepto en los sprites;
sólo son posibles dos sprites en un color
El V9990 soporta una gran cantidad de modos de pantalla los cuales pueden ser fácilmente seleccionados por unos pocos comandos de VDP. Por ejemplo, puedes seleccionar el modo overscan (superposición) con OUT &H67,1. En el modo overscan puedes usar la pantalla entera, ¡incluidos los bordes!. La resolución es 384x240 en vez de 256x212, o 768x240 en vez de 512x212.
Las siguientes instrucciones gráficas son soportadas por el BASIC del V9990: BLOAD,S, BSAVE,S, CIRCLE, COLOR, COPY, DRAW, KEY ON/PFF, LINE, LOCATE, PAINT, POINT, PRESET, PSET, PRINT, PRINT USING, PRINT#, PUT SPRITE, SCREEN, SET ADJUST, SET PAGE, SET SCROLL, VDP, VPEEK, VPOKE y WIDTH. Por supuesto, las instrucciones que no son gráficas no han sido modificadas.
512 kB de VRAM
El V9990 tiene un montón de VRAM: ¡¡ 512 kB !!. Esto significa que tienes 16 páginas (pages) en SCREEN 5 y 6, y 8 páginas en SCREEN 7...12. ¿Algo como SET PAGE 13,15 no parece fantástico?
SPEEDY GONZALEZ
¡¡El V9990 es extremadamente rápido !!. Por ejemplo, puedes hacer una pantalla completa con un scroll liso en SCREEN 5 con un programa en BASIC, ¡usando COPY!. El comando COPY del V9990 es 9 veces más rápido el el comando COPY high-speed (alta velocidad) del V9938. El el V9938 tienes que usar un COPY lógico si quietes que copiar pixels en vez de bytes o si quieres usar poeraciones lógicas. En el V9990 esto no es necesario con lo que los COPYs son ¡¡ 23 veces más rápidos !!. NOTA: En el MSX-BASIC todos lo COPYs son tratados como COPYs lógicos en MSX2/2+/Turbo R, por lo que el comando COPY en BADIC es 23 veces más rápido en el BASIC del V9990.
I/O SPEED
El V9990 tiene comandos más rápidos pero además permite I/O más rápido. El V9938 apenas puede mantenerse con el Z80, así que el R800 del Turbo R es más lento cuando se comunica con el V9958. Esto no es necesario con el V9990, así que puedes usar realmente la velocidad del R800.
La tableta de evalación y Graphics 9000 usan direcciones I/O &H60...&H6F. Estos puertos son llamados P#0...P#F. Los P#0...P#7 son usaos para las operaciones normales del VDP, los P#8...P#B son para las Kanji ROMs (no soportada en Graphics 9000 pero el Turbo R tiene sus propias Kanji ROMs) y P#C...P#C están reservadas para usos futuros.
FLI-PLAYER
En la International MSX-Fair en Tilburg, el 3 de Abril de 1993, Anarchy de Alemania/Suiza, estrenó su Ray Tracing Demo. Esta demo tiene un montón de maravillosas animaciones ray-tracing (trazos de líneas) en SCREEN 8 con un desarrollo en tiempo real. Parecen buenas pero no son suaves porque el V9938 es demasiado lento.
Mi-Chi (un miembro de Anarchy) hizo un FLI-Player para el V9990. Éste trabaja lo mismo, algunas de las animaciones también fueron usadas en Ray Tracing Demo . Pero en el V9990 las animaciones eran realmente suaves. Es recomendable un disco duro rápido (con interface SCSI de Henrik Gilvad) porque algunos de los ficheros .FLI son de 400 kB e incluso hay algún nuevo .FLI player con ficheros de más de 2 MB. Desafortunadamente, no he podido ver estos ficheros tan largos porque no tengo memoria suficiente.
PROGRAMAS DE DIBUJO
El Graphics 9000 se venderá con dos programas de dibujo. Uno para el modo B1, 256x212 con 64 colores de una paleta de 32768, y otro para el modo P2, 512x212 con 16 colores de una paleta de 32768. El programa B1 parece el DD-Graph y el programa de P2 tendrá una gran cantidad de opciones y utilizará menús desplegables.
VIDEO
El Graphics 9000 será capaz de superimponer, lo cual lo hace ideal para los vídeo-aficcionados. Mi-Chi está trabajando en un programa para animaciones, retoque, etc. Las ventajas del Graphics 9000 comparado con el PHILIPS 8280 son:
- El V9990 es mucho más rápido
- En el 8280 no puedes usar el borde, el V9990 tiene modo overscan
- El V9990 tiene mejores gráficos (hasta 512x424 con 32768 colores) para las digitalizaciones
Todavía no es posible digitalizar con el V9990, pero será posible y será sorprendente porque puedes digitalizar en el modo 512x424 con 32768 colores. Esto quiere decir que no puedes ver la diferencia entre la digitalización y el original.
Uno de los discos demo son dos digitalizaciones YUV de 512x424. Estas digitalizaciones son realmente brillantes, no puedes ver la diferencia con la calidad normal de TV. YUV es un sistema para codificar 19268 colores usando sólo 8 bits por pixel, similar al sistea YJK usado en SCREEN 12 en lel MSX2. Éste tienen las misma desventaja del YJK (el color se derrama porque los 4 pixels adyacentes tienen elos mismos valores U y V, sólo el brillo -Y- puede ser diferente para cada pixel), pero difícilmente puedes ver esto en alta resolución. ¡¡Imagínate la calidad de imágenes con 32768 colores sin derramamiento de colores!!
JUEGOS
Yo soy programador de UMAX, famosa por sus juegos Pumpkin Adventure y The Witchs Revenge. Es muy frustante si tú no puedes programar lo que quieres por culpa de las posibilidades y/o velocidad del chip de vídeo. ¡Esto ocurre muchas veces si programas algo para MSX2!. El número de caracteres moviéndose por la pantalla y el tamaño de los mismos es un problema y una agradable rutina de scroll incluso es peor.
El V9990 tiene dos modos ideales para juegos: P1 y P2. Éstos son pattern modes (modos patrón), la pantalla consiste en patrones de 8x8 pixels cada uno. Las resoluciones osn 256x212 y 512x212. Con estos modos patrón es mucho más fácil hacer juegos mucho más agradables para V9990 que para MSX2.
DUALPLANE
El modo P1 es más conocido como el modo dualplane (bi-plano) porque tinene dos pantallas con scrooll independientes. Ves la pantalla de fondo mientras la del frente es transparente. Es muy fácil hacer fantásticos scrooll multi-capa usando este modo. Cada plano puede tener una de las cuatro paletas de 16 colores de 32768.
Una característica especial del modo P1 es el tipo de hardware screensplit. Puedes seleccionar un tipo de borde en 64 unidades de pixel. Encima y en el lado izquierdo de este borde, el plano A es el plano frontal, y debajo y al lado derecho de este borde, el plano B es el plano frontal.
PATTERNS
Como el V9990 tiene tanta VRAM, puede almacenar alrededor de 15.000 patterns (patrones). El formato de los patrones es muy agradable, es equivalente a la imagen de SCREEN 5 con bloques de 8x8. Así es muy fácil usar estos patrones.
Los juegos para MSX2 a menudo están en SCREEN5 y usan bloques de 8x8. La rutina de construcción de la pantalla para tales juegos es más bien complicada porque para cada patrón hay que calcular qué coordenadas se sitúan en la VRAM, y hay que copiarlas a la posición correcta en la pantalla visible. Esto es lento y difícil.
En el V9990 ambas cosas son sencillas y rápidas: sólo VPOKE el número de patrón (16 bits) en la tabla de nombres del patrón. ¿Están empezando a comprender lo que quiero decir con es mucho más fácil hacer buenos juegos para V9990 que para MSX2?. ¡Pero esto no es todo!
SPRITES
En los modos P1 y P2 puedes usar hasta 125 (¡ciento veinticinco!) sprites, los cuales con casi cuatro veces más que los 32 sprites del V9938. Hasta16 sprites pueden visualizarse en una líena horizontal simple, con lo que ¡los tiempos del parpadeo de sprites han terminado!
Pero la principal ventaja de los sprites es que, justamente como los patrones, son gráficos de SCREEN 5. Así, puedes dibujar sprites de 16x16 en DD-Graph y cargarlos en la VRAM, Sin ninguna conversión puedes usar estos bloques como sprites.
En el MSX2 cada lína horizontal de un sprite sólo puede tener un color, en el V9990 se pueden usar todos los colores de una de las cuatro paletas de 16 colores de 32768. Es posible conseguir sprites mulri-coloreados en el MSX2 pero tienes que usar dos sprites para un objeto para conseguir 3 colores en una línea horizontal por lo cual sólo pudes tener 16 de estos sprites de 3 colores.
Si quieres el sprite para moverlo detrás de una valla y ver parte del sprite sin cubrir po la valla, sería muy complicado hacerlo en un mSX2. Pero todo lo que necesitas hacer en el V9990 es poner la valla en el plano frontal y situar un bit de los atributos del sprite.
Otra de las ventajas del V9990 es que en el modo P2, 512x212, los pixels del sprite tienen el mismo tamaño que los pixels de pantalla. En el MSX2 un pixel del sprite es dos veces el ancho de la pantalla y la coordenada X sólo podía ser 0...255, en el V9990 la coordenada X puede ser 0...511.
Los modos B no tienen sprites porque no fueron diseñados para usar para juegos. Tienen dos cursores de sprites especiales de 32x32.
SOFTWARE
El V9990 es ideal para juegos, aplicaciones de negocio y aplicaciones de vídeo. Mountainsoft, de Suiza, está trabajando en un juego, tendrá una versión del programa de DTP Aladdin y un montón de software incluidos los programas de dibujo y vídeo que ya he mencionado) está siendo desarrollado.
Henrik hizo un programa para ver imágenes procedentes de un Photo CD usando un lector de CD-ROM y V9990 y Mi-Chi hizo un visualizador muy profesional para usar con una gran cantidad de formatos incluidos GIF, BMP y PCX. Las imágenes GIF, BMP y PCX se ven mucho mejor en el V9990 que en el MSX2 porque puede visualizar más colores (32768) en alta resolución (512x424).
Un montón de grupos, incluido UMAX, tienen planes para hacer un juego para V9990.
INTERRUPCIONES
Este párrafo es interesante para programadores, si tú no conoces nada acerca de interrpciones, mejor que te lo saltes.
El V9990 puede generar interrupciones causadas por las siguientes causas:
1) Vacío vertical (50/60 Hz)
2) Cuando se visualiza cierta línea (interrupción de línea)
3) Cuando ha finalizado un comando
4) Cuando se visualiza en una cierta posición horizontal
5) Al comienzo de visualizarse cada línea
El V9938 sólo soporta el 1 y 2. La ventaja de la 3 es clara. Con la 4 puedes hacer una dición de pantalla vertical que no es posible en el V9938 (no una estable) y la 5 es muy apropiada para ondas.
Para ver qué causa produce la interrupción tienens que leer el estado del registro en el MSX2, en el V9990 sólo tienes que leer el puerto FLAG de interrupción (P#6) que es mucho más rápido.
PROGRAMACION
Programar para el V9990 es má simple o al menos tan simple como programar para el V9938. Un montón de cosas cogen menos instrucciones ON/OFF y de esta forma toman menos tiempo y menos bytes.
Ya he mencionado el puerto flag de interrupción, el V9990 también tiene un puerto de estado con una gran cantidad de cosas agradables como vertical non-display period (período vertical no visualizado), horizontal non-display period (perído horintal no visualizado), command being executed (comando siendo ejecutado), etc. Leyendo de/escribiendo a la VRAM es aún más simple, si no, compara las siguientes rutinas para ver lo que quiero decir:
; SetWriteV9938
; In: CHL = VARM address (17 bits)
LD A,H
AND #3F
OR #40
EX AF,AF
LD A,H
OR C
RLCA
RLCA
OUT (#99),A
LD A,128+14
OUT (#99),A
LD A,L
OUT (#99),A
EX AF,AF
OUT (#99),A
RET
; SetWriteV9990
; In: EHL = VRAM address (19 bits)
LD C,#64
XOR A
OUT (C),A
DEC C
OUT (C),L
OUT (C),H
OUT (C),E
RET
RESOLUCIONES Y COLOR
El V9990 soporta las siguientes resoluciones:
modo resolución nota
P1 256x212 (424) dualplane modo patrón
P2 512x212 (424) modo patrón
B1 256x212 (424)
B2 384x240 (480) overscan
B3 512x212 (424)
B4 768x240 (480) overscan
B5 640x400
B6 640x480
Las resoluciones verticales de entrelazado son mostradas entre paréntesis ( ). Estas resoluciones se pueden combinar con el sistema de paleta de abajo, con lo que son posibles un montón de diferentes tipos de modos de pantalla. Los sistemas que usan 8 ó 16 bits por pixel no son posibles para B4...B6, P1 y P2 sólo trabaja con 4 bits por pixel.
bits/ colores sistema
pixel
16 32768 simultáneamente (TrueColour)
8 64 de una paleta de 32768
256 como SCREEN 8
19268 como SCREEN 12 (YJK)
19268 YUV
4 16 de una paleta de 32768
2 4 de una paleta de 32768
TAMAÑO DE VISUALIZACION VS. TAMAÑO DE IMAGEN
Una característica muy interesante del V9990 es el tamaño de la imagen, la cual es mucho más grande que el actual tamaño de visualización, así que puedes ver una parte de la imagen total en tu pantalla. Cada parte es determinada por los registros de scroll , de modo que puedes realizar un scroll suave en todas las direcciones y en todos los modos de pantalla.
El tamaño de la imagen depende del número de bits usados por pixel. La siguiente tabla es válida para los modos bitmap (mapa de bits) B1...B6:
bits/pixel resoluciones
2 256x8192, 512x4096, 1024x2048, 2048x1024
4 256x4026, 512x2048, 1024x1024, 2048x512
8 256x2048, 512x1024, 1024x512, 2048x256
16 256x1024, 512x512, 1024x256
En el modo P1 hay dos imágenes de patrones de 64x64 cada uno (512x512 pixels), el modo P2 tiene una imagen de patrones de 128x64 (1024x512).
Si usas el modo B1 para un juego puedes poner un nivel entero de un juego dentro de la VRAM porque hay espacio para 16 pantallas si usas 16 colores. No tienes que usar bloques pero puedes de esa manera dibujar el nivel entero. Por supuesto los modos P1 y P2 son mejores para juegos porque tienen sprites.
ENTRELAZADO
El V9938 también tenía una posibilidad de entrelazado, pero no era usado muy a menudo porque las líneas impares de la imagen tenián que estar en una página y las líneas pares en otra. Por esto, una imagen tenía que ser convertida antes de poder ser mostrada en modo entrelazado. Debido a esto, las animaciones eran casi imposibles.
El modo entrelazado elV9990 es mucho más vistoso porque así dobla el tamaño de visualización de la imagen. No son necesarias conversiones y las animaciones son tan fáciles como en un modo no entrelazado.
Por el momento, el V9990 tiene un modo indocumentado con 16 colores y una resolución horizontal de 1024. Junto el entrelazado posibilita la máxima resolución que un V9990 puede mostar en un televisor normal es 1024x424. Debo admitir que la calidad no es muy alta en mi TV pero ésta mejoraría usando un monitor mejor.
POR ULTIMO...
No he cubierto todas las posibiliaddes del V9990 pero creo que está más que claro que este videochip ofrece unas posibilidades revolucionarias en un MSX.
Muchas cosas cosas que no son todas posibles en un V9958 o sólo con un montón de problemas, pueden ser programadas para el V9990 en unas pocas líneas de BASIC. ¿Puedes imaginarte qué posibilidades hay si usas el código máquina?.
Voy a empezar con un curso de programación en ambos BASIC y ML tan pronto como el Graphics 9000 esté disponible.
Es una pena que el V9990 aún no estuviera terminado (otoño de 1991) para ser usado en el MSX Turbo R el cual fue lanzado en otoño de 1990. La mayoría de los usuarios de MSX tienen actualmente hardware antiguo. El V9938 fue desarrollado en 1985 así que tiene casi 10 años. En otros sistemas es muy normal actualizarse el sistema cada unos pocos años.
Ésto ha sido posible en el MSX (MSX1 1983, MSX2 1985, MSX2+ 1988, MSX turbo R 1990) y ahora será posible de nuevo actualizar tu sistema con un Graphics 9000 y un Moonsound (tarjeta de sonido de 16-bit con OPL4). espero que un gran número de usuarios de todo el mundo compre Graphics 9000 y Moonsound.
Por supesto que no hay mucho software por ahora, y debido a que estas personas no compran el Graphics 9000 no habrá más software para él, etc. ¡Tenemos que romper este círculo vicioso! Así que compra un Graphics 9000 (y un turbo R si todavía no lo tienes) y entonces el software vendrá pronto. Puedo asegurate que muchos grupos que desarrollan software no pueden esperar a programar para V9990.
Muchos grupos que están desarrollando software para MSX2 hasta el momento no son desafiados más, ellos hacen un poco software y quieren mejorarlo. Esto no es posible con el MSX2. Si no actualizamos nuestro hardware empezarán a desarrollar software para otros siet,as como el PC. Desafortunadamente una gran cantidad de grupos ya han tomado esta decisión. El único modo de evitar a más grupos a tomar este mal paso es apoyando el nuevo Graphics 9000 y Moonsound.
|