reddie
03.05.2022, 15:52
Основной материал (предыстория создания, описание, раскладка, плюсы-минусы и прочее):
Приветствую всех неравнодушных к детищу Клайва Синклера! Особенно почитателей самых разных игрушек, поскольку материал, в первую очередь, адресован геймерам и игроделам.
Хочу освежить ту область спектрумизма, где уже много лет царит полный застой. А именно в части джойстиков/геймпадов, устройств управления игровым процессом. За тридцать с лишним лет был улучшен и прижился лишь один стандарт: расширенный кемпстон-джойстик. Обладая некоторыми преимуществами перед однокнопочным, он имеет жирный минус, напрочь перечеркивающий все достоинства: ни одна старая игра не понимает дополнительных кнопок (битов) расширенного кемпстона. Ладно, если бы речь шла о малой части игрового софта, но 95%, если не больше, написано до внедрения восьмибитки. И в любой классической игре 80-90-х будет работать только кнопка "огонь". Остальное придется жать на клаве.
Размышляя над реализацией чего-то нового, обдумывал идеи новых портов ввода, модификацию уже имеющихся, но все это было отвергнуто по одной простой причине: весь существующий софт перестанет работать. Учитывая вышесказанное, я пошел другим путем. Предлагаемый мной вариант игрового девайса "эмулирует" нажатия клавиш. Да, подобные разработки уже были, в том числе и на форуме. Но все они завязаны на тот же Сеговский джойстик, ставший, по сути, официальным воплощением расширенного кемпстона, либо на джойстик от Денди. То бишь коренных различий в плане игровых возможностей между ними и 8-бит кемпстоном нет. Я же выбрал для подключения геймпад от Sony Playstation. Считаю его лучшим, что было придумано в плане игровых контроллеров. Это мое личное мнение, можно с ним не соглашаться, но такой геймпад обладает явным преимуществом за счет наличия спереди курков или, как мы их называли в древние времена, шифтов. Потом эту фичу подхватили другие производители приставок, но первой была именно Sony. За счет этих самых курков становятся возможными комбо-нажатия, т.е. двух-трех (да хоть четырех) кнопок одновременно, и это без учета кнопок направлений. Джойстики от Денди/Сеги на такое физически не рассчитаны. Спросите, а для чего нужны комбо-нажатия? Да пожалуйста: разнообразные удары в файтингах, быстрая активация функций без необходимости лазить по меню, простая реализация дополнительных умений/действий без клавиатуры и так далее. Кроме всего, у геймпада от Sony тупо больше кнопок =) Четырнадцать, если конкретизировать. Вроде бы, куда столько Спектруму? Поверьте, будет девайс - появится и софт под него. И "куче" кнопок сразу найдется применение. (спойлер: в условной Элите можно было бы рулить кораблем прямо с геймпада, для основных функций - маневрирование, обзор, работа с вооружением - кнопок хватает)
Так вот. В моей реализации, с точки зрения компьютера, нажатия на геймпаде это нажатия на клавиатуре. Такой подход дает поддержку "из коробки" любой существующей игрой, где можно переназначить клавиши. Причем крестовина направлений и условная кнопка "огонь" дублируют стандартный Sinclair-джойстик (клавиши 6-0), а он предлагается практически в любой игре, даже там, где переназначения клавиш нет. Второй полуряд цифр (1-5) также использован целиком, что дает, в большинстве случаев, лазить по пунктам меню, не притрагиваясь к клавиатуре. Вспомните старые игры: практически везде меню управляется "цифрами". Полная раскладка приведена ниже, и хочу заметить, что соответствие клавишам выбрано не от балды, а с учетом максимального удобства как для юзера, так и для программиста.
https://pic.maxiol.com/thumbs2/1651583108.1597255554.zxpad.jpg (https://pic.maxiol.com/?v=1651583108.1597255554.zxpad.jpg&dp=2)
Видим, что 1-5 "ложатся в ряд", легко запомнить. 6-0 чуток сложнее, но быстро осваивается. А для курков выбран полуряд с Enter, и не просто так. Изначально вешал их на полуряд P-Y, но поступило предложение от бета-тестера девайса. Суть: по завершении игры часто требуется ввести имя в таблицу рекордов (актуально для многих старых игр). Само имя роли не играет, можно набарабанить любые кнопки. Но для подтверждения обычно надо нажать Enter. И, чтобы не тянуться лишний раз к клавиатуре, жмем "Enter" прямо с геймпада. Весьма удобно. Или, скажем, надо ввести кол-во денег/патронов/предметов для покупки/продажи/выброса, либо цифровой код/пароль. Все цифры на геймпаде есть, набираем число и жмем "Enter". Заодно получаем пару побочных функций навроде просмотра листинга Бейсик-программы ("K"List+Enter) или удаления строк =) В принципе, можно повесить контроллер на любые полуряды, грамотно написанная программа проведет тестирование и сконфигурирует управление сама. Именно так работает мой тест, в нем заложена возможность выбрать любые полуряды. Но для закрепления стандарта и исключения возможных конфликтов в будущем (например, подключение второго геймпада) желательно использовать предложенный вариант с цифровым рядом + полуряд с Enter.
Да, предлагаемый девайс не просто имитирует кусок клавиатуры; есть важное отличие со знаком плюс. Думаю, любому спектрумисту известно о такой проблеме, как конфликт полурядов. Напомню, что при зажатии нескольких клавиш в разных полурядах (если кнопки попадают на один и тот же бит в портах) они как бы микшируют задействованные полуряды по маске AND. Говоря проще, кнопки, например, Q,A,P,Enter (и еще четыре) относятся к нулевому биту. И зажав, допустим, Q и A, а затем нажав R, в любой программе опроса портов увидим нажатой еще и клавишу F, соответствующую биту клавиши R. Наглядно это показано в видеообзоре, ссылка в конце поста. Так работает механическая клавиатура Спектрума, и эту фичу, насколько мне известно, копируют все существующие эмуляторы и контроллеры писишных клавиатур (upd: в эмуляторах, как выяснилось, конфликта либо нет, либо он отключается через опцию, как в Unreal). Но в геймпаде с 14-ю кнопками такое смешение неприемлемо. Благодаря простому схемному решению конфликта не происходит, что делает возможным любые комбинации нажатий.
Вроде бы все плюсы перечислил, опишу и минусы. Их немного, но они есть.
Во-первых, требуется физическая переделка геймпада, и с приставкой он больше работать не будет. Совсем без переделок в любом случае не обойтись: как минимум, нужно менять родной проптиеарный разъем. Поэтому мысли вида "теперь поюзаю любимый геймпад от своей старой Соньки еще и на Спектруме" придется отбросить. Но разъемом дело не ограничится. Я принципиально отказался от использования микроконтроллеров и прочих чипов. Задумка была сделать устройство максимально простым, легким в подключении к старым моделям без слотов расширения, желательно на элементной базе эпохи активного спектрумизма (80-е годы), дабы не выбиваться из ретро-стилистики. Первая Playstation, напомню, пошла в массы в 1994 году, и вполне может быть отнесена к ретро-технике. Так что никаких CPLD и Атмег. Только МГТФ, только хардкор =) Отсутствие микросхем - еще один плюс: устройству не требуется питание (и лишние провода для него). Из электронных компонентов - самые распространенные диоды 1N4148 (КД521/522) в количестве 14 штук, по числу кнопок. Как раз применение диодов позволило устранить конфликт клавиш из разных полурядов. А полная диодная развязка и отсутствие питания исключают шансы спалить комп при неправильном подключении.
Во-вторых, любой консольный геймпад не совсем рассчитан на активную работу с диагоналями направлений. Это не джойстик и тем более не клавиатура, где можно долго удерживать диагонали и на ходу менять их. Нет, при умеренном использовании трудностей не возникает, но в играх наподобие Commando это становится проблемой. Однако, за счет наличия курков, решение очевидно: назначаем "вверх" (можно и "вниз") на правые или левые - кому как удобней - курки, а влево-вправо давим на крестовине. Или, наоборот, влево-вправо вешаем на левый и правый курки, а вверх-вниз оставляем стандартно. Какой вариант подойдет больше, зависит от конкретной игры. Плюс на контроллере для Соньки, да и не только на нем, диагонали могут активироваться сами при сильных или неаккуратных нажатиях какого-либо направления. И это не следствие переделки, родной геймпад ведет себя аналогично. Недостаток был устранен с помощью волшебной синей изоленты, теперь нажимается ровно то, что нужно :)
Вот, пожалуй, и все минусы. Плюсов, как ни крути, намного больше. Подведу итоги:
+ намного больше кнопок, чем у 8-бит кемпстона;
+ возможность комбо-нажатий нескольких кнопок одновременно;
+ поддержка всем старым софтом за счет эмуляции нажатия клавиш;
+ простое подсоединение к любому Спектруму с обычной матричной клавиатурой, то есть, почти к любому отечественному клону, без каких-либо переделок платы. Тем, у кого выведен пассивный Sinclair-джойстик, для подключения достаточно припаять _всего_ два проводка к разъему DB-9 или DIN7 на корпусе компа;
+ девайс несложно собрать самому, никаких заказных микросхем или плат не требуется;
+ можно использовать даже "дохлый" в плане электроники геймпад, был бы цел механически;
+ необязателен именно контроллер от Sony PS, есть функционально аналогичные от других консолей;
+ проверка исправности переделанного геймпада не требует подключения к компу и может быть выполнена обычным тестером, причем каждой кнопки в отдельности, что полезно при сборке и диагностике;
+ безопасное подключение к работающему компьютеру за счет отсутствия питания.
- нужна механическая переделка геймпада, придется вечерок посидеть попаять;
- к моделям без входа под матричную клаву сей вариант устройства не подойдет;
- варианта под ZX-BUS (пока) нет, так что немного попаять придется, даже если купить готовый девайс;
- на моделях без буферизации клавиатурных линий возможны ложные "срабатывания" ненажатых кнопок при активной работе с геймпадом. Это проблема именно компа, а не геймпада: аналогичные глюки проявляются при слишком длинном клавиатурном шлейфе. Лечится подбором номинала подтягивающих резисторов на входах мультиплексоров клавиатуры.
Словесное описание эт хорошо, но, дабы иметь наглядное представление о девайсе, прилагаю видеобзор подключения к двум легендарным клонам начала 90-х: Ленинград-48 и Скорпион-256. Они во многом схожи, но в Ленине нет буферизации клавы, и вообще, мой экземпляр сам по себе с глюками по ее части. Тем не менее, геймпад успешно работает на обоих. А втыкается в то самое советское гнездо для джойстика (в Ленинграде заменил СГ5 на СГ7; в трех моих Скорпионах СГ7 стояли изначально). Представьте лицо какого-нибудь старого знакомого, зашедшего "на огонек", когда вы подрубаете плейстешновский контроллер прямо в древний Спектрум =)
Видео снято одним дублем, без монтажа, так что простите за некоторую затянутость :v2_dizzy_facepalm: лишь вырезаны самые "скучные" места. Заодно в ролике показан конфликт полурядов в действии. Кто не в теме - посмотрите.
Отдельно остановлюсь на такой модели, как ZX-Evo. На плате есть разъем под мех. клаву и старые джойстики - казалось бы, делов-то, спаять переходничок, воткнуть в плату и радоваться. Но не тут-то было. Похоже, создатели Evo решили, что они - отдельная цивилизация, и реализовали опрос механики через задницу. Адресные линии, задающие полуряды, тут являются входами данных, а биты кнопок - выходами на клавиатуру. Короче, сделано наоборот. Для обычной клавы разницы никакой, там банально замыкаются контакты. Но в схеме геймпада стоят диоды, а они, как известно, проводят ток в одном направлении. Поэтому рассчитанная на нормальный комп схема не работает. И это лишь полбеды. Судя по мануалу, внутриплатные порты ZX-Evo не выводятся на слоты ZX-BUS, что означает невозможность подключения внешних контроллеров клавиатуры (например, геймпада, имитирующего клаву). Короче, забетонировано все. Зачем так было делать - лично мне непонятно.
(по моей просьбе владелец Evo проверил насчет блокировки портов: да, внешняя писи-клавиатура, подлюченная через DivGMX, не работает)
В принципе, развернув диоды и переделав схему, можно подрубить ее к разъему механики Evo. Но проще, на мой взгляд, будет переписать код наплатной Атмеги, заведующей опросом устройств ввода. Причем тут два варианта: либо вернуть нормальный опрос полурядов механики, либо убрать кастрированный однокнопочный кемпстон, освободив пины Меги, и подключать родной геймпад от Sony напрямую, без переделок. Желающие могут объединиться и заняться, дело полезное.
И вообще, тем, кто хотел бы подключать геймпад в слот ZX-BUS, в идеале родной, без переделки, могу рекомендовать выбрать среди уже имеющихся контроллеров PS/2 клавиатур-мышей тот, где найдутся свободные пины и найти кодера, чтоб переписал прогу микроконтроллера/написал новую. Я только за. Чем более доступен будет девайс - тем лучше. Давайте вместе приложим все усилия для этого. Протокол обмена с геймпадом несложный, информацию при необходимости предоставлю.
Желающих повторить конструкцию категорически приветствую, подробная инструкция с фотографиями будет чуток позднее. Микросхем и плат из Китая заказывать не нужно, достаточно кусочка макетной платы для компоновки диодов, ну и самих диодов (14 штук). Суть моей железяки как раз в простоте изготовления "на дому". А чем больше народа обзаведется девайсом, тем быстрее он станет - надеюсь - новым стандартом в играх. Уж сколько всего наизобретали для Спектрума, а по части геймпадов печаль и тоска...
upd: в эмуляторах для поддержки нового стандарта достаточно переназначить кнопки писишного геймпада через настройки эмулятора, это ещё один плюс в пользу решения с имитацией нажатия клавиш.
Еще раз уточню: моя основная идея - именно популяризация нового игрового стандарта, а не просто реализация нажатий абстрактного набора кнопок. Согласитесь, конечному пользователю удобней видеть в описании управления именно то, как обозначены кнопки на геймпаде, то есть их иконки/подписи, а не переводить в уме "так, клавиша 3 это у меня квадрат, J это будет R2, а оружие... черт, забыл, где". Чтобы управление выбиралось/менялось в таком же виде, как на приставке, а не буквами клавиатуры. Конечно, это задел для будущего и новых игр, но главное - начать внедрение нового устройства в массы и его поддержку. И тут многое зависит от игроделов, создателей нового софта. Прошу обратить внимание на перспективное направление и открывающиеся возможности в плане управления игровым процессом. Раскрыть тему могу позже, в обсуждении.
Новому интерфейсу неплохо бы дать название. Есть же кемпстон, есть интерфейс-2, он же синклер-джойстик. Предлагаю обозвать его ZX-PAD. Кратко и отражает суть: геймпад для ZX Spectrum. Да, PS-PAD aka Playstation pad было бы логичней, но конкретная модель приставки/геймпада не должна, как считаю, ассоциироваться с интерфейсом, как это произошло с восьмибитным кемпстоном (сеговский джойстик стал синонимом 8-бит кемпстона). Народ может изготовить девайс из любого подходящего контроллера, одним плейстейшновским выбор не ограничивается. Главное - совместимость в аппаратно-программной части. Так что пусть будет ZX-PAD. Но если имеются возражения - предлагайте свои варианты. SPECTRUM-PAD тоже звучит :)
Подумав, добавлю: можно назвать просто "геймпад". В играх будет выбор: Keyboard, Sinclair, Kempston, Gamepad - очень даже смотрится, абсолютно нейтрально, без привязки к фирме-производителю, и сразу понятно, о каком типе управления речь.
Конечно, картина будет неполной без отзывов реальных людей. Несколько человек, кому высылал геймпады, остались вполне довольны. Как выразился один из них, "будто с Оки на Лексус пересел". Надеюсь, те, кто зареган на форуме, отпишут в топике о своих впечатлениях. Пользуясь случаем, выражаю благодарность форумчанам izzx и Evgeny Muchkin за участие в тестировании устройства и ценные замечания/предложения по его улучшению: с вашей помощью удалось довести конструкцию до ума. Те, кто в дальнейшем соберет/заполучит игрушку, тоже отписывайтесь. Для оценки перспективности и нужности геймпада сделаю опрос - голосуйте, увидим, насколько востребован новый интерфейс.
Касаемо приобретения готовых девайсов. В небольших количествах могу делать сам по мере сил, запас материалов у меня достаточный. Будет интерес - создам тему на барахолке, чтобы не засорять форум и соблюсти правила. Но изготовление требует некоторого времени, быстрое массовое производство я не осилю. Как уже написал, запас материалов есть, могу рассылать полные наборы для самостоятельной переделки (родной геймпад, разъемы, диоды, шлейф для переходника и т.д.) - если будет спрос, тоже могу вынести на барахолку.
Позже, при наличии интереса, выложу подробную инфу по переделке с описанием нюансов, с фотографиями внутренностей и прочими ужасами. Лицам с тонкой душевной организацией на результаты препарирования геймпадов смотреть не стоит =) А если вы паяльник держали в руках от силы пару раз - переделкой лучше самостоятельно не заниматься. Помимо пайки, пригодится навык вырезания ножницами мелких фрагментов (доводка до ума включает наклеивание кусочков изоленты и фольги). Вся работа по переделке хоть и занимает, при должной сноровке, пару часов, но требует аккуратности и терпения.
По мере поступления отзывов пост будет редактироваться и пополняться информацией. Ответы для удобства буду структурировать и складывать под кат - сперва поглядите, нет ли там ответа на ваш вопрос. Спрашивайте, постараюсь оперативно отвечать на все. Если они будут по делу, а не пустая критика в духе "а зачем оно нам" или "я бы сделал свое/сделал лучше". Так сделайте, кто вам не дает? Повторюсь, но за кучу лет не реализовано ни-че-го в плане улучшения управления. Развития ноль. Меня это не устроило, и я сделал свой вариант, с прицелом на будущее, с хорошим потенциалом. Кто-то критикует, а кто-то делает - каждому свое.
Благодарю всех дочитавших длиннопост. Пишите свое мнение, задавайте вопросы. Вместе мы сделаем Спектрум лучше ;)
Отзывы владельцев (можете добавить свой, оформлю ссылку на пост):
https://zx-pk.ru/threads/34383-zx-pad-novyj-gejmpad-dlya-spektruma-(podklyuchaem-kontroller-ot-sony-playstation).html?p=1152636&viewfull=1#post1152636 от izzx
https://zx-pk.ru/threads/34383-zx-pad-novyj-gejmpad-dlya-spektruma-(podklyuchaem-kontroller-ot-sony-playstation).html?p=1154740&viewfull=1#post1154740 от Evgeny Muchkin
FAQ (вопросы и ответы, пополняется по мере поступления):
Q_00: Где схема, инструкция по переделке, распиновка разъемов?
A_00: На данном форуме особой заинтересованности пока не вижу. Если будет - дополню тему.
Q_01: Какова цена готового девайса и набора для самостоятельной сборки?
A_01: 1000р готовый, 500р - полный набор "сделай сам". Плюс за пересылку отдельно.
Разница - это минимальная цена за работу. Бесплатно делать никто не будет, согласитесь.
Тема на барахолке: https://zx-pk.com/forum/viewtopic.php?f=32&t=21110
Q_02: А если оно у меня не заработает? Или не понравится? Возврат возможен?
A_02: Да, в течение, скажем, двух недель от получения могу принять обратно при наличии веских на то причин.
Предварительно стоит провести несложные тесты для профпригодности вашего компа =)
Хотя бы потыкать диодом в разъем Синклер-джойстика и убедиться, что замыкание в нужную сторону работает.
Q_03: Что за геймпад берется за основу? Могу переделать имеющийся у меня, какой нужен?
A_03: Разумеется, китайская подделка. Если не швырять на пол и не гасить об него бычки, прослужит долго.
Можно взять за основу любой аналогичного функционала: крестовина, 4 кнопки справа, 2 в центре.
Плюс четыре кнопки курков спереди. Дополнительные кнопки и аналоговые стики роли не играют.
Другой вопрос, насколько удобной будет переделка платки. От Sony PS 1 переделать проще всего.
Речь про самый дешевый вариант без вибро и стиков. У дуалшока разводка платки сложнее.
К тому же, дуалшок и весит ощутимо больше, а вибрация в играх на Спектруме вряд ли появится.
Q_04: Какой разъем нужен для подсоединения к компьютеру? Что еще понадобится купить?
A_04: Предлагаю к пересылке с разъемом DE-9 и ответной частью с припаянным шлейфом.
Ничего искать/докупать не потребуется, нужно лишь припаять шлейф внутри компьютера.
Если плата компа на разъемах - отлично, ничего к ней паять не придется. Паяем к разъемам.
Либо, при свободном разъеме матричной клавы и наличии ответной части, втыкать туда.
Также есть вариант подключения в разъем Sinclair-джойстика, в наших клонах это обычно СГ5.
Нужно заменить его на СГ7 (DIN7), соответственно, на геймпаде будет СШ7 (DIN7-"папа").
Есть небольшой запас DIN7 и ответных частей, с DB-9 проблем нету. Так что на ваш выбор.
При самостоятельном изготовлении еще нужно немного изоленты, фольги и скотча.
Они, думаю, найдутся у всех, занимающихся самоделками и пайкой.
Q_05: Нужно ли что-то дорабатывать на плате компьютера? Не хотелось бы туда лезть...
A_05: Возможно, понадобится заменить пять резисторов подтяжки входов клавиатуры.
Актуально, в основном, для компов без буферных усилителей клавы. Не фатально, но учитывайте.
Q_06: Будет ли вариант под слот ZX-BUS, без переделки геймпада?
A_06: В будущем - возможно. Но сам этим заниматься пока не планирую. Я за простоту и ретро-стиль =)
Именно простота и дешевизна сделали Спектрум массовым. Применение микроконтроллеров усложнит схему,
плюс имеем ненулевые шансы на дохлый чипы, заказывая их. Чем проще схема - тем надежнее.
Q_07: Хорошо бы сделать кнопку с Autofire, это осуществимо?
A_07: В текущем виде - нет. Даже если заморочиться и доработать, получаем минус одну "обычную" кнопку.
Функция должна быть отключаемой, по-человечески это реализуется с микроконтроллером.
Q_08: Фольга на кнопках не внушает доверия, насколько надежен такой моддинг?
A_08: Она не вечная, да. Но хватает надолго, а заменить просто. Без нее кнопки надо жать с силой.
Из-за относительно большого сопротивления токопроводящей резины приходится ее клеить.
Возможно, в компах с CMOS-микросхемами на входах клавы фольга и не понадобится. Не проверялось.
Для TTL можно слепить двойной инвертор сигналов, но это лишние микросхемы. Вариант был отвергнут.
Q_09: А шнур геймпада долго протянет? Тем более китайского, они ж на всем экономят, заразы.
A_09: Если не вязать в узел, то послужит. И не сматывать вокруг геймпада каждый день, это хуже всего.
От такой "заботы" рано или поздно ломается даже шнур на оригинальном геймпаде. Не делайте так.
В части девайсов (где родной шнур 7 жил) заменяю проводки на МГТФ, шнур становится, по сути, вечным.
Возможна отсылка с родным шнуром, но их меньшинство, и в наличии может не быть.
Шнур для удобства сделан съемным, на разъеме-колодке (внутри контроллера).
Тест от производителя :D : https://disk.yandex.ru/d/WrHCYv3eAw65aA
Также прикреплен в аттаче в конце поста, если кто не может скачивать с Яндекс-диска.
Видеообзор с подключением к Ленинграду и Скорпиону:
https://youtu.be/mk4GZp2RQFo
Видеообзор работы в играх на реале и поддержки в эмуляторах:
https://youtu.be/7hkz7VEKHYQ
Приветствую всех неравнодушных к детищу Клайва Синклера! Особенно почитателей самых разных игрушек, поскольку материал, в первую очередь, адресован геймерам и игроделам.
Хочу освежить ту область спектрумизма, где уже много лет царит полный застой. А именно в части джойстиков/геймпадов, устройств управления игровым процессом. За тридцать с лишним лет был улучшен и прижился лишь один стандарт: расширенный кемпстон-джойстик. Обладая некоторыми преимуществами перед однокнопочным, он имеет жирный минус, напрочь перечеркивающий все достоинства: ни одна старая игра не понимает дополнительных кнопок (битов) расширенного кемпстона. Ладно, если бы речь шла о малой части игрового софта, но 95%, если не больше, написано до внедрения восьмибитки. И в любой классической игре 80-90-х будет работать только кнопка "огонь". Остальное придется жать на клаве.
Размышляя над реализацией чего-то нового, обдумывал идеи новых портов ввода, модификацию уже имеющихся, но все это было отвергнуто по одной простой причине: весь существующий софт перестанет работать. Учитывая вышесказанное, я пошел другим путем. Предлагаемый мной вариант игрового девайса "эмулирует" нажатия клавиш. Да, подобные разработки уже были, в том числе и на форуме. Но все они завязаны на тот же Сеговский джойстик, ставший, по сути, официальным воплощением расширенного кемпстона, либо на джойстик от Денди. То бишь коренных различий в плане игровых возможностей между ними и 8-бит кемпстоном нет. Я же выбрал для подключения геймпад от Sony Playstation. Считаю его лучшим, что было придумано в плане игровых контроллеров. Это мое личное мнение, можно с ним не соглашаться, но такой геймпад обладает явным преимуществом за счет наличия спереди курков или, как мы их называли в древние времена, шифтов. Потом эту фичу подхватили другие производители приставок, но первой была именно Sony. За счет этих самых курков становятся возможными комбо-нажатия, т.е. двух-трех (да хоть четырех) кнопок одновременно, и это без учета кнопок направлений. Джойстики от Денди/Сеги на такое физически не рассчитаны. Спросите, а для чего нужны комбо-нажатия? Да пожалуйста: разнообразные удары в файтингах, быстрая активация функций без необходимости лазить по меню, простая реализация дополнительных умений/действий без клавиатуры и так далее. Кроме всего, у геймпада от Sony тупо больше кнопок =) Четырнадцать, если конкретизировать. Вроде бы, куда столько Спектруму? Поверьте, будет девайс - появится и софт под него. И "куче" кнопок сразу найдется применение. (спойлер: в условной Элите можно было бы рулить кораблем прямо с геймпада, для основных функций - маневрирование, обзор, работа с вооружением - кнопок хватает)
Так вот. В моей реализации, с точки зрения компьютера, нажатия на геймпаде это нажатия на клавиатуре. Такой подход дает поддержку "из коробки" любой существующей игрой, где можно переназначить клавиши. Причем крестовина направлений и условная кнопка "огонь" дублируют стандартный Sinclair-джойстик (клавиши 6-0), а он предлагается практически в любой игре, даже там, где переназначения клавиш нет. Второй полуряд цифр (1-5) также использован целиком, что дает, в большинстве случаев, лазить по пунктам меню, не притрагиваясь к клавиатуре. Вспомните старые игры: практически везде меню управляется "цифрами". Полная раскладка приведена ниже, и хочу заметить, что соответствие клавишам выбрано не от балды, а с учетом максимального удобства как для юзера, так и для программиста.
https://pic.maxiol.com/thumbs2/1651583108.1597255554.zxpad.jpg (https://pic.maxiol.com/?v=1651583108.1597255554.zxpad.jpg&dp=2)
Видим, что 1-5 "ложатся в ряд", легко запомнить. 6-0 чуток сложнее, но быстро осваивается. А для курков выбран полуряд с Enter, и не просто так. Изначально вешал их на полуряд P-Y, но поступило предложение от бета-тестера девайса. Суть: по завершении игры часто требуется ввести имя в таблицу рекордов (актуально для многих старых игр). Само имя роли не играет, можно набарабанить любые кнопки. Но для подтверждения обычно надо нажать Enter. И, чтобы не тянуться лишний раз к клавиатуре, жмем "Enter" прямо с геймпада. Весьма удобно. Или, скажем, надо ввести кол-во денег/патронов/предметов для покупки/продажи/выброса, либо цифровой код/пароль. Все цифры на геймпаде есть, набираем число и жмем "Enter". Заодно получаем пару побочных функций навроде просмотра листинга Бейсик-программы ("K"List+Enter) или удаления строк =) В принципе, можно повесить контроллер на любые полуряды, грамотно написанная программа проведет тестирование и сконфигурирует управление сама. Именно так работает мой тест, в нем заложена возможность выбрать любые полуряды. Но для закрепления стандарта и исключения возможных конфликтов в будущем (например, подключение второго геймпада) желательно использовать предложенный вариант с цифровым рядом + полуряд с Enter.
Да, предлагаемый девайс не просто имитирует кусок клавиатуры; есть важное отличие со знаком плюс. Думаю, любому спектрумисту известно о такой проблеме, как конфликт полурядов. Напомню, что при зажатии нескольких клавиш в разных полурядах (если кнопки попадают на один и тот же бит в портах) они как бы микшируют задействованные полуряды по маске AND. Говоря проще, кнопки, например, Q,A,P,Enter (и еще четыре) относятся к нулевому биту. И зажав, допустим, Q и A, а затем нажав R, в любой программе опроса портов увидим нажатой еще и клавишу F, соответствующую биту клавиши R. Наглядно это показано в видеообзоре, ссылка в конце поста. Так работает механическая клавиатура Спектрума, и эту фичу, насколько мне известно, копируют все существующие эмуляторы и контроллеры писишных клавиатур (upd: в эмуляторах, как выяснилось, конфликта либо нет, либо он отключается через опцию, как в Unreal). Но в геймпаде с 14-ю кнопками такое смешение неприемлемо. Благодаря простому схемному решению конфликта не происходит, что делает возможным любые комбинации нажатий.
Вроде бы все плюсы перечислил, опишу и минусы. Их немного, но они есть.
Во-первых, требуется физическая переделка геймпада, и с приставкой он больше работать не будет. Совсем без переделок в любом случае не обойтись: как минимум, нужно менять родной проптиеарный разъем. Поэтому мысли вида "теперь поюзаю любимый геймпад от своей старой Соньки еще и на Спектруме" придется отбросить. Но разъемом дело не ограничится. Я принципиально отказался от использования микроконтроллеров и прочих чипов. Задумка была сделать устройство максимально простым, легким в подключении к старым моделям без слотов расширения, желательно на элементной базе эпохи активного спектрумизма (80-е годы), дабы не выбиваться из ретро-стилистики. Первая Playstation, напомню, пошла в массы в 1994 году, и вполне может быть отнесена к ретро-технике. Так что никаких CPLD и Атмег. Только МГТФ, только хардкор =) Отсутствие микросхем - еще один плюс: устройству не требуется питание (и лишние провода для него). Из электронных компонентов - самые распространенные диоды 1N4148 (КД521/522) в количестве 14 штук, по числу кнопок. Как раз применение диодов позволило устранить конфликт клавиш из разных полурядов. А полная диодная развязка и отсутствие питания исключают шансы спалить комп при неправильном подключении.
Во-вторых, любой консольный геймпад не совсем рассчитан на активную работу с диагоналями направлений. Это не джойстик и тем более не клавиатура, где можно долго удерживать диагонали и на ходу менять их. Нет, при умеренном использовании трудностей не возникает, но в играх наподобие Commando это становится проблемой. Однако, за счет наличия курков, решение очевидно: назначаем "вверх" (можно и "вниз") на правые или левые - кому как удобней - курки, а влево-вправо давим на крестовине. Или, наоборот, влево-вправо вешаем на левый и правый курки, а вверх-вниз оставляем стандартно. Какой вариант подойдет больше, зависит от конкретной игры. Плюс на контроллере для Соньки, да и не только на нем, диагонали могут активироваться сами при сильных или неаккуратных нажатиях какого-либо направления. И это не следствие переделки, родной геймпад ведет себя аналогично. Недостаток был устранен с помощью волшебной синей изоленты, теперь нажимается ровно то, что нужно :)
Вот, пожалуй, и все минусы. Плюсов, как ни крути, намного больше. Подведу итоги:
+ намного больше кнопок, чем у 8-бит кемпстона;
+ возможность комбо-нажатий нескольких кнопок одновременно;
+ поддержка всем старым софтом за счет эмуляции нажатия клавиш;
+ простое подсоединение к любому Спектруму с обычной матричной клавиатурой, то есть, почти к любому отечественному клону, без каких-либо переделок платы. Тем, у кого выведен пассивный Sinclair-джойстик, для подключения достаточно припаять _всего_ два проводка к разъему DB-9 или DIN7 на корпусе компа;
+ девайс несложно собрать самому, никаких заказных микросхем или плат не требуется;
+ можно использовать даже "дохлый" в плане электроники геймпад, был бы цел механически;
+ необязателен именно контроллер от Sony PS, есть функционально аналогичные от других консолей;
+ проверка исправности переделанного геймпада не требует подключения к компу и может быть выполнена обычным тестером, причем каждой кнопки в отдельности, что полезно при сборке и диагностике;
+ безопасное подключение к работающему компьютеру за счет отсутствия питания.
- нужна механическая переделка геймпада, придется вечерок посидеть попаять;
- к моделям без входа под матричную клаву сей вариант устройства не подойдет;
- варианта под ZX-BUS (пока) нет, так что немного попаять придется, даже если купить готовый девайс;
- на моделях без буферизации клавиатурных линий возможны ложные "срабатывания" ненажатых кнопок при активной работе с геймпадом. Это проблема именно компа, а не геймпада: аналогичные глюки проявляются при слишком длинном клавиатурном шлейфе. Лечится подбором номинала подтягивающих резисторов на входах мультиплексоров клавиатуры.
Словесное описание эт хорошо, но, дабы иметь наглядное представление о девайсе, прилагаю видеобзор подключения к двум легендарным клонам начала 90-х: Ленинград-48 и Скорпион-256. Они во многом схожи, но в Ленине нет буферизации клавы, и вообще, мой экземпляр сам по себе с глюками по ее части. Тем не менее, геймпад успешно работает на обоих. А втыкается в то самое советское гнездо для джойстика (в Ленинграде заменил СГ5 на СГ7; в трех моих Скорпионах СГ7 стояли изначально). Представьте лицо какого-нибудь старого знакомого, зашедшего "на огонек", когда вы подрубаете плейстешновский контроллер прямо в древний Спектрум =)
Видео снято одним дублем, без монтажа, так что простите за некоторую затянутость :v2_dizzy_facepalm: лишь вырезаны самые "скучные" места. Заодно в ролике показан конфликт полурядов в действии. Кто не в теме - посмотрите.
Отдельно остановлюсь на такой модели, как ZX-Evo. На плате есть разъем под мех. клаву и старые джойстики - казалось бы, делов-то, спаять переходничок, воткнуть в плату и радоваться. Но не тут-то было. Похоже, создатели Evo решили, что они - отдельная цивилизация, и реализовали опрос механики через задницу. Адресные линии, задающие полуряды, тут являются входами данных, а биты кнопок - выходами на клавиатуру. Короче, сделано наоборот. Для обычной клавы разницы никакой, там банально замыкаются контакты. Но в схеме геймпада стоят диоды, а они, как известно, проводят ток в одном направлении. Поэтому рассчитанная на нормальный комп схема не работает. И это лишь полбеды. Судя по мануалу, внутриплатные порты ZX-Evo не выводятся на слоты ZX-BUS, что означает невозможность подключения внешних контроллеров клавиатуры (например, геймпада, имитирующего клаву). Короче, забетонировано все. Зачем так было делать - лично мне непонятно.
(по моей просьбе владелец Evo проверил насчет блокировки портов: да, внешняя писи-клавиатура, подлюченная через DivGMX, не работает)
В принципе, развернув диоды и переделав схему, можно подрубить ее к разъему механики Evo. Но проще, на мой взгляд, будет переписать код наплатной Атмеги, заведующей опросом устройств ввода. Причем тут два варианта: либо вернуть нормальный опрос полурядов механики, либо убрать кастрированный однокнопочный кемпстон, освободив пины Меги, и подключать родной геймпад от Sony напрямую, без переделок. Желающие могут объединиться и заняться, дело полезное.
И вообще, тем, кто хотел бы подключать геймпад в слот ZX-BUS, в идеале родной, без переделки, могу рекомендовать выбрать среди уже имеющихся контроллеров PS/2 клавиатур-мышей тот, где найдутся свободные пины и найти кодера, чтоб переписал прогу микроконтроллера/написал новую. Я только за. Чем более доступен будет девайс - тем лучше. Давайте вместе приложим все усилия для этого. Протокол обмена с геймпадом несложный, информацию при необходимости предоставлю.
Желающих повторить конструкцию категорически приветствую, подробная инструкция с фотографиями будет чуток позднее. Микросхем и плат из Китая заказывать не нужно, достаточно кусочка макетной платы для компоновки диодов, ну и самих диодов (14 штук). Суть моей железяки как раз в простоте изготовления "на дому". А чем больше народа обзаведется девайсом, тем быстрее он станет - надеюсь - новым стандартом в играх. Уж сколько всего наизобретали для Спектрума, а по части геймпадов печаль и тоска...
upd: в эмуляторах для поддержки нового стандарта достаточно переназначить кнопки писишного геймпада через настройки эмулятора, это ещё один плюс в пользу решения с имитацией нажатия клавиш.
Еще раз уточню: моя основная идея - именно популяризация нового игрового стандарта, а не просто реализация нажатий абстрактного набора кнопок. Согласитесь, конечному пользователю удобней видеть в описании управления именно то, как обозначены кнопки на геймпаде, то есть их иконки/подписи, а не переводить в уме "так, клавиша 3 это у меня квадрат, J это будет R2, а оружие... черт, забыл, где". Чтобы управление выбиралось/менялось в таком же виде, как на приставке, а не буквами клавиатуры. Конечно, это задел для будущего и новых игр, но главное - начать внедрение нового устройства в массы и его поддержку. И тут многое зависит от игроделов, создателей нового софта. Прошу обратить внимание на перспективное направление и открывающиеся возможности в плане управления игровым процессом. Раскрыть тему могу позже, в обсуждении.
Новому интерфейсу неплохо бы дать название. Есть же кемпстон, есть интерфейс-2, он же синклер-джойстик. Предлагаю обозвать его ZX-PAD. Кратко и отражает суть: геймпад для ZX Spectrum. Да, PS-PAD aka Playstation pad было бы логичней, но конкретная модель приставки/геймпада не должна, как считаю, ассоциироваться с интерфейсом, как это произошло с восьмибитным кемпстоном (сеговский джойстик стал синонимом 8-бит кемпстона). Народ может изготовить девайс из любого подходящего контроллера, одним плейстейшновским выбор не ограничивается. Главное - совместимость в аппаратно-программной части. Так что пусть будет ZX-PAD. Но если имеются возражения - предлагайте свои варианты. SPECTRUM-PAD тоже звучит :)
Подумав, добавлю: можно назвать просто "геймпад". В играх будет выбор: Keyboard, Sinclair, Kempston, Gamepad - очень даже смотрится, абсолютно нейтрально, без привязки к фирме-производителю, и сразу понятно, о каком типе управления речь.
Конечно, картина будет неполной без отзывов реальных людей. Несколько человек, кому высылал геймпады, остались вполне довольны. Как выразился один из них, "будто с Оки на Лексус пересел". Надеюсь, те, кто зареган на форуме, отпишут в топике о своих впечатлениях. Пользуясь случаем, выражаю благодарность форумчанам izzx и Evgeny Muchkin за участие в тестировании устройства и ценные замечания/предложения по его улучшению: с вашей помощью удалось довести конструкцию до ума. Те, кто в дальнейшем соберет/заполучит игрушку, тоже отписывайтесь. Для оценки перспективности и нужности геймпада сделаю опрос - голосуйте, увидим, насколько востребован новый интерфейс.
Касаемо приобретения готовых девайсов. В небольших количествах могу делать сам по мере сил, запас материалов у меня достаточный. Будет интерес - создам тему на барахолке, чтобы не засорять форум и соблюсти правила. Но изготовление требует некоторого времени, быстрое массовое производство я не осилю. Как уже написал, запас материалов есть, могу рассылать полные наборы для самостоятельной переделки (родной геймпад, разъемы, диоды, шлейф для переходника и т.д.) - если будет спрос, тоже могу вынести на барахолку.
Позже, при наличии интереса, выложу подробную инфу по переделке с описанием нюансов, с фотографиями внутренностей и прочими ужасами. Лицам с тонкой душевной организацией на результаты препарирования геймпадов смотреть не стоит =) А если вы паяльник держали в руках от силы пару раз - переделкой лучше самостоятельно не заниматься. Помимо пайки, пригодится навык вырезания ножницами мелких фрагментов (доводка до ума включает наклеивание кусочков изоленты и фольги). Вся работа по переделке хоть и занимает, при должной сноровке, пару часов, но требует аккуратности и терпения.
По мере поступления отзывов пост будет редактироваться и пополняться информацией. Ответы для удобства буду структурировать и складывать под кат - сперва поглядите, нет ли там ответа на ваш вопрос. Спрашивайте, постараюсь оперативно отвечать на все. Если они будут по делу, а не пустая критика в духе "а зачем оно нам" или "я бы сделал свое/сделал лучше". Так сделайте, кто вам не дает? Повторюсь, но за кучу лет не реализовано ни-че-го в плане улучшения управления. Развития ноль. Меня это не устроило, и я сделал свой вариант, с прицелом на будущее, с хорошим потенциалом. Кто-то критикует, а кто-то делает - каждому свое.
Благодарю всех дочитавших длиннопост. Пишите свое мнение, задавайте вопросы. Вместе мы сделаем Спектрум лучше ;)
Отзывы владельцев (можете добавить свой, оформлю ссылку на пост):
https://zx-pk.ru/threads/34383-zx-pad-novyj-gejmpad-dlya-spektruma-(podklyuchaem-kontroller-ot-sony-playstation).html?p=1152636&viewfull=1#post1152636 от izzx
https://zx-pk.ru/threads/34383-zx-pad-novyj-gejmpad-dlya-spektruma-(podklyuchaem-kontroller-ot-sony-playstation).html?p=1154740&viewfull=1#post1154740 от Evgeny Muchkin
FAQ (вопросы и ответы, пополняется по мере поступления):
Q_00: Где схема, инструкция по переделке, распиновка разъемов?
A_00: На данном форуме особой заинтересованности пока не вижу. Если будет - дополню тему.
Q_01: Какова цена готового девайса и набора для самостоятельной сборки?
A_01: 1000р готовый, 500р - полный набор "сделай сам". Плюс за пересылку отдельно.
Разница - это минимальная цена за работу. Бесплатно делать никто не будет, согласитесь.
Тема на барахолке: https://zx-pk.com/forum/viewtopic.php?f=32&t=21110
Q_02: А если оно у меня не заработает? Или не понравится? Возврат возможен?
A_02: Да, в течение, скажем, двух недель от получения могу принять обратно при наличии веских на то причин.
Предварительно стоит провести несложные тесты для профпригодности вашего компа =)
Хотя бы потыкать диодом в разъем Синклер-джойстика и убедиться, что замыкание в нужную сторону работает.
Q_03: Что за геймпад берется за основу? Могу переделать имеющийся у меня, какой нужен?
A_03: Разумеется, китайская подделка. Если не швырять на пол и не гасить об него бычки, прослужит долго.
Можно взять за основу любой аналогичного функционала: крестовина, 4 кнопки справа, 2 в центре.
Плюс четыре кнопки курков спереди. Дополнительные кнопки и аналоговые стики роли не играют.
Другой вопрос, насколько удобной будет переделка платки. От Sony PS 1 переделать проще всего.
Речь про самый дешевый вариант без вибро и стиков. У дуалшока разводка платки сложнее.
К тому же, дуалшок и весит ощутимо больше, а вибрация в играх на Спектруме вряд ли появится.
Q_04: Какой разъем нужен для подсоединения к компьютеру? Что еще понадобится купить?
A_04: Предлагаю к пересылке с разъемом DE-9 и ответной частью с припаянным шлейфом.
Ничего искать/докупать не потребуется, нужно лишь припаять шлейф внутри компьютера.
Если плата компа на разъемах - отлично, ничего к ней паять не придется. Паяем к разъемам.
Либо, при свободном разъеме матричной клавы и наличии ответной части, втыкать туда.
Также есть вариант подключения в разъем Sinclair-джойстика, в наших клонах это обычно СГ5.
Нужно заменить его на СГ7 (DIN7), соответственно, на геймпаде будет СШ7 (DIN7-"папа").
Есть небольшой запас DIN7 и ответных частей, с DB-9 проблем нету. Так что на ваш выбор.
При самостоятельном изготовлении еще нужно немного изоленты, фольги и скотча.
Они, думаю, найдутся у всех, занимающихся самоделками и пайкой.
Q_05: Нужно ли что-то дорабатывать на плате компьютера? Не хотелось бы туда лезть...
A_05: Возможно, понадобится заменить пять резисторов подтяжки входов клавиатуры.
Актуально, в основном, для компов без буферных усилителей клавы. Не фатально, но учитывайте.
Q_06: Будет ли вариант под слот ZX-BUS, без переделки геймпада?
A_06: В будущем - возможно. Но сам этим заниматься пока не планирую. Я за простоту и ретро-стиль =)
Именно простота и дешевизна сделали Спектрум массовым. Применение микроконтроллеров усложнит схему,
плюс имеем ненулевые шансы на дохлый чипы, заказывая их. Чем проще схема - тем надежнее.
Q_07: Хорошо бы сделать кнопку с Autofire, это осуществимо?
A_07: В текущем виде - нет. Даже если заморочиться и доработать, получаем минус одну "обычную" кнопку.
Функция должна быть отключаемой, по-человечески это реализуется с микроконтроллером.
Q_08: Фольга на кнопках не внушает доверия, насколько надежен такой моддинг?
A_08: Она не вечная, да. Но хватает надолго, а заменить просто. Без нее кнопки надо жать с силой.
Из-за относительно большого сопротивления токопроводящей резины приходится ее клеить.
Возможно, в компах с CMOS-микросхемами на входах клавы фольга и не понадобится. Не проверялось.
Для TTL можно слепить двойной инвертор сигналов, но это лишние микросхемы. Вариант был отвергнут.
Q_09: А шнур геймпада долго протянет? Тем более китайского, они ж на всем экономят, заразы.
A_09: Если не вязать в узел, то послужит. И не сматывать вокруг геймпада каждый день, это хуже всего.
От такой "заботы" рано или поздно ломается даже шнур на оригинальном геймпаде. Не делайте так.
В части девайсов (где родной шнур 7 жил) заменяю проводки на МГТФ, шнур становится, по сути, вечным.
Возможна отсылка с родным шнуром, но их меньшинство, и в наличии может не быть.
Шнур для удобства сделан съемным, на разъеме-колодке (внутри контроллера).
Тест от производителя :D : https://disk.yandex.ru/d/WrHCYv3eAw65aA
Также прикреплен в аттаче в конце поста, если кто не может скачивать с Яндекс-диска.
Видеообзор с подключением к Ленинграду и Скорпиону:
https://youtu.be/mk4GZp2RQFo
Видеообзор работы в играх на реале и поддержки в эмуляторах:
https://youtu.be/7hkz7VEKHYQ