WonderWitch.Com
■TOP>ネタ | |
ライブラリResumeIL(β版)を使ってサスペンド/リジューム機能に対応させてみる ワンダーウィッチサポートWebサイトにて、WSC用 サスペンド/リジュームライブラリ「ResumeIL」のβ版が公開されました(動作確認の段階です)。これは、ワンダーウィッチをサスペンドとリジュームに対応させるためのライブラリです(電源を落せる状態にすることを「サスペンド」、逆に電源OFFから復帰することを「リジューム」といいます)。(松原) *以下の記事は、βテスター用を元に作成していますので、今後仕様が変更される可能性があります。 ◆下準備 「ResumeIL」はFreyaOSのバージョンが1.1.4以上でないと正常に動作しません。もし、FreyaOSのバージョンが古い場合は、ツール「TransMagic」を使って更新しましょう。FreyaOSのバイナリファイルは ワンダーウィッチサポートWebサイトからダウンロードできます。 次に“resume.il”をワンダーウィッチのプログラムエリア(ROM0)に転送します。ファイルは転送された先で、“@proc”という名前になります。転送後は忘れずに、シェル(MEG)のリブート(「終了」してY3キーを押す)を行ってILを初期化しましょう。以上で、準備OKです。 ◆サンプル「ぴったりさん」 β版に添付されているサンプルプログラム「ぴったりさん」を実行してみましょう。「sample」フォルダにある「r1024.fx」をプログラムエリア(ROM0)に転送してランチャで立ち上げてください。 「ぴったりさん」実行中の画面です。2枚のスクリーンが重なって表示されています(ちなみに、この絵には意味はなさそうです)。X(方向)キーを押すと、スクリーンがスクロールします。 Y4キーを押すと、サスペンドが行われ、ランチャ画面に戻ります(あとで確認しますので、スクリーンの重なり具合を頭に入れておきましょう)。 ◆サスペンド しかし、プログラムはプロセスとしてまだ生きています。プロセスはメニューの表示で確認することができます(「r1024」)。サスペンドすると、変数やキャラクターにいたるまで全ての状態が「resume.dat」というファイルとして、ワークエリア(RAM0)に保存されます。 ここでpowerキーを押して電源をオフにします。あと、Y3キーでリブートしてしまうとサスペンドの情報が消えてしまいますので、やらないように注意しましょう。
◆リジューム 電源オフ状態から復帰させます。 方法は簡単で、ワンダースワンカラーの電源を入れるだけです。MEGのランチャ画面が飛ばされて、Y4を押した時の状態からプログラムが再開されます。 スクロールの位置がきちんと復元されていればリジューム成功です。 ◆どう生かすか? この、サスペンド/リジューム機能はプログラム内に… procIL->_yield(); …この1行を追加するだけで、対応させることができます。これで簡単に、プログラムの中断が行えるようになりますので、ワンダーウィッチの使い勝手が向上するのではないでしょうか(電池の節約になります)。ただ、サスペンド後に誤ってリブートするとデータが消えてしまいますので、重要なデータをリジュームするという使い方は避けた方がよさそうです。 WWGP2002用の応募作品にもResumeILを生かしてみてはいかがでしょう? ではまた。 本題のResumeILとは関係ないことですが、このサンプルでは全部で1024個のキャラクターを敷き詰めています(32x32個 x2枚)。どうやら、ワンダースワンカラーはスクリーン描画で最大1024個のキャラクターを扱えるようです(ワンダースワンは512個まで)。 512以上のキャラクター番号を使うには、表示データのbit13を1にして、キャラクター番号を1FFh(511)でマスクすればいいようです。 |