したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | |

質問スレ全般

1七次元★:2008/11/04(火) 04:09:48 ID:???0
ブログの記事、掲示板からPSPやそれ以外全般において質問のある人はここに書き込んでください。
ブログに対するピンポイントな質問はブログのコメントでどうぞ。
質問に回答できる方が居ましたら教えてあげましょう。

質問をする人は以下の点を守りましょう。
・まずは自分で検索してみる。(Yahoo!やGoogleなどで)
・質問をする前に過去レスを読み返して、内容が既出でないか確認する。
・質問は詳しく書く。エスパーばかりとは限りません。
・解決した、しないにかかわらず、回答してくれた人へはお礼をする。
・外部板で同じ質問をしない。

2natsu:2008/11/17(月) 00:30:54 ID:qjDwLCe.0
コンバータの作成をしてみたいのですがC言語の知識は全くないです。
七次元さんの書き込みをみてHSPから始めようと思うのですが、BGIの解析はHSPを使っているのでしょうか?
それともHSPは関係ないのですか?
(BGIはフリーソフトではないようなので…私の勘違いでしょうか)

3七次元 ◆/7th/O83GE:2008/11/17(月) 06:26:50 ID:M4tdqYfo0
基本的にうちのコンバータはHSPで作成されてます。
ですが、解析に関してはあまり言語は関係ないです。
BGIのシナリオはテキスト形式ではなく、バイナリ形式なのでそれを解析しやすく(読みやすく)
するためにHSPを利用してますが、ウィンドウが手軽に出せる言語ならなんでも良いです。(結果を表示するため)
解析は手作業です。自分の目で数字の羅列を見て試行錯誤します。
今までに解析経験が無いのならバイナリ形式のシナリオは少し難しいかも知れません。

4natsu:2008/11/17(月) 08:10:53 ID:qjDwLCe.0
早速の回答ありがとうございます。
まずテキスト形式で練習した方が良さそうですね。

5natsu:2008/11/17(月) 18:34:49 ID:qjDwLCe.0
別PCから失礼します。
バイナリ形式を読むためなら他のソフトでも出来るってことですよね?
つまりHSPで最終的に作成しているだけという判断で大丈夫ですか?
今バイナリ形式で読みこんで眺めているのですが埒が明かなくて…

6七次元 ◆/7th/O83GE:2008/11/17(月) 23:18:57 ID:M4tdqYfo0
バイナリ形式とテキスト形式では解析のしやすさが大分変わってきます。
テキスト形式は人間が読みやすいように作られていて
バイナリ形式は機械が読みやすいようにできてますからね…
ただ、テキスト形式の場合は正規表現の使えるperlなどの方が向いてます。
バイナリ形式だと、C言語が向いてる気がします。
HSPは2つの中間という感じですね。
バイナリ操作もテキスト操作もコンバータ作成には支障の無い程度の機能が備わっています。
なんといってもHSPはウィンドウを表示するのに手間がかからない点が大きいです。
自分の場合は解析に使ったソースを改変してコンバータにしてるのでHSP製になりますが、バイナリエディタ
などでデータを見ながら直にコンバータを作るのもありかと思います。(バイナリエディタだけだと見づらいですが)

7natsu:2008/11/17(月) 23:45:59 ID:qjDwLCe.0
なるほど。HSPには両方あるんですね^^;
HSPがまだ使いこなせなくて…
まだHSPでバイナリ形式を読み込めていないのですがフルパスを入れれば…まだ試していないですが。
とりあえずバイナリエディタでは読み込めたのですが見づらい状況です。

8七次元 ◆/7th/O83GE:2008/11/19(水) 00:08:35 ID:i30QLC/s0
Perlにもリファレンスという名前のポインタ操作があったり、C言語でもライブラリで拡張はできますが
HSPの方が敷居は低いですね。
まずはバイナリエディタでにらめっこするしかありません。
大体、ヘッダ部分にファイル識別子やシナリオの先頭アドレス、サイズがあったりしてシナリオ部分を探します。
その後はバイトコードの規則性を調べます。(大体は1byte、2byte、4byte区切り)
命令の数値を16進数の文字で出力し、命令の区切りごとに改行を入れるなどすれば読みやすくなります。
BGIだと、セーブ用のファイル位置を記録する命令があるので、それを区切りに改行すればかなり読みやすいです。
エンジンごとに仕様が異なってきますので、これといった解析方法というのは存在しません。

9natsu:2008/11/19(水) 19:23:24 ID:/cX2aqJ.0
ありがとうございます。
セーブ用の命令…グーグルで調べると分かりますかね。
いまだHSPで表示できていません。
基礎からやるべきなのでしょうが何が基礎だかっていう状況です。

10七次元 ◆/7th/O83GE:2008/11/19(水) 21:43:02 ID:i30QLC/s0
なんでグーグルwww
googleで調べて非公開エンジンの仕様が出てくるならみんな移植してますよ…
これはプログラミングや解析以前の問題かと
まずはPCの基礎知識とノベルゲームの仕組みを理解してください
これらはグーグルで調べて出てきます…

11kotatsu:2009/11/03(火) 14:41:43 ID:75lmZXnk0
PSPでの弾幕テストなどでデバッグの文字の中で
CPUの使用率(?)をパーセント単位で表示しているみたいなのですが
何のAPIを使用しているのでしょうか?

教えて頂けるとありがたいです。

12七次元 ◆/7th/O83GE:2009/11/06(金) 22:34:33 ID:pyRR3uRc0
pspDebugProfilerGetRegsで得た情報から計算できるみたいです。
というのも、私は他の方のソースをそのまま使ってるだけなので、意味はさっぱりわかりません^^;
CPU関連のプラグインのソースだったと思うので、検索すれば出てくると思います。

13kotatsu:2009/11/07(土) 14:02:34 ID:DzrF2kIM0
>>12
情報ありがとうございます。
CPU関連のプラグインとはおそらくPSP-HUDだと思うんですが
ソース公開されていないと思いますが…?

14七次元 ◆/7th/O83GE:2009/11/07(土) 18:29:51 ID:uCkUZYdI0
PSP-HUDというプラグインは知りませんが、とにかくプラグインのソースを参考したのは事実です

15kotatsu:2009/11/11(水) 21:44:04 ID:VL.U4GVk0
なんとかプラグインのソースを見つけることが出来、CPU使用率の表示に成功しました。
(最初ミスでCPU使用率が100%固定になってずっと悩んでいましたw)

ありがとうございました。

16ロゼリュクス:2010/01/31(日) 12:37:21 ID:75ny3kHU0
perlでのバイナリの置換についての質問なのですが、ファイルを最初から検索して XX XX XX XX というバイナリを見つけたらそこから4つづつYY ZZ ZZ ZZ というように取り出してそれをYYの値のよって FF ZZ ZZ ZZ と置換していき、 00 00 00 00 となったらまたそこからXX XX XX XX というバイナリを見つけてといったようなプログラムを組みたいのですがどうしたらいいでしょうか?
置換はYY ZZ ZZ ZZを$lineに格納して$line =~ s///;でやれると思うのですがXX XX XX XXを見つけそこから4つづつ区切って$lineに格納する方法がよく分かりません。
どうか教えてもらえませんでしょうか。

17七次元 ◆/7th/O83GE:2010/02/04(木) 06:22:07 ID:5/1K2pSM0
ちょっと色々あって返事が遅れてしまいました。
少し質問の意味が分かり辛いですが、おそらく文字列としてではなく、数値として扱えば
簡単に実装できると思います。
while($dword=4byte読み込み){
if ($dword == 0xXXXXXXXX){
while($dword=4byte読み込み && $dword != 0){
$write = $dword;
$byte = $dword & 0xFF;
if ($byte == 0xYY){
$write = $dword | 0xFF;
}
if ($write != $dword){
書き換え処理
}
}
}
}
4byte間隔でデータが並んでいないのであれば、一致しなかった場合は1byte進めて、一致すれば4byte進めます。
メモリ上のデータを処理するならば、リファレンスやpack系関数を利用して読み込みや書き込みが
できるかと思いますが、当方ではperlをあまり使用していないので正確なバイナリデータの
扱い方がわからなかったりします^^;
ファイルから随時読み込むのなら、書き換え処理部分を省いて、処理の最後にファイルへの書き出し処理を
追加すれば良いと思います。
HSPやC言語ならもっと具体的なサンプルが書けそうなんですが、perlのバイナリ処理はよくわからなくて…
こいつは文章の処理で威力を発揮する言語ですからねぇ…

18akt:2010/02/21(日) 16:11:56 ID:WS4FIM2E0
けよりなコンバータに関する質問なのですが、
選択肢が表示されるときにPC版のように中央の画像の上ではなく
テキストが通常表示される場所に表示されるのは変換ミスでしょうか?

19七次元 ◆/7th/O83GE:2010/02/21(日) 22:09:26 ID:OGI4zxFk0
けよりなコンバータは最低限の移植しか行わないのでそれで正常です。
というのも、まずは基本的な部分を移植した後にインターフェイス周りを
本家に近づけるように組む予定だったのですが、基本的な部分のONSでの再現が
かなり厳しい状態だったので、中途半端な状態で開発が止まってます。
個人的には公開を取りやめたいレベルですが、他の人の要望もあって公開しています。
DL数も毎日伸びてますので、今更非公開にすることも出来ず^^;
PSP向けの次世代エンジンが開発されたらリテイクする予定ですが
いつエンジンが出てくるか分からない状態なので時期は未定です。

20akt:2010/02/22(月) 20:39:16 ID:bHLtwZWI0
わかりました。
丁寧に答えていただきありがとうございます。

21名無しさん:2010/08/10(火) 18:45:32 ID:KMvh31qg0
しまいまコンバータの質問ですが、ダメもとで"はるうられ.dec"を
変換してみました。100%を過ぎて進み、-の値が出てきた後に
進行度表示窓にm9(^Д^)プギャー が出てきてその後画面いっぱいに
何かの文字の羅列のようなものが表示されました。
このときタスクマネージャーのアプリケーションタブにはコンバーターのプロセスは無く、
m9(^Д^)プギャー のプロセスがたくさんできていました。強制終了にて一応戻ったように見えますが
対応していないDECを入れた場合正常な動作なのでしょうか。

当方ウイルススキャンでは異常なし、SPYBOTでも特になにもありません。
windows7 64bitを使用しております。
プロセス名があれな顔文字なので当方のパソコンがウイルス感染しているのか
そういう動作で問題ないのか確認させていただきました。

22名無しさん:2010/08/10(火) 18:57:00 ID:KMvh31qg0
因みに
system4.x逆アセンブラ102だと
VERS6のためにその旨の警告の後
未知のデータ形式です"・・・"
とでて終了したのでしまいまコンバータをためしてみました。

23N:2012/12/24(月) 20:41:03 ID:3c0O8fyI0
七次元さん

ご質問させていただきます。
お時間があれば返答頂けたら幸いです。

HSPで0x112233のような3バイト区切りの場合
どのように処理すれば、上手くズレも無く処理できるのでしょうか?

まず2バイトで判別し

0x1122で
if 0x2211 [
a = wpeek(a, c)
c + =2
goto *loop
]
0x33のような
その後1バイトというやり方ではズレが発生するので
何かいい文案があれば、お時間ある時にご教授お願い致します。

駄文失礼しました。


新着レスの表示


名前: E-mail(省略可)

※書き込む際の注意事項はこちら

※画像アップローダーはこちら

(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)

掲示板管理者へ連絡 無料レンタル掲示板