Что нам мешает сделать из компьютера Сегу? Ничего! Но у компьютера нет джойстиков . . . Не проблема!
Схем подключения джойстиков к компьютеру существует огромное множество, как и драйверов, обеспечивающих работу с ними. Я перепробовал огромное множество схем и драйверов и отобрал лучшие, на мой взгляд. Весь комплект должен был удволетворять одному очень жесткому критерию – работать и в Linux, и в Windows. Начну с Windows – на одном очень , посвященном приставкам, обсуждалась проблема неправильной обработки нажатия некоторых кнопок (собственно для этого я туда и залез) и наткнулся на программу-драйвер написанную камрадом , называется она xyzmodeb, скачать ее можно или отсюда. Она нам понадобится чтобы заставить работать джойстик. Кроме того, нам понадобиться пара не кривых рук, паяльник со соответствующими принадлежностями, COM-разъем “папа” (1 или 2 шт, зависит от того сколько джостиков подключить хотите), LPT-разьем “папа”, провод 9-ти жильный. Спаиваем вот по этой схеме:
После спайки все должно будет выглядеть примерно так:
Или вот так:
Теперь приведу небольшой FAQ по подключению, честно сперто :
FAQ №2 от barmentalisk’a
Q: Можно ли заставить работать джойстик от SEGA или Dendy через COM-порт, просто вставив его безо всяких переходников и установив драйвера. Если можно то как?
A: Такое невозможно ввиду несовместимости интерфейсов.
Q: Существуют ли схемы переходников для подключения какого-нибудь приставочного джойстика к COM-порту компьютера?
A: Опять же несовместимость интерфейсов. Хотя в теории это возможно, но на практике собирать подобный переходник дорого, долго и нерационально.
Q: Существуют ли схемы переходников для подключения какого-нибудь приставочного джойстика к USB компьютера.
A: Да, и это обсуждалось например .
Q: Какой режим LPT необходимо выставить в BIOS?
A: Обычно используются режимы:
SPP – однонаправленный порт,
EPP – двунаправленный порт, со скоростью передачи данных до 2Мб/сек,
ECP – в дополнение появились такие возможности, как наличие аппаратного сжатия данных, наличие буфера и возможность работы в режиме DMA.
Я рекомендую использовать режим EPP, так как сжатие и буфер джойстику обычно не нужны, а вот двунаправленность не помешает.
Q: Существует ли какое-либо ограничение на длину провода переходника, через который джойстик подключается к LPT-разъему?
A: Вообще для правильной работы с LPT-портом, суммарная длина проводов от самого джойстика до материнской платы не должна превышать 3-х метров. Однако некоторые модели джойстиков могут нуждаться в еще меньшей длине провода для корректной работы.
Теперь можно смело подключать джойстики к компьютеру! Загружаем драйвер xyzmodeb:
Тыкаем в кнопку “R” и настраиваем кнопки. Если возникают какие-то проблемы с подключением тыкаем в “?” и читаем. Если не помогло, смотрим очень внимательно как все спаяли. Если и это не помогло, то советую погуглить на тему работоспособности вашего контролера с джойстиками, к сожалению некоторые новые чипсеты не могут работать с джойстиками . . .
Теперь про Linux. Схема та же, но к сожалению второй джойстик(насколько мне известно) не поддерживается . . . Поэтому спаиваем все для 1 джойстика. Есть на форуме убунтоводов. Описание там очень хорошее, поэтому просто процитирую:
I. Установка драйвера.
Для тех, кто хочет узнать все подробности и детали, относительно драйверов, входящих в ветку “Linux Joystick Driver”, я направляю к документации ядра (где почитать об этом в Сети – смотрите раздел ССЫЛКИ в конце статьи ). Там же вы сможете узнать подробности о подключении других типов джойстиков (Dendy, Nintendo, Sony PS и т.д.) через всё тот же параллельный порт.
Для тех, кто готов мне довериться, объясню в “двух словах”:
Первым делом. установите пакет joystick из репозиториев. Дальше, мы будем использовать драйвер db9 из упомянутого состава “Linux Joystick Driver”. Компилировать ничего не надо, весь пакет поставляется с ядром, поэтому всё что нам нужно сделать это подгрузить модуль ядра с драйвером db9. Этот драйвер поддерживает различные виды джойстиков (ни много, ни мало 10 типов), к тому же, он может “слушать” любой из имеющихся в системе LPT-портов, поэтому подгружать его нужно не просто так, а с определёнными параметрами.
Всё же, для большинства из нас, эти параметры будут одинаковы, поскольку порт в компьютере, как правило, только один, а джойстик 8-ми кнопочный (6 кнопок + Mode + Start), что соответствует типу 6.
Однако, здесь есть один нюанс: по умолчанию, в ядро УЖЕ загружается модуль “занимающий” порт LPT. Этого “парня” зовут lp, он из CUPS, служит для поддержки печати. Если у вас нет принтера, то смело идите дальше, если же у вас есть принтер, который подключается именно по LPT, то вам придётся учитывать, что одновременно эти два модуля работать не могут, придётся отключать db9 на время печати, а lp – на время игры.
Итак, открываем файл, отвечающий за модули ядра:
sudo gedit /etc/modulesКомментируем строку с lp и добавляем db9 с параметрами. У меня это выглядит так:
Код:
# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.
fuse
#lp
db9 dev=0,6
Теперь нужно перезагрузить компьютер (или ввести волшебную команду, которую я не знаю. (: Может, гуру подскажут).
(подсказываю, необходимо выгрузить драйвер lp, делается это командой
rmmod lpзатем загрузить драйвер, например так:
modprobe db9 dev=0,6)
Настал момент истины! В директории /dev/input должен появиться файл нашего устройства “js0″. js, понятно, joystick, а 0 – порядковый номер такого устройства в системе. Если у вас уже есть другие джойстики, то цифра будет другой.
На “всякий пожарный” сделаем символическую ссылку:
sudo ln -s /dev/input/js0 /dev/js0Так будет комфортнее программам настройки.
Проведём хитрый эксперимент – наберите команду
cat /dev/js0и понажимайте на кнопки джойстика, если на экране появляются какие- то символы, то можете вздохнуть спокойно – самое сложное позади. (:
III. Программная настройка джойстика.
Итак, мы добились самого главного: система “узрела” наше невероятное устройство, а сам девайс успешно посылает сигналы по нажатию кнопок! Теперь мы заставим эти сигналы преобразовываться в нажатия клавиш клавиатуры, тогда, как вы уже догадались, мы легко сможем задействовать джойстик в совершенно любой сфере, даже никак не связанной с играми, однако эту тему я оставлю на усмотрение вашей собственной фантазии…
Существует несколько программных пакетов, позволяющих выполнить такую задачу. Лично я считаю, что оптимальным является Rejoystick. Его нет в официальных репозиториях, однако deb-пакет доступен на сайте проекта.
Данная утилита выгодно отличается от других уже тем, что это не портированная версия windows-программы (в отличии например от joy2key), а изначально предназначена для ОС GNU/Linux, к тому же, она обладает интуитивным графическим интерфейсом на библиотеке GTK. Чего, собственно, Ubuntu’вцу ещё нужно?! (:
Будем считать, что deb-пакет Rejoystick вы уже установили. Теперь пишем в консоли команду rejoystick, появится окно программы. Теперь понажимайте кнопки джойстика, убедитесь, что по нажатию каждой из них, “загорается” определённая кнопка в окне программы. Назначьте клавиши клавиатуры, которые будут срабатывать по нажатию соответствующих кнопок джойстика.
Конфигурация rejoystick создана и настроена должным образом, однако программа ещё не запущена. Для этого необходимо лишь выполнить команду
rejoystick -dкоторая, как не сложно догадаться, запускает “демон” этой замечательной утилиты. Можно прописать её выполнения в “Система”-”Параметры”-”Сеансы”, тогда вам не нужно будет каждый раз беспокоиться о её запуске.
IV. Устанавливаем эмулятор консоли Sega MD2 и игры к ней.
В настоящее время, в репозиториях Ubuntu доступен один эмулятор консоли Sega Genesis – это Dgen. Текущая версия выпущена ещё в 2001-м году, нет графического интерфейса и, вообще, сложновата она в освоении. Честно говоря, я её так и не осилил. (:
К счастью, “дружиться” с этой штукой совсем не обязательно, потому что активисты из ubuntuforums.org периодически СОБИРАЮТ deb-пакеты портированной версии эмулятора под названием Gens (изначально предназначенного для OC windows), благодаря тому, что исходный код этого проекта открыт.
Скачиваем нужный пакет (рекомендую использовать ветку stable, поскольку версия unstable, действительно, очень unstable!), устанавливаем и запускаем программу (после установки, ярлык появится в меню “Приложения”-”Игры”). Первым делом, разумеется, идём в настройки клавиш управления: “Options” – “Joypads”, убеждаемся, что выставлен 6-кнопочный джойстик и назначаем клавиши. Разумеется, эти клавиши должны СОВПАДАТЬ с теми, что вы указали в программе rejoytick.
Таким образом мы получаем джойстик работающий и в Linux и в Windows.
Напоследок даю несколько интересных ссылок на данную тему:






