« 2009年9月 | トップページ | 2009年11月 »

2009年10月27日 (火)

あやめさんと一緒 for NetWalker

ONScripterが気持ちよく(?)動くようになったので、記念移植、と言うわけでもないのですが・・・。

「AYAME_NW.lzh」をダウンロード

LiLiTH Mistの傑作、「AYAME ~人形婬戯~」のコンバーターの修正版です(Zaurus用にも使えます)。基本的な移植方法は、過去記事の通りです。が、変更点が少々。

・BGMはmp3ではなく、ogg形式に変換すること。
・だめコンで変換するときに、各ガンマ値を1に、上限を255にしておくこと。
・コンバータを起動すると、解像度選択の画面が出るので、「800x600(オリジナルサイズ)用に作成」を選ぶこと。

あと、作成される「test_0.txt」のサイズが三分の二程度になっていますが、これは不要なラベルの削除をするようにしたせいですので、ご心配なく(多分・・・)。ついでに、気がついた変換ミスなども修正してあります。

少々変更したので、バグなどありましたらお知らせください。

P.S.
 できれば、青龍君の方も、今日中にはアップしたいと思ってます。

| | コメント (0) | トラックバック (0)

2009年10月26日 (月)

うーん・・・

「SDLがver.1.3からOpenGL ESに対応する」、というネタを見つけたので、NetWalkerでも速くなるかも?と思って、ビルドしてみた。

SVNで落とした最新版だとファイルが完全には揃ってなかった。で、めんどくさいので、公式ページにアップされているアーカイブをダウンロードして、./configure & make してみると、あっさりビルドに成功。

というわけで、一旦 make clean して、Makefile に最適化用の変更を加えて再度ビルド。で、sudo make install であっさりインストールできた。

んで使ってみると、確かに微妙に軽くなって、速くなってはいるのだが、ほとんど変化はない。やはり、きちんとOpenGL ESを使うようにしなければいけないのだろうと思いつつ、SDLのテストプログラムを動かしてみようと./configureすると・・・、ありゃ?

何と、OpenGLは認識されているが、OpenGL ESは認識されない?何でやねん?

というわけで、ヘッダファイルを探してみたら、OpenGL ES用のヘッダはNetWalkerには入っておりませんでした・・・orz。

せっかく、プロセッサが対応しているんだから、必要なファイルくらい用意してくれればいいのに・・・、残念。まあ、SDL1.3が問題なく動作しているみたいだから、いいとしましょうか。

| | コメント (0) | トラックバック (0)

2009年10月18日 (日)

さらに高速化&最新版へ

例によってひっそりと・・・。あくまでもNetWalker専用です。

「onscripter_20091011-1-0ubuntu1_armel.deb」をダウンロード

○変更点は

・エフェクトの向きが反対になっていたバグの修正。
・αブレンド処理のさらなる見直し。画面表示を前バージョンよりも約10%高速化。
・本家のソースの最新版までの変更をマージ。

といったところです。

○インストール方法
 デスクトップとか、どこか適当な所に置いて、ダブルクリックするだけ・・・。
 後は、画面の指示に従いましょう。

以下、雑談。

前回の高速化で、ループ関係をいじくったらエフェクトの向きがおかしくなってしまっていました。というわけで、一部を元に戻したので、前回よりほんの少し遅くなってしまいました。

で終わってしまうのも面白くないのでので、インラインアセンブラで書き直してみました。が、苦労の割に誤差程度の高速化しか得られなかったので、基本に戻って計算量を減らす方向で、いろいろな部分のαブレンド処理を見直してみました。

結果として、立ち絵の移動で約10%の高速化を達成できました。一応、ひぐらしのサークルロゴが、「もうちょっとで追いつく」ぐらいです。また、文字表示の部分に関してもαブレンド処理が高速化してますので、スキップも(計測はしてませんが)ある程度速くなっているはずです。
プロファイラが使えれば、もう少し能率良く作業できるんですが・・・。残念ながら、gprofがうまく動いてくれません・・・(;o;)。

んでもって、とりあえずシステムに影響とかもなさそうなので、インストール方法を紹介。

まあ、興味があったら使ってみてください。ご意見・ご感想、バグレポートなどありましたら、ご遠慮なくどうぞ。

| | コメント (0) | トラックバック (1)

2009年10月 4日 (日)

ちょっとだけ高速化

えっと、例によってひっそりと公開(^^;。あくまでもNetWalker専用です。

「onscripter_20090822-5-1-0ubuntu1_armel.deb」をダウンロード

※エフェクトの方向が反対になってる、というバグがあったので公開停止

変更点は

・αブレンド処理を高速化。各種エフェクトがかなりなめらかになりました。
・最適化オプションをつけてビルドしてみました。

ということです。で、注意事項に追加。

・「mpegplay」命令が有効ということは、libmadを使っていないということです。というわけで、MP3の処理は重くなっていますので、ogg形式を利用する方がお得かも。
・スキップ状態やオートモードのまま「mpegplay」命令が実行されると、かなりの高確率でONSが落ちます。ソースに手を入れてもいいんですが、互換性のこともあるので、「mpegplay」命令の前には「skipoff」を記述することをお勧めします。
・「自動起動するアプリ」の「アップデート通知」は、必要がなければオフにしておいた方がいいです。スキップしてるときに急に重くなったりしますので。

注意事項終わり。以下、雑談。

NetWalkerでONSを動かすと、なかなか凄いんですね、これが。いや、PDA用に圧縮かけたりしなくても、パソコン用のアーカイブがそのまま使えます。ひぐらしのデータをそのままコピー&起動してみて、サークルロゴがあっさりと表示されてしまったのには正直驚きました。

でも、やっぱり重い。サークルロゴもさすがに画像と音声の同期は取れません、画像の方が遅れます。それに、画面サイズがでかい分だけ、各種エフェクトも少々つらくなっています。というわけで、高速化に取り組んでみようと思ったわけです。

んでもって、ONSとSDLのソースを見てみたんです。そしたら、ONSの大部分の画面処理はSDLに依存しているので、SDLの方に手を入れなきゃいけないことが分かりましたが、そっちは最低でもインラインアセンブラが必要そうなので、現時点では断念。何せ、ARMのアセンブリ言語は全くいじったことがないので・・・。

で、ONSが内部で処理しているαブレンド処理がC++でも十分に最適化の余地があったので、定番ですが、除算の排除やループ回数&演算回数の減少、といった手法で最適化してみました。実際の効果はというと、前バージョンでは瞬間表示になってしまっていた、200ミリ秒でのマスク付きのフェードアウト&フェードインがきちんと表示されるようになりました。見た目ではっきり分かるくらいには高速化されたので、個人的には満足(^^)。

【おまけ】

意味があるかどうかは正直不明ですが、SMPEGのソースを見たら、やっぱり最適化オプションで使われていないものがあったので、あれこれつけてビルドしてみました。もしかしたら、公式のものより少々軽くなっているかもしれません。興味がある人のためにおいておきます。これも当然ですが、あくまでもNetWalker専用です。

「libsmpeg0_0.4.5+cvs20030824-2.2_armel.deb」をダウンロード

| | コメント (0) | トラックバック (0)

« 2009年9月 | トップページ | 2009年11月 »