[WEB App] Game Gear Emulator — ブラウザで動くゲームギアエミュレーター (Z80コア・SMS VDP Mode 4・RGB444 CRAM・Segaマッパー)

[WEB App] Game Gear Emulator — ブラウザで動くゲームギアエミュレーター (Z80コア・SMS VDP Mode 4・RGB444 CRAM・Segaマッパー)

Game Gear Emulator

自作Z80 CPUコアをベースに、SEGA Game Gear(1990)の携帯ゲーム機ハードウェアをブラウザ上にエミュレート。

SMS(Master System)互換のVDP Mode 4(4bpp planarタイル)、Game Gear固有の12bit RGB444 CRAMラッチ制御、Segaマッパーによるバンク切替、さらにCPUサイクルと同期したSN76489 PSGの音量制御によるSEGAロゴの「セーガー♪」PCM音声再生に対応。

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

SMS Power!

ゲームの起動方法

JS GAME GEAR EMULATOR

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

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

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

Game Gear Emulator — スタートメニューで動くゲームギアエミュレーター

Z80 EMULATOR PROJECT

スクリーンショット

SEGAロゴ起動画面

Game Gear Emulator // SEGAロゴ起動画面

ソニック・ザ・ヘッジホッグGG タイトル画面

Game Gear Emulator // タイトル画面

Homebrew作品動作

Wolfenstein // under4mhz

Game Gear Emulator // Wolfenstein // under4mhz Game Gear Emulator // Wolfenstein // under4mhz

動画

Game Gear Emulator // Wolfenstein // under4mhz

SMS Powerさんのサイトより、under4mhz様作の「Wolfenstein」をお借りしてます。

Mai Nurse // lunoka

Game Gear Emulator // Mai Nurse // lunoka Game Gear Emulator // Mai Nurse // lunoka Game Gear Emulator // Mai Nurse // lunoka

動画

Game Gear Emulator // Wolfenstein // under4mhz

SMS Powerさんのサイトより、lunoka様作の「Mai Nurse」をお借りしてます。

特徴

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

  • SMS VDP Mode 4 描画エンジン:
    1タイル32バイトの4bpp planar構造(プレーン0〜3)をリアルタイムデコード。水平スクロールレジスタ(R8)およびスキャンライン割り込みによるラインカウンタ制御に対応。

  • Game Gear固有 RGB444 CRAM:
    2バイト書き込みラッチ方式による4096色中32色同時発色カラーパレットの再現。

  • Segaマッパーによるバンク切替:
    $FFFC〜$FFFFの制御レジスタ書き込みによる Slot 0 / 1 / 2(最大512KB ROM)の動的ページ切替と、先頭1KB($0000-$03FF)の固定領域マッピングに対応。

  • CPUサイクル同期 PSG PCM音声再生:
    SN76489 PSGの音量レジスタを高速に書き換えるPCMサウンド再生に対応。CPUサイクル数をタイムスタンプとして AudioWorklet へ転送することで、「セーガー♪」のロゴボイスをクリアに再現。

  • GGビューポート & SMS表示切替:
    マスターシステムの内部解像度(256×192)から、ゲームギア実機液晶のビューポート(中央160×144)へのクロップ表示およびフル解像度表示の切り替えに対応。

使い方

1. ROMのロード

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

2. 対応フォーマット

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

キーボード操作

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

モジュール構成

モジュール名主要機能
Z80 CPU COREZ80A命令セット(3.58MHz動作、スキャンライン割り込み対応)
VDP MODE 44bpp planarタイル描画・ネームテーブル・水平/垂直スクロール
CRAM COLORRGB444(12bit)2バイトラッチ式パレット制御
SEGA MAPPER$FFFC-$FFFFメモリ制御による最大512KB ROMバンク切替
SN76489 PSG3音+ノイズ合成、CPUサイクル同期書き込みによるPCM再現
GG VIEWPORT256×192 → 160×144 クロップ処理
UICanvas描画、ROMドラッグ&ドロップ、表示モード切替

技術スタック

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

更新履歴

  • [2026-09-19]: v1.0 初回公開。
    • SMS VDP Mode 4(4bpp planar)描画エンジンの実装
    • Game Gear固有 2バイトラッチRGB444 CRAMパレットの実装
    • Segaマッパー(512KB ROM対応)バンク切替の実装
    • サイクル同期AudioWorkletによる「SEGAロゴ」PCM音声再生の実装
    • 256×192 / 160×144 ビューポート切り替え機能の実装
    • ドラッグ&ドロップROMローダーの実装

技術記事