Instrumentos de Texas TMS9918

El TMS9918 , también llamado Video Display Processor (VDP) es un chip de video fabricado por Texas Instruments y comercializado desde 1979 . Con sus variantes, fue utilizado en sistemas como ColecoVision , CreatiVision , Memotech MTX , computadoras MSX1 , Sega SG-1000 , computadoras Spectravideo , Sord M5 , Tatung Einstein , TI-99/4 y sus clones. Sega Master System , Sega Game Gear y Mega Drive utilizaron versiones modificadas del TMS9918 que contenían registros adicionales y nuevos modos gráficos (el VDP de Mega Drive no admitía los modos gráficos del TMS9918).

El TMS9918 fue reemplazado por el Yamaha V9938 , que admitía nuevos modos gráficos, sprites con múltiples colores, un registro para desplazamiento vertical y una paleta personalizable .

Versiones

El chip se fabricó en varias variantes denominadas TMS9918A , TMS9928A y TMS9929A , donde la letra "A" indica una segunda versión del chip con nuevas funciones añadidas, principalmente un nuevo modo de gráficos de mapa de bits (Gráfico 2). La primera versión, la que no tiene la "A", se usó solo en la computadora TI-99/4; su sucesora, la TI-99/4A, y las demás computadoras tenían la versión TMS9918A. [1] El TMS9918 generó una señal de video compuesta mientras que el TMS9928A generó una señal de video YPbPr ; ambos generaron una imagen con 525 líneas de escaneo y una señal con una frecuencia de 60 Hertz , compatible con el estándar NTSC . En cambio, el TMS9929A ​​generó una señal de video YPbPr con 625 líneas de escaneo, adecuada para países que usaban el estándar PAL / SÉCAM . En cuanto a los costos, era más rentable generar una señal de video YPbPr y luego convertirla a PAL/SECAM en el modulador de RF que diseñar y construir un nuevo sistema para cada estándar de video. El TMS9918A (y el TMS9918) tenían, en comparación con los otros 2 chips, también una entrada de video compuesto que podía mezclarse con la imagen de mapa de bits generada.

Todos los chips de esta familia se conocen generalmente como TMS9918, a veces con la adición de la "A".

A mediados de los años ochenta , se lanzaron nuevas versiones del TMS9918 llamadas TMS9118 , TMS9128 y TMS9129 : los chips diferían de los modelos anteriores por la función de un pin cambiado y por un mapeo diferente de la memoria de video.

Familia Texas Instruments TMS9918
Versión Salida de vídeo Entrada de video Frecuencia de la señal Líneas de escaneo Modo Gráfico II
9918 Compuesto Compuesto 60 Hz 525 No
9918A / 9118 Compuesto Compuesto 60 Hz 525
9928A / 9128 YPbPr (No) 60 Hz 525
9929A ​​/ 9129 YPbPr (No) 50 Hz 625

Interfaz

El TMS9918 gestionaba un bloque dedicado de memoria de vídeo de 16 kB , externo al chip gráfico pero no visible dentro del espacio de direcciones gestionado por la CPU : el bus de memoria del VDP estaba de hecho separado del del procesador central, a diferencia de otros sistemas , como el MOS VIC-II de Commodore 64 , que usaba memoria compartida con el resto de la máquina. El VDC podría así acceder a los datos de la memoria de video sin tener que acceder a la RAM del sistema y, por lo tanto, sin ralentizar la CPU; además la memoria de video externa permitía ahorrar RAM de la memoria central. La CPU se comunicó con el VDP a través de un puerto de 8 bits y los datos se transfirieron entre estos chips mediante escrituras en ese puerto. El puerto se mapeaba en memoria o se gestionaba como puerto de entrada/salida (según las características de la CPU) y el sistema de comunicación recurría al uso de 2 bytes y 3 señales eléctricas en otros tantos pines del VDP: a través de esta interfaz se La CPU podría indicarle al VDP que lea o escriba en su memoria de video o en su registro simplemente ingresando la dirección de la celda o registro objeto de la operación en el primer byte y escribiendo o leyendo los datos del segundo byte, y luego seleccionando la operación deseado (leer o escribir) por medio de señales eléctricas.

Modo de vídeo

El TMS9918A admitía 4 modos de video diferentes (el TMS9918 no tenía el modo Gráfico 2):

El TMS9918 tenía una paleta fija de 16 colores (15 tonos más transparencia).

duende

La documentación técnica del VDP introduce por primera vez el término " sprite " para indicar los elementos gráficos separados del fondo y manejables directamente por el hardware del procesador de gráficos. [2] En los modos 1, 2 y 3, el VDP podría generar 32 sprites monocromáticos . de 8 × 8 o 16 × 16 píxeles, cada uno coloreado de manera diferente. La única limitación era el número por línea horizontal: no más de 4 a la vez, los que sobraban se descartaban. Los sprites tenían un atributo para establecer la prioridad: aquellos con mayor prioridad se dibujaban primero. El VDP tenía un registro en el que se almacenaba el sprite descartado: la CPU podía, por lo tanto, eludir la limitación de 4 sprites por fila cambiando la prioridad de los sprites para hacer que un grupo de sprites diferentes apareciera en cada cuadro. De esta manera, los sprites no desaparecían por completo sino que parpadeaban en la pantalla. Esta técnica se conoce como " multiplexación de sprites " . configurado para aumentar el tamaño de los sprites por medio de un atributo gráfico que, si se configura, duplica los píxeles individuales, lo que permite tener sprites de dimensiones 16 × 16 y 32 × 32 píxeles, respectivamente.

El VDP no admitía el movimiento automático de los sprites, por lo que el posicionamiento de los sprites debía gestionarse mediante software.

Cuando coincidían 2 píxeles no transparentes de 2 sprites, se activaba la bandera relativa de la colisión entre sprites: esto era útil para poder programar la dinámica exacta del evento ya que, a diferencia del TIA del Atari 2600 y el MOS VIC- II del Commodore 64 , el TMS9918 no indicaba qué sprites habían colisionado sino solo que se había producido una colisión.

Planos gráficos

El VDP manejaba la imagen por planos gráficos o niveles: había 35 planos, y cada nivel manejaba un componente de la imagen. El número del nivel indicaba la "distancia" del observador: cuanto mayor era el número, más "lejos" estaba el nivel, situándose por debajo de todos los de menor número y por encima de todos los de mayor número. Por lo tanto, el nivel 0 fue el primero, el "más cercano", mientras que el nivel 34 fue el último, el "más lejano":

Detalles del Modo 2

Técnicamente, el modo 2 es un modo de texto con un conjunto de caracteres de colores. La pantalla está dividida en 3 áreas horizontales de 256 × 64 píxeles cada una, cada una de las cuales puede tener su propio juego de caracteres. Al cambiar los caracteres y dibujarlos en la pantalla, el programa puede simular un modo gráfico en el que cada píxel se puede configurar individualmente. No obstante, el framebuffer resultante no es lineal.

El programa también puede usar 3 conjuntos de caracteres diferentes y luego administrar la pantalla como un modo de texto con un conjunto de caracteres de colores. Los patrones de fondo y los sprites consisten en caracteres de colores. Este método se usaba comúnmente en los juegos, ya que llenar/desplazar toda la pantalla se limitaba a llenar/desplazar solo 32 × 24 bytes. Los gráficos podían dibujarse de tal manera que los bordes de los bloques de 8 × 8 píxeles no fueran tan nítidos: este era un arte en el que Konami sobresalía particularmente.

El TMS9918 administró los colores en el Modo 2, lo que permitió usar para cada fila de 8 × 1 píxeles solo 2 tonos diferentes, el fondo y el color de relleno, elegidos libremente de una paleta de 15. Pero para cada área de 8 × 1 píxeles solo podrían existir 2 colores Y al manipular la pantalla vía BASIC con instrucciones gráficas era fácil superar este límite, por ejemplo cruzando un tramo con los 2 ya fijados dibujando una línea de un tercer color. El efecto resultante se conocía con el término "derrame de color" (visible en la imagen del lateral). Este defecto también era común al Sinclair ZX Spectrum .

El VIC-II del C64 estaba estructurado de forma diferente y no tenía ese límite: el chip, de hecho, permitía tener un máximo de 4 colores (de una paleta de 16) cada área de 4×8 píxeles, con 3 colores que se podían elegir para cada área mientras que el cuarto, generalmente el color de fondo, que tenía que permanecer igual en toda la pantalla. Usando técnicas avanzadas (usando programas en lenguaje máquina ) fue posible modificar este color de fondo variando en cada línea de escaneo de la imagen.

El TMS9918 no tenía registro de desplazamiento, por lo que tuvo que realizarse mediante software.

Trucos usados ​​en los juegos

Algunos juegos intentaron eludir la ausencia de registros de desplazamiento mediante el desplazamiento de píxeles de los mismos caracteres, como el juego Parsec para la TI-99/4A.

La conversión de Circus Charlie para MSX tenía desplazamiento horizontal y superaba el límite de 2 colores por cada área de 8 × 1 píxeles utilizando un gráfico monocromático con la superposición de algunos sprites de colores.

Pippols fluyó verticalmente. Dado que el desplazamiento vertical no estaba afectado por el límite del área de 8 × 1, el personaje controlado por el jugador podía caminar entre setos de flores de colores que fluían suavemente. Los demás personajes y objetos del juego eran monocromáticos y no estaban detallados con el mismo cuidado.

Road Fighter era un juego de conducción de desplazamiento vertical: cuando el automóvil del jugador viajaba a toda velocidad, la pantalla se desplazaba 8 píxeles por cuadro, lo que hacía que el desplazamiento de sprites fuera fluido a pesar de los saltos de 8 píxeles.

Knightmare tenía un desplazamiento vertical tan lento que los saltos de 8 píxeles no molestaban demasiado. Zanac fluía verticalmente mucho más rápido pero gracias a los fondos con los que el jugador nunca chocaba, el problema no era particularmente aburrido.

En Nemesis (un juego estilo R-Type ), sin embargo, el desplazamiento horizontal era la desventaja del juego, con los saltos de 8 píxeles claramente visibles. Su secuela, Nemesis 2 , compensó parcialmente las tomas de 8 píxeles al ofrecer gráficos muy coloridos y detallados.

Características técnicas

Herramientas gráficas

A lo largo de los años, el TMS9918 ha visto nacer algunas herramientas de gestión de imágenes, dibujo de sprites y, recientemente, también algunas herramientas de conversión de imágenes a formatos compatibles con la resolución y número de colores soportados en Modo 2, algunas basadas en algoritmos de tramado como como la de Floyd-Steinberg . Algunas de estas herramientas de conversión están disponibles gratuitamente, como MSX Screen Conversor , que convierte directamente online, y Screen 2 Converter , la versión en lenguaje C del anterior (offline).

Notas

  1. ^ El TMS9918 de 8 bits "No es un estándar" , en nerdlypleasures.blogspot.com , Nerdly Pleasures, 12/02/2013. Consultado el 21/06/2018 .
  2. ^ Sprite (gráficos por computadora) , en wiki30.com . Consultado el 22 de diciembre de 2017 (archivado desde el original el 23 de diciembre de 2017) .

Artículos relacionados

Otros proyectos

Enlaces externos