THE PSP攻略+α ~SONYへの挑戦状~

PSP関連ブログ?いいえ、ただのゆとりブログです

スポンサーサイト 

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
[ --/--/-- --:-- ] スポンサー広告 | トラックバック(-) | コメント(-)

新年明けまして早々色々バタバタ 

大分遅くなりましたが、新年明けましておめでとうの方もそうでない方も今年もよろしくお願いしますね(´・ω・`)
年末年始はリアルが色々忙しくてバタバタしてましたが、やっとおちちついてきました(落ち着け
年末は暁の護衛FDをやるのに忙しく(ぉ
年始は朝から墓参りやら親の実家に行ったりと
最近は重箱におせち料理を作る家庭は減っているのでしょうか?
我家はそこそこあれな血筋なので(関係あるかわからんが)昔から家で作っているようですが、私はあまり好きじゃないです^^;
甘い人参や白い豆などが苦手ですね。こうや豆腐も冷たくなければ良いのだが…

さて、とりあえず今年はどうするっかな。
とりあえず鳥和え酢適当に徒然と何か書いておく。

書きたいことをまとめて書いたのでとてつもなく長文になってます^^;
書くのに1日半かかってるとかもうアボカドバナナかと…

始めに、チラシの裏とかでも書いているが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にかかった時間。
2つ目の動作確認はぶっちゃけ違いがわかりにくい^^; この頃のONSはcpu命令が無いので私がビルドしたもの2つのみで検証。(動きのあるところはクロックアップ)
ストリーミングの方が若干再生が早くなってるが、RJL(RemoteJoyLite)で随時画面転送してるせいで多少ズレがあるかもしれない。
そのままのONSだとRJLで画面に映し出せなかったので改良する必要があったが、最近のRJLは非同期転送ができるようになったのでなんとか映し出せた。
バイナリで公開されてる奴は改良できないからどうしようかと思ったぜw

とりあえず例のごとくようつべ(高画質)にうp
適当に効果音選んだので音が小さかったりして聞きづらいです^^;;



サウンドファイル詳細
 長さ サイズPCMサイズ
23.3254 KB (260,098)3.9 MB (4,110,120)
28.9306 KB (314,297)4.8 MB (5,097,960)
32.9464 KB (475,799)5.5 MB (5,803,560)
35.7381 KB (390,604)6.0 MB (6,297,480)
72866 KB (887,546)12.1 MB (12,700,800)
1051.24 MB (1,304,196)17.6 MB (18,522,000)
1161.78 MB (1,876,674)19.5 MB (20,462,400)


それぞれかかった時間(ms)
 長さ そのまま再生工程短縮ストリーミング
23.359815837365
28.975687260418
32.9×89098467548
35.78874479
7217997890
105×16711233
116×23781701


使用メモリ(byte)
 長さ  そのまま ストリーミング
23.38.8 MB (9,253,360)356 KB (364,544)
28.97.2 MB (7,583,360)412 KB (421,888)
32.9×464 KB (475,136)
35.7384 KB (393,216)
72868 KB (888,832)
1051276 KB (1,306,624)
1161832 KB (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ぐらいかな。
元のPCMサイズ/668KB=かかる時間
元の長さ*0.25=かかる時間

次に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言語わけわかめ。



俺のPC周りの話。
以前新しい外付けHDDを買おうとしてたという話だが、年末に暁(ryを買いに行った時に日本橋周辺の店を回っていたのだが、珍しく親子連れが居た。
そういえば巷ではクリスマス(笑)とかいうイベント(笑)が中止になったのも知らずにプレゼントを求める子供が居るんだった。
どうやらPSP用のメモステを買いに来たらしい。純正のメモステは高いからなぁ…
俺はクリスマス効果であまり安くないので帰ることにした。
PhotoFast 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.32GB
70GBあれば4GBほどのエロゲが17本(ry
持ってるエロゲ集めても70GBいかねえよwww

PSP、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枚づつ挿して使ってみると、どうも片方のメモリの調子がおかしい。
メモリ診断ソフトとかいうのがあるらしいので、それでチェックしようとしたらFDDでDOSを起動させないと駄目らしい…
最近のノートPCはFDDなんて付いてねえよw DVDドライブを犠牲にすればオプションで付けれたけどw
USBメモリでのブートも可能らしいが、どこに行ったかわからない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が内臓されてたりするようですが。
3Dカスタム少女に関してはVRAMよりDirectX10に対応してるかどうかが問題みたいw
なぜかグラボのドライバ更新できないし… DELLで配布されてるドライバは2006年とかwww
もうDELLでPCなんて買わないよ…



とりあえずRAMが届くまでテンションが元に戻りそうに無いので体力を温存しておきますね。
提出課題がまだ残ってるとかそんなことは忘れたぜ(ぉ
ONS移植はしないって言ったし、今年は何をして過ごせば良いのだろうか…
他の人はiPod touchを買ったり、PPC買ったりしてるので俺も何か欲しいなぁ。
ONSが動く小型機はPSP-1000しか持って無いというw
このノートはでかくて持ち運びに適してないので(使ってないのにバッテリーも死にかけ)eeePCとかそこらへんが欲しいですね。
あっちこっちでeeePCに対抗して低価格ミニノートを開発してる模様。
外でも色々解析したりできるけど、中身windowsなのでONSとか使う必要ねぇなwww

ここまでの長文を読んでくれた人も飛ばして来た人も今年は良い年でありますように。
[ 2009/01/13 21:40 ] 日記的なもの | TB(0) | CM(2)
No.567
これだけの有用な記事を書かれて、反応が少ないのは寂しいですね・・・HARUです。体力切れで、数日サボってました。

記事を読んで欲しい、と思ったら今読み返して、やっと入手出来ていたり・・・ヘタレですみません。

こちらのほしうたの記事と丁度時期が重なるので、もしかしたら関連性が・・・と思ったりもしましたが、何にせよ、非常に助かるので、後でテストさせていただきます。デモを見る限り、かなり期待できそうです。数日後には、ある程度の報告が出来ると思います。

よければ、ほしうたコンバータと一緒にアップさせてもらえると嬉しいのですが・・・



就職の件では、差し出がましいことを言って、失礼しましたが、七次元様なら、実力的には少なくとも一般のプログラマなら大丈夫だと思います。・・あちらのプログラムの仕様書などは、結構ヘタレで書かれているのが多いので、むしろ拍子抜けするかも?上を狙えば、キリはないでしょうけど・・

ゲーム業界なら・・・DSのソフト開発とかは、メモリで泣かされそうですが・・

何はともあれ、ありがとうございました。失礼します。

[ 2009/01/18(日) 08:47 ] [ 編集 ]
No.569
所詮は独り言のようなものですからね。
ちょっと1週間程度空けてました。

他の方に関連のある場合もありますが、今回はあまり関係はありません。(どっちかというと中身が古いので最新版推奨)
あくまでテスト用と考えてください。
記事に書くだけだと妄想扱いされそうで、いつか公開しようと考えてましたのでw

>よければ、ほしうたコンバータと一緒にアップさせてもらえると嬉しいのですが・・・
元(ONS)がGPLなので私に大した権利はありませんのでご自由にお使いください。
ただ、さっき書いた通り古いバージョンなのでバグやら未実装機能などに注意してください。


まずは最低限、C言語が使えないと話にならないですよね^^;
C++や一部ではVBができないと面接で弾かれますしw
普通はPCでC言語を勉強してからPSPプログラミングをするだろうに、C言語の勉強をせずにPSPプログラミングをやってる俺がおかしいw

DS向けプログラミングはHomeBrewで一般人にもできますが、RAMが4MBはさすがに少ないですね…
画像の色数が少ない理由がよくわかります。
==以下長々と関係の無い話==
風来のシレン(1,2両方)は長時間プレイしたり、敵の数が多いとフリーズしたりします^^;
勝手にセーブされる仕組みで、ちゃんとした方法で終了しないと装備品や道具がパーになって何度嘆いたことか…
(GB版、SFC版はリアルタイムセーブでそういうことはないが、DSだとデータを保存する媒体の性能でおそらく書き込み回数の限界があると予想)
話が逸れましたが、これは多分場面が変わるor敵が変わるごとにメモリを確保or開放してるせいかと思います。
PCでよく「メモリにゴミが溜まる」というようなことを言われますが、空きメモリが断片化されてメモリが確保できなくなりフリーズすると思われます。(有力な説。昔のONSforPSPの落ちる理由もこれが多い)
ゲーム起動時に、あらかじめそれぞれのデータ用に確保して毎回開放せず使えばメモリ不足になることは無いと思うのですが。
(スペックが固定されてる場合は普通そういう風に作ると思うのですが…)
==ここまで関係の無い話==

また新たなネタを見つけましたが、ONSは割りと複雑で組み込めそうにないです…
DL数が18のままなのであまり需要が無いようですが
時代は自作エンジンですからねw
[ 2009/01/22(木) 22:02 ] [ 編集 ]
コメントの投稿













管理者にだけ表示を許可する
プロフィール

七次元

Author:七次元
永遠の18才
夢を追い求める学生
プログラミング初心者(笑)
愛用言語はHSP(スイーツ)
プログラマーを目指すものの「C言語?読むだけ^^」「C++?知らんがな。クラスって何?おいしいの?」
というゆとりっぷり。
Delphi入れたりVC++2008入れたり迷走中。
夢はコミケで何かやりたい。一般参加すらしたこと無いけど。
PSP-1000(CFW)持ち。PSP-4000マダー?
よく難波周辺のゲーセンに出没するらしい。
STGも格げーも初心者。
ろ、ロリコンちゃうわ!!!

連絡先:homepage_touroku[a]yahoo.co.jp
(メールはほとんど確認してません。掲示板に書き込むのが確実です)

関連リンク
そふとうぇあこうかいじょ
公開したファイルが置いてあります。

掲示板
連絡やら雑談やら適当にどうぞ。
カウンター



現在の閲覧者数:
ブロとも申請フォーム


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。