Как подключить джойстик от денди к компьютеру
Думаю многие из вас помнят те славные времена, когда мы часами рубились в танчики, черепашки ниндзя, батлтодс энд даблдрагон и еще пару десятков других суперских игр на Денди. Это было шикарное время! Большинство игр были чертовски сложные, но даже несмотря на это, неудача за неудачей, мы, все равно, шли к своей цели и начинали игру заново, чтобы уж сегодня-то пройти ее до конца.
Поностальгировав всласть, я решил, что очень хочу поиграть в Dendy и поиграть хочу на ноутбуке, но не на клавиатуре, а на старом добром джойстике.
Ниже я опишу, с какими проблемами я столкнулся и как их решил.
Немного поясню, почему именно так мне захотелось поиграть. Приставка у меня сохранилась и она отлично работает, но осталась всего пара картриджей(остальные раздал друзьям). А играть на клавиатуре в игры денди, ну это как-то совсем не айс.
Встала проблема, как подключить джойстик от Денди к ноутбуку.
Немного погуглив, я понял, что в основном это решается подключением через LPT порт и использованием готовых драйверов, но у меня ноутбук, и мне это не подходит. Тут я вспомнил, что у меня есть плата Arduino Uno и я решил, что пойду своим путем и буду использовать именно ее.
0. Определение распиновки на джойстике
Первая проблема оказалась в том, что коннекторы у джойстиков внутренние, а все описания распиновок найденные в интернете, были для внешних коннекторов.
Найти спецификацию на мою noname денди мне не удалось, поэтому я стал рассматривать внутреннюю плату, чтобы найти там питание и землю, и понять какие из пяти контактов на джойстике с ними соединяются. С этим я справился быстро. Оказалось это два крайних контакта.
К Ардуино, я подсоединил все напрямую, питание — питание 5В, земля — земля, остальные три контакта подсоединил к 2, 3 и 4 цифровому пину.
1. Описание протокола работы джойстика
2. Настройка среды
Если у вас уже все настроено или вас устраивает Arduino IDE, можете перейти к 3 пункту.
Не знаю, как вас, но лично меня официальная Arduino IDE ужасно угнетает, поэтому коротко расскажу, как использовать свою любимую IDE.
Первым делом я скачал исходники Arduino IDE и нашел там код отвечающий за компиляцию и аплоад прошивки. Потратив немного времени я выделил все команды, которые там используются:
В приведенной выше команде, при линковке, используется библиотека libArduino.a, ее можно получить скомпилировав все *.c и *.cpp файлы из папки с хэдэрами и собрав все объектники в один архив. А можно просто запустить Arduino IDE, скомпилировать любой проект и скопировать файл /tmp/build*.tmp/core.a. Это будет абсолютно эквивалентно.
Все эти команды актуальны для Arduino Uno, для других ардуин следует изменить некоторые параметры.
Теперь используя эти команды можно легко настроить свою IDE, на автоматическую компиляцию и загрузку прошивки.
3. Написание кода прошивки
Здесь нужно было лишь определить какие из 2, 3 и 4 пина отвечают за Latch, Clock и Data. Это я решил методом проб и ошибок. Предполагаем, что 4 это Data, и делаем Serial.println(digitalRead(4)), если при нажатии кнопок есть какая-то реакция, значит это оно. Остальные 2 контакта определились, когда уже была написана прошивка, если все работает значит угадали, нет — меняем местами.
4. Написание «драйвера»
Здесь нужно было принять этот самый байт от Arduino и эмулировать нажатия кнопок клавиатуры. Да-да, нажатия на джойстике будут обрабатываться, как нажатия на клавиатуре, хорошо это или плохо.
В качестве языка программирования я выбрал Python. Простой и эффективный, полагаю, он отлично подошел для этой задачи.
Единственная проблема, которая здесь возникла это дребезг контактов джойстика. Я ее решил путем введения временного интервала, наступающего после смены состояния кнопки, в течение которого состояния не изменяется. Хватило 0.05 с.
Для эмуляции нажатия кнопок клавиатуры я использовал утилиту xte, идущую в комплекте Xautomation. Она очень проста в использовании, вот пример: xte 'keydown Left' . За дополнительной инфорацией смотрите man xte.
Для выхода из драйвера я использовал состояние, когда нажата вся крестовина целиком. Этому состоянию соответствует число 0xf0.
5. Ура! Играем!
Все! Осталось лишь настроить эмулятор денди, я выбрал FCEUX.
Указываем в настройках те клавиши, которые указаны в драйвере ииии вспоминаем детство!
Заключение
Как ни крути, но Ардуино это замечательная платформа для подобных экспериментов.
Теперь осталось только собрать все это в виде отдельного устройства.
Предыстория.
Решил тут недавно поиграть в денди на компьютере с друзьями. Первым делом отправился в поиск яндекса. Был мягкого говоря удивлен тому, что советуют на разных сайтах.
Как играть в денди на компьютере с любого джойстика? Показываю настройку с нуля + 2 000 игр
У меня получилось найти кучу игр на денди и настроить джойстик, чтобы играть в них на компьютере. Решил поделиться с Вами моей радостью, заодно сделать гайд по настройке. Все очень просто и даже ленивый справится с настройкой.
Это супер бомбовая статья! Нигде в интернете не найдете такой настройки как у меня 😉👍 Хотя сейчас придут плагиатить статью все кому не лень.
Как играть в Денди на ПК?
Поиграть в Денди можно с помощью эмулятора. Это такая программа, которая открывает электронные образы дискет (файлы .nes) на компьютере. Поиграть можно с помощью клавиатуры, джойстика (геймпада) , а на некоторых эмуляторах даже с мышки. В интернете вы найдете множество эмуляторов, но я лучше сразу дам вам ссылку на все необходимое.
Итак, скачиваем следующее:
1. Эмулятор FCEUX - безусловно, лучший эмулятор NES / Dendy и Famicom Disk System. Поддержка сохранений, джойстиков, эмуляции различных контроллеров, архивов, запись видео и пр.
2. Игры . Можно скачать сборник популярных , можно скачать по отдельности . Главное потом закинуть все игры в одну папку, чтобы не потерять.
Подключаем игровую приставку Денди (Dendy) к компьютерному монитору.
Многие кому за 40 услышав слово Денди впадают в ностальгию по давно ушедшему детству. Помните "Танчики" или "Стрит файтер" с "Мортал комбатом"?
Ох детство. Сколько же мы часов убили с друзьями на игры в Денди, не подсчитать. С приходом 90 ых наша жизни изменилась. На смену играм во дворе, взятия крепостей и войнушек, к нам в дом ворвались "Черепашки ниндзя", "Черный плащ", "Братья Марио". И забросив уличное веселье мы уселись к экранам черно белых телевизоров. Вы спросите почему не голубых экранов? Да за цветные телевизоры нам бы уши надрали, ведь все твердили что приставки сажают кинескопы. А так как времена были тяжелые и безденежные даже телевизор импортный был роскошью, не говоря о видеомагнитофонах. А теперь эти приставки пылятся в кладовках и подвалах. Некому не нужные и забытые.
Сегодня ко мне пришел племянник и я решил ему показать это диво дивное из 90 ых. Нашел я коробку, от избытка нахлынувших эмоций у меня задрожали руки и забилось сердечко. И все от того, что при виде этой волшебной коробочки на меня нахлынули детские воспоминания.
Распаковал я коробку, посмотреть все ли сохранилось. Проверил джойстики, провода, пистолет.
К моему сожалению блок питания оказался сломанный от падения. Провода джойстики у разъемов переломаны. Играли то мы много. К моему сожалению блок питания оказался сломанный от падения. Провода джойстики у разъемов переломаны. Играли то мы много.Изучаем выходы нашей игровой приставки.
Для подключения приставки к монитору на денди должны присутствовать выходы аудио и видео сигнала.
Читайте также: