El proyecto FRANK 386 permite que el microcontrolador Raspberry Pi Pico 2 (RP2350) funcione como un emulador completo de PC i386, admitiendo software heredado como Windows 3.x, Windows 95 y Linux. Al portar el motor Tiny386 al RP2350, el proyecto permite a los usuarios ejecutar entornos de computación antiguos en una plataforma de microcontrolador moderna y de bajo costo equipada con salida VGA/HDMI y almacenamiento en tarjeta SD.

Esta imagen representa la plataforma del proyecto para emular entornos de PC i386.
Emulación central y soporte de hardware
FRANK 386 proporciona una suite de emulación completa para la arquitectura i386, incluyendo soporte para periféricos como el 8259 PIC, 8254 PIT, el controlador de teclado 8042 y VGA. Está diseñado para funcionar con las capacidades de hardware específicas del RP2350, como su capacidad para conectarse con memoria externa y salidas de pantalla.
El proyecto admite una variedad de dispositivos de audio, incluyendo el PC Speaker, Tandy, Covox y Disney Sound Source. Los gráficos son compatibles tanto en modos de texto como en modos gráficos hasta una resolución de 640x480 a través de conexiones VGA o HDMI.
“Emulador de PC i386 para RP2350 (Raspberry Pi Pico 2) con salida VGA/HDMI, almacenamiento en tarjeta SD, teclado/ratón PS/2 y USB, mando NES y salida de audio.”
— GitHub - rh1tech/frank-386: Tiny386 port to RP2350
Mecanismos de almacenamiento y entrada
El sistema utiliza una tarjeta SD en modo SPI para proporcionar almacenamiento para imágenes de disquete, disco duro y CD-ROM. Un gestor de discos de tiempo de ejecución dedicado, accesible mediante el atajo Win+F12, permite a los usuarios insertar o extraer estas imágenes sin reiniciar el sistema.

Esta captura de pantalla ilustra las capacidades de gestión de archivos del proyecto FRANK 386.
La entrada se gestiona a través de múltiples métodos: conexiones nativas de teclado y ratón PS/2, o soporte moderno USB HID. Para placas específicas como la Waveshare Z2, el sistema puede utilizar una implementación PIO-USB para manejar funciones de host USB.
Arquitectura de memoria y compromisos de rendimiento
Para alcanzar los requisitos de memoria de los sistemas heredados, FRANK 386 soporta hasta 8MB de RAM utilizando un chip PSRAM QSPI externo. Esta PSRAM debe conectarse a pines GPIO específicos (XIP CS1) para compartir el bus con la memoria flash.
Existe una restricción técnica con respecto a las velocidades de acceso a la memoria. Aunque el RP2350 es significativamente más rápido que los chips 386 originales, acceder a la memoria más allá de la SRAM interna puede introducir un retraso de acceso de 40 ciclos. Esto podría causar posibles tartamudeos en ciertas circunstancias cuando el software emulado accede frecuentemente a la PSRAM externa.
Qué dicen los lectores de Hacker News
- Nota técnica: Un comentarista expresó su preocupación por que la arquitectura de memoria del RP2350 pudiera causar problemas de rendimiento, señalando que acceder a la memoria más allá de los primeros 640kb podría resultar en retrasos de ciclo significativos y tartamudeos durante la emulación. comentario ↗
- Alternativa: Un comentarista señaló que ya existe un proyecto similar que se ejecuta en un ESP32. comentario ↗
- Pregunta abierta: Un lector preguntó si el proyecto emula puertos de hardware específicos como RS232 o impresoras, lo cual sería necesario para reutilizar equipos embebidos antiguos. comentario ↗
Resumen de opiniones del hilo de Hacker News; no son hechos verificados. Leer el debate completo ↗