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

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

スポンサーサイト 

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

頼まれて作ったツールとか[2009/11/18] 

土曜日にソース引っ張り出して開発を再開し、夜には完成したわけだが、ツールの付属の説明やら配布用に色々整えるのに時間がかかり、説明書の日付は16日になってるが、実際には今さっきやっと配布まで漕ぎ着けた。
(もちろん今さっきというのは、この部分を書いてる時点なので記事を仕上げたときにはまたまた時間が経っているという…)

外に居る間の無駄な時間をどうにか有効活用できんのかね…
今こうやって記事を書いたり、プログラムを組むのに使用している手持ちのノートPCは、ノートじゃない大きさなので、今までほとんど持ち運んだことは無い…
しかも、最近はファンから異音が出始める始末。
うるさいったらありゃしない。どれだけうるさいかというと、横で寝てると目が覚めるほどのうるささ…
今もウザったいぐらい音が鳴ってます。PC振ったらたまにマシになる。
自作PCを作るほどのお金が無く、パーツ揃えるとかそっち方面はあまり詳しくないので、さてどうするか。
日本橋にはそういう店がゴロゴロあるんだろうけど、ファンの大きさやら電圧やら調べないといけないんだろうなぁ…
油注せば直るとかいう話もあるし、とりあえずまた分解してファンの掃除をするか。
またもやPC故障の危機…!

なんか話逸れたけどeeePCとかそういう小型なPCが欲しいなぁ。
結羽さんがeeePC購入して通勤時とかに使ってるとか言ってたのを思い出した。( ´・ω・`)
すのこたん…

この話も話が逸れているというお話。
旧AOSアーカイブとかNEKOPACKハッシュとかは続きにて。
   
 
・旧AOSアーカイブ展開ツール
その名の通り、旧型のAOSアーカイブを展開します。
シナリオスクリプトのデコードや画像のデコードも行います。
今回は特殊で、HSP、C、perlの3つの言語のソースと、HSP、Cのバイナリが付属してます。
適当に使いたい方はHSPのバイナリを叩いて、ダイアログでAOSアーカイブを選択し、保存先を指定すればデコードしてくれます。
なぜ3つの言語のソースがついてるかというと、要望により解析手法とその結果としてソースを付属することになりました。
perlに関しては、かなり久々に使ったのもありますが、バイナリデータの処理がやり辛いので、画像のデコード処理は省いてあります。
スカラー変数から任意の位置のバイナリデータを読み取る方法はこれで合っているのかどうか…
各種処理に色々と頭をひねって組んだので、200行以内に収まりました。
個人的にはperlは可読性が低いので、他の言語の方が読みやすいと思います。
1ヶ月ぶりにperlのスクリプトを見たとき、自分で作ったスクリプトなのに読むのに少し時間が掛かったという…
本気で解析して、ソースを書き起こしたので、参考になれば幸いです。

・NEKOPACKのハッシュ関係
これについては、すでにperlモジュールという形で完成していたのですが、サンプルスクリプトを組んでみると悪用できそうな気がしたので一般公開はしないことにしました。
その代わり、HARUさんが移植予定のゲーム専用という形で後からここに追記する予定です。

各種ツールはいつも通り公開所にあります。
付属の説明書は必ず読んでください。


ちょっくら次に書く予定の抽出ツールとかコンバータとかの話のために、色々と準備しないと。
[ 2009/11/18 02:54 ] 自作ソフト類 | TB(0) | CM(7)
No.941
>七次元様

各種ツールの作成、ありがとうございます。
今回のページはこちらが依頼して作って頂いたものばかりなので、本当に感謝かつ恐縮しております。

早速、perlとHSPにて試してみました。
・・・・が、非常に残念なことに実行結果は割とシビアなものになりました。

一口に.aosといってもバージョンがさまざまなので、以下のもので実行してみました。

・鳳凰戦姫 舞夢(sfa8)
・とらいあんぐるBLUE(sfa9)
・女神大戦(sfa10)
・昇龍戦姫 天夢(sfa12)
・あい☆きゃん(sfa15)

・・まずは本来の目的であった、舞夢のシナリオアーカイブ、scr.aosのデコードはHSP、perlの両方で成功しました。
これで、こちらの目的であるコンバータは作れます。

ただ・・・・他の全作品のシナリオのデコードがエラーを起こし、失敗します。grp.aosの展開も無理なようです。

あと、舞夢の画像アーカイブ、grp.aosに関しては、HSPはエラーが起きて不可、perlでは一応展開可能(.abmファイルは全て展開失敗ですが、基本的な絵はbmpで出力されます。)
・・・と結果に違いが出ております。

明日は下手をすると徹夜になりそうなので、寝ないと危険なため、Cまで試せないのが大変申し訳ありませんが、まずは初期としての動作報告を。


NEKOPACKに関しては、メールにて返信してあります。
こちらも中途半端な内容ですみません・・・

これらのお礼は、舞夢、ステラシアターのコンバータの作成という形で、いずれ必ずお返しします。

にしても、ここまでしていただいて、自分は本当に幸せ物です、ひたすら感謝。

[ 2009/11/20(金) 01:28 ] [ 編集 ]
No.942
今回は"旧"AOSアーカイブの展開ツールになるので、最近のものは展開できません。
つまり、ExtractDataで展開できないバージョンのAOSが展開できるツールになってます。
各種格納ファイルの展開アルゴリズムは同じですが、アーカイブの構造が違います。
新型のアーカイブ構造は見てませんが、おそらく簡易的なものだと思うので対応できるかと思います。
ExtractDataが公開停止した今、新型にも対応しておいたほうが良いのかもしれませんね。

perlでは記事中に書いてある通り、画像のデコード処理を省略してるのでシナリオのデコードしか行いません。
つまり、その他のデータはそのまま吐き出すだけです。
すべての言語において、体験版のデータでは何の問題も無く抽出できているので、どのようなエラーが出たのかが気になります。
ソースから実行すれば何行目でエラーが出てるのかわかるうえに、より詳細なエラー表示が出ます。
perlでは展開できて、HSPでは失敗するとのことなので画像周りが原因かと思いましたが、ファイルサイズが原因かもしれません。
もしかするとgrp.aosは2GB以上ありませんか?
厄介なことにHSPは符号付32bit整数と符号付64bit浮動小数しか扱えないので、整数型変数で2GBを超えると内部データが負数として扱われます。
C言語版は符号なし32bit整数で処理しているので、おそらく正常に動作するはずです。
HSP版でも、Win32APIを叩いてファイル操作をすれば、おそらく正常に動作すると思います。
とりあえず、AOSに関しては新型対応&確証が取れればHSP版のファイル操作を修正したものに差し替えます。

NEKOPACKやその他に関しては、内容がまとまり次第連絡させていただきます。

残念なことに、いずれのゲームも所持してませんのでコンバータを使う機会があるかわかりませんが、データ解析を楽しめ、さらに他の人に使ってもらえる物が作れるだけで十分です。
付属の解析手法についても、時間に余裕があるときにでも読んでもらえれば結構です。

移植する気があっても、アーカイブが展開できなかったり、暗号化されていたり、ファイル名や立ち絵の規則などの情報が足りないという理由で移植を断念するのを見ると勿体無い気分になりますからね。
まだまだ私に解明できる理由で断念してる人が居るような気がします。
某大型掲示板が、各地のコンバータ職人が意見交換できるように機能すれば良いのですが…
[ 2009/11/20(金) 03:10 ] [ 編集 ]
No.943
>七次元様

>ExtractDataが公開停止した今、新型にも対応しておいたほうが良いのかもしれませんね。

確かに、もともとお頼みした時期にはExtractdataに依存していたわけで、今の状況を考慮していたわけでありませんでしたし・・・お願いできれば幸いです。


>もしかするとgrp.aosは2GB以上ありませんか?

はい、舞夢のgrp.aosのサイズは、2.97GBです。
・・・しかし、これだけの情報でここまで推測できるのは、さすがです。


>どのようなエラーが出たのかが気になります。

HSPのシナリオ変換でのエラー表示は、

「Error 12 in line 491 -->ファイル名が見つからかいか、無効な名前です。」

と出ます。perlの方ではエラーの文字が読めない記号になっているため、報告のしようがないので、避けておきます。


>某大型掲示板が、各地のコンバータ職人が意見交換できるように機能すれば良いのですが…

かつての「PSP-君でもできること-」が、その役割を果たしていたのですが・・・今では頼めそうにないですし・・・(そうなったのも、こちらに原因があるわけですが・・・)
強いて言えば、このブログが果たせそうな気がしますが、あまりレスが来ないようなので・・・何か理由があるのでしょうか?
こちらのブログでは扱う内容、知識量や、アクセス数とかを考えれば不適格ですし・・・


あと、32番目に関してはもう記事にしようと思えばできるのだから、そちらを読んでいただけた方が良いのかもしれません。
[ 2009/11/20(金) 06:11 ] [ 編集 ]
No.944
各種ツールの作成お疲れ様です。
自分にはまだまだ使いこなせないツールですが、
いつか使いこなせるといいなと思っております。
とても、素晴らしいツールなのに、レスの少なさが異常な
気もしますね…

>某大型掲示板が、各地のコンバータ職人が意見交換できるように機能すれば良いのですが…

本当にそうなれば喜ばしいのです…泣
[ 2009/11/20(金) 23:56 ] [ 編集 ]
No.945
面倒なことにHSPのバグに遭遇して対処が複雑になり、時間が掛かってしまった…
これでおそらく2GBを超えるファイルに対応できたかな。
次は新型AOSアーカイブに対応するコードを追加しないと。

>>HARUさん

>HSPのシナリオ変換でのエラー表示は、
>「Error 12 in line 491 -->ファイル名が見つからかいか、無効な名前です。」
>と出ます。perlの方ではエラーの文字が読めない記号になっているため、報告のしようがないので、避けておきます。
う~んと…、なんだか話が混ざってる気がします。
>>941ではHSPでエラーが出てperlでは抽出できたとの話だったので、>>943のエラーは新型AOSを展開した時のものだと思います。
まず、新型には対応していないので必ずエラーが出ます。
旧型にはAOSアーカイブか判定できるヘッダが無いため、別の方法でファイルを判定するのですが、テストもせずチェックが甘かったために違うファイルを指定しても読み込んでしまう状態でした。
そのままだと、めちゃくちゃなファイル情報が読み込まれ、ファイル名が文字として成り立たないので保存時にエラーが出るはずです。
HSPのエラーの行数は保存時の部分で、perlのエラーは「die "can't write "$file_name"n"」の部分だと思います。

他にも読みこぼしがあるようなので、もう一度落ち着いて読み直してみてください。
急いで返信しなくても大丈夫ですb

さくりんさんとこのブログでも意見交換は出来たのですが、「シナリオデータはなんとかなりそうだけど、画像データの仕様がわからない」とか「抽出してもシナリオデータだけ暗号化されてる」などの、移植の深い話をする場が必要かと思います。
そういうのは専用の掲示板、出来れば大型で人が集まるところが最適なんですが…
現状ではただの乞食スレに成り下がっていてまともに使える気がしません。
自分は慣れてるので強引に書き込めますが、他の方はそう簡単に書き込めないでしょうし…
>強いて言えば、このブログが果たせそうな気がしますが、あまりレスが来ないようなので・・・何か理由があるのでしょうか?
理由はずばり知名度でしょうねw
あとは功績が足りないので、すべてのコンバータ開発者が巡回してくるレベルに達してないのもあるでしょう。
やはり、誰の場所(ブログなど)にも属していない、外の掲示板が情報の共有と連絡に一番向いてますね。
私のところの掲示板に積極的に書き込んでくれるのは、ほんの一部の方だけですし。

タスクリストメモ
新型AOS対応 → NEKOPACKのハッシュ → メールの対応&返信 → NEXT記事
割り込みタスク 学校の課題orz


>>NGSWさん
今回のものは使いこなせないというか、用途が限られてくるツールなので気にしないでください。
解析の世界へ足を踏み入れてみたいのならば、解析手法を読んでみるという目的で使用することも可能ですが。

新記事を書き終えた頃にでも、少しスレで暴れてみるか。
[ 2009/11/22(日) 10:43 ] [ 編集 ]
No.953
>七次元様

お久しぶりです、HARUです。
今回は2つの意味でお詫びの報告を・・

まずAOSの展開ツールの件ですが、シグナルハート等に手を加えていることで手一杯で見ている余裕がありませんでした。

あと、シグナルハートの体験版のコンバータを作ったのですが、今回は七次元様のツールを使うことを前提としていたため、変換方法にお名前を出させて頂きました。

さらに、画像のバグの件ですが・・実は七次元様のツールのバグではない可能性もあります。もしそうだったら、お詫びをしなければなりません。(はっきりしていないのが、申し訳ないのですが・・)

斬死刃留では、別の理由で不具合があるのでバグがない・・という訳ではないのですが・・・・それが後日の話です。

不手際ばかり目立つ報告で申し訳ないのですが・・・
まずはお詫びを申し上げます。

余談ですが、そらいろと一緒にコミュを買ってきてしまいました。どうしても、興味が抑えられなくて・・・

さすがにWLOよりは楽そうですが・・・それでも今までの中では最高レベルの難度です。画像の表示の高速化を本気で考える必要がありそうです。

それでは、失礼します。
[ 2009/12/01(火) 02:23 ] [ 編集 ]
No.956
新しいAOSの展開ツールをメールで送りました。
新型AOSの対応は確認しましたが、2GBを超えるファイルに対応してるか確認できていません。
それほど急いで更新する必要は無いと思うので、後日ステラシアターのリネーマーの公開時に更新する予定です。

シグナルハートや斬死刃留については、明日にでも確認してみます。
画像がおかしいというのには、いくつか原因の候補がありますね。
基本的に拙作のツールは他所様の画像処理ライブラリを使用してるので、サイズがおかしいなどの単純なコーディングミスによるバグしか発生しにくいです。

>余談ですが、そらいろと一緒にコミュを買ってきてしまいました。どうしても、興味が抑えられなくて・・・
静まれ!俺の欲望…
今ゲームを始めると将来に関わってくるので我慢してます^^;
そもそも、元々体験版とかやらない方で、特定のメーカーしかチェックしてないから、色々と良作を逃してそうな気配…
コンバータとか作ってると、ゲームを起動する前にアーカイブを調べたり、ゲーム中の処理の仕方を考えたりするようになって楽しみ方が偏ってくるから困る。
[ 2009/12/02(水) 04:41 ] [ 編集 ]
コメントの投稿













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

七次元

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

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

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

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



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


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