Домой Статьи и аналитика Технологии Linux портирован для игровых приставок Sega MegaDrive

Linux портирован для игровых приставок Sega MegaDrive

Один из самых необычных портов: как запустить современное ядро на железе конца 80-х с помощью FPGA и смекалки.

Linux на легендарной Sega MegaDrive: энтузиасты портировали систему на 16-битную консоль

Состоялся релиз проекта LinuxMD, который представляет собой полноценный порт ядра Linux для культовой игровой приставки Sega MegaDrive, дебютировавшей ещё в 1988 году. Оригинальное «железо» консоли обладает крайне скромными ресурсами: всего 72 Кб оперативной памяти и два процессора — основной 16-разрядный Motorola 68000 с частотой 7.6 МГц и вспомогательный 8-разрядный Zilog Z80 (3.58 МГц), предназначенный для обратной совместимости с Sega Master System.

Для реализации столь амбициозной задачи авторы использовали современные картриджи Mega EverDrive «Core» и «Pro». Эти устройства оснащены портом USB и разъемом для SD-карт, что позволило организовать загрузку и хранение данных.

Технические аспекты реализации

Запуск Linux на системе с объемом ОЗУ менее 100 Кб стал возможен благодаря использованию аппаратных мощностей самого картриджа. Внутри Mega EverDrive скрывается полноценный компьютер на базе FPGA с собственной памятью. При выполнении кода на CPU приставки разработчики задействовали 4 МБ оперативной памяти картриджа, применив технику переключения банков (SSF2-маппер), которая была известна еще по картриджу игры Super Street Fighter II.

Основные механизмы работы системы:

  • Файловая система: доступ к данным на SD-карте осуществляется через протокол взаимодействия с картриджем Mega EverDrive.
  • Тайминг: функции таймера высокого разрешения в ядре возложены на FPGA-чип картриджа.
  • Управление памятью: поскольку процессор Motorola 68000 лишен аппаратного модуля MMU, ядро Linux было скомпилировано в режиме «NOMMU», предназначенном для микроконтроллеров и встраиваемых систем.

Тестирование и эмуляция

Текущий порт включает в себя ядро Linux версии 7.2-rc1, загрузчик u-boot 2026.01 и базовый образ корневой файловой системы с необходимым набором инструментов. Для отладки проекта потребовалось создать собственный форк эмулятора QEMU. Стандартные эмуляторы Sega MegaDrive хорошо справляются с воспроизведением функционала самой консоли, но не способны корректно имитировать работу сторонних картриджей EverDrive.

Стоит отметить, что в текущей версии QEMU отсутствуют ограничения производительности, поэтому процесс эмуляции CPU протекает значительно быстрее, чем на реальном процессоре Motorola 68000.

Запуск Linux на Sega MegaDrive
Работа Linux-системы на оригинальном железе MegaDrive. Источник: opennet.ru
Источник: http://www.opennet.ru