Tachibana

A Tachibana project · Oric emulator

Phosphoric

ORIC-1 / Atmos — cycle-accurate

A cycle-accurate Oric emulator written in C11, faithful down to the timing of the 6502, the VIA 6522 and the ULA.

It runs both natively (SDL2) and in the browser (WebAssembly), with no external dependency. Period peripherals, a built-in debugger, conversion and control tooling. MIT-licensed.

Features

What Phosphoric does

Cycle-accurate core

MOS 6502 (151 opcodes, BCD, IRQ), VIA 6522, ULA (40×28 text + 240×200 HIRES, PAL timing) and the AY-3-8910 PSG, all emulated cycle by cycle — what demos and raster-sensitive code demand.

Period peripherals

Microdisc WD1793 (real mechanical timing, Sedoric boot), TAP cassette down to the signal level, ACIA 6551, the Digitelec DTL 2000 card (V23 Minitel), Mageco / ORICON MIDI, IJK joystick, Centronics printer and MCP-40 plotter.

LOCI & telematics

LOCI interface (FAT SD storage, USB HID), the PicoWiFiModemUSB WiFi modem, and the V23 / Digitelec modem to replay early telematics and bridge to the Minitel / Videotex heritage (the PAVI project).

Built-in debugger

Conditional and raster breakpoints, watchpoints, undo (rewind), a symbol-aware disassembler, an inline assembler, an ncurses TUI — and a remote GDB stub to debug the 6502 from gdb / VS Code.

Control & integration

--control mode (a text protocol for the OricForge IDE), a REST HTTP API, deterministic input record / replay (“TAS movie”), AVI video export, screenshots and Chromecast / Google Cast streaming.

Native, browser & free

An SDL2 build on Linux, Windows and macOS, or WebAssembly in the browser — byte-for-byte identical output. On-screen keyboard, CRT filter, .ost save states. Released under the MIT license.

See the full feature list → · Technical documentation →

Media

Supported formats

.tap

Oric cassettes — fast load, or signal-level playback (--tape-signal) for protected loaders.

Supported

.dsk

Microdisc / Sedoric floppies, with realistic WD1793 mechanical timing.

Supported

.rom 16K

Machine ROMs bootable at $C000: BASIC 1.0 / 1.1, FOCAL, COMAL, FR / DE / ES variants…

Bootable

.ost

Save states with a CRC32 integrity check — F2 / F4 to save and reload on the fly.

Supported

Download & build

Get it and build it

Source code

The repository is public under the MIT license. Clone it, open an issue, send a patch.

github.com/benedictemarty/Phosphoric

Build natively

On Debian / Ubuntu, with SDL2:

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

Browser build

Compiled to WebAssembly (make wasm) and already online: it also powers the “Run online” button on the catalogue entries.

Open the emulator

Roadmap

Where development stands

Phosphoric is under active development (the 1.x-alpha series), backed by a large automated test suite (100% green). Indicative status below — the repository is authoritative.

Core & peripherals

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

Done

Native + WebAssembly

SDL2 builds (Linux / Windows / macOS) and browser, identical output.

Done

Hardware conformance

Line-by-line audit of the cores against manufacturer datasheets (WD1793, VIA 6522, PSG…).

In progress

ULA-NG → FPGA

A next-generation ULA (sprites, 80 columns, chunky 4bpp) as a software reference toward a Verilog / FPGA implementation.

In progress