El puerto de joystick Atari es un puerto de computadora utilizado para conectar varios controladores de juegos a consolas de juegos y sistemas informáticos domésticos 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 de las siguientes máquinas de ambas compañías, así como en una lista cada vez mayor 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 los años 1980 y 1990, soportado por 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 permitía utilizar joysticks Atari en el ZX Spectrum . El puerto también se utilizó 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 la década de 1990, se descontinuaron los últimos modelos de computadoras domésticas y consolas de juegos que usaban puertos Atari (a menudo tanto para joystick como para mouse). Las computadoras compatibles con IBM PC, que no tenían puertos para joystick Atari, se volvieron dominantes en el mercado de computadoras domésticas y los fabricantes de consolas como Sega cambiaron a otros tipos de puertos.
El Atari Video Computer System (más tarde el 2600) se desarrolló a partir de un esfuerzo por abordar los problemas que encontró Atari al lanzar su primera consola de videojuegos doméstica, 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 admitir 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 usó controladores de paleta analógicos, mientras que Tank usó joysticks digitales duales (encendido/apagado). Los juegos arcade de la época generalmente usaban paletas, joysticks o un tipo único de controlador en el 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 . La 6502 ofrecía las combinaciones adecuadas de características, rendimiento y precio que hicieron que una consola que utilizara cartuchos ROM para almacenamiento de programas fuera práctica por primera vez. Ahora que una máquina así parecía una posibilidad real, el equipo de diseño de Cyan Engineering comenzó un desarrollo 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 domésticas similares. En última instancia, el diseño utilizó cinco de los puertos de E/S (pines) para controlar los distintos conmutadores 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 el tiempo, como paletas y bolígrafos luminosos. La interfaz física era el conector D-sub de 9 pines, que ya era relativamente común para los puertos serie con número reducido de pines en las máquinas con bus Apple II y S-100 . Cada uno de los pines del conector iba directamente al pin apropiado del chip asociado. [3]
El 2600 se lanzó en 1977 y se envió con 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 obtuvo elogios porque 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]
Después del lanzamiento del 2600, el equipo de Cyan inmediatamente se dedicó al desarrollo de su reemplazo, [nota 1] apuntando al período de 1979. [6] Como el "estándar" ya estaba establecido en el 2600, las nuevas máquinas naturalmente usaron la misma interfaz de controlador, aunque los detalles de los sistemas utilizados para leerlo cambiaron. A medida que se acercaba 1979 surgió el mercado de ordenadores domésticos , y Atari reposicionó los nuevos sistemas como el 400 y el 800, los primeros miembros de la familia Atari de 8 bits . Esto significó que el estándar ahora cruzó la línea entre consolas y computadoras. [7]
El diseño del puerto era extremadamente flexible y, con el tiempo, apareció no solo una amplia variedad de dispositivos de entrada, sino también de salida. Entre los dispositivos que no eran 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 el 8- serie de bits, el XEP80. [10] Fue ampliamente utilizado en el mercado de la cerveza casera como un dispositivo de entrada liviano, y los artículos sobre cómo construir varios adaptadores eran comunes. [11]
Commodore incluyó un puerto de joystick Atari con la computadora 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ó el desarrollo del VIC-20, había en el mercado millones de controladores compatibles con el puerto.
El puerto para joystick de Atari proliferó rápidamente en toda la industria. Con el tiempo surgieron cientos de nuevos dispositivos que usaban el sistema, incluidos trackballs y otras entradas avanzadas. [14] [15] [16] El estándar se usó tan ampliamente que casi todas las máquinas de 8 bits lanzadas después de 1982 lo usaron, y había adaptadores disponibles para aquellas 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 de joystick Atari. [20] El port también se trasladó 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 juego en esa época que no usaba el diseño de Atari, ya que su D-pad fue diseñado específicamente para ser menos voluminoso. [22] A medida que se lanzaron consolas más nuevas al mercado recientemente revitalizado, se introdujeron nuevos diseños de puertos para cada modelo diferente. Mientras tanto, 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 domésticas como Atari ST y Amiga salieron del mercado junto con la consola de juegos Sega Genesis. Con el Atari STE, Atari introdujo el puerto para joystick mejorado (dsub de 15 pines) junto con los 2 puertos para joystick del Atari ST, y cuando se lanzó el Jaguar , solo usaron el puerto para 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 comúnmente se lo conoce como el símbolo del sistema y el diseño del sistema de videojuegos de la década de 1980. [26] También ha habido numerosos sistemas que permiten que los puertos se adapten al Universal Serial Bus , e incluso diseños de joystick completamente nuevos tipo Atari que utilizan USB. [27]
El puerto del joystick Atari utilizaba un conector macho de 9 pines en el sistema host y conectores hembra en los dispositivos. Los periféricos clásicos de Atari utilizaban un enchufe redondeado en forma de lágrima que era fácil de agarrar para facilitar la conexión. Casi todos los dispositivos compatibles utilizaban diseños físicos similares, a menudo hasta el punto de copiar el diseño del enchufe por completo.
En las consolas Atari y las computadoras de 8 bits, la lectura de las entradas del dispositivo 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 sondearon 30 veces por segundo durante la interrupción vertical en blanco (VBI) cuando el sistema operativo (OS) manejaba una serie de tareas domésticas. Dependiendo de la configuración de otros registros, las entradas en los pines se interpretaban de varias maneras y luego los datos de salida se colocaban en varios registros de RAM . Atari se refirió a esta copia del hardware a la RAM como "sombreado". [28]
Los joysticks Atari incluían cuatro interruptores internos para codificar la dirección y un quinto para el botón de disparo. Cada uno de estos conducía directamente a un pin en el puerto y desde allí a una entrada en uno de los chips de E/S. El sistema operativo leería estas entradas en cada VBI y luego copiaría su estado en los registros ocultos, con los puertos con números más bajos en los bits menos significativos. Por ejemplo, si se empujaba la palanca 0 hacia arriba y hacia la derecha, el PORTA
registro tendría los bits 0 y 3 configurados, o el valor decimal 9. En cambio, el estado de cada uno de los botones de activación del joystick se colocaba en cuatro registros separados, cuyo cero- El bit se establecería en 1 si se presionara el gatillo. [29]
Los juegos de conducción de la década de 1980 eran generalmente de arriba hacia abajo y usaban un controlador único que hacía que el automóvil girara a un ritmo fijo hacia un lado o hacia el otro o iba en línea recta ( Night Driver de Atari es una excepción notable). Estos juegos no estaban controlados por una rueda que apuntaba hacia la izquierda o hacia la derecha como en un automóvil real, sino por una rueda que enviaba comandos hacia la izquierda o hacia la derecha solo si giraba activamente en esa dirección. Los jugadores giraban el volante rápidamente para que el auto girara lo más rápido posible en la dirección deseada y luego frenaban el volante con las manos para volver a ir recto. [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 estaba girando hacia la derecha o hacia la izquierda. El sistema operativo en sí no intentó interpretar esto para proporcionar instrucciones "derecha" e "izquierda" al programador. [31]
Las paletas son dispositivos analógicos que normalmente se utilizan para controlar la posición horizontal del jugador en la pantalla. En los sistemas Atari, las palas estaban conectadas en pares, lo que permitía que hasta cuatro personas jugaran juntas en un sistema de dos puertos.
Las paletas funcionaron conectando la línea de +5 V a través de un potenciómetro (pot) y luego nuevamente a los pines 5 y 9, uno para cada paleta del par. Esos pines estaban conectados a un condensador , cargándolo lentamente a un ritmo determinado por la posición del potenciómetro. Cuando el voltaje en el capacitor alcanzó un valor umbral, causó una interrupción en el sistema operativo que copió 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 paleta 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 potenciómetro en el registro de posición horizontal del sprite y aparecerá en la ubicación adecuada de la pantalla. [32]
Los controladores de teclado se utilizaron 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 basaron en una matriz de 4 por 3 para un total de 12 claves posibles. Para cualquier 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. Luego, el programador tuvo que leer ambos para determinar qué tecla se presionó; no había firmware para asignar esto a códigos clave (que de todos modos carecía el 2600). [33]
Los bolígrafos luminosos también se apoyaron directamente. En este caso, se conectó un fototransistor en el lápiz óptico a la línea de activación del puerto. Si se coloca en modo de lápiz óptico, cada vez que se ve que el disparador baja, el sistema operativo copiará el valor del reloj de color en el PENH
registro para registrar la posición horizontal y el VCOUNT
registro del hardware de video en el PENV
registro. El resultado fue 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. Luego se puede configurar un objeto en esas coordenadas y aparecerá debajo del lápiz óptico. Como los cronómetros no eran muy precisos, las posiciones tuvieron que promediarse en varias pantallas para producir un valor utilizable. [34]
Las tabletas gráficas se manejaron 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 otro en cada esquina superior del teclado. El botón del lápiz óptico estaba conectado a la dirección superior del puerto del joystick, mientras que los botones izquierdo y derecho de la 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 salieran al puerto, en lugar de entrar. 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 usó estos pines para implementar un puerto serie bidireccional , que funcionaba en el puerto 1 o 2 del joystick. [36] Otros dispositivos, como módems, utilizaron controladores similares, lo que evitó la necesidad de usar el sistema Atari SIO , más costoso . [37]
El VIC-20 tiene un puerto de control y el Commodore 64 tenía dos puertos, cada uno de los cuales era 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 en los puertos de control del Commodore 64 fueron leídos por un chip CIA de MOS Technology , y las entradas de paleta analógicas de manera similar al Atari por el chip de sonido SID de MOS Technology junto con un temporizador.[38] Sólo 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 dado. Los bolígrafos luminosos 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 redondearon solo a valores pares. [39]
Los mismos pines del puerto del CIA #1 también se usaron para manejar el teclado y otras tareas domésticas, lo que generó algunos problemas. Por ejemplo, el interruptor de dirección izquierdo del puerto de control 1 estaba conectado a la misma entrada que la CTRLtecla del teclado y, cuando se usaba, hacía que el desplazamiento en los programas BÁSICOS se ralentizara. Debido a la forma en que se manejó el escaneo del teclado, mantener presionado el gatillo provocaría que se generaran caracteres aleatorios. Como resultado, muchos juegos C64 requerían que el joystick estuviera conectado al puerto de control 2. [40] [41]
En el Atari ST , los dos puertos normalmente estaban configurados con el Puerto 0 configurado en modo mouse y el Puerto 1 en joystick. En el modo joystick, funcionaban de manera prácticamente idéntica a las máquinas anteriores, pero en el modo mouse, el sistema observaba los puertos en busca de entradas discretas en los distintos pines direccionales o "eventos". El sensor del mouse generó 200 eventos por cada centímetro 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 era un controlador de teclado inteligente (ikbd) dedicado. [43] La implementación ST del puerto de joystick carecía de entrada analógica, el siguiente modelo STE introdujo un puerto de 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 gameport s. A diferencia de los sistemas anteriores que tenían que interpretarse examinando bits en los 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 todo para entradas analógicas como paletas y joysticks analógicos. También tenían configuraciones sobre cómo y cuándo el sistema operativo informaría cambios. Por ejemplo, el programador podría configurar los controladores para que solo informaran cuando el mouse se hubiera movido al menos 10 eventos, reduciendo así la frecuencia con la que tenían que lidiar con el movimiento del mouse. [44]
La serie de ordenadores domésticos TI-99/4A utilizaba un conector de 9 pines físicamente idéntico a la versión Atari, además de similar en cuanto a los dispositivos y su funcionamiento. Sin embargo, los pines del puerto se reorganizaron y usó bases separadas para seleccionar qué joystick leer, por lo que no era directamente compatible. Los convertidores que permitían conectar dispositivos estándar 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 masas, para evitar pulsaciones falsas de teclas. [46] [47]
La consola de juegos ColecoVision amplió el controlador 2600 con dos (o cuatro) disparadores y un teclado de 12 teclas. 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. Se pueden jugar 7800 juegos que no requieren dos disparadores con controladores clásicos.
Las computadoras domésticas MSX usaron una versión ligeramente modificada del puerto, reemplazando una de las entradas analógicas con un segundo disparador y la otra con un pin estroboscópico . En funcionamiento normal, se podría utilizar cualquier joystick estilo Atari, aunque carecería del segundo botón de disparo. El pin estroboscópico se utilizó para admitir la entrada del mouse. Eléctricamente, un ratón genera lo que es esencialmente un flujo aleatorio de pulsos a medida que se mueve. En sistemas como ST y Amiga, se utilizó hardware personalizado para rastrearlos cuidadosamente a fin de que el movimiento se siguiera sin problemas, ya que la CPU podría estar demasiado ocupada con otras tareas para seguir las rápidas interrupciones. Los diseños de 8 bits menos potentes no tenían el rendimiento para seguir suavemente un mouse sin hardware adicional, y los diseños de MSX, basados en hardware comercial, carecían de esta capacidad. En cambio, el hardware de seguimiento se trasladó al mouse. Los ratones tenían dos valores de 8 bits que rastreaban el movimiento en X e Y desde la última vez que fueron encuestados. Para leer los valores, se jaló hacia arriba el pin de la luz estroboscópica cuatro veces. Con cada pulso, se emitía un fragmento de los dos bytes en los cuatro pines direccionales en serie. El pulso estroboscópico también restablece el valor a cero, iniciando el proceso de sondeo nuevamente. Los ratones MSX eran caros, y esto llevó a la aparición de adaptadores para ratones estilo PS/2, que funcionaban con principios similares. [48]
Los controladores de consola de juegos Sega Master System y Genesis son compatibles con versiones anteriores y se pueden usar con el Atari 2600.
No todos los sistemas Magnavox Odyssey 2 tenían controladores extraíbles. Para los modelos que sí lo hacen, todo lo que se necesita es un adaptador simple para reorganizar las clavijas. [49]
Algunas PC de Amstrad , que por lo demás 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 eran compatibles con el puerto de juegos digital Amstrad. De lo contrario, las direcciones del joystick se asignaron a las teclas del teclado. [50]
El Apple II también tenía un puerto para joystick que usaba 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 con puerto Atari eran comunes, tanto los comerciales como el Sirius Joyport , 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, por lo general, no incluían otras entradas. Estos adaptadores no permitían el uso de 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 un puerto de controlador incorporado, lo que generó una gran cantidad de entradas diferentes. Los adaptadores de puerto Atari eran comunes y surgieron varios dispositivos, incluidos Kempston Interface y ZX Interface 2 , que eran incompatibles entre sí. La Interfaz 2 convirtió las pulsaciones del joystick en pulsaciones del teclado [53] y, por lo tanto, no pudo generar las señales analógicas de las paletas. Los modelos Spectrum posteriores fabricados por Amstrad (el +2, el +2A y el +3) incluían dos puertos para joystick integrados, sin embargo, la distribución de pines de los conectores no era estándar. Los joysticks Atari de un botón se pueden utilizar con un simple adaptador de cableado para convertir los puertos al pinout 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 funcionaban con circuitos dedicados de analógico a digital, lo que los hacía excelentes para el tipo de tareas de interfaz 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 tipos de dispositivos de control que admitían. [54]
{{cite web}}
: Mantenimiento CS1: nombres numéricos: lista de autores ( enlace )