ESP32でパックマンを完全再現――Z80エミュレーションと波形テーブル音源を実装した「PELLETINO」

FabScene(ファブシーン)

アーケードゲームのエミュレーションは通常、PCやシングルボードコンピューターで動かすものだ。だが1980年のパックマンが動いていたハードウェアは、CPUクロック3MHz、RAMわずか2KBの構成だった。現代のマイコンなら十分に再現できるスペックだ。

「PELLETINO」は、Espressif ESP32-C6上でパックマンのアーケード基板をソフトウェアエミュレーションで再現するプロジェクトだ。Z80 CPUの命令セットをRISC-Vプロセッサー上でエミュレートし、Namco WSG(Waveform Sound Generator)による3声の波形テーブル音源合成まで忠実に再現している。

ハードウェアにはWaveshare ESP32-C6-LCD-1.69(約13~16ドル、約2000~2400円)を採用した。160MHz RISC-Vプロセッサー、512KB SRAM、1.69インチ240×280ピクセルST7789 LCDディスプレイ、ES8311オーディオコーデック、QMI8658 6軸IMU(慣性計測装置)を搭載しており、ゲームに必要な表示、音声、入力の各機能を1枚のボードでまかなえる。

描画はSPI DMAで60fpsを維持し、オリジナルの224×288ピクセル解像度を240×280ピクセルのLCDにほぼそのまま収めている。音声面ではES8311 I2Sコーデックを介し、ワカワカ音やゴースト捕食音、フルーツ取得音、デス演出などオリジナルの効果音をすべて再生する。操作はGPIOボタンに加え、IMUによるチルト操作にも対応した。

ユニークなのは、米テキサス州サンアントニオで毎年4月に開催される祭り「Fiesta San Antonio」の2026年公式メダルとしても機能する点だ。Fiestaではコレクタブルなピンバッジ(メダル)を身に付けて交換する伝統があり、PELLETINOは3Dプリント筐体にストラップを通して首から下げられる。遊べるメダルという発想だ。

ビルドにはESP-IDF 5.xとPython 3.8以上が必要で、ROMファイルは著作権の関係で同梱されていない。変換スクリプトでグラフィックスデータをRGB565形式に、波形テーブルデータをCヘッダーファイルに変換し、ファームウェアとして書き込む仕組みだ。Z80エミュレーターコアにはMarat Fayzullin氏のコードを、アーケードエミュレーションの設計パターンにはTill Harbaum氏のGalaginoプロジェクトを参考にしている。

関連情報

PELLETINO(GitHub)
ESP32-C6-LCD-1.69(Waveshare)

fabsceneの更新情報はXで配信中です

この記事の感想・意見をSNSで共有しよう
  • URLをコピーしました!