<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es">
	<id>https://www.museo8bits.com/wiki/index.php?action=history&amp;feed=atom&amp;title=Texas_Instruments_TMS9918</id>
	<title>Texas Instruments TMS9918 - Historial de revisiones</title>
	<link rel="self" type="application/atom+xml" href="https://www.museo8bits.com/wiki/index.php?action=history&amp;feed=atom&amp;title=Texas_Instruments_TMS9918"/>
	<link rel="alternate" type="text/html" href="https://www.museo8bits.com/wiki/index.php?title=Texas_Instruments_TMS9918&amp;action=history"/>
	<updated>2026-05-07T09:16:18Z</updated>
	<subtitle>Historial de revisiones de esta página en la wiki</subtitle>
	<generator>MediaWiki 1.41.0</generator>
	<entry>
		<id>https://www.museo8bits.com/wiki/index.php?title=Texas_Instruments_TMS9918&amp;diff=6179&amp;oldid=prev</id>
		<title>Museo8bits: 1 revisión importada</title>
		<link rel="alternate" type="text/html" href="https://www.museo8bits.com/wiki/index.php?title=Texas_Instruments_TMS9918&amp;diff=6179&amp;oldid=prev"/>
		<updated>2021-10-17T02:48:23Z</updated>

		<summary type="html">&lt;p&gt;1 revisión importada&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;es&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Revisión anterior&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revisión del 04:48 17 oct 2021&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;es&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(Sin diferencias)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Museo8bits</name></author>
	</entry>
	<entry>
		<id>https://www.museo8bits.com/wiki/index.php?title=Texas_Instruments_TMS9918&amp;diff=6178&amp;oldid=prev</id>
		<title>Museo8bits en 11:25 27 mar 2008</title>
		<link rel="alternate" type="text/html" href="https://www.museo8bits.com/wiki/index.php?title=Texas_Instruments_TMS9918&amp;diff=6178&amp;oldid=prev"/>
		<updated>2008-03-27T11:25:59Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Página nueva&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[Imagen:TMS9918A_01.jpg|thumb|VDP TMS9918A]]&lt;br /&gt;
[[Imagen:TMS9918A_02.jpg|thumb|VDP TMS9918A]]&lt;br /&gt;
El &amp;#039;&amp;#039;&amp;#039;Texas Instruments TMS9918&amp;#039;&amp;#039;&amp;#039; es un [[Graphics Processing Unit|VDP]] (Video Display Processor : chip de gráficos) desarrollado por [[Texas Instruments]], inicialmente para su uso en su gama de ordenadores [[Texas Instruments TI-99/4A|TI-99]]&lt;br /&gt;
&lt;br /&gt;
==Especificaciones==&lt;br /&gt;
* [[VRAM]]: 16 [[KB]]&lt;br /&gt;
* Modos de Texto : 40 x 24 y 32 x 24&lt;br /&gt;
* Resolución: 256 x 192 (16 colores)&lt;br /&gt;
* [[Sprite (videojuegos)|Sprites]]: 32, 1 color, max 4 por línea horizontal.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!---&lt;br /&gt;
==Información general==&lt;br /&gt;
El &amp;#039;&amp;#039;&amp;#039;TMS9918&amp;#039;&amp;#039;&amp;#039; se utilizó en sistema como [[MSX]], [[ColecoVision]], [[Texas Instruments TI-99/4]], [[Memotech MTX500]]/[[MTX512]]/[[RS128]] y [[SG-1000|Sega SG-1000]]/[[SC-3000]]. Versiones modificadas con modos de pantalla y registros adicionales se utilizaron en las [[Sega Master System]], [[Sega Game Gear]], y [[Sega Mega Drive]]. Tenga en cuenta que el VDP de la Mega Drive no puede acceder a cualquiera de los modos de pantalla del TMS9918 que se mencionan a continuación.&lt;br /&gt;
&lt;br /&gt;
Existen varias variantes llamadas TMS9918A, TMS9928A y TMS9929A, donde la &amp;#039;A&amp;#039; indica que es una versión mejorada del chip con nuevas prestaciones, entre las que destaca un nuevo modo [[bitmap]] (Graphic II). Las primeras versiones se utilizaron sólo en el TI-99/4; el TI-99/4A y el resto de los equipos utilizan la versión A del chip VDC. Los TMS9918A y TMS9928A tienen una salida de vídeo a 60 Hz, mientras que el TMS9929A la tiene a 50 Hz. La diferencia entre los modelos &amp;#039;1&amp;#039; y &amp;#039;2&amp;#039; (&amp;#039;TMS9918A&amp;#039; y &amp;#039;TMS9928A&amp;#039;) es que los &amp;#039;1&amp;#039; tienen salida de [[vídeo compuesto]] [[NTSC]], mientras que los &amp;#039;2&amp;#039; (incluido el TMS9929A) tienen salida [[YPbPr]], más precisamente precisely the Y, R-Y and B-Y colour differences ([[luma (video)|luminance]] and colour difference signals). The need for the latter was predominant in the 50Hz world, including Europe, due to the different video signal standards [[PAL]] and [[SECAM]].  It was more cost-effective to output Y, R-Y and B-Y and encode them into PAL or SECAM in the [[RF modulator]], than to try and have a different console for every different color standard.  All of the ICs in this family are usually referred to by the TMS9918 name, sometimes with an &amp;#039;A&amp;#039; postfix.&lt;br /&gt;
&lt;br /&gt;
La diferencia entre el&amp;#039;1 &amp;#039;y el&amp;#039;2&amp;#039; en &amp;#039;TMS9918A&amp;#039; y &amp;#039;TMS9928A&amp;#039; es que el&amp;#039;1 &amp;#039;versión salidas de vídeo compuesto NTSC, mientras que el&amp;#039;2&amp;#039; versiones (incluido el TMS9929A) YPbPr productos, más precisamente la Y, RY y por las diferencias de color (luminancia y las señales de diferencia de color). The need for the latter was predominant in the 50Hz world, including Europe, due to the different video signal standards PAL and SECAM . La necesidad de este último fue predominante en los 50 Hz mundo, incluyendo Europa, debido a las diferentes normas de señal de vídeo PAL y SECAM. It was more cost-effective to output Y, RY and BY and encode them into PAL or SECAM in the RF modulator , than to try and have a different console for every different color standard. Es más rentable para la producción de Y, RY y BY y codificarlas en PAL o SECAM en el modulador de RF, que intentar tener una consola diferente color diferente para cada nivel. All of the ICs in this family are usually referred to by the TMS9918 name, sometimes with an &amp;#039;A&amp;#039; postfix. Todos los ICs en esta familia son generalmente mencionados por el TMS9918 nombre, a veces con una &amp;quot;A&amp;quot; postfix.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The TMS9918A was succeeded by the [[Yamaha V9938]], which added bitmap modes, more colorful sprites, a vertical scroll register and a customizable palette. The V9938 was used in a third-party upgrade to the TI-99/4A — the [[Geneve 9640]] &amp;#039;computer-on-a-card&amp;#039;. The V9938 in turn was succeeded by the [[Yamaha V9958|V9958]], which added some high colour modes and a horizontal scroll register. These chips were used in the &amp;quot;TIM&amp;quot; upgrade for the TI-99/4A as well as on the MSX 2 and MSX 2+/turboR systems, although rumor says the V9958 was also used in a generation of the Photo Play arcades. Yamaha also produced a [[Yamaha V9990|V9990]], which is considered the follow-up of the V9958 by some, but it is not backwards compatible. A graphic chip extension utilizing the V9990 exists for the MSX in the form of the &amp;#039;Graphics9000&amp;#039; cartridge by [http://www.msx.ch/ Sunrise].&lt;br /&gt;
&lt;br /&gt;
==Interface==&lt;br /&gt;
El TMS9918 dispone de su propia [[VRAM]] de 16 [[Kilobyte]]s, fuera del espacio de direcciones de la [[CPU]]. Esta memoria no puede mapearse en el espacio de la CPU This memory cannot be mapped onto the CPU&amp;#039;s space, as there is no way for the VDP to relinquish control of its bus to the CPU. A separate addressing space means that the CPU has to write a two-byte command word to the VDP&amp;#039;s control port to set the address register, but it also means that the VDP doesn&amp;#039;t slow down the main processor when it reads data out of its memory, and since the memory is not mapped onto the CPU&amp;#039;s addressing space, there is more memory available for other hardware.&lt;br /&gt;
&lt;br /&gt;
Data is transferred from the CPU to VDP RAM through port writes. As a byte is written, the TMS9918 increments its internal address register, so that the CPU can quickly write a block of data. Writes to a different port can set various internal registers.&lt;br /&gt;
&lt;br /&gt;
 El TMS9918 tiene su propio 16k x 8 bits de memoria de vídeo, fuera del espacio de direcciones de la CPU. This memory is not mapped onto the CPU memory space - the VDC&amp;#039;s data memory bus is a private (although external) bus, separated from that of the CPU. Esta memoria no es mapeado en el espacio de memoria de CPU - el VDC de datos del bus de memoria es un privado (aunque externa) autobús, separada de la de la CPU. A separate addressing space means that the CPU has to write a two-byte command word to the VDC&amp;#039;s control port to set the address register, but it also means that the VDC doesn&amp;#039;t slow the main processor down when it reads data out of its memory, and since the memory is not mapped onto the CPU&amp;#039;s addressing space, there is more address space available for other memory and memory-mapped hardware. En un espacio de direccionamiento implica que la CPU tiene que escribir un comando de dos bytes de la palabra VDC de control de puerto para establecer la dirección de registro, pero también significa que la VDC no frenar el principal procesador de abajo cuando lee los datos de su Memoria, y dado que la memoria no es mapeado en el espacio de direccionamiento de la CPU, hay más espacio de direcciones de memoria disponible para otros-y de la memoria asignada hardware.&lt;br /&gt;
&lt;br /&gt;
The CPU communicates with the VDC through an additional 8-bit port on the VDC, and data is transferred between the two via port writes. La CPU se comunica con el VDC a través de un adicional de 8 bits puerto en el VDC, y los datos se transfieren entre los dos a través de puerto escribe. As a byte is written, the TMS9918 increments its internal address register - this is important, because the CPU does not have to send an address update for every byte access. Como un byte está escrito, el TMS9918 incrementos de su registro de direcciones internas - esto es importante, ya que la CPU no tiene que enviar una dirección de actualización para cada byte de acceso. This facilitates quicker reads and writes of blocks of data. Esto facilita lee y escribe más rápido de bloques de datos. Writes to other ports can set various internal registers. Escribe a otros puertos pueden establecer diferentes registros internos.&lt;br /&gt;
&lt;br /&gt;
---&amp;gt;&lt;br /&gt;
==Modos de Pantalla==&lt;br /&gt;
Hay un total de 4 modos de pantalla diferentes para el TMS9918A (como se indicó antes, el TMS9918 original carece del  Mode 2):&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Mode 0 (Texto):&amp;#039;&amp;#039;&amp;#039; 40×24 caracteres en 2 colores (monocromo). Como la pantalla tien un ancho de 256 pixels, el juego de caracteres tienen un ancho de 6 pixels. Este modo no soporta sprites, ni establecer un color diferente para el borde de pantalla.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Mode 1 (Grafico 1):&amp;#039;&amp;#039;&amp;#039; 32×24 caracteres (bitmap de 256×192), de los que por cada 8 caracteres en el set de caracteres los valores del color de &amp;#039;&amp;#039;papel&amp;#039;&amp;#039; y &amp;#039;&amp;#039;tinta&amp;#039;&amp;#039; pueden modificarse. Por ejemplo, los caracteres &amp;quot;0&amp;quot;-&amp;quot;7&amp;quot; tienen todos los mismos atributos.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Mode 2 (Grafico 2):&amp;#039;&amp;#039;&amp;#039; 32×24 caracteres (bitmap de 256×192), con una limitación de dos colores por cada 8 pixels de ancho en un carácter.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Mode 3 (Multicolor):&amp;#039;&amp;#039;&amp;#039; modo de 64×48, muy cuadrado y raramente usado. Cada &amp;#039;pixel&amp;#039; puede tener su propia definición de colores, de ahí el nombre. Los sprites en cambio tienen la misma resolución que en los Modes 1 y 2.&lt;br /&gt;
&lt;br /&gt;
El TMS9918 tiene una paleta de 16 colores, fijada por hardware. Por ejemplo el color 4 es siempre azul oscuro.&lt;br /&gt;
&lt;br /&gt;
==[[Sprite (videojuegos)|Sprites]]==&lt;br /&gt;
En los modos 1, 2, y 3, el VDP puede manipular sprites. Son en total 32 sprites de 8×8 o 16×16 pixels cada uno con su propio color (sólo uno por sprite). Sólo puede haber 4 sprites en la misma scanline; cualquier otro sprite adicional es despreciado. Los sprites se dibujan de acuerdo con su orden de prioridad. La [[CPU]] puede manipular esta limitación rotando las prioridades de los sprites para qe se dibuje un diferente set de sprtes en cada frame. En lugar de desaparecer por completo, parpadean. Esta técnica se denomina multiplexar sprites.&lt;br /&gt;
&lt;br /&gt;
Cuando dos pixels no transparentes de un par de sprites colisionan, se levanta el indicador de colisión de sprites. Esto es útil para disparar rutinas más avanzadas de detección de colisiones en el software que determinen la localización exacta y actúen en consecuencia. Téngase en cuenta que el VDP no informa al programa de qué dos sprites han colisionado.&lt;br /&gt;
&lt;br /&gt;
==Detalle del Mode 2==&lt;br /&gt;
Técnicamente, el Mode 2 es un modo de caracteres con un colorido set de caracteres. La pantalla está dividida verticalmente en tres áreas de 256×64 pixels, cada una de las cuales dispone de su propio set de caracteres. Imprimiendo secuencialmente los caracteres 0 a 255 en las tres áreas, el programa puede simular un modo gráfico donde cada píxel puede setearse individualmente. Sin embargo el [[framebuffer]] resultante no es linear.&lt;br /&gt;
&lt;br /&gt;
El programa pude usar también tres sets de caracteres idénticos, y jugar con la pantalla como un modo de texto con un colorido set de caracteres. Los fondos de plantilla y sprites consisten entonces en caracteres coloridos. Esto era de uso común en los juegos, porque para llenar / desplazar la pantalla entera, sólo había que trasladar 32 × 24 bytes. Los juegos en otros [[ordenador doméstico|ordenadores domésticos]] como el Commodore 64 también trabajan con una base de caracteres. Los gráficos debían prepararse de tal manera que los bordes del área de 8×8 pixels no fueran demasiado evidentes, un arte donde [[Konami]] es especialmente conocida por su excelencia.&lt;br /&gt;
&lt;br /&gt;
Este es el reto del Mode 2 del TMS9918 : cada área de 8×1 pixels tiene dos colores, primer plano y fondo. Ambos pueden ser libremente elegidos de los 16 de la paleta de colores. Pero dentro de cada zona de 8×1 pixels, sólo pueden existir 2 colores diferentes. Cuando se manipula la pantalla en [[BASIC]] con el comando LINE, es fácil superar el límite de dos colores por cada área de 8×1 pixels y provocar un &amp;quot;[[colisión de atributos|derrame de colores]]&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
En comparación, el [[Commodore 64]] tiene un límite de 4 colores por área de 4×8 pixels. Esto significa que hay menos restricciones de color local, pero más globales: en realidad, sólo tres de los 4 colores pueden elegirse libremente de los 16, el otro color tiene que ser el mismo en toda la pantalla. Ese color puede ser redefinido para cada línea de barrido de pantalla con resultados diversos.&lt;br /&gt;
&lt;br /&gt;
El TMS9918 no tiene registros de scroll. El desplazamiento debe implementarse por software.&lt;br /&gt;
&lt;br /&gt;
==Trucos usados en juegos==&lt;br /&gt;
Algunos juegos han tratado de superar el límite del scroll de 8 pixels, desplazando el conjunto de caracteres en sí. Esto es muy lento para ser viable,por lo que el juego rellena el conjunto de caracteress con 8 diferentes versiones de un sólo carácter.&lt;br /&gt;
&lt;br /&gt;
Circus Charlie (MSX) hace scroll horizontal, y cae por ello en el límite del máximo de 2 colores por área de 8×1. Los gráficos fueron  &amp;quot;monochromizados&amp;quot; y eso provoca algunos problems técnicos medio cubiertos con sprites.&lt;br /&gt;
&lt;br /&gt;
Pippols (MSX) hace scroll vertical. Por ello no se ve afectado por el límite del área de 8×1, el jugador puede desplazarse a pie sin problemas a lo largo de las coloridas flores y otros gráficos florales. Sin embargo no son muchos los distintos objetos en pantalla, ya que el conjunto de caracteres se reduce por el factor 8. Pippols parece estar incluso por debajo de ese límite por algún factor.&lt;br /&gt;
&lt;br /&gt;
Cuando se corre a plena velocidad en Road Fighter (MSX, juego de carreras con scroll vertical), la pantalla se mueve 8 pixels por cada frame. Ello se traduce en un buen scroll a pesar de los saltos de 8 pixels. Sin embargo, para muchos juegos de esta velocidad de desplazamiento no es posible.&lt;br /&gt;
&lt;br /&gt;
En Knightmare (MSX), la escena se desplaza verticalmente tan lentamente que los saltos de 8 pixels no molestan demasiado. Zanac tiene un scroll vertical bastante rápido, pero debido a los fondos sencillos con los que nunca colisionas, es una cuestión menor. Es más problemático en Némesis ( juego tipo &amp;quot;[[R-Type]]&amp;quot; de scroll horizontal). On the other hand, the Nemesis 2 backgrounds are really of &amp;quot;16 bit&amp;quot; beauty. Por otra parte, los fondos en Némesis 2 tienen realmente un acabado de &amp;quot;16 bits&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Herramientas actuales==&lt;br /&gt;
Los TMS9918 tienen hoy en día muchos fans que siguen creando y manteniendo herramientas de PC (o sobre Linux) para el diseño de caracteres, sprites y conversión de imágenes en color verdadero a Modo 2. Respecto de esto último, hay que destacar el uso de algoritmos de difuminado (por ejemplo [[Floyd-Steinberg]]), a fin de superar para el problema de [[colisión de atributos]] y las limitaciones de la paleta fija.&lt;br /&gt;
&lt;br /&gt;
Se pueden encontrar herramientas implementando difuminado en conversión a Modo 2 en: &lt;br /&gt;
*[http://msx.jannone.org/conv/ Conversor online a Modo 2]&lt;br /&gt;
*[http://www.msx.org/modules.php?op=modload&amp;amp;name=Downloads&amp;amp;file=index&amp;amp;req=visit&amp;amp;lid=859 Conversor a Modo 2 y fuentes en C]&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Chips de gráficos]]&lt;br /&gt;
&amp;lt;!---&lt;br /&gt;
[[Category:TI-99/4A]]&lt;br /&gt;
[[Category:MSX]]&lt;br /&gt;
---&amp;gt;&lt;br /&gt;
[[ja:TMS9918]]&lt;br /&gt;
[[en:Texas Instruments TMS9918]]&lt;/div&gt;</summary>
		<author><name>Museo8bits</name></author>
	</entry>
</feed>