[WEB App] ColecoVision Emulator — ブラウザで動くColecoVisionエミュレーター (Z80コア・TMS9918A・SN76489・BIOS HLE/実ROM デュアル対応)

[WEB App] ColecoVision Emulator — ブラウザで動くColecoVisionエミュレーター (Z80コア・TMS9918A・SN76489・BIOS HLE/実ROM デュアル対応)

ColecoVision Emulator

自作Z80 CPUコアをベースに、ColecoVision(1982年、Coleco社)のハードウェアをブラウザ上にエミュレート。

TMS9918A VDPによるグラフィック描画(Mode 0/1/2/3+スプライト32枚)、SN76489 PSGによるサウンド出力(3矩形波+ノイズ)、ジョイスティック+テンキーの2モードコントローラ入力に対応。

BIOS HLE(High Level Emulation)による公式ROM不要モードと、ユーザーが実BIOS ROMファイル(8KB)を持ち込むフル互換モードのデュアル構成で動作する。

COLECOVISION EMULATOR

Z80 EMULATOR PROJECT

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

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

ColecoVision Emulator — 実BIOS ROM読み込み後の画面

スクリーンショット

ColecoVision Emulator — 実BIOS ROM読み込み後の画面 ColecoVision Emulator — Barbarricade タイトル画面 ColecoVision Emulator — Barbarricade ゲームプレイ

動画(GIF)

ColecoVision Emulator — 動作デモ

CREDIT // Sample Data

sample romは、ArugulaZ様の「Barbarricade for Master System & ColecoVision」をお借りしています。

特徴

  • BIOS HLE / 実BIOSデュアル構成:
    公式BIOS ROMなしでも一部ゲームが動作するHLEモード(約40関数実装)と、ユーザーが8KBのBIOS ROMファイルを持ち込むことでフル互換動作する実BIOSモードの両方に対応。

  • TMS9918A VDP 全モード対応:
    Graphics Mode 0(32×24)、Mode 1(テキスト 40×24)、Mode 2(Graphics II、3セクション独立パターン/カラー)、Mode 3(マルチカラー 64×48)、および最大32枚のスプライト描画(8×8/16×16、マグニファイ対応)を実装。

  • SN76489 PSG サウンド:
    3チャンネル矩形波+1チャンネルノイズ(周期/ホワイト)。対数音量テーブル、Web Audio API経由でリアルタイム出力。

  • 2モードコントローラ:
    ジョイスティック(4方向+Fire A)とテンキー(0-9, *, #+Fire B)の2モード。ゲームがI/Oポートへの書き込みでモードを切り替えるストローブ方式を再現。画面上のソフトキーパッドにも対応。

  • Z80コア共有設計:
    MSX1、SG-1000、PC-G850Vと同一のZ80コアを使用。TMS9918AレンダラーとSN76489 PSGも core/ から共有。ColecoVision固有のコードはシステム層1ファイルのみ。

モジュール構成

モジュール名主要機能
Z80 CPU COREZ80A命令セット全実装(ZEXDOC 67項目パス、IM1割り込み、NMI対応)
TMS9918A I/OVRAMアクセス、レジスタ書き込み、ステータス読み取り、read-aheadバッファ
TMS9918A RENDERERMode 0/1/2/3描画、スプライトレンダリング、衝突検出
SN76489 PSG3ch矩形波+ノイズ、対数音量、LFSR、Web Audio ScriptProcessor出力
COLECOVISION SYSTEMメモリマップ(BIOS/RAM/ROM)、I/Oポートルーティング、BIOS HLE 40関数
CONTROLLERジョイスティック/キーパッドのストローブ切替、キーコードエンコーディング
UICanvas 256×192描画、ROMファイルローダー、デバッグダンプ、ソフトキーパッド

使い方

モード1: HLE(BIOS不要)

  1. ページを開く
  2. 「📂 Load ROM」でカートリッジROMファイル(.col / .rom / .bin)を選択
  3. 自動的にゲームが起動
  4. テンキー「1」でゲーム開始(ゲームによって異なる)

一部のゲーム(けっきょく南極大冒険、Alcazar等)がBIOS不要で動作します。多くのゲームは実BIOSが必要です。

モード2: 実BIOS ROM

  1. 「🔑 Load BIOS」でColecoVision BIOS ROMファイル(8KB)を選択
  2. 「📂 Load ROM」でカートリッジROMファイルを選択
  3. 実BIOSのタイトル画面(約12秒)が表示された後、ゲームが起動
  4. テンキーでプレイヤー数/難易度を選択 → Fire ボタンまたは * / # で決定

実BIOSモードではほぼ全てのColecoVisionゲームが動作します。

ROM入手先

Homebrew(自作)ゲームのROMは itch.io などで無料配布されています。

キーボード操作

ジョイスティック(移動+攻撃)

機能PCキーボード
上W / ↑
下S / ↓
左A / ←
右D / →
Fire A(左ボタン)Z / Space
Fire B(右ボタン)X

テンキー(ゲーム選択・特殊操作)

機能PCキーボード
0-90-9(メインキー / テンキー)
*- (ハイフン)
#= (イコール)

技術スタック

  • JavaScript (ES6+ / Modules) — Z80コア・TMS9918A・SN76489・システム層
  • HTML5 Canvas (2D Context / ImageData) — 256×192 VDP描画
  • Web Audio API (ScriptProcessorNode) — PSGサウンド出力
  • Astro — Webアプリケーション基盤

更新履歴

  • [2026-09-17]: v1.0 初回公開。
    • BIOS HLE(40関数)による公式ROM不要モードの実装
    • 実BIOS ROM読み込みによるフル互換モードの追加
    • TMS9918A レンダラー(Mode 0/1/2/3 + スプライト)の実装
    • SN76489 PSG サウンドエンジンの実装
    • ジョイスティック+テンキー 2モードコントローラの実装
    • デバッグログ機能(HLEコール追跡、VDP状態ダンプ)の搭載

技術記事