Играть в Game Boy прямо в терминале Linux с php-terminal-gameboy-emulator

Почему запускать Game Boy в терминале имеет смысл

Game Boy от Nintendo — одна из самых популярных портативных приставок в истории. С процессором 4 МГц и экраном 47×43 мм он помещался в карман и давал около 15 часов игры от четырёх батареек AA. Сегодня оригинальные картриджи можно коллекционировать, а игры — запускать через эмуляцию.
Эмулятор php-terminal-gameboy-emulator (написан на PHP) воспроизводит графику Game Boy в виде точечной матрицы в терминале. Преимущества и ограничения в двух предложениях:
- Плюсы: нет GUI, можно запускать по SSH, лёгкая установка, работает на многих версиях PHP (включая современные до 8.2 в практической проверке).
- Минусы: нет звука, нет сохранений, управление фиксировано и не переназначается.
Важно: используйте только те ROM‑файлы, которые вы легально приобрели. Для легальных homebrew ROM смотрите Homebrew Hub.
Короткая справка: что делает эмулятор
- Преобразует пиксели Game Boy в символы терминала (ASCII/Unicode/Braille в зависимости от режима).
- Работает без графического окружения — полезно на серверах и в SSH‑сессиях.
- Требует интерпретатор PHP и один исполняемый PHAR‑файл.
Требования и совместимость
Файл php-gameboy.phar требует PHP CLI. Разработчики указывают поддержку PHP 5.6, PHP 7 и HHVM, но проект корректно запускался и на PHP 8.x. Если вы используете удалённые серверы, убедитесь, что терминал клиента поддерживает нужную кодировку и размер окна.
Факт-бокс
- Формат экрана: монохромный, пиксельная сетка оригинального Game Boy.
- Процессор эмуляции: CPU хоста (в данном случае PHP), нагрузки небольшие.
- Сохранение: отсутствует.
- Звук: отсутствует.
Установка php-terminal-gameboy-emulator на Linux — шаг за шагом
- Проверьте, установлен ли PHP:
php -vЕсли вы видите номер версии — PHP установлен. Если возвращается сообщение о том, что команда не найдена, установите PHP в зависимости от дистрибутива.
- Установка на распространённые дистрибутивы:
- Arch и производные:
sudo pacman -S php- Debian, Ubuntu и производные:
sudo apt install php- Fedora и RHEL‑совместимые (пример с подключением репозитория Remi для новых версий PHP):
sudo dnf -y install http://rpms.remirepo.net/fedora/remi-release-XX.rpmЗамените XX на номер вашей версии Fedora. Затем включите модуль и установите PHP:
sudo dnf module enable php:remi-8.1 -y
sudo dnf install php -y- Скачайте исполняемый PHAR‑файл:
wget https://raw.githubusercontent.com/gabrielrcouto/php-terminal-gameboy-emulator/master/bin/php-gameboy.phar- Сделайте файл исполняемым и переместите в каталог с бинарниками:
sudo chmod +x php-gameboy.phar
sudo mv php-gameboy.phar /usr/local/bin/php-gameboyТеперь команда php-gameboy доступна из любого места.
Как запустить игру в терминале
Перед запуском поместите ROM‑файлы Game Boy в удобную папку (например, ~/gbroms). Чтобы стартовать игру, передайте путь к ROM как аргумент:
php-gameboy ~/gbroms/tetris.gbЭмулятор подхватит ROM и отобразит знакомую чёрно‑белую заставку игры. Загрузка обычно почти мгновенная.
Управление в эмуляторе
Управление фиксированное и не переназначается. Таблица — как в оригинальной инструкции:
| Keyboard Controls | Console Controls |
|---|---|
| WASD | D-Pad directions |
| Comma (,) | A |
| Dot (.) | B |
| N | Select |
| M | Start |
Сохранения и звук отсутствуют — учитывайте это при выборе игры.
Типичные проблемы и как их решать
- «Пиксели мерцают» или появляются артефакты: попробуйте изменить размеры окна терминала; некоторые игры чувствительны к ширине/высоте символов.
- Черно‑белая палитра не читаема: убедитесь, что используемая кодировка и шрифт терминала поддерживают нужные блоковые символы (Braille/Unicode). Шрифты с фиксированной шириной обычно работают лучше.
- По SSH управление заикается: проверьте качество сети и настройки буфера ввода в SSH‑клиенте.
Важно: эмуляция не идеально повторяет аппаратный звук или некоторые тайминги оригинальной железки, поэтому в поведении игр могут возникать отличия.
Альтернативные подходы
Если ограничения терминального эмулятора недопустимы, рассмотрите альтернативы:
- Полноценные эмуляторы с графикой и звуком (mGBA, Gambatte, RetroArch). Они поддерживают сохранения, фильтры и контроллеры.
- Веб‑эмуляторы, которые работают в браузере и дают простую многоплатформенную доставку.
- Аппаратные решения (аналоговые клоны Game Boy, портативные ретро‑консоли).
Когда терминальная эмуляция подходит: для демонстраций, удалённого доступа и ностальгии. Когда не подходит: если нужны звук, сохранения или точность тайминга.
Практические советы и чек‑листы
Чек‑лист пользователя:
- Установлен PHP CLI.
- ROM‑файлы находятся в доступной папке.
- Терминал использует моноширинный шрифт и поддерживает Unicode.
- Окно терминала достаточно велико для корректного отображения.
Чек‑лист администратора сервера:
- Ограничьте доступ к папке с ROM на сервере по правам.
- Убедитесь, что запуск PHAR разрешён политикой безопасности (noexec, SELinux, AppArmor).
- Контролируйте версию PHP, чтобы избежать несовместимостей.
Cheat sheet — главные команды:
- Проверить PHP: php -v
- Скачивание PHAR: wget
- Сделать исполняемым: sudo chmod +x php-gameboy.phar
- Переместить в PATH: sudo mv php-gameboy.phar /usr/local/bin/php-gameboy
- Запуск ROM: php-gameboy /path/to/game.gb
Ментальные модели: почему это работает
Эмуляция в терминале — это два слоя отображения: 1) логика эмуляции процессора и графики выполняется на хосте (PHP читает ROM и вычисляет кадры), 2) каждый кадр рисуется в виде набора символов в терминале. Представьте, что терминал — это экран с ограниченной палитрой, а эмулятор «переводит» пиксели в символы.
Кому это пригодится
- Разработчикам и администраторам, которым нужно демонстрировать возможности сервера.
- Любителям ретро‑игр и терминала.
- Тем, кто хочет играть через SSH без графической среды.
Безопасность и легальность
- Легальность: используйте только ROM‑ы, на которые у вас есть право. Homebrew и собственные дампы — безопасный выбор.
- Безопасность: не храните ROM‑ы в публичных веб‑папках и проверяйте PHAR‑файлы на предмет подлинности источника.
Критерии приёмки
Чтобы считать установку и запуск успешными, проверьте:
- PHP установлен и доступен как CLI.
- Команда php-gameboy запускается без ошибок.
- ROM загружается и отображает стартовую заставку.
- Управление откликается согласно таблице клавиш.
Примеры, когда эмуляция может не подойти
- Если нужно записывать скорость реакции (тайминги), терминальная эмуляция может внести задержки.
- Если нужна мультиплеерная синхронизация с точной синхронизацией звука — лучше выбрать десктопный эмулятор.
Короткий словарь
- ROM — файл игры, дамп картриджа.
- PHAR — PHP Archive, исполняемый архив PHP.
- CLI — интерфейс командной строки.
Концовка и вдохновение
Запуск Game Boy в терминале — это простая и впечатляющая демонстрация того, как гибко можно использовать инструменты командной строки. Если вам хочется ностальгии без кучи зависимостей, php-terminal-gameboy-emulator — быстрый путь открыть старые игры прямо в SSH‑сессии.
Подсказка для демонстрации: увеличьте шрифт терминала и включите обратную цветовую схему для более зрелищного эффекта.
Краткое резюме
- Установка проста: нужен PHP и один PHAR.
- Ограничения: нет звука, нет сохранений, фиксированное управление.
- Отлично подходит для SSH, демонстраций и ностальгии.
Важно: используйте только легально полученные ROM‑файлы.
Похожие материалы
Установка GitHub CLI на Linux
Как установить Epic Games и играть на Linux
Как сделать Stitch в TikTok — полное руководство
TEXTSPLIT, TEXTBEFORE, TEXTAFTER в Excel
Изменение значков и цветов в приложении «Дом»