安価なマイコンボードで、本格的なレースゲームを動かせるか。chemickypes氏は、1000円台で手に入る「Cheap Yellow Display(CYD)」で、その答えを形にした。公開した「Yellow Racer」は、CYDの愛称で知られるESP32搭載ボード「ESP32-2432S028R」で動く、擬似3Dのレースゲームだ。1980年代のアーケードレースゲームのように、道路が奥へ吸い込まれる映像を、小さな画面に描き出す。
CYDは、ESP32に2.8インチのカラー液晶とタッチパネルを最初から載せた、安価なボードだ。はんだ付けは不要で、USBでつないで書き込むだけで動く。Yellow Racerは、このボード1枚だけで、道路のカーブや上り下りのある3Dらしい風景と、遠心力のかかる走行を再現する。
技術的な山場は、メモリの制約をどう乗り越えるかだった。CYDには、外部の作業用メモリ「PSRAM」がない。画面全体を色深度16bitで一時的に保持しようとすると、必要な154KBが、確保できる最大のまとまったメモリ(約108KB)に収まらない。そこでchemickypes氏は、色を8bitに落とした77KBの描画用領域を2枚用意し、交互に使う「ダブルバッファ」という手法で、画面のちらつきを抑えた。
映像は、道路を細かい区切りに分けて手前に投影する方式で描く。赤と白の縁石や、破線の中央線、雪をかぶった富士山のシルエットまで表示する。カーブでは車が外側へ押され、プレイヤーは曲がるために画面をタッチして操作する必要がある。縁石を外れて芝生に入ると減速する。難易度の異なる3つのコースがあり、3周のタイムアタックで、残り時間に応じて得点が決まる。外部メモリのないボードで、およそ毎秒25コマの安定した表示を保つという。
Yellow Racerは、ソースコードや配線の設定、開発の記録がGitHubで公開されており、ライセンスはMITだ。擬似3Dの描画は、Jake Gordon氏の解説記事に着想を得たとしている。安価なボードの限界を、工夫でどこまで引き出せるかに関心のある人には、参考になる作りだろう。