Сегодня многие предпочитают играть в свои любимые игры при помощи джойстиков. Магазины предоставляют достаточно широкий выбор этих устройств, но в данной статье мы поговорим о подключении к компьютеру старых приставочных джойстиков. Их стоимость ничтожно мала, а иногда они даже могут быть совершенно бесплатно откопаны где-нибудь на антресоли. Они вполне удобны для многих компьютерных игр, и просто идеальны для старых добрых приставочных аркад. Единственным недостатком такого решения следует признать сложность подключения приставочного джойстика к ноутбукам или компьютерам, у которых отсутствует параллельный (LPT-)порт, но зачастую даже отсутствие этого порта не останавливает творческих людей: решений хватает, было бы желание.
На территории постсоветского пространства наиболее широкое распространение получили приставки Денди (Nintendo Entertainment System), Супер-Нинтендо (SNES) и Sega Megadrive (Genesis). Поэтому, скорее всего, вы захотите подключить именно «сеговские» или «дендевские» джойстики. Они и привычные, и доступные, их совершенно не жалко отдать на растерзание детям, в общем, – выбор оптимальный.
Подключить такой джойстик к компьютеру через параллельный порт обычно не трудно, однако для этого от вас потребуется немного внимательности и хотя бы минимальный навык владения паяльником. Часто слышал вопрос, нельзя ли подключить приставочный джойстик напрямую к компьютеру, установив лишь специальный драйвер. Действительно, на задней стороне системного блока порою присутствует девятиконтактный разъем последовательного (COM-)порта, по всем параметрам как будто совпадающий с некоторыми типами джойстиков. Но уверяю вас, подключить к нему приставочный джойстик, если и можно, то не намного проще, чем использовать для этого, скажем, Bluetooth или микрофонный вход звуковой карты. Так что паять, хоть и немного, но придется, если только вы не согласитесь лицезреть зачищенные зубами проводки, воткнутые прямо в разъем порта.
Итак, убедитесь, что на вашем компьютере присутствует разъем параллельного порта. Особые приметы: обычно имеет сиреневый цвет, содержит ровно 25 отверстий, расположенных в два ряда, в народе и в мануалах может называться просто: LPT.
Изображения опубликованы в печатном номере!
Если таковой разъем отсутствует снаружи, иногда есть шанс, что производители материнской платы оставили его где-нибудь в южной части материнской платы в виде 25 или 26 штырьков, расположенных в два ряда. В таком случае, хотя это и случается довольно редко, вы можете найти в комплекте материнки планочку для вывода разъема LPT на заднюю панель, или приобрести ее на радио-рынке по очень смешной цене.
Если же LPT-порт отсутствует вообще, то можно приобрести уже не по очень смешной цене, но все равно достаточно недорого, плату расширения с отдельным LPT контроллером – эдакий адаптер PCI - LPT. Бывают такие и для PCI-Express, но те будут стоить уже подороже.
Переходники USB->LPT обычно работают не полноценно, да и, если вы зададитесь целью подключить приставочный джойстик к USB, то проще будет купить или собрать переходник на USB для желаемого джойстика, но это выходит за рамки данной статьи, ввиду иных уровней сложности и/или стоимости.
Итак, будем считать, что параллельный порт у вас уже есть. Что нам понадобится кроме него? В идеале желательно раздобыть ответные разъемы для каждого джойстика и для самого LPT. Штекер LPT без труда можно найти в радио-магазине или на радио-рынке, главное не перепутайте: для переходника вам понадобится разъем типа «папа», то есть со штырьками, а не с отверстиями. Для джойстиков Dendy и Sega обычно подходят стандартные двухрядные девятиконтактные разъемы типа «папа», также разрешается аккуратно выдрать необходимый разъем из нерабочей приставки, но при этом может пострадать эстетическая сторона дизайна будущего переходника.
Провода нам тоже понадобятся. Если будете собирать коротенький переходник без удлинителя, то на все про все вполне хватит и метра тонкого одножильного провода в изоляции. Для переходника-удлинителя понадобится кабель или шлейф из тонких многожильных проводов не более одного метра на каждый джойстик. Слишком большая длина проводов может привести к сбоям в работе джойстиков, так как интерфейс LPT не рассчитан на работу с проводами более трех метров, и уж тем более не рассчитан на питание джойстиков. Поэтому, постарайтесь, чтобы суммарная длина провода от порта до самого джойстика не превышала 1.5-2 метра, иначе ваше устройство может работать неправильно, не работать вообще, или даже вывести из строя порт LPT. Количество проводов в кабеле или шлейфе зависит от подключаемых джойстиков. Для дендевского джойстика хватит пяти проводов, а сеговский переходник нуждается в девяти проводах для каждого джойстика.
Для некоторых схем подключения могут понадобиться диоды для подачи питания на джойстик сразу с нескольких линий порта. Подойдут практически любые диоды малой мощности. Допускается использовать диоды большой мощности, но их просто не удастся компактно разместить внутри корпуса разъема. Оптимальным выбором являются диоды с барьером шоттки, например – 1N5819, или аналогичные – КД923А. Диоды с барьером шоттки имеют минимальное падение напряжения, а значит, обеспечат большее напряжение питания подключенного джойстика.
Пока разогревается ваш паяльник, неплохо было бы пояснить или напомнить вам основные моменты. Все, что вы будете делать, прочитав или не прочитав эту статью, вы делаете на свой страх и риск. Я не несу никакой ответственности за любые последствия и ущерб, нанесенный вам или вашему оборудованию.
Номера контактов обычно подписаны на самих разъемах, однако, если вдруг нумерация отсутствует, вы должны знать, что контакты отсчитываются слева направо на разъемах со штырьками (тип «папа»), но – справа налево на разъемах с гнездами (тип «мама»). Разъем при этом располагается штырьками или гнездами к себе, отсчет начинают с верхнего ряда, который содержит большее число контактов.
Джойстики от Денди (NES) и Супер-Нинтендо (SNES) имеют одинаковый интерфейс и различаются лишь разъемами. На следующем рисунке приведено описание назначения контактов различных разъемов NES и разъема SNES. Разъем повернут отверстиями к себе.
Изображения опубликованы в печатном номере!
Ввиду того, что на разных моделях джойстиков номера контактов различаются, но назначение их остается одним и тем же, схема подключения NES/SNES содержит конкретные номера контактов только для разъема LPT. Номера контактов на штекере джойстика вам придется вычислить самостоятельно, в зависимости от того, какой из вышеприведенных разъемов используется на вашем джойстике. Нижеприведенная схема позволяет подключить один джойстик NES/SNES.
Диоды следует подключить так, чтобы на их общем выходе было положительное напряжение около пяти вольт. Если перепутаете – джойстик не получит питание и работать не будет.
Данная схема будет отлично работать с драйвером PPJoy. Этот драйвер уже давно не обновляется, и на момент написания статьи в сети уже отсутствовала его официальная страничка. Тем не менее, более удобного драйвера для описанных типов джойстиков не существует. Последняя версия PPJoy – 0.83, а скачать ее можно по адресу: http://barmentalisk.sml.by/progs/ppjoy083.zip. PPJoy нормально работает на версиях Windows, начиная с 2000; с некоторыми ограничениями поддерживаются Windows 98 и ME.
Распакуйте скаченный архив в любую папку, и запустите файл “Setup.exe”. В мастере установки стандартно кликаем кнопку “Next”, попутно просматривая инструкции на английском. Widows скорее всего несколько раз предупредит, что данное ПО не тестировалось на совместимость, однако вы должны понимать, что у авторов бесплатных продуктов редко бывают лишние деньги на оплату всяческих тестов совместимости. Разрешаем дальнейшую установку кнопкой “Все равно продолжить”. По завершении установки закрываем окно мастера и видим открывшиеся в проводнике ярлыки драйвера. Наибольший интерес сейчас представляет ярлык “Configure Joysticks”. В открываемом им окне вы можете добавить, настроить и удалить желаемый интерфейс. Жмем кнопку “Add”, в открывшемся окошке выбираем порт (обычно – LPT1), тип джойстика – SNES or NES pad, интерфейс – DirectPad Pro/SNESkey или Linux (для одного джойстика они полностью идентичны), номер джойстика: Controller 1, подтип джойстика – SNES или NES, в зависимости от подключаемого джойстика. После добавления джойстика система должна обнаружить новое устройство и установить еще один драйвер, после чего джойстик обычно можно уже использовать.
Для подключения нескольких джойстиков можно использовать такую же схему, за исключением того, что линия “Data” у каждого джойстика будет своя. Здесь уже интерфейсы DirectPad Pro/SNESkey и Linux немного различаются:
Номер джойстика
1 2 3 4 5
Интерфейс Контакты порта LPT
DirectPad Pro/SNESkey 10 12 13 15 11
Linux 10 11 12 13 15
Стоит отметить, что несколько джойстиков рекомендуется запитывать не от параллельного порта, а от отдельного источника с напряжением +5v, например, от USB-порта или пятивольтовой линии блока питания. На практике иногда можно и рискнуть, запитав каждый джойстик от отдельного контакта порта, вообще не используя диодов. Естественно, джойстик можно запитать только от того контакта, который в оригинальной схеме подает через диод напряжение на джойстик. Однако шансы сжечь порт, в таком случае сильно возрастают, так что решайте сами. При подключении нескольких джойстиков не забудьте добавить каждый из них в PPJoy по отдельности.
Теперь давайте рассмотрим схему подключения джойстиков от Сеги. Здесь вам не удастся подключить 5 джойстиков на один порт, ввиду того, что сеговский джойстик возвращает сигналы о состоянии своих кнопок не по одной линии, как в случае с NES/SNES, а сразу по шести параллельным линиям. В интерфейсе сеговских джойстиков вообще не все так просто, как хотелось бы, но у разработчиков в приоритете видимо была обратная совместимость с приставками, а не количество джойстиков, подключаемых через параллельный порт. И все же, двух джойстиков, на мой взгляд, вполне достаточно.
В документации к драйверу PPJoy присутствует несколько схем, позволяющих подключить один или два сеговских джойстика. С оригинальными трехкнопочными джойстиками обычно проблем не возникает. Проблемы начинаются при использовании шестикнопочных джойстиков (Sega Megadrive 2) под Windows 2000 и выше. Шестикнопочники нормально работают под Windows 98 и ME, однако на старших версиях, где используются принципы вытесняющей многозадачности, операционная система иногда может на несколько миллисекунд задержать отправку управляющего импульса на джойстик. Этого времени вполне хватает, чтобы микросхема джойстика переключилась в обычный режим и сообщила драйверу состояние стрелок направления как раз в тот момент, когда драйвер наивно полагает, что считывает состояние дополнительных кнопок (X, Y, Z, Mode). В результате, во время игры вы получите регулярное ложное срабатывание этих кнопок при удержании соответствующих стрелок направления. Ввиду вышесказанного и моего большого желания решить эту проблему, мною был написан собственный драйвер, не допускающий произвольных срабатываний кнопок. Дабы упростить изготовление переходника, я взял за основу схему “Linux Sega interface” из пакета PPJoy, которая не нуждается в диодах, и доработал ее для возможности подключения второго джойстика аналогичным способом.
Изображения опубликованы в печатном номере!
В течение продолжительного времени многие люди тестировали данную схему подключения и мой драйвер XYZModeB. На данный момент можно утверждать, что и схема и драйвер отлично подходят для операционных систем Windows 2000 и старше. Поддержка особо старых компьютеров с операционными системами Windows 9x не планируется, так как под этими ОС прекрасно работают драйвер PPJoy и другие старые драйвера. Не спрашивайте, почему на PPJoy не работает второй джойстик, подключенный по схеме Linux. Оригинальный интерфейс Linux поддерживал подключение только одного джойстика. Если по каким-либо причинам вы все же решите использовать PPJoy или другой драйвер для подключения двух сеговских джойстиков, то вам необходимо будет воспользоваться одной из прилагаемых к этому драйверу схем.
Для нормальной работы XYZModeB обязательно следует выбрать режим EPP для порта LPT в BIOS. Скачать последнюю версию драйвера можно по адресу: http://barmentalisk.sml.by/progs/xyzmodeb.rar. Драйвер не нуждается в установке, предельно прост в использовании и поддерживает дополнительные режимы использования джойстиков. Просто распакуйте его в какую-нибудь папку на жестком диске и запустите. Справочную информацию можно получить нажатием кнопки с символом вопроса в окне программы.
Напоследок представляю вам фотографии примеров готовых переходников, и желаю успехов в подключении ваших приставочных джойстиков. Надеюсь, вы проведете незабываемое приятное время не только за изготовлением переходника, но и за комфортной игрой старым полюбившимся джойстиком.