Gameboy Advance SP с тяжёлой историей... [Лонг, про железо]

Gameboy Advance SP с тяжёлой историей... [Лонг, про железо]

Сегодня Пикабушник под ником @apokhmel подарил мне мою мечту - оригинальную консоль GBA SP. Для тех, кто не в курсе - это легендарная портативка, вышедшая в далёком 2003 году и являющаяся раскладной версией оригинального GBA, куда добавили подсветку дисплея. Сначала ламповую, а затем и светодиодную!

Gameboy Advance SP с тяжёлой историей... [Лонг, про железо]

Консоль построена на кастомной системе на кристалле разработки самой Nintendo. SoC AGB BE объединял в себе достаточно современный, на момент выхода, процессор ARM7TDMI, работающий на частоте 16МГц, кастомный сопроцессор Sharp SM83 прямиком из оригинального Gameboy (интересен тем, что представляет из себя микс архитектуры 8080 и Z80), продвинутый PPU (2D предок современных GPU, оперирующий спрайтами и тайлами) схожий с SNES и поддерживающий аж 7 видеорежимов, и даже аффинные трансформации, а также простенький SPU, включающий в себя как звукогенераторы оригинального GB, так и обычный ЦАП для вывода PCM-звука. Помимо основных модулей, в SoC также были таймеры, DMA и другие полезные ништяки.

Gameboy Advance SP с тяжёлой историей... [Лонг, про железо]

Не менее интересной была и организация памяти. У процессора "торчали" наружу сразу две параллельные шины типа 8080 - одна на внешнюю SRAM объемом в 256КБ (стоит рядом с процессором), а вторая на картридж. При этом обе шины были 16-битными, из за чего выборка одного машинного слова (для ARM) требовала сразу два такта чтения. Распиновка картриджа была идентичной оригинальному GBA (для совместимости) и отличалась использованием общих сигнальных линий для адреса и данных - в чипе ROM был встроенный сдвиговый регистр, который сначала сохранял адрес нужного банка, ждал пока процессор переведет линии в высокоимпендансное состояние и затем выставлял прочитанные данные на те же линии. Хитро и умно :)

Но главной фишкой было то, что внешняя SRAM была относительно медленной и для этого Nintendo предусмотрела 32КБ сверхбыстрой оперативной памяти в самом процессоре. Эта SRAM была подключена в обход контроллера параллельной шины, скорее всего сразу через AHB, и позволяла читать/писать память в один такт.

Интересно и то, что ARM7TDMI можно было найти и в других устройствах тех лет. Например кнопочных телефонах - наши любимые Motorola E398, Samsung C100 и Nokia 3310 используют точно такое же процессорное ядро, только работает оно на разной частоте.

Gameboy Advance SP с тяжёлой историей... [Лонг, про железо]

Несмотря на высокий уровень интеграции по меркам 2001 года, в GBA и GBA SP питальники разведены отдельно. В GBA и первой ревизии SP за питание консоли отвечало сразу два чипа - S6403, объединявший в себе 2 DC-DC понижающих преобразователя, формирующие основные шины питания - 1.8В (вероятно ядро) и 3.3В (системное) и 1 повышающий, формирующий 5В (для совместимости с картриджами оригинального геймбоя), а также простенький детектор разряженного АКБ (на делителе?). Вторым чипом была микросхема зарядки MM1581, которая частенько выходила из строя и калилась, из за чего консоль продолжала работать нормально, но жрала аккумулятор куда быстрее и переставала заряжаться.

В чуть более свежей ревизии, преобразователи и зарядку объединили в один чип, который в моем случае частично вышел из строя...

Gameboy Advance SP с тяжёлой историей... [Лонг, про железо]

АКБ оказался сдохшим. Я проверил консоль с помощью ЛБП - она включалась, но висела на заставке без лого Nintendo (это значит что картридж не обнаружен), потребление было в норме - 40мА с обычным уровнем подсветки и 80мА с максимальной яркостью (респект инженерам Nintendo, это очень маленькое потребление по меркам такого девайса. Например RP2040 сам по себе кушает не менее 20мА в режиме сна!). Затем крокодилы чутка коротнули друг об друга и при следующем включении я уже увидел потребление в 300мА...

Gameboy Advance SP с тяжёлой историей... [Лонг, про железо]

Само собой в Nintendo работают не идиоты и защиту на VBAT от КЗ и переполюсовки предусмотрели, так что дело явно не в этом. Однако КП начал калиться и при детальном рассмотрении оказалось что следы этого самого кофе перемкнули несколько ног на КП... но было уже слишком поздно - изначально ведь я не знал, что консоль была водолазом :)

Gameboy Advance SP с тяжёлой историей... [Лонг, про железо]

После небольшой диагностики я выяснил что сдох только КП, что это типовуха у последней ревизии и на многих консолях остаётся лишь перерезать VIN на КП и собрать чарджер на чем то типа LTC4054. Все остальные модули, включая усилитель звука, DC-DC'шки и "Fuel gauge" остались живыми... Но сколько проработает КП, которой так калится?

Gameboy Advance SP с тяжёлой историей... [Лонг, про железо]

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

Я поищу донора с ещё более ушатаной платой, и если повезёт найти по нормальной цене, то обязательно свапну контроллер питания и отремонтирую консоль 😎

Gameboy Advance SP с тяжёлой историей... [Лонг, про железо]

Также мне хотелось разобрать матрицу и почистить рассеиватель от следов кофе, но в случае с дисплеем GBA это просто нереально. Дисплей толком неразборной, матрас вместе со шлейфом приклеен к подсветке и малейшее неосторожное движение либо отклеит шлейф от дешифратора, либо повредит боковые дорожки драйвера дисплея.

Перебирал довольно много разных матриц, но эта - самая неподдающаяся.
Перебирал довольно много разных матриц, но эта - самая неподдающаяся.

Что-ж, пока поиграю и так :) А ведь GBA отлично показывала себя в тех 2D играх, где используются спрайтовые режимы PPU. Несмотря на скромную частоту процессора, многие игры шли в стабильные 60 FPS как раз благодаря тому, что чипу не приходилось заниматься программным блиттингом, аффинными трансформациями и прочими тяжёлыми по меркам памяти и процессорного времени штуками - он просто заполнял атрибуты спрайтов на экране в OAM. Да, как и на NES за 20 лет до выхода GameBoy Advance :)

Gameboy Advance SP с тяжёлой историей... [Лонг, про железо]

Если любите читать такое - подписывайтесь на мой Telegram "Клуб фанатов балдежа", куда я выкладываю различные посты связанные с ремонтом, моддингом и программированием для ретро-железа, ну и конечно немного щитпоста :)

Что думаете о моей новой GBA?😎
Балдеж. Спасибо Пикабушнику за подгон, ждём полноценную игру!
Не балдеж. Ей место на помойке.
PSP лучше!
Это была моя мечта когда-то...
Чудо инженерной мысли!
Ждём статью с полной реставрацией консоли + статью с написанием для нее игры😎
Подарю автору Агушу, ведь он любит Агуша гейминг!
Обожаю такие статьи с разбором железа!
Такие статьи как понос без говна - это просто вода.
16
11
4
1
1
21 комментарий