UniJoypad - адаптер для универсального подключения игрового контроллера к ZX и PC.
В качестве базового манипулятора выбран 14-кнопочный цифровой игровой контроллер от Sony Playstation (в дальнейшем буду называть его joypad) как достаточно удобный и относительно недорогой. Аналоговые контроллеры DualShock поддерживаются также.
На данный момент у адаптера UniJoypad следующие возможности:
- управление: MCU ATmega32, внешний супервизор питания, возможность обновления firmware через USB;
- питание: 3 варианта подключения питания (внешний БП +7,5...12В, USB, +5В);
- индикация: светодиоды Power LED и Service LED, текстовый LCD-индикатор 1x10 (длительность подсветки управляется программно AVR);
- порты: joypad, PS/2, USB и два универсальных miniDIN;
Адаптер работает в следующих режимах:
- Test. В этом режиме определяется тип joypad и можно протестировать все кнопки. При первичном подключении используется по умолчанию.
- PS/2. Адаптер подключается к интерфейсу PS/2 PC/ZX и транслирует в PS/2 нажатия клавиш подключенной к адаптеру клавиатуры (работают оба направления хост<->клава), кнопок joypad. Кроме этого есть возможность транслировать еще и нажатия кнопок обычного контактного ZX-джойстика.
В подрежиме PS/2 setup, можно отрегулировать чувствительность joypad, а также запрограммировать любую кнопку joypad (кроме двух сервисных) на нажатие любой клавиши клавиатуры. Первая сервисная кнопка позволяет выбрать один из двух сетов, т.е. наборов запрограммированных кнопок, итого получаем 24 кнопки, эмулирующих нажатия клавиатуры! Во время игры просто переключаемся между двумя сетами на ходу. Вторая сервисная кнопка используется для autofire (непрерывная стрельба), эту функцию тоже можно закрепить за любой кнопкой.
- USB. Здесь все просто, UniJoypad подключается к USB PC и через HID-драйвер передает нажатия кнопок joypad.
- ZX. В данном случае адаптер подключается к порту джойстика ZX и транслирует нажатия joypad. В ZX setup можно выбрать активный логический уровень сигнала нажатия (low/high). В этом режиме эмулируются стандартные кнопки XY-направлений и fire. Отдельная кнопка включает/выключает функцию autofire. Две кнопки задействованы для функции burst fire, т.е. стрельба короткими очередями (отличаются длиной очереди). Четыре combo кнопки, которые эмулируют нажатия пары кнопок XY-направлений (например, любители Dizzy эту фишку оценят, жмем combo - диззик, например, кувыркается вперед/вверх). Ну и наконец моя последняя кнопочная инновация, кнопка superkey, эмулирующая до 16-ти последовательно нажатых заранее запрограммированных кнопок. Superkey можно программировать на ходу.
Добавлена возможность эмулировать нажатия fire2 и fire3.
Есть специальная версия UniJoypad для Phoenix. Возможности:
- управление: MCU ATmega32, возможность обновления firmware через USB;
- питание: +5В, разъем компьютерного БП;
- индикация: светодиоды USB Power LED и Service LED, текстовый LCD-индикатор 1x16 (длительность подсветки управляется программно AVR);
- порты: joypad (miniDIN), PS/2, USB;
используются почти все режимы UniJoypad, отдельно добавлены для Phoenix: возможность работы с часами реального времени и встроенный USB-программатор контроллера мультикарты.