Frank-386 превращает RP2350 в ретро-ПК на процессоре 386

Frank-386 превращает RP2350 в ретро-ПК на процессоре 386

Разработчики Михаил Матвеев и DnCraptor выпустили frank-386, прошивку с открытым исходным кодом (лицензия MIT) для плат на микроконтроллере RP2350, том самом чипе, что стоит в Raspberry Pi Pico 2. Прошивка превращает такую плату в эмулятор ПК на процессоре 386-го поколения. В основе лежит эмулятор Tiny386 (автор, Chunhui He): frank-386 достраивает его до готовой прошивки под конкретные хобби-платы.

Процессор 386 эмулируется полностью, поколения 486 и 586, частично, при этом опционально доступен сопроцессор x87. Оперативной памяти, до 8 МБ на отдельной микросхеме PSRAM, объём можно менять в диапазоне от 1 до 8 МБ через настройки. Видео выводится через VGA или HDMI, в текстовом режиме и в графике разрешением до 640×480. Звук эмулируется сразу для нескольких карт прошлого, AdLib OPL2, Sound Blaster 16, PC Speaker, Tandy и Covox, а также для звукового модуля Disney Sound Source. Ввод, через PS/2- или USB-клавиатуру и мышь (по нативному USB-хосту) либо через геймпад NES, у которого есть отдельный режим эмуляции мыши.

Диски хранятся на SD-карте в виде файлов-образов: гибкие, стандартного объёма 1,44 МБ (1 474 560 байт), жёсткие, «сырые» образы размером до 2 ГБ, оптические, образы ISO 9660. Прошивка меняет их на лету через встроенный дисковый менеджер по сочетанию Win+F12: можно выбрать диск (A, B, C, D или E), просмотреть образы в папке на SD-карте, вставить нужный или извлечь текущий, изменения сразу сохраняются в файл config.ini. Отдельное меню настроек по Win+F11 переключает объём памяти, поколение процессора, сопроцессор, набор звуковых устройств и тип мыши; эти изменения тоже пишутся в config.ini и вступают в силу после перезапуска. С таким набором частей прошивка загружает DOS, Windows 3.x, Windows 95 и Linux.

frank-386 предназначен для нескольких существующих плат на RP2350 со встроенными VGA/HDMI, SD-картой и вводом с клавиатуры, платы FRANK, обеих версий Murmulator (M1 и M2), Olimex PICO-PC и Waveshare RP2350-PiZero, а также любой совместимой платы на основе Raspberry Pi Pico 2. Под эти платы в прошивке зашито четыре варианта разводки GPIO: M1, M2, PC (для Olimex) и Z2 (для Waveshare). Собрать нужную конфигурацию можно и на «голом» Raspberry Pi Pico 2, если добавить к нему 8 МБ PSRAM, разъём VGA или HDMI и SD-модуль по SPI. Для сборки из исходников нужны Pico SDK версии 2.0 и новее и набор ARM GCC; готовые прошивки заливаются на плату через picotool в режиме BOOTSEL или через прилагаемый скрипт. Файлы BIOS и видео-BIOS (SeaBIOS) можно скачать с релизов SeaBIOS либо взять готовые из папки sdcard/386 самого репозитория.

Часть кода frank-386 портирована из чужих открытых проектов с указанием авторства и лицензий: ядро x86-эмуляции и большая часть периферии, из Tiny386 (Chunhui He); идеи интеграции с RP2350 и работы с дисками, из Pico-286 (автор, xrip) и из собственного же проекта DnCraptor QuakeGeneric; часть эмуляции периферии (контроллер прерываний, таймер, DMA, клавиатурный контроллер, VGA, звуковой чип AdLib), из QEMU; синтезатор FM для AdLib, из MAME; разбор INI-файла настроек, из библиотеки inih; работа с FAT-разделами на SD-карте, из FatFs и утилит Pico SDK. Год выпуска порта в репозитории указан как 2026-й; отдельного номера версии или списка изменений для самого frank-386 источник не приводит.

Ключевые факты

  • Михаил Матвеев и DnCraptor выпустили frank-386, открытую (MIT) прошивку, которая превращает платы на чипе RP2350 в ПК с процессором 386 (частично, 486 и 586); в основе, эмулятор Tiny386 авторства Chunhui He.
  • До 8 МБ ОЗУ на микросхеме PSRAM, видео VGA/HDMI до 640×480, звук, сразу шесть карт прошлого: AdLib OPL2, Sound Blaster 16, PC Speaker, Tandy, Covox и Disney Sound Source.
  • Загружает DOS, Windows 3.x, Windows 95 и Linux; диски, образы на SD-карте (гибкие по 1,44 МБ, жёсткие до 2 ГБ, оптические, ISO 9660), их можно менять на лету дисковым менеджером по Win+F12.
  • Прошивка предназначена для нескольких плат на RP2350, FRANK, Murmulator (M1/M2), Olimex PICO-PC, Waveshare RP2350-PiZero, с четырьмя вариантами разводки GPIO (M1, M2, PC, Z2), а также для любой совместимой платы на основе голого Raspberry Pi Pico 2 с добавленными 8 МБ PSRAM, видеовыходом и SD-картой.
  • Файлы BIOS и видео-BIOS (SeaBIOS) можно скачать с релизов SeaBIOS либо взять готовыми из репозитория; для сборки из исходников нужен Pico SDK версии 2.0 и новее.

Почему это важно

Материал не про ИИ, а про embedded-инженерию и ретро-компьютинг: авторы уместили эмуляцию 386/486/586-совместимого ПК, с VGA/HDMI-видео, шестью звуковыми картами прошлого и дисковой подсистемой на SD-карте, в прошивку для микроконтроллера RP2350, того самого, что стоит в Raspberry Pi Pico 2. Работа не начинается с нуля: в основе, уже существующий эмулятор Tiny386, но frank-386 доводит его до готовых прошивок сразу для нескольких хобби-плат, с опциональным сопроцессором x87, шестью звуковыми картами, вводом с геймпада NES и горячей заменой дисков без перезагрузки. Аудитория узкая, любители ретро-железа и embedded-разработчики, а не рынок ИИ, но сама работа показывает, насколько далеко зашла эмуляция целых архитектур на таких чипах.

Кому это важно

Владельцам плат FRANK, Murmulator (M1/M2), Olimex PICO-PC и Waveshare RP2350-PiZero, а также тем, кто готов собрать похожую конфигурацию на голом Raspberry Pi Pico 2 с добавленными 8 МБ PSRAM. Практическая польза, для тех, кто хочет запускать старые DOS-игры, программы под Windows 3.x и Windows 95 или Linux того времени на современном железе без настоящего винтажного ПК. Отдельно это касается embedded-разработчиков и энтузиастов эмуляции x86, прошивка открыта и может служить основой для дальнейших портов на другие платы.

Как это применить

На SD-карте создаётся папка 386/ с файлом настроек config.ini, файлами BIOS (bios.bin) и видео-BIOS (vgabios.bin), их скачивают отдельно с релизов SeaBIOS либо берут готовыми из папки sdcard/386 репозитория, и образами дисков: гибкие, файлы по 1 474 560 байт (1,44 МБ), которые можно создать через dd и отформатировать под DOS; жёсткие, «сырые» образы до 2 ГБ, которые размечаются и форматируются штатными FDISK и FORMAT из DOS; оптические, обычные образы ISO 9660. Готовая прошивка заливается на плату через picotool в режиме BOOTSEL или через прилагаемый скрипт flash.sh. Для сборки из исходников нужны Pico SDK версии 2.0 и новее, набор ARM GCC и скрипт build.sh с флагом платы (M1, M2, PC или Z2) и опциями вроде --usb-hid для клавиатуры по USB вместо PS/2; есть и отдельный release.sh, который одним запуском собирает прошивки сразу под все платы. Во время работы Win+F12 открывает дисковый менеджер для смены дисков на лету, а Win+F11, меню настроек памяти, поколения процессора, сопроцессора, звуковых устройств и мыши; всё это сохраняется в config.ini.

Можно ли доверять

Код открыт на GitHub под лицензией MIT, и в описании репозитория отдельно расписано, что именно и у кого позаимствовано: ядро эмуляции x86 и часть периферии, из Tiny386 (Chunhui He), интеграция с платой и дисками, из Pico-286 (xrip) и из собственного проекта DnCraptor QuakeGeneric, части эмуляции периферии, из QEMU, синтезатор AdLib, из MAME, разбор INI-файла, из inih, работа с FAT на SD-карте, из FatFs; у каждого заимствования указана лицензия. Год выпуска порта отмечен как 2026-й, но отдельного номера версии, даты релиза или списка изменений для самого frank-386 источник не даёт. Нет в материале и замеров производительности, насколько быстро и точно прошивка воспроизводит настоящее железо 386/486/586, по тексту репозитория не проверить.

Риски и подводные камни

Готовой прошивки «из коробки» недостаточно: BIOS и видео-BIOS нужно скачать с релизов SeaBIOS либо взять готовыми из репозитория, а образы дисков, создавать и форматировать самостоятельно штатными утилитами DOS. Включение USB-клавиатуры (--usb-hid) отключает отладочную USB-консоль, для отладки в этом режиме придётся переключаться на UART. Источник не даёт ни списка программ и игр, которые заведомо не заработают, ни оценки того, насколько полно эмулируются режимы 486 и 586 (в описании они помечены как «частично»), ни цены на сами платы FRANK, Murmulator, Olimex PICO-PC или Waveshare, эти вопросы читателю придётся закрывать вне этого материала.