
Данный материал завершает цикл публикаций, посвященных созданию ретроконсоли своими руками для новичков. В нем мы познакомимся с Raspberry Pi 400, научимся правильно разгонять и тестировать одноплатный компьютер на стабильность, а также поговорим о самых интересных корпусах и геймпадах, выполненных в стиле классических игровых приставок.
Все включено: чем так хорош Raspberry Pi 400?
Собрать ретроприставку на базе Raspberry Pi способен абсолютно каждый. Однако для тех, кто не особо хочет заморачиваться или просто слишком нетерпелив, существует альтернативное решение в виде готового микрокомпьютера Raspberry Pi 400.

Raspberry Pi 400 доступен в единственной модификации — с 4 ГБ оперативной памяти на борту, однако для эмуляции ретроконсолей этого более чем достаточно. Дизайн устройства заставляет вспомнить классические компьютеры ZX Spectrum: по факту при покупке 400-й модели вы получаете в свое распоряжение 79-кнопочную мембранную клавиатуру со встроенным SBC и набором разъемов для подключения периферии, расположенных на задней панели.

В отличие от оригинала, Raspberry Pi 400 лишился одного порта USB 2.0, что, впрочем, не является критичным для нашего проекта. Зато не самый удобный microSD-слот типа «push-pull» уступил место более современному «push-push», так что о проблемах с застреванием флеш-карт отныне можно забыть. А вот что действительно удручает, так это отсутствие 3,5-миллиметрового мини-джека. Впрочем, данный недостаток с лихвой перекрывается начинкой «малинового пирога».
Первое, что бросается в глаза после разборки корпуса, — массивная металлическая пластина, играющая роль не только опорного каркаса для всей конструкции, но и теплоотвода, соединенного с SoC микрокомпьютера посредством термопрокладки. Надо сказать, что, несмотря на отсутствие активного охлаждения, импровизированный радиатор превосходно справляется с возложенной на него задачей за счет площади: при температуре воздуха 25 °C чип разогревается максимум до 46 °C в стресс-тестах в стоке, тогда как критический порог, при котором наступает троттлинг, составляет 85 °C.

Под радиатором скрывается сам SBC, и здесь приятные сюрпризы продолжаются. В отличие от эталонной четверки, выполненной на базе SoC BCM2711B0, Raspberry Pi 400 обзавелся более совершенным чипом BCM2711С0. Да, здесь мы видим все те же Cortex-A72 ARMv8, однако частота каждого ядра возросла на 300 МГц и достигает уже 1,8 ГГц против 1,5 ГГц у оригинала.

При работе с эмуляторами такая разница оказывается весьма существенной, особенно когда речь заходит о консолях уровня Dreamcast, Nintendo 64 и более поздних: увеличенная частота положительно сказывается на фреймрейте, а значит, и игровой процесс получается более плавным.
При всем при этом новый чип оказался куда холоднее своего предшественника: он без особых проблем разгоняется до 2,2 ГГц, сохраняя температуру под максимальной нагрузкой не выше 57 °C, и это — с дефолтным охлаждением без какого-либо тюнинга.

Кстати, о тюнинге. Пожалуй, главной «ложкой дегтя» в случае с Raspberry Pi 400 оказывается нестандартный форм-фактор печатной платы: если со временем вы все же захотите прокачать свою ретроконсоль, то попросту не сможете найти готовый кастомный корпус, так что без 3D-печати уже никак не обойтись. Но это единственный серьезный недостаток данной модели.
Что же касается ценника, то здесь все выглядит достаточно привлекательно. Комплект, включающий в себя сам Raspberry Pi 400, адаптер питания, кабель-переходник micro-HDMI–HDMI, фирменную мышь и руководство пользователя, обойдется вам примерно в 11,5 тысячи рублей, если заказывать на AliExpress. Почти столько же вам придется отдать за Raspberry Pi 4B с 4 ГБ RAM на борту, клавиатуру с тачпадом и более-менее приличный корпус с хорошим охлаждением. Так что если размеры SBC (286 × 122 × 23 мм) или отсутствие возможности кастомизации для вас не являются критичными, приобретение четырехсотой «малинки» будет даже более выгодным решением, нежели самостоятельная сборка ретроконсоли с нуля.
Нужно больше FPS: разгон Raspberry Pi
При всех многочисленных достоинствах, у любой модификации «малинки» (даже самой мощной) не хватает производительности для стабильной эмуляции консолей уровня PlayStation 2, Dreamcast или Nintendo 64, хотя в отдельных проектах данный SBC показывает весьма достойные результаты. Частично исправить этот недостаток помогает увеличение частот CPU и GPU, при этом сам процесс разгона оказывается даже проще, чем оверклокинг полноценного ПК.
Как и в случае с оригинальной Raspberry Pi OS, для изменения рабочих параметров RetroPie достаточно отредактировать файл config.txt, расположенный в корне системного накопителя (в нашем случае — microSD-карты). Сделать это можно двумя путями.
выключить Raspberry Pi, извлечь флеш-карту, подключить к ПК или ноутбуку с помощью карт-ридера (например, SanDisk MobileMate USB 3.0), открыть ее как обычный съе��ный накопитель и внести необходимые правки с помощью Notepad++ или другого редактора;

вызвать терминал RetroPie (по умолчанию — F4), открыть конфигурационный файл с помощью команды
sudo nano /boot/config.txt, внести необходимые изменения и сохранить их сочетанием клавиш Ctrl+X, после чего перезагрузить систему (sudo shutdown -r now), чтобы настройки вступили в силу.
Для разгона Raspberry Pi используется множество параметров, однако ключевых — всего 4, и это:
arm_freq— задает максимальную частоту процессора в мегагерцах;gpu_freq— переопределяет частоту графического ядра (core_freq), блока обработки 3D-графики (v3d_freq), блока аппаратной обработки H.264-видео (h264_freq), блока аппаратной обработки H.265-видео (hevc_freq) и блока обработки изображения с камеры (isp_freq) в мегагерцах;over_voltage— позволяет регулировать питание CPU/GPU, может принимать значения от-16(что соответствует 0,95 В) до8(1,55 В);force_turbo— при включении данного режима процессор будет постоянно работать на максимальной частоте, заданной параметромarm_freq; может принимать значения0(выключен) или1(включен); его активация также требуется в случае, если вы хотите поднять напряжение на процессоре до 1,55.
Особого смысла трогать force_turbo нет, если только вы не отмечаете проблемы с производительностью в играх вследствие сброса частот до минимальных значений, или не хотите поднять вольтаж на процессоре на максимум, иначе CPU будет молотить впустую и перегреваться. Кроме того, сочетание опций force_turbo=1 и over_voltage=8 приводит к потере гарантии.
Что же касается оптимальных значений перечисленных параметров, при которых система остается стабильной, то для Raspberry Pi 4B/400 таковые составляют:
arm_freq=2200(по умолчанию 1500/1800 МГц);gpu_freq=750(по умолчанию 500 МГц);over_voltage=6.
Разгонный потенциал предыдущих модификаций «малинки» несколько скромнее, однако дополнительные FPS можно выжать даже из них. Ниже приводим параметры разгона для Raspberry Pi третьего поколения и Zero/Zero W (эти малышки все еще актуальны, ведь с их помощью можно собрать портативную консоль для игр в поездках).
Модель | Raspberry Pi 3 | Raspberry Pi 3 A+ / B+ | Raspberry Pi Zero / Zero W |
| 1300 | 1500 | 1100 |
| 500 | 500 | 450 |
| 4 | 4 | 6 |
Разумеется, многое зависит от конкретного экземпляра устройства и возможностей системы охлаждения. Сразу предупредим: если вы планируете разгонять свою «малинку», то о красивых корпусах, выполненных в стиле классических игровых консолей, придется забыть, так как они совершенно не предназначены для подобных экспериментов. Хорошим выбором в данной ситуации станет нечто вроде ICE Tower от 52Pi для Raspberry Pi 4B — низкопрофильного кулера с двумя медными тепловыми трубками. В комплекте с фирменным корпусом из алюминиевого сплава подобный девайс обойдется вам примерно в 2000 рублей.

Что же касается самой методики разгона, то алгоритм здесь таков:
выставляем максимально возможные параметры для вашей модели Raspberry Pi;
запускаем устройство с новыми настройками;
если SBC не стартует или сразу перезагружается, снижаем
arm_freqна 100 МГц (илиcore_freqна 50 МГц), подключив карту памяти к ПК и отредактировав config.txt;запускаем повторно, и, если операционная система корректно загрузилась, проводим нагрузочные тесты и проверяем, насколько хорошо кулер справляется с охлаждением разогнанного SoC.
Проще всего протестировать разогнанную «малинку» с помощью утилиты sysbench. Для ее установки необходимо войти в терминал RetroPie (вызывается на F4) и ввести:
sudo apt install sysbench
Для проведения же самих тестов рекомендуем воспользоваться следующим скриптом:
/!bin/bash
#Получаем значения температуры, текущей частоты вычислительных ядер и информацию о троттлинге с помощью утилиты vcgencmd
function get_info() {
vcgencmd measure_temp
vcgencmd measure_clock arm
vcgencmd get_throttled
echo
}
get_info
#Запускаем 10 прогонов sysbench в четырехпоточном режиме (по потоку на каждое ядро, для Zero/Zero W достаточно 1) и перенаправляем вывод бенчмарка в /dev/null
for ((i=1;i<=10;i++))
do
sysbench --num-threads=4 --test=cpu --cpu-max-prime=20000 run > /dev/null # 2>&1
get_info
doneСохраните скрипт под любым удобным именем (например, benchmark.sh) и затем запустите командой:
./benchmark.shПосле запуска скрипт сперва отобразит текущие значения температуры, частоты и троттлинга, а затем будет выводить данные в консоль по окончании каждого прогона sysbench. Это позволит достоверно оценить, насколько хорошо система охлаждения справляется с разогнанным процессором.
Данные будут выглядеть примерно следующим образом:
temp=56’C
frequency(48)=2000284679
throttled=0x0Обратите внимание на то, что частота отображается в герцах, то есть на деле нас будут интересовать лишь первые 4 цифры. В свою очередь, параметр throttled принимает одно из шестнадцатеричных значений, каждое из которых указывает на тот или иной статус системы.
Бит | Значение параметра throttled | Обозначает |
0 | 0x1 | Обнаружено пониженное напряжение |
1 | 0x2 | Ограничение частоты процессора |
2 | 0x4 | Троттлинг |
3 | 0x8 | Мягкое ограничение температуры |
16 | 0x10000 | Произошло понижение напряжения |
17 | 0x20000 | Произошло ограничение частоты процессора |
18 | 0x40000 | Произошел троттлинг |
19 | 0x80000 | Произошло мягкое ограничение температуры |
Разгон можно считать удачным в том случае, если под нагрузкой температура чипа не превышает 60°C при полном отсутствии троттлинга (throttled=0x0).
Дополнительно повысить быстродействие ретроконсоли поможет использование высокоскоростных карт памяти SanDisk Extreme microSDXC. Производительность флеш-карт семейства достигает впечатляющих 100 МБ/с в операциях чтения и 90 МБ/с при записи файлов. Проще говоря, с такой карточкой на закачку каждых 4 ГБ образов игр у вас будет уходить не более 1 минуты.

Еще одним преимуществом карт SanDisk Extreme microSDXC является соответствие скоростному классу A2 согласно классификации Application Performance Class. На практике это означает, что даже в самых неблагоприятных условиях скорость передачи данных между флеш-картой и одноплатным компьютером не будет опускаться ниже 10 МБ/с, а минимальное устойчивое количество операций ввода-вывода будет держаться на уровне 4000 IOPS в операциях случайного чтения и 2000 IOPS при записи файлов. Это позволяет существенно сократить время загрузки операционной системы (не более 25 секунд) по сравнению �� обычными флеш-картами и добиться устойчивых показателей производительности при работе с тяжелыми приложениями, будь это графический редактор или эмулятор игровой системы шестого поколения.
Как и другие продукты SanDisk, карты памяти линейки Extreme соответствуют высочайшим стандартам надежности и способны сохранять работоспособность даже спустя 72 часа пребывания в пресной или соленой воде на глубине вплоть до 1 метра или выдержать падение с высоты до 5 метров на бетонный пол, а также хорошо защищены от воздействия рентгеновского излучения и статических магнитных полей с силой индукции до 5000 Гс, что исключает вероятность повреждения сохраненных данных при прохождении досмотра с применением металлоискателя или интроскопа, а значит, вы сможете без опаски брать ретроконсоль с собой в поездки. На каждую карту памяти распространяется ограниченная пожизненная гарантия.
Максимум ностальгии: собираем копии ретроконсолей
Поскольку наши материалы ориентированы прежде всего на новичков, ранее не имевших дела с SBC, в первой статье мы рекомендовали читателям корпус Retroflag NESPi 4 и геймпад 8BitDo SN30 Pro+. Наш выбор был отнюдь не случаен, ведь данные девайсы являются наиболее универсальными среди всех представленных на рынке.
NESPi 4 можно без преувеличения назвать лучшим корпусом для Raspberry Pi 4, стилизованным под ретроконсоль, и речь здесь идет отнюдь не только об общем качестве исполнения. Киллер-фичей NESPi 4 является наличие встроенного адаптера SATA–USB, который обеспечивает возможность подключения к Raspberry Pi 2,5-дюймовых винчестеров или SSD и, более того, позволяет менят�� их так же легко, как игровые картриджи для оригинальной консоли, без необходимости разборки корпуса. Это не просто решает проблему хранения вашей игротеки, но и позволяет с легкостью превратить ретроконсоль в портативный мультимедийный центр на базе того же KODI. В свою очередь, 8BitDo SN30 Pro+ совместим не только с Raspberry Pi, но и с компьютерами под управлением Windows и macOS, андроид-гаджетами и даже с Nintendo Switch.
Благодаря всему перечисленному, даже если вы со временем разочаруетесь в самой идее иметь отдельное устройство для ретрогейминга, ваши деньги и усилия не пропадут даром, ведь импровизированную консоль можно будет с легкостью превратить в медиасервер или NAS, а геймпад — использовать практически с любой другой техникой. Но если вы, напротив, полны решимости обзавестись миниатюрной репликой любимой консоли своего детства, то и здесь Retroflag и 8BitDo найдут, что вам предложить.
NESPi PLUS

Визуально корпус практически идентичен NESPi 4, однако, в отличие от старшего брата, NESPi PLUS рассчитан на установку Raspberry Pi 2B/3B/3B+. Кроме того, у данной модели отсутствует SATA-адаптер, а под крышкой для отсека картриджей скрываются гнездо для Ethernet-кабеля и пара USB-портов для подключения геймпадов.

К сожалению, в каталоге Retroflag вы не найдете подходящих к данному корпусу контроллеров, однако здесь нас выручат 8BitDo N30.

Как и другие геймпады компании, беспроводные N30 являются универсальными и могут работать не только с Raspberry Pi, но и с ПК, мобильными устройствами и даже с Nintendo Switch.
SUPERPi J/U

Не забыли в Retroflag и о другой знаковой приставке Nintendo, причем производитель предлагает сразу два варианта корпуса на выбор: в стиле японской (с индексом J) и американской (индекс U) версий консолей. Для обеих модификаций выпускаются совместимые USB-геймпады характерной расцветки, получившие официальные названия Classic USB Controller J и U соответственно. Прекрасной альтернативой последним способны стать беспроводные контроллеры SN30 от 8BitDo.

В основе конструкции перечисленных корпусов лежат одни и те же принципы:
пара USB-портов выведена на переднюю панель консоли для подключения контроллеров;
два других порта USB и LAN-разъем спрятаны под декоративной панелью левого борта, играющей роль защитной крышки;

в комплекте с каждым корпусом поставляется фальшкартридж, который на самом деле является кейсом для microSD-карт.

Подобно NESPi Case PLUS, корпуса семейства SUPERPi совместимы с Raspberry Pi 2B/3B/3B+, однако не поддерживают SBC четвертой версии из-за особенностей топологии печатной платы.
MEGAPi

Данный корпус совместим с Raspberry Pi 2B/3B/3B+ и представляет собой реплику знаменитой 16-битной приставки Sega Mega Drive. Помимо «портретного сходства», среди интересных особенностей модели стоит выделить откидывающуюся верхнюю фальшпанель, под которой притаился отсек для хранения флеш-карт, и боковую защитную крышку для microSD-слота, надежно защищающую последний от загрязнения.

Специально под данную модель корпуса Retroflag выпускает и аутентичные геймпады Classic USB Controller M, облик которых практически в точности повторяет дизайн оригинальных контроллеров для Sega Mega Drive, если не считать наличия кнопки «Select» и пары бамперов вместо кнопки «Mode».

Кроме того, в отличие от оригинальных геймпадов, Classic USB Controller M не позволяют установить стик на крестовину: центральное отверстие лишено металлической втулки с резьбой и носит декоративный характер.
Если же вы недолюбливаете проводные контроллеры, то можете приобрести 8BitDo M30.

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

Уникальный в своем роде корпус, позволяющий собрать на базе одноплатного компьютера Raspberry Pi Zero/Zero W почти точную реплику Nintendo Game Boy. Хотя GPi получился немного компактнее, в остальном данная модель практически дословно цитирует легендарную портативную приставку.

Как и оригинал, GPi имеет внешний динамик с регулятором громкости, 3,5-миллиметровый мини-джек для подключения стереонаушников и может работать от сети или же автономно, получая питание от трех пальчиковых батареек. Однако, в отличие от Game Boy, необычный девайс от Retroflag обзавелся парой бамперов, практически не выделяющихся на рифленой поверхности задней панели.

В сочетании с качественным цветным IPS-дисплеем с разрешением 320 × 240 пикселей их наличие делает консоль более универсальной, и позволяет без особых проблем играть в проекты, разработанные не только для портативной консоли, но и для 8- и 16-битных домашних игровых систем, благо Raspberry Pi Zero, несмотря на существенно меньшую производительность (модель получила одноядерный процессор ARM1176JZF-S, работающий на частоте 1 ГГц и лишь 512 МБ оперативной памяти), вполне достойно справляется с эмуляцией тех же Sega или SNES.
Среди интересных особенностей корп��са необходимо выделить необычный подход к установке SBC: плата монтируется внутрь фальшкартриджа, подключаемого к слоту, расположенному, как и у оригинального Game Boy, позади консоли.

Напоследок мы хотели бы обратить ваше внимание на один небольшой, но чрезвычайно важный нюанс, связанный с корпусами Retroflag, который многие новички упускают из виду. Как вы могли заметить, каждый из корпусов имеет функциональные кнопки «Power» и «Reset», однако, для того чтобы они корректно работали, сперва следует установить в систему необходимые скрипты, предоставляемые самим производителем.
Процедура установки для операционной системы RetroPie и любого полноразмерного корпуса (NESPi PLUS, SUPERPi, MEGAPi, NESPi 4) выполняется в два шага:
после загрузки ОС войдите в терминал, нажав на F4;
введите команду
wget -O -"https://raw.githubusercontent.com/RetroFlag/retroflag-picase/master/install.sh" | sudo bash
Для портативного корпуса GPI существует отдельный скрипт, поэтому команда установки будет выглядеть иначе:
wget -O -"https://raw.githubusercontent.com/RetroFlag/retroflag-picase/master/install_gpi.sh" | sudo bashПосле отработки скрипта и перезагрузки ваша ретроконсоль станет поддерживать безопасное выключение. С этого момента каждый раз после нажатия кнопки «Power» операционная система будет дожидаться полного завершения всех активных процессов записи на microSD-карту и лишь затем отключать питание одноплатного компьютера, что позволит нивелировать вероятность повреждения данных и файловой системы.
Оглавление
Ретроконсоль своими руками Часть 1. Выбираем «железо»
Ретроконсоль своими руками Часть 2. Установка и настройка RetroPie
