О звуке простыми словами42Производители Hi-Fi.
Истории и интервью111Репортажи с заводов65Репортажи с Hi-Fi выставок69"Сделай сам"44Готовые проекты Аудиомании42Пресса об Аудиомании50Видео499Фотогалерея100Интересное о звуке806Новости мира Hi-Fi2580Музыкальные и кинообзоры624Глоссарий
Реверс-инжиниринг звукового усилителя популярной портативной консоли — обсуждаем основные находки
В начале мая на Hacker News опубликовали материал, автор которого провел reverse engineering усилителя звука, установленного в Nintendo Game Boy Color. Обсудим главное.
Ранее мы рассказывали о Sound Blaster 1.0 и карте для IBM PC — Innovation SSI-2001.
Game Boy Color выпустили в 1998-м, и приставка быстро стала популярной. Для нее выпустили несколько сотен игр разных жанров. Были и хорроры — например, Alone in the Dark.
Погрузиться в атмосферу игр позволяла поддержка стереонаушников и встроенный монодинамик. За их работу отвечал микрочип с тремя усилителями. Программист и поклонник олдскульной техники Кен Ширифф (Ken Shirriff) провел обратную разработку чипа и составил его схему. Для этого инженер использовал фото кристалла, на которой заметны несколько необычных технических решений.
Структура чипа
В целом интегральную схему устройства можно разбить на пять компонентов. Прямо посередине расположен усилитель для динамика, а слева от него — крупные выходные транзисторы. Они повышают мощность частотных колебаний до рабочих значений динамической головки. Также усилитель содержит дифференциальную пару, токовые зеркала и другие служебные ИС.
В правом верхнем и нижнем углах размещены усилители для наушников. Их выходные каскады состоят из десяти параллельно подключенных транзисторов. Системы делят между собой источники тока и токовые зеркала — эти компоненты установлены между усилителями. В нижней части чипа находится управляющая логика. Она переключает систему между усилителями для динамика и наушников.
Особенности транзисторов
В своем Twitter Кен Ширифф отметил, что звуковой усилитель Game Boy содержит примерно сто NPN- и PNP-транзисторов. Они состоят из трех полупроводниковых слоев с чередующимся типом проводимости: эмиттера, базы и коллектора и управляются током. Использование этих транзисторов нетипично для цифровой схемотехники, где распространены МОП-транзисторы (металл-оксид-полупроводник) — в отличие от биполярных транзисторов, они управляются напряжением.
Один из резидентов Hacker News в тематическом треде рассказал, что если бы звуковой усилитель Game Boy разрабатывали в наше время, то его основу составила бы именно КМОП-структура.
В ретрочипе Nintendo на основе NPN- и PNP-транзисторов также построены несколько схем, которые могут показаться необычными для цифровой схемотехники. Но они вполне обыденны для аналоговых ИС. Одной из них являются токовые зеркала, которые играют роль стабилизаторов тока. Например, на схеме можно найти токовое зеркало, состоящее из шести PNP-транзисторов.
При этом самые крупные транзисторы на схеме — NPN-транзисторы. Они расположились в левом верхнем углу ИС и играют роль выходных каскадов для динамика.
Резисторы и конденсаторы
Резисторы на схеме представляют собой длинные зигзагообразные полосы, выполненные из полупроводника p-типа (кремния). Такой подход позволил инженерам сэкономить место на кристалле.
Также на чипе размещены три крупных конденсатора — по одному для каждого усилителя. Они выглядят как «бутерброд» из металла, кремния и изолирующей оксидной пленки и играют роль стабилизаторов для усилителей.
Другие проекты энтузиастов Game Boy
В прошлом году французский инженер провел обратную разработку SoC для Game Boy. Он составил схемы APU, PPU, а также I/O-систем, и опубликовал их на GitHub. В сумме на поиск всех соединений и составление чертежей он потратил 191 час.
Энтузиасты не только проводят reverse engineering олдскульных игровых приставок, но и разрабатывают их эмуляторы. На GitHub можно найти Mooneye GB на Rust. Эмулятор поддерживает как оригинальную приставку Nintendo, так и более поздние версии консоли — например, Game Boy Player, выпущенную в начале нулевых.
Еще один проект из этой же серии — Cinoop. Это — открытый мультиплатформенный эмулятор (работает на Windows, DS, GameCube, 3DS, Linux, PSP и PS4), написанный на языке Си. Пример работы можно посмотреть на YouTube — автор играет в Тетрис.