[WEB App] Master System Emulator — ブラウザで動くセガ・マスターシステムエミュレーター (Z80コア・256×192描画・RGB222 CRAM・4.5MB ROM対応Segaマッパー)

[WEB App] Master System Emulator — ブラウザで動くセガ・マスターシステムエミュレーター (Z80コア・256×192描画・RGB222 CRAM・4.5MB ROM対応Segaマッパー)

Master System Emulator

自作Z80 CPUコアをベースに、SEGA Master System(セガ・マスターシステム / マークIII互換, 1985)の8bitハードウェアをブラウザ上にエミュレート。

256×192のフル解像度テレビ出力描画、RGB222 CRAMによる32色パレット制御、4.5MB(256バンク)超大容量ROMに対応するSegaマッパー、さらにCPUサイクルと同期したSN76489 PSGによるクリアなサウンド再生に対応。

ドラッグ&ドロップによるROMローダーを搭載しており、お手持ちのROMファイル(.sms, .bin)を直接読み込んでプレイできます。

ゲームの起動方法

JS MASTER SYSTEM EMULATOR

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

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

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

Master System Emulator — スタートメニューで動くマスターシステムエミュレーター

Z80 EMULATOR PROJECT

スクリーンショット & Homebrew動作

SMS Power! で公開されている素晴らしいHomebrew作品群をお借りして動作検証を行いました。

SMS Power!

Bad Apple 3D Full Length // GliGli

Master System Emulator // Bad Apple 3D Full Length Master System Emulator // Bad Apple 3D Full Length

動画

Master System Emulator // Bad Apple 3D Full Length

4.5MBにおよぶ超大容量ROM。Segaマッパーの高速バンクセレクトと毎フレームのVRAM高速転送に対応。

Astro Climber // badcomputer & LOVEPENGUIN

Master System Emulator // Astro Climber Master System Emulator // Astro Climber

動画

Master System Emulator // Astro Climber

マークIII / SMS発売40周年を記念してリリースされた縦スクロールアクション。右側のステータスUI分離表示やスプライト優先度を正確に表現。

El Viento Opening Demake // lunoka

Master System Emulator // El Viento Opening Demake Master System Emulator // El Viento Opening Demake

動画

Master System Emulator // El Viento Opening Demake

メガドライブ用ソフト『エル・ヴィエント』のオープニングデメイク作品。CRAM(RGB222)の色再現やアトリビュート管理が完全に機能。

特徴

  • ドラッグ&ドロップ ROMローダー:
    ROMファイル(.sms, .bin等)を画面にドロップするかクリックしてファイル選択するだけで起動。512バイトのコピアヘッダ(ヘッダー付きROM)の自動判定および除去に対応。

  • 256×192 フル解像度 描画エンジン:
    Master Systemの本来の画面出力サイズである256×192ピクセルをフル描画。1タイル32バイトの4bpp planar構造(プレーン0〜3)をリアルタイムデコード。

  • RGB222 CRAM (6bit 32色):
    1バイト1色指定(RRGG22BB)によるパレット制御。2ビット値(0〜3)を8ビットRGBAへ展開し、実機同様の発色を再現。

  • 大容量ROM対応 Segaマッパー (最大4.5MB):
    $FFFC〜$FFFFの制御レジスタ書き込みによる Slot 0 / 1 / 2 の動的バンク切替。マスク制限を解除し、最大256バンク(4MB超)のメガサイズROMを完全制御。

  • CPUサイクル同期 PSG 音声再生:
    SN76489 PSGの音量・周波数レジスタ制御をタイムスタンプ付きで AudioWorklet へ転送。ノイズや音化けのないクリアなBGM/効果音および高速PCM再生に対応。

使い方

1. ROMのロード

  1. エミュレーターページを開く
  2. 点線エリアにマスターシステムのROMファイル(.sms, .bin等)をドロップ、またはクリックしてファイル選択
  3. 自動的にヘッダ除去・バンク構成が解析され、即座に起動

2. 対応フォーマット

拡張子 / 種類内容処理
.smsMaster System ROM自動ロード
.binバイナリデータ自動ロード
ヘッダ付きROM512 bytesヘッダ付与ファイルヘッダを自動検出・除去

キーボード操作

機能キー
方向キー(D-Pad)矢印キー または W / A / S / D
1ボタンZ または J
2ボタンX または K
PauseボタンP または Space

モジュール構成

モジュール名主要機能
Z80 CPU COREZ80A命令セット(3.58MHz動作、スキャンライン割り込み対応)
VDP MODE 4256×192 フルスクリーン描画・4bpp planarタイルデコード
CRAM COLORRGB222(6bit)1バイト式32色パレット制御
SEGA MAPPER$FFFC-$FFFFメモリ制御による最大4.5MB(256バンク)ROM切替
SN76489 PSG3音+ノイズ合成、CPUサイクル同期書き込みによるサウンド再生
UICanvas描画、ROMドラッグ&ドロップローダー

技術スタック

  • JavaScript (ES6+ / Modules) — Z80コア・VDP・Segaマッパー
  • HTML5 Canvas (2D Context / ImageData) — フレームバッファ描画
  • Web Audio API (AudioWorklet) — サイクル同期SN76489 PSG再生
  • Astro — Webアプリケーション基盤

更新履歴

  • [2026-09-20]: v1.0 初回公開。
    • 256×192 フルスクリーン描画エンジンの実装
    • RGB222 CRAM(32色)パレット変換の実装
    • 最大4.5MB(256バンク)対応 Segaマッパーの拡張
    • サイクル同期AudioWorkletによるSN76489 PSGサウンド再生の実装
    • ドラッグ&ドロップROMローダーの実装

技術記事