Tachibana

Projet Tachibana · Émulateur Oric

Phosphoric

ORIC-1 / Atmos — cycle-exact

Un émulateur Oric cycle-exact écrit en C11, fidèle jusqu'au timing du 6502, de la VIA 6522 et de l'ULA.

Il tourne en natif (SDL2) comme dans le navigateur (WebAssembly), sans dépendance externe. Périphériques d'époque, débogueur intégré, outils de conversion et de pilotage. Licence MIT.

Fonctionnalités

Ce que fait Phosphoric

Cœur cycle-exact

MOS 6502 (151 opcodes, BCD, IRQ), VIA 6522, ULA (texte 40×28 + HIRES 240×200, timing PAL) et PSG AY-3-8910 émulés cycle à cycle — ce qu'exigent les démos et le code sensible au raster.

Périphériques d'époque

Microdisc WD1793 (timing mécanique réel, boot Sedoric), cassette TAP jusqu'au niveau signal, ACIA 6551, carte Digitelec DTL 2000 (V23 Minitel), MIDI Mageco / ORICON, joystick IJK, imprimante Centronics et traceur MCP-40.

LOCI & télématique

Interface LOCI (stockage SD FAT, USB HID), modem WiFi PicoWiFiModemUSB, et modem V23 / Digitelec pour rejouer la télématique et faire le pont avec le patrimoine Minitel / Vidéotex (projet PAVI).

Débogueur intégré

Points d'arrêt conditionnels et raster, watchpoints, undo (rembobinage), désassembleur avec symboles, assembleur en ligne, TUI ncurses — et un stub GDB distant pour déboguer le 6502 depuis gdb / VS Code.

Pilotage & intégration

Mode --control (protocole texte pour l'IDE OricForge), API HTTP REST, enregistrement / rejeu déterministe des entrées (« TAS movie »), export vidéo AVI, captures d'écran et diffusion Chromecast / Google Cast.

Natif, navigateur & libre

Build SDL2 sous Linux, Windows et macOS, ou WebAssembly dans le navigateur — sortie octet-pour-octet identique. Clavier à l'écran, filtre CRT, save states .ost. Code publié sous licence MIT.

Voir toutes les fonctionnalités en détail → · Documentation technique →

Supports

Formats pris en charge

.tap

Cassettes Oric — chargement rapide ou lecture au niveau signal (--tape-signal) pour les chargeurs protégés.

Pris en charge

.dsk

Disquettes Microdisc / Sedoric, avec timing mécanique réaliste du WD1793.

Pris en charge

.rom 16K

ROM machine bootables en $C000 : BASIC 1.0 / 1.1, FOCAL, COMAL, variantes FR / DE / ES…

Bootable

.ost

États sauvegardés (save states) avec contrôle d'intégrité CRC32 — F2 / F4 pour sauver et recharger à chaud.

Pris en charge

Télécharger & compiler

Récupérer et construire

Code source

Le dépôt est public sous licence MIT. Clonez-le, ouvrez une issue, proposez un correctif.

github.com/benedictemarty/Phosphoric

Compiler en natif

Sous Debian / Ubuntu, avec SDL2 :

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

Version navigateur

Compilée en WebAssembly (make wasm) et déjà en ligne : elle sert aussi de bouton « Exécuter en ligne » sur les fiches du catalogue.

Ouvrir l'émulateur

Feuille de route

Où en est le développement

Phosphoric est en développement actif (série 1.x-alpha), adossé à une large suite de tests automatisés (100 % au vert). État indicatif ci-dessous — le dépôt fait foi.

Cœur & périphériques

Émulation ORIC-1 / Atmos, Microdisc/Sedoric, cassette, ACIA, DTL 2000, MIDI, LOCI.

Fait

Natif + WebAssembly

Builds SDL2 (Linux / Windows / macOS) et navigateur, sortie identique.

Fait

Conformité matérielle

Audit ligne à ligne des cœurs face aux datasheets constructeur (WD1793, VIA 6522, PSG…).

En cours

ULA-NG → FPGA

ULA nouvelle génération (sprites, 80 colonnes, chunky 4bpp) comme référence logicielle vers une implémentation Verilog / FPGA.

En cours