́・ω・`)年末年始はリアルが色々忙しくてバタバタしてましたが、やっとおちちついてきました(落ち着け年末は暁の護衛FDをやるのに忙しく(ぉ年始は朝から墓参りやら親の実家に行ったりと最近は重箱におせち料理を作る家庭は減っているのでしょうか?我家はそこそこあれな血筋なので(関係あるかわからんが)昔から家で作っているようですが、私はあまり好きじゃないです^^;甘い人参や白い豆などが苦手ですね。豆腐も冷たくなければ良いのだが...さて、とりあえず今年はどうするっかな。鳥和え酢適当に徒然と何か書いておく。始めに、チラシの裏とかでも書いているがONSコンバータの活動は休止する。様子見で再開するかもしれないし、そのままお蔵入りになるかもしれない。ONSの性能だと"スーパー紙芝居劣化移植"になるので最近のゲームだと移植意欲が湧かないのが主な理由。(他にも理由はある)ONSorSDLの動作が軽くなれば良いのだが、SDLはシンプルなAPI群(SDL=シンプルうんたらの略)なのでこれ以上改良されることは無いだろう。(PSPのGUをSDLのような汎用ライブラリにするだけで超鈍足化)ONSを改良するとなるとかなりの手間がかかるので1からPSP用に作った方が楽だろう。俺には作れないけどね^^PSP向けの新たなエンジンが出たらそっちで移植するかもしれない。最近のMajiroエンジンはスクリプトだけでなく、グラフィックも暗号化するようになっていて、ゲームごとにデコードキーテーブルが変わっているのでデコードツールに汎用性が無い。ように見えるが、別にそんなことはない。暗号方法は1KBのデコードキーテーブルの先頭から順に、グラフィックファイルの実データをxorするだけという非常に簡単なもの。このデコードキーテーブルはテキストを元に生成されているので、そのキーワードさえわかれば汎用的にデコードすることができる。(シナリオファイルのデコードキーテーブルも4byteのデータから生成されている)アセンブラとかわからんがデバッガを追ってテーブル生成方法がわかったが、暁(ryのデータを見てみると暗号化されてるのはdata1とfastdata1の一部だけなのでソフト作るのやめた^^この程度ならわざわざソフト作る必要はねぇな。某海月だとキーワード突っ込めばデコードできるし。bmpで出力されるから使ってないけど。全自動でキーワードを取得してデコードキーテーブル生成して復号することが可能ということはわかった。今まで色々とONSについてどうでも良いことを書いてきたが、もうあまり書くこと無いな。某氏もONSを改良するのではなく、新たに互換エンジンを作成しているし。最近移植をして気づいたONSのバグ・define節で指定したselect用seがボタン選択時でも再生される・初期化してもボタンが表示されない(以前言ってたしまいま。OPメニューでのバグ)・pretextgosubでsaveoff状態になってない(textgosubではちゃんとsaveoff状態になってる)・mov以外で配列が使える(バグというか便利?w)・画像タグmでフォルダの区切りに/(スラッシュ)が使えないはずなのに使える(こっちはむしろNSのバグにも見えるw)他にも細かい違いがいくつかありますね。あと、前から言ってたdwave命令でoggをストリーミング再生した場合の比較。環境はPSP-1000(CFW4.01M33-2)、ONSのバージョンは20080121画面サイズは360x270で32bpp、フォントは全部読み込まない。CPUは222MHzで稼動してますので、333MHzにすれば少し読み込みが速くなります。使用した効果音は44100Hz2chのものを使用。(再生工程短縮の条件)使用するONSは「本家のをそのままビルドしたバイナリ」、「すとーむ氏のバイナリ」、「色々改良したバイナリ」の3つ。「そのまま」と「改良」は左上に現在の空きメモリ量(byte)で表示。2行目はONS外の空きなので無視、3行目は現在のCPUクロック値。※空き容量は断片的な空きの合計ではなく、連続して確保できる最大容量なので注意!空き容量を表示するプラグインを作ろうと色々やってみたが、ONS外の空きしか取得できなかったorz俺の睡眠時間を返せw最初に大きなヒープを確保してそこからメモリを使ってるみたいなので、そのプログラムの中で調べる必要があるっぽ。なんかヒープのサイズを調べるAPIがあったけどIDとかわからんし...1つ目のテストの○○秒と書いてあるのは元ファイルの再生時間、○○msはdwaveにかかった時間。この頃のONSはcpu命令が無いので私がビルドしたもの2つのみで検証。(動きのあるところはクロックアップ)ストリーミングの方が若干再生が早くなってるが、RJL(RemoteJoyLite)で随時画面転送してるせいで多少ズレがあるかもしれない。そのままのONSだとRJLで画面に映し出せなかったので改良する必要があったが、最近のRJLは非同期転送ができるようになったのでなんとか映し出せた。(1,875,968)まずは順番に見ていこう。それぞれ、1つ目と2つ目はサウンド用のメモリ確保周りで増減がおかしいのであまり参考にならない。そのままの場合、前に検証したときは使用メモリがPCMの3倍と書いたが、表を見ると2倍程度である。(2つ目はなぜか使用サイズが減っている)しかし、32.9秒のサウンドはメモリ不足で再生できていない。再生前の空き容量は17MB(17,838,060)ほど。32.9秒のPCMサイズは5.5MBなのでこの2倍の11MBなら問題なく再生できるはず。再生できないところから見ると3倍(16.5MB)以上のメモリを喰っていることがわかる。最初に書いたとおり、断片的な空き容量の合計ではなく、連続した空き容量なのでフルに使っても確保できないのでほぼ確実。かかった時間から計算すると、大体668KB/sぐらいかな。次に2chのoggにおいて再生工程を短縮している場合。72秒のサウンドが再生されてることから、倍のメモリを喰っていないことがわかる。(PCMサイズは12.1MBなので2倍だと24.2MBで収まらない)やはり以前予想した通りの方法で再生してるらしい。(そりゃそうだ罠)動画にはメモリが足りないとデコードしないようになっていると書いたが、よく考えれば普通にメモリが確保できないからスルーしてるだけだった^^;あのテロップは忘れてくだしあ><デコード時間はそのままのと大して変わらない。空きメモリを随時表示してるのでその分時間がかかったということで^^;シナリオサイズが最小でnsaも使用せず、何も表示しない状態だと100秒ぐらいのサウンドまで再生できそう。普通はそんな状態は無いので軽いゲームで50秒ぐらいが限界か。続いては今回のメインであるoggファイルをストリーミングするようにしたONSまず、再生にかかる時間の桁が違いますw実質、oggファイルを読み込む時間で済みます。32.9秒と35.7秒を見比べてみるとわかりますが、元のファイルサイズが35.7秒の方が小さいので、読み込み時間も使用メモリも少なくなってます。上に書いたように、1つ目と2つ目の使用メモリは誤差がありますが、3つ目以降はほぼ元のファイルサイズだけ確保しています。SDLの命令で無理やりストリーミングしてるのでBGM命令より負荷がかかると思いますが、BGMレベルのサウンドの再生も可能です。動画だと、文章表示やスライドの部分が少々カクカクしていますが、RemoteJoyLiteを経由しなければ気にならない程度です。再生工程短縮バイナリ用に2chのサウンドを使用してますが、1chだと使用メモリは少なくなり、読み込み時間は早くなります。後半は去年弄ってみたFA体験版での動作確認ですが、大して違いがわからない^^;長いセリフだとストリーミングしないとテンポが悪くなるのだが、短いセリフしかねぇwというか画像読み込みの方が時間かかってるので元々テンポが悪いという話。後はシナリオデータを全部読み込むのを改良すればメモリ不足で落ちることは無いだろう。自分はまだシナリオサイズが10MBを超えるような作品には出会ってないのでこれ以上改良はしない。俺が改良しても本家が改良しないと他の人が使えないので意味ないしwそれにC言語わけわかめ。以前新しい外付けHDDを買おうとしてたという話だが、年末に暁(ryを買いに行った時に日本橋周辺の店を回っていたのだが、珍しく親子連れが居た。いえば巷ではクリスマス(笑)とかいうイベント(笑)が中止になったのも知らずにプレゼントを求める子供が居るんだった。PSP用のメモステを買いに来たらしい。純正のメモステは高いからなぁ...俺はクリスマス効果であまり安くないので帰ることにした。CR-5400を使えば安上がりになるのをちびっ子はまだ知らない。昔はマジコンやらこういう商品は表に出てなかったのでその頃に比べたらこういう物を知ってるちびっ子も増えてきましたが...ただ、amazonでも1000円を切ったPhotoFastが2000円超え、マジコンも一時期は6000円を越える額になってましたね。転売で儲かる店がうらやm(ry転売といえば暁の護衛FDがすごい額になってますねwこの前の記事には「ミマスに急かされたのに別に大したことはなかったぜ」的なこと言ってましたが、予約しておいてよかった...俺が祖父地図に行った時は普通に積んであったのにすぐ無くなったみたいだね。あのときにもう1本買って転売s(ry転売厨は嫌われるのでやりたくないですね^^;話は戻りますが先週にHDDを買いました。待てばもっと安くなると思いますが、1TBの内臓HDDが7800円ぐらいで売ってたので迷った挙句購入することにしました。seagateのSATA、7200rpmの奴なんだが他だともっと安く手に入ったかな?手元にはUSB2IDEケーブルしかないのでSATA用のを買うことに。USB2.0に対応した(本当かわからんが)HDDケースが1500円ぐらいで売ってたので購入。1TBのHDDを裸で使って壊れたらへこむわwというわけで1万円以内で1TBの外付けHDDが出来上がりました。HDDケースには良い思い出が無いのですが、稼動してみるとすごい静か。今まで使ってたMaxtorのHDDがガリガリゴリゴリすごいうるさかったw今はまだ室温が低い季節だからよくわからんが、あまり熱くも無い。容量に困ることは無いだろう。関係の無い話だが、HDDやDVDでの表記容量と実際の容量が違うのはご存知であろう。PCでは1024byte=1KBなのだが、HDDやDVDでは1000byte=1KBで計算されている。1TBは1,000,000,000,000byteとなる。GBで表記すると約931.32GB70GBあれば4GBほどのエロゲが17本(ry持ってるエロゲ集めても70GBいかねえよwwwPSP、PCのメモリが豊富になったので次はPCのRAMを増設したい。今使ってるノートPCは3年ほど前のやつで512MB*2のでゅあるめもりである。当時はこのノートも20万弱したのに今だと10万切ってるしなぁ...それは置いといて、lolifox(ブラウザ)やLive2ch(2ch用専ブラ)で100個以上のタブを開く俺のPCでは常に2GBほどのRAMを喰っている。内臓HDDの容量も少なく、仮想メモリは1.5GB分ほどしかないので非常に不安定である。いうわけでRAMを2GBに増設してみよう。安くなってるので2300円ほどで1GB*2枚手に入った。A-DATAというなんともパチモン臭い名前の会社(そこそこ知られてるけど)のPC2-5300のやつ。PCの裏を開けてメモリを挿してみる。BIOSが「メモリ変わってんぞ、設定変えてやる」とか言ったので華麗にスルーしてOSを起動。したらブルー画面が出てOSトマタ。何か手順を間違えたのかと思い、PSPをネットにつなげて必死に探したが原因がわからない。メモリを1枚づつ挿して使ってみると、どうも片方のメモリの調子がおかしい。DVDドライブを犠牲にすればオプションで付けれたけどwUSBメモリでのブートも可能らしいが、どこに行ったかわからないw調べるとCDブート用のisoがあったので埃を被ったCDを取り出して焼いてみる。iso形式をDVDに焼いたことはあるが、CDに焼いたことが無くて色々調べたのはナイショ(結局いつもCDを焼くときに使うCdManipulatorでそういうモードがあるのを知ったw)無事焼けたので再起動してBIOSの起動メニューを呼び出し、CDブートを選択。あれ?真っ黒い画面が出るだけで何も起きない。何度試しても進まない。元のソフトが悪いのかと思い、別のメモリ診断ソフトを焼いてみる。正常だと思われる方のメモリで試してみるとエラー無くチェックを1週。40分ぐらいかかった。本当は3週ぐらいした方が良いらしいが、問題のメモリを調べるために終了してメモリを交換。CDブートしようとしたらまたもや起動しない。元のメモリを挿してやってみても起動しない。何度も試行錯誤した結果、CDブートを選ぶタイミングが重要だったよう。BIOSが起動し、CDが回転(周辺機器に電源が配給)、起動メニューを表示した後にすぐ選ぶとCDブートできない。CDの回転が終わってから選択しても起動しない。CDの回転が終わってすぐに選ぶと起動するというなんとも不思議な仕組みw案の定、片方のメモリが壊れていた。メモリ診断ツールがエラー出す前にフリーズしたしwまたもや1日以上無駄にしてしまった上に、1GBに逆戻り。テンション下がってきた('A`)初期不良なので交換してもらうことに。ここでまさかのoggをストリーミング再生するように改悪したONSが欲しい人は。3Dカスタム少女の体験版を動かしてみたら床から黒くて薄っぺらい物体が大量に生えていてとてもゲームができる状態じゃない。ATIのRadeonと相性が悪いらしい...購入当時は何万もするグラボだったのに今だと(ryタイムリープの体験版は前に問題なく動いてたからタイムリープ買うわ...3Dのゲームは持ってないが最低でも2GBのRAMは必要だな。このグラボはVRAMが128MB内臓でRAMから128MB持ってくるから合計256MB分使えるらしいが、そんなに必要なのかな...最近のグラボだと1GBのVRAMが内臓されてたりするようですが。DELLで配布されてるドライバは2006年とかwwwもうDELLでPCなんて買わないよ...とりあえずRAMが届くまでテンションが元に戻りそうに無いので体力を温存しておきますね。touchを買ったり、PPC買ったりしてるので俺も何か欲しいなぁ。ONSが動く小型機はPSP-1000しか持って無いというwこのノートはでかくて持ち運びに適してないので(使ってないのにバッテリーも死にかけ)eeePCとかそこらへんが欲しいですね。あっちこっちでeeePCに対抗して低価格ミニノートを開発してる模様。外でも色々解析したりできるけど、中身windowsなのでONSとか使う必要ねぇなwwwここまでの長文を読んでくれた人も飛ばして来た人も今年は良い年でありますように。サンタさんプレゼントマダー?≫No.567これだけの有用な記事を書かれて、反応が少ないのは寂しいですね・・・HARUです。体力切れで、数日サボってました。記事を読んで欲しい、と思ったら今読み返して、やっと入手出来ていたり・・・ヘタレですみません。こちらのほしうたの記事と丁度時期が重なるので、もしかしたら関連性が・・・と思ったりもしましたが、何にせよ、非常に助かるので、後でテストさせていただきます。デモを見る限り、かなり期待できそうです。数日後には、ある程度の報告が出来ると思います。就職の件では、差し出がましいことを言って、失礼しましたが、七次元様なら、実力的には少なくとも一般のプログラマなら大丈夫だと思います。何はともあれ、ありがとうございました。]No.569所詮は独り言のようなものですからね。1週間程度空けてました。他の方に関連のある場合もありますが、今回はあまり関係はありません。(どっちかというと中身が古いので最新版推奨)あくまでテスト用と考えてください。元(ONS)がGPLなので私に大した権利はありませんのでご自由にお使いください。さっき書いた通り古いバージョンなのでバグやら未実装機能などに注意してください。最低限、C言語が使えないと話にならないですよね^^;C++や一部ではVBができないと面接で弾かれますしw普通はPCでC言語を勉強してからPSPプログラミングをするだろうに、C言語の勉強をせずにPSPプログラミングをやってる俺がおかしいwDS向けプログラミングはHomeBrewで一般人にもできますが、RAMが4MBはさすがに少ないですね...画像の色数が少ない理由がよくわかります。==以下長々と関係の無い話==風来のシレン(1,2両方)は長時間プレイしたり、敵の数が多いとフリーズしたりします^^;勝手にセーブされる仕組みで、ちゃんとした方法で終了しないと装備品や道具がパーになって何度嘆いたことか...(GB版、SFC版はリアルタイムセーブでそういうことはないが、DSだとデータを保存する媒体の性能でおそらく書き込み回数の限界があると予想)話が逸れましたが、これは多分場面が変わるor敵が変わるごとにメモリを確保or開放してるせいかと思います。PCでよく「メモリにゴミが溜まる」というようなことを言われますが、空きメモリが断片化されてメモリが確保できなくなりフリーズすると思われます。昔のONSforPSPの落ちる理由もこれが多い)ゲーム起動時に、あらかじめそれぞれのデータ用に確保して毎回開放せず使えばメモリ不足になることは無いと思うのですが。夢を追い求める学生プログラミング初心者(笑)愛用言語はHSP(スイーツ)プログラマーを目指すものの「C言語?読むだけ^^」「C++?知らんがな。クラスって何?おいしいの?」というゆとりっぷり。Delphi入れたりVC++2008入れたり迷走中。夢はコミケで何かやりたい。一般参加すらしたこと無いけど。PSP-1000(CFW)持ち。PSP-4000マダー?よく難波周辺のゲーセンに出没するらしい。STGも格げーも初心者。ろ、ロリコンちゃうわ!!!連絡先:homepage_touroku[a]yahoo.co.jp(メールはほとんど確認してません。掲示板に書き込むのが確実です)関連リンクそふとうぇあこうかいじょ公開したファイルが置いてあります。連絡やら雑談やら適当にどうぞ。PSP解を試してみた。FC2ブログのテンプレート。