ПОДКЛЮЧЕНИЕ Джойстика (Контроллера) Сега к компьютеру Техническая Помощь и Подключение Джойстики и Контроллеры - (Читайте Коды, Секреты, Пароли, Статьи) - OldCityRetroGames

Меню

Категории, жанр

Приставка (Консоль)
Картриджи и Флеш-картриджи
Джойстики и Контроллеры
Телевизор, Приставка и ПК
Дампинг и прочее
Эмуляторы, и другие программы..
Железо, Самоделки и дополнения.
Сайт (Помощь по онлайн играм..)
Прочее
Настройки и другое
Запись игр (образов, ромов)

Главная » Читать » Техническая Помощь и Подключение » Джойстики и Контроллеры


ПОДКЛЮЧЕНИЕ Джойстика (Контроллера) Сега к компьютеру (Техническая Помощь и Подключение)

Началось все с того, что я очень захотел подключить полюбившийся с детства сеговский джойстик к компьютеру. Перекопав весь интернет, я обнаружил множество схем переходников для подключения сеговского джойстика к параллельному порту компьютера, но ни одного описания принципов работы этих переходников. Вся информация в статьях по подключению сеговского джойстика к компьютеру сводилась, в основном, к обучению считать ножки у разъемов, определять полярность диодов и, в самой популярной статье, - пить пиво. Я бы с этим смирился, если хотя бы одна из предложенных схем нормально работала. Но у всех схем был один и тот же недостаток, – так называемые «произвольные нажатия» кнопок Икс, Игрек, Зет и Мод. Тогда я был уверен, что это проблема схемы переходника. В журнале Радио (2003г.№12) С.Рюмиком была предложена новая схема на двух транзисторах, восьми диодах и трех резисторах. Однако на практике я не заметил ни одного преимущества этой схемы перед схемой «linux» из пакета PPJoy, которая не содержала каких-либо радиодеталей вообще, ну, разве что, разъемы, чтобы наспех всунутые в порт и джойстик провода не выскакивали во время игры.

В сети ходили слухи, что под 98-й виндой, джойстик работает нормально, однако, даже если это было правдой, – мне не хотелось возвращаться с XP на 98-ю ради нормальной работы сеговского джойстика. Я почти разуверился найти способ заставить сеговский джой не выдавать ложных нажатий злосчастных кнопок, опросил всех, кого только можно, - у всех такая же проблема: джойстик «нормально» работает, только время от времени, при удержании стрелок направления, срабатывают кнопки X,Y,Z или Mode. Собравшись было прекратить поиск, я случайно натолкнулся на датированную сентябрем 1996 года статью Чарльза Розенберга (Charles Rosenberg, http://www.cs.cmu.edu/~chuck/infopg/segasix.txt), в которой очень подробно описывались принципы работы сеговских джойстиков - Мегадрайв с тремя кнопками, и Мегадрайв-2 - с шестью. Прочитав данную статью я догадался в чем может крыться суть проблемы «произвольных нажатий», написал свой драйвер XYZModeB, работающий с джойстиком через переходник по схеме сега-линукс и устраняющий «произвольные нажатия». Однако статья эта написана по-английски, поэтому я решил изложить ее смысл по-русски для тех, кто возможно хотел бы узнать о принципе работы сеговского джойстика, но не знает английский настолько хорошо, чтобы понять оригинал статьи. Так же мною добавлены рисунки и схемы для наглядности (в оригинале все было только в текстовом виде). И еще: простите меня за возможные недочеты, так как по образованию я не являюсь ни радиотехником, ни переводчиком. Хотя я очень надеюсь, что все ошибки замечу сам.

Итак, ближе к делу! Начнем с описания принципа работы оригинального 3-х кнопочного джойстика Сега Мегадрайв (4стрелки+3кнопки+Старт=8сигналов). Микросхема 74HC157 на плате джойстика - это КМОП мультиплексор (смеситель) двух линий в одну, далее – просто чип. Чип нужен для передачи состояния сразу двух кнопок по одному проводу с целью уменьшения количества проводов. Принцип его работы такой: имеются по паре входов (A и B) на каждый выход (Y). Сигналselect управляет микросхемой. Когда на select подается сигнал низкого уровня (логический 0), то на выходе Y - то же, что и на входе A. Когда же на select попадает сигнал высокого уровня (логический 1) - на выходе Y то же, что на входе B.

Таким образом, теоретически чип позволяет посылать 8 сигналов по 4 линиям. Однако в 3-х кнопочном сеговском джойстике использовалось 6 линий для передачи 8 сигналов. Это не было особо экономичным решением, зато обеспечивало обратную совместимость с джойстиками Atari 2600. Сигналы нажатий стрелок Вверх(Up) и Вниз(Down) подаются напрямую вне зависимости от состояния управляющей линии select. Другие же сигналы подаются на выходы в зависимости от состояния линии select:

Уточню, что Select=0 следует понимать как низкий уровень сигнала на линии select, а Select=1 – как высокий уровень сигнала. Сигналом низкого уровня или логическим нолем принято считать напряжение в ноль вольт или близкое к нему, а высоким или логической единицей – в данном интерфейсе – напряжение близкое к пяти вольтам. Во время игры на приставке процессор изменяет уровень сигнала на линии select в зависимости от того, состояние каких кнопок необходимо получить. Если кнопка нажата, - она замыкает сигнал соответствующей линии на землю(GND) и сигнал на выходе будет низкого уровня (0), если кнопку отпустить – на соответствующем выходе получим высокий уровень сигнала (1). Не перепутайте, когда будете писать собственный драйвер ;) .

На данной схеме вы можете видеть как изменяется уровень сигнала на линии select в процессе опроса джойстика. Схема не совсем правильно отражает соотношение времени высокого и низкогоуровня сигнала select, поэтому я подписал примерное время для частоты опросов равной 60 герц. В принципе Частота сигнала может быть и больше и меньше, а сигнал сам по себе может быть асинхронным, в разумных пределах. Предельные значения зависят от чипа конкретного джойстика и могут быть определены опытным путем.

Теперь, я попрошу вас перевести дыхание, подытожив прочитанное, так как все вышеизложенное было лишь преамбулой к 6-ти кнопочному джойстику. Если вы чего-либо недопоняли из предыдущего описания, то перечитайте его еще раз, иначе вы рискуете не понять продолжение темы.

Итак, приступим к рассмотрению принципа работы 6-ти кнопочного джойстика Сега Мегадрайв (4стрелки+6кнопок+Старт+Мод=12). В этом джойстике на плате вместо серийной микросхемы мы видим специальный чип. Что он из себя представляет по сути, - мы можем только догадываться. Поэтому единственный вариант – используя осциллограф, посмотреть, что будет происходить с сигналами во время игры, использующей три новых кнопки. MK3 как раз подойдет :)!

Все же не совсем понятно, зачем изготовители решили заменить старый добрый мультиплексор на чип изготовленный по спецзаказу. Неужели у них были излишки времени и денег? Что же, и это – вполне возможно, однако причина видимо кроется в другом. Причина – все та же обратная совместимость, только на этот раз – с играми, использующими лишь три кнопки. Вот как изменяетсяselect на 6-ти кнопочнике:

Частота примерно та же, но если на 3-х кнопочнике 60 раз в секунду select изменялся в ноль и обратно один лишь раз, то здесь, мы 60 раз в секунду видим по 4 пульса в ноль и обратно на высокий уровень.

Не стану описывать, каким образом автор оригинальной статьи на английском выяснял назначение каждого из четырех импульсов, скажу лишь о практической реакции джойстика на эти импульсы: на первые два из них 6-ти кнопочный джойстик реагирует также как и в 3-х кнопочном варианте. Однако сразу же после третьего перехода с ноля на высокий уровень, чип выдает данные о состоянии новых кнопок X,Y,Z,Mode на те же линии по которым передаются данные о состоянии стрелок джойстика при Select=1. Мы можем представить себе это как третье состояние линии selectи назвать его Pulse-3. Четвертый импульс - просто возвращает джойстик в режим совместимости со старым интерфейсом. Теперь таблица реакции на нажатия кнопок будет выглядеть следующим образом:

Теперь все становится на свои места. Теперь, я надеюсь, вам стало ясно, что из-за малейшего промедления операционной системой подачи третьего импульса Pulse-3, драйвер, не имея возможности проверить сколько времени прошло между посылкой сигнала и реальным получением его портом, считает, что принимает данные о состоянии кнопок X,Y,Z,Mode, когда джойстик, просто не надеясь уже дождаться завершения цикла из 4-х импульсов, вернулся в режим совместимости и подсовывает ничего не подозревающему драйверу данные о состоянии стрелок.


У вас есть интересный материал - (Коды, секреты, статьи, и даже стихи и др.) и его нет на сайте, и вы желаете его добавить. Мы будем вам признательны за наполнение сайта. Найдите кнопку Добавить. и добавьте то, что вам и гостям будет интересно и полезно. Желаем вам хорошего настроения и ностальгии - OldCityRetroGames.ru

 

Категория: Джойстики и Контроллеры | Добавил: Emerald (29-Октябрь-2011)
Просмотров: 2599 | Теги: ПОДКЛЮЧЕНИЕ К КОМПЬЮТЕРУ | Рейтинг: 5.0/7
Всего комментариев: 0
avatar

Музыка из игр:

Macross / Choujikuu Yousai Macross / Макросс (Воздушная Крепость) - Избранное Ecco the Dolphin / Дельфин Экко TaleSpin / Чудеса на Виражах 


Онлайн игры:

Поддержать.

 

Мой профиль


[ Управление профилем ]
Чат
Поделиться
Что смотрят
Статистика
Яндекс.Метрика

Геймеров на сайте: 5
Гостей: 5
Участников: 0

Сейчас на сайте:

Сегодня сайт посетили
Друзья сайта.
tmnttf best-football radiogameplay Вся правда о ретроиграх и не только! Скачать игры и программы - Торрентыч KinoLegenda

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

OldCityRetroGames.ru © 2011 - 2016 Мобильная версия

%

Используются технологии uCoz