ONScripter 開発日誌

Since: Feb. 6, 2002
Last updated: Aug. 26, 2007

2007年

8月26日

すとーむさんからのバグ報告「reset load 命令」の追記を元に、CD audio の振り替え演奏で OGG ファイルを使用する際に、ループ演奏ができなくなったバグ(20070823 で発生)を修正しました。

すとーむさんからのバグ報告「スクリーンショット」を元に、PDA を定義してコンパイルし、かつ --disable-rescale を指定して ONScripter を実行した場合に、解像度が変換されずにスクリーンショットの画像ファイルが保存されるバグを修正しました。

lsp2, lsph2, csp2, msp2, amsp2, allsp2resume, allsp2hide 命令を実装しました。

20070826a

拡張スプライトの表示順が間違っていたバグを修正しました。

8月23日

すとーむさんからのバグ報告「reset load 命令」を元に、systemcall reset, systemcall load, reset, definereset, loadgame, definereset 命令の際に、dwave で再生中の音楽が停止しないバグを修正しました。以前のバージョンの本家では停止しないようになっていたはずで、ONScripter でもわざとそうしていたのですが、いつのまにか本家では停止するようになったようです。

20070822 で、textgosub 使用中に1ページ表示(o キー)が機能しなくなっていたため、修正しました。

し~くるさんのパッチを取り入れ、streaming OGG と MP3 のループ再生において、繰り返しの度にファイルを読み込むのではなく、メモリ中のデータを再利用するようにしました。

8月22日

tmkkさんからのバグ報告「textgosubを使用している時のスクリプト解釈誤り」を参考に、textgosub が指定されているときに、表示文を正しく解釈されないことがあるバグを修正しました。textgosub のラベルに飛ぶ際には、clickstr_state を設定しないようにしましたが、副作用があるかしれません。

sa_chi_ho さんからのバグ報告「『drawbg2』の不具合?」を元に、AnimationInfo::blendOnSurface2() において、アフィン変換行列の逆行列を整数演算で求める際にオーバーフローを起こして正しく計算できない場合があるバグを修正しました。精度を若干犠牲にしています。

return 命令で、スクリプトの書き方によっては機能しないことがあるバグを修正しました。

8月21日

3月に開発マシンのHDDが飛んでしまい、それ以来忙しいこともあって ONScripter から遠ざかっていたのですが、色々パッチも溜まっているようですので久々に更新しました。

まず、zaurus 用の開発環境を作り直しました。面倒かなと思っていたのですが、SDL on Zaurus (SL-5500, SL-A300, SL-C700) 開発環境 が我ながら非常にまとまっており、作業はかなり楽でした。ついでにライブラリのマイナーバージョンアップデート+一部パッチの作り直し+SDL_image の PNG への対応などを行いました。libqte-2.3.2 に static link されている PNG library を SDL_image から使う方法が分からず、結局 libz.so と libpng12.so を onscripter-lib に含めてしまいました。

tmkkさんからのパッチを参考に、dwavestop と chvol 命令において、54以上のチャンネル番号が指定されたときに落ちることがあるバグを修正しました。

tmkkさんからのパッチを取り入れ、MacOSX 環境において、CoreFoundation(iconv) で変換できない ShiftJIS 文字列のファイル名を指定したときに落ちる問題を修正しました。

rerofumiさんのパッチを取り入れ、Playstation3 のパッドに対応しました。ただし、当方では動作未確認です。

haeleth さんのパッチを取り入れ、メジャーバージョンが1の古い形式のセーブファイルを読み込む際に、縦書きモードでテキストバッファの文字数の計算が間違っていたバグを修正しました。

haeleth さんのパッチを取り入れ、getparam コマンドにおいて、呼び出し元の文字変数の変数番号を取得する s% 表記を正しく解釈できないバグを修正しました。単純ミスで f% を想定していました。

haeleth さんのパッチを取り入れ、--help の出力のスペルミスを修正しました。

スクリプト最上段の ;value コマンドで、;value と数字の間に空白がある場合にコマンドが無視される問題を解決しました。

20070821a

アーカイブのインデックス作成の際に、1ファイルあたり 272 bytes 使用していたのですが、アーカイブの中のファイル数が多いとメモリ使用量がばかにならないようです。ファイル名に固定で 256 bytes 割り当てていたことが主要因だったので、インデックスを2回スキャンして、1回目でファイル名に必要な総メモリ量を計算し、メモリをまとめて確保した後に、2回目でファイル名を格納する方式に変更しました。搭載メモリ量の少ない Zaurus や PSPでは、ゲームによっては大きな効果があるかもしれません。

2月6日

すとーむさんからのバグ報告「for 文のバグ」を元に、for %0=1 to 0 など本来ループの中を1回も実行しない場合でも、必ず1回はループの中を実行していたバグを修正しました。

2月5日

当WEBページを開設してから早5年が過ぎました。当初は短期間の現実逃避プロジェクトだったのですが、おかげさまで予想外に色々な環境で使っていただき、ありがたいことに今でも多くの方に使用していただいております。最近ではあまりONScripterに時間を割くことができず、特に本家の新コマンドに追従できていませんが、ぼちぼち続けて行こうとは思っています。

すとーむさんからのパッチ「for PSP のパッチ」ですが、こちらで手を入れた部分にまだ単純な誤りがあり、修正しました。この部分については、当方ではコンパイルしてチェックすることが難しいため、気をつけてはいるのですがたまにこういったミスをしてしまいます。ご容赦ください。

すとーむさんからのご要望「透過PNG」への対応として、20070203ではタグの透過形式を c (コピー)としたのですが、その後すとーむさんよりnscrpng.spiとの互換性の問題もあり透過形式を a(アルファブレンド)にしてほしいとのご要望があったため、そのように変更しました。透過形式を a にすると、透過PNGのようにアルファチャンネルを持っている場合にはそれを使い、持っていない場合には画像の右半分をアルファ値として使用します。たしかにこちらの方が分かりやすい気がします。し~くるさんの元々のパッチも実はそうなっていました。

2月3日

すとーむさんからのパッチ「for PSP のパッチ」に手を入れた上で反映させ 20070202 をリリースしましたが、こちらで手を入れた部分に間違いがありました。申し訳ありません。すとーむさんからのご指摘を元に、その個所はいただいた元々のパッチをほぼそのまま取り入れさせていただきました。

すとーむさんからのご要望「透過PNG」を元に、以前し~くるさんが作成された透過PNGパッチを参考にして、フルカラーの透過PNGに対応しました。ただし、パレットカラーのPNGの透過色には未対応です。また、タグの透過形式は c(コピー)を指定してください。a(アルファブレンド)は画像の右半分に白黒でアルファ値を指定することになっているので、透過PNGの場合でもアルファチャンネルを無視して右半分の画像をアルファ値に使用します。

2月2日

すとーむさんからのバグ報告「命令文のバグ報告2」を参考に、ラベルを正常に読み込めないバグを修正しました。内部的には、ラベルを ScriptHandler::readStr() で読むように変更しました。

すとーむさんからのバグ報告「命令文のバグ報告2」を参考に、print コマンドでマスク画像を指定する場合に、2回目以降にマスク画像が反映されないバグを修正しました。

すとーむさんからのパッチ「for PSP のパッチ」を参考に、PSP でスリープモードから復帰するときにテキストが消えてしまうバグを修正しました。その他にも HOME ボタンでゲームを終了するときに必要な関数が足りないバグを修正しました。ただし、当方では未確認です。

hiyuhさんからのパッチ「mixing size_t and ogg_int64_t」を取り入れ、64bit Linux 環境でコンパイル刷る際に warning が出る問題に対処しました。