[WEB App] Amstrad CPC Emulator — ブラウザで動くAmstrad CPC 464エミュレーター (Z80コア・CRTC 6845・Gate Array 27色・PPI 8255・SNA/DSK対応)

[WEB App] Amstrad CPC Emulator — ブラウザで動くAmstrad CPC 464エミュレーター (Z80コア・CRTC 6845・Gate Array 27色・PPI 8255・SNA/DSK対応)

Amstrad CPC Emulator

自作Z80 CPUコアをベースに、欧州で大ヒットした8bit名機 Amstrad CPC 464(1984)のハードウェアをブラウザ上にエミュレート。

CRTC 6845とGate Arrayの連携による非線形VRAMアドレス変換、5ビット指定による27色ハードウェアパレット、Mode 0(160×200/16色)・Mode 1(320×200/4色)・Mode 2(640×200/2色)のマルチレゾリューション描画に対応。

さらにPPI 8255を介したAY-3-8910 PSGバス制御(BDIR/BC1)とキーボードマトリクス入力、SNAスナップショットおよびDSKディスクイメージのドラッグ&ドロップローダーを搭載しています。

ゲームの起動方法

JS AMSTRAD CPC EMULATOR

以下、リンクを開くと起動します。

スタートメニューから起動

トップページのスタートメニューからも起動できます。

Amstrad CPC Emulator — スタートメニューで動くCPC 464エミュレーター

Z80 EMULATOR PROJECT

スクリーンショット & 動作確認作品

Amstrad CPCの優秀なHomebrew作品および実機タイトルでの動作検証を行いました。

Locomotive BASIC

起動直後のLocomotive BASIC画面。PPI 8255経由でのキーボード入力と、Gate ArrayによるMode 1(320×200/4色)テキスト描画が正常に機能。

BASICコードを実行。

CPC 464 Emulator // BAISC コードの実行

動画

CPC 464 Emulator Screenshot 2

DEAD BY DAWN // Malcolm Kirk

Malcolm Kirk様作の「DEAD BY DAWN」。

CPC 464 Emulator // DEAD BY DAWN //  Malcolm Kirk CPC 464 Emulator // DEAD BY DAWN //  Malcolm Kirk

動画

CPC 464 Emulator // DEAD BY DAWN //  Malcolm Kirk

LALA THE MAGICAL PROLOGUE // The Mojon Twins

The Mojon Twins様作の「LALA THE MAGICAL PROLOGUE」。

LALA THE MAGICAL PROLOGUE //  The Mojon Twins LALA THE MAGICAL PROLOGUE //  The Mojon Twins

動画

CPC 464 Emulator // DEAD BY DAWN //  Malcolm Kirk

特徴

  • ドラッグ&ドロップ ファイルローダー:
    SNAスナップショット(.sna)やディスクイメージ(.dsk)を画面に直接ドロップすることで即座にロード・実行可能。

  • CRTC 6845 & Gate Array 複合描画エンジン:
    CRTC 6845のレジスタ生成アドレスとVRAMのインタリーブ(8スキャンライン周期)を再現。Mode 0/1/2の各ピクセル構造(ビット散在型フォーマット)をリアルタイムデコード。

  • Gate Array 27色カラーパレット:
    5ビット値から27色のカラーパレット(RGB各3段階)へのハードウェアマッピングを完全再現。

  • PPI 8255 経由 PSG & キーボード制御:
    Z80から直接ではなく、PPI 8255 (Port A / Port C) を介したBDIR / BC1プロトコルによるAY-3-8910 PSG操作およびキーボードマトリクスのスキャンを実装。

  • CPUサイクル同期 AY-3-8910 PSG 音声再生:
    レジスタ更新をタイムスタンプ付きで AudioWorklet へ送信し、ノイズのないクリアなBGM・効果音再生を実現。

使い方

1. ファイルのロード

  1. エミュレーターページを開く
  2. 画面上にCPC用ファイル(.sna スナップショット または .dsk ディスクイメージ)をドロップ
  3. 自動判定され、スナップショットの場合は即時実行、DSKの場合はディスクがセットされます(BASIC画面から RUN"DISK 等で起動)

2. 対応フォーマット

拡張子 / 種類内容処理
.snaSNAスナップショットCPU/RAM/VRAMレジスタ状態を復元して即起動
.dskDSKディスクイメージドライブA:にマウント

キーボード操作

機能キー
CPC キーボード入力キーボードの各キー(英数字・記号)
ジョイスティック (Port 1)矢印キー + Z / X または Space
CLR / DELBackspace
ENTEREnter

モジュール構成

モジュール名主要機能
Z80 CPU COREZ80A命令セット(4.0MHz動作、Gate Array 52/100us割り込み同期)
CRTC 6845VRAM非線形アドレス生成・同期信号タイミング制御
GATE ARRAY27色パレット、Mode 0/1/2ピクセル展開、RAMバンク切替・INT制御
PPI 8255I/Oポート制御(PSGバス操作・キーボード行選択・カセット)
AY-3-8910 PSG3音+ノイズ合成、CPUサイクル同期書き込みによるサウンド再生
UICanvas描画、SNA/DSKドラッグ&ドロップローダー

技術スタック

  • JavaScript (ES6+ / Modules) — Z80コア・CRTC 6845・Gate Array・PPI 8255
  • HTML5 Canvas (2D Context / ImageData) — フレームバッファ描画
  • Web Audio API (AudioWorklet) — サイクル同期AY-3-8910 PSG再生
  • Astro — Webアプリケーション基盤

更新履歴

  • [2026-09-21]: v1.0 初回公開。
    • CRTC 6845およびGate Array描画エンジンの実装
    • Gate Array 27色パレットおよびMode 0/1/2ピクセルデコードの実装
    • PPI 8255を介したAY-3-8910 PSG制御とキーボードマトリクスの実装
    • サイクル同期AudioWorkletによるPSGサウンド再生の実装
    • SNAスナップショットおよびDSKディスクイメージローダーの実装

技術記事