PlaydateのC最適化:4KBの命令キャッシュが勝負を分ける

Dirty Optimization Secrets (C for Playdate)

Playdate向けゲームボーイエミュレータをフルスピードで動かす過程で見つけた、一般的なゲーム最適化とは異なるテクニックを紹介。CPUは非常に高速だがメモリは遅く、特にRev Aでは命令キャッシュがわずか4KBしかない。エミュレータのコアを2KBに圧縮し、リンカスクリプトやDTCM/ITCMを活用、さらにキャッシュミスアラインメントや分岐予測テーブルによる「パフォーマンスくじ引き」の対策まで踏み込む。

最初にゲームボーイエミュレーションのパフォーマンスを改善するためにやったのは、20KBのエミュレータコアを、巨大なswitchテーブルを削除し、はるかに少ないコードとほんのいくつかの分岐で表現することで、わずか2KBに圧縮することでした。(そして-Osを使用。)動作は同一でしたが、結果としてはるかに高速になりました。

この日のほかの記事

2026-10-04