Продолжаем разговор об исторических, практических и теоретических улучшениях восьмибитных игровых приставок типа «Денди», она же Famicom в Японии, Nintendo Entertainment System в США и Европе, и «любое-безумное-название» в Китае.
В прошлый раз мы рассмотрели базовые вещи: что вообще можно считать апгрейдом, важность наличия индикатора питания, нововведения в области управления, улучшение качества видеосигнала, расширение возможностей консоли с помощью дополнительного железа внутри картриджа, а также попытки превращения игрового устройства в подобие персонального компьютера.
Сегодня узнаем, что ещё интересного смогли сотворить с классической 8-битной платформой разработки 1983 года китайские разработчики, радиолюбители прошлых лет и современные энтузиасты!
▍ Разгон
Когда речь заходит про апгрейд ПК, прежде всего представляется установка более мощного процессора, или хотя бы «разгон», то есть увеличение тактовой частоты, уже имеющегося процессора. Чего только не разгоняли оверклокеры за историю своей бурной деятельности, и, конечно же, они не прошли мимо старых игровых консолей.
Кристалл микросхемы RP2A03. Основную часть его площади занимает синтезатор звука
Хотя в природе существуют бинарно-совместимые более быстрые микропроцессоры, в Денди и их собратьях процессор так просто не заменить. Даже в оригинале он представлен специализированной микросхемой, содержащей на одном кристалле процессорное ядро 6502 и часть уникальных для игровой консоли устройств, включая синтезатор звука и порты ввода-вывода. Ну а в клонах, особенно поздних, это и вовсе однокристальная система, включающая заодно и видеосистему, и всю оперативную память.
Оригинальный процессор или процессор «микросхемных» клонов, тем не менее, можно
слегка разогнать. Делается это заменой кварцевого резонатора, который в NTSC-версии консоли имеет частоту 21.4773 МГц. Из этой опорной частоты путём деления формируются все нужные для системы прочие частоты, в частности, тактовая частота процессора 1.79 МГц и частоты для видеоконтроллера.
Схема разгона и её физическое воплощение. Фото из Интернета
Но просто так кварцевый резонатор заменить нельзя — сломается генерация видеосигнала. Чтобы этого не произошло, при таком разгоне устанавливают дополнительный генератор тактовых частот для видеоконтроллера, который позволяет ему продолжать работать в прежнем режиме, и тогда замена основного кварцевого резонатора разгоняет процессор. Таким образом можно выполнить стабильный разгон системы примерно на 20 процентов, от силы на 30 (при кварце на 28 МГц).
При таком разгоне слегка улучшается работа игр, страдающих от замедлений, но далеко не всех, и не очень существенно. Дело в самой архитектуре игр и в том, как именно они расходуют время процессора. По сути разгон в некоторых играх приведёт лишь к тому, что процессор будет тратить больше времени впустую, ожидая следующего кадра. Это довольно сложная тема для краткого объяснения на пальцах, но все подробности можно узнать из множества видео на YouTube-канале
Displaced Gamers.
Побочным эффектом такого разгона также является повышение высоты звука, так как звуковой синтезатор расположен на одном кристалле с процессором. Поделать с этим с аппаратной точки зрения ничего нельзя. Препятствием к дальнейшему разгону является стабильность системы, не рассчитанной на такие частоты, и, в частности, быстродействие памяти и ПЗУ в картридже.
Программные эмуляторы и FPGA-реализации позволяют разогнать систему более грамотно, не переживая о быстродействии памяти и не затрагивая звук. Так, в начале 2000-х годов я сам выполнял разгон путём модификации эмулятора NNNesterJ. Вместо повышения частоты и последующего решения проблем синхронизации компонентов я просто сделал время выполнения всех опкодов равным одному такту, что дало приличное ускорение неопределённой кратности (зависит от конкретного кода). В настоящее время разгон самыми разными способами предусмотрен в различных эмуляторах.
Проблему нехватки скорости процессора разработчики ощущали уже в конце 1980-х годов, и в том числе рассматривали её решение путём установки дополнительного процессора в картридж. Так, в 1990 году компания Color Dreams прорабатывала планы установки дополнительного процессора Z80 в картридж одной из её планируемых игр, Hellraiser, по мотивам популярного кинофильма («Восставший из ада»).
Внутри картриджа, именуемого Super Cartridge, помимо процессора предполагалось разместить 64 килобайта ОЗУ и связующую логику. Идея была в том, чтобы Z80 выполнял программную отрисовку растровой графики в локальный видеобуфер, который видеоконтроллер NES видел бы как внешнюю видеопамять в понятном ему формате и просто отображал на экране. Таким образом теоретически можно было снять ограничения на количество и сложность отображаемых спрайтов (в обмен на плавность анимации и цветность), или даже реализовать некий 3D-рендеринг.
Вариант с сопроцессором в картридже NES в те времена так и не был реализован на практике. Был создан только прототип железа, но не написан никакой код ни для него, ни для планируемой игры. Но сама идея оказалась жизнеспособной, и уже очень скоро подобным путём пошли разработчики некоторых игр на Super Nintendo.
Касаясь темы разгона в эмуляторе, упомяну и проблему мерцания спрайтов, так как многие связывают его с недостатком вычислительной мощности. На самом деле этот артефакт не имеет отношения к скорости работы процессора, и это не какая-то проблема самого видеоконтроллера консоли: последний просто не способен показывать больше восьми спрайтов на одной строке растра. Мерцание добавляли сами разработчики игр намеренно, вручную, чтобы в такой ситуации «лишние» спрайты были видны хотя бы иногда. Этой темы я также касался в одной из прошлых публикаций, «
Графика древности: от текста к видеоиграм».
Эмуляторы и FPGA-реализации консоли позволяют устранить эту особенность, разрешив отображение произвольного количества спрайтов в строке растра. Однако некоторые игры изначально пытались как-то обрабатывать эту проблему, и ориентировались на флаг переполнения количества. В зависимости от конкретного подхода, устранение переполнения может сломать правильную логику работы таких игр. Это происходит, например, в игре Super Spy Hunter на некоторых эмуляторах.
▍ Память
Теперь поговорим об улучшениях, касающихся памяти. Здесь речь пойдёт не про абстрактные «мапперы», а про предусмотренный в самой оригинальной системе задел на расширение памяти.
Дело в том, что в консоли установлено меньше ОЗУ, чем предусмотрено места для него в адресном пространстве. Скорее всего, изначально планировалось установить максимально возможный объём и заполнить всё адресное пространство, но потом потребовался компромисс для снижения себестоимости конечного продукта.
Карта адресного пространства NES
Во-первых, для ОЗУ процессора предусмотрен диапазон адресов $0000-$1FFF, то есть 8 килобайт, тогда как фактически в системе установлено всего 2 килобайта ОЗУ, которые просто повторяются в этом пространстве четыре раза. Ничего не мешает восстановить историческую несправедливость и установить ОЗУ полного объёма, и большая часть игр будет по-прежнему работать без изменений. К сожалению, улучшений от этого тоже не случится: старые игры ничего не будут знать про дополнительную память и не смогут ей воспользоваться — это сможет сделать только вновь создаваемое ПО.
Плата картриджа игры Gauntlet. Редкая конфигурация: одновременно присутствует видео-ПЗУ и видео-ОЗУ
Во-вторых, адресное пространство видеоконтроллера имеет объём 16 килобайт, но внутри консоли установлено лишь 2 килобайта ОЗУ. В них содержится описание содержимого двух экранных страниц, аналогичное экранам в текстовых режимах на ПК. Ещё 8 килобайт видеопамяти размещаются на плате каждого картриджа. Это может быть ПЗУ или ОЗУ, содержащее собственно графику, набор графических элементов, аналог шрифта для текстового режима.
Но видеоконтроллер способен задействовать и больший объём памяти: ещё 2 килобайта для реализации четырёх экранных страниц. Такой объём памяти позволяет организовать бесшовную прокрутку экрана без визуальных артефактов во всех восьми направлениях, а с двумя килобайтами возникают ограничения и артефакты, с которыми приходится бороться хитрыми трюками. В некоторых играх, например, Gauntlet, это «недостающее» видео-ОЗУ устанавливалось внутри картриджа.
Дополнительную видеопамять также реализуют некоторые мапперы. Так, MMC5 добавляет ещё один килобайт памяти особого назначения, которая не видна видеоконтроллеру непосредственно, но с помощью хитрой коммутации адресов маппером влияет на отображаемую графику. Такая память задействуется для повышенного цветового разрешения и для хранения расширенного номера символа в наборе, что позволяет увеличить количество одновременно отображаемых на экране графических элементов фона.
Плата картриджа с дополнительным ОЗУ
Также в адресном пространстве есть «дырка»: пропуск в диапазоне адресов от $4018 до $8000, то есть от конца блока регистров синтезатора звука до начала ПЗУ кода. Это блок длиной без малого в 16 килобайт. Аппаратура картриджа может разместить там свою память, и, как правило, область от $6000 до $8000 (этот диапазон проще декодировать) отводится под дополнительное ОЗУ на картридже объёмом от 2 до 8 килобайт, часто снабжённое батарейным питанием, для сохранения состояния игры при выключенном питании. А с помощью механизма переключения банков туда возможно добавить и любой произвольный объём дополнительной памяти. На практике любители устанавливали до 64 килобайт.
Наконец, смежная с мапперами и расширенной памятью тема. Даже простое увеличение объёма доступной процессору памяти на картридже до эпических размеров позволяет реализовать ранее недоступные вещи, не прибегая ни к каким другим дополнительным аппаратным улучшениям. Так, простейший по устройству маппер, переключающий окно размером 16 килобайт с помощью 8-разрядного регистра выбора банка, позволяет адресовать до 4 мегабайт памяти на картридже.
На практике энтузиастами был реализован и вариант с 12-разрядным регистром, что позволило адресовать до 64 мегабайт памяти и реализовать такие проекты, как музыкальный альбом «A Winner Is You» с реалистичным звучанием и набор видеороликов с оцифрованной музыкой в проекте «You Are Error». Я разрабатывал программную часть в этих проектах, и о втором из них даже когда-то
подробно рассказывал на Хабре.
▍ Это Китай
Улучшениями архитектуры оригинальных Famicom и NES занималась не только Nintendo, что в итоге привело к созданию новой консоли, Super Nintendo, но и китайские инженеры. Их усилиями была реализована самая настоящая проапгрейженная Супер Денди из альтернативной реальности, которую, впрочем, мало кто видел.
Неизвестно, зачем им было это нужно, однако уже упомянутая в первой части статьи тайваньская компания
V.R. Technology, c 2001 года занимающаяся разработкой чипсетов для построения клонов Famicom/NES и внедрившая технологию OneBus, создала серию улучшенных чипсетов, коллективно известных как VTxxx — с наименованиями от VT01 до VT369.
Чип VT01 не так интересен, он имел весьма ограниченное применение, но это был первый шаг. Он предназначался для построения портативных клонов Famicom, использующих TFT-матрицу вместо телевизора. То есть видеосистема консоли была переработана под прямое управление подобным экраном. В остальном никаких отличий от стандартных клонов этот чип не имел.
Чип VT02 существенно расширил возможности стандартного Famicom. Добавился набортный MMC3-подобный маппер, в котором также впервые была реализована система OneBus. Появилась встроенная генерация прерываний для растровых эффектов, одновременная поддержка PAL и NTSC, внезапно интерфейс RS-232, поддержка выбора банка графики для каждого тайла и спрайта, DMA для пересылки данных в графическое ОЗУ (подобное штатному DMA спрайтов). Существенно улучшились звуковые возможности: был добавлен второй синтезатор звука, идентичный первому, что удвоило полифонию, а также 8-битный ЦАП с DMA.
В чипе VT03 помимо предыдущих улучшений были существенно расширены и графические возможности. Стало возможно использовать 16-цветные спрайты и тайлы, появился режим спрайтов шириной в 16 пикселей, а также расширенная 12-битная палитра в формате HSL. Этот чип получил свои отдельные форки: VT09 стал немного удешевлённой версией VT03, оптимизирующей работу с ОЗУ, а также есть версии VT16x и VT18x, оснащённые контроллером TFT-экрана.
Чип VT32 добавил к возможностям VT03 аппаратный умножитель и делитель, изменил формат расширенной палитры на стандартный R4G4B4 и добавил аппаратное проигрывание двух каналов сжатого цифрового звука в формате ADPCM. Правда, случился и шаг назад: второй синтезатор звука был убран.
Последний известный чип линейки, VT369, добавил разгон процессора до 5.37 МГц (в три раза), 256-цветный видеорежим, режим высокого разрешения 512x480 точек, до 16 «широких» спрайтов на строку растра, 15-битную палитру в формате R5G5B5.
Помимо Famicom-совместимых чипов у V.R.Technology были и другие, несовместимые разработки, вдохновлённые перечисленными выше, и, по всей видимости, предназначенные для портативных консолей.
Фрагмент обзорной документации на чип VT03
Помимо физических чипов, компания сделала документацию на английском языке и даже форк эмулятора NNNesterJ с поддержкой добавленных в VT03 возможностей. Поэтому с возможностями новой системы можно было ознакомиться, не имея самого чипа — довольно продвинутый шаг для китайского клоностроителя из начала 2000-х. Сами же чипы применялись в редких поздних клонах, в частности, в клоне 2005 года со смешным названием Generation NEX.
Как ни странно, но вся эта бурная деятельность V.R.Technology была не первым подходом к снаряду — просто о ней известно больше, чем о предшественниках. Но ещё в конце 1990-х годов компания UMC, издревле выпускавшая чипы для клонов, создала чип UM6578. Он также имел режим 16-цветной графики, 10 килобайт видеопамяти прямо на чипе, встроенный маппер для ПЗУ кода с восемью окнами по два килобайта, программируемый таймер, 8-битный ЦАП и возможности для работы с периферийными устройствами типа клавиатуры и мыши, включая обработку прерываний от них и от таймера. Использовался этот чип в основном в консолях с фиксированным набором встроенных игр. Достоверно неизвестно, связан ли он с разработками V.R. Technology, или это независимые начинания, обладающие схожими «на словах» характеристиками.
▍ Радиолюбители и энтузиасты
Пока в двух параллельных реальностях инженеры разных континентов колдовали над развитием возможностей Famicom и его клонов, в третьей реальности тем же самым занимались энтузиасты. И они занимались не только установкой светодиодов, но и весьма необычными вещами. Отследить и перечислить все эти разработки затруднительно, но упомяну несколько наиболее запомнившихся и интересных.
Видеоконтроллер Famicom — чип RP2C02
Хотя видеоконтроллер Famicom, так называемый чип PPU (Picture Processing Unit), и разработан специально для этой консоли, и не предназначен ни для чего больше, он имеет довольно простой интерфейс, и при желании его можно подключить к чему-нибудь ещё. Именно это однажды в доисторические времена и проделал один из больших отечественных энтузиастов платформы, HardWareMan (ожидайте в комментариях): он подключил контроллер отечественному к компьютеру Радио 86РК на микропроцессоре КР580ВМ80 (Intel 8080). В наши дни
аналогичные проекты повторялись с применением Arduino, к которому энтузиасты также подключали NES PPU.
Видеоконтроллер ранних Денди-подобных клонов — чип UA6538
В целом, управлять PPU можно любым процессором, и таким образом получать удивительные гибриды. Проблема только в доставаемости видеоконтроллера RP2C02 в виде отдельной физической микросхемы: оригинал от Nintendo, понятное дело, для свободной продажи не предназначался, а китайский аналог UA6538 перестал применяется в клонах ещё в начале 1990-х годов, с переходом на высокую интеграцию всей консоли на одном кристалле. Однако в наше время иногда в продаже попадаются чипы, извлечённые из неисправных консолей, и их количества хватает для любителей нетрадиционных развлечений.
PPU и Arduino. Фото из проекта на HackADay
Тем не менее, ничто не могло остановить работу пытливого ума. Ещё в 1995 году небезызвестным Сергеем Веремеенко, автором множества интересных аппаратных разработок для ZX Spectrum, была создана знаменитая и одновременно почти никем не виданная вундервафля, известная как «Видеопроцессор для ZX-Spectrum». На самом деле, впрочем, это был скорее гибрид ежа с ужом, так как к Спектруму подключалась вся Денди целиком. Разработка эта была подробно описана в журнале «ZX-Ревю», но очень немногие пытались её повторить, и до сих пор не обнаружено свидетельств успешного повторения. В теории, впрочем, подобная система точно работоспособна.
Начинал Сергей также с прямого подключения микросхемы UA6538 к ZX Spectrum. Однако, уже в те времена столкнувшись с отсутствием чипа в свободной продаже, а также с необходимостью и сложностью разработки нового ПО для его применения, он решил пойти иным путём. По сути, его разработка состояла из двух компонентов: особого картриджа, который автор назвал «интерфейсной платой», и схемы сопряжения видеовыходов двух устройств.
Схема «интерфейсной платы»
Интерфейсная плата-картридж содержала ПЗУ объёмом 2 килобайта с начальным загрузчиком, двух ОЗУ объёмом до 32 килобайт для загружаемого кода и графики, и двунаправленного 8-битного порта обмена данными. При включении приставки из ПЗУ запускался код драйвера, который мог принять от ZX Spectrum данные с кодом и графикой, загрузить их в ОЗУ платы, и работать как обычный картридж.
Схема сопряжения видеосигнала позволяла складывать два изображения: изображение с Денди отображалось только в тех знакоместах экрана ZX Spectrum, для которых был установлен (изначально не очень полезный) атрибут мигания. Для подключения требовалось серьёзное вмешательство в схему Спектрума, заставляющее его точно подстраиваться под тайминги видеосигнала стандарта PAL, формируемого Денди — как известно, отечественные клоны ZX Spectrum весьма вольно обращались с телевизионными стандартами. Из видеосигнала Денди извлекались синхроимпульсы, по ним синхронизировалось изображение Спектрума.
Схема выделения синхросигнала и доработок Спектрума
Отдельной сложностью было то, что два изображения выводились из комбайна в двух различных форматах: RGB от Спектрума и композитное видео от Денди. Требовалось одновременное подключение этих сигналов к одному телевизору (монитору), а также поддержка телевизором дополнительного сигнала «окно», переключающего источник изображения для каждого пикселя изображения, для реализации подобия OSD. Для упрощения подключения предлагалось осуществить «врезку» RGB-сигнала в композитный видеосигнал Денди, но как именно это сделать, автор умолчал.
Значительным недостатком подобной разработки была сложность создания нового ПО. Мало того, что нужно было иметь продвинутые навыки программирования на ассемблере ZX Spectrum, так ещё и требовалось хорошее знание архитектуры самой «Денди» и ассемблера 6502 — практически непосильные требования для отечественных реалий середины 1990-х. Собственно, огромная часть первой же публикации о разработке содержала подробное описание архитектуры процессора 6502 и самой Денди.
Описание устройства видеосистемы Денди в отечественной прессе 1995 года
Без разработки нового ПО данный комбайн мог только воспроизводить простейшие «безмапперные» игры для Денди, загружая их с дискет. Это, конечно, было интересно, но такие игры уступали большинству игр на ZX Spectrum, а более продвинутые новые игры ещё предстояло создать, и это было очень сложной задачей. По этой и другим описанным причинам разработка так навсегда и осталась притчей во языцех.
Наконец, последняя любительская разработка из начала 2000-х годов, которую я хотел бы упомянуть — устройство CopyNES. Она совершенно другого толка, но в то же время имеет и довольно схожие черты. Это тоже система сопряжения, но на этот раз сопрягается Денди, а точнее, оригинальный NES, с обычным персональным компьютером тех лет.
Установка платы CopyNES в консоль (фрагмент инструкции)
Осуществляется сопряжение с помощью установки в консоль дополнительной платы на место оригинального процессора 2A03. Сам процессор выпаивается из оригинальной платы и устанавливается на дополнительную. На последней также установлены ОЗУ, ПЗУ загрузчика, и интерфейс параллельного порта. Существует и более поздний вариант, USB CopyNES. Схема устройства позволяет производить любые манипуляции с адресами процессора, подставляя ему другие области памяти, в том числе с загружаемым особым кодом, а также перехватывать векторы сброса и обработки прерываний.
BankWatch, утилита для изучения неизвестных науке мапперов с помощью CopyNES
По своей сути CopyNES представляет собой внутрисхемный отладчик. Можно остановить процессор, считать или изменить содержимое памяти консоли, выполнять код пошагово, и делать прочие типичные для подобных устройств вещи. Можно считать данные из любого картриджа, разобраться в любом маппере, загружать и выполнять собственный код в ОЗУ для отладки на реальном железе. Важно отметить, что это не бытовое устройство, оно не предусматривает функционала, свойственного Flash-картриджам, и ориентировано на нужды разработчиков и хакеров, а не рядовых пользователей.
▍ Сетевые технологии
В наше время трудно представить компьютер или консоль без подключения к Интернету. И конечно, сетевые технологии не обошли стороной и Денди-подобные консоли.
Устройство Family Computer Network System, подключённое к Famicom
Началось это вовсе не вчера, и даже не в этом столетии. Ещё в 1988 году на японский рынок вышло официальное устройство от Nintendo, называемое Family Computer Network System, предназначенное для подключения к специальному сервису посредством диалап-соединения, через обычную телефонную линию.
В отличие от более поздних аналогичных разработок для Sega Genesis и Super Nintendo, которые также имели кучку собственных сетевых сервисов, ориентированных собственно на игры и развлечения, эта ранняя реализация имела не очень понятное предназначение. По сути это был некий аналог телетекста: с его помощью можно было узнать погоду, котировки акций, сделать ставки на спорт без регистрации и SMS, почитать анекдоты и так далее. Про игры речь почему-то не шла, хотя скачиваемый контент и был предусмотрен. Просуществовал чудо-сервис до 1991 года.
Необычный геймпад для Famicom Modem
Технически устройство сильно напоминает Famicom Disk System, только без дисковода и с модемной частью. Помимо вставляемого в слот картриджа адаптера, в комплект также входил особый контроллер-джойстик-геймпад, снабжённый помимо своих обычных кнопок цифровым полем и дополнительными кнопками.
Плата картриджа Rainbow с сетевым интерфейсом на базе модуля ESP12
В наше время энтузиасты замахнулись на большее. Появление недорогих IoT-микроконтроллеров с реализацией современных сетевых интерфейсов, включая TCP/IP и WiFi, позволило создать устройства для NES с человеческим выходом в Интернет. В частности, это проект универсального картриджа NESnet для сетевых приложений, до сих пор находящийся на ранней стадии разработки, и игра Super Tilt Bro., реализующая сетевую игру в файтинг один на один через WiFi на стандартной консоли NES.
Последнему проекту в 2023 году был посвящён
успешный Кикстартер, собравший 89 тысяч евро. Оба проекта используют давно полюбившийся энтузиастам модуль ESP8266 для сетевых коммуникаций.
▍ Малинка на торте
Апофеозом размещения дополнительного железа внутри картриджа для NES является порт игры Doom. Да, кто-то действительно запустил самый настоящий Doom на 8-битной NES. Но есть нюанс.
Конечно же, вычислительных сил процессора 6502, работающего на частоте 1.79 МГц, и близко не хватит для настоящей Doom-подобной игры (хотя проекты Wolf-подобных игр существуют в ассортименте). Описываемый порт, созданный в 2019 году, по сути работает на Raspberry Pi 3A+.
Собственно, этот довольно мощный одноплатник и запускает порт оригинальной игры, полноценный, без купюр. Он же выполняет преобразование выходного изображения в формат, который способна отобразить приставка, и передаёт эти данные через USB-интерфейс в дополнительный микроконтроллер FX2LP. Последний получает данные по USB и одновременно имитирует для консоли обычный чип видео-ОЗУ. Сама консоль также не отлынивает: она выполняет код синхронизации, опрашивает джойстик и передаёт информацию о нажатиях в RPi, а также проигрывает нормальную человеческую 8-битную музыку, которая специально сделана для этого порта.
Содержимое картриджа порта Doom и схема соединений
И хотя можно справедливо заметить, что подобный порт — трюк и обман, и на самом деле игра работает на современном мощном железе, сопряжение этого железа с игровой консолью 1983 года выпуска само по себе является весьма интересным техническим вызовом и достижением. Апгрейд ли это, или корабль Тесея обновился полностью — вопрос открытый.
▍ Новоделы
Закончим обзор апгрейдов «новодельными» клонами. Но не теми поделками ужасного качества, которые нам известны под этим ставшим ругательным наименованием — их и по сей день в ассортименте предлагает нам промышленность Китая.
Нет, в наше время есть ещё и новоделы иного толка: созданные энтузиастами, действительно любящими эту игровую систему, и готовыми на любые издержки в пределах разумного ради максимально качественного игрового опыта. Новоделы подобного толка представлены целым ассортиментом решений.
Новодельные платы-реплики разработки megawalkman. Фото с Авито
Например, существуют комплекты для сборки полноценной реплики, состоящие из новой печатной платы и «стародельных» выводных деталей. Встречаются варианты для установки в самодельный корпус, или в существующий от классических моделей типа оригинального Famicom или тёплой ламповой Dendy Junior. В результате получается качественно собранная вашими собственными умелыми руками консоль, идентичная натуральной, запускающая игры с оригинальных картриджей. От старых китайских клонов эти новые версии отличаются и качеством материалов, и улучшенной проработкой цепей питания и усиления выходных сигналов.
Также есть реплики, не применяющие оригинальные чипы и рассчитывающие на FPGA-реализацию. Как правило, это не единичные системы, а целые комбайны, поддерживающие NES как одну из множества консолей. Учитывая, что подобные устройства запускают образы, а не реальные картриджи, и не имитируют происходящие внутри консоли процессы на физическом уровне, заметных преимуществ по сравнению с программными эмуляторами у них нет. Разница в ином подходе к эмуляции.
MiSTer в кастомных корпусах
Тем не менее, некоторые из подобных решений пользуются большой популярностью. В частности, это открытая система MiSTer, построенная на основе отладочной платы Terasic DE10-Nano, и стараниями энтузиастов поддерживающая уже целую охапку самых разных консолей со второго по пятое поколение.
Существуют и системы на FPGA, реализующие исключительно платформу NES, и поддерживающие реальные картриджи и устройства. Хотя аппаратная суть та же, эмуляция в них реализована ближе к реальному железу, с соответствующими таймингами и логическими сигналами, а значит, реплика получается более достоверной. Использование FPGA открывает и новые возможности, больше свойственные эмуляторам: HDMI-выход, быстрые сохранения, и многие другие.
Консоль AVS в оригинальном пластиковом корпусе
Первая среди подобных консолей —
RetroUSB AVS, разработанная создателем первого Flash-картриджа для NES, PowerPak. От программных эмуляторов эта консоль отличается как совместимостью с почти всем реальным железом (кроме светового пистолета), так и HDMI-выходом в 720p при отсутствии лага (запаздыванием реакции на нажатия кнопок), который является принципиальной проблемой большинства программных решений. Система имеет собственный уникальный пластиковый корпус и два слота для картриджей: для NES и Famicom. Правда, никаких сервисных функций в этой системе не предусмотрено.
Analogue Nt Mini. Фото NintendoLife
Аналогичные преимущества предлагает и консоль Analogue Nt Mini, также построенная на FPGA: тоже два слота, HDMI-выход в 1080p, работа с реальными картриджами и периферийными устройствами. Обещают даже корректную работу светового пистолета. Но это не точно.
MicroByte DIY Retro Console. Фото Instructables
Также широко представлены эмулирующие консоли. Все их перечислять нет смысла, подобных проектов существует великое множество. В качестве случайного примера приведу
MicroByte DIY Retro Console, портативную самодельную консоль с эмуляторами на борту. Но к реальному железу подобные приборы отношения, конечно, имеют даже меньше, чем аналогичные по формату китайские портативки, часть которых хотя бы содержат реальное железо NES, а не программный эмулятор.
Лимитированная версия Analogue Nt в корпусе с покрытием настоящим золотом
Ну а королём новоделов — по крайней мере, на текущий момент — использующих аутентичное реальное железо, пожалуй, является консоль Analogue Nt. Она построена на новой печатной плате, содержащей оригинальные компоненты, извлечённые из старых неисправных консолей: реальные микросхемы 2A03 (процессор) и 2C02 (видеоконтроллер версии NTSC). Из системы был исключён чип региональной защиты. Предусмотрено два слота для картриджей Famicom и NES. Есть RGB-выход, а также компонентный, S-Video и композитный видеовыходы. Опциональная поддержка HDMI добавляется дополнительной платой.
Консоль выполнена в шикарном корпусе из алюминия, созданного методом фрезеровки из цельной алюминиевой болванки. Единственным недостатком этого чуда техники являлась цена, 500 долларов США на момент выхода в 2015 году. Впрочем, и прочие подобные устройства, ориентированные на хардкорных фанатов, всегда стоили недёшево.
▍ Заключение
И снова всё сводится к классическому мему про буханку: вот так с помощью нехитрых приспособлений и очумелых ручек можно сделать много чего — но зачем? Ответы могут быть разными. Просто интересно — не самый плохой вариант.
Telegram-канал со скидками, розыгрышами призов и новостями IT 💻
