Типа чтобы нажатие на кнопку как бы «запоминалось» ненадолго?
А на какие контакты был подключён джойстик по «схеме Савина» (о которой все говорят как о стандарте)?
Вид для печати
Вложение 67901
Прошёл трассировкой настройки управления джойстиком в играх «Удав» и «Breaking ball» SW corp., посмотрел какие значения заданы по умолчанию.
Видимо, это и есть "стандарт Савина" для распайки джойстика. В играх используется одна кнопка, но довольно очевидно куда распаивать вторую. Тоже добавил её в таблицу.
провод бит при чтении порта контакт разъёма УП ВЛЕВО 1000 А31 ВПРАВО 20 Б20 ВВЕРХ 2000 Б32 ВНИЗ 40 А20 ОГОНЬ 1 Б24 КНОПКА2 2 А24 общий А19 или Б19 по желанию
Ссылка на документацию по УП (назначение контактов разъёма порта): http://vak.ru/doku.php/proj/bk/bk-up
Как я понял, вариантов распайки было много больше, соответственно, в разных играх разные джойстики.
Реализация джойстика в эмуляторе Калмыкова:
Реализация джойстика в эмуляторе gid:Код:joystick |= 1; // Button 1
joystick |= 2; // Button 2
joystick |= 4; // Button 3
joystick |= 8; // Button 4
joystick |= 16; // Joystick right
joystick |= 512; // Joystick left
joystick |= 32; // Joystick down
joystick |= 1024; // Joystick up
Реализация джойстика в эмуляторе А.Тишина:Код:joystick |= 0040; // джойстик: кнопка 1; мышь: левая кнопка
joystick |= 0200; // джойстик: кнопка 2;
joystick |= 0100; // джойстик: кнопка 3; мышь: правая кнопка
joystick |= 0400; // джойстик: кнопка 4
joystick |= 0020; // джойстик: кнопка 5
joystick |= 0002; // джойстик: вправо; мышь: вправо
joystick |= 0010; // джойстик: влево; мышь: влево
joystick |= 0001; // джойстик: вверх; мышь: вверх
joystick |= 0004; // джойстик: вниз; мышь: вниз
Код:public final static int JOY_UP = 1;
public final static int JOY_DOWN = 2;
public final static int JOY_LEFT = 4;
public final static int JOY_RIGHT = 8;
public final static int JOY_FIRE1 = 16;
public final static int JOY_FIRE2 = 32;
Мда :) Ну давайте тогда копнём другие игры SW Corp. для уверенности. Всё-таки они считаются стандартом. По одной "Rogers", конечно, рано делать выводы о дефолтных значениях. Может быть именно в этой игре Савин сделал иначе, чем в каком-нибудь "Десантнике".
Хех, в «Десантнике» вообще не оказалось поддержки джойстика :)
В «Breaking Ball» пункт меню “стандартный джойстик” устанавливает такие значения (лежат в памяти начиная с адреса 10120):
1000 влево
20 вправо
3 огонь
Очевидно, 3 - это два бита для двух кнопок.
Совпадает с эмулятором Калмыкова.
«Удав» также совпадает с эмулятором Калмыкова.
Значения лежат начиная с адреса 7134.
«Jetman» из подборки hobot “адаптирован под КУВТ-86”, «Flier» тоже - не работают в эмуляторе (бесконечно вызывается TRAP 34). Да и значения джойстика адаптатор тоже мог изменить.
«Zoom» в той же подборке - не bin файл. Длина у него странно круглая. Тоже не запускается.
Сейчас ещё раз перепроверил «Buck Rogers. Planet of Zoom» - там значения как я указывал в посте выше (привожу с адресами)
Вниз 5554 10
Вверх 5556 1
Влево 5552 20
Вправо 5550 4
Огонь 55560 2
Но внезапно понял, что «Planet of Zoom» - это не игра Савина :) У него был просто «Zoom». Так что эта раскладка джойстика отменяется. Сейчас исправлю верхний пост на стандарт SW Corp.
Спасибо nzeemin за наводку!
P.S. странно, что у стандартного джойстика контакты так далеко друг от друга распаяны...
http://retropc.org/images/th/013_002.jpg
Попросил Lasoft’а протестировать его джойстик (фирменный от “Электроники”, как на фотке):
Влево - 10
Вправо - 2
Вверх - 1
Вниз - 4
Кнопка1 (левая) - 40
Кнопка2 (правая) - 100
Voland подтвердил такую же распиновку.
Больше всего похоже на эмулятор gid’а, только кнопки как у мыши.
Привет всем. Все, очень захотелось запускать удобно проги и игрушки.
Где купить вот этот модуль: SMUC контроллер от Воланда с 1 гб флешкой и всеми операционными система и софтом.
Взято с этого видео
https://youtu.be/527VpeCXOf4
http://www.pk-fpga.ru/plis-replika-smk-512
Или на этом форуме написать Воланду: http://zx-pk.ru/members/7380-woland.html