Приставки > 4 поколение
Не работает схема 6-ти кнопочного джойстика?
<< < (3/3)
HardWareMan:

--- Цитата: Rumata от 06 Май 2012, 00:06:28 ---HardWareMan, хосподя, эти доки от Мудрого Короля уже несколько лет как в сети в свободном доступе. Но это чисто сеговские доки, других разработчиков там не может быть в принципе
--- Конец цитаты ---
Ну а кто против то? А про чужие коды я спрашивал вне этих доков.
Касаемо работы 6-ти кнопочного, я тут как-то выкладывал для Масяни сводную табличку, когда он работал над джойстэйшином, да вот найти не могу или оно протухло. Поэтому, погуглив, я нашел док, где сказано:

--- Цитата --- 3.2) Gamepad specifics

 A gamepad maps the directional pad to the pins mentioned earlier
 (left, right, up, down), and multiplexes the four buttons (A, B, C, Start)
 through the TL and TR pins.

 The TH pin controls which pairs of buttons (either A, Start or C, B) are
 output through TL and TR by the multiplexer chip.

 In order to read all the buttons, A program will set TH = 1, read the data
 port, set TH = 0, and read the port again. The data returned is as follows:

 TH = 0 : ?0SA00DU
 TH = 1 : ?1CBRLDU

 ? = Whatever was last written to bit 7.
 S = Start
 A = Button A
 B = Button B
 C = Button C
 U = Up
 D = Down
 L = Left
 R = Right

 A 6-button gamepad allows the extra buttons to be read based on how
 many times TH is switched from 1 to 0 (and not 0 to 1). Observe the
 following sequence:

 TH = 1 : ?1CBRLDU    3-button pad return value
 TH = 0 : ?0SA00DU    3-button pad return value
 TH = 1 : ?1CBRLDU    3-button pad return value
 TH = 0 : ?0SA0000    D3-0 are forced to '0'
 TH = 1 : ?1CBMXYZ    Extra buttons returned in D3-0
 TH = 0 : ?0SA1111    D3-0 are forced to '1'

 M = Mode
 X = Button X
 Y = Button Y
 Z = Button Z

 From this point on, the standard 3-button pad values will be returned
 if any further TH transitions are done.

 If TH isn't modified in about 8192 (probably less than that) 68000 CPU
 cycles, a 'time-out' will occur and the sequence to read 6-button values
 can be done again. Games usually poll the gamepad once per frame,
 which is always enough for the time-out to occur.

 I believe checking if D3-D0 are all set or clear (as shown in the list
 above) would be another method to verify if 6-button or 3-button pad data
 was being returned.

 Some games may access the gamepad in a way that causes 6-button values
 to be returned when 3-button values are expected. To get around this,
 the MODE button can be held down when powering-up the console, and
 the 6-button gamepad will respond like a 3-button one.
--- Конец цитаты ---
Что можно перевести так:

--- Цитата --- 3.2) Специфика геймпада

Геймпад использует 4 пина для направления (влево, вправо, вверх, вниз) и мультиплексирует 4 кнопки (A, B, C, Start) через пины TL и TR.

Пин TH управляет мультиплексором при выборе кнопок (A и Start или C и B) через пины TL и TR.

Чтобы прочитат все кнопки программа должна установить TH=1, считать порт, установить TH=0 и еще раз считать порт. Считанные данные будут в следующем формате:

 TH = 0 : ?0SA00DU
 TH = 1 : ?1CBRLDU

 ? = То, что было ранее записано в бит 7.
 S = Start
 A = Кнопка A
 B = Кнопка B
 C = Кнопка C
 U = Вверх
 D = Вниз
 L = Влево
 R = Вправо

6ти кнопочный пад позволяет получить дополнительные кнопки, которое основано на том, сколько раз пин TH был переключен с 1 на 0 (но не наоборот с 0 на 1). Посмотрите на следующую последовательность:

 TH = 1 : ?1CBRLDU    Кнопки 3х кнопочного пада
 TH = 0 : ?0SA00DU    Кнопки 3х кнопочного пада
 TH = 1 : ?1CBRLDU    Кнопки 3х кнопочного пада
 TH = 0 : ?0SA0000    D3-D0 сброшены в '0'
 TH = 1 : ?1CBMXYZ    Дополнительные кнопки могут быть считаны через D3-D0
 TH = 0 : ?0SA1111    D3-D0 установлены в '1'

 M = Mode
 X = Кнопка X
 Y = Кнопка Y
 Z = Кнопка Z

Далее будут возвращаться данные стандартного 3х кнопочного джойстика при любых переключениях пина TH.

Если пин TH не изменялся около 8192 (а может и меньше) цикла 68000 происходит таймаут и дополнительные кнопки могут быть считаны еще раз. Игры обычно опрашивают джойстик один раз за телевизионный кадр, поэтому времени достаточно чтобы произошл таймаут.

Я думаю, что проверка D3-D0 на сброс в '0' или установку в '1' может быть еще одним методом проверки типа подключенного пада: 6ти или 3х кнопочный.

Некоторые игры используют такой опрос пада, что считываются данные 6ти кнопочного пада, хотя ожидаются от 3х кнопочного. Чтобы исправить это, нужно зажать кнопку MODE при включении и 6ти кнопочный пад будет работать как 3х кнопочный.
--- Конец цитаты ---
Profi:
в общем, слишком много деталей получается в джойстике, если его делать на рассыпухе. Проще в любымый джой вживить микруху-каплю от китайца за 50 рублей. Хотя мне было бы просто интересно собрать схему рабочего джоя.

Есть вопрос который пока мне более интересен: это возможность самостоятельной сборки разветвителя Multi Tab (который в один порт подключается). Нужен он, главным образом, для игры в Columns III. Пока даже не видел описание интерфейса, а дебаг игры у меня займет просто тучу времени, т.к. ассемблер понимаю не достаточно хорошо.
Andrey_stal:
Народ подскажите пожалуйста на Sega md1 будут работать 6 кнопочные от второй . Пробовал от клона подключать так работает ток как 3 кнопочный . на клоне все 6 работают.
senchik:

--- Цитата: Profi от 18 Май 2012, 16:40:48 ---в общем, слишком много деталей получается в джойстике, если его делать на рассыпухе. Проще в любымый джой вживить микруху-каплю от китайца за 50 рублей. Хотя мне было бы просто интересно собрать схему рабочего джоя.

--- Конец цитаты ---
"Пацан шёл к успеху"... при применении деталей поверхностного монтажа всё укладывается в стоимость ~100 руб, ну и плюс интересно же)))
Впринципе благодаря мануалу от импортных дядь https://www.raspberryfield.life/2019/03/25/sega-mega-drive-genesis-6-button-xyz-controller/ и мануалу от наших дядь на 561ЛС2 (которая почему-то хается, хотя по сути она в чём-то лучше чем даже оригинальная на 74hc157), а так же пресловутой схеме на 2х 74hc157 которая тоже была близка к успеху...
Родилась идея сделать тоже, пока набросал схему, по логике должна работать, по электрике +/-, если укажите на ошибки и просчёты буду благодарен.
Nhisti:
senchik, Нс всякий случай отмечу, что ты отвечаешь на сообщение почти одиннадцатилетней давности...  :-\
senchik:

--- Цитата: Nhisti от 25 Март 2023, 17:27:35 ---senchik, Нс всякий случай отмечу, что ты отвечаешь на сообщение почти одиннадцатилетней давности...  :-\

--- Конец цитаты ---
на всякий случай отмечу, что Sega уже 25 летней давности)) Но джойстики и сейчас ломаются и их надо ремонтировать)) И кнопок за это время не стало больше... стоит ли ещё одну тему плодить?
pipiman:
Кто-нибудь проверял схему от senchik, или предложит другую схему? Хочу оживить пару своих 6-кнопочных джоев от Сеги ^_^
Rumata:

--- Цитата: pipiman от 06 Январь 2024, 23:04:19 ---Кто-нибудь проверял схему от senchik,
--- Конец цитаты ---
Нет ни малейшего желания. Пусть автор сам проверяет. По-хорошему он это должен был сделать до того, как что-то выкладывать. Но это я так, идеализирую, конечно  :biggrin:
Навигация
Главная страница сообщений
Предыдущая страница

Перейти к полной версии