Подключение геймпада от Sega Mega Drive 2 к PC

Никогда вам не хотелось поиграть в старые добрые игры, которые поражали наши детские умы и врезались в память своей захватывающей картинкой? Если все же ответ «да», то Вы наверняка знаете про эмуляторы приставок для компьютеров, возможно, даже пробовали поиграть в некоторые игры, но атмосфера уже не та, как прежде. Нажимать кнопки на клавиатуре весьма неудобно, особенно в очень динамичных играх, и не хватает давно забытого ощущения джойстика (или как сейчас по-современному их называют – геймпад) в руке.

Далеко не секрет, что у многих из нас в самых отдаленных углах кладовок, хранятся старые или нерабочие приставки, контроллер от которых мы можем использовать в своих целях. На этот раз давайте попробуем подключить геймпад  к ПК от всеми любимой Sega Mega Drive 2 (она же Genesis).

Итак, что для этого понадобится:

  • Джойстик от Sega Mega Drive 2
  • Arduino (Подойдет любая. В нашем случае это Nano)
  • Разъем DB9 (По желанию)

Для начала нужно разобраться как же приставка «общается» с джойстиком, чтобы понять что и как нам подключать. Протокол Sega очень прост в освоении, стандартизирован и достаточно легок для понимания.

Для начала распиновка разъема:

Если в 2-х словах и простым языком, то управляющая плата джойстика посылает в зависимости от нажатой клавиши +5 вольт на нужный контакт, который нужно считывать. Но у контроллера управляющих проводов всего 6, а кнопок 8.

Для этого инженеры в Sega придумали весьма своеобразное решение – чтобы консоль получила состояние кнопок, на управляющий провод «Select» подается импульс амплитудой в пять вольт и геймпад отдает сигналы кнопок «Вверх», «Вниз», «Влево», «Вправо», «В», «С», а для того, чтобы получить остальные – питание с «Select» снимается и джойстик отдает состояние оставшихся кнопок «А» и «Start».

 

Позднее были добавлены ещё три кнопки. И снова необычное решение со стороны компании – консоль опрашивала джойстик джойстик три раза, посылая аналогичные импульсы и на третий раз контроллер выдавал состояние кнопок «X», «Y», «Z».

А теперь перейдем к практике:

Подключаем DB9 разъем к Arduino (1 -> D2, 2 ->D3, 3 ->D4, 4 ->D5, 5  -> 5v, 6 -> D6, 7  -> D7, 8 -> Gnd, 9  -> D8). Никаких дополнительных компонентов не нужно.

Разъем последовательного порта в наши дни достаточно редкий экземпляр и в маленьких городах достать такой практически невозможно. Потому, можно «скормить» штекеру джойстика обычные PLS разъемы/«штырьки», которые обычно идут в комплекте с Arduino:

К сожалению, DB9 я не нашел. Собственно, таким методом я и воспользовался – освободил их от BLS коннекторов и аккуратно припаял к ним PLS разъем:

В самом разъеме контроллера они держатся крепко и не выпадают. Главное, не забудьте пометить где верх, а где низ, чтобы не перепутать провода местами. Вот так выглядит полное подключение:

Далее нужно написать скетч и залить прошивку в Arduino, но потому что микроконтроллер данной серии не может представляться системе как USB HID устройство, а эмулируется подключение в последовательный порт, то придется работать с ним.

В данном случае, выход из ситуации предстоит следующий – нужна сторонняя программа, которая будет принимать и обрабатывать данные из последовательного порта и эмулировать нажатия клавиш клавиатуры (некоторые модели, такие как Leonardo и Duo, аппаратно поддерживают данную эмуляцию и сторонний софт на ПК не требуется).

Осталось дело за малым – подключить Arduino к ПК, запустить программу, выбрать порт, настроить эмулятор и пользоваться.


Прикрепленные файлы:

Добавить комментарий

Ваш адрес email не будет опубликован.