dwgx@blog:~$dwgx
> cd ../posts

Cheat Engine に LLM の皮をかぶせる:CEGM

// created

CEGM は Cheat Engine にかぶせる LLM の皮で、シングルプレイのオフラインゲームのメモリ実験に特化している。CE を起動すると、仕込んでおいた Lua autorun がついでに Python の broker を立ち上げる。同じポート 27077 上に二つの入口を開く。一つは外部クライアント向けの MCP エンドポイント、もう一つはブラウザのパネルで、そこから直接チャットできる。

/mcp は MCP Streamable HTTP エンドポイントだ。Claude Desktop、Cursor、Claude Code、Codex といった MCP クライアントをここに向けるだけで、ツール一覧をまるごと受け取れる。一つずつ設定する必要はなく、CE が起動していればこの URL は生きている。ルートパス / にはブラウザパネルがぶら下がっていて、チャット欄、リアルタイムのツール呼び出しタイムライン、メモリ書き込み前後の diff、それに自分の LLM key を突っ込むドロワーがある。

実際に仕事をするあの ~180 個のツールは自分で書いたものではない。miscusi-peek/cheatengine-mcp-bridge(MIT)から来ていて、git submodule として vendor した。MCP から CE までのツール面はまるごと向こうのものだ。自分が足したのはその上の薄い一層で、書き込みは commit の前にまず preview、名前付きスナップショット、復元ポイント、そして Phase 3 ではよく使う定石のレシピ集を作りたいと思っている。

同類のものはたいてい、ツール呼び出しを手元のクライアントに headless で突っ込むだけで、モデルがどのメモリを触ったのか実は分からない。CEGM が賭けているのは可観測性と安全性だ。呼び出しは毎回ちゃんと並べて見せるし、破壊的な操作はまず preview、間違えても rollback できる。シングルプレイのメモリで実験するなら、欲しいのはまさにこれ、見えることと、戻せることだ。

外部 MCP クライアントとブラウザパネルは同じ broker、同じポートを通る:

外部 MCP 客户端 / 浏览器
        │  HTTP MCP / WS

  cegm-broker (Python, 自动拉起)
  127.0.0.1:27077  /mcp · /events · /api/* · /
        │  stdio MCP

  cheatengine-mcp-bridge (vendored, MIT)
        │  named pipe

  Cheat Engine 7.5+

今はまだ alpha(v0.1.0a1)だ。はっきりさせておくと、対象はシングルプレイのオフラインゲームのみで、オンラインのマルチプレイには手を出さないし、アンチチートを回避するためのものでもない。License は上流の CE に従って GPL-2.0-only。