Geartowns MCP Server について
Geartownsは、デバッガーとMCPサーバーを内蔵したクロスプラットフォームのFujitsu FM Townsエミュレーターです。AIエージェントを使ってゲームを調査・デバッグしたい利用者や開発者向けです。
主な機能
- 01FM TownsとMartyのエミュレーション
- 02CD-ROM、フロッピー、SCSIディスク対応
- 03ブレークポイントと逆アセンブル機能
- 04メモリとハードウェアの検査
- 05ステート保存、巻き戻し、ランアヘッド
活用シーン
- 01デバッグ中のゲームコード追跡
- 02メモリとエミュレートされたハードウェアの確認
- 03AIエージェントによるゲームのデバッグ
- 04FM Townsゲームの調査や改変
MCP 対応
内蔵MCPサーバーは、実行制御、メモリ検査、ブレークポイント、逆アセンブル、ハードウェア状態、巻き戻しのツールを公開します。STDIOとHTTPに対応し、STDIOが推奨されています。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Geartowns
Geartowns は、C++ で書かれた高精度なクロスプラットフォーム対応の Fujitsu FM Towns エミュレーターです。Windows、macOS、Linux、BSD、RetroArch 上で動作し、AI によるデバッグと開発のための MCP サーバーを内蔵しています。
これはオープンソースプロジェクトです。継続的な開発は、素晴らしい支援者の皆様のおかげで実現しています。役に立った場合は、ぜひスポンサーをご検討ください。
issue を作成して、バグの報告や新機能のリクエストをお気軽にお寄せください。
| プラットフォーム | アーキテクチャ | ダウンロードリンク |
|---|---|---|
| Windows | デスクトップ x64 | Geartowns-1.0.1-desktop-windows-x64.zip |
| デスクトップ ARM64 | Geartowns-1.0.1-desktop-windows-arm64.zip | |
| macOS | Homebrew | brew install --cask drhelius/geardome/geartowns |
| デスクトップ Apple Silicon | Geartowns-1.0.1-desktop-macos-arm64.zip | |
| デスクトップ Intel | Geartowns-1.0.1-desktop-macos-intel.zip | |
| Linux | Ubuntu PPA | drhelius/ppa-geardome |
| Fedora RPM | drhelius/rpm-geardome | |
| デスクトップ Ubuntu 26.04 x64 | Geartowns-1.0.1-desktop-ubuntu26.04-x64.zip | |
| デスクトップ Ubuntu 26.04 ARM64 | Geartowns-1.0.1-desktop-ubuntu26.04-arm64.zip | |
| デスクトップ Ubuntu 24.04 x64 | Geartowns-1.0.1-desktop-ubuntu24.04-x64.zip | |
| デスクトップ Ubuntu 24.04 ARM64 | Geartowns-1.0.1-desktop-ubuntu24.04-arm64.zip | |
| MCPB | すべてのプラットフォーム | MCP の README |
| RetroArch | すべてのプラットフォーム | Libretro コアのドキュメント |
| 開発ビルド | すべてのプラットフォーム | GitHub Actions |
注:
- Windows: Visual C++ Redistributable と OpenGL Compatibility Pack が必要になる場合があります
- Homebrew:Homebrew からサードパーティの tap を信頼するよう求められた場合は、
brew trust --tap drhelius/geardomeを実行してください - Linux:
libsdl3が必要になる場合があります
機能
- 非常に高精度な80386コアを搭載し、test386およびSingleStepTests/80386に合格します。
- FM Towns(Model 1/2)、1F/2F、10F/20F、FM Towns II CX、UX、UG、HG、HR、およびFM Towns Martyをエミュレートします。
cue/bin、iso、chdイメージ、m3uディスクプレイリスト、ディスクの入れ替えに対応するCD-ROMドライブエミュレーション。圧縮イメージ(zip)にもオプションで対応します。- Windows、macOS、Linuxで物理CD-ROMディスクを使用できます。
- 2台のドライブに対応するフロッピーディスクエミュレーション。
d77、d88、hdm、xdf、img、HxCのmfmイメージ、m3uプレイリスト、書き込み保護、ディスク変更の任意の保存に対応します。 - ID 0-6のSCSIハードディスク。rawおよび
chdイメージ、空のディスクの作成、Towns OSのインストールに対応します。 - 5つのスロットを備えたステートセーブと巻き戻しに対応します。
- 入力遅延を軽減するランアヘッドに対応します。
- AVIへの動画録画とスクリーンショットに対応します。
- YM3438およびRF5C68サウンドチップ用のVGMレコーダー。
- 対応プラットフォーム(スタンドアロン):Windows、Linux、BSD、macOS。
- 対応プラットフォーム(libretro):Windows、Linux、macOS、Raspberry Pi、Android、iOS、tvOS、webOS、PlayStation 3、Nintendo GameCube、Nintendo WiiU、Nintendo Switch、Emscripten、Classic Miniシステム(NES、SNES、C64など)、OpenDingux、RetroFW、QNX。
- 完全なデバッガー:
- ジャストインタイム逆アセンブラー、コードナビゲーション、コールスタック、デバッグシンボル、自動ラベル。
- 実行、データ、I/O、割り込みブレークポイント。
- メモリーエディター、トレースロガー、プロファイラー。
- i386レジスター、ディスクリプターテーブル、ページングインスペクター。
- CRTC、パレット、フレームバッファー、スプライト、YM3438、RF5C68、CD-ROM、フロッピーコントローラーとディスク、SCSIコントローラーとディスク、割り込み、タイマー、DMA、RTC、キーボード、ゲームポートのビューアー。
- Claude Code、Codexなどを使ったAI支援デバッグ用のMCPサーバー。実行制御、メモリー検査、ハードウェア状態、巻き戻しなどのツールを公開します。
- Windows、Linux、macOSのポータブルモード。
- プログラマブルシェーダーチェーン。
- CD-ROM、フロッピー、ハードディスクのイメージパスを引数として指定し、コマンドラインからメディアを読み込めます。
- ドラッグ&ドロップでメディアを読み込めます。
- アプリケーションバイナリと同じディレクトリに置かれたgamecontrollerdb.txtファイルを使った、最新のゲームコントローラーに対応します。
ヒント
基本的な使い方
- ファームウェア:Geartownsの実行にはFM TownsのシステムROMが必要です。**Machine → Firmware...**から、それらを格納したフォルダーを選択してください。セットごとに1つのサブフォルダーまたはMAME zipを使用します。各モデルに必要なセット、配置場所、チェックサムについてはBIOS_README.mdを参照してください。
- マシン:Machine → Model、CPU Speed、Main RAMの初期設定はAutoです。次のいずれかが選択されます。
- ゲームデータベースにそのゲーム用として記載されたモデル、CPU速度、RAM。
- 1.44 MBフロッピーディスクの場合はFM Towns II HG。
- その他のコンテンツの場合はFM Towns(Model 1/2)。
- CD-ROMイメージ:Geartownsは、
chd、zip圧縮および非圧縮のcue/binとisoイメージ、複数枚組ゲーム用のm3uプレイリストに対応します。CUEのオーディオトラックには、raw BIN、互換性のあるWAV(44100 Hz、16-bit、ステレオ)、またはOgg Vorbisファイルを使用できます。Geartowns → CD-ROMからディスクを入れ替えます。 - フロッピーイメージ:Geartowns → Floppiesからフロッピーディスクを挿入するか、コマンドラインから読み込みます。対応イメージは
d77、d88、hdm、xdf、img、mfmで、zipファイル内のイメージとm3uプレイリストにも対応します。 - ポータブルモード:
--portableを指定して実行するか、アプリケーションバイナリと同じディレクトリにportable.iniという空のファイルを作成します。macOSでは、.appバンドルの隣にファイルを配置してください。
ハードディスク
ID 0-6に最大7台のSCSIハードディスクを接続できます。
- 1F/2F以降:SCSIインターフェースを内蔵しています。
- FM Towns(Model 1/2):ディスクの接続時にSCSIカードを装着します。
- FM Towns Marty:SCSIには対応していません。
イメージ形式
- Raw イメージ(
hdd、h0~h6、および 8 MB を超えるhdm):512 バイトのセクターです。サイズの小さいhdmイメージはフロッピーディスクです。 - MAME ハードディスク
chd:読み取り専用です。最初の書き込み時に、Geartowns はSave Filesフォルダーに Raw の作業用コピーを作成し、それ以降はそのコピーを使用します。
ディスクの接続
- デスクトップ:Geartowns → Hard Disks、ドラッグ&ドロップ、またはコマンドラインを使用します。ドラッグ&ドロップとコマンドラインでは、拡張子に基づいて ID が選ばれます。
h0~h6:その SCSI ID。- 8 MB を超える
hddとhdm:最初の空き ID。
- Libretro:イメージを単独、または CD を含む
m3uプレイリストのコンテンツとして読み込みます。変更は保存ディレクトリ内の作業用コピーに反映され、元のイメージには書き込まれません。 - 実行中のマシン:ディスクの接続または取り外しは、次回のリセット時に反映されます。
ディスクへの書き込みとセーブステート
- 書き込みが止まってから数秒後に、書き込み内容が保存されます。
- セーブステート、巻き戻し、先行実行にはディスクデータは含まれません。セーブステートを読み込むと、その時点以降に行われたディスクへの書き込み(ディスクごとに最後の 32 MB 分)が取り消され、取り消せない場合は警告が表示されます。
ゲームのインストール
Formatted にチェックを入れて New Blank Disk... を選ぶと、Towns OS と同じ方法でパーティション分割とフォーマットが行われ、127 MB ごとに空のドライブが 1 つ作成されます(最大 10 個)。CD から起動したゲームは、そのディスクにインストールできます。システムは含まれず、起動もできません。
Towns OS のインストール
- New Blank Disk... を選び、Formatted のチェックを外してディスクを作成します。
- Towns OS V2.1 CD から起動し、TownsMENU V2.1 の Tools フォルダーから HD Install を実行します。
- CD を取り出してリセットします。
Towns OS V2.1 をハードディスクから起動するには、起動時に 4 MB の RAM が必要です。ディスク接続時に Main RAM を Auto にすると、少なくともこの容量が割り当てられます。
ハードディスクからの起動
- 起動可能な CD は、ディスクより先に起動します。
- CD を挿入したままディスクから起動するには、Geartowns → Reset and Boot From でディスクを選びます。リセット中はシステム ROM の起動キー(H と SCSI ID)が保持されます。
- Model 1/2 と Marty の ROM は、これらのキーを読み取りません。
ドライブ文字
Towns OS はハードディスクのドライブ文字をディスク上ではなくモデルの CMOS に保存し、ドライブ文字が割り当てられたパーティションのみを使用します。
- Assign Drive Letters がオン(Geartowns → Hard Disks、デフォルト)の場合:リセットのたびに、接続されたディスクのドライブ文字が未割り当てのパーティションに、D: から順に空き文字が割り当てられます。すでに設定されている文字は保持されます。これにより、別のモデルやエミュレーターでインストールしたディスクから起動できます。
- Assign Drive Letters がオフの場合:Towns OS で手動でドライブ文字を割り当てます。
- Towns OS V2.1 CD から起動します。
- Settings → Drive Configuration を開きます。
- ディスクの SCSI ID をクリックし、Add Drive、次に Execute をクリックします。
- CD を取り出してリセットします。
デバッグ機能
- ウィンドウのドッキング:デバッグモードでは、SHIFT を押しながらウィンドウを別のウィンドウにドラッグすると、ウィンドウ同士をドッキングできます。
- マルチビューポート:Windows または macOS では、デバッグメニューで「multi-viewport」を有効にできます。変更を反映するには、エミュレーターを再起動する必要があります。有効にすると、デバッガーのウィンドウをメインウィンドウの外へドラッグできます。
- シングルインスタンス:
Emulatorメニューで「Single Instance」を有効にできます。有効にすると、別のインスタンスの実行中にファイルを開いた場合、新しいインスタンスを起動する代わりに、実行中のインスタンスにファイルが送られます。 - デバッグシンボル:エミュレーターは CD-ROM またはフロッピーイメージを読み込むとき、シンボルファイルの読み込みを自動的に試みます。たとえば、
path_to_image.cueに対してはpath_to_image.symの読み込みを試みます。GUI または CLI からシンボルファイルを読み込むこともできます。- 各行には、
address name、name = address、name EQU address、またはaddress type nameの形式でシンボルを 1 つ定義します。最後の形式は GNUnmの出力です。例:nm -n program.elf > program.sym。 - アドレスはリニア形式、または
selector:offset形式で指定できます。 - コメントは
;または#で始まります。 - GNU ld と NASM のマップファイルも読み込めます。
- 各行には、
コマンドラインの使用方法
geartowns [options] [media_file] [symbol_file]
Arguments:
media_file CD-ROM (.cue .chd .iso), floppy (.d77 .d88 .hdm
.xdf .img .mfm), .m3u playlist, .zip, or hard disk
(.hdd .h0-.h6, hard disk .chd, .hdm over 8 MB)
symbol_file Symbol file for debugging
Media:
--cd FILE CD-ROM image or .m3u playlist
--fd1 FILE Floppy image in drive 1
--fd2 FILE Floppy image in drive 2
--load-state SLOT Load save state slot 1-5, or a state file, once the
media is loaded
Machine (for this run only, the saved settings stay):
--model MODEL auto, model1_2, 1f_2f, 10f_20f, cx, ux, ug, hg, hr,
marty
--cpu-mhz MHZ auto, 16, 20, 25, 33, 40, 50, 66, 100
--ram MB auto, 1, 2, 4, 6, 8, 10, 12, 16, 20, 24, 26, 28
--fpu FPU auto, none, 80387 (a 487SX on the HR)
Options:
-f, --fullscreen Start in fullscreen mode
-w, --windowed Start in windowed mode with menu visible
--mcp-stdio Auto-start MCP server with stdio transport
--mcp-http Auto-start MCP server with HTTP transport
--mcp-router Enable compact MCP tool routing
--mcp-http-address A HTTP bind address (default: 127.0.0.1)
--mcp-http-port N HTTP port for MCP server (default: 7777)
--headless Run without GUI (requires MCP)
--portable Store configuration and user data beside the
application
-v, --version Display version information
-h, --help Display this help message
MCP サーバー
Geartowns には、Claude Code、Codex などの AI エージェントを通じて AI 支援デバッグを可能にする Model Context Protocol(MCP)サーバーが含まれています。このサーバーは、実行制御、メモリ検査、ブレークポイント、逆アセンブル、ハードウェア状態、巻き戻しなどのツールを提供します。STDIO と HTTP のトランスポートをサポートしており、STDIO を推奨します。
セットアップ手順とツールのドキュメントについては、MCP_README.md を参照してください。
エージェントスキル
Geartowns は、AI アシスタントが特定のタスクでエミュレーターを効果的に使えるようにする Agent Skills を提供しています。
- geartowns-debugging — ゲームのデバッグ、コードのトレース、ブレークポイントの管理、ハードウェアの検査、リバースエンジニアリング。
- geartowns-romhacking — チートの作成、メモリ検索、データの変更、テキストの翻訳、ゲームのパッチ適用。
npx skills add drhelius/geartowns でインストールしてください。詳細はスキルの README を参照してください。
ハードウェアの精度
Geartowns は、FM Towns Hardware Tests の結果に基づいて開発されています。
ビルド手順
Windows
- Microsoft Visual Studio Community 2026 以降をインストールします。
- SDL3 Releases から最新の SDL3 VC 開発ライブラリ(
SDL3-devel-x.y.z-VC.zipという名前のファイル)をダウンロードします。 - アーカイブを展開し、展開されたフォルダー(例:
SDL3-x.y.z)の名前をSDL3に変更します。 SDL3フォルダーをplatforms/windows/dependencies/に配置し、インクルードパスがplatforms/windows/dependencies/SDL3/include/SDL3/になるようにします。- Geartowns の Visual Studio ソリューション
platforms/windows/Geartowns.slnを開いてビルドします。
macOS
- Xcode をインストールし、コンパイラーをコマンドラインから使用できるよう、ターミナルで
xcode-select --installを実行します。 - 次のコマンドを実行して、Mac の app バンドルを生成します。
brew install sdl3
cd platforms/macos
make dist
Linux
- Ubuntu / Debian / Raspberry Pi(Raspbian):
Ubuntu 26.04 を使用している場合は、SDL3 を直接インストールできます。ビルドするには、次のコマンドを使用します。
sudo apt install build-essential pkg-config libsdl3-dev libgl-dev
cd platforms/linux
make
Ubuntu 24.04 の場合は、まず SDL3 をソースからビルドする必要があります。SDL3 と Geartowns の両方をビルドするには、次のコマンドを使用します。
sudo apt install build-essential cmake git curl jq pkg-config \
libx11-dev libxext-dev libxrandr-dev libxcursor-dev libxfixes-dev \
libxi-dev libxss-dev libxkbcommon-dev libwayland-dev libdecor-0-dev \
libdrm-dev libgbm-dev libgl1-mesa-dev libegl1-mesa-dev libdbus-1-dev libudev-dev libxtst-dev
SDL3_TAG=$(curl -s https://api.github.com/repos/libsdl-org/SDL/releases/latest | jq -r '.tag_name')
git clone --depth 1 --branch "$SDL3_TAG" https://github.com/libsdl-org/SDL.git /tmp/SDL3
cmake -S /tmp/SDL3 -B /tmp/SDL3/build -DCMAKE_INSTALL_PREFIX=/usr -DSDL_TESTS=OFF -DSDL_EXAMPLES=OFF
cmake --build /tmp/SDL3/build -j$(nproc)
sudo cmake --install /tmp/SDL3/build
cd platforms/linux
make
- Fedora:
sudo dnf install @development-tools gcc-c++ SDL3-devel
cd platforms/linux
make
- Arch Linux:
sudo pacman -S base-devel sdl3
cd platforms/linux
make
BSD
- FreeBSD:
su root -c "pkg install -y git gmake pkgconf sdl3"
cd platforms/bsd
USE_CLANG=1 gmake
- NetBSD:
su root -c "pkgin install gmake pkgconf SDL3"
cd platforms/bsd
gmake
- OpenBSD
doas pkg_add gmake sdl3
cd platforms/bsd
LDFLAGS=-L/usr/X11R6/lib/ USE_CLANG=1 gmake
Libretro
- Ubuntu / Debian / Raspberry Pi(Raspbian):
sudo apt install build-essential
cd platforms/libretro
make
- Fedora:
sudo dnf install @development-tools gcc-c++
cd platforms/libretro
make
貢献者
Geartowns に貢献してくださった皆様、ありがとうございます!
ライセンス
Geartowns は GNU General Public License v3.0 License のもとでライセンスされています。詳細については LICENSE を参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。