Приставка денди своими руками

Приставка денди своими руками

Долго назревало что-то подобное как Dendy своими руками, и стоял выбор между Dendy и ZX. Выбор пал на Dendy, но ZX буду собирать позже, после окончания рыболовного сезона )

На мой взгляд, вся суть сборки приставки заключается в 3 этапах.

Найти сбалансированную плату для монтажа Dendy своими руками.

Точнее сказать, найти граберы платы, сделанные профессионалами. Такие есть. Хочу выразить благодарность Хардварычу с форума emu-land.net и всем, кто участвовал в проекте по адаптации и настройке платы для Junior.

Так выглядит готовая плата. Заказывал я её у китайских друзей с АЛИ. Приехала она в течении 2 недель. Заказывал 10 штук, приехало 11. За что им и спасибо. По Москве сделать такую плату предлагали в 4 раза дороже. Она полностью подходит под стандартный корпус, имеет стереовыход аудио. Микросхемы выставлены оптимально для распайки и уменьшения длины дорожек.

Сами граберы для вытравливания, версия платы 01. Есть более новая, в ней отличается только расположение одного конденсатора. Считаю такую доработку не новой версией. Выкладывать её не буду. Собирал по версии 01, всё отлично, рабочая и отлично встаёт в стандартный корпус.

Полный комплект деталей для спайки Dendy своими руками.

Вот тут возникают сложности. Процессоры и сопроцессоры уже не выпускают, и найти можно либо старые запасы, либо через китайских друзей.

Процессоры и сопроцессоры. Для заказа через АЛИ обязательно вступать в переговоры о том, что будет высылать китайский друг. Короче капец) Но рано или поздно приезжают рабочие микросхемы и даже с небитыми пикселями. Последний, у которого заказывал, вот этот. От него приехали UA6527p, но они оказались обычными UA6527 и работали на частоте 21.47, пришлось собрать 2 генератор и проверять работоспособность процессора и сопроцессора на разной частоте. Будьте внимательны.

Самих систем может быть 2 варианта: PAL и NTSC версии.

NTSC версии: Процессор — UA6527, Видео процессор UA6528
PAL версии: Процессор — UA6527p, Видео процессор UA6538

Для выбора системы передачи видео сигнала, не забываем про основной генератор приставки. Разница в выдаваемой частоте генерации, на которых работают эти разные системы.

PAL работает на частоте 26.6
NTSC работает на частоте 21.47

Это все отличия в деталях при сборе PAL или NTSC систем.

По задумке ребят, которые делали данную плату, все CMD компоненты размера 0805, но это большие по 2 мм детали я рекомендую впаивать размер 0603. Они более подходят для монтажа на данную плату.

Перед закупкой рекомендую посмотреть компоненты на старых платах модемов, материнках, роутерах и подобном хламе. Я выпаял от туда порядка 60% всех CMD компонентов.

Микросхемы: Как выяснилось, память не так уж и ограничена маркировкой. Главное — найти подобную память с характеристиками: 5V 32K X 8 CMOS SRAM, очень часто встречаются на старых материнках.

После того, как у нас есть все компоненты, осталось найти 60-пиновый разъём для картриджа)

Или мы его выпаиваем со старой приставки, или опять на АЛИ. Я заказывал вот тут, и у меня в запасе ещё остались, могу вручить по себестоимости закупки.

Ну и заключительный поиск упрётся в разъёмы для джойстиков. Тут, к сожалению, альтернатив мало: либо снимать со старой, либо лепить ляпуху из вот такой альтернативы: D-Sub DB15 Вилка должна быть угловая. Она отлично входит в плату и отлично держит джойстик.

Некоторые ссылки на детали:

Обратите внимание на микросхемы SRAM. Случайно не закажите широкие 24-пиновые. Нужны узкие 28-пиновые.

Диодный мост — его можно устанавливать и на 1 ампер. 1.5 стоит с запасом.

И сама плата в сборе со всеми деталями.

Дорожная карта при сборке Dendy своими руками

Схема, если кто всё-таки дочитал до этапа сборки) Чтобы открыть в полном расширении, на открывшейся картинке правой кнопкой — открыть в новой вкладке и уже левой кнопкой +.

Первым делом

Впаиваем 60-пиновый разъём и проверяем, как прозваниваются все его 60 контактов по дорожкам до тех мест, куда приходит каждый контакт. Почти половина ведёт к СPU, вторая половина — к PPU. Питание и выходы с генератора.

Вторым делом

Собираем схему питания. Разъём питания, диодный мост, стабилизатор с радиатором, конденсаторы до стабилизатора и после, кнопка включения и кнопка resset. Подаём питание и проверяем все последние ножки на всех микросхемах на наличие стабильного питания в +5 вольт. Последняя нога микросхемы +, минус находится на противоположной стороне в конце микросхемы.

Третьим делом

Собираем схему усилителя звука и вывода изображения. После сборки можно проверить работоспособность каскада касаниями к выходам левого и правого каналов с CPU, ножки 1 и 2. При касании к ним рукой должен появляться тихий шум на выходе усилителя звука. На вашем телевизоре, если вы подключили красный и белый выход ко входу аудио)

Касаниями к выходам с PPU ножка 21 на телевизоре при подключенном желтом кабеле к входу видео будет появляться мелкая рябь.

Четвёртым делом

Паяем все детали и каретки для микросхем на плату. Проверяем каждую припаянную деталь трижды: номинал, как припаяли, прозвонили её по месту.

Пятым делом

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

Вставляем картридж и включаем.

Долгие мучения с бубном и тщательная проверка пайки ведёт к запуску данного аппарата)

Жёлтым — каскад аудио и видео усилителей и выходов.

Читайте также:  Как крепить доску к профильной трубе

Красным — детали питания схемы.

Синим — генератор частоты — для смены частоты с PAL на NTSC меняется только кварц, PPU и CPU.

Напоследок опишу основные проблемы, которые почерпнул на форуме и с которыми сталкивался сам:

Основная проблема: картинка есть, игра идёт на экране артефакты — битый PPU, не починить никак, только замена на заранее стабильный для проверки.

Вторая причина

Питание есть, ничего не запускается вообще HELP.

Причин море)

Первое и главное: ПАЙКА. Проверяйте 10 раз все детали на работоспособность перед пайкой.

Второе: микросхемы. Очень часто купленные микры не совместимы с китайскими катриками на 400 игр. Не хватает скорости обработки. Проверяйте работоспособность на старых картриджах, которые ещё на капле. У них микры на 5 вольт и там скорость медленнее, чем на новый китайских многоигровках. В моём случае причина незапуска картриджа Кулбой была в микросхеме SN74HC139N. На каплях все катрики работали , а новый 400 в 1 не запускался, пока я её не поменял.

Третья причина:

Криво спаянный генератор частоты. Проверяйте, есть ли генерация на ножках: PPU нога 18 и на CPU нога 29.

На них и проверяем осцилографом наличие генерации с нашего генератора частоты сигнала.

Если чего еще вспомню, добавлю)

За некоторыми деталями можно обращаться ко мне.

На основании всего вышеизложенного можно самому вполне быстро и с удовольствием собрать Dendy своими руками.

Добрые видеоигры

Видеоигры — самое яркое из детства от Apple II до Dendy

Современная элементная база для наколенных разработок уже давно перешагнула возможности те компоненты, на которых строились такие вещи, как Dendy (NES), Coleco Vision, ну и так далее.
Совершенно понятно, что geek-сообщество не могло оставаться в стороне и проекты настоящего hard-core DIY не замедлили себя ждать.

Итак, представляем Вашему вниманию UZEBOX!

Это homebrew-консоль, которую можно изготовить дома.

Базируется она всего на 2х чипах — ATMega 644 и кодер NTSC-сигнала AD725 (опционально, есть версия с ЧБ изображением, но без этого кодера)

Текущие фичи с сайта разработчков консоли (без перевода, чтобы не играть в испорченный телефон):

  • Low parts count and cost: The system is made of only two chips and discrete components.
  • Interrupt driven kernel: No cycle counting required, sound mixing and video generation are all made in the background.
  • 256 simultaneous colors: Accomplished by using a R-2R resistor ladder DAC.
  • 4 channels sound engine: The sound subsystem is composed of 3 wavetable channels and 1 noise or PCM channel.
  • MIDI In: With a music sequencer, allows the creation of music directly on the console.
  • Retro controllers: The joypad inputs uses standard NES/SNES controllers interface.
  • SNES Mouse Support
  • SD/MicroSD card interface
  • Expandable: I/O lines and peripherals are still available, like the UART and SPI port for one to experiment.
  • Emulator: A fully, cycle-perfect, emulator was developed and greatly eases development.
  • Gameloader (beta): Load and flash games stored on SD cards!
  • API: Develop games using an API that provides multiple video modes, sound driver and more.
  • Open Source: The software and hardware design are totally free and licensed under the GPL.

Спецификации:
CPU: ATmega644 microcontroller
Total RAM: 4K
Program Memory: 64K
Speed: 28.61818Mhz (Overclocked)
Colors: 256 simultaneous colors arranged in a 3:3:2 color space (Red:3 bits, Green:3 bits, Blue: 2 bits)
Resolution: Up to 240×224 pixels (tiles-only and tiles-and-sprites modes)
Sprites: Up to 32 simultaneous sprites on screen at any time
Video output: NTSC Composite and S-Video
Sound: 4 channels wavetable, 8-bit mono, mixed at

15Khz and output via PWM
Inputs: Two NES/SNES compatible joypad inputs
Options: MIDI-in interface and s-video output

Для тех, кто не дружит с электроникой, с сайта разработчиков можно скачать эмулятор (для Windows, требуется SDL.dll) и попробовать консоль без риска попортить детали.

Для программистов — есть специальный SDK, позволяющий писать игры на языке Си с удобными вызовами и хорошо документированным интерфейсом.

А теперь будут слайды. Кликабельные.

Сначала я и не думал писать статью на эту тему, но похоже, что это уже часть целого цикла статей на Денди-тематику. И да, на этот раз речь в первую очередь именно про отечественную Денди, а не про оригинальные консоли — Famicom или NES. Просто я делал устройство в подарок одному человеку, который снимает очень интересные видеоролики про Денди, и ориентировался на совместимость именно с этим клоном.

Дело в том, что и для Famicom, и для NES выходили самые разные аксессуары: 3D очки, клавиатуры, роботы, считыватели штрих-кодов, всякие игровые контроллеры и очень многое другое. До нас же дошёл только световой пистолет. Передо мной стояла задача собрать устройство, которое совмещало бы в себе разветвитель на четыре игрока (да, были такие игры) и Arkanoid-контроллер.

Порты ввода-вывода

Прежде всего стоит рассказать, как же работают с джойстиками игровыми контроллерами Famicom, NES и Dendy, и чем же они отличаются в этом плане.

С точки зрения игр порты ввода-вывода представляют из себя два регистра с адресами $4016 и $4017, которые ассоциированы соответственно с двумя портами, куда всё и подключается. Но на стандартных контроллерах для чтения данных используется только один провод — D0, данные с которого соответственно доступны через младший (нулевой) бит в каждом из регистров: $4016.0 и $4017.0. Аналогично используется один провод на запись, его обычно называют STROBE (или LATCH), который сбрасывает счётчик внутри геймпада, и который доступен через запись в $4016.0 (да, для обоих контроллеров он общий).

Читайте также:  Крепление перегородок к несущим стенам

Проще говоря, чтобы получить состояние кнопок на первом контроллере надо сначала записать 1 в $4016.0, сразу же записать туда же 0, сбросив таким образом счётчик, а потом прочитать $4016 и $4017 восемь раз (для каждой из кнопок), получая данные о кнопках из младшего бита. Но для чего же остальные биты в этих регистрах, куда идут эти линии? Рассмотрим порт контроллера у NES:

Да, на него на самом деле идут D3 и D4! Именно они и доступны через $4016.3, $4016.4 у первого порта и $4017.3, $4017.4 у второго, и именно они используются для нестандартных контроллеров.

Что же касается его японского собрата — Famicom, там нет этих портов, да и сами игровые контроллеры не отсоединяются от консоли, но у него есть порт расширения, который представляет из себя разъём DB-15.

Знакомо выглядит, правда? Да, когда китайцы проектировали нашу Денди (я сомневаюсь, что её проектировали у нас), и им нужно было сделать отсоединяющиеся контроллеры, они решили взять за основу именно порт расширения, ведь в нём есть контакты для второго контроллера, и он на Famicom расположен чуть правее центра. Им тут даже распиновку менять не пришлось. Что же касается первого контроллера, они взяли тот же DB-15, расположили его слева и поменять распиновку так, чтобы можно было подключать первый контроллер. И только его.

Сравните сами передние порты у Famicom и у нашей Денди:

Вот такая вот странная история этих пятнадцатипиновых разъёмов у геймпадов, которые используются в нашей стране.

Но давайте посмотрим, что же выведено на этот порт расширения у Famicom?


(скриншот с сайта wiki.nesdev.com)

Да, на него идут ещё $4016.1 (на ввод), $4017.0-4 (на ввод), $4017.0-2 (на вывод), внешнее прерывание и даже звук! Я был очень приятно удивлён, когда разобрал Денди и увидел, что всё это есть и там:

Правда, не во всех моделях, как выяснилось позже. Но если это есть, значит есть и полная совместимость с аксессуарами для Famicom, и их могут использовать соответствующие японские игры. Но напомню, что Денди — это очень странная смесь NES и Famicom, PAL и NTSC. Пираты выпускали для неё и японские, и американские игры, которые по сути на 100% совместимы, если не брать в рассчёт эти аксессуары и разный формат картриджей.

Итого: в некоторых Денди есть все те же выводы, что и на Фамикоме, которые при этом включают в себя часть выводов доступных на NES. Отсутствует доступ к $4016.3 и $4016.4, но они используются крайне редко. В виде таблички для наглядности:

Принцип работы аксессуаров

Американский разветвитель на четыре игрока для NES называется Four Score представляет из себя простой набор сдвиговых регистров. Т.е. первые восемь чтений из $4016.0 дают данные из первого контроллера, а вторые восемь — из третьего. Аналогично $4017.0 даёт данные о втором и четвёртом контроллерах. Помимо этого при продолжении чтения устройство выдаёт свою сигнатуру, с помощью которой игра определяет, что подключен именно Four Score, а не что-то ещё. Получается, что такое устройство можно собрать из шести сдвиговых регистров (4021 или 74165), и оно будет работать на любой Денди, ведь для него не требуются дополнительные линии данных. Само собой, только с американскими играми, которые выходили для NES.

Японский аналог для Famicom устроен гораздо проще. Третий и четвёртый контроллеры подключаются напрямую в порт расширения и доступны через $4016.1 и $4017.1. Соответственно для такого переходника нам уже нужен полноценный порт расширения у Денди, иначе поиграть вчетвером в японские игры не получится.

Arkanoid-контроллер, как ясно из названия, используется для игры Arkanoid и представляет из себя ручку-крутилку и одну кнопку. Внутри же это аналого-цифровой преобразователь и сдвиговый регистр, который так же последовательно выдаёт положение ручки. Разница между японской и американской версией только в способе подключения. Японская версия игры читает положение ручки и состояние кнопки из $4016.1 и $4017.1, а американская версия из $4016.3 и $4016.4 соответственно. Получается, что для японского Арканоида нужен полноценный порт расширения, а для американского подойдёт любая денди, где работает световой пистолет (он использует те же выводы).

Создание своего аксессуара

Хотя сами по себе вышеперечисленные устройства имеют простую схему и собираются из простейших логических компонентов, для сердца устройства типа «всё в одном» я решил использовать ПЛИС. Тем более мне было высказано пожелание сделать там ещё и простейший переключатель-свитч, а мне хотелось сделать возможность менять местами кнопки A и B. Сначала я выбрал Altera EPM3064ATC100, но вскоре выяснилось, что 64 макроячейки мне не хватит, и выбор пал на EPM3128ATC100, где уже 128 макроячеек.

Если уж на то пошло, я решил совсем не мелочиться и поставить в устройство ещё и какой-то экран, на котором показывались бы текущий режим и меню с настройками, к тому же у меня давно валялся без дела один знакосинтезирующий «16×2» дисплей. Вот для работы с ним уже нужен микроконтроллер, и я выбрал ATMEGA16.

Читайте также:  Сорта тиса фото с названиями

Мне всегда было сложнее всего придать устройству приятный внешний вид. Всё-таки я программист, а не дизайнер, но именно при изготовлении устройства в подарок хотелось сделать его максимально красивым и удобным. Тем более это чуть ли не единственный способ как-то показать другим своё произведение искусства: фотографии и видео — это не то, по готовым схемам и 3D моделькам такие вещи воссоздают единицы, серийное производство наладить тяжело, а вот подарок — самое то.

Итак, требования к внешнему виду были такие: четыре порта для стандартных DB-15 контроллеров от Денди, четыре кнопки для их выбора и настройки, кнопка «режим», кнопка «настройки», удобная ручка для Arkanoid и кнопка для него же, которые должны располагаться достаточно удобно и не мешаться. Помимо этого хотелось сделать, чтобы активные порты подсвечивались светодиодами и как-то интуитивно связывались с соответствующими кнопками, логичнее всего при этом расположить разъёмы в ряд, но эти дурацкие DB-15 слишком огромные для этого. Помимо всего устройство должно удобно лежать в руках, ведь оно само по себе игровой контроллер для Arkanoid. В итоге я пришёл примерно к такому виду:

Кнопки в ряд, порты друг над другом, ручка сбоку, кнопка для Arkanoid сзади слева.

Получается, что места внутри достаточно много. Поэтому ПЛИС с разъёмами под провода и гнёзда я решил вынести на одну плату, а микроконтроллер с экраном и кнопками — на другую. Соединяются они при этом простейшим последовательным интерфейсом.

Плата с ПЛИС (первая версия):

Код для ПЛИС я писал на Verilog. Для каждого режима он получается достаточно простым. В первую очередь для многих из них нам надо считать обращения к каждому из портов, т.е. импульсы на проводе clock:

(простите, хабр не умеет подсвечивать Verilog)

Где strobe_in — это strobe (один на оба порта), а clock1_in и clock2_in — это соответственно clock на каждом из портов. Внутри консоли стоит логика: clock = R/W nand (адрес == $4016/$4017), т.е. на clock логический ноль, когда консоль читает данные по соответствующему адресу.

Режим имитации американского разветвителя на четверых игроков выглядит так:

В режиме японского же развитвителя на четверых нужно просто соединить входы с выходами напрямую:

Самым сложным оказалось сделать возможность менять местами кнопки A и B, ведь считываются они последовательно, т.е. нужно заранее знать значение B, когда консоль запрашивает A, но оно выдаётся как раз только после A. Сначала я думал как-то ускоренно считывать данные с контроллера, используя какой-то внешний тактовый генератор, но в итоге решил просто брать значение от предыдущего считывания. Это даёт задержку, но она абсолютно незаметна. Тем более игры обычно читают состояние кнопок по несколько раз подряд.

Само собой, все эти режимы и настройки надо как-то задавать. Для этого я определил 12-битный регистр control, данные в который записываются через последовательное соединение, с дополнительным битом для проверки чётности:

Соответственно со стороны микроконтроллера код (весьма грязный) выглядит вот так:

В остальном в коде микроконтроллера нет ничего особенного: работа с дисплеем на контроллере HD44780, кнопки, светодиоды, простенькая менюшка и работа с аналого-цифровой преобразователем для определения угла поворота ручки.

Я всё отладил, убедился в работоспособности и уже начал упихивать компоненты в корпус…

Но перед закрытием крышки решил проверить на оригинальном Famicom, ведь с ним устройство тоже будет использоваться. Увы, режимы, где нужно было считать импульсы clock, работали неправильно. С помощью логического анализатора выяснилось, что с линии данных идут наводки на линию clock:

Это помеха длительностью всего в несколько десятков наносекунд всё портит. Я решил посмотреть своим простеньким осциллографом, что же происходит на линии clock у Денди:

А вот что там же у Фамикома:

Видно, что эта линия подтянута к VCC, при чём очень сильно у Денди и весьма слабо у оригинального Фамикома. Я начал экспериментировать с обвеской. Вскоре стало ясно, что на результат лучше смотреть не логическим анализатором, а самой консолью. Пришлось вспоминать ассемблер для 6502 процессора, писать простенькую программу для тестирования и записать её на картридж:

На ней сразу стало всё наглядно видно, а заодно можно было протестировать сразу все режимы, не меняя игры. ROM можно скачать тут.

В итоге проблема была решена подтяжкой линий clock к VCC через резистор в 1кОм, конденсатором между clock и землёй в 22нФ и резисторами на 200 Ом в разрыв всех линий данных. Увы, пришлось травить новую плату (не фотографировал), но зато после этого сразу же всё заработало.

Итоговый вид устройства:

Во времена СССР я мог бы быть хорошим промдизайнером.

Многие наверное захотят увидеть видео, но на данный момент подарок уже в руках нашей почты, а я снял только небольшую видеоинструкцию для конечного пользователя. Посмотреть её можно тут: www.youtube.com/watch?v=39beci7nE8w

И если вас заинтересовала тематика работы разных игровых контроллеров и создания самодельных, мы как раз на эту тему сняли вторую серию нашего шоу «Пока все играют», где многое очень просто и наглядно объясняется для тех, кто совсем не в теме:

Информация по архитектуре этих консолей и аксессуаров бралась с сайта wiki.nesdev.com
Полный код для ПЛИС на Verilog: pastebin.com/nt39ZGvH

Вы можете помочь и перевести немного средств на развитие сайта

Ссылка на основную публикацию
Приметы на сентябрь народный календарь
Сентябрь – первый месяц осени. Его народное название – «хмурень», поскольку небо в это время начинает хмуриться, часто идут дожди....
Прибор для измерения вольтажа
На сайте продавца доступен бесплатный номер 8-800.Для перехода на сайт нажмите "В магазин" На сайте продавца доступен бесплатный номер 8-800.Для...
Прибор для измерения гектаров
ГеоМетр – оригинальный продукт, который был разработан совместно украинскими и зарубежными специалистами. За несколько лет плодотворной работы, система ГеоМетр была...
Приметы при заселении в новую квартиру
Дополнительная помощь для тех, кто планирует переезд на новую квартиру, — приметы и диктуемые ими правила. Сегодня к ним не...
Adblock detector