Site hosted by Angelfire.com: Build your free website today!

ONScripter 開発日誌

Since: Feb. 6, 2002
Last updated: Jun. 30, 2003

過去の開発日誌

2003年

6月30日

sarconv, nsaconv 時に、縮小された画像の四隅のピクセル値が、縮小前の 四隅の値を保つように修正。透過指定がうまく反映されない場合があったため。

6月29日

αβεさんの patch を取り入れ、date コマンドが返す年数の桁数を修正 (西暦4桁から西暦下2桁に)。

zaurus 版において、右クリックメニューの際に、一瞬メニューが表示され た後すぐに戻ってしまう問題に対処。低速PCにおいても生じていたと思われ ます。

SL-C750 上で、画面とスタイラスの位置関係が180度ずれる・MP3 演奏にお いて音切れが生じるとの不具合報告をいただいたので、ザウルス版のSDLライ ブラリにおいて対処。パッケージ更新。

20030629a

そ〜かむさんからのバグ報告を元に、sarconv, nsaconv を big endian の マシンで実行したときに、short, long の値を正しく書き込んでいなかったバ グを修正。

6月22日

下記の理由から、ONScripter の Zaurus 版を阿川さんの SDL へのパッチ をベースにした SDL 上で動くようにすることにしました(私が以前に公開し ていたライブラリでは正常に動かなくなります)。

  • 日本の Linux Zaurus においては、 阿川さんがパッチを当てて公開されている SDL パッケージが SDL として ほぼ標準となっており、これと互換性のない別の SDL パッケージを使うとユー ザが不便。
  • SL-C750, SL-C760 を買う予定がないので、サポートするのがたいへん。
  • 阿川さんのパッチには、私の以前のパッチにおける修正が全て取り入れ られている。

そこで、阿川さんのlibsdl_1.2.5-slzaurus20030622_arm.diff のパッチをもらってこちらで libSDL-1.2.so.0.0.5 を作成して試したのです が、色々問題があるので、別途パッチをあてました。主な改良点は、 (1)SL-5500 への対応、(2)32bit aligned ではない画像転送への対応(一部)、 (3)マウスカーソルを warp させたときに発行されるSDL_PrivateMouseMotion の座標の変更、(4)フレームバッファとアプリケーションが指定する画像の向 きが異なるときのマウス座標設定時のマージンの取り扱いの修正の4点です。

手元の SL-5500(ROM 3.1)(QVGA) と SL-C700(VGA,QVGA) では ONScripter は正常に動いておりますし、他のエミュレータもおそらくそのまま動くと思い ます。ただし、他のエミュレータについては未確認です。詳しくは SDL on Zaurus (SL-5500, SL-A300, SL-C700) 開発環境 のページを参照してください。

ちなみに、この修正に伴い ONScripter 本体に施した修正は、

Makefile.ARMLinux から -DSCREEN_ROTATION を消去
ONScripterLabel.cpp: 236行目に
    mouse_rotation_mode = MOUSE_ROTATION_NONE;
を追加

のみなので、今回はソースは更新しません。

6月16日

影付き文字の描画の際に、二重に flush していたバグを修正。

処理が重くて時間が間に合っていない場合にも、今までは他のイベント (音楽演奏等)を処理するために遅延が必要な命令間に最低 10msec の wait を入れていたのを、直に timerEvent を eventLoop のキューの最後に入れる ことによって遅延を減少させる。イベントを取りこぼすこともない。

スプライトボタン生成時に、ButtonLink に surface を格納せずに、実体 を sprite_info に持たせる。同じボタンの生成を頻繁に行うゲームでは、毎 回生成せずに済むので高速になる。

その他、effect の前・後処理の高速化。

6月14日

exbtn 使用時に、既に解放されたスプライトを描画しようとして落ちる場合があるバグを修正。

アニメーションの進行が1フレームずれていたバグを修正。

文字スプライトボタンの描画の高速化。

その他、冗長に flush していた箇所の最適化。

6月1日20030528〜20030531 を使っている人は要差し換え

ファイル名等の文字列を格納する変数に対する操作関数に関して、 20030528 以降でエンバグしていたので修正。結構重大なバグ。

5月31日

前から気になっていた、windowback 時に text が背後に表示されないバグ を修正。副次的効果で、アニメーションカーソルがテキストと重なっていた場 合に、テキストがクリップされていた(透過表示にならない)バグも修正。

5月28日

alphaBlend 処理中に、確保した領域外に書き込む可能性があるバグを修正。

NULL が設定された文字変数により segmentation fault が引き起こされる ことがあるバグを修正。

5月27日

SDL_ttf で TTF を使う場合、サイズが異なる毎に TTF_OpenFont する必要 がある。この Open された font を一括管理し、文章表示用 font や文字列ス プライト等で共有するように修正。

cell で、有効 cell 数を越えて指定した場合、有効な最大 cell 番号をセッ トするように修正。

SDL_ACTIVEEVENT 発生時の flush で、dirty_rect の情報が消されていた バグを修正。

5月25日

cell で、指定したセル番号が有効であるのかどうかをチェックするようにする。

fileexist, spclclk コマンドを実装。

セーブデータの内部的な取り扱いを修正。セーブデータ数の上限を撤廃。

ボタン選択時のスプライトボタンの表示を高速化。

5月19日

再描画する必要のある箇所のみ frame buffer に書き込む(flush)ようにし、 表示の高速化を図る。また、ofscpy 後の effect における挙動も正常になっ たはずです。描画回りを結構いじったので、とりあえず experimental 版とし て置いておきます。試してくださる方は、以前と挙動が異なる場合にはご報告 下さい。

5月10日

Blackbrd さんからのバグ報告を元に、画像の解像度変更処理において、確 保したメモリ領域が不十分で segmentation fault を起こす場合に対処。

αβεさんの patch を取り入れ、スプライトの透過モード指定が不正な場 合の回避処理を追加。

αβεさんの patch を取り入れ、goto* label や goto * label の表記を 解釈するために readToken を修正。

ONScripterLabel_rmenu.cpp を、ONScripterLabel_rmenu.cpp と ONScripterLabel_file.cpp に分割。

bg コマンドで、画面サイズより背景画像のサイズが小さい場合は、背後を 黒で塗り潰すように修正。

テキスト文中の' 'と'\t'を読み飛ばすように修正。

必要メモリ量を削減するために、background_surface を廃止。

他にも色々いじっていたのですが、時間がかかりそうなので一旦ロールバッ クしてリリース。

4月9日

αβεさんの patch を取り入れ、input コマンドを仮実装。常にデフォル ト値を入れます。

αβεさんの patch を取り入れ、dwaveplay, dwaveplayloop コマンドの バグを修正。

αβεさんの patch を取り入れ、EXTERNAL_MUSIC_PLAYER が define され ている時、mp3*, bgm* コマンドを環境変数 PLAYER_CMD で指定された外部プ ログラムを使用して再生するようにする。(その場合、ボリューム設定は無効。) PLAYER_CMD が設定されていない場合は、従来通りの動作(※ 実験的実装です。. wma ファイルを BGM に使っているものがあったので)。

αβεさんの patch を取り入れ、menusetwindow コマンドで背景色が省略 されている場合(ただし、","(コンマ)はある)の対応を修正。元々いただい ていた patch が正しいものでした。

αβεさんの patch を取り入れ、readStr() で "" の stralias を検索し ないように修正。コメントに、(※ 他に上記に対する回避方法があれば、この 修正は入れない方が良いかも知れません。)とありましたが、これは何ででしょ う?直感的にはこの修正で問題ないように思えるのですが。

αβεさんの patch を取り入れ、";mode400",";mode320" に対応。

αβεさんの patch を取り入れ、コマンドの直後に空白無しで"-"や"/"が あった場合に、区切られなかったバグ(例えば、"csp-1"や"skipoff/")を修 正。

αβεさんの patch を参考に、四則演算で演算子の右側に数字がない場合 (コマンドの列の最後が数字+'/'の場合など)は、その演算子を無視するよう に修正。これで、新旧のゲームに対応できると思います。

αβεさんの patch を取り入れ、コマンドを誤って mod 演算子として解 釈してしまう場合がある不具合を修正。

20030409a

αβεさんの patch を取り入れ、sarconv, nsaconv で、width=1 あるい は height=1 の画像を変換しようとすると SEGV が発生することがある問題を 修正。