Tachibana

Proyecto Tachibana · Emulador Oric

Phosphoric

ORIC-1 / Atmos — ciclo exacto

Un emulador Oric de ciclo exacto escrito en C11, fiel hasta el timing del 6502, de la VIA 6522 y de la ULA.

Funciona de forma nativa (SDL2) y en el navegador (WebAssembly), sin dependencias externas. Periféricos de época, depurador integrado, herramientas de conversión y control. Licencia MIT.

Funciones

Qué hace Phosphoric

Núcleo de ciclo exacto

MOS 6502 (151 opcodes, BCD, IRQ), VIA 6522, ULA (texto 40×28 + HIRES 240×200, timing PAL) y PSG AY-3-8910 emulados ciclo a ciclo — lo que exigen las demos y el código sensible al raster.

Periféricos de época

Microdisc WD1793 (timing mecánico real, arranque Sedoric), casete TAP hasta el nivel de señal, ACIA 6551, tarjeta Digitelec DTL 2000 (V23 Minitel), MIDI Mageco / ORICON, joystick IJK, impresora Centronics y plóter MCP-40.

LOCI y telemática

Interfaz LOCI (almacenamiento SD FAT, USB HID), módem WiFi PicoWiFiModemUSB, y módem V23 / Digitelec para revivir la telemática y tender un puente con el patrimonio Minitel / Videotex (proyecto PAVI).

Depurador integrado

Puntos de ruptura condicionales y de raster, watchpoints, undo (rebobinado), desensamblador con símbolos, ensamblador en línea, TUI ncurses — y un stub GDB remoto para depurar el 6502 desde gdb / VS Code.

Control e integración

Modo --control (protocolo de texto para el IDE OricForge), API HTTP REST, grabación / reproducción determinista de entradas («TAS movie»), exportación de vídeo AVI, capturas de pantalla y emisión Chromecast / Google Cast.

Nativo, navegador y libre

Compilación SDL2 en Linux, Windows y macOS, o WebAssembly en el navegador — salida idéntica byte a byte. Teclado en pantalla, filtro CRT, estados guardados .ost. Código publicado bajo licencia MIT.

Ver todas las funciones en detalle → · Documentación técnica →

Soportes

Formatos admitidos

.tap

Casetes Oric — carga rápida o lectura a nivel de señal (--tape-signal) para cargadores protegidos.

Admitido

.dsk

Disquetes Microdisc / Sedoric, con timing mecánico realista del WD1793.

Admitido

.rom 16K

ROM de máquina arrancables en $C000: BASIC 1.0 / 1.1, FOCAL, COMAL, variantes FR / DE / ES…

Arrancable

.ost

Estados guardados con control de integridad CRC32 — F2 / F4 para guardar y recargar al vuelo.

Admitido

Descargar y compilar

Obtenerlo y compilarlo

Código fuente

El repositorio es público bajo licencia MIT. Clónalo, abre una issue, envía un parche.

github.com/benedictemarty/Phosphoric

Compilar de forma nativa

En Debian / Ubuntu, con SDL2:

sudo apt install build-essential libsdl2-dev
make SDL2=1
# luego ./oric1-emu -r roms/basic11b.rom

Versión navegador

Compilada a WebAssembly (make wasm) y ya en línea: también impulsa el botón «Ejecutar en línea» de las fichas del catálogo.

Abrir el emulador

Hoja de ruta

Estado del desarrollo

Phosphoric está en desarrollo activo (versión 1.107.3-alpha), respaldado por una batería de 908 pruebas automatizadas (100 % en verde). Estado indicativo a continuación — el repositorio es la referencia.

Núcleo y periféricos

Emulación ORIC-1 / Atmos, Microdisc/Sedoric, casete, ACIA, DTL 2000, MIDI, LOCI.

Hecho

Nativo + WebAssembly

Compilaciones SDL2 (Linux / Windows / macOS) y navegador, salida idéntica.

Hecho

Conformidad con el hardware

Auditoría línea por línea de los núcleos frente a las hojas de datos del fabricante (WD1793, VIA 6522, PSG…).

En curso

ULA-NG → FPGA

ULA de nueva generación (sprites, 80 columnas, chunky 4bpp) como referencia software hacia una implementación Verilog / FPGA.

En curso