Tachibana

Tachibana プロジェクト · Oric エミュレータ

Phosphoric

ORIC-1 / Atmos — サイクル精度

C11 で書かれたサイクル精度の Oric エミュレータ。6502、VIA 6522、ULA のタイミングまで忠実です。

ネイティブ(SDL2)でもブラウザ(WebAssembly)でも、外部依存なしで動作します。当時の周辺機器、統合デバッガ、変換・制御ツール。MIT ライセンス。

機能

Phosphoric にできること

サイクル精度のコア

MOS 6502(151 オペコード、BCD、IRQ)、VIA 6522、ULA(テキスト 40×28 + HIRES 240×200、PAL タイミング)、PSG AY-3-8910 をサイクル単位でエミュレーション — デモやラスタ依存コードが要求するものです。

当時の周辺機器

Microdisc WD1793(実機の機械的タイミング、Sedoric 起動)、信号レベルまでの TAP カセット、ACIA 6551、Digitelec DTL 2000 カード(V23 Minitel)、Mageco / ORICON MIDI、IJK ジョイスティック、Centronics プリンタ、MCP-40 プロッタ。

LOCI とテレマティクス

LOCI インターフェース(FAT SD ストレージ、USB HID)、PicoWiFiModemUSB WiFi モデム、そして当時のテレマティクスを再現し Minitel / Videotex の遺産(PAVI プロジェクト)へ橋渡しする V23 / Digitelec モデム。

統合デバッガ

条件付き・ラスタのブレークポイント、ウォッチポイント、undo(巻き戻し)、シンボル対応の逆アセンブラ、インラインアセンブラ、ncurses TUI — そして gdb / VS Code から 6502 をデバッグできるリモート GDB スタブ

制御と統合

--control モード(OricForge IDE 向けのテキストプロトコル)、REST HTTP API、決定論的な入力の記録/再生(「TAS movie」)、AVI 動画エクスポート、スクリーンショット、そしてChromecast / Google Cast 配信

ネイティブ・ブラウザ・自由

Linux・Windows・macOS の SDL2 ビルド、またはブラウザの WebAssembly — バイト単位で同一の出力。画面キーボード、CRT フィルタ、.ost セーブステート。MIT ライセンスで公開。

すべての機能を詳しく見る → · 技術ドキュメント →

メディア

対応フォーマット

.tap

Oric カセット — 高速ロード、または保護ローダ向けの信号レベル再生(--tape-signal)。

対応

.dsk

Microdisc / Sedoric ディスケット、WD1793 の写実的な機械的タイミング付き。

対応

.rom 16K

$C000 で起動可能なマシン ROM:BASIC 1.0 / 1.1、FOCAL、COMAL、FR / DE / ES バリアント…

起動可能

.ost

CRC32 整合性チェック付きのセーブステート — F2 / F4 でその場で保存・再ロード。

対応

ダウンロードとビルド

入手してビルドする

ソースコード

リポジトリは MIT ライセンスで公開。クローンして、issue を開き、パッチを送ってください。

github.com/benedictemarty/Phosphoric

ネイティブでビルド

Debian / Ubuntu で、SDL2 を使って:

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

ブラウザ版

WebAssembly(make wasm)にコンパイルされ、すでにオンライン:カタログ項目の「オンライン実行」ボタンも動かしています。

エミュレータを開く

ロードマップ

開発の現状

Phosphoric は活発に開発中(バージョン 1.107.3-alpha)で、908 件の自動テスト(100 % グリーン)に支えられています。以下は参考の状況です — リポジトリが正となります。

コアと周辺機器

ORIC-1 / Atmos エミュレーション、Microdisc/Sedoric、カセット、ACIA、DTL 2000、MIDI、LOCI。

完了

ネイティブ + WebAssembly

SDL2 ビルド(Linux / Windows / macOS)とブラウザ、同一の出力。

完了

ハードウェア準拠

メーカーのデータシートに対するコアの一行ごとの監査(WD1793、VIA 6522、PSG…)。

進行中

ULA-NG → FPGA

新世代 ULA(スプライト、80 桁、chunky 4bpp)を Verilog / FPGA 実装へのソフトウェア参照として。

進行中