Если вы не слышали о Metal Gear, скорее всего, последние несколько десятилетий вы обходили видеоигры стороной. Первая часть серии вышла в 1987 году на платформе MSX, но настоящая слава пришла с Metal Gear Solid на первой PlayStation в 1998 году. То, для чего в 1998-м требовалась увесистая консоль, в 2026-м спокойно умещается на микроконтроллере — это доказал Дэвид Монтеро Креспо (David Montero Crespo), портировавший MGS на ESP32-S3.
Как и почти любой подобный хак, проект стоит на плечах гигантов. Он целиком опирается на проект декомпиляции MGS Reversing от команды FoxdieTeam. Но то, что одна команда декомпилировала, другая может пересобрать: Дэвид решил перекомпилировать игру под ESP32 от компании Espressif. Просто форкнуть репозиторий и выбрать ESP32 целевой платформой не получилось — подробности разобраны в записи об этом проекте в блоге.
Автору пришлось внести в код ряд правок, чтобы учесть отличия архитектуры: в PlayStation установлен процессор на архитектуре MIPS, а в микроконтроллере работают ядра Xtensa, и у каждой из них свои особенности, которые нельзя игнорировать при пересборке игры.
Чтобы в результат можно было играть, Дэвид собрал минималистичную портативную консоль. Модуль ESP32-S3 установлен на макетную плату вместе с аналоговым стиком от пульта управления дроном и ЖК-дисплеем ILI9341, а кнопки подключены через резисторную лестницу. Получилась скромная, но вполне рабочая портативная приставка.
Порт наглядно показывает, как далеко продвинулись микроконтроллеры: игра, которой в конце 1990-х нужна была полноценная консоль, теперь работает на компактном модуле микроконтроллера.
Поклонникам серии наверняка придётся по душе реплика игрового коммуникатора (codex communicator), а любителям ESP32 может вспомниться клон Wipeout, который уже появлялся ранее. Он показал, что популярный микроконтроллер справляется с графикой уровня PlayStation, а порт MGS лишь подтверждает этот вывод.
Тем же, кто ждал настоящих металлических шестерён, остаётся утешение: шестерни из металла тоже можно выточить у себя дома.











