El puerto joystick de Atari es un puerto de computadora utilizado para conectar varios controladores de juegos a consolas de juegos y sistemas de computadoras hogareñas entre los años 1970 y 1990. Se introdujo originalmente en el Atari 2600 en 1977 y luego se usó en el Atari 400 y 800 en 1979. Se volvió multiplataforma con el VIC-20 en 1981, y luego se usó en muchas máquinas posteriores de ambas compañías, así como en una lista creciente de máquinas de terceros como la plataforma MSX y varias consolas Sega .
El puerto, basado en el económico conector D de 9 pines , se convirtió en un estándar de facto durante la década de 1980 y la de 1990, compatible con una amplia variedad de joysticks y otros dispositivos, más comúnmente controladores de paleta , lápices ópticos y ratones de computadora . El estándar estaba tan arraigado que dio lugar a dispositivos como la interfaz Kempston que permitió que los joysticks Atari se usaran en el ZX Spectrum . El puerto también se usó para todo tipo de funciones no relacionadas con los juegos, incluida la interfaz AtariLab , módems , teclados numéricos e incluso una tarjeta de expansión de video.
A mediados de los años 90, los últimos modelos de ordenadores domésticos y consolas de juegos que utilizaban puertos Atari (a menudo para joystick y ratón) dejaron de fabricarse. Los ordenadores compatibles con IBM PC, que no tenían puertos para joystick Atari, se convirtieron en dominantes en el mercado de ordenadores domésticos, y los fabricantes de consolas como Sega empezaron a utilizar otros tipos de puertos.
El Atari Video Computer System (posteriormente el 2600) se desarrolló a partir de un esfuerzo por abordar los problemas que Atari encontró al lanzar su primera consola de videojuegos para el hogar, Pong . Aunque tuvo éxito, Pong era un sistema costoso de diseñar y estaba dedicado únicamente a un juego. Sería mucho más práctico tener una máquina que pudiera ejecutar varios juegos. La lista de juegos que necesitaría soportar incluía variaciones de Pong y Tank . [1] Fue el deseo de ejecutar estos dos juegos lo que llevó a la necesidad de algún tipo de sistema de entrada flexible; Pong usaba controladores de paletas analógicos, mientras que Tank usaba joysticks digitales duales (encendido/apagado). Los juegos de arcade de la época generalmente usaban paletas, joysticks o un tipo único de controlador de volante que giraba, completamente diferente a un automóvil real. [1]
El desarrollo del 2600 fue estrictamente un proyecto en papel hasta septiembre de 1975, cuando se lanzó el procesador MOS Technology 6502. El 6502 ofrecía las combinaciones adecuadas de características, rendimiento y precio que hicieron que una consola que usara cartuchos ROM para almacenar programas fuera práctica por primera vez. Ahora que una máquina de este tipo parecía una posibilidad real, el equipo de diseño de Cyan Engineering comenzó a desarrollarla en serio. [2]
Como parte de este esfuerzo, Joe Decuir comenzó a desarrollar un sistema de E/S basado principalmente en la tecnología MOS 6532 , que incluía puertos de E/S de 8 bits, así como el hardware necesario para controlar la actualización de la memoria y tareas de mantenimiento similares. Finalmente, el diseño utilizó cinco de los puertos de E/S (pines) para controlar los diversos interruptores del panel frontal y cuatro para cada uno de los dos controladores. Además, el TIA , cuya tarea principal era el sonido y el vídeo, se utilizó para manejar controladores basados en tiempo como paletas y lápices ópticos. La interfaz física era el conector D-sub de 9 pines, que ya era relativamente común para los puertos serie de recuento de pines reducido en las máquinas de bus Apple II y S-100 . Cada uno de los pines del conector iba directamente al pin apropiado en el chip asociado. [3]
El 2600 se lanzó en 1977, con los controladores de paleta y un solo joystick. El puerto permitió que el 2600 admitiera más fácilmente una variedad más amplia de juegos, no solo juegos específicos sino géneros completos. La mayoría de las consolas de juegos anteriores a Atari tenían controladores de paleta, incluso desmontables en el caso de Fairchild Channel F y Magnavox Odyssey . Pero el joystick era nuevo y rápidamente cosechó elogios, ya que permitía la entrada directa en una serie de juegos que de otro modo serían difíciles de controlar con una paleta. [4] El joystick ha sido llamado "el pináculo de los controladores de entretenimiento doméstico en su época". [5]
Tras el lanzamiento del 2600, el equipo de Cyan se dedicó inmediatamente al desarrollo de su sustituto, [nota 1] con la vista puesta en el marco temporal de 1979. [6] Como el "estándar" ya estaba establecido en el 2600, las nuevas máquinas utilizaban naturalmente la misma interfaz de controlador, aunque los detalles de los sistemas utilizados para leerla cambiaban. A medida que se acercaba 1979, surgió el mercado de los ordenadores domésticos y Atari reposicionó el nuevo sistema como los ordenadores domésticos Atari 400 y 800. Esto significó que el estándar ahora cruzaba la línea entre las consolas y los ordenadores. [7]
El diseño del puerto era extremadamente flexible y, con el tiempo, no solo se admitieron una amplia variedad de dispositivos de entrada, sino también de salida. Entre los dispositivos no controladores se encontraba el sistema AtariLab , que permitía a los usuarios conectar varios dispositivos de laboratorio, como termómetros digitales [8] , el módem MPP-1000C de 300 baudios [9] e incluso el propio adaptador de 80 columnas de Atari para la serie de 8 bits, el XEP80 [10] . Se utilizó ampliamente en el mercado de productos caseros como un dispositivo de entrada liviano y eran comunes los artículos sobre cómo construir varios adaptadores [11] .
Commodore incluyó un puerto para joystick Atari con el ordenador VIC-20 . [12] Atari tenía patentes sobre el joystick y ganó una orden judicial contra Commodore, que produjo un joystick "de imitación" casi idéntico para el VIC-20, [13] pero no tenía patentes sobre el puerto en sí. Cuando Commodore comenzó a desarrollar el VIC-20, millones de controladores compatibles con el puerto ya estaban en el mercado.
El puerto para joystick de Atari proliferó rápidamente en toda la industria. Con el tiempo, aparecieron cientos de nuevos dispositivos que utilizaban el sistema, incluidos trackballs y otras entradas avanzadas. [14] [15] [16] El estándar se volvió tan ampliamente utilizado que casi todas las máquinas de 8 bits lanzadas después de 1982 lo usaban, y había adaptadores disponibles para las que no lo hacían, como Apple II y ZX Spectrum . [17] [18] [19] Un revendedor de TI-99/4A informó que su producto más vendido era el adaptador para joystick de Atari. [20] El puerto se trasladó también a máquinas de 16/32 bits como Atari ST y Amiga . [21]
La introducción del Nintendo Entertainment System fue el primer ejemplo generalizado de un sistema de juegos en esa época que no utilizaba el diseño de Atari, ya que su D-pad había sido diseñado específicamente para ser menos voluminoso. [22] A medida que se lanzaban consolas más nuevas al mercado recientemente revitalizado, se introdujeron nuevos diseños de puerto para cada modelo diferente. Mientras tanto, el IBM PC había introducido el puerto de juego de 15 pines que fue diseñado principalmente para entradas analógicas, pero su uso siguió siendo poco común hasta la introducción de los populares simuladores de vuelo . [23]
A mediados de la década de 1990, el estándar Atari se estaba volviendo obsoleto cuando las computadoras hogareñas como Atari ST y Amiga salieron del mercado junto con la consola de juegos Sega Genesis. Con el Atari STE, Atari introdujo el puerto de joystick mejorado (dsub de 15 pines) junto con los 2 puertos de joystick del Atari ST, y cuando se lanzó el Jaguar , solo usaron el puerto de joystick mejorado. [24] Sin embargo, fue tan popular durante su ejecución que sigue siendo un elemento básico común en la iconografía de los videojuegos hasta el día de hoy, [25] y se lo conoce comúnmente como el símbolo del sistema de videojuegos de la década de 1980 y el diseño del sistema. [26] También ha habido numerosos sistemas para permitir que los puertos se adapten al bus serie universal , e incluso diseños de joystick completamente nuevos similares a Atari que usan USB. [27]
El puerto para joystick de Atari utilizaba un conector macho de 9 pines en el sistema anfitrión y conectores hembra en los dispositivos. Los periféricos clásicos de Atari utilizaban un conector redondeado con forma de lágrima que era fácil de agarrar para facilitar su conexión. Casi todos los dispositivos compatibles utilizaban diseños físicos similares, a menudo hasta el punto de copiar el diseño del conector directamente.
En las consolas Atari y los ordenadores de 8 bits, la lectura de las entradas de los dispositivos se realizaba mediante un proceso de sondeo que establecía valores en varios registros de 8 bits. En las máquinas de 8 bits, por ejemplo, los pines del puerto estaban conectados a hardware de E/S personalizado. Los valores instantáneos se sondeaban 30 veces por segundo durante la interrupción vertical en blanco (VBI) cuando el sistema operativo (OS) se encargaba de una serie de tareas de mantenimiento. Dependiendo de la configuración de otros registros, las entradas de los pines se interpretaban de varias maneras y luego los datos de salida se colocaban en una serie de registros de RAM . Atari se refería a esta copia del hardware a la RAM como "shadowing" [28] .
Los joysticks de Atari incluían cuatro interruptores internos para codificar la dirección y un quinto para el botón de disparo. Cada uno de ellos conducía directamente a un pin del puerto y, desde allí, a una entrada en uno de los chips de E/S. El sistema operativo leía estas entradas en cada VBI y luego copiaba su estado en los registros de sombra, con los puertos de menor numeración en los bits menos significativos. Por ejemplo, si se empujaba el joystick 0 hacia arriba y hacia la derecha, el PORTA
registro tendría los bits 0 y 3 configurados, o el valor decimal 9. El estado de cada uno de los botones de disparo del joystick se colocaba en cuatro registros separados, cuyo bit cero se configuraba en 1 si se presionaba el disparador. [29]
Los juegos de conducción de la década de 1980 eran generalmente de arriba hacia abajo y utilizaban un controlador único que hacía que el coche girara a una velocidad fija hacia un lado o hacia el otro o fuera en línea recta ( Night Driver de Atari es una notable excepción). Estos juegos no se controlaban con un volante que apuntaba a la izquierda o la derecha como en un coche real, sino con un volante que enviaba comandos de izquierda o derecha solo si estaba girando activamente en esa dirección. Los jugadores giraban el volante rápidamente para hacer que el coche girara lo más rápido posible en la dirección deseada y luego frenaban el volante con las manos para volver a ir en línea recta. [30]
Los controladores de conducción se implementaron en las consolas Atari con un dispositivo que funcionaba de la misma manera que los joysticks, presionando cada interruptor direccional por turno mientras giraba. Los programas tenían que observar la secuencia de bits en los registros de sombra para saber si el controlador giraba hacia la derecha o hacia la izquierda. El sistema operativo en sí no intentaba interpretar esto para proporcionar instrucciones de "derecha" e "izquierda" para el programador. [31]
Las palancas son dispositivos analógicos que se utilizan normalmente para controlar la posición horizontal del jugador en la pantalla. En los sistemas Atari, las palancas se conectaban en pares, lo que permitía que hasta cuatro personas jugaran juntas en un sistema de dos puertos.
Las paletas funcionaban conectando la línea de +5 V a través de un potenciómetro y luego de vuelta a los pines 5 y 9, uno para cada paleta del par. Esos pines estaban conectados a un condensador , cargándolo lentamente a una velocidad establecida por la posición del potenciómetro. Cuando el voltaje en el condensador alcanzaba un valor umbral, causaba una interrupción en el sistema operativo que copiaba el valor del reloj de color del hardware de video. Normalmente, esto producía un valor de 0 a 228 que se almacenaba como un valor de 8 bits en el POT
registro de sombra apropiado. [32]
Una ventaja de este sistema era que los valores del reloj de color proporcionados por los controladores de paletas eran los mismos números que controlaban la ubicación horizontal de los sprites , lo que significa que el programador podía simplemente copiar el valor del registro de sombra del pote en el registro de posición horizontal del sprite y aparecería en la ubicación apropiada en la pantalla. [32]
Los controladores de teclado se usaban en los sistemas Atari como entradas auxiliares, para teclados numéricos en las máquinas de 8 bits y controladores de propósito especial en el 2600, como el puerto Star Raiders . Se basaban en una matriz de 4 por 3 para un total de 12 teclas posibles. Para cada pulsación de tecla, la fila se codificaba configurando uno de los cuatro bits en el registro de sombra del joystick, PORTA
o PORTB
, mientras que la columna configuraba un bit en uno de los registros de activación. El programador luego tenía que leer ambos para determinar qué tecla se presionaba; no había firmware para asignar esto a los códigos de tecla (de lo que el 2600 carecía de todos modos). [33]
También se admitían directamente los lápices ópticos. En este caso, se conectaba un fototransistor del lápiz óptico a la línea de activación del puerto. Si se colocaba en modo lápiz óptico, cada vez que se veía que el disparador bajaba, el sistema operativo copiaba el valor del reloj de color en el PENH
registro para registrar la posición horizontal, y el VCOUNT
registro del hardware de vídeo en el PENV
registro. El resultado era un conjunto de dos valores de ocho bits que codificaban directamente la posición del lápiz en X e Y utilizando las mismas coordenadas que el hardware de vídeo. A continuación, se puede configurar un sprite con esas coordenadas y aparecerá debajo del lápiz óptico. Como los temporizadores no eran muy precisos, las posiciones debían promediarse en varias pantallas para producir un valor utilizable. [34]
Las tabletas gráficas se manejaban utilizando el mismo hardware que los controladores de paletas, codificando el eje X como la salida de una paleta y el eje Y como la otra. Había tres botones, uno en el lápiz y uno en cada esquina superior del pad. El botón del lápiz estaba conectado a la dirección hacia arriba del puerto del joystick, mientras que los botones izquierdo y derecho de la propia tableta estaban conectados a dos de las entradas del disparador. [35]
Debido a que los pines del joystick estaban conectados directamente a los controladores de entrada/salida de la placa base , era posible programarlos para que enviaran salida al puerto, en lugar de entrada. Esta capacidad se utilizó en la tarjeta Atari XEP80 de 80 columnas, que usaba el pin 1 como pin de salida y el pin 2 como entrada. Un controlador de dispositivo usaba estos pines para implementar un puerto serie bidireccional , que funcionaba en el puerto 1 o 2 del joystick. [36] Otros dispositivos, como los módems, usaban controladores similares, lo que evitaba la necesidad de usar el sistema SIO de Atari , que era más costoso. [37]
El VIC-20 tiene un puerto de control y el Commodore 64 tiene dos puertos, cada uno de ellos una implementación completa del estándar Atari. Se diferenciaban de los sistemas Atari principalmente en el hardware utilizado para decodificar las entradas.
Los pines digitales de los puertos de control del Commodore 64 eran leídos por un chip CIA de MOS Technology , y las entradas analógicas de paletas, de manera similar a la del Atari, por el chip de sonido SID de MOS Technology junto con un temporizador. [38] Solo había un conjunto de dos entradas para este propósito en el SID, por lo que otro registro controlaba cuál de los dos puertos estaba conectado al SID en un instante determinado. Los lápices ópticos solo se podían usar en el puerto de control 1 y funcionaban de manera similar al Atari, pero se basaban en un reloj más rápido, por lo que el eje horizontal leía de 0 a 511. Sin embargo, la precisión era la misma que la del Atari, ya que los valores se redondeaban solo a valores pares. [39]
Los mismos pines del puerto del CIA #1 también se usaban para manejar el teclado y otras tareas de mantenimiento, lo que generaba algunos problemas. Por ejemplo, el interruptor de dirección izquierda del Puerto de Control 1 estaba conectado a la misma entrada que la CTRLtecla del teclado, y cuando se usaba causaba que el desplazamiento en los programas BASIC se ralentizara. Debido a la forma en que se manejaba el escaneo del teclado, mantener presionado el disparador causaba que se generaran caracteres aleatorios. Como resultado, muchos juegos de C64 requerían que el joystick estuviera conectado al Puerto de Control 2. [40] [41]
En el Atari ST , los dos puertos se configuraban normalmente con el puerto 0 configurado para el modo ratón y el puerto 1 para el joystick. En el modo joystick funcionaban de forma prácticamente idéntica a las máquinas anteriores, pero en el modo ratón el sistema vigilaba los puertos en busca de entradas discretas en los distintos pines direccionales, o "eventos". El sensor del ratón generaba 200 eventos por cada pulgada de movimiento, y el sistema podía rastrearlos lo suficientemente rápido como para manejar movimientos de hasta 10 pulgadas por segundo. [42] El manejo de los puertos, el teclado y un reloj en tiempo real estaba a cargo de un controlador de teclado inteligente (ikbd) dedicado. [43] La implementación ST del puerto joystick carecía de entrada analógica, el siguiente modelo STE introdujo un puerto joystick mejorado que utilizaba un dsub de 15 pines que tenía soporte analógico.
El Commodore Amiga tenía una implementación completa de dos puertos, conocida como gameports . A diferencia de los sistemas anteriores que debían interpretarse examinando bits en registros, el sistema operativo del Amiga tenía una serie de controladores y bibliotecas que simplificaban la interacción. Esto incluía controladores para cinco tipos de dispositivos de entrada, incluidos ratones, joysticks, lápices ópticos y "controladores proporcionales" como un cajón de sastre para entradas analógicas como paletas y joysticks analógicos. También tenían configuraciones para cómo y cuándo el sistema operativo informaría los cambios. Por ejemplo, el programador podía configurar los controladores para que solo informaran cuando el ratón se hubiera movido al menos 10 eventos, lo que reducía la frecuencia con la que tenían que lidiar con el movimiento del ratón. [44]
La serie de ordenadores domésticos TI-99/4A utilizaba un conector de 9 pines que era físicamente idéntico a la versión Atari, además de ser similar en términos de los dispositivos y la forma en que funcionaban. Sin embargo, los pines del puerto se reorganizaron y utilizaba las tomas de tierra independientes para seleccionar qué joystick leer, por lo que no era directamente compatible. Los convertidores que permitían conectar dispositivos estándar de Atari eran simples y muy comunes. [45] El fabricante y la mayoría de los fabricantes de adaptadores incluyeron diodos en todas las líneas de cada joystick, excepto en las tomas de tierra, para evitar pulsaciones de teclas falsas. [46] [47]
La consola de juegos ColecoVision amplió el controlador 2600 con dos (o cuatro) gatillos y un teclado numérico de 12 teclas. La ColecoVision también admitía controladores de conducción y trackballs . Muchos juegos de ColecoVision se pueden jugar con un controlador compatible con Atari, si se conecta un controlador Coleco al segundo puerto y se usa para seleccionar el juego.
La consola de juegos Atari 7800 amplió el controlador 2600 con un segundo disparador. Los juegos 7800 que no requieren dos disparadores se pueden jugar con controladores clásicos.
Los ordenadores domésticos MSX utilizaban una versión ligeramente modificada del puerto, sustituyendo una de las entradas analógicas por un segundo disparador y la otra por un pin estroboscópico . En condiciones normales de funcionamiento, se podía utilizar cualquier joystick de estilo Atari, aunque carecía del segundo botón disparador. El pin estroboscópico se utilizaba para admitir la entrada del ratón. Eléctricamente, un ratón genera lo que es esencialmente un flujo aleatorio de pulsos a medida que se mueve. En sistemas como el ST y el Amiga, se utilizaba hardware personalizado para rastrearlos cuidadosamente para que el movimiento se pudiera seguir sin problemas, ya que la CPU podía estar demasiado ocupada con otras tareas como para seguir las interrupciones rápidas. Los diseños de 8 bits menos potentes no tenían el rendimiento necesario para rastrear sin problemas un ratón sin hardware adicional, y los diseños MSX, basados en hardware estándar, carecían de esta capacidad. En su lugar, el hardware de seguimiento se trasladó al ratón. Los ratones conservaban dos valores de 8 bits que rastreaban el movimiento en X e Y desde la última vez que habían sido sondeados. Para leer los valores, el pin estroboscópico se elevaba cuatro veces. Con cada pulso, se emitía un fragmento de los dos bytes en los cuatro pines direccionales en forma serial. El pulso estroboscópico también restablecía el valor a cero, iniciando nuevamente el proceso de sondeo. Los ratones MSX eran caros, y esto llevó a la creación de adaptadores para ratones de estilo PS/2, que funcionaban según principios similares. [48]
Los controladores de las consolas de juegos Sega Master System y Genesis son compatibles con versiones anteriores y se pueden utilizar con Atari 2600.
No todos los sistemas Magnavox Odyssey 2 tenían controladores extraíbles. En los modelos que sí los tienen, basta con un simple adaptador para reorganizar los pines. [49]
Algunas PC Amstrad , que eran compatibles con IBM PC , tenían puertos de juegos digitales compatibles con Atari en lugar del estándar analógico de PC . Software como Elite y GEM tenían soporte para el puerto de juegos digital de Amstrad. De lo contrario, las direcciones del joystick se asignaban a las teclas del teclado. [50]
El Apple II también tenía un puerto para joystick que utilizaba un D-sub de 9 pines, pero era un sistema muy diferente que conectaba dos joysticks analógicos a un solo puerto. Estos no eran muy adecuados para juegos direccionales, y los adaptadores para dispositivos de puerto Atari eran comunes, tanto los comerciales como el Sirius Joyport , así como muchos sistemas caseros. A diferencia de los puertos utilizados en los sistemas Commodore, la mayoría de los sistemas caseros solo adaptaban el joystick, y generalmente no incluían las otras entradas. Estos adaptadores no permitían utilizar las entradas analógicas de las paletas, a pesar de que el puerto ya manejaba estas entradas directamente, lo que significaba que todo lo que se necesitaba era un adaptador mecánico. [51] [52]
El ZX Spectrum anterior al Spectrum +2 no tenía puerto de controlador incorporado, lo que dio lugar a una profusión de diferentes entradas. Los adaptadores de puerto Atari eran comunes y surgieron varios dispositivos, incluidos Kempston Interface y ZX Interface 2, que eran incompatibles entre sí. Interface 2 convirtió las pulsaciones del joystick en pulsaciones del teclado [53] y, por lo tanto, no podía generar las señales analógicas de las paletas. Los modelos Spectrum posteriores fabricados por Amstrad (el +2, +2A y +3) incluían dos puertos de joystick incorporados, sin embargo, la distribución de pines de los conectores no era estándar. Los joysticks Atari de un botón se pueden usar con un simple adaptador de cableado para convertir los puertos a la distribución de pines estándar.
El BBC Micro tenía un sistema de puertos relativamente complejo que se basaba en un conector D de 15 pines que admitía dos joysticks analógicos como los del Apple II. Estos se conectaban a un circuito analógico-digital dedicado, lo que los hacía excelentes para el tipo de tareas de interconexión que se ven en (por ejemplo) AtariLab . Sin embargo, la popularidad del puerto Atari fue tal que también había adaptadores disponibles para este sistema, que variaban ampliamente en la cantidad y los tipos de dispositivos de control que admitían. [54]
{{cite web}}
: CS1 maint: nombres numéricos: lista de autores ( enlace )