概要
ESP31で(かなり著名な)家庭用GAMEエミュレーターを動かしているサイトを見つけたので、追試を試みる。
[esp31-smsemu ] https://github.com/espressif/esp31-smsemu
これがうまくいったらシリーズ化出来ないかと夢想する。
nesemuは半年放置の状態のプロジェクトに手を加えたら、一週間後に本家で正式更新され、努力(?)が無駄になりすこしがっかり。
smsemuは2年間放置状態ですが、さて今度はどうなることやら。
やること、やった事
ハードは
[ESP32でGAMEエミュレーターを動かす]https://qiita.com/hi631/items/a0dfb6ee91b90c028445
を見てください。ピンの配置も全く一緒です。
ソフトは今回は変更が多いのでGitHubに上げました。
[esp32-smsemu]https://github.com/hi631/esp32-smsemu
ダウンロードして、COMポートと通信速度をボードに合わせてコンパイルすれば動くはずです。
smsファイルのフラッシュへの書き込みは下記のコマンドで行います。
esptool.py --chip esp32 --port "/dev/ttyxx" --baud $((921600)) write_flash -fs 4MB 0x140000 xxxx.sms
"/dev/ttyxx"、xxxx.smsは自分の環境に合わせましょう。
アドレスがnesemuとは変わっていますので注意の事。いやならpartitions.csvを弄ってください。
make flash して、Resetすれば動くと思います。
smsファイルの書き込みに失敗している場合、LCD画面は青枠の中に黒い画面が(さびしく)見えるはずです。
今回苦労した所
今回はsmsemuをnesemuのI/Oに接ぎ木して動かしています。
一応、ちゃんと画面も音も出てコントローラーで遊ぶことができます。
デバッグ画面には、60FPSと表示されますが眉唾のような気がします。
元ネタとは開発環境がだいぶ変わっているようで、最初は山のようなエラーがドバー。なにが何だか判りませんでした。
力技で適当につなぎ合わせたら動きました。smsemuをnesemuは同じ人(チーム)で作られていると思われます。
その他
上記記載のハード、ソフトは無保証であり、各自の責任においてご利用願います。
中身がよく判らないのに、動けばOKという勢いで改変していますので、何か傷を抱えているかもしれません。
また蛇足ですが、世の中にはフリーでないプログラムも存在しますので、注意の上で遊ばれることをお勧めします。