~SONYへの挑戦状~PSP関連ブログ?いいえ、ただのゆとりブログですONS解の補足とか持病が悪化したため、説明が遅くなってしまって申し訳ない。付属のreadmeを読めば大体のことがわかるが、詳しい使い方を書いてなかったので少し補足。戻しました\;====================getmemはデバッグ用ですね。右クリックで文字列スプライトとして表示するようにすれば、プレイヤーが空きを確認したりする機能を付けたりもできます。cpuはスプライトを動かしたり、連番画像の疑似動画を表示する前にクロックアップしたりするのに使えます。getcpuはスクリプトでクロック値を変える前に取得しておいて、各種動作が終わった後に元の数値に戻すために使います。222を実行するのが主流でしたが、ons.iniで設定した値に戻すことができます。%0とするのが良いと思います。oggファイルのストリーミング再生dwave系(dwave、dwaveloop、dwaveload、dwaveplay、dwaveplayloop)命令でoggファイルを再生した場合、ストリーミング再生するようになってます。今までは読み込み時に全部デコードしていたので、BGMレベルの効果音などは再生できませんでしたがストリーミングにより、ほぼoggファイルサイズ分のメモリで再生できるようになります。随時デコードするため再生までのラグも一気に減るので体感速度も速くなります。確認はしてませんがデコード時にコンバートするようにしたので、44100Hz以外のoggを再生しても倍速になったり低速になったりしないと思います。すべての命令で何度かテストしましたがメモリリークなどは無いと思います。本家では2chにすると省メモリになりますが、1chのままでも良いです。2chだとコンバートの必要がありませんが、ファイルサイズやデコード量が増えて負荷が多くなるかも。1chはコンバートが必要だけど多分2chより軽い。DEBUGMODEons.iniにてONにすると左上に空きRAMとCPUクロック値が表示されます。DEBUGMODE=ON使わない時は丸ごと消すかDEBUGMODE=OFFとかにしてください。デバッグモードにしては物足りない^^;WIDEMODE最近増えてきた16:9サイズのゲーム用に追加したモード。SCREENSIZE=FULLで疑似ワイドにしてましたが、これだと縦に引き伸ばした画像を使う必要があり、使用メモリもファイルサイズも肥大化します。内部での画面サイズも大きく、ソフトウェアサーフェイスなのでパフォーマンスも低く、画像が縦に縮小されるので画質が落ちてしまいます。勿体無いですね...ということで16:9サイズの画面モードを追加しました。ons.iniにWIDEMODE=ONを追加すれば有効になります。例)RESOLUTION=480SCREENSIZE=ORIGINALWIDEMODE=ON↑だと480x270サイズで画面を初期化します。SCREENSIZEをORIGINALにするだけです。FULLでも動きますが、パフォーマンスが低下するかも。RESOLUTION=320にすれば320x180で初期化できると思います。この状態でSCREENSIZE=FULLにすれば画面いっぱいに拡大表示できます。SCREENSIZE=NORMALみたいなことができます。画像を縦に引き伸ばす必要がないので、ファイルサイズも小さくなりますし、(oggのストリーミング効果も含めて)使用メモリも少なくなるのでPSP-1000でも16:9のゲームを動かす余裕があるかもしれません。※CFW、32bpp専用命令です。GAME4XXフォルダとかに入れて、SCREENBPP=32で使用してください。bltjpgはjpeg画像を画面に高速に描画する命令です。ONSの設定にかかわらず、PSPの画面の左上を基準にした位置を設定します。360x270なら(60,1)にすれば画面の中心に表示されます。VRAMに直接表示するので、bltjpgを使った後は非常に不安定です。ONSの描画領域外に表示した場合はそのまま残ってしまいます。使用後はbltclsコマンドを使って画面をクリアしてください。black,1主に連番画像の疑似動画で効果を発揮します。btndef+blt命令の部分をbltjpgに、ofscpyをbltclsに置き換えれば良いと思います。PSP解≫コメントありがとうございます。No.644励みになります。トラックバックさせていただきました。http://nagasawaotu.blog35.fc2.com/まだまだ未熟なブログですがよろしくお願いします。七次元さん応援しています。]No.695自分の環境では緑色ではなく、端の色を横に引き伸ばした感じになりました。画面をキャプって調べるとよくわかりますが、幅が360を超えて表示されてます。元画像に問題があるのではなく、デコーダー側の仕様です。見ると、高さが270なので上下に1ドットの黒いラインが入るはずなのに、下の部分には色が付いてるかと思います。当方では480x270でしかテストしてなかったので、気づいていませんでした^^;横幅を16の倍数にすることで、防ぐことが出来ます。高さも272にしておいた方が無難ですね。内部では高さが足りないのでエラー状態になってるかも^^;上下に1ピクセル分の黒帯を入れ、右側に8ピクセル分の黒帯を入れて、368x272で出力し、(60,0)を左上として描画したところ、綺麗に表示されました。jpgの描画後にソフト側で周りを黒くすれば良いのですが、CPUを使って周りを黒くするのは非効率ですし、別にメモリを確保して展開したものをコピーするのもコストがかかって、描画速度の低下に繋がります。SDLとGUを同時に使う方法がわかればクリッピングして転送できるのですが...どっちにしてもjpgを連続で画面に表示する場合は、GUを使うよりVRAMに直接デコードした方が早いので、画像側で対応してください。あと、コメントを修正できるように、パスワードを設定しておいた方が良いかもしれません。]No.697使用してるPSPのモデル(基盤)によって挙動が変わってくるのかもしれません。当方はPSP-1000の初期基盤なんですが、緑色にはなりませんね...370は8の倍数ですらないのになぜ上手くいくのだろうか...16の倍数で駄目なら32の倍数にすれば確実かと思いますが、再現できないのでよくわかりません。黒帯についてですが、当方ではAviUtlと黒ベタ追加プラグインを利用しています。AviUtlでプラグインを使って縮小したり、黒ベタを追加したプロジェクトをファイルに保存して、TMPGEncに読み込ませて連番JPGを出力しました。VFPluginの機能により、TMPGEncでAviUtlのプロジェクトファイルを読み込むことが可能です。自分で公開しておいてなんですが、私のビルドしたONSは公式なものではないので、依存しすぎると注意が必要です。WIDEMODE機能なんて、かなり公式からぶっ飛んでますので^^;一応このまま公開は続けるつもりですが、本家とずれてるのでコンバータ製作者、使用者共に管理が困難です。緑色の縦線が右側に表示される:::::::::::::::::::::::::::::::::::::このように完璧に1000と2000では違いました。]No.699やはり基盤によって変わりましたか。コストの削減か、機能の最適化か、小さくなって機能が増えた分の物理的なチップの縮小か何かで違うチップを使ってるのかと思います。本当はGUで転送して使うので、問題は無いのだと思いますが。]No.775連番画像、音声ファイルも用意したのですが、ムービーとどう置き換えれば良いのか解りません。]No.776基本的にムービーを連番jpg化できるなら可能です。相互リンクである、ひとつもりさんのブログ「PSPDEONS」にて、連番jpgでの動画スクリプトがあるので、これを改変すれば良いです。上のコメントにあるような仕様があるので、生成するjpgのサイズと、描画位置に気をつけてください。こちらでもサンプルスクリプトを公開した方が良いかもしれませんね。]No.777七次元さん返信ありがとうございますぜひ、サンプルをお願いします。ONS解の機能が非常に魅力的で、使いこなしてみたいのですが、あまり知識がないもので・・・ひとつもりさんのブログを参考に自分でも挑戦してみます。音声ファイルはどうすれば・・・?とか、色々ありまして・・・ずうずうしくて申し訳ないです。]No.778上の人と同じでうみねこなんですが、どう置き換えるのか解からないです。]No.779>>inoさんひとつもりさんのスクリプトを説明通りに置き換えるだけなので、大したものでは無いです。サウンドファイルはBGMとして再生するので、動画から吸い出してoggなりに変換すれば良いです。>>1000さんサブルーチンはgameと*startの間にでもコピペして、サブルーチンの定義(defsub)をdefine節に書き、ムービー命令を置き換えれば良いです。ここらへんはNスクの話になってくるので、詳しくはNスクのリファレンスを読んでください。スクリプトの書き換えに関しては記事の最後の方に書いてあります。]遅れましたNo.957七次元さんアドバイスをありがとうございます遅れましたが、記事を修正しました。PSP解を試してみた。PSP解(以後ONS解)が公開されました。対応した連番動画作成法を記事にしました。夢を追い求める学生プログラミング初心者(笑)愛用言語はHSP(スイーツ)プログラマーを目指すものの「C言語?読むだけ^^」「C++?知らんがな。クラスって何?おいしいの?」というゆとりっぷり。Delphi入れたりVC++2008入れたり迷走中。夢はコミケで何かやりたい。一般参加すらしたこと無いけど。PSP-1000(CFW)持ち。PSP-4000マダー?よく難波周辺のゲーセンに出没するらしい。STGも格げーも初心者。ろ、ロリコンちゃうわ!!!連絡先:homepage_touroku[a]yahoo.co.jp(メールはほとんど確認してません。掲示板に書き込むのが確実です)関連リンクそふとうぇあこうかいじょ公開したファイルが置いてあります。連絡やら雑談やら適当にどうぞ。PSP解を試してみた。FC2ブログのテンプレート。