01 апреля 2021

Расширение Kempston Joystick
  Kempston Joystick - одно из самых попу─ 
лярных  устройств  на  ZX Spectrum. Но при 
этом  у  него  есть несколько недостатков. 
Один из них - то, что  эта схема поддержи─ 
вает  только однокнопочный (чуть не сказал 
одноклеточный)  джойстик  типа  Atari CX40 
урожая 1977 года. Человеку, который придет 
на  Speccy с другой планеты, будет нелегко 
понять,почему прыгать надо движением джой─ 
стика  вверх, а стрейф в Wolf48 включается 
движением вниз+лево или вниз+вправо. А как 
драться  в  файтингах - вообще  непонятно. 
Неужели на клавиатуре? 
  Со  времён  появления устройства прошли 
десятилетия, и  место  джойстиков уверенно 
заняли геймпады. Типичный геймпад от Денди 
или  Sega  Mega  Drive  содержит от 4 до 7 
кнопок, среди которых не менее двух разных 
игровых  действий, причём  ещё имеется от─ 
дельная  кнопка  для  паузы, совмещённая с 
запуском игры. 
  Сам порт #1F, на котором сидит Kempston
Joystick, имеет  три свободных бита, кото─  
рые  обычно  в  нуле и иногда используются 
для  определения наличия джойстика (не де─ 
лайте  так). Эти  биты было бы логично ис─ 
пользовать для трёх других кнопок. 
  Несколько   лет   назад  Black  Cat/Era
Creative  Group из Новосибирска (известный  
по Twitch/YouTube-каналу  Videogames Sema─ 
tary ) занялся этим вопросом практически. 
  Дальше пишет он:

   Биты  расширенного  Kempston Joystick'а
распределяются так (все активны в единице,
неактивны в нуле):
  0    RIGHT
  1    LEFT
  2    DOWN/DUCK
  3    UP
  4    B (например, FIRE)
  5    C (например, JUMP)
  6    A (например, ADDITIONAL FIRE)
  7    START (например, PAUSE/MAP)

   Список игр с поддержкой 8-битного Кемп─
стона: 

  Castlevania: Spectral Interlude (2015)
   Пробная версия сделана Санчезом по моей
просьбе еще в 2018, однако в ней поддержи─
вался только прыжок на доп. кнопку. В вер─
сии  2020  года  поддержка полная. На доп.
кнопках - прыжок,  смена   оружия,  карта.
Внимание!  Для  корректной  работы,  после
пропуска  заставки на кнопку Fire, необхо─
димо в меню выбрать тип управления WSAD.

  The Dark by Oleg Origin (1997, 2016)
   Незапланированная  фича. По Fire2 - вы─
зов карты.

  Mighty Final Fight (2017)
   Спорная  версия. Также  была  выпрошена
мной  у  Санчеза  для  проверки концепта в
2018. Автору результат не понравился, сли─
шком  завязано  управление на традиционный
вариант управления. На дополнительных кно─
пках - прыжок и Пауза.

  Aliens: Neoplasma (2019)
   Тоже  от  Санчеза. Полная поддержка. На
доп.кнопках - прыжок,гранаты,выход в меню.

  Delta's Shadow (2020)
   Опять от того же автора.

  Space Gun by Ocean Software Ltd'92
   Версия  с  возможностью  управления  от
Kempston Mouse и поддержкой дополнительных 
кнопок  Kempston Joystick'а. Релиз выпущен
совместно с goodboy'ем.

  Vade Retro II by J.B. (2017)
   Русский  перевод:  Den Jr,  michellekg,
Black Cat / Era CG 
   Модификация под Kempston (8 bit): Black
Cat / Era CG (15.05.2020) 
  Kempston-джойстик  (все 8 бит) работает
параллельно  клавиатуре. На дополнительных
кнопках  висят:  взять/применить  предмет,
транспорт, смена  персонажа. Инвентарь ви─
сит по-прежнему только на клавише I.

  The Order of Mazes (2015)
   by Tom Dalby
   Расширенный  Кемпстон добавлен в диско─
вой версии.

  Hell Yeah! (2020)
   ...

   Как  подключить  такой джойстик, напри─
мер, к ZX Evolution?
   Возьмём разъём сеговского контроллера:
      S=0     S=1
  1    UP      UP
  2    DOWN    DOWN
  3    0       LEFT
  4    0       RIGHT
  5    +5V
  6    A       B
  7    S
  8    GND
  9    Start   C
   Сигнал S тут - управляющий. Как видно в
третьей  колонке, его включение меняет по─
ведение  контроллера - из  некоторых линий
считываются другие кнопки.
   На  ZX Evolution на разъём X12 выведены
сигналы Kempston Joystick'а (контакты с 15
по  20 ), а  также механической клавиатуры
(контакты с 1 по 8 и с 10 по 14 ).Там есть 
GND, но  нет  +5V, Start/C  и управляющего 
сигнала  S. Под  недостающие  сигналы  S и 
START/C можно задействовать контакты меха─ 
нической  клавиатуры.  Этими  клавиатурами
уже  редко  кто пользуется, их даже трудно
достать. Хотя ходят слухи, что пользовате─
ли  БК недавно смогли перевыпустить партию
клавиатур  МС-7007  в  фирме Мастер-Ключ в
Рязани. А +5V лучше взять отдельно с БП.
   Допустим, соответствие  сигналов  будет
такое:
      S=0     S=1        X12
  1    UP      UP        18
  2    DOWN    DOWN      19
  3    0       LEFT      16
  4    0       RIGHT     17
  5    +5V             /С БП/
  6    A       B         20
  7    S                 3
  8    GND               15
  9    Start   C         6
   То есть таким образом, мы отберем у ме─
ханической  клавиатуры  2  и 5 полуряд, но
сохраним  возможность подключения Sinclair
1  и  Sinclair  2. Но чтобы это работало и 
выдавало  недостающие  битики  в порт #1F,
надо иметь в компьютере специальную проши─
вку  ПЛИС. Такую прошивку разработал Роман
(maddev) в 2020 году. 

   Поддержка   расширенного   расширенного
Kempston   Joystick'а   есть  в  эмуляторе 
Xpeccy. Достаточно  включить поддержку до─ 
полнительных кнопок в настройках.
   В  Unreal  Speccy 0.39  пока поддержано
только 7 битов из 8  ( KLEFT, KRIGHT, KUP, 
KDOWN, KFIRE, KFIRE1, KFIRE2, KFIRE3,  где 
KFIRE=KFIRE1 ). 

                 * * *

  Одновременно  похожую  схему для ZX Evo 
разработал  и DimkaM, он сделал и прошивку 
с возможностью выбора раскладок джойстика, 
но эта прошивка пока не публикуется,потому 
что  есть возможность сохранить работоспо─ 
собность  механической  клавиатуры.  Проще 
всего  это  сделать, перебросив  сигнал  S 
(SEL) геймпада  на сигнал RST разъёма кла─ 
виатуры. Но  прошивку придётся переписать: 
RST  уже  не  будет  работать как сброс по 
умолчанию,  только  при  замыкании  с  ка─ 
ким-либо  полурядом  клавиатуры (например, 
первым). 

                 * * *

  А   вы  знаете,  что  существует  схема
Kempston Mouse от Velesoft'а  с дополните─  
льной  мышкой  на  портах #0ADF (buttons), 
#0BDF (X), #0FDF (Y)? :) 



Other articles:


Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Similar articles:

В этот день...   28 April