Игровой порт — это порт устройства , который использовался в IBM PC-совместимых и других компьютерных системах на протяжении 1980-х и 1990-х годов. Это был традиционный разъем для входа джойстика , а иногда и MIDI- устройств, пока в конце 1990-х годов он не устарел из-за USB .
Первоначально расположенный на специальной карте расширения Game Control Adaptor , игровой порт позже был интегрирован со звуковыми картами ПК , а еще позже — на материнской плате ПК. При переходе на USB многие устройства ввода использовали игровой порт, а для систем без игрового порта в комплект поставки был включен USB-адаптер.
В то время, когда IBM разрабатывала свой игровой порт, не существовало отраслевого стандарта для портов контроллеров, хотя порт джойстика Atari был близок к этому. Он был представлен в 1977 году вместе с видеокомпьютерной системой Atari , а позже использовался на VIC-20 (1980), Commodore 64 (1982) и Amstrad PC1512 (1986).
В отличие от конструкции IBM, порт Atari в первую очередь был разработан для цифровых входов (включая пару двухосных/четырехконтактных цифровых джойстиков, каждый из которых имел один кнопочный триггер). Его единственные аналоговые соединения были предназначены для манипуляторов [1] — хотя, поскольку на каждый порт было два аналоговых входа, каждый порт теоретически мог поддерживать двухосный аналоговый джойстик, тачпад , трекбол или мышь [1] (некоторые из них были в конечном итоге разработан для систем Atari). [2] [3] [4]
Apple II , [5] BBC Micro , [6] Цветной компьютер TRS-80 , [7] и другие популярные 8-битные машины использовали разные, несовместимые джойстики и порты. Во многих отношениях конструкция IBM была похожа на существующие конструкции или была более продвинутой.
Игровой порт IBM PC впервые появился во время первого запуска оригинального IBM PC в 1981 году в виде дополнительной карты расширения стоимостью 55 долларов США, известной как адаптер управления игрой. [8] [9] Конструкция позволяла использовать четыре аналоговые оси и четыре кнопки на одном порту, что позволяло подключать два джойстика или четыре манипулятора через специальный кабель с Y-образным разветвителем. [10]
Первоначально доступные только как надстройки, занимающие целый слот, [8] игровые порты оставались относительно редкими на заре IBM PC, и в большинстве игр в качестве ввода использовалась клавиатура. IBM не выпустила собственный джойстик для ПК, что не помогло. Самым распространенным доступным устройством был джойстик Kraft , первоначально разработанный для Apple II, но легко адаптированный для IBM путем добавления еще одной кнопки на задней части корпуса. Когда IBM наконец выпустила джойстик для IBM PCjr , это была версия Kraft Stick. Однако он подключался к компьютеру с помощью двух несовместимых 7-контактных разъемов, которые были механически соединены вместе как часть более крупного многоконтактного разъема на задней панели машины. [11] Это устранило необходимость в Y-адаптере. [12] Адаптеры для «цифровых» флешек в стиле Atari также были распространены в ту эпоху. [13]
Игровой порт стал несколько более распространенным в середине 1980-х годов, когда повышение электронной плотности привело к созданию карт расширения с постоянно растущей функциональностью. К 1983 году было обычным явлением видеть карты, сочетающие память, игровые порты, последовательные и параллельные порты и часы реального времени на одной карте расширения. [14] Эпоха комбинированных плат расширения в значительной степени подошла к концу к концу 1980-х годов, поскольку многие отдельные функции, обычно предоставляемые на съемных платах, стали общими функциями самой материнской платы . Игровые порты не всегда входили в этот поддерживаемый набор портов.
Однако в 1989 году с появлением первого Sound Blaster использование игрового порта получило значительный импульс . Поскольку звуковые карты в основном использовались в компьютерных играх, Creative Labs воспользовалась возможностью включить в карту игровой порт, создав игровое решение «все в одном». В то же время они изменили назначение двух резервных контактов порта, 12 и 15, чтобы создать последовательную шину с достаточной производительностью для управления внешним адаптером MIDI- порта. Предыдущие MIDI-системы, такие как MPU-401, использовали свои собственные отдельные карты расширения и сложный внешний адаптер, тогда как Sound Blaster требовался только недорогой адаптер для достижения того же результата. [15] К концу года Sound Blaster стала самой продаваемой картой расширения на ПК, а игровой порт получил широкую программную поддержку.
За исключением ноутбуков, для которых компании выпускали адаптеры джойстиков для параллельных или последовательных портов, для которых требовались специальные программные драйверы [16] , в начале 1990-х годов игровой порт повсеместно поддерживался на звуковых картах [12] и все чаще становился встроенным. в функции материнских плат добавлена собственная поддержка звука. Это оставалось верным на протяжении второй половины 1990-х годов, когда интегрированная поддержка звука в значительной степени вытеснила звуковые карты сторонних производителей. К началу 2000-х годов такая поддержка была настолько широко распространена, что новые звуковые карты начали обходиться без игрового порта, поскольку было очевидно, что машина, на которой они будут использоваться, уже имела такую поддержку, включая MIDI. Каждая карта Sound Blaster, начиная с первой модели до августа 2001 года, включала игровой порт. В 2001 году Sound Blaster Audigy перенесла игровой порт во второй слот расширения, который подключался к разъему на карте. [17] [ круговая ссылка ]
Введение первого стандарта USB в 1996 году было нацелено исключительно на те роли, которые выполняет игровой порт, но первоначально не оказало большого влияния на рынок. Появление iMac , почти полностью основанного на расширении USB, положило начало быстрому распространению USB на рынке. [18] Это привело как к появлению новых игровых устройств, использующих USB, так и к изобилию адаптеров. Например, джойстик Microsoft Precision Pro 1997 года был вновь представлен в версии, в которой использовался разъем игрового порта, но в комплект поставки также входил USB-адаптер. [19] Быстрое распространение USB означало, что это стало излишним, когда в следующем году, в 1998 году, был выпущен Precision Pro 2. К 2000 году игровые порты предназначались исключительно для обратной совместимости с устаревшими устройствами.
Microsoft Windows прекратила поддержку игрового порта в Windows Vista , [20] хотя USB-конвертеры могут служить обходным решением.
Разъем DA-15 игрового порта включает входы для четырех аналоговых каналов и четырех кнопок. Они почти всегда реализовывались в виде двух джойстиков с двумя кнопками каждый, но также можно поддерживать четыре контроллера с одной кнопкой или один геймпад с двумя аналоговыми джойстиками и четырьмя кнопками, используя одни и те же входы. Порт включает в себя резервные контакты, в том числе четыре источника питания +5 В, а также отдельные заземления для большинства кнопок. В большинстве подобных игровых портов, например, в Atari, для всех каналов используется один +5 В и земля. [21]
Игровой порт изначально был установлен на выделенной карте ISA . С начала 1990-х годов, когда игровой порт перешел от выделенных карт расширения к вводу-выводу ПК или звуковым картам , эти разъемы обычно использовались как разъемы для MIDI- инструментов; Чтобы сделать это возможным, два резервных контакта +5 В и GND исходного стандарта были переназначены для входа и выхода MIDI. Для использования игрового порта с MIDI-инструментами требуется отводной кабель с необходимым оборудованием оптоизоляции и совместимыми разъемами - обычно они состоят из вилки и гнезда DA-15 и двух 5-контактных разъемов DIN вилки . Для многих звуковых карт MIDI-возможности игрового порта были основаны на MIDI-интерфейсе Roland MPU-401 (только в режиме UART), однако некоторые старые звуковые карты (особенно оригинальные Sound Blaster и Sound Blaster Pro) использовали собственный интерфейс, который не был совместим с MPU-401. [22]
Аналоговые каналы считываются путем подачи напряжения в линию через потенциометр в контроллере, в данном случае 100 000 Ом, а затем в конденсатор. Значение считывается путем измерения времени, которое потребовалось напряжению на конденсаторе для достижения определенного порога. Скорость варьировалась в зависимости от сопротивления и, следовательно, физического положения потенциометра. В порте Atari, который имел аналогичные аналоговые каналы, имеется удобный таймер в виде схемы видеочасов. В ПК подобных часов нет, поскольку функции видео обычно предоставляются на плате расширения. Вместо этого программная процедура должна сначала вызвать разрядку конденсатора, выдав запрос ввода-вывода на игровой порт, а затем измерить время, необходимое для их повторной зарядки, путем постоянного опроса игрового порта. Используя исходную формулу IBM, время = 24,2 мкс + 0,011 (r) мкс [23] и предполагая потенциометры 100 кОм, этот процесс может занять до 1,1 мс на одно считывание или более 60 мс, если мы решим считывать положение джойстика 60 раз в секунду. Эти значительные накладные расходы стали причиной того, что использование оригинального Gameport на ПК могло занимать до 10% процессорного времени независимо от скорости процессора. [24]
Изначально не существовало стандартизированного программного обеспечения для управления джойстиками; приложения будут опрашивать известные порты, связанные с флешками, в рамках своего игрового цикла. Однако это оставило выполнение множества служебных задач каждому приложению, которое их использовало, например, поиск и перечисление активных устройств, а также их калибровку. Ситуация изменилась в Windows 95 , в которой были представлены стандартизированные записи реестра Windows для хранения этих значений и упрощения поиска этих устройств приложениями. DirectX еще больше расширил возможности DirectInput с помощью «мини-драйвера джойстика» с рядом новых возможностей. Среди них была поддержка до шести аналоговых осей, шляпа точки обзора и до 64 кнопок. Он также поддерживал до 16 таких устройств, которые можно было подключить с помощью любого интерфейса, а не только игрового порта. [25]
Вопрос: Поддерживаются ли порты MIDI/игры в Vista? О: Мы прекратили поддержку этих типов устройств в пользу устройств, подключаемых через USB.
Процессор должен постоянно опрашивать игровой порт, чтобы обнаружить нажатие кнопки или перемещение джойстика. Для опроса может потребоваться до 10 % ресурсов ЦП.