Sega Gopher ModeFIX + ModeButton
2015-7-29 15:01 Sega
Как и обещал в обзоре на Sega Gopher, расскажу как исправить глюк (или фичу) с постоянно зажатой кнопкой Mode в портативном режиме работы.
Проблема уходит корнями в схемотехнику консоли, разработанную где-то в КНР неизвестными изобретателями. Трудно сказать, почему они сделали именно так, но меня это совершенно не устраивало. К тому же, многие хакеры, не железячники, говорили что проблема чисто программная, бросая мне, тем самым, вызов что-ли.. Что-то мне подсказывало, что дело не в софте, а в железе.
Всё начинается с логических рассуждений. Подключаем консоль к телевизору, запускаем JoyTest и видим, что кнопка Mode не зажата. При этом встроенный в Gopher дисплей выключен. Если запустить консоль в обычном режиме, не подключая к ТВ, кнопка Mode зажимается чем-то волшебным. Наверняка кнопка Mode зажимается дисплеем, но как такое может быть ... Снова подключил консоль к ТВ, замерил напряжение на контактах шлейфа подключения встроенного дисплея к плате и увидел, что оно везде равно логической единице (+3.3в). Включил консоль в обычном режиме, не подключая к ТВ, и стал подтягивать сигналы с дисплея к +3.3в и смотреть на запущенную JoyTest. Результат проявился почти сразу. Если подтянуть 30 пин (DB15) шлейфа дисплея к +3.3в, то кнопка Mode отжималась! Было радостью понять, что дело всё-таки не в софте, и что моё предчувствие меня не обмануло! Можно сделать вывод, что кнопка Mode нажата при лог.0 и не нажата при лог.1.
Но не всё так хорошо, как кажется. При подтяжке сигнала данных к +3.3в, мы фиксируем сигнал, только в логической единице. Это подкрашивало всю картинку на экране, она приобретала красноватый оттенок. Кнопку отжимаем, но картинку портим - не годится!
Основная проблема заключалась в том, что на обнаруженном мною контакте, висел не один сигнал опроса кнопки, а смесь из двух:
- сигнал опроса кнопки Mode;
- сигнал данных для встроенного дисплея, старший бит для красного цвета (D15).
Таким образом, нужно было как-то модифицировать его, воздействуя только на сигнал опроса кнопки, не затрагивая сигнала данных для дисплея. Задача кажется невыполнимой, т.к. любое вмешательство в сигнал безвозвратно меняет его. Никто не говорил, что будет просто Модификация приставки представляет собой добавление в схемотехнику консоли нескольких радиодеталей и удаление одной (да лишние тоже есть). Если аккуратно и не торопясь подойти к делу, то у вас получится безопасно повторить мою модификацию. Все модификации будут производиться внутри приставки, после завершения модификации, внешний вид не пострадает. Технология модификации, изложенная в данной инструкции, является просто примером того, как можно её выполнить, при желании можно сделать как угодно.
Если вы решились на подобную модификацию, то вся ответственность ложиться только на вас. Если приставка выйдет из строя, то в этом виноваты будете только вы, и никто другой! Удачи
Первое, с чего нужно начать, это закупиться нужными радиодеталями. Для нашей модификации нам понадобятся:
- диод 1n4148;
- резистор номиналом 10 кОм и резистор номиналом от 75 до 91 Ом;
- керамический конденсатор 0.1 мкФ.
Всё достаточно просто, поэтому расписывать особо не буду. Собираем схему, запаиваем, проверяем качество пайки и включаем консоль.
Будьте внимательны и не перепутайте точки местами, у меня, конечно, ничего не сгорело, но лишняя внимательность и аккуратность не помешает. Провода лучше оставлять с запасом, в корпусе они не будут мешать, но если их не хватит чтобы расположить диод и резистор в местах, где они не будут мешать закрытию корпуса, то это будет лишняя головная боль. В завершении модификации не лишним будет изолировать наши радиодетали, которые смогут закоротить что-нибудь, и испортить приставку.
Значения цифр в схеме:
- выход ЦПУ сигнала опроса кнопки Mode или сигнала данных дисплея DB15. Поскольку схема ставиться в разрыв, то для нас это вход модифицируемого нами сигнала;
- точка приходящая с 30 пина шлейфа встроенного дисплея, на схеме выглядит как выход, т.к. туда мы будем выдавать модифицированный сигнал данных DB15;
- точка подтяжки к +3.3в, подтяжка осуществляется через резистор номиналом от 75 до 91 Ома;
- масса (земля или минус). Подтяжка к земле через резистор 10 кОм, для уменьшения помех.
Существует несколько разных вариантов плат Gopher, для 3-х я смог зарисовать диаграммы распайки модификации на одном листе, остальные должны быть очень похожи.
После того как всё собрали, можно проверить работоспособность приставки вообще и работоспособность модификации. Если при включении на экране всё как обычно, то вы как минимум ничего не сломали. Это не может не радовать. Дальше скачиваем программку Joytest.rar на флешку *Суслика*, запускаем и смотрим, что она нам показывает. Если кнопка Mode не зажата, то буковка M будет фиолетового цвета, как и все остальные кнопки, и все шесть столбцов должны быть с нулями, что говорит нам о правильной работе нашей модификации. Если же кнопка Mode зажата (модификация не удалась, ищем ошибки и проверяем ещё раз правильность), то буква M отображается белым цветом. На рисунке ниже пример того что можно увидеть, также можно протестировать и другие кнопки, раз уж запустили программу.
После удачной проверки можно собрать консоль и запускать игры, которые до этого приходилось модифицировать вручную, для отмены опроса кнопки MODE в runtime.
А давайте запилим в Gopher настоящую кнопку Mode и тогда он станет сверхуникальной портативной Sega MegaDrive ?!
Здесь всё уже проще, нужно либо отключать нашу схему, разрывая связь от точки 3, либо уменьшать воздействие логической единицы на катоде диода 1n4148. У меня не хватило ума разобраться с транзистором, поэтому я собрал глупо, по-простому, но схема работает стабильно! Чему, надеюсь, не только я рад.
Схему отладили, теперь запаяем кнопку на плату и установим в корпус. Кнопку взял тактовую размером 4х4мм и высотой 7мм. В моём радиомагазине она называется SWT 4x4x7. Лучше один раз увидеть, чем сто раз услышать, поэтому смотрим на фотки и делаем аналогично.
Одна пара ног запаивается на землю, другая пара подается через резистор 150 Ом в схему. Главное не забыть, что ноги у кнопки замкнуты попарно, т.е. при нажатии одна пара замыкается с другой. Контактов у кнопки 2, а не 4 как может показаться пионерам .
Являясь противником навесного монтажа, развел платку и запаял все детали на неё. Печатку в формате LAY6 можно скачать ниже.
Кнопку можно и больше запаять, главное не ошибиться с размером и расположением отверстия, иначе не очень красиво получиться. Нажимается кнопка удобно и не мешает при игре, если не нужна. Теперь мой Gopher со всеми кнопками, что есть на обычном 6-ти кнопочном джойстике Sega MegaDrive.
Эпюры сигналов в точках 1 (рис. слева) и 2 (рис. справа) без нажатой кнопки выглядят следующим образом:
Видно что в точке 1 сопротивление 82 Ома подняло логический ноль на уровень 1.70 в. После прохождения диода размах всего сигнала убавился на величину падения напряжения диода, в моём случае это 0.5в, т.е. теперь логический ноль это 1.20 в. Для дисплея логический ноль в 1.20 в всё ещё является нулем, а логическая единица всё ещё распознается как единица, и весь сигнал успешно переваривается дисплеем. Но для процессора приставки виден сигнал в точке 1, а там другая история, для процессора наш логический ноль уже является единицей, т.е. кнопка модэ - отпущена. При нажатии на кнопку модэ процессору нужно будет получить логический ноль.
Эпюры сигналов в точках 1 (рис. слева) и 2 (рис. справа) с нажатой кнопкой выглядят следующим образом:
При нажатии на кнопку мы через сопротивление в 150 Ом притягиваем размах сигнала к земле, т.е. наш логический ноль в точке 1 стал 1.20 в, что распознается процессором как ноль и кнопка модэ становится нажатой, при этом в точке 2 размах сигнала ещё меньше на 0.5в и этого достаточно, чтобы дисплей правильно его интерпретировал.
До нажатия кнопки важно, чтобы логический ноль, который мы поднимает до 1.7в в точке 1, был не слишком большой для дисплея, выходя из точки 2, а после нажатия на кнопку важно, чтобы логическая единица в точке 2 была достаточно большой для распознавания контроллеров дисплея как единица.
На видео ниже видно как Batman при зажатии кнопки Mode выполняет разные действия, либо идет спиной назад, либо поворачивается в противоположную сторону.
Теги: Sega MegaDrive Gopher Portable Mode FIX ModeFIX Модификация Button