特に何か必要があってというわけではないのだが、長い時間かけて重い処理をし ている間に他の何かをやるーみたいな、ずばり PS 版リッジレーサーのローディ ング画面みたいなことをやってみたいというか、GBシレン2のマップロード中に 歩き回るイタチとか、セーブ中にロボが踊るマリオペイントでも可。 例を挙げたらキリが無いので、陳腐なシューティングをリアルタイムに動かしつ つ、裏でライフゲームを動かす場合を考えてみる。 簡単に実現するには、VBLANK割り込みで画面更新しつつゲームループを回して、 メインループでライフゲームを回してっと……。簡単すぎるなぁ。これはこれで 有効だけど、メインループでゲームループを回しつつ、重い処理をしてみたい。 タイマ割り込みをトリガーにしてコルーチンを回し、リアルタイムで切り上げれ ば、取り合えずノンプリエンプティブっぽい処理は出来そうか。ライフゲームの セル一行ごとに co_resume(); で……。ライフゲームは単位時間がほぼ一定だか ら、割り込み間隔の調整も楽だな。 しかしいちいち手動で処理を返さなきゃいけないのが気持ち悪いなぁ。やっぱり スレッドしか無いかな。というわけで JaysOS とか BricksOS のソースを読んで みたり。
一時期61キロ台まで行ったのはなんだったんだ……というか最近ストレスを間食 で発散してるのでよくない。無駄食いしたら減らんよね。