ONScripter 開発日誌

Since: Feb. 6, 2002
Last updated: Dec. 21, 2002

2002年10月~12月

12月21日

Zaurus でスクリーンセーバから復帰した時に、画面を再描画するようにしました(event loop で SDL_ACTIVEEVENT を扱うように)。

System menu(Menu,Save,Load,yes/no)で、無駄に全画面描画していた部分を改善しました。

これまでは、.htaccessに

AddDefaultCharset EUC-JP
AddType 'text/html; charset=EUC-JP' html

と書いていましたが、これを

AddDefaultCharset EUC-JP

だけにしたところ、広告3段+内容ループが解消されました。

12月18日

misty_rc さんからのバグ報告を元に、bar コマンドで幅が0の時に落ちるバグを修正しました。

12月17日

松井さんより SL-B500 での動作報告をいただきました。

数日前(?)から wind.prohosting.com の調子が悪いようです。広告3段+内容ループになっています。文字数を減らせばループにならないようですが、そういうわけにも。しばらく待てば直るのでしょうか……。

12月15日

SL-C700に対応しました。通常のアーカイブによるVGA表示、および圧縮されたアーカイブによるQVGA表示に対応しています。ただし、SL-C700だと現状不安定で、頻繁に入力を受け付けなくなります。原因を調査中です。

SL-C700 のVGA表示は非常に綺麗です。ただし、アーカイブサイズが圧縮しない場合と比べて4倍になるため、最近の大容量ゲームを遊ぶ場合はアーカイブを圧縮して 320x240 で表示するのが現実的です。って、だったら SL-B500 でいいじゃん。

20021215a

デバッグ用の printf を取り忘れていたのを削除しました。

11月21日

sarconv, nsaconv で画像の大きさを変更するのに浮動小数点演算を行っていましたが、Zaurus で変換速度を上げるために整数演算で行うようにしました。ONScripter 内部では元々整数演算で画像の大きさを変換していましたが、sarconv, nsaconv は開発当初は Zaurus で実行することを想定していなかったため、精度を出すために浮動小数点演算で計算していました。

Zaurus 上での実行速度が当社比10倍以上になりました。入出力ファイル共に nfs マウントした場所にあります。こんなに違うとは……。
某 sar ファイル: 旧 sarconv 2時間40分46秒 新 sarconv 9分18秒
某 nsa ファイル: 旧 nsaconv -e 4時間 6分21秒 新 nsaconv -e 18分56秒

ちなみに、以前最初に Zaurus 上で sarconv を試そうとしたときには、あまりの遅さに途中でやめてしまいました。

11月13日

神木さんのはうまく表示されますが、こちらのは表示されません。試行錯誤した結果、原因が分かりました。SL-5500 (SL-A300 もたぶん同様)に含まれている libqte.so に freetype library が static link されているため、dynamic link 時に onscripter-lib の libfreetype.so と libqte.so のどちらが先に見つかるかによって使用される関数が異なることが原因でした。私のパッケージでは、リンク時に -lqte の後に -lfreetype があったため、結果的に libqte.so のものが使われていました。神木さんのは逆になっていたのだと思います。対処したものをあげておきました。

さらに、なぜか -lSDL を -lSDL_image の前に持ってこないと、十字キーの上下が効かなくなります。また、なぜか libSDL_image に libSDL が static link されており、make しなおしたところ解消されました(謎)。次回の onscripter-lib のアップデート時に修正したものをあげます。

VGA Zaurus(SL-C700)に対応するため、PDA と PDA_VGA 定数を指定した場合は、最初に 640x480 で画面を初期化し、失敗したら 320x240 で確保しにいくようにしました。ただし、これでうまく行くかどうかは試してみないと分かりません。Makefile.ARMLinux のデフォルトでは両方を指定します。

PDA で半角文字を表示するときに、偶数列目の文字が正常に表示されないバグを修正しました。前から気になってはいましたが、上記の修正を PC 上で試していてついでに修正しました。

また、影付き文字の影が右側に出ていたので、右下に出るように変更しました。これで文字が見やすくなったはずです。

11月12日

SDL と ONScripter (神木さん)において、主に SL-A300 で音切れを起こす点に関して、kernel と SDL の関係を hack された結果が掲載されています。修正した ipk も公開されており、これを早速試された文市さんから、「別のソフトみたい」というコメントをいただいております。SL-A300 は持っていないので分かりませんが、そんなに違うんですね。

というわけで、library の version up も兼ねて、神木さんの patch を当てたパッケージを公開しました。

また、Zaurus で十字キーの上下で選択肢やボタンの移動ができるようにもしました。これはおそらく SDL のバグで、パッチをあてています。onscripter-lib_1.0.3_arm.ipk を入れてください。

なお、SDL_main() ですが、SDL.h で SDL_main.h を include しているので、onscripter.cpp から呼んでいるものはデフォルトで C linkage になるはずです。少なくとも当方では C linkage になります。

Zaurus 用の timidity-patch_1.0.1-sd_arm.ipk を公開しました。コマンドラインからの SD カードへのインストールにのみ対応しています。

4時間50分…、微妙です。

11月9日

今朝、lycos から返事が来ていました。内容を要約すると、「Lycos では、潜在的な問題を含むページを除くために、いくつもの方法を使ってページのチェックをしていますが、あなたのページはこれに引っ掛かって削除されてしまったようです。アカウントは復旧します、迷惑をかけてしまっていたらごめんなさい。」というものでした。

あまり期待していなかっただけに、すばやく対応していただき少しびっくりしました。言ってみるものですね。

おまけで、http://www.angelfire.com/に作ったページを不条理に消されてしまったけれど、英語で文句を言うのは敷居が高いという方のために、今回出したメール返事を置いておきます。最初は support department に出したのですが、abuse department に言ってくれとたらい回しにされ、abuse department に直接メールを送る方法が見当たらなかったので、abuse を報告する form に上の苦情を書いて送りました。

また何かの拍子に削除されかねないですが、http://www.angelfire.com/space/ogapee/ はミラーサイトとします。

11月8日

なぜか、http://www.angelfire.com/space/ogapee/は削除されてしまいました。.ipk を置いたのがいけなかったのでしょうか。文句のメールを出しましたが、メールが多いから処理されないかもしれないという返事が来ました。そもそも、削除されたことに関するサポートが無いようです。

度々の変更で申し訳ありませんが、http://wind.prohosting.com/ogapee/ の調子が良くなったので、こちらをメインページに戻します。ミラーページはまた探します。

11月4日

lookbackbutton の非選択状態画像が、回想時にカーソルのフォーカスを外しても表示されないバグを修正しました。いつの間にかエンバグしていました。

画面効果の 16(Mosaic out), 17(Mosaic in) を実装しました。これで、全ての画面効果が実装されました。

11月2日

どうやら、http://wind.prohosting.com/ogapee/ の .htaccess が有効になったようです。

AddDefaultCharset EUC-JP

AddType 'text/html;charset=EUC-JP' html

を設定すれば、charset が EUC-JP になります。それ以外では、HTTP header で charset が ISO-8859-1 に指定されるので、meta tag では効果がないようです。

ただし、今後は http://www.angelfire.com/space/ogapee/ をメインサイトとし、http://wind.prohosting.com/ogapee/ はミラーサイトとします。なお、http://ogapee.t35.com/ は廃止します。

10月31日

Web page を http://www.angelfire.com/space/ogapee/ に移転しました。http://wind.prohosting.com/ogapee/ の方は日本語表示復旧の目処が立たず、http://ogapee.t35.com/ の方はここしばらく死亡中・遅い・サブディレクトリに ipk ファイルをアップロードできないなど問題が多かったので、さしあたって、http://www.angelfire.com/space/ogapee/ をメインにします。http://wind.prohosting.com/ogapee/ は、しばらく様子をみて、復旧しないようであれば廃止します。

10月29日

ヤマケンさんに誘っていただき、zaurus-ja でザウルス用のパッケージを公開しました。

αβεさんの patch を取り入れ、msp の第4引数が省略されている場合の処理を修正しました。

αβεさんの patch を取り入れ、"¥" が表示されないバグを修正しました。

αβεさんの patch を取り入れ、caption の SJIS → EUC 変換を修正しました。

v, dv を実装しました。

existspbtn を spbtn として実装しました。何が違うのでしょうか? lsp で読まれているのかチェックをして、読まれているときだけボタン化するのでしょうか?

zaurus 用のパッケージに sarconv と nsaconv を同梱しました。

wind.prohosting.com はつい先日サーバが移転し、移転先の apache では meta tag で charset を EUC-JP に設定しても反映されず charset を ISO-8859-1 に強制されるため、たいていのブラウザだと日本語表示が文字化けしてしまいます。そのうち直るのでしょうか。t35.com も移転中で死亡しているし……、困ったものです。

10月20日

mpegplay を実装しました。ただし、MPEG ファイルの映像及び音楽の再生に SMPEG を利用しているため、音楽演奏に MAD を使用している Zaurus では未サポートです(make の際に -DMP3_MAD を指定すると mpegplay の実装がスキップされます)。ちなみに Zaurus(SL-5500) で SMPEG を使用すると、音声を切ったとしても映像のコマ落ちが激しく、実用的ではありません。使いやすく CPU にチューンされた別の MPEG デコーダがあればよいのですが。

20021020a

yamagu さんの patch を取り入れ、素の libjpeg-6b を使う場合に、リンク時に libjpeg-6b の関数をリンクできない問題を修正しました。

10月18日

αβεさんの patch を取り入れ、usewheel の wheel 対応しました(SDL-1.2.5 以降でのみ有効)。

αβεさんの patch を取り入れ、getpageup を実装しました。

αβεさんの patch を取り入れ、dwaveload, dwaveplay, dwaveplayloop を実装しました。

αβεさんの patch を取り入れ、命令処理の返り値が RET_SKIP_LINE の時、 次行がテキスト文字列として解釈されてしまう問題に対処しました。ただしあまり検証していません。

αβεさんの patch を取り入れ、select待ち時にスプライトアニメーションが動くように実装しました。正しい対応とするにはもう一寸修正が必要だそうですが、どのあたりに不具合があるのでしょう?

チャンネル数の上限を 50 にすることに関して、2次修正をしました。

nsaconv, nsadec で NSA のバージョン2形式に対応しました。ただし、バージョン1と2の自動判定はなく、バージョン2の場合はコマンドラインオプション -ns2 で指定してください。バージョンが分からない場合は、-ns2 をつけずに実行し、エラーが出たり変換後のアーカイブでうまくゲームが動かない場合は -ns2 を付けてください。

10月8日

バイナリパッケージを提供して下さる方を募集中です。特に、MacOS X 用や rpm 等。メールを下さい。

αβεさんの patch を参考に、linepage を実装しました。

αβεさんの patch を参考に、movl を再実装しました。typo で機能していませんでした。

αβεさんの patch を参考に、mp3stop を playstop に割り付けました。ただし、mp3stop の実装がこれで正しいのかどうか未検証です。

αβεさんの patch を参考に、movemousecursor を実装しました。ただし未検証です。

αβεさんの patch を参考に、"mov$0", "mov%0", "mov?0[0]" 等、命令後スペースを空けずに記述されている '$' '%' '?'を解釈するよう修正しました。

αβεさんの patch を参考に、ns2 を実装しました。ただし ns2 を使用するゲームを持っていないので未検証です。αβεさんの実装では、nsa との違いは先頭に意図不明の 1byte が追加されていることくらいのようですが、この 1byte には具体的にはどんな値が入っているのでしょうか。これで nsa と ns2 が区別できれば、nsaconv, nsadec も対応できるのですが。

αβεさんの patch を取り入れ、SDL_image が正しく判定しない JPG 画像 ("JFIF" ラベルが存在しないもの)を強制的に読み込むように対処しました。

αβεさんの patch を参考に、effect の 15 と 18 番の命令で指定される画像が ":形式;ファイル名" となっている場合に対応しました。

QWR06270 さんのバグ報告を元に、wave ファイルの同時再生チャンネル数をデフォルトの 8 から 50 に増加しました。

Zaurus で、22.05KHz, 44.1KHz のいずれサンプリングレートの MP3 も再生できるように修正しました。ただし、他のサンプリングレートは対応していません。