えふでぃの備忘録

電子工作・レトロ・ゲーム・園芸やってます

FabGL PCEmulator PC8001FabGL編

FabGLはFabrizio Di Vittorio氏によって公開されたプロジェクトで、github.comで入手できます。

github.com

DEKOのアヤシいお部屋さんのPCEmulator (FabGL)に関する詳細な情報が提供されており、日本で一番詳しい情報源と思われます。PCEmulatorの作成方法や操作方法を熟読することをお勧めします。

ht-deko.com

南極獅子さんによる電子工作向けの作品もあります。この作品は南極獅子さんのGithubで公開されており、「かっこよかった」という理由からこの作品を作成することを決めました。

github.com

JLPCBを使って基板を発注し、紫の基板が届きました。基板には南極獅子さんの指定する部品を実装しますが、苦労も待ち受けています。

最初にFabGLのPCEmulatorを使いたかったため、ESP32-DevKitC-VEが必要でした。通常のESP32WROOM-32Dでも問題ないのですが、PCEmulatorを使用する場合はESP32-DevKitC-VEが必要になります。これはPSRAMの有無の違いによるものです。

今回はbasara767676さんのPC8001FabGLという作品になります。

github.com

完成したFabGLですが、動作しない問題が発生しました。SDカードが見つかりませんとのエラーメッセージが表示されます。

南極獅子さんからのアドバイスをいただいた後、引き続きSDカードが見つからない問題に直面していました。

アドバイスに従ってピン設定を変更しましたが、問題は解決せず、状況は依然として困難でした。

アドバイスによるピン設定の変更は以下の通りです。

FabGLからだとSDカードはFileBrowserのオブジェクトでピン設定ができるので、
bool r = fb.mountSDCard(false, "/SD", 1, (16*1024), GPIO_NUM_35, GPIO_NUM_12, GPIO_NUM_14, GPIO_NUM_13);

PCEmulatorの391行目、

if (!FileBrowser::mountSDCard(false, SD_MOUNT_PATH, 8,(16*1024), GPIO_NUM_35, GPIO_NUM_12, GPIO_NUM_14, GPIO_NUM_13));

この問題により、私は困難な状況に立たされました。これはかなり深刻な問題であり、TFカードスロットの不良が原因ではないかと考えました。

HardwareTest.inoを書き込んだ結果、書き込みは成功しました。その後、TFカードの動作確認を行いましたが、結果は失敗となりました。

その後、色々な試行錯誤を行った結果、TFカードスロットの不良が確定しました。この問題の原因としては、TFカードスロットの半田付け不良か損傷が考えられます。

壱号機として完成した初期の作品は、このTFカードスロットの不良により解体せざるを得なくなりました。そこで、新たに弐号機を製作し、改めてTFカードスロットの問題を解決することにしました。

弐号機による再挑戦が始まり、苦労しながらも問題を克服していきました。そして、TFカードスロットを正常に動作させることに成功しました。

そこで、弐号機を作成し、南極獅子さんに教わった方法を試しました。これにより、PC8001FabGLが動作するようになりました。

動作確認として、UME-3さんの作品であるホームラン競争のゲームを使用しました。

www.gamepres.org

もう一つ簡単なプログラムを作成し、クロマテのホームランを10回表示させました。深い意味はありません。おそらくファミコンのあのソフトの影響でしょうね。

最後に、以下の点が結果となります。

・TFカードスロットのハンダ不良か物理的破損が原因でSDカードが見つからない問題が発生しました。
・南極獅子さんからのアドバイスにより、ESP32のピンの変更を行い、Arduino IDEでスケッチを改変して問題に対応しました。

南極獅子さんに頂いたアドバイスに深く感謝いたします。

テストとしてホームラン競争を公開してくれたUME-3さんにも深く感謝いたします。

今回の経験は成功と言えるものですが、ESP32の基礎がない状態での取り組みはかなり厳しいものでした。基礎の重要性を改めて知るいい機会となりました。