Подключение приставочного джойстика к PC

       

Установка драйвера под Linux


Стремительно набирающая обороты популярности операционная система Linux не остается безразличной к игрушкам. Под линуксом все значительно проще. Все необходимое уже, скорее всего, есть в системе. Максимум, что может понадобиться - перекомпилировать ядро. Спасибо товарищу Vojtech Pavlik vojtech@suse.cz и Andree Borrmann a.borrmann@tu-bs.de за наше счастливое детство :)....Более подробно позже.

Вставляем в /etc/rc.d/rc.local следущие строчки:

insmod joystickinsmod joy-console js_console=a,b,c,d,e

Где a- b- c- d- e-....

Теперь тестируем. Проверено в mame под linux (Multiple Arcade Machine Emulator) (пускать надо с ключем …)

Под Дос

Под DOS существует огромное количество игр и программ, в которых управление джойстиком не помешало бы. Можно с этим справиться при помощи программы SNESKey, написанной Benji York. Она преобразует управляющие сигналы от джойстика в нажатие клавиш на клавиатуре.

Загрузить версию под DOS

Программа поддерживает еще и некоторые PC-джойстики и переназначение на их кнопки некоторых клавиатурных команд. С этим драйвером, представляющим из себя резидентную DOS-программу, работают следующие устройства: джойстики от приставок SNES, NES, NES Four Score (адаптер для четырех игроков), Sega Genesis, Atari 2600, Atari 2600 driving controller, а также PC-джойстики Gravis Game Pad Pro, MS Sidewinder и другие геймпады типа QuickShot.

Настраивается SNESKey при помощи .INI-файлов, что не всегда удобно. В директории каждой игры создается свой файл sneskey.ini. Также sneskey.ini существует в директории с SNESKey. Несмотря на это это разные по своему назначению файлы и присутствие каждого в своем месте обязательно. После этого игру можно запускать словом go в командной строке. Режим тестирования запускается go /x - на экране появится табличка, в которой можно будет видеть нажимаемые клавиши.

Что самое удивительное, что с помощью этой программы можно играть в windows игры

Cуществует также версия программы под WIN. Настраивается также, с помощью конфигурационных файлов, которые появляются в нектором подобии текстового редактора.


Кстати, существует несколько программ, чаще всего под DOS, которые могут работать с LPT-Джойстиком совсем без драйвера. Среди них эмулятор СуперНинтендо ZNES DOS-версия.



Управляем Winamp'ом

Свершилось! Теперь управлять лучшим (на мой взгляд) аудио-проигрывателем Winamp можно лежа на диване! Или допустим, что на Вас напало вдохновение и Вам лень переключаться на winamp. Нажатием всего одной кнопки на джойстике можно перейти к следующей композиции. Winamp при этом может даже не являться активным окном, может быть даже свернут.

На момент моего последнего посещения www.winamp.com/plugins там было доступно целых 3 примочки для управления джойстиком.

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

  1. gen_joy.exe - самая простая примочка от авторов winamp - nullsoft
  2. mt_joyc11.exe - примочка покруче. Воспринимает сигналы от 2х джойстиков
  3. gen_sjoy_v01.exe - тоже крутая примочка от нашего соотечественника. К достоинствам относится восприятие сигналов от третьей оси джойстика, но к сожалению большинство параметров в ней приходится настраивать ручками через ini файл.
Скачивайте понравившийся файл. Запускаете, происходит установка в директорию с winampom. Пускаете Winamp, заходите в Preferences, выбираете Plugins, потом General purpose, Затем название нужной примочки. Нажимаете Configure. В появившемся окне обязятельно ставим галку Enable и назначаем кнопкам нужные действия.

Эмуляция  мыши с помощью джойстика - Joy2Mouse

Эта программа настоящая находка!
Это самая продвинутая из подобного класса программ. "Must have" для всех владельцев джойстиков и геймпадов. Программа позволяет преобразовать движения джойстика в движения мыши. Полностью совместима с DirectPadPro - джойстиками. Возможности настройки поистине безграничны. Поддерживает профили.
Есть режим эмуляции джойстиком нажатий на курсорные клавиши клавиатуры.
Одна из кнопок может быть назначена в качестве "шифта", что позволяет каждой кнопке назначить два действия.



Скачать можно отсюда.

Найденные минусы:
1) Работает только с первым найденным джойстиком переключить на другие пока не удалось.

2) Да, на кнопки джойстика можно назначить нажатие клавиш клавиатуры, но если включен переключатель раскладки клавиатуры в "русском" положении, английские буквы с клавиатуры не вводятся.

3) К сожалению нажатию кнопки джойстика может соответствовать только одна клавиша клавиатуры (плюс к ней Ctrl/Alt/Shift).Если кому-нибудь надо назначить целую серию клавиш - читайте про SNESKey для Windows. Он умеет.

4) Мне так и не удалось сделать autofire на кнопку мыши (чтобы при удержании кнопки джойстика windows казалось что я кликаю с определенной частотой), в некоторых игрушках этого не хватает (в Diablo например).

Макросы в SNESKEY9X

  Неожиданностью для меня стало то, сколько полезных вещей можно сделать при помощи программы SNESKEY9X и геймпада. Автор программы используя геймпад SNES может играть в quake вобще не касаясь клавиатуры, даже для LOAD/SAVE. К сожалению автор прекратил дальнейшую разработку программы отставив ее в статусе бетты. Конечно существует огромное количество программ позволяющих назначать макросы клавишам клавиатуры, но интереснее всего запускать их при помощи джойстика. На любую кнопку (даже на лево-право-вверх-вниз) можно навесить сразу несколько нажатий на клавиатуре, что позволило мне реализовать несколько полезных (для меня) функций. Начнем с самого простого. В папке Examples лежит файл "nes.ski". Содержание его следующее:

[nes]

NumShifts = 0

Shifts =

A = a

B = b

Select = [

Start = ]

Up = num8

Down = num2

Left = num4

Right = num6

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

Назначим кнопке A сразу несколько последовательных нажатий на кнопки. Делать это нужно через запятую:

A = p,a,s,s,w,1,0

Теперь можно это использовать, если по 10 раз на дню вам приходится набирать какой-нибудь пароль.


К сожалению результат зависит от состояния CapsLock и текущей раскладки клавиатуры. Даже если набрать в файле конфигурации:

A = P,A,s,S,w,1,0

Результат будет pasw10 без CapsLock PASW10 с CapsLock и зфыц10 если стоит русская раскладка.

К сожалению попробовать получится ли таким образом проворачивать одним нажатием на кнопку джойстика комбо в Mortal Kombat не удалось по причине отсутсвия такового. Желающие могут попробовать самостоятельно.

Важно: Если вам необходимо вставить в макрос несколько последовательных нажатий одной клавиши, sneskey из них сделает одно нажатие. То есть вместо "a,a,a,a" будет "а". Для решения проблемы нужно в промежуток вставить незначащую (в данном приложении) клавишу, например escape: A = a,esc,a,esc,a

Пример посложнее. В одной программе, эксплуатировать которую мне приходится, в одном из диалогов есть два списка - левый и правый и кнопки > и < для перемещения элементов из списка в список. Изначально все элементы находятся в левом списке. Задача перенести все элементы в правый список. Элементов там около 50. Выбрать все сразу программой не предусмотрено. Приходилось кликать на каждом элементе мышкой. Раньше на это уходило около минуты непрерывного кликанья. Ну или пол минуты долбежа по Space-Down. Теперь можно забыть этот кошмар. Вот он макрос - спаситель:

B = repeat space,down

Repeat - ключевое слово реализующее autofire. Дополнительно в скобках можно указывать частоту в герцах: Repeat (10). "space" и "down" сами догадались что. Полный список названий клавиш можно посмотреть в Keys.cfg. (так кнопка с запятой называется comma - до меня не сразу дошло)

Совершенно случайно подмеченный пример: Допустим надо одновременно нажать Ctrl-X (т.е. вырезать) или Ctrl-V (т.е. вставить). Но в документации ничего не написано про одновременные нажатия. Рискнем:

Select = lctrl,X Start = lctrl,V

Пробуем: ПОЛУЧИЛОСЬ! То ли такова архитектура windows, толи таков скрытый замысел автора, но это работает. То есть последовательные нажатия клавиш были приняты за одновременные.


Попробуйте теперь поработать таким образом с каким-нибудь текстовым редактором - в правой руке мышь, а в левой джойстик, так, чтобы удобно было нажимать на select и start. Чувствуете разницу?

Пример еще интереснее: Допустим у вас есть некий файл с огромным списком файлов (кто не знает как такой файл делается: "dir /b > file.txt"):

12.jpg

13.jpg

...

1000.jpg

Допустим вам нужно проделать с этими файлами какие либо действия: например скопировать на другой диск.
Назначаем кнопке B макрос.

B = repeat c,o,p,y,space,end,space,D,:,\,home,down

Открываем файл со списком фалов в редакторе устанавливаем курсор на самое начало текста и жмем на B джойстика (главное во время остановиться). Вот результат:

copy 12.jpg d:\

copy 13.jpg d:\

….

copy 1000.jpg d:\

Теперь сохраняем как bat в той же директории что и файлы и запускаем на выполнение.

2) оформить файлы в HTML страничку: Вернитесь к исходному вариату файла, встаньте на начало, назначьте:

A = <,i,m,g,space,s,r,c,=,end,>,down

Запускаем: Уау! Программа выполнила недопустимую операцию и будет закрыта! 12 клавиш видимо уже перебор. Путем эксперимента выяснить, каков предел на количество нажатий клавиш не удалось.
Нормально работает

A = 1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6

Хотя это уже 16 клавиш.
Возможно ограничего суммарное число скан-кодов, которые соответствуют каждой клавише в файле keys.cfg
Как же быть? Нам поможет буфер и уже освоенная раньше операция вставки из буфера. Предварительно поместим в буфер строчку

<img border=0 src=

Назначим макрос:

B = lctrl,V,end,>,home,down

Перейдем в начало документа. Выполняем. Что то не то. А именно получился Ctrl-end вместо end. Почему-то при нажатии залипает Control. Попробуем это вылечить: редактируем файл keys.cfg. Добавим в самый конец строчку

9d 9d releas

Которая на языке сканкодов будет обозначать отпустить Control. Вобще-то отпустить ctrl это просто 9d, но иначе ругается SNESKEY
Таким образом получается:

B = repeat lctrl,V,releas,end,>,home,down

И вот результат:

<img border=0 src=12.jpg>

<img border=0 src=13.jpg>

…..

<img border=0 src=1000.jpg>

Дальше дело только за вашей фантазией.

COPYRIGHTs:

Материалы -  http://www.emulators.wallst.ru

Сбор материалов в кучу, форматирование и исправление ошибок - Волков Станислав (stranger_007@bk.ru)

Данное руководство распространяется свободно и все инструкции Вы используете на свой страх и риск. Составители никакой ответственности ни за что не несут.

7.06.2003 г.




Содержание раздела