frank-386 emulates a 386 PC on the RP2350 microcontroller

frank-386 emulates a 386 PC on the RP2350 microcontroller

Developers Mikhail Matveev and DnCraptor, credited for frank-386's port and development in 2026, have released i386 PC emulator firmware for RP2350 microcontroller boards. It builds on Chunhui He's Tiny386 x86 PC emulator and provides full i386 CPU emulation, with partial i486/i586 support and an optional x87 FPU. The firmware targets the RP2350, the chip inside the Raspberry Pi Pico 2, and supports up to 8MB of RAM using 8MB of PSRAM, which the project lists as required for extended memory; the emulated memory size can be set anywhere from 1 to 8MB at runtime.

Video output goes through VGA or HDMI, in text modes and in graphics modes up to 640x480. Sound options include AdLib OPL2, Sound Blaster 16, PC Speaker, Tandy, Covox and Disney Sound Source. Input comes from a PS/2 keyboard and mouse, a USB keyboard and mouse through the RP2350's native USB host support, or an NES gamepad that can emulate a mouse using its D-pad plus two buttons. On this hardware, frank-386 boots DOS, Windows 3.x, Windows 95 and Linux, according to the project.

Storage comes from an SD card holding floppy, hard disk and CD-ROM images: standard 1.44MB (1,474,560-byte) floppy images, raw hard disk images up to 2GB, and standard ISO 9660 CD-ROM images. A runtime Disk Manager, opened with Win+F12, swaps these images without a restart and writes the change back to the firmware's config.ini file automatically; a separate settings menu, opened with Win+F11, adjusts memory size, CPU generation, FPU emulation, sound devices, mouse type, and the RP2350's own clock speed, voltage and PSRAM/flash frequency, with those changes saved to config.ini but only taking effect after a restart.

The firmware targets several RP2350 boards with built-in VGA/HDMI, SD card and keyboard support: FRANK, the Murmulator platform (M1 and M2 variants), the Olimex PICO-PC and the Waveshare RP2350-PiZero, plus a bare Raspberry Pi Pico 2 or compatible board fitted with 8MB of PSRAM, across four supported GPIO layouts. The default build targets the Murmulator M2 board at a 378MHz RP2350 clock speed with a PS/2 keyboard; building from source needs version 2.0 or later of the Raspberry Pi Pico SDK plus the ARM GCC toolchain. Beyond Tiny386, frank-386 draws on RP2350 platform and disk-management code from xrip's Pico-286 project and on RP2350 hardware-integration and PS/2 mouse-driver work from DnCraptor's own earlier QuakeGeneric project, plus peripheral-emulation code taken from QEMU and MAME. frank-386 itself is released under the MIT license.

Key facts

  • frank-386, credited to Mikhail Matveev and DnCraptor for its 2026 port and development, is open-source i386 PC emulator firmware for RP2350 microcontroller boards, built on Chunhui He's Tiny386 emulator.
  • It provides full i386 CPU emulation (partial i486/i586, optional x87 FPU), up to 8MB of RAM, VGA/HDMI graphics up to 640x480, and sound cards including AdLib OPL2, Sound Blaster 16 and PC Speaker.
  • Disk images (1.44MB floppies, hard disks up to 2GB and CD-ROM ISOs) load from an SD card, and a Win+F12 Disk Manager hot-swaps them at runtime without a restart.
  • The firmware runs on boards including FRANK, Murmulator (M1/M2), Olimex PICO-PC and Waveshare RP2350-PiZero, or a bare Raspberry Pi Pico 2 with 8MB PSRAM, and boots DOS, Windows 3.x, Windows 95 and Linux.
  • It is MIT-licensed and also incorporates RP2350 platform code from xrip's Pico-286 and DnCraptor's own earlier QuakeGeneric project, plus peripheral-emulation code from QEMU and MAME.

Why it matters

frank-386 emulates a broad target on RP2350 microcontroller boards: a 386-class PC, with partial 486/586 support, running DOS, Windows 3.x, Windows 95 and Linux, with period-accurate sound cards such as AdLib OPL2, Sound Blaster 16, Tandy and Covox, plus gamepad input, rather than a stripped-down subset of the platform. It is also a visible case of emulation work compounding: frank-386 is described as a port of Chunhui He's Tiny386 x86 PC emulator, combined with RP2350 platform code drawn from xrip's separate Pico-286 project and from DnCraptor's own earlier QuakeGeneric project.

Who it affects

The direct audience is retro-computing hobbyists and makers who own, or are willing to build, one of the supported RP2350 boards: FRANK, the Murmulator platform (M1 or M2), the Olimex PICO-PC, the Waveshare RP2350-PiZero, or a bare Raspberry Pi Pico 2 fitted with 8MB of PSRAM, a VGA or HDMI connector, an SD card module and a keyboard. It also touches the maintainers of the upstream projects frank-386 draws on, Tiny386, Pico-286 and QuakeGeneric, whose code and design choices now ship inside a new, separately distributed firmware.

How to use it

A working setup needs one of the listed boards, or a bare Raspberry Pi Pico 2 plus 8MB of PSRAM, together with a VGA or HDMI display, an SD card and a PS/2 or USB keyboard; audio output is optional. The SD card needs a 386/ directory holding config.ini plus a SeaBIOS ROM (bios.bin) and a VGA BIOS ROM (vgabios.bin), available either from the project's own sdcard/386 folder or as a separate download from the SeaBIOS releases, along with whatever floppy, hard disk or CD-ROM images the user wants to boot. Building the firmware from source needs the Raspberry Pi Pico SDK, version 2.0 or later, and the ARM GCC toolchain; the project's build script defaults to the Murmulator M2 board at 378MHz with a PS/2 keyboard, with flags available to target the other boards or a USB keyboard instead. Once running, a Win+F12 Disk Manager swaps floppy, hard disk and CD-ROM images without a restart and writes the change back to config.ini automatically, while a separate Win+F11 settings menu adjusts memory size, CPU generation, FPU emulation, sound devices, mouse type and the RP2350's own clock speed and voltage; those settings are likewise saved to config.ini but only take effect after a restart. frank-386 itself is released under the MIT license.

How solid is it

frank-386 leans on components with their own track record: Chunhui He's Tiny386 x86 PC emulator, additional PC-peripheral emulation code taken from QEMU, and an FM synthesis sound generator forked from MAME, alongside RP2350-specific platform and disk-management code drawn from xrip's separate Pico-286 project and from DnCraptor's own earlier QuakeGeneric project. Against that, the source gives no version number, release date or changelog for frank-386 itself beyond a 2026 credit, no performance benchmarks or emulation-speed figures against real 386, 486 or 586 hardware, and no detail on how completely or reliably the listed operating systems actually run, so the DOS, Windows and Linux boot claim is the project's own rather than something independently benchmarked here.

Risks and caveats

i486 and i586 CPU emulation is explicitly only partial, not full, so software that depends on later x86 features may not behave correctly. No price or purchase information is given for any of the compatible boards, and the SeaBIOS and VGA BIOS ROM files, bundled in the repository's own sdcard/386 folder, can also be downloaded separately from the SeaBIOS releases. Enabling USB keyboard support disables the native USB port's serial console, so debug output then has to go through UART instead. frank-386 itself is MIT-licensed, but it incorporates code released under other licenses, including QuakeGeneric's GPL v2 and SeaBIOS's LGPL v3, worth checking before reuse beyond simply running the firmware as distributed.