
SSGを投稿したり、ゲーム解析について語るスレ
| 投稿日 |
: 2016/07/09(Sat) 16:45 |
| 投稿者 |
: amateur◆kR..xsXL6RU |
| ID情報 |
: QQhIrlXXMbpyUFmUHV2iX0 |
| 参照先 |
: |
--------------------------------------------------------
【お知らせ】
このサイトの「ツール情報」を見てこのスレッドに来られた方へ
knさんの「SpoilerALプロセス選択ツール」と「吉里吉里解析ツール」は、
このスレッドの(No.22)の記事でアップされています。
--------------------------------------------------------
猫缶Indexが閲覧不可になった際に開設された難民用の臨時掲示板が閉鎖されることになりましたので、
上記掲示板にあったスレの続きをこちらに立てました。
基本、前のスレと同じ感じで進行できればと思います。
前のスレでお世話になった方々、こちらでもよろしくお願いいたします。
--------------------------------------
(2017.12.17 追記)
SRPG Studio製ゲーム用SSGは、
現在、リンク先のスレッドにアップしています。
今後の更新もそちらのスレッドにて行います。(いつまで更新を続けるかは分かりませんが)
---------------------
(2017.05.13 追記)
「ヴァーレントゥーガ」のSSGを添付します(1個目のファイル)。
ふりーむ!からDL可能なVerと、上記リンク先のwikiからDLできるVerの両方で動作確認済み。
(現在の対応Verは「6.85r、6.85s、6.85t、6.85u、6.85v、7.00、7.00改」です)
ヴァーレントゥーガのシステムを使用している拡張シナリオについて、
各シナリオが「Vahren.exe」最新版(6.85r - 7.00改)での動作に対応している場合は、
「Vahren.exe」をヴァーレントゥーガVer6.85rから7.00改までのものに差し替えると、一応動作するようです。
exeをヴァーレントゥーガ最新版のものに差替えるとゲームが正常動作しない作品では不可。
(詳細・修正内容等はNo.503、510、514、518、522、530、563 の記事を参照)
最終更新:2017.09.19
(※ ヴァーレントゥーガ本体の2017年8/13、同8/28更新分でも動作します)
このSSGは「Vahren.exe」ver7.00(10月1日更新分)には対応していません。
このVerを含め、今後のゲーム更新に対応する予定も一切ありませんので悪しからず。事情は(No.566)を参照
---------------------
(2017.07.17 追記)
「SMILE GAME BUILDER」で製作されたゲーム用のSSGを添付します(2個目のファイル)。
現時点で対応するのを確認済みのSMILE GAME BUILDERのVerは以下のとおり(「1.7.3.0」については未確認)。
1.0.6.23、1.0.6.26、1.7.0.10、1.7.4.0、1.7.5.2、1.8.0.7、1.8.1.0、1.9.1.0
各ゲームでSSGが動作するかは、上記のSMILE GAME BUILDERのVerによるようです。
上記のいずれかのVerに該当するなら、おそらく動作すると思います。
なお、SMILE GAME BUILDERのVerは添付SSGで確認可能になっています。
(修正内容は、No.546,568,585の記事を参照)
最終更新:2017.12.31
---------------------
【重要】
添付のSSGが正常動作するには、
「SpoilerALの修正パッチ」のスレッドで変態紳士さんがアップされている、
SpoilerAL本体の修正パッチ適用が必要です。
(できるだけ最新版に近いパッチ。古いパッチでは動作しません)


編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.1)
| 投稿日 |
: 2016/07/09(Sat) 18:22 |
| 投稿者 |
: amateur◆kR..xsXL6RU |
| ID情報 |
: QQhIrlXXMbpyUFmUHV2iX0 |
| 参照先 |
: |
早速、前の掲示板のスレ等で私がアップしていたファイルの詰め合わせを、こちらにアップします。
基本的に内容はそのままですが、ウディタ解析用SSGのみ、若干機能を追加しております(可変DBにつき数値or文字列を判定可能に)。
なお、前の掲示板のスレに他の方がアップしていただいたファイル等については、
私から勝手にアップすることはありません(当たり前ですが)。
(2016.8.30 追記)
ウディタ解析用SSGを全面的に作り直したのでアップ(2つ目の添付ファイル)
詳細は(No.129)の記事を参照。
(2016.8.31 21:30ごろ追記)
上記のウディタ解析用SSG(2つ目の添付ファイル)を修正したので差し替え
詳細は(No.132)の記事を参照。
(2016.9.1 追記)
上記のウディタ解析用SSG(2つ目の添付ファイル)を修正したので差し替え
詳細は(No.136)の記事を参照。
(2016.9.9 追記)
上記のウディタ解析用SSG(2つ目の添付ファイル)を修正したので差し替え
詳細は(No.141)の記事を参照。
(2016.9.10 追記)
添付ファイル1個目の、ファイル詰め合わせの中に入っている「ウディタ用のリスト作成用ファイル」について、
正常に文字列をリスト化できない不具合を修正したので差し替え。
(2016.9.22 追記)
上記のウディタ解析用SSG(2つ目の添付ファイル)を修正したので差し替え
詳細は(No.154)の記事を参照。
(2016.9.22 2回目追記)
上記のウディタ解析用SSG(2つ目の添付ファイル)を修正したので差し替え
詳細は(No.158)の記事を参照。


編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.2)
| 投稿日 |
: 2016/07/09(Sat) 22:29 |
| 投稿者 |
: (仔猫)◆KCezBilYINU |
| ID情報 |
: G/Ez7s/YEod2T9QJAAPZB0 |
| 参照先 |
: |
テスト投稿
サクラエディタ用のキーワード強調設定サンプルです。
編集しやすいですね。本家猫缶のパワーアップ版?
添付ファイルの差し替えも可能です。
更新:少し追加してみたり…。(2017/04/04)

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.3)
| 投稿日 |
: 2016/07/10(Sun) 00:45 |
| 投稿者 |
: amateur |
| ID情報 |
: QAkTp3xxCYu676ApcQmfE/ |
| 参照先 |
: |
>>2
おお、早速の投稿ありがとうございます。
私もサクラエディタユーザーですので、試しに使わせていただきますね。
それと、この掲示板では添付ファイルの差し替えできるんですか。
上でアップしたファイルは、ミスしたので一度削除してから上げ直したんですよ。
書込みを削除せずに差し替えできるのは便利ですね。
ただ、成りすまし防止のトリップ機能は使えない?のですかね(特に留意事項にも書いてない)
それと、デフォルトでRICKさん宛てらしきメールアドレスが入ってるのは仕様なのでしょうか。
(・・・癖で思わず認証に5963と入力しそうになりました)

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.4)
| 投稿日 |
: 2016/07/10(Sun) 03:28 |
| 投稿者 |
: 変態紳士◆G9/eqTtPaq. |
| ID情報 |
: KDuP7EyuQeFztgqQrrIzD. |
| 参照先 |
: |
SpoilerAL 6.1 修正パッチ
※2016.08.30
「SpoilerALの修正パッチ」のスレに移動

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.5)
| 投稿日 |
: 2016/07/10(Sun) 05:44 |
| 投稿者 |
: 管理人◆PIflJPH.oeY |
| ID情報 |
: lo8Z0fcbjmz2O7k5NhVJm1 |
| 参照先 |
: |
>>2
本家猫缶で使われていた「Web Topic」はサイトがなくなっていて入手不可能だったので、
避難所で使われていた「Web Patio」を使用しています。
ファイルアップロード機能とBBcodeの機能はもともとなかったので
公式サポートの掲示板に依頼してサポートしてもらいながらつけました。(画像のアップロードの機能はついていました。)
自分は「EmEditor Free」派ですね。
「サクラエディタ」だと横長のSSGを作った時にスクロールバーが表示されなかったような気がします。
>>3
メールアドレスの件ご報告ありがとうございます。早速修正しました。
後、2chのようにIDを自動生成して表示する機能は現在検討中です。
(というよりはサポート要請中)
P.S.
「吉里吉里解析ツール」とか「SpoilerALプロセス選択ツール」とか
サーバー上にアップロードしたほうがいいと思いますか?
(axfcのアップローダーはいつ消えるのかわからないので)

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.6)
| 投稿日 |
: 2016/07/10(Sun) 13:21 |
| 投稿者 |
: 80-20 |
| ID情報 |
: Pv2Y2tsAANZ6lDzQx0jQv0 |
| 参照先 |
: |
>>5
避難所の避難所(?)の設置お疲れ様です。
こちらでも機会があればまた投稿させて頂こうと思います。
>>5-P.S.
個人的な意見はURLが生きている内は入手URLを記載するだけでいいかなと…
少なくとも製作者であるknさんの許可が無い内はその方が良いかと思います。
アップする際は「入手場所が無くなったので…」といった感じの一文を付けてアップするのが良いかなと愚考します。
その場合は入手URLを注視しなければならないので手間でしょうけど…
>>4
SpoilerAL修正パッチの更新有難う御座います。
いつも使用させて頂いています。
それと無駄な近況報告ですが、最近はゲーム解析が出来なくて落ち込み気味です。
まあ、定期的に避難所は拝見していましたけど。
どうでも良い事ですが、そろそろHNの変え時かな…元々は避難所のスレ80の記事20に投稿した名無して意味ですし。
それとも開き直ってこのまま推し通すか…

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.7)
| 投稿日 |
: 2016/07/10(Sun) 17:47 |
| 投稿者 |
: (仔猫)◆KCezBilYINU |
| ID情報 |
: ArhoNq5YdBPYfbKlW2MYW/ |
| 参照先 |
: |
>>3
名前の横に#文字列でトリップも付けれます(これも投稿後に名前変更で可能ですね)
ただ彼方の避難所で使ってたトリップをそのまま入れても同じトリップ表示にはならないので成りすまし防止には
暫く投稿やらみて判断されるしかないかも。
ちなみにここで同じトリップ入れてみたのですが
呪いが掛かってたので使うの止めました…試しにトリップ表示(トリップみてもらえば分かりますが(汗)
むしろこのまま使う手も…。
>>4
更新ありがとう。
数値ロック固定で問題なく動作してます。
>>5
管理人さんお疲れ様です。
「Web Patio」ですか詳細ありがとう(使いやすくカスタマイズされてますね)
(それとリンクが埋め込まれてる…!?どうやるんですか?)
>>6
80-20さん
お久しぶりです。最近お忙しいようで残念です(センスの良いコードお待ちしてます)
僕も以前「いつもの通りすがり」で書き込んでたのですが、同じ名前の方が現れたので混乱するといけないと変更しました‥。
うーん。80-20さん、センスがいいからどんな名前になるのか気になる所…。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.8)
| 投稿日 |
: 2016/07/10(Sun) 17:52 |
| 投稿者 |
: amateur |
| ID情報 |
: 8ULG.oxBxwQ8.tIG4PerV1 |
| 参照先 |
: |
>>2
(仔猫)さん
おお、トリップ表示もできるんですね。
まあ、私に成りすましても誰得だと思うので、私がトリップ使う必要無さそうですが(苦笑)
>>4
変態紳士さん
こちらでも引き続きSpoilerAL本体修正パッチのご提供、ありがとうございます。
修正を継続していただけるのは非常に有難いです。
この掲示板でもよろしくお願いいたします。
ところで、臨時版の前スレで変態紳士さんからアドレスいただいた、Javardry(Java製)についての
>その1:
>既にメモリのどこかに別のアイテムがあるならポインタの参照先になるアドレスを変えてみる。
遅まきながらこのアドバイスの意味が漸く理解できました。
取り敢えず、装備の職業・種族制限は、全アイテムの該当ポインタを、
全職業・種族で装備可能なアイテムのポインタと一括トグルで差し替えることで解決できました。
察しが悪くてすみませんでした。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.9)
| 投稿日 |
: 2016/07/10(Sun) 18:01 |
| 投稿者 |
: amateur |
| ID情報 |
: 8ULG.oxBxwQ8.tIG4PerV1 |
| 参照先 |
: |
>>5
管理人さん
この掲示板を開設くださってありがとうございます。
臨時版の方が急遽閉鎖されることになり、RICKさんがこの掲示板を用意してくださらなければ、
またもや難民化するところでした。
掲示板の運営・管理は大変だと思いますが、こちらでお世話になろうと思っていますので、
よろしくお願いいたします。
それと、メールアドレスの件、迅速な対応ありがとうございます。
つい独り言的にここに書いてしまいましたが、「管理人への質問や削除依頼 連絡用スレ」に書くべきことでしたね。
今後は気をつけたいと思います。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.10)
| 投稿日 |
: 2016/07/10(Sun) 18:04 |
| 投稿者 |
: amateur |
| ID情報 |
: 8ULG.oxBxwQ8.tIG4PerV1 |
| 参照先 |
: |
(コメントが600字の字数制限に抵触したので書込みを分割)
>>5
>「吉里吉里解析ツール」とか「SpoilerALプロセス選択ツール」の件について
私も最近臨時版のログを漁っていて気付いたのですが、
作者のknさんは、臨時版の方に昨年秋(?)くらいに一度書込みされていたみたいですね(仔猫さんとのやり取り拝見しました)。
ということで、一応、臨時版の方は見てくださっていた(どの程度の頻度かは不明ですが)ようなので、
もう暫く様子見しても良さそうな気がします。
もしかしたら、その内この掲示板にも書込みしてくださるかもしれませんし。
この掲示板にknさんが書込みしてくださった時に、こちらへの再アップについて相談するとか。
もしそういう機会が無いまま、knさんご本人がアップしたファイルが消えてしまったら、
80-20さんがおっしゃるように、緊急避難的意味で再アップしましたと付記してこちらにアップするとか。
本当は、ツールの再アップの件以外でも、こちらでknさんに色々フォローしていただければ心強いのですが・・・
(knさんは、本家猫缶で少なくとも08年くらいから投稿されていたみたいですね)

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.11)
| 投稿日 |
: 2016/07/10(Sun) 18:14 |
| 投稿者 |
: amateur |
| ID情報 |
: 8ULG.oxBxwQ8.tIG4PerV1 |
| 参照先 |
: |
>>6
80-20さん
この掲示板に来てくださって安心しました。
特に、SSG作者の方々がどの程度移住してくださるのか不安でしたので。
勝手ながら、こちらでもご活躍期待しております。
(以下独り言)
(・・・コメントの600字制限が割とシビアですね・・・)
(・・・私の矢鱈長文書く癖を直すべきですね・・・)

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.12)
| 投稿日 |
: 2016/07/10(Sun) 19:00 |
| 投稿者 |
: NEExploiT◆1I03EIw9l9M |
| ID情報 |
: XunziRhNjJtr/.3bsheW/0 |
| 参照先 |
: |
Rubyからプロセスメモリ弄るライブラリ一式をこっちにもうp

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.13)
| 投稿日 |
: 2016/07/10(Sun) 19:15 |
| 投稿者 |
: amateur◆kR..xsXL6RU |
| ID情報 |
: 8ULG.oxBxwQ8.tIG4PerV1 |
| 参照先 |
: |
>>12
NEExploiTさん
こちらにファイルを再アップくださいましてありがとうございます。
こちらでもよろしくお願いします。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.14)
| 投稿日 |
: 2016/07/10(Sun) 20:07 |
| 投稿者 |
: 管理人◆PIflJPH.oeY |
| ID情報 |
: HFbB5zd/A8P8qPYnSDgYI/ |
| 参照先 |
: |
>>6 80-20さん
>>10 amateurさん
- 「吉里吉里解析ツール」
- 「SpoilerALプロセス選択ツール」
以上の2つのツールについてはブログの「ツール情報」のページに
入手先のリンクを貼るだけにしておこうと思います。
ご意見ありがとうございました。
>>7(仔猫)さん
「BBCode」というやつですね。リンク先はWikipediaに設定してあるので興味があったら調べてみてください。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.15)
| 投稿日 |
: 2016/07/10(Sun) 22:18 |
| 投稿者 |
: yun |
| ID情報 |
: mPoVsZjx.PiByRNANDVTw/ |
| 参照先 |
: |
こちらの方にほとんどの方がうつっているようなので、
とりあえず(全部ではないですが)私が投稿していたのを
適当に見繕ってこちらに。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.16)
| 投稿日 |
: 2016/07/11(Mon) 00:10 |
| 投稿者 |
: 80-20◆LEFxdWWYR3c |
| ID情報 |
: KZvo7.mR9CiId/rCr9cXk. |
| 参照先 |
: |
>>変態紳士さん
いきなりで申し訳ありませんが、お時間がある時で構いませんので、
SpoilerALの修正をお願い出来ないでしょうか?
内容は「[adjustment]dialog,」で文字列変換の不具合で例えば私の環境ですと、
「あいうえお」は本来「82A082A282A482A682A8」になる筈ですが何故か下記の様に変換されてしまいます。
あいうえお = FFFFFF82FFFFFFA0FFFFFF82FFFFFFA2FFFFFF82FFFFFFA4FFFFFF82FFFFFFA6FFFFFF82FFFFFFA8*+0400000006
それと無断ですみませんが >>4 に添付されていたテスト用のSSGを修正した確認用のSSGを添付させて頂きました。
どうかよろしくお願いいたします。
もう一つ、伺いたいのですが、スクリプトコマンドの追加は可能なのでしょうか?
SSGを作成している時に何時もこれがあれば便利だなと思えるのがあるのですが…

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.17)
| 投稿日 |
: 2016/07/11(Mon) 00:53 |
| 投稿者 |
: amateur◆kR..xsXL6RU |
| ID情報 |
: aFXVugfJbV1cj6xckbW4y/ |
| 参照先 |
: |
>>15
yunさん、こちらにもファイルをアップしてくださってありがとうございます。
こちらでも引き続きよろしくお願いします。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.18)
| 投稿日 |
: 2016/07/11(Mon) 02:04 |
| 投稿者 |
: (仔猫)◆KCezBilYINU |
| ID情報 |
: ArhoNq5YdBPYfbKlW2MYW/ |
| 参照先 |
: |
>>14
>「BBCode」
詳細ありがとう御座います。
早速、変態紳士さんのテキスト文字をみて…このカラーの方が目に優しいですね。
[hiddent]これも使えるかな?[/hiddent]
>>19
カラー設定ありがとうございます。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.19)
| 投稿日 |
: 2016/07/11(Mon) 06:08 |
| 投稿者 |
: 管理人◆PIflJPH.oeY |
| ID情報 |
: p8COd9xg2DkKQKPJfVAHc1 |
| 参照先 |
: |
>>11 amateurさん
投稿文字制限を1000文字にしてみました。
>>14 (仔猫)さん
全体の文字(リンク以外)のデフォルトを「目に優しい色」に設定してみました。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.20)
| 投稿日 |
: 2016/07/11(Mon) 19:31 |
| 投稿者 |
: amateur◆kR..xsXL6RU |
| ID情報 |
: rHahZVdx/0howLad.yVSN/ |
| 参照先 |
: |
>>19
管理人さん、投稿文字制限の件、ありがとうございます。
どんどん使い勝手がよくなっていて助かります。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.21)
| 投稿日 |
: 2016/07/11(Mon) 20:58 |
| 投稿者 |
: 変態紳士◆G9/eqTtPaq. |
| ID情報 |
: sqsclH3WYVYCnxp259SPg0 |
| 参照先 |
: |
>>16
80-20さん
直しました。ファイルはNo.4の差し替えです。
修正後に
82A082A282A482A682A8*+0400000006
となりますが、検索は問題無いようです。(後ろの不明な数字は・・・)
メモリの書き換えは1バイトで済みましたが検索が分からなくてパソコン教室へ行きたくなりました。
>それと無断ですみませんが >>4 に添付されていたテスト用のSSGを修正した確認用のSSGを添付させて頂きました。
テストに使えて助かりました。
少し変更したものを修正ファイルに添付させてもらってます。
>もう一つ、伺いたいのですが、スクリプトコマンドの追加は可能なのでしょうか?
>SSGを作成している時に何時もこれがあれば便利だなと思えるのがあるのですが…
内容が分からない事には検討できません。
どんなものでしょう。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.22)
| 投稿日 |
: 2016/07/11(Mon) 22:14 |
| 投稿者 |
: kn◆YbsxOuLurQk |
| ID情報 |
: 8o.Hv76/POa4s7JjN5fJY. |
| 参照先 |
: |
ツールに関してレスがあったので、自分でアップしておきますね。
いろいろ半端なところがあるのでいずれは修正したいところですが…いつになるやらです。
掲示板については避難所の時から割とちょくちょく見てましたので
これからもちょくちょく見ていると思います。


編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.23)
| 投稿日 |
: 2016/07/12(Tue) 00:56 |
| 投稿者 |
: amateur◆kR..xsXL6RU |
| ID情報 |
: 27FluesRG7bGw7zPfbLT41 |
| 参照先 |
: |
>>22
knさん、書込みと、ツールのアップありがとうございます!
管理人さんたちとknさんのツールについて話してから、
こんなに早くご本人からアップしていただけるとは思っていませんでした。
吉里吉里解析ツールとSpoilerALプロセス選択ツールは日頃から重宝させていただいております。
私には吉里吉里製はツール無しには解析不可能ですし、
SpoilerALプロセス選択ツールは、DL版の他に、不正終了等によりゲームプロセスが複数起動状態になった時に活用しています。
他にも、knさんの作成されたSSGは、通常の改造に使用するのは勿論、
SSGの書き方を覚えるのに大変参考になりました。
ツールや多数のSSGを公開くださり、感謝申し上げます。
気が向かれましたら、今後も書込みいただけると幸いです。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.24)
| 投稿日 |
: 2016/07/12(Tue) 17:42 |
| 投稿者 |
: 80-20◆LEFxdWWYR3c |
| ID情報 |
: KZvo7.mR9CiId/rCr9cXk. |
| 参照先 |
: |
>>21 変態紳士さん
パッチ修正の迅速な対応ありがとうございます。
修正されている事を確認できました。
それと機能追加の件検討して頂けるだけで有難いです。
お言葉に甘えて要望を出させて頂きたいと思います。
■内容:変数維持(?)
[variable](仮)で作成した変数を作成以降のアドレスに使用できるように出来ないでしょうか?
それと可能であれば、複数設置可能・チェインファイルなどにも使用可能できて、
アドレス内で同名の変数が作成された場合はアドレス内の変数を優先されるようにも出来ないでしょうか。
これが実装できれば同じポインタを使用するSSGは大分軽症化できると思うのですが…
●使用例
// 仮定
// 0x400000 = 0x1400000 = 0x2400000
// 0x500000 = 0x1500000
// ↓変数「base(0x1400000)」をセット
[variable]_[:0x400000:]=>base
// ↓変数「ad(0x500000)」をセット
[variable]0x500000=>ad
// ↓アクセスアドレス「0x1400000」
[subject]項目名[ '+' _mem,_$base,4,num,-,%d '+' ]/項目名/:calc,_$base,0,99999,unsigned
// ↓アクセスアドレス「0x2400000」
[subject]項目名[ '+' _mem,_[\:$base\:],4,num,-,%d '+' ]/項目名/:calc,_[:$base:],0,99999,unsigned
// ↓アクセスアドレス「0x1500000」// これは通常ですけど一応
[subject]項目名[ '+' _mem,_[\:0x500000\:]=>base;[\:$base\:],4,num,-,%d '+' ]/項目名/:calc,_[:0x500000:]=>base;[:$base:],0,99999,unsigned
// ↓アクセスアドレス「0x2900000」
[subject]項目名[ '+' _mem,_[\:$base\:]+$ad,4,num,-,%d '+' ]/項目名/:calc,_[:$base:]+$ad,0,99999,unsigned
[subject]項目名//:b_toggle,0x00,ssl->chn_01,offset
[group]chn_01
_$base,01,00
_[:$base:],01,00
_[:0x500000:]=>base;[:$base:],01,00
_[:$base:]+$ad,01,00
[/group]
----------------
話は変わりますけど避難所のデータ(2016/07/11/02時頃)を保存したんですが上げといた方が良いですかね?
上げるとしても避難所の閉鎖後で容量的に外部ロダ(たぶんaxfc)にアップですけど。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.25)
| 投稿日 |
: 2016/07/12(Tue) 21:11 |
| 投稿者 |
: yun |
| ID情報 |
: fsfhLJziEgplXIyBsHvaa. |
| 参照先 |
: |
>>変態紳士さん
パッチに関してなのですが、
Win7 Home Premium Service Pack 1 64bit
Win7 Professional Service Pack 1 32bit
において、「base」のアドレスが反映されなくなっているようです。
amatureさんのTime Flow のSSGで分かったのですが、
全技能の閃き確率100%
Parsing「Game.exe」→[0x400000]
Parsing「0x3C」→[0x3C]
Parsing「+」→[0x40003C]
Parsing「:]」→[0x128]
Parsing「pe」→[0x128]
Parsing「Game.exe」→[0x400000]
Parsing「$pe」→[0x128]
Parsing「+」→[0x400128]
Parsing「0x154」→[0x154]
Parsing「+」→[0x40027C]
Parsing「:]」→[0x33E000]
Parsing「data」→[0x33E000]
Parsing「Game.exe」→[0x400000]
Parsing「$data」→[0x33E000]
Parsing「+」→[0x73E000]
Parsing「0x7C」→[0x7C]
Parsing「+」→[0x73E07C]
Parsing「:]」→[0x6E7930]
Parsing「0x4」→[0x4]
Parsing「+」→[0x6E7934]
Parsing「:]」→[0x789D68]
Parsing「0x18」→[0x18]
Parsing「+」→[0x789D80]
「base」の解析エラー。
アドレス[0x0]で読み込みエラー。
というようになっています。
パッチを退避させると正常に動くようになるのでSSG上での問題ではなさそうです。
Parsing「base」→[0x789D80]
Parsing「$base」→[0x789D80]
Parsing「:]」→[0xC4CAB40]
Parsing「0x14」→[0x14]
Parsing「+」→[0xC4CAB54]
Parsing「:]」→[0xD67FEF0]
Parsing「0x4」→[0x4]
Parsing「+」→[0xD67FEF4]
Parsing「0」→[0x0]
Parsing「0x20」→[0x20]
Parsing「*」→[0x0]
Parsing「+」→[0xD67FEF4]
Parsing「:]」→[0xCEE5FA0]
Parsing「0x84」→[0x84]
Parsing「+」→[0xCEE6024]
アクセスアドレス[0xCEE6024]
今の所、base以外の定義での不具合は確認してません。
よろしければ修正していただけると助かります。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.26)
| 投稿日 |
: 2016/07/12(Tue) 21:38 |
| 投稿者 |
: amateur◆kR..xsXL6RU |
| ID情報 |
: durdf9khYWNQpX7sTk.uY/ |
| 参照先 |
: |
>>24
80-20さん
>避難所のデータ(2016/07/11/02時頃)を保存したんですが上げといた方が良いですかね?
一応、自分に必要そうな分は保存したつもりですが、全部保存したわけではなく、
漏れがあるかもしれないので、アップしていただけると有難いです。
それと、機能追加要望の件ですが、SSGで一度変数定義した値(特に多重ポインタを使用した値)を、
同じSSG内で自由に使用(複数設置可能・チェインファイル内でも使用可能)できれば便利ですね。
[replace]のオフセット値だと、指定した子ファイル以降でしか使用できず、
おまけに、アドレス加算という仕様上、[replace]で指定した子ファイル以降で
さらに重ねて[replace]を使用しにくいですので。
あれば凄く便利ですけど、実装可能なのかどうかは分かりませんが・・・
>>25
yunさん
私も、作成中の別ゲームのSSGで同じエラーが出ました(「「base」の解析エラー」)
ちなみに、避難所にアップされている「176_107.zip」(7/8(金)のアップ分)
の修正パッチでは正常に機能していますので、とりあえず上記のパッチに戻してます。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.27)
| 投稿日 |
: 2016/07/12(Tue) 22:49 |
| 投稿者 |
: (仔猫)◆KCezBilYINU |
| ID情報 |
: G/Ez7s/YEod2T9QJAAPZB0 |
| 参照先 |
: |
>>25-26
base変数だけ値が0になりますね。
こちらでも確認しました。
それとamateurさんに教わったゲームですが
その後の報告を「雑談スレ」に。。。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.28)
| 投稿日 |
: 2016/07/13(Wed) 03:33 |
| 投稿者 |
: NEExploiT◆1I03EIw9l9M |
| ID情報 |
: XunziRhNjJtr/.3bsheW/0 |
| 参照先 |
: |
私以外の需要が謎なProcessMemory.rbの
開発版を野良gemにして
サンプルコードもこっちにまとめてみた。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.29)
| 投稿日 |
: 2016/07/13(Wed) 03:45 |
| 投稿者 |
: 変態紳士◆G9/eqTtPaq. |
| ID情報 |
: sqsclH3WYVYCnxp259SPg0 |
| 参照先 |
: |
>>25, >>26, >>27
yunさん、amateurさん、(仔猫)さん
報告有難うございました。
早速修正しました。単純なミスでしたが影響が大きかったです。(sを含むと発生)
確認はTimeFlowで行いました。
>>24, >>26
80-20さん、amateurさん
以前からSpoilerALの変数は極端すぎると思っていました。
変数維持の件は多少大き目ですが試してみます。(ローテート追加時より小規模だと思っています)
ナントカ言語の場合、スコープの一時変数、ローカル変数、グローバル変数、とあるのですが、
SpoilerALの場合は一時変数ばかりですね。
一時変数 → SSGなら有効範囲が一行の変数
ローカル変数 → SSGならグループ単位の$Valのようなもの
グローバル変数 → 全体で使う、SSGなら読み込み時と終了時にクリアする
ローカル変数は大変なのでグローバル変数になると思います。
変数の優先順位というかオーバーライドも大した事ではないのでそうなると思います。
まぁ、ドン・キホーテが風車と戦うような作業になりますからしばらくお待ちください。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.30)
| 投稿日 |
: 2016/07/13(Wed) 04:43 |
| 投稿者 |
: dipper◆LEFxdWWYR3c |
| ID情報 |
: KZvo7.mR9CiId/rCr9cXk. |
| 参照先 |
: |
どうも80-20改めdipperです。
臨時板の確認したのを機にと言うのも不謹慎ですが、これを節目にHNを改めました。
これからもよろしくお願い致します。
HNは考えるの面倒になったので、昔どこかで使っていたHNにしました。
>>26 amateurさん
ご要望があったので過去板サルベージ依頼等スレのNo.6にaxfcのURLを投稿して置きました。
>>29 変態紳士さん
迅速なパッチ修正ありがとうございます。
早速ダウンロードさせて頂きました。
ただダウンロードしたさい「一般的にダウンロードされておらず、危険を及ぼす可能性があります。」と表示されビクッ!としましたけど。
追加機能の件、試して頂けて感無量です。ありがとうございます。
非常に楽しみです。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.31)
| 投稿日 |
: 2016/07/13(Wed) 06:58 |
| 投稿者 |
: (仔猫)◆KCezBilYINU |
| ID情報 |
: ArhoNq5YdBPYfbKlW2MYW/ |
| 参照先 |
: |
>>29
変態紳士さん更新ありがとうございます。
>グローバル変数
あると便利ですね、色々と応用が利きそうです。
>>30
dipperさん
改めてよろしくです(北斗七星ですか、やはりセンスいいなぁ)

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.32)
| 投稿日 |
: 2016/07/13(Wed) 21:15 |
| 投稿者 |
: yun◆k9Mg1P3V1DY |
| ID情報 |
: mPoVsZjx.PiByRNANDVTw/ |
| 参照先 |
: |
>>29 変態紳士さん
パッチ修正ありがとうございます。
正常に動くようになりました。
------------------------------------------
みなさんがトリップを付けられているので私もつけてみました。
(私の場合、なりすましされても影響がほとんどないと思われますが…)
臨時版が閉じると聞いたときには、新しい場所であまりSSGを投稿しないだろうと
思ってましたが、猫缶さんのバックアップにサポート掲示板まで含んでいたことを
今更ながらに気づき、いくつかの書込みを見ていたらプログラム改造系を自分なり
にやってみたくなったのでなにか進展があったら投稿しようかと思います。
(プログラム改造系はまだいまいち理解できていないため)

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.33)
| 投稿日 |
: 2016/07/13(Wed) 21:33 |
| 投稿者 |
: amateur◆kR..xsXL6RU |
| ID情報 |
: IzIlm2ag5v77B79JQnhL.1 |
| 参照先 |
: |
ついに臨時板の方が閉鎖されたのですね・・・
仕方ないこととはいえ、やはり寂しい気持ちが・・・
>>29
変態紳士さん
修正ありがとうございます。
試してみたところ正常に機能しています。
それと、変数の機能追加の件、ご検討いただけるとのことで感謝です。
いつか実装していただければと期待して気長に待たせていただきます。
>>30
dipperさん
要望に応えてくださってありがとうございます。
ファイル有難く頂戴いたしました。
SSG等の添付ファイルだけでなく、ログも閲覧できるのは有難いです。
それと、HNをお変えになられたのですね。
こちらこそよろしくお願いします。
>>31
(仔猫)さん
いつの間にか、別スレに例のゲームの改造依頼が・・・
未完成ですが取り敢えずアップさせていただこうかと。
>>32
yunさん
私に成りすましする人がいるとも思えませんが、一応トリップ使うことにしました。
プログラム改造は、割と簡単に出来るのもあれば、
処理が無茶苦茶複雑でお手上げな場合もあるって感じですね。
ウディタの場合、プログラム処理部分を色んな項目で使い回してるのがほとんどなので、
私にはプログラム改造は無理っぽいです(もっと深くまで処理を追える方なら出来るのかもですが)

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.34)
| 投稿日 |
: 2016/07/14(Thu) 01:00 |
| 投稿者 |
: (仔猫)◆KCezBilYINU |
| ID情報 |
: ArhoNq5YdBPYfbKlW2MYW/ |
| 参照先 |
: |
>>33
amateurさんありがとう御座いました。
プログラム改造、yunさんなら出来ますよ
ただamateurさんの指摘通りでゲームエンジン系(インタプリタ型やVM型)は難しいと思います。吉里吉里やUnityのプログラム改造を作ってみようかと挑戦しましたが僕では無理でした><
>ウディタの場合、プログラム処理部分を色んな項目で使い回してるのがほとんどなので
ですね…共通部分で処理してあると難しいです。
CMPなど比較命令で弾いて処理するとか方法あるのですが大抵はアドレスの隙間がなくて。。。
こういう場合はパラサイトルーチンを作って別の場所にコードを書いてそっちで処理して戻ってくるって方法が使われるようです(僕ではまだ作れませんが)
彼方の避難所で補完依頼のあった「せんすいぶ!」のプログラム改造がそれでして(RICKさんが書いたSSGです。)
このコードはスゴいなぁと。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.35)
| 投稿日 |
: 2016/07/14(Thu) 04:36 |
| 投稿者 |
: (仔猫)◆KCezBilYINU |
| ID情報 |
: ArhoNq5YdBPYfbKlW2MYW/ |
| 参照先 |
: |
変態紳士さんお忙しいところ申し訳ないですが
括弧バグ修正の時に優先順位に変化があったようで過去のSSGの一部が正常に動作しなくなってます、
具体的には吉里吉里製SSGになります。
次の処理が正常に処理されません
($A0*$V0)|($A1*$V1)|($A2*$V2)+0x10
---------------------------------------
Parsing「$A0」→[0x419C218]
Parsing「$V0」→[0x1]
Parsing「*」→[0x419C218]
Parsing「$A1」→[0x0]
Parsing「$V1」→[0x0]
Parsing「*」→[0x0]
Parsing「|」→[0x419C218]
Parsing「$A2」→[0x0]
Parsing「$V2」→[0x0]
Parsing「*」→[0x0]
Parsing「|」→[0x419C218]
Parsing「$A3」→[0x0]
Parsing「$V3」→[0x0]
Parsing「*」→[0x0]
Parsing「0x10」→[0x10]
Parsing「+」→[0x10]
Parsing「|」→[0x419C218]
Parsing「B」→[0x419C218]
176_81- 176_90までの処理
------------------------------
Parsing「$A0」→[0x419C218]
Parsing「$V0」→[0x1]
Parsing「*」→[0x419C218]
Parsing「$A1」→[0x0]
Parsing「$V1」→[0x0]
Parsing「*」→[0x0]
Parsing「|」→[0x419C218]
Parsing「$A2」→[0x0]
Parsing「$V2」→[0x0]
Parsing「*」→[0x0]
Parsing「|」→[0x419C218]
Parsing「$A3」→[0x0]
Parsing「$V3」→[0x0]
Parsing「*」→[0x0]
Parsing「|」→[0x419C218]
Parsing「0x10」→[0x10]
Parsing「+」→[0x419C228]
Parsing「B」→[0x419C228]
応急処置として以下のように括弧でくくると正常になります。
(($A0*$V0)|($A1*$V1)|($A2*$V2))+0x10

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.36)
| 投稿日 |
: 2016/07/14(Thu) 05:30 |
| 投稿者 |
: 変態紳士◆G9/eqTtPaq. |
| ID情報 |
: KDuP7EyuQeFztgqQrrIzD. |
| 参照先 |
: |
ちょっと行き詰ってしまいました。
SpoilerALの値は動的に変動するように作られています。
2重ポインタがあったとして、1つ目のポインタが変更されれば2つ目も違うアドレスを参照するようになります。
ゲームを後から起動させて画面が更新されるのも同じ原理で、アドレスは追跡されなければならないので動的に処理されています。
件のグローバル変数も同様で、グローバルに宣言したものは動的に解釈しなおす事になり、
単純に実装すると1行の処理時間が、(1行+グローバル変数N行)×処理という概算になってしまいます。
グローバル変数というよりグローバル構文ですね。
これを解決するには「スコープ変数」になると思います。
たとえば、
// 属性として付加する (タグ名は再考の必要あり)
[Formula][:game.exe+0x100:]=>ptr
// 次のような解釈に変わる、[:game.exe+0x100:]=>ptr;[:$ptr+0x200:]=>ptr
[AddFormula][:$ptr+0x200:]=>ptr
// 次のような解釈に変わる、[:game.exe+0x100:]=>ptr;[:$ptr+0x200:]=>ptr;[:$ptr+0x300:]=>ptr
[AddFormula][:$ptr+0x300:]=>ptr
// $ptr と $x が定義される
[AddFormula][:$ptr+0x400:]=>x;
// ここで式の属性は消滅する
[/Formula]
こんな風に終わりを定義してやれば問題ないわけですが・・・
これが出来ないのです。
SpoilerALはBorland社の2002年製のツールで作られていますが、
属性の部分はクラスで作られています。クラスは便利ですがライブラリ依存ですので例外処理や関数ポインタが雪だるま式に増えます。
アセンブラで追加するには骨が折れます。
不可能ではなくて巨大すぎて、GUIを含め全て作り直すのが正しいでしょう。
しかし、仮にそうなると互換性に担保と呼べるものがありません。
なんだか大変だと思いつつ、使い方が限定的になるであろう「グローバル変数」をつついています。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.37)
| 投稿日 |
: 2016/07/14(Thu) 05:55 |
| 投稿者 |
: 変態紳士◆G9/eqTtPaq. |
| ID情報 |
: sqsclH3WYVYCnxp259SPg0 |
| 参照先 |
: |
>>35
(仔猫)さん
式を見ましたが、ビット毎の論理和(|)より加算(+)が優先されるので括弧で括り、後から加算させているのだと思います。
正しい仕様だと思います。
申し訳ないのですが、それが正常動作でして・・・
みなさん今まで無理やりSpoilerAL仕様の式を書いていましたが、
一般的な優先順位を適用すると副作用も発生してしまうものかと思います。
尚、演算子の優先順位については、
添付の "HowToSSG\0A\index.htm" の後半にある優先順位か、
"source\SpoilerAL-version.dll\Parsing\Parsing.c" の40行前後のコメントか、
Google先生に「Wikipedia 演算子の優先順位」と尋ねると回答が得られます。
短くすると「正しく直したら、今まで無理にでも実装していたものに副作用が出た」。
という事で許してください。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.38)
| 投稿日 |
: 2016/07/14(Thu) 07:36 |
| 投稿者 |
: (仔猫)◆KCezBilYINU |
| ID情報 |
: ArhoNq5YdBPYfbKlW2MYW/ |
| 参照先 |
: |
>>37
変態紳士さん、お手間とらせて申し訳ないです
ああ!本来の仕様通りの動作ですか…了解です。
過去の作品でSSG動かない場合は括弧を入れて
対応する方向で行きます。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.39)
| 投稿日 |
: 2016/07/14(Thu) 08:39 |
| 投稿者 |
: NEExploiT◆1I03EIw9l9M |
| ID情報 |
: 1sHi/mLvStixai1.h8T9d/ |
| 参照先 |
: |
うーん、自分で組んでるんだったら先頭の
SSG for SpoilerAL ver 6.1
部分を条件に優先順位(括弧バグも?)修正するかを選択するんだが
調べたけどここを簡単に取る方法はなさげで(´・ω・`)
[distinction]OperatorPriority=fix
[distinction]Order_of_Operations=fix
みたいなのを条件にできるといいかも

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.40)
| 投稿日 |
: 2016/07/14(Thu) 21:33 |
| 投稿者 |
: yun◆k9Mg1P3V1DY |
| ID情報 |
: mPoVsZjx.PiByRNANDVTw/ |
| 参照先 |
: |
>>33 amatureさん
>>34 仔猫さん
なんか案外できてしまいました。プログラム改造…。
ウディタの某ゲーム(SSGは作っているのですがまだ公開してないもの)で、
買い物をすると対象の持ち物が減る改造(完全に意味なし)
買い物をすると所持金が増える改造(それなりに便利)
の二つを施すことができました…。
CheatEngineをつかっているので逆アセンブルとオペコード(ニーモニック)は
たくさんでてくるので、適切であろうものを選んで改造する・・・って感じです。
今のとこは。add(加算)とsub(減算)は分かりやすいのでそれ関係で試してみました。
他のゲームでも試しに同じようにやってみても、一応改造はできるけどゲームが落ちたり、
表示がおかしくなったりしたので、これがamatureさんがおっしゃっていた「プログラム処
理部分を色んな項目で使い回してる」ことによる弊害なんでしょう。
(単に処理の仕方を間違えてるだけかもしれませんが)
あと、オペコードに対するバイトコード?と言うのでしょうか、バイト列で新たに命令する
バイト列ですが、
ウディタ上では
sub ecx,[edx]は2B 0A
add ecx,[edx]は03 0A
みたいですけど、この辺りの命令に関しては書きなおしたい命令を同じゲーム上
から引っ張ってくるしかないのでしょうか?

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.41)
| 投稿日 |
: 2016/07/14(Thu) 21:38 |
| 投稿者 |
: amateur◆kR..xsXL6RU |
| ID情報 |
: SMaiYoJt.q5pf7Mu96G9V1 |
| 参照先 |
: |
>>36
変態紳士さん
やはり、大きな仕様変更は大変なのですね・・・
SpoilerALの修正は、応急処置とおっしゃっていましたし。
一連の修正作業、本当にお疲れ様です。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.42)
| 投稿日 |
: 2016/07/14(Thu) 22:00 |
| 投稿者 |
: amateur◆kR..xsXL6RU |
| ID情報 |
: SMaiYoJt.q5pf7Mu96G9V1 |
| 参照先 |
: |
>>40
私はプログラム改造を含め、いつもうさみみで作業してるので、
うさみみを使ったやり方しか分かりませんが、うさみみ使用を前提で説明しますと、
「デバッガ」→「選択範囲を逆アセンブル」→「逆アセンブル実行」すると、
選択範囲の逆アセンブルコードのリストが表示されますので、
変更したい部分をクリックして選択状態にし、
下の方の「コード修正」の欄で、「Asm」にチェックが入った状態で、
sub ecx,[edx] や、add ecx,[edx] と入力して「修正実行」をクリックしてください。
すると、自動的に該当部分の逆アセンブルコードが、
SUB ECX,[EDX] や、ADD ECX,[EDX] と書き換わり、
メモリ上の値(バイト列)も「2B 0A」や「03 0A」と書き換わります。
ただ、SUB ECX,[EDX] 等のコードの書き方は、
デバッガによって微妙に異なる?ようですので、
その辺に疎い私は、適当にネット上のアセンブリの解説サイトで各命令のバイトコード?を調べて、
上記で「Asm」のチェックを外した状態で、調べて分かったバイト列を入力、という方法を使うこともあります。
と、分かったようなこと書きましたが、もっと詳しい方の説明を聞いた方がよいと思います・・・

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.43)
| 投稿日 |
: 2016/07/14(Thu) 23:07 |
| 投稿者 |
: (仔猫)◆KCezBilYINU |
| ID情報 |
: G/Ez7s/YEod2T9QJAAPZB0 |
| 参照先 |
: |
>>39
NEExploiTさん
この案が通れば、SSG変更手続きが楽になりますね。
デフォはOFFで(旧仕様の括弧計算)
新規に作られるSSGはONで…。
>>40
yunさん
おお!流石です。
正常な処理に戻れない原因ですが…僕の経験ではフラグ変化やスタック変化させると元の処理に影響が出る可能性があるので
この辺りの注意が必要かな?と。僕ではまだスタック変化は実際に処理をやってみないとわからないので。
>>41
amateurさん、ありがとう。
勉強になります。
(アセンブラの本ではあまり実践的な事は書かれてないです)
knさん、ナスさん、それに変態紳士さんの書き込みやアップ物で覚えました。
あとOLDGAMERさんの講義されてたスレが勉強になりました。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.44)
| 投稿日 |
: 2016/07/15(Fri) 04:03 |
| 投稿者 |
: 変態紳士◆G9/eqTtPaq. |
| ID情報 |
: KDuP7EyuQeFztgqQrrIzD. |
| 参照先 |
: |
>>38, >>39
(仔猫)さん、NEExploiTさん
SSG for SpoilerAL ver 6.1
↓
SSG for SpoilerAL ver 6.2
これが必要になる変更を加えました。
6.1と書けば影響のない修正。
6.2と書けば全て適用されます。
以下の範囲に影響します。
・演算子の優先順位の修正
・シフト演算の追加
・括弧バグの修正
>>40, >>42, >>43
yunさん、amateurさん、(仔猫)さん
バイトコードですか・・・
SpoilerALの修正にもバイトコードが多いですね。
sub ecx,[edx] というのはアセンブリ言語(通称アセンブラ)と言いまして、
2B 0A というのがバイトコードになります。
マイクロソフトだと、MASM (Microsoft Macro Assembler) というツールで
アセンブラからバイトコードに変換できます。
バイトコードからアセンブラは逆汗(逆アセンブル)と呼んだりします。
・DISPE
・DISWIN
・dumpbin
・objconv (Object file converter)
・PE Explorer
こんなツールで吐き出せます。
メモリ上の命令ならうさみみ単独で変換できて便利です。
CPU命令の技術資料はIntelかAMDにPDFで用意されています。
ただしCPU毎に命令に必要なクロック数やパイプラインが違ったり、色々と個体差があります。
最近はPentiumより前のCPUを見かけませんのでi586(Pentium)に対応していれば問題ないと思います。
辞書的に使えるサイトと言えば、
・Tips IA32(x86)汎用命令一覧
・最適化の為のアセンブラ
・アセンブラ入門 - Biglobe
・PDF IA 32 インテル アーキテクチャ ソフトウェア・デベロッパーズ・マニュアル
こんなのがあります。
>>41
amateurさん
変数機能については再考します。
以前のシフト演算の時も単なるパッチではなくパーサーの再実装で何度か試行錯誤していました。
今回の難関はBorlandC++のクラスの追加作業で、
アセンブリ(バイトコードですね)から追加しようというアプローチで苦戦を強いられています。
なので、楽な方法はないかと考え直します。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.45)
| 投稿日 |
: 2016/07/15(Fri) 08:05 |
| 投稿者 |
: (仔猫)◆KCezBilYINU |
| ID情報 |
: ArhoNq5YdBPYfbKlW2MYW/ |
| 参照先 |
: |
>>44
変態紳士さん
更新ありがとうございます。
僕の投稿したSSGは実数表示とUnicode表示の機能のみ使ったものだったので
全く変更なく下位互換が取れてます。ご配慮感謝。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.46)
| 投稿日 |
: 2016/07/15(Fri) 08:37 |
| 投稿者 |
: NEExploiT◆1I03EIw9l9M |
| ID情報 |
: 1sHi/mLvStixai1.h8T9d/ |
| 参照先 |
: |
>>44
乙です
>>40
> 他のゲームでも試しに同じようにやってみても、一応改造はできるけどゲームが落ちたり、
> 表示がおかしくなったりした
- 他の部分で想定外の使い方をされている (とりあえずブレークポイント設置して様子見)
- フラグレジスタを破壊してしまって直下の条件ジャンプが正常に動作していない (書き換え箇所付近の意味を解析する)
- 相対ジャンプ命令を単純に他の部分から持ってきてしまいジャンプ先が想定外
- 書き換え前の命令と書き換え後の命令でサイズが違うのを調整していない
ニーモニックから機械語への変換は
ollydbg/x64dbgに内蔵されてるアセンブラを用いています
# ollydbgを昔は使ってたのですが有名になりすぎてバグを狙い撃ちにされる事も多いので最近はx64dbg
バイトコードだと、VM上の命令っぽいので
単に機械語とか命令やInstruction とかnative codeを私は使いますかね

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.47)
| 投稿日 |
: 2016/07/15(Fri) 21:22 |
| 投稿者 |
: dipper◆LEFxdWWYR3c |
| ID情報 |
: KZvo7.mR9CiId/rCr9cXk. |
| 参照先 |
: |
時間が無かったのと避難所のバックアップの修正で、こちらのスレの返信を疎かにしていました…
>>31 (仔猫)さん
そう言えばそんな感じの単語でしたね…改めてHNを指摘されると恥ずかしいものが…
ただgoogle翻訳で翻訳すると「ひしゃく」でしたけどね。
>>33 amateurさん
避難所のバックアップをアプしたのは良いですが、中途半端なバックアップの所為か「過去板サルベージ依頼等」が混乱してた様な…
なんか、すみません…
>>36 変態紳士さん
なんか、大変な事をお願いしてしまった様で…申し訳ありません。
それとパッチの更新お疲れ様です。
今の私では到底できません…というかこの先もできる気が…

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.48)
| 投稿日 |
: 2016/07/15(Fri) 22:04 |
| 投稿者 |
: yun◆k9Mg1P3V1DY |
| ID情報 |
: fsfhLJziEgplXIyBsHvaa. |
| 参照先 |
: |
>>42 amatureさん
>適当にネット上のアセンブリの解説サイトで各命令のバイトコード?を調べて、私も調べてて、あれ?書き方複数ある?
っと思ったので変な命令をしておかしくさせたらだめだなぁと思ったので、デバッカ上では変更せず、SSG上で変更させた
方がいいとかなぁ思った次第で…。
今の所、目的とする命令が他の所にも使われているのでその辺りで対処できてますけど、なかったらどうしていいのか
わからなくなるので、詰まったら詰まったでなにか対策を考えるつもりです。
>>43 仔猫さん
>フラグ変化やスタック変化させると元の処理に影響が出る可能性があるので
これなんですよねぇ…。実験をいろいろやったり、落ちたゲームはSSG上で対象となるアドレスを
書き間違えてそこからなおさなかったような気もするので、それでおかしくなったのかも…。
プログラム改造は細心の注意を払わないといけないことを思い知らされました。
>>44 変態紳士さん
パッチ修正と詳しい説明の程、ありがとうございます。
>マイクロソフトだと、MASM (Microsoft Macro Assembler) というツールでアセンブラからバイトコードに変換できます。
やっぱりそういうソフトがあるんですね。今の所は同じ命令の部分を真似して書いてますが、他につかってる部分がなければ使ってみようと思います。
>>46 NEExploiTさん
>他の部分で想定外の使い方をされている (とりあえずブレークポイント設置して様子見)
>フラグレジスタを破壊してしまって直下の条件ジャンプが正常に動作していない (書き換え箇所付近の意味を解析する)
>相対ジャンプ命令を単純に他の部分から持ってきてしまいジャンプ先が想定外
>書き換え前の命令と書き換え後の命令でサイズが違うのを調整していない
ソフトの使い方からいろいろ試していたのでここにあげられたのはすべてありえそうな感じです。
細心の注意を払いたいと思います。
>>47 dipperさん
どうでもいい豆知識的なものですが、北斗七星はひしゃくの形をしているので(「斗」自体がひしゃくの意味)
北斗七星とひしゃくの意味の両方の意味があるのではないでしょうか。
Big Dipper=北斗七星、Milk Dipper=南斗六星、Little Dipper=小北斗七星=こぐま座・・・ らしいです。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.49)
| 投稿日 |
: 2016/07/15(Fri) 22:14 |
| 投稿者 |
: amateur◆kR..xsXL6RU |
| ID情報 |
: KYWosI7Yn2TXRdUEb1i.e/ |
| 参照先 |
: |
>>44
変態紳士さん
更新ありがとうございます。
これで、デフォルト仕様対応のSSGと、修正パッチ適用前提のSSGが問題なく両方使えるようになりました。
迅速なご対応に感謝です。
変数機能については、大変なことを理解せずに気軽に希望を書いてしまったようで恐縮です・・・
アセンブリの説明もありがとうございます。
辞書的に使えるサイトとして挙げていただいた「Tips IA32(x86)汎用命令一覧」は、
私がよく参考にしているサイトです。信頼できるところだったのですね。
紹介いただいた他のサイトも今後参考にしたいと思います。
>>46
NEExploiTさん
>ollydbgを昔は使ってたのですが有名になりすぎてバグを狙い撃ちにされる事も多いので最近はx64dbg
ollydbgって狙われてるんですか(セキュリティ上の問題?)
ollydbgは日本語化パッチがあるので使いやすいかなと思っていたのですが、
x64dbgの方も検討しないといけないかな・・・
>>47
dipperさん
いえいえ、とんでもないです。
こちらは、バックアップを提供くださって、物凄く助かっております。
あらためて、お礼申し上げます。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.50)
| 投稿日 |
: 2016/07/16(Sat) 02:14 |
| 投稿者 |
: (仔猫)◆KCezBilYINU |
| ID情報 |
: ArhoNq5YdBPYfbKlW2MYW/ |
| 参照先 |
: |
>x64dbg
入れてみました。
起動時、強制的にフルスクリーンで起動するのは仕様なのかな?
ウィンドウモードで起動するにはどうすれば?とか色設定をダーク系にしたいのでもそもそっと設定やってます。
ollyと比べると一長一短かな?
ジャンプ系が視覚で認識できるのは良さそうですが…。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.51)
| 投稿日 |
: 2016/07/16(Sat) 12:48 |
| 投稿者 |
: NEExploiT◆1I03EIw9l9M |
| ID情報 |
: 1sHi/mLvStixai1.h8T9d/ |
| 参照先 |
: |
>>49
金掛けてanti-debugしてあるようなソフトを解析した際に色々めんどくさかったんです。。。
x64dbgも全部に対応してたりする訳じゃないですが
>>50
操作系に関しては慣れ補正もあるのですがollydbgのが楽ですね
x64dbgの魅力は
- 更新頻度
- ctrl+hでハイライト選択(ollydbg2.01でのレジスタの強調表示)
- 64bit 対応
ってとこでしょうか

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.52)
| 投稿日 |
: 2016/07/19(Tue) 12:39 |
| 投稿者 |
: 大七星◆y3el2XfkmCg |
| ID情報 |
: IYf1R61jt2bttQr0Tslot. |
| 参照先 |
: |
お久しぶりです、お邪魔いたします
また御無沙汰してる間に時代の流れというか
この場を借りて両管理人にお礼申し上げます
括弧バグやらは回避のしようがあったものの
ワイド文字対応とはリスト嫌いには捗りますな
さて私の作ったものはこれくらいだったでしょうか
実装とUIに悩み作る作るとは言ったが何時出来るとは…だった
mono用デスクライバ(主にUnity向け)も試作品が出来ました
64bitアプリ対応でXP SP2以降対応のはず…確認はWin7x64だけですが
monoアプリが起動している状態でOpenProcess▼すると列挙されますので
選択するとメモリを1ページ間借りして、0xC0XXXXXXが発生したスレッドのみ殺す
例外ハンドラがインストールされ、最左のボックスに間借りアドレスを表示します
(このツールはアタッチはしません、ボタンは現状GetTickCountをテストします
SEH→アセンブラで実装したら環境依存過ぎない?
SetUnhandledExceptionFilter→デバッガと相性が悪い
⇒SEHより先にcatchしてしまうがVEHによる実装…
(しかし_endthreadexすると参照カウントが残留してしまう?
具体的な実装はILSpyやdotPeekで見て頂くとして
簡易説明をPNGファイルで同封しておきました
※この添付は過去の遺物です、PostfixALは6.1の優先順位バグを確認できますが
特に制約のない限り、SpoilerALの修正パッチを使用した方が良いでしょう
残りのユーティリティは別途用意したスレッドを参照してください

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.53)
| 投稿日 |
: 2016/07/19(Tue) 21:25 |
| 投稿者 |
: amateur◆kR..xsXL6RU |
| ID情報 |
: 43KEWsk1BZcWDnPf1e3Dc1 |
| 参照先 |
: |
>>52
大七星さん、書込み&ツール類のアップありがとうございます。
こちらにも来て頂いて安心しました。
臨時板の閉鎖告知から削除まで4日しかありませんでしたので、
この掲示板の存在に気付かれていないのではと心配していました。
こちらでも宜しくお願いいたします。
それと、mono用のツールのご提供ありがとうございます。
説明のPNGファイル拝見しましたが、解析が捗りそうなツールですね。
早速、Unity製のゲームで使わせていただきます。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.54)
| 投稿日 |
: 2016/07/20(Wed) 02:12 |
| 投稿者 |
: 変態紳士◆G9/eqTtPaq. |
| ID情報 |
: sqsclH3WYVYCnxp259SPg0 |
| 参照先 |
: |
試作1回目 (試作なのでNo.4のファイルは更新していません)
疑似的な変数機能を追加しました。
なぜ疑似的なのかと言うと、ポインタやアドレスは常に変動する事を前提としているので
その都度計算しています。なので速くなる事はありません。
もし速くなるとすれば再実装されたパーサーの影響でして、疑似的な変数は少しだけ遅くなります。
動作としてはアドレスの書式の前に[variable]を解釈します。
変数として使われていなくてもアドレス書式が出現する度に動的に解釈します。
これでは使いにくいので、[variable]を開始とし[/variable]を終了とするスコープにしています。
要らない場所では終了させてください。
・[variable]
変数スコープの開始です。
後ろにアドレスの式を書くことが出来ます。式を書かなくても開始です。
[enable]と同じで円記号のエスケープシーケンスとアドレスである事を示すアンダースコアは不要です。
区切りはセミコロンでいつも通りです。
[repeat]や[subject]では親から引き継ぐはずです。たぶん。
・[/variable]
変数スコープの終了です。
・[expr]
式を追加します。単純に構文を結合しているだけです。
変数スコープの外では無視されます。
それとヘッダを6.2にしないと機能しません。
コミットやキャッシュは・・・疲れるので無理です。.Netのツールなら出来ます。
少し疲れたのでテストは不十分です。
※編集
試作のファイルは>>4に統合

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.55)
| 投稿日 |
: 2016/07/20(Wed) 21:35 |
| 投稿者 |
: amateur◆kR..xsXL6RU |
| ID情報 |
: 8qzHM6cMTJt2pc1wjdUcH0 |
| 参照先 |
: |
>>54
変態紳士さん
要望させていただいた変数維持機能の追加ありがとうございます。
作業お疲れ様です。
追加機能を早速試してみたのですが、非常に便利な機能で大変有難いです。
ただ、基本的には動作しているようなのですが、
変数維持が特定の条件では機能していない場合等があるようです。
例として、
----------------------
[variable][:0x02000150:]=>ad
[subject]項目1/現在値/_:calc, _0x02000100+$ad, 0, 0xFFFFFFFF, unsigned
[/variable]
----------------------
(SSGデバッグモードのログ)
アクセスアドレス[0x2000100]
--------
Parsing「0x02000150」→[0x2000150]
Parsing「:]」→[0x90]
Parsing「ad」→[0x90]
Parsing「0x02000100」→[0x2000100]
Parsing「$ad」→[0x0]
Parsing「+」→[0x2000100]
アクセスアドレス[0x2000100]
----------------------
上記のとおり、「$ad」→[0x0] となっており、「ad」→[0x90] と定義した変数が維持されていません。
しかし、下記の例では変数維持が機能しています。
----------------------
[variable][:0x02000150:]+0=>ad
[subject]項目2/現在値/_:calc, _0x02000100+$ad, 0, 0xFFFFFFFF, unsigned
[/variable]
----------------------
アクセスアドレス[0x2000190]
--------
Parsing「0x02000150」→[0x2000150]
Parsing「:]」→[0x90]
Parsing「0」→[0x0]
Parsing「+」→[0x90]
Parsing「ad」→[0x90]
Parsing「0x02000100」→[0x2000100]
Parsing「$ad」→[0x90]
Parsing「+」→[0x2000190]
アクセスアドレス[0x2000190]
----------------------

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.56)
| 投稿日 |
: 2016/07/20(Wed) 21:38 |
| 投稿者 |
: amateur◆kR..xsXL6RU |
| ID情報 |
: 8qzHM6cMTJt2pc1wjdUcH0 |
| 参照先 |
: |
(1000字の書込み制限により分割。>>55の続き)
他に、アクセスアドレス自体は正常ですが、SSGデバッグモードのログがおかしい場合があります。
---------------
[variable]0x02000100=>ad
[subject]項目4/現在値/_:calc, _0x40+$ad, 0, 0xFFFFFFFF, unsigned
[/variable]
---------------
アクセスアドレス[0x2000140]
--------
Parsing「0x02000100」→[0x2000100]
Parsing「ad」→[0x2000100]
Parsing「0x40」→[0x40]
Parsing「$ad」→[0x0]
Parsing「+」→[0x40]
アドレス[0x40]で読み込みエラー。
---------------
上記のような感じです。アクセスアドレス自体は正しく、書換えも正常です。
少し試しただけですが、取り敢えず報告させていただきます。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.57)
| 投稿日 |
: 2016/07/20(Wed) 22:24 |
| 投稿者 |
: amateur◆kR..xsXL6RU |
| ID情報 |
: 8qzHM6cMTJt2pc1wjdUcH0 |
| 参照先 |
: |
>>54の追加された変数維持機能ですが、
色々便利な使い方があるようです。
特に、[repeat]と併用して、添付のテキストファイル記載のような使い方が可能ですね。
(1000字を軽くオーバーするので添付ファイルに記載します)
これは物凄く便利ですね(有難や有難や・・・)
ただ、デバッグモードのログがおかしい問題点?もありますが。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.58)
| 投稿日 |
: 2016/07/21(Thu) 06:35 |
| 投稿者 |
: (仔猫)◆KCezBilYINU |
| ID情報 |
: ArhoNq5YdBPYfbKlW2MYW/ |
| 参照先 |
: |
>>52
大七星さん提供ありがとうございます。
unity解析に役立てたいと思います。
以前、解析をやって投げた作品(タイトルに戻るとアドレスが変動)
http://aodamatei.sakura.ne.jp/dss/
3D シューティングゲーム
DustShooters(C88試遊版)
もっかい解析やってますがなぜか
ツールを使うとフリーズしてしまう(ー'`ー;)ムムッ
>>54
変数実装ついにですか
ありがとう御座います。
パラサイトルーチンを勉強してたら…少し思い出しまして…。
アプリ側で使われてないメモリを必須コード(toggle)とか随時ファンネルライト等で書き込んでおいて、その空きメモリを変数代わりに使うと言う方法だったような(臨時管理人さんが使われてたような気が…。)
空きメモリが使えない場合は、できない技ですが。。。
>>57
amateurさん
詳細動作報告ありがとう
使い方の参考になります。これはreplace減りそうですね。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.59)
| 投稿日 |
: 2016/07/21(Thu) 21:46 |
| 投稿者 |
: amateur◆kR..xsXL6RU |
| ID情報 |
: .O3X6iQgHsj8Pe/wTvUyO1 |
| 参照先 |
: |
>>58
(仔猫)さん
大七星さんの新ツール、私もUnityのフリーゲーム2つで試しましたが、
フリーズはしないものの、それっぽいアドレスを入力・Enterしても何も反応が無かったですね。
各ゲームによって、何か仕様が違うのでしょうか・・・
>その空きメモリを変数代わりに使うと言う方法だったような(臨時管理人さんが使われてたような気が…。)
その方法は私も某ゲームで臨時板管理人さんが使ってるのを見ました。
少し前に解析した某Unity製ゲームでその手法を真似して、
空き部分のアドレスに値をcalcで書き込み、その値によって読み込むアドレスを変えるってのを書きました。
アイテムやスキル等の主にデータベースの項目数が多いと、
[repeat]の変数部分が多くなりすぎてSSG読み込みに時間かかりすぎますので、
それへの対策としてアイテム等の表示を、【書き込んだ値】*100個ずつズラすって手法でした。
思いっきり臨時板管理人さんの手法の真似ですけど。
変態紳士さんが実装してくださった変数機能ですが、
[replace]のほぼ上位互換として使えそうですね。
ある基準アドレスからのオフセットでアドレスをまとめて表現できるような単純な構造でしたら、
[replace]の方が良いかなと思いますが、
多重ポインタ使用の複雑な構造の場合、この変数機能の方が圧倒的に使い勝手が良いと思います。
[replace]だと、多段階で使うとオフセット値が全部加算されてしまう等、色々面倒な仕様ですし。
単純に別の[group]に記述を丸投げしたいとか、「置き換え」としての需要は依然あると思いますけど。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.60)
| 投稿日 |
: 2016/07/21(Thu) 23:01 |
| 投稿者 |
: 変態紳士◆G9/eqTtPaq. |
| ID情報 |
: KDuP7EyuQeFztgqQrrIzD. |
| 参照先 |
: |
色々やってたらSpoilerALのバグを思い出したので>>4を更新しておきました。
演算系なので6.2じゃないと対応しませんけど。
>>55-57
amateurさん
報告どぉもです。
いちおう作ったものの・・・ 気に入らないので直したりせずに仕様が変わる気がします。
今はグループ無しのreplaceみたいになってますが、コード中の何かをテキスト置換するような事にしたいなと。
C言語のdefineに似たようなものがいいなと思ってます。
それと報告いただいた内容ですが、こちらで試した限りでは再現しませんでした。
そのSSGを添付しておきます。
作り直してしまうとテストしてもらう意味は薄れますが、
今回は色々試している内に他のバグを直したので役に立ちました。
>>58
(仔猫)さん
パラサイトルーチンですか・・・
今の修正パッチだと寄生獣(パラサイトモンスター)になるんでしょうか。
>空きメモリが使えない場合は、できない技ですが。。。
ある程度コードを書けば空きメモリも作れるんですが、スクリプトレベルで実装するものではないと思います。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.61)
| 投稿日 |
: 2016/07/22(Fri) 01:24 |
| 投稿者 |
: amateur◆kR..xsXL6RU |
| ID情報 |
: oCV3xwJR1wuug0nP5WP9F0 |
| 参照先 |
: |
>>60
変態紳士さん
検証していただいてありがとうございます。
添付いただいたテキストファイルの拡張子を「ssg」に変えて、内容はそのままで試してみましたが、
いずれも、最終的に「$ad」→[0x0] となり、正常にアクセスできませんでした。
一応、SpoilerALを一度削除し、改めて公式からDLした本体ファイルを解凍して
>>54のパッチを適用してから再度試しましたが、同じ結果です。
勿論、>>60の添付ファイルを、拡張子を変える以外はそのまま使いましたので、
ヘッダは「SSG for SpoilerAL ver 6.2」です。
一応、結果のログをコピペしたファイルを添付します。
何か、別の環境要因があるのでしょうか・・・
関係ないかもしれませんが、SpoilerALは管理者権限で実行しております。
OSは、Win7x64 です。
(追記)
>>60の添付いただいたSSGの「項目2」については、
時々、正常にアクセスできる場合もあります。
(アクセスアドレス[0x400000]となり、電卓の「現在値」に[00505A4D]と表示される)
しかし、添付のファイルに記載したとおり「アドレス[0xFFEFA5B3]で読み込みエラー。」となる場合もあり(この場合の電卓の現在値は[?]です)、
項目2についてはアクセスアドレスが安定していない感じです。
なお、項目1と「りぴーと」については、常に正常にアクセスできない状態です。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.62)

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.63)
| 投稿日 |
: 2016/07/22(Fri) 07:29 |
| 投稿者 |
: (仔猫)◆KCezBilYINU |
| ID情報 |
: ArhoNq5YdBPYfbKlW2MYW/ |
| 参照先 |
: |
>>62
大七星さん
すいません!入力ミスでした(アドレス+8hで入力してました、これでフリーズ)
別のunity製で試したところ普通に表示されるので
もっかい試した所…すんなりOKでした。お手数おかけしました。
>クラスが特定できたらAssembly-CSharp.dllを逆コンパイルしてみるのも手
おお!貴重な情報ありがとう御座います。勉強になります。
>>60
変態紳士さん
vista x86とWin7 x64で試した所、amateurさんや大七星さん所と同じでNGです。
更にamateurさんの報告を元に
[:0x00400000:]+0=>adとすると一番上の項目1だけOKで
他は数値が正しく得られてない状態です。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.64)
| 投稿日 |
: 2016/07/22(Fri) 20:59 |
| 投稿者 |
: 変態紳士◆G9/eqTtPaq. |
| ID情報 |
: sqsclH3WYVYCnxp259SPg0 |
| 参照先 |
: |
試作2回目
前回のバグを修正しました。
仕様を変えると言っていたのですが、大七星さんのSSGが綺麗に書けていたので潰してしまうのは勿体ない気がしてきました。
残してもいい気がしてます。
考えているdefine型の機能ですが、縦書きexprの方が綺麗に書けてしまいます。
でも任意に置換できる点ではdefineの方が・・・
とりあえず、defineっぽいテキストを添付してみます。
※編集
試作のファイルは>>4に統合

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.65)
| 投稿日 |
: 2016/07/23(Sat) 01:51 |
| 投稿者 |
: NEExploiT◆1I03EIw9l9M |
| ID情報 |
: 1sHi/mLvStixai1.h8T9d/ |
| 参照先 |
: |
需要あるのか、コレで本当にズレ防止できるのかは知らんが
あるアドレスを
PEヘッダからセクションヘッダ読みだして
ベースアドレス + セクション先頭へのオフセット + オフセット形式にするツールを作成中
SSG式はまじめにPEヘッダ読み込むのと手抜き方式の2タイプをとりあえず出力
(ただし、現在うさみみ式しか検証してない
monoの列挙は
この辺辿れば行けるのかな
rootドメインはここから取れる

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.66)
| 投稿日 |
: 2016/07/23(Sat) 16:53 |
| 投稿者 |
: amateur◆kR..xsXL6RU |
| ID情報 |
: bMask9yucm5i1NN7v6x0W1 |
| 参照先 |
: |
>>62
大七星さんの>>52のmono用ツールですが、
試してみたUnity製ゲーム全てで正常動作しました。
>>59で「何も反応が無かった」と書きましたが、
そうなったのは、ツールを管理者権限で実行したのが原因のようです。
管理者権限なしで通常実行すれば、メモリレイアウトが表示されました。
(管理者権限で実行すると、「この操作を正しく終了しました」と表示されてもメモリレイアウトが表示されないみたいです)
お騒がせして申し訳ありませんでした(ペコリ)
3つ試したゲーム中、2つでは詳細に情報が表示されてビックリです。これは物凄く便利ですね。
残り1つはデータ格納方法がちょっと特殊っぽい感じで1行しか表示されませんでしたが、
これは多分珍しいタイプだと思いますので。
便利なツールの提供ありがとうございます。
>件のJavaも中間言語なので、ソースレベルまで逆コンパイルできます(以下略)
Javassist使用については、臨時板の最後の方でNEExploiTさんも言及されていましたね。
やはり、スキル高い方々は色々な手法をご存知なのですね(知識やスキル習得が追いつかない・・・)
>>64
変態紳士さん
修正ありがとうございます。
試したところ、>>60で添付いただいたSSGが正常動作しました。
それと、define型とはそういう感じなんですか。
個人的には最初の[variable]の方が分かりやすい気がしますが、
define型は好きな位置に出現させられる、とのことですので実際に使ってみないと分からないですね。
「好きな位置」にテキスト置換ということは、[repeat]の変換式部分[! !]みたいに項目名部分等にも使えるってことでしょうか。
>>65
NEExploiTさん
セクション先頭のアドレスを特定する方法は、
少し前に臨時板の方で(元)管理人さんや大七星さん達に詳しく教えていただいて、
ある程度は分かったような気がしてるのですが(実際には一度作った雛形をSSGでほぼコピペしてるだけ・・・)
PEヘッダやセクション等を詳しく理解しようとすると結構難しくて・・・
ツールの完成に期待しています。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.67)
| 投稿日 |
: 2016/07/23(Sat) 19:42 |
| 投稿者 |
: 変態紳士◆G9/eqTtPaq. |
| ID情報 |
: KDuP7EyuQeFztgqQrrIzD. |
| 参照先 |
: |
>>66
amateurさん
>>個人的には最初の[variable]の方が分かりやすい気がしますが、
その通りですね。[variable]と[expr]は縦書きにした場合に可読性の高い構文が書けると思います。
[variable]の問題は、
仮に[variable]ブロックで項目1と項目2があったとして、
項目1では[variable]の変数が使われているけれど、
項目2では全く使われていない場合、項目2でも[variable]の処理を強制してしまいます。
――――――――――――――――――――――――――――――――――――――――
[variable]$A+$B=>C
[subject]項目1/現在値/_:calc, _$C, 0, 0xFFFFFFFF, unsigned
[subject]項目2/現在値/_:calc, _0x00400000, 0, 0xFFFFFFFF, unsigned
[/variable]
――――――――――――――――――――――――――――――――――――――――
上記のような場合は[variable]の外に出せばいいだけですが、
[repeat]などのグループを囲んでいる場合は無理です。
[define]にはもうひとつの強みがあります。
関数的な構文が可能になる事です。次の例では$Valを引数にして値を暗号化しています。
――――――――――――――――――――――――――――――――――――――――
[define]encrypt ($Val rol 14)^[:[:[:[:[:MName::AGERC.DLL+0x1083:]:]+0x3A:]:]+0x5EBF8:]
[group]unit_name_value
,0=$4 0=>Val;$encrypt $$
,0=$4 11=>Val;$encrypt $$
,0=$4 12=>Val;$encrypt $$
[/group]
――――――――――――――――――――――――――――――――――――――――
[variable]がアドレス書式のイニシャライザだったのに対して、
[define]は式の後方にも配置できるのでこのような事ができます。
[expr]は直感的な式が書けますが処理の無駄を防げません。
[variable]と[expr]は可読性を高める目的で残そうと思っています。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.68)
| 投稿日 |
: 2016/07/23(Sat) 21:49 |
| 投稿者 |
: amateur◆kR..xsXL6RU |
| ID情報 |
: bMask9yucm5i1NN7v6x0W1 |
| 参照先 |
: |
>>67
解説ありがとうございます。
[variable]は直感的に読みやすいけど、処理に無駄が多いってことですか。
対して、[define]の場合は、定義した変数名が使用されている箇所のみテキスト置換で無駄がない?ということですかね。
後ろの暗号化の例については、
[group]unit_name_value 内の記述は、
それぞれ、0、11、12を「Val」と定義し、
上の[define]で定義した「encrypt」の式のとおり、
「$Val」(0、11、12)を暗号化し、その暗号化後の値を「組み替え型」命令でバイト列に変換する、
ということでしょうか。
要するに、[variable]の場合は、先に「0=>Val」等と定義する必要がある、つまり、
--------------------------------------------------------
[variable]0=>Val; 11=>Val2; 12=>Val3
[expr]($Val rol 14)^[:[:[:[:[:MName::AGERC.DLL+0x1083:]:]+0x3A:]:]+0x5EBF8:]=>encrypt1
[expr]($Val2 rol 14)^[:[:[:[:[:MName::AGERC.DLL+0x1083:]:]+0x3A:]:]+0x5EBF8:]=>encrypt2
[expr]($Val3 rol 14)^[:[:[:[:[:MName::AGERC.DLL+0x1083:]:]+0x3A:]:]+0x5EBF8:]=>encrypt3
[group]unit_name_value
,0=$4 $encrypt1 $$
,0=$4 $encrypt2 $$
,0=$4 $encrypt3 $$
[/group]
[/variable]
--------------------------------------------------------
上記のように書く必要があり、記述的にも無駄が多い、と(・・・?)
[define]を使うと、個別に先に定義する必要がなく、
「テキスト置換」なので例に挙げてくださったような書き方が可能なんでしょうね。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.69)
| 投稿日 |
: 2016/07/23(Sat) 22:10 |
| 投稿者 |
: 変態紳士◆G9/eqTtPaq. |
| ID情報 |
: sqsclH3WYVYCnxp259SPg0 |
| 参照先 |
: |
>>68
[variable]に無駄があるという主な理由は>>67の後半の関数マクロではなく、
前半の[variable]の強制です。
[repeat]の前で[variable]を宣言するとグループの中でも変数は使えますが、
宣言した変数が不要な項目でも同じ処理が発生します。
ループの中で延々と必要の無い計算をしてしまうので、この[variable]仕様はどうにもならないと思います。
これがグダグダ言っていた内容でして

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.70)
| 投稿日 |
: 2016/07/23(Sat) 23:00 |
| 投稿者 |
: 大七星◆y3el2XfkmCg |
| ID情報 |
: P.HWiSmA2ft/nUoqoZLG0/ |
| 参照先 |
: |
>>65
わざわざ有り難うございます、オブジェクト参照リストの
手前にサイズが配置されていたと思うので照らし合わせてみます
>>66
動作対象以上の権限があれば問題ないと思っていましたが
管理者権限で不発ですか、例外処理も含め調査してみます
…私の師はGoogle先生ですが、適切な検索ワードが鍵だと思います
Javassistを扱うにはJavaプログラミングが必要となりますが、
やっている事はJava版バイトコード編集なので、手動の比では…
>>67
[expr]が結合しているだけと仰っていたので
[variable]はやはりアドレス毎への前置ですか
ダブルリスト等では致命的な負荷になりそうですね
元々はアドレスコーディングの分割に引数を与えられたら
関数的に使えるのにと思っていたので[define]は向きますね
実装的には関数というより仰るようにマクロでしょうか
[variable]の方が綺麗に見えても、項目だけを見たとき
いきなり変数が現れると何処から来たのか?となるので
可読性もどうなんでしょう? 整形に逐一変数代入を行うと
速度低下にも繋がるでしょうし、両実装は保守的な負担も…?

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.71)
| 投稿日 |
: 2016/07/25(Mon) 02:52 |
| 投稿者 |
: 変態紳士◆G9/eqTtPaq. |
| ID情報 |
: sqsclH3WYVYCnxp259SPg0 |
| 参照先 |
: |
試作3回目
defineを実装しました。
サンプルっぽいSSGは以下のファイルです。
source\test\__define_test__.ssg
草案の時点でテキストを書いていましたが少し実装を変更しています。
※編集
2016.07.25 添付ファイルは単項演算子の評価順序を修正し>>4に統合しました。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.72)
| 投稿日 |
: 2016/07/25(Mon) 21:22 |
| 投稿者 |
: amateur◆kR..xsXL6RU |
| ID情報 |
: 1f4vPx6miFr1mu97mB6T7/ |
| 参照先 |
: |
>>71
更新ありがとうございます。
サンプルのSSGで動作確認しましたが、全ての項目で正常に動作しています。
これから色々試して使い方に慣れていこうと思います。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.73)
| 投稿日 |
: 2016/07/25(Mon) 21:38 |
| 投稿者 |
: NEExploiT◆1I03EIw9l9M |
| ID情報 |
: 1sHi/mLvStixai1.h8T9d/ |
| 参照先 |
: |
ほとんどssg書かない人ですが提案だけ
MName::nul で一番先頭のモジュール(私の試した限りでは実行ファイルのモジュールになる)を取れると便利な気がする
ちなみにnulというファイルは基本作れない
UNCパス使えば作れるが扱いがめんどくさいので基本的にありえない
実装のオススメとしてはTProcessCtrl::LoadModuleList呼出し後にリスト末尾にTProcessCtrl::GetFirstModule呼んでモジュール名をnulに変更して追加…みたいな感じ
ちなみにコレ考えてソース読んでてたら、
[replace]module0, ssc指定
でベースアドレス一番小さい奴が取れるっぽいというASLR環境では使えない仕様?を発見
>>66
本体と
アドレス解析サンプルで一応公開済みです
ドキュメント整備めんどくさい…
(「ソースがドキュメントだ。バグ も完全に記述されている」)
ProcessMemory-*.*.*.gem をダウンロードしてきて
gem install --local ProcessMemory-*.*.*.gem
ruby pe-sample.rb
と
gem i bundler
bundle install
bundle exec ruby pe-sample.rb
どっちが楽なんだろう
(後者はgitのインストールが必要かも?)

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.74)
| 投稿日 |
: 2016/07/26(Tue) 23:51 |
| 投稿者 |
: 変態紳士◆G9/eqTtPaq. |
| ID情報 |
: sqsclH3WYVYCnxp259SPg0 |
| 参照先 |
: |
>>73
なかなか面白かったです。
一番先頭のモジュールが実行モジュールとの事ですが、
もしこれがLDR_MODULEの順序だとしたら、ロード順、アドレス順、初期化順のいずれかで、
いずれにしても仕様ではないと思うので。
実装としてはPEBのベースアドレスと比較して追加するようにしました。
テストに使ったのは「その古城に勇者砲あり!」で、
これが
_(MName::yuusya.exe|MName::main.bin)
こんな感じになりました。
_MName::nul
ファイルは>>4に置いてます。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.75)
| 投稿日 |
: 2016/07/27(Wed) 22:22 |
| 投稿者 |
: NEExploiT◆1I03EIw9l9M |
| ID情報 |
: XunziRhNjJtr/.3bsheW/0 |
| 参照先 |
: |
これでもう
_MName::浮遊都市の作り方.exe みたいな日本語混じりみて不安に思う必要もないですね
乙です
PEB話には聞いた事ありましたが、そういう手段もあったか
こっちもundocumentな仕様な気もしますが
正規?な手段だとDLL注入なりCreateRemoteThreadなりでGetModuleHandle(0)を対象プロセス内で呼び出すしかないのか?

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.76)
| 投稿日 |
: 2016/07/29(Fri) 00:18 |
| 投稿者 |
: 変態紳士◆G9/eqTtPaq. |
| ID情報 |
: sqsclH3WYVYCnxp259SPg0 |
| 参照先 |
: |
>>75
試しにGetModuleHandle(NULL)の処理をみると
mov eax, [fs:18h] ; TEB
mov eax, [eax+30h] ; PEB
mov eax, [eax+08h] ; ImageBaseAddress
という感じで非公開の内容を覗いても意味がありませんでした。
パスを比較する方法もあるけど、そもそもパスは比較するものじゃないので。
Microsoftにコードサンプルがあればそうしますが。
またはModule32Firstがアドレス順や初期化順じゃなくてロード順と書かれたドキュメントがあれば。
結局、コードインジェクションが確実な方法になってしまうのでしょうか。
なんだか奇妙ですね。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.77)
| 投稿日 |
: 2016/07/29(Fri) 03:44 |
| 投稿者 |
: 大七星◆y3el2XfkmCg |
| ID情報 |
: F7..R5/DmSEp1igC/8YlO. |
| 参照先 |
: |
>>52が管理者権限で機能しない理由は対象より権限が上だと
ツールが用意したリダイレクト用パイプを対象側が開けない様です
GetLastError()が64bitで妙なのでスルーしてましたが今度直します
[define]を少し試してみましたが、自由度が増した分
置換タイミングと中身には気を配る必要がありそうですね
関数的に文を書くと式中に配置できない…とか、自分で規則を決めるべきか
>>76
少しズレますが.NET Reference SourceのProcess.MainModuleはどうでしょう
バックエンドではネイティブメソッドを呼び出していて
コメントも書かれているので参考になるかと思うのですが

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.78)
| 投稿日 |
: 2016/07/29(Fri) 07:19 |
| 投稿者 |
: NEExploiT◆1I03EIw9l9M |
| ID情報 |
: 1sHi/mLvStixai1.h8T9d/ |
| 参照先 |
: |
kb175030
> EnumProcessModules( hProcess, &hModule, sizeof(hModule), &cbReturned );
> この呼び出しの結果、プロセスの最初のモジュールのハンドルが hModule 変数に格納されます。実際にはプロセスには名前がありませんが、プロセス内の最初のモジュールはそのプロセスの実行可能モジュールになることを覚えておいてください。
Module32Firstにもコレが適用されるか否か…

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.79)
| 投稿日 |
: 2016/07/29(Fri) 18:56 |
| 投稿者 |
: NEExploiT◆1I03EIw9l9M |
| ID情報 |
: 1sHi/mLvStixai1.h8T9d/ |
| 参照先 |
: |
VXのシンボルテーブルをダンプしてみた。
07/31
- XP/VXAceに対応
- 出力フォーマットを少し変更しキー文字列でソートしてみた

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.80)
| 投稿日 |
: 2016/07/29(Fri) 20:05 |
| 投稿者 |
: 変態紳士◆G9/eqTtPaq. |
| ID情報 |
: sqsclH3WYVYCnxp259SPg0 |
| 参照先 |
: |
>>77, >>78
丸投げしてすみません。
>>77
大七星さん
Process.MainModuleは思いついたのですが脳が拒否してました。
[define]ですが、どこまで使えるか分かってなかったりします。
たぶん高水準言語と同じ感覚では使えないと思うけど何かに使えたらいいな。
>>78
NEExploiTさん
GetModuleInformation+VirtualQueryExでもベースアドレスが取れたのですが、
WindowsXP以上(XP発売以前のドキュメントではNT4だったので新しいドキュメントが間違っている?)だったりモジュールハンドルをNULLにしてもいいと書かれてなかったり、
それで、
kb175030が有用だったのでEnumProcessModulesに変えてみました。
それとスイカを食べました。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.81)
| 投稿日 |
: 2016/07/30(Sat) 00:55 |
| 投稿者 |
: amateur◆kR..xsXL6RU |
| ID情報 |
: CgfYz/k0ke01TadA3cSHW0 |
| 参照先 |
: |
>>77
大七星さん
私が確認不足のまま「反応しない」とか書いてしまったせいで・・
余計な手間をおかけすることになったようで申し訳ないです。
管理者権限なしで実行すれば>>52のツールは普通に使えますので、私の環境では特に支障はないのですが・・・
>>79
NEExploiTさん
以前アップされた、ウディタのSSGを自動生成するのも凄かったですが、今度はツクールVXですか・・・
ツクール製をまともに解析したことのない私には有効活用できませんが、
ツクール製の解析経験のある方々には有用そうですね。
(ツクール製については、RICKさんの汎用SSGを使用するか、定番ツールorバイナリエディタでセーブデータ改造するかで済ませ、自力で解析はほとんどしない私・・・)
それと、変態紳士さんが実装してくださった[define]を使って、
試しに某フリーゲームの簡単なSSGを書いてみました。
諸事情によりゲーム名等は伏せますが、テキストファイルを添付します(一応動作確認済みです)
基本的な使い方の確認程度ですが、
こう書いた方が良いとかのご指摘等があればお願いします。
変態紳士さんのサンプルSSGに書いてくださってますが、
[repeat]の[!!]部分を[define]の式の中に使った場合は、後ろを [undef]で閉じる必要があることに注意ですね。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.82)
| 投稿日 |
: 2016/07/30(Sat) 06:47 |
| 投稿者 |
: 管理人◆PIflJPH.oeY |
| ID情報 |
: CNod52aYeanHXYFiqBoAT/ |
| 参照先 |
: |
>>79 NEExploiTさん
便利そうなツールの提供ありがとうございます。
しかし、使い方がいまいちわからないのでご教授いただけたら幸いです。
「Ruby」と「ProcessMemory-0.2.0.gem」は導入済みです。
「Ruby」は「RubyInstaller」を用いてインストールしました。
RPGツクールXPもデータ構造がかなり似ているので
このツールで解析出来たりするのでしょうか?

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.83)
| 投稿日 |
: 2016/07/30(Sat) 12:16 |
| 投稿者 |
: NEExploiT◆1I03EIw9l9M |
| ID情報 |
: XunziRhNjJtr/.3bsheW/0 |
| 参照先 |
: |
>>80
……スイカ?
>>82
デバッグ用コード入れっぱなしだったので修正しました。
(require 'pry' 消しただけ)
使い方ですか……
単純にGame.exeを起動して、プロセスIDをタスクマネージャーやうさみみで調べて
dump.rb入ってるフォルダをコマンドプロンプトから開いて
ruby dump.rb {プロセスID}
って入れるだけ
もしファイルに保存するなら
ruby dump.rb {プロセスID} > {ファイル名}
ちなみにプロセスIDはある程度推測するので
1000でも0x3e8でも可です
RPGツクールXPとVXは同じRuby1.8.3エンジンなので
- sym_tbl = ptr(0x1018A23C)
+ sym_tbl = ptr(0x101836BC)
と書き換えるだけで
RGSS104J.dllが同梱されてるものはダンプできました。
壁|<今回も自動書き換え作ろうと思ったがスクリプト素材全く使ってないフリゲ探すのがめんどくさい

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.84)
| 投稿日 |
: 2016/07/30(Sat) 14:02 |
| 投稿者 |
: 大七星◆y3el2XfkmCg |
| ID情報 |
: F7..R5/DmSEp1igC/8YlO. |
| 参照先 |
: |
確かにzipで固めておいても見つけにくい悪寒はありましたが…
私としてはAGEとRPGツクールMVは暇が出来れば纏められそうかな?
>>80
C#アレルギーですかッ、確かPSAPIはNT専用でしたよね
するとAPIというより結局出所は同じでOS次第に見えますが
モジュールIDの方は廃止されたので、今は比較しても無意味ですし
当代のプラットフォームツールセットだと9x系では動かないかな…?
>>81
いえ管理者として実行が確認不足だったのは私の方でして
本来「アクセスが拒否されました」と出るべき所です
エラーチェック一応は組んであるのですが、そのままでは
64bitで少し問題があったので採用していませんでした
解析対象と同等権限で実行する分には機能すると思います
一番の問題は不正なアドレスを指定した時ですけど…
レジスタとスタックを巻き戻せば正常終了できるのかなァ?
事前にチェックするべきか、構造体は確認しようがないような…

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.85)
| 投稿日 |
: 2016/07/30(Sat) 23:56 |
| 投稿者 |
: 変態紳士◆G9/eqTtPaq. |
| ID情報 |
: sqsclH3WYVYCnxp259SPg0 |
| 参照先 |
: |
>>84
大七星さん
>APIというより結局出所は同じでOS次第に見えますが
マイクロソフトのドキュメントによる言質が必要でした。
マイクロソフトのアップデートで「仕様ではない(またはドキュメントと考えていない)ので変更した」という事になれば、
それを追従して修正の修正を行う事になります。
たとえば>>76は3クロックでベースアドレスを取得しているOS内部の動作ですがドキュメント化されていない構造体メンバを参照をしています。
OSを作っている会社なのでそういった事が可能です。
.NET自体もアップデートに含む事が出来るのでドキュメントと同じ扱いはしませんでした。
>当代のプラットフォームツールセットだと9x系では動かないかな…?
修正パッチはシステム要件をWindows2000とPentiumIIIに設定しています。
まずコンパイラがXPより前のOSに対応していません。
これに対しては、C標準ライブラリを使わず、
source\SpoilerAL-version.dll\EditBinEx\Release\EditBinEx.exeのプログラムを用意してバイナリを書き換えています。
コンパイラもどうにかなりますが、
それよりも検証など手間がかかるのに対象の環境も少ないと思うので必要になった時点で考えると思います。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.86)
| 投稿日 |
: 2016/07/31(Sun) 02:01 |
| 投稿者 |
: 大七星◆y3el2XfkmCg |
| ID情報 |
: NTLOJPV4qaOmliJkspSDz0 |
| 参照先 |
: |
>>85
なるほど、確かにNTの現状がfirst=mainであっても
明文化されてないと変わらない保証はないですか
ドライバ作る場合とか更に死活問題ですかね
2000への配慮もそこまでとは脱帽です、読んで勉強します

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.87)
| 投稿日 |
: 2016/07/31(Sun) 20:41 |
| 投稿者 |
: 管理人◆PIflJPH.oeY |
| ID情報 |
: z5DW5NdLt80OuLB8Db61U1 |
| 参照先 |
: |
>>83 NEExploiTさん
指定された通りに実行してみましたが、らんだむダンジョンで試した所、
ENT:19 / BINS:11826
の部分は表示されましたが、
肝心の部分である取得したkeyの部分が表示されません。
「RubyInstaller」のファイル名は
「rubyinstaller-2.3.1-x64.exe」です。
もしかして32bit版でないと正常動作しないというオチですか?
あと、OSはWindows 10 Pro 64bitです。
>壁|<今回も自動書き換え作ろうと思ったがスクリプト素材全く使ってないフリゲ探すのがめんどくさい
解析用のゲームを作るだけなら体験版落として
適当にプロジェクトを作成するだけで完了するので、
数分でできると思います。
(ダウンロードとインストールの時間は除く)
サンプルのゲームも付属しているので中にはスクリプト素材を
使っていないゲームもあるかもしれませんね。
ちなみに汎用(笑)SSGは体験版を落として
超適当に作ったものをベースに作っていたりします。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.88)
| 投稿日 |
: 2016/07/31(Sun) 22:50 |
| 投稿者 |
: NEExploiT◆1I03EIw9l9M |
| ID情報 |
: 1sHi/mLvStixai1.h8T9d/ |
| 参照先 |
: |
XP/VXAce対応してみました。
>>87
コレだけなんですけどねぇ…
私も64bit版使用してるのでRuby 2.1以上ならばx86/x64問わないはずです
そのために自動テストしてるので
ENTの数が登録されてるシンボルの数になるので明らかになんか変ですね
(なお、VXAce対応しようとしたらENTの数出すのがめんどくさくなってたのでENT表示はバッサリ削除)
もしかしたら0x10000000 を他のDLLが占有してるのかも?
もう一度新バージョンで試してみてください

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.89)
| 投稿日 |
: 2016/08/01(Mon) 05:02 |
| 投稿者 |
: 管理人◆PIflJPH.oeY |
| ID情報 |
: hMqyWLxMwDSFMQLl2q7oM/ |
| 参照先 |
: |
>>88 NEExploiTさん
>もしかしたら0x10000000 を他のDLLが占有してるのかも?
まさにそれが原因でした。
ウィルス対策ソフトに「Kingsoft Internet Security」を
使用しているのですがこのソフトを使用中の場合、
このソフトのモジュール(?)が0x10000000を占有するようで、
「RGSS*.dll」が毎度へんてこな場所で読み込まれます。
対応ありがとうございました。
要望
出力ファイル名もPIDと同じように問うように設定出来ないでしょうか?
空白の場合はコマンドプロンプトに表示というように。
これなら.bat作成すれば簡単に実行できると思うので。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.90)
| 投稿日 |
: 2016/08/01(Mon) 16:01 |
| 投稿者 |
: NEExploiT◆1I03EIw9l9M |
| ID情報 |
: tcKuMZhHV5bLs8Qb0OprB0 |
| 参照先 |
: |
イメージベース決め打ちはこれだから…
(実証段階の自分用スクリプトだったから……と言い訳しとく)
検討しましたが、それはバッチスクリプト側で対処すべきと判断しました。
tasklistとpercol(もしくはpecoやcho)使えばPID選択も楽になりそう

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.91)
| 投稿日 |
: 2016/08/02(Tue) 00:48 |
| 投稿者 |
: dipper◆LEFxdWWYR3c |
| ID情報 |
: nncKnfSC5XFq/M8x8J9Yv0 |
| 参照先 |
: |
どうもご無沙汰しております。
>>変態紳士さん
機能追加を依頼した手前、真っ先に使用してお礼や動作確認などを行わなければならなかったのですが、
今頃の返信となってしまい申し訳ありません。
機能追加の件、本当にありがとうございます。
感謝の言葉しか出てきません。
ただ、現状は動作確認すら出来ていない状況だったり…

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.92)
| 投稿日 |
: 2016/08/02(Tue) 02:19 |
| 投稿者 |
: 変態紳士◆G9/eqTtPaq. |
| ID情報 |
: 2hT12tRTQ0Cl2D443IEiA. |
| 参照先 |
: |
>>91
こんばんはです。
私自身はSSGを書く事が少なくて、修正パッチを植えてSSGの収穫を待つ感じです。
こんな感じですので感謝というほどでもないかと。
ところで機能を酷使するようなゲームは何が次に来るんでしょう。
(期待したけど使えないという事も・・・)

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.93)
| 投稿日 |
: 2016/08/03(Wed) 00:56 |
| 投稿者 |
: (仔猫)◆KCezBilYINU |
| ID情報 |
: le594BgKSdope2CZDlf8H/ |
| 参照先 |
: |
遅くなりましたが動作報告です、変態紳士さんのパッチ問題なく使えてます。
amateurさんがサンプルSSGを公開して下さったので理解しやすく助かります。
変数は[/involve]の外でも有効なのかな?とか外だと一回しか書き換えが行われない?となるとゲームを再起動した際の動作はどうなるのかな?とか、まだ色々試してるところです。
そにしても一番のお気に入りは
MName::nul
これです。メチャ簡単で便利ですね@@;
>ところで機能を酷使するようなゲームは何が次に来るんでしょう。
>(期待したけど使えないという事も・・・)
今年?出るかどうか微妙ですがランス10で大活躍の予感が…。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.94)
| 投稿日 |
: 2016/08/03(Wed) 09:52 |
| 投稿者 |
: Take◆z2zOLLMPyz2 |
| ID情報 |
: kTW7PeVdf1yEM2QpabXpX/ |
| 参照先 |
: |
暫く見ない内に避難所は閉鎖されてたんですね…
何はともあれ新たな活動の場を提供してくれた管理人さんには感謝です。
またパッチやツール等の制作者の方々はお疲れ様です。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.95)
| 投稿日 |
: 2016/08/03(Wed) 21:35 |
| 投稿者 |
: amateur◆kR..xsXL6RU |
| ID情報 |
: icAtXvkPxCETL9crUglbL0 |
| 参照先 |
: |
>>94
Takeさん、お久しぶりです。
この掲示板に書き込んでくださって安心しました。
避難所ではお世話になりましたが、こちらでもよろしくお願いします。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.96)
| 投稿日 |
: 2016/08/06(Sat) 19:52 |
| 投稿者 |
: NEExploiT◆1I03EIw9l9M |
| ID情報 |
: 9JIWdo7gnlibNadFRk3H00 |
| 参照先 |
: |
RPGVXの半自動SSG生成テスト
>>71と、使い方は一緒
現在は所持金のみ
所持金以外に対応したいなら
ERB.new(<<EOS.encode('cp932'), nil, '%-').run
以降を読めばなんとなく分かる筈
あとはメモリ上の文字列の配列をリストに変換できればいいのかな

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.97)
| 投稿日 |
: 2016/08/07(Sun) 20:38 |
| 投稿者 |
: RICK◆PIflJPH.oeY |
| ID情報 |
: w.WTwgFMe1AU0qSshfMIU/ |
| 参照先 |
: |
>>96
随分と面白そうなプログラムですね。
例のプログラムと自作のSSGの雛形を参考に例のプログラムを拡張(?)してみました。
しかし、現状以下のエラーが出てSSGが生成されません。
RPGVX_SSG.rb:141: invalid multibyte char (UTF-8)
RPGVX_SSG.rb:132: syntax error, unexpected end-of-input
ERB.new(<<EOS.encode('cp932'), nil, '%-').run
追記:
UTF-8で保存した所以下のエラーが出ました。
D:\Program_Files\Tool\Game_Utility\RPG Maker\RPGVX_SSG>rpgvx_ssg 11252 > test.ssg
D:/Program_Files/Tool/Game_Utility/RPG Maker/RPGVX_SSG/RPGVX_SSG.rb:104:in `format': can't convert nil into Integer (TypeError)
from D:/Program_Files/Tool/Game_Utility/RPG Maker/RPGVX_SSG/RPGVX_SSG.rb:104:in `make_expr_xp'
from (erb):370:in `<main>'
from D:/Program_Files/Tool/Development/Ruby/lib/ruby/2.3.0/erb.rb:864:in `eval'
from D:/Program_Files/Tool/Development/Ruby/lib/ruby/2.3.0/erb.rb:864:in `result'
from D:/Program_Files/Tool/Development/Ruby/lib/ruby/2.3.0/erb.rb:846:in `run'
from D:/Program_Files/Tool/Game_Utility/RPG Maker/RPGVX_SSG/RPGVX_SSG.rb:132:in `<main>'
【更新1】2016/08/08 03:40


編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.98)
| 投稿日 |
: 2016/08/07(Sun) 21:32 |
| 投稿者 |
: NEExploiT◆1I03EIw9l9M |
| ID情報 |
: 9JIWdo7gnlibNadFRk3H00 |
| 参照先 |
: |
> //セーブ回数
> [group]address_save_count
> <%= make_expr_xp keys['$game_system'], :global %>
> <%= make_expr_xp keys['@save_save_count'] %>
'@save_save_count'じゃなくて '@save_count'ですね
バグ発生箇所の特定方法としては
from (erb):370:in `<main>'
ここに注目してERB.newを0行目としてカウントすることで370行目
> <%= make_expr_xp keys['@save_save_count'] %>
が得られます
色々改造してたらライセンス的に真っ黒になってきた……

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.99)
| 投稿日 |
: 2016/08/08(Mon) 03:43 |
| 投稿者 |
: RICK◆PIflJPH.oeY |
| ID情報 |
: UyNx32D3jq8fa1AGkI0Od0 |
| 参照先 |
: |
>>98
言われてみればかなりおかしなことを書いていましたね。
その部分を修正すると無事SSGが生成されました。
もっとも、リストは自分で補う形式ですが・・・
これでRPGツクールVXのSSGを作る際に多少楽ができそうな気がします。
バグを修正した更新分は>>97にあります。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.100)
| 投稿日 |
: 2016/08/09(Tue) 02:50 |
| 投稿者 |
: amateur◆kR..xsXL6RU |
| ID情報 |
: YZ4F/LijCJShlpktUtf.a. |
| 参照先 |
: |
これからは、SSGの自動生成の時代なんですかね・・・凄いです。
そのうち、AIが勝手にゲームを解析してSSGを作ってくれるようにならないかな・・・(妄想)
・・・とあまりの暑さでついタワゴト書いてしまいましたが、
[define]は滅茶苦茶便利ですね。
長ったらしいアドレスコーディングを繰返し書く必要がなくなり、
SSGが簡潔に読みやすく書けるようになりました。
慣れると以前には戻れないって感じです。
[define]を使って色々試してみましたので、
参考までにファイルを添付します。諸事情によりゲーム名等は伏せてます(最近こればっかりだな・・・)
[/script]の後ろにグダグタと書いてますので、興味ある方はどうぞ。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.101)
| 投稿日 |
: 2016/08/09(Tue) 15:37 |
| 投稿者 |
: NEExploiT◆1I03EIw9l9M |
| ID情報 |
: tcKuMZhHV5bLs8Qb0OprB0 |
| 参照先 |
: |
アイテム・防具・武器の自動リストに対応してみた
make_expr_xpの第2引数に文字列を渡した際の仕様が変化したのに注意が必要かも?
TODO:
XP/VXAceへの対応
SSGテンプレートをXP/VX/VXAceで振り分ける
# [:[:[:[base+8:]+0:]+4:]+8:]がグローバル変数のみで
# インスタンス変数にオブジェクト突っ込まれてた場合は
# [:base+8:]+8:]だと気付いて頭抱えてる

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.102)
| 投稿日 |
: 2016/08/09(Tue) 18:56 |
| 投稿者 |
: 変態紳士◆G9/eqTtPaq. |
| ID情報 |
: 2hT12tRTQ0Cl2D443IEiA. |
| 参照先 |
: |
>>100
amateurさん
朝に急いで返事したのですがドヤ顔で間違えたような(消しました)
・検証の前に再ダウンロードのお願い
どうやらバグっぽい事が書かれているので、一度No.4の添付ファイルをダウンロードし直して試してもらえないでしょうか。
最終的にNo.4の日付は当てにせず再度ダウンロードして確認をお願いします。
・不具合が再現しない件
・再現用のファイルの添付のお願い
それと'$'から始まる置き換え型命令($4 ... $$ など)の中での減算ですが、こちらでは不具合は再現していません。
確かめたいのでゲームタイトルとSSG(再現すれば別のものでも何でも)を添付して頂けると有難いのですが。
とりあえず動かせる状態でないと修正は難しいです。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.103)
| 投稿日 |
: 2016/08/09(Tue) 22:35 |
| 投稿者 |
: amateur◆kR..xsXL6RU |
| ID情報 |
: HZh00X.oJCXE.51uWVDiA0 |
| 参照先 |
: |
>>102
変態紳士さん
私がグダグダ書いたものを読んでくださり有難うございます。
ただ、バグ(仕様?)修正を希望する意図で書いたわけではないのですが・・・(自力で回避方法は複数見つけましたので)
同様の症状で悩んでいる方がもしいらっしゃれば、こんな回避方法もあるよ的な意図でした。
>・検証の前に再ダウンロードのお願い
早速、>>4のファイルを再度DLして、パッチを再適用しました。
その上で動作確認しましたが、やはり「置き換え型」命令の動作は全く同じで、
「$4 $$」内のアドレスコーディング中に減算演算子を使用すると、
SSGの読込みに失敗、または、「$4(または1-3) $$」内のアドレスコーディングの演算が出鱈目、のいずれかです。
>・不具合が再現しない件
上記のバグ(仕様?)は、下記の「Gears of Dragoon」(シリーズ1作目)のSSGを作成中に初めて遭遇しました。
https://necocan-index.rick-addison.com/necocan2/mtpt.cgi&room=nekokan&mode=view&no=138
この時に使用していたPCは、私のメインPCで、最近(>>100のSSGを作成した際も含む)使っているサブPCとは別のPCでした。
上記の2つのPCは、OSは両方ともWin7x64ですが、それ以外はスペックも違いますし、
それぞれ別のショップブランドPCで、マザボ等も違っていて結構挙動に差がありますので、
現在使用中のPC固有の症状ではないと思います。
上記の「Gears of Dragoon」は>>100のSSGのゲームとは別ですし、
他の色んなツール類(ゲーム以外でも試しました)でも同様の症状が、数十回は再現されています。
勿論、何度もOSを再起動しても再現してますので、一時的な症状でもないと思います。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.104)
| 投稿日 |
: 2016/08/09(Tue) 22:37 |
| 投稿者 |
: amateur◆kR..xsXL6RU |
| ID情報 |
: HZh00X.oJCXE.51uWVDiA0 |
| 参照先 |
: |
(書込みが1000字オーバーにつき、分割)
>・再現用のファイルの添付のお願い
>>100では修正を希望したわけではなかったのですが(勿論修正していただけるなら有難いです)
一応、SpoilerALを対象プロセスとしたSSGを添付します。
それと、添付したSSGを使用した際のデバッグモードのログも添付します。
なお、添付のSSGについて、当方ではSSGの記述上、上から2番目の項目「動作確認2(減算演算子使用。当方ではこの項目が原因でSSG読込時にエラー)」が原因で、
下記のエラー表示が出て、SSGの読込みに失敗します。
この項目をコメントアウト(頭に//)すると、正常にSSGが読み込まれます(当方では)。
---------------------------
外部例外 EEFFACE.
---------------------------
(追記)
「組み替え型」ではなく、「置き換え型」ですね。勘違いしてました。


編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.105)
| 投稿日 |
: 2016/08/10(Wed) 01:06 |
| 投稿者 |
: amateur◆kR..xsXL6RU |
| ID情報 |
: w2ebbAmW9RJZ0gydWn1I0/ |
| 参照先 |
: |
>>100の添付ファイルについて補足。
末尾に記載した、「バイト列の「置き換え型」の命令の仕様についての補足」について更に補足ですが、
---------------
[subject]項目3/ON/_: toggle, 0x02000100, $2 (0x100)=>hp; 0x4000 < $hp =>s1; $hp < 0x8000 =>s2; $hp < 0xC000 =>s3; $hp -0x4000*$s1*$s2 -0x8000*($s2^1)*$s3 -0xC000*($s3^1)=>hp2; $hp2+$hp2 $$
---------------
については、添付ファイル中の項目4のように書く他に、下記のように>>67で変態紳士さんが説明してくださった[define]の関数的構文(?)を使用すると、
「置き換え型」の命令中のアドレスコーディングで減算演算子を使えない仕様を回避できるようです。
---------------
[define A1]0x4000 < $hp =>s1; $hp < 0x8000 =>s2; $hp < 0xC000 =>s3; $hp -0x4000*$s1*$s2 -0x8000*($s2^1)*$s3 -0xC000*($s3^1)=>hp2
[subject]項目3/ON/_: toggle, 0x02000100, $2 (0x100)=>hp;{A1}; $hp2+$hp2 $$
---------------
それと、>>100に添付のSSGを修正したので添付。
一括トグルの記述は、関係演算子を使う方法より、
下記のようにビット毎の論理積を使用する方が簡潔で分かりやすいことに気付きました(気付くのが遅い・・・)
なお、上記と同様に、[define]の関数的構文を使用して記述を簡略化しました。
---------------
[define C1]{A1};$a1+0x3925=>c1
[define C2]{C1};[:$c1+0x11:1]==0x1=>co; [:$c1+0xC:1]+0x100*$co=>nu
[define C3]{C2};$hp -($hp&0x4000)-($hp&0x8000)=>hp2; $hp2+$hp2*$nu/500 +$nu/10 +($hp&0x4000)+($hp&0x8000)
[subject]全ての敵の最大HPを主人公の「力」の値に応じて増加/ON/_: b_toggle, 0x0, ssl->MAXHP_CHN, real
---------------
[group]MAXHP_CHN
_[.0x25*0x1.], $2 [:[.0x25*0x1.]:2]=>hp; {C3} $$
(中略)
_[.0x25*0xDE.], $2 [:[.0x25*0xDE.]:2]=>hp; {C3} $$
[/group]
---------------
なお、「各モンスターの最大HP」についても、添付SSGのとおりビット毎の論理積を使用して記述簡略化。
(追記 8/13)
添付SSGの記述を若干変更(詳細は添付ファイル末尾を参照)

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.106)
| 投稿日 |
: 2016/08/10(Wed) 02:14 |
| 投稿者 |
: dipper◆LEFxdWWYR3c |
| ID情報 |
: nncKnfSC5XFq/M8x8J9Yv0 |
| 参照先 |
: |
>>変態紳士さん
パッチの機能defineを使用してみました。
とても便利で使い勝手がよく、これからSSGを書く上でとても重宝する機能に仕上げていると思います。
こんな便利な機能を追加して下さった変態紳士さんに改めて感謝を。
依頼する切っ掛けとなったSSGをdefineを使用して修正してみた所、サイズが20KBも削ることができました。
まあもともと私が下手な書き方をしてたのが原因で削れた容量な気もしますが。
それと仕様かも知れませんが、defineを使用する上で気をつける所は、undefを処理する順番でしょうか。
例1だと正常に機能しましたが、例2だとうまく機能しなかったように思えます。
一応テストで使用したSSGも添付しておきます。
■例1
[define A]0x00400000=>ad1
[define B]0x00401000=>ad2
[define C]0x00402000=>ad3
[undef C]
[undef B]
[undef A]
[define A]0x00403000=>ad1
[define B]0x00404000=>ad2
[define C]0x00405000=>ad3
[undef C]
[undef B]
[undef A]
■例2
[define A]0x00400000=>ad1
[define B]0x00401000=>ad2
[define C]0x00402000=>ad3
// ↓が違う。この順番だと↑の$ad1が「0x00400000」ではなく「0x00403000」になってしまいます。
[undef B]
[undef C]
[undef A]
[define A]0x00403000=>ad1
[define B]0x00404000=>ad2
[define C]0x00405000=>ad3
[undef C]
[undef B]
[undef A]

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.107)
| 投稿日 |
: 2016/08/10(Wed) 19:58 |
| 投稿者 |
: 変態紳士◆G9/eqTtPaq. |
| ID情報 |
: 2hT12tRTQ0Cl2D443IEiA. |
| 参照先 |
: |
>>103
amateurさん
資料を提供していただき有難うございました。
アドレスコーディングの問題だと些細な事でも影響範囲が大きいのでどうなるかと思っていましたが、
トグル項目のバグでした。
HowToSSGの「2.1-calc toggle」にある「トグル項目」は以下のように書式が記載されています。
[subject]項目名: toggle, アドレス, ONのバイト列, OFFのバイト列
[subject]項目名: toggle, 開始アドレス, 終了アドレス-ONのバイト列, OFFのバイト列
この「終了アドレス-ONのバイト列」の部分ですね。
2つの書式をハイフンの検索で分岐していたようです。
ドキュメントを読んでバグが見つかるとキツイです。
修正方法としては「$? ... $$」を検索の対象外にしました。
ご協力ありがとうございました。
>>106
dipperさん
undefが正しく機能してないですか・・・
後で調べてみます。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.108)
| 投稿日 |
: 2016/08/10(Wed) 21:30 |
| 投稿者 |
: amateur◆kR..xsXL6RU |
| ID情報 |
: bEGEHYRzcLqreYm9fGn3I1 |
| 参照先 |
: |
>>107
修正ありがとうございます。
トグル項目(一括トグルを含む)で、バイト列(「$? $$」中)に減算演算子を使用しても正常動作するようになりました。
需要の少なそうな修正にまで対応していただきまして恐縮です。
「終了アドレス-ONのバイト列」の「-」(ハイフン)と、
バイト列(「$? $$」)中の「-」(減算演算子)を混同していたのが原因ということですか・・・
こんなに早く修正していただいてお礼申し上げます。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.109)
| 投稿日 |
: 2016/08/13(Sat) 01:06 |
| 投稿者 |
: 変態紳士◆G9/eqTtPaq. |
| ID情報 |
: vietmtpsN0rkoK0qyNvjm. |
| 参照先 |
: |
>>106
dipperさん
修正完了です。
テスト用のSSGありがとうでした。
問題の場所は簡単に分かったのですがアセンブラで編集するには大きかったです。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.110)
| 投稿日 |
: 2016/08/13(Sat) 08:30 |
| 投稿者 |
: 悠木 |
| ID情報 |
: iHFGEC9KHBHgjli4LEDQ9/ |
| 参照先 |
: |
すみません、
天狐の
英雄*戦姫GOLDを
中古で安かったので購入したのですが、
ssgファイルってどこかに無いですが!?
探してるのですが、どこにも無いみたいで・・・、
猫缶インデックスの方は、まだありますでしょうか!?
なんか、探しても無いみたいなので困ってしまって、
情報がありましたら教えてくださいますようお願いします。
もしかして元から無いですか!?

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.111)
| 投稿日 |
: 2016/08/13(Sat) 11:23 |
| 投稿者 |
: 悠木 |
| ID情報 |
: Fq61yemY5eNPzvMsGMnkd1 |
| 参照先 |
: |
>>110の者です
すみません、自己解決しました。
猫缶Indexにて根気よく探してみたらありました。
今から組み込みます、すみませんn

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.112)
| 投稿日 |
: 2016/08/13(Sat) 19:41 |
| 投稿者 |
: dipper◆LEFxdWWYR3c |
| ID情報 |
: nncKnfSC5XFq/M8x8J9Yv0 |
| 参照先 |
: |
>>109 変態紳士さん
迅速な対応ありがとうございます。
確認した限りですが、問題なく機能していると思います。
パッチのファイルサイズが前回に比べ大分大きくなっているので、変態紳士さんの苦労が目に見えるようです。
改めましてパッチの修正ありがとうございます。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.113)
| 投稿日 |
: 2016/08/22(Mon) 04:16 |
| 投稿者 |
: 久遠 |
| ID情報 |
: idI8gsc6goDxAeapQnaJa0 |
| 参照先 |
: |
No.04のdllを導入してみたのですが、起動に失敗します。
version.dllを単純導入しての起動では、dllが削除できてしまったため、readmeにあるバイナリ改変を行いました。
その結果spoilerALを起動すると
プロシージャエントリポイント K32EnumProcessModules がダイナミックリンクライブラリ KERNEL32.dll から見つかりませんでした。
とエラーが出ます。
レジストリのAtsu\spoilerALを削除しspoilerALの導入から試してみましたが同様でした。
OSは32bit XP SP3 home です。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.114)
| 投稿日 |
: 2016/08/22(Mon) 20:34 |
| 投稿者 |
: 変態紳士◆G9/eqTtPaq. |
| ID情報 |
: 2hT12tRTQ0Cl2D443IEiA. |
| 参照先 |
: |
SpoilerAL 6.1 修正パッチは、version.dll から winmm.dll へ変更しました。
※以前の version.dll は削除する必要があります。(どちらかが優先されてしまうので)
>>113 久遠さん
報告ありがとうございました。修正しました。
>プロシージャエントリポイント K32EnumProcessModules がダイナミックリンクライブラリ KERNEL32.dll から見つかりませんでした。
OSに依存してしまうバグでした。
PSAPI というものがあるのですが、
V1 は PSAPI.DLL の EnumProcessModules を、
V2 は KERNEL32.DLL の K32EnumProcessModules を使う仕様で、
デフォルトの V2 を使っていました。
>version.dllを単純導入しての起動では、dllが削除できてしまったため、readmeにあるバイナリ改変を行いました。
>OSは32bit XP SP3 home です。
2000とXPはバイナリの書き換えだったのですが、思ったより簡単に対応できたので書き換え不要にしました。
修正2件
・PSAPI-V1対応
・2000とXPのバイナリ書き換え不要な読み込み

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.115)
| 投稿日 |
: 2016/08/23(Tue) 00:30 |
| 投稿者 |
: 久遠 |
| ID情報 |
: idI8gsc6goDxAeapQnaJa0 |
| 参照先 |
: |
>>114 変態紳士さん
無事導入でき、6.2用に作られたSSGも動作しました。
こんなに迅速に対応いただけるとは、本当にありがとうございます。
>PSAPI.dll
まさかXP以前とvista以降でdll自体が違うとは。
同じdll内で関数名や引数の違いでバージョンを分けてると思っていました。勉強になります。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.116)
| 投稿日 |
: 2016/08/23(Tue) 02:14 |
| 投稿者 |
: dipper◆LEFxdWWYR3c |
| ID情報 |
: nncKnfSC5XFq/M8x8J9Yv0 |
| 参照先 |
: |
>>114 変態紳士さん
SpoilerAL 6.1 修正パッチは更新ありがとうござます。
早速で申し訳ないのですが不具合の報告を…
「winmm.dll」に変更前の「version.dll」なら問題なく使用できたSSGが「winmm.dll」に変更すると一部のSSGがまったく展開されなかったり、
展開処理中に強制終了されるようです。
「version.dll」なら問題なく「winmm.dll」なら強制終了の症状が起きた、SpoilerAL6.2用に修正途中の雷神7パワーアップキットのSSGを添付しておきます。
ただ、224行目の[undef A]をコメントアウトすると強制終了されませんでした。
その事から察するにundefの不具合でしょうか?
それとSSGはプロセスはゲーム本体が無くても起動できるように「SpoilerAL.exe」に変更してあります。
とりあえず私の環境はWindows7 64bitです。
※添付ファイル削除(2016/08/24)

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.117)
| 投稿日 |
: 2016/08/23(Tue) 22:47 |
| 投稿者 |
: 変態紳士◆G9/eqTtPaq. |
| ID情報 |
: 2hT12tRTQ0Cl2D443IEiA. |
| 参照先 |
: |
>>116 dipperさん
ご指摘の通りundefのバグです。添付して頂いたSSGがとても役に立ったので短期間で修正できました。
>>109の時点で大雑把に実装していたのですが、
BCB6から出力したコードが汚すぎたので手動で直していました。
(コンパイラが出力してるのにライブラリにバグがあるという・・・)
アセンブラのクセに巨大だったので気が付いたら壊れちゃいました。
出来るだけ小さく細切れにしてundefのコード作り直しました。
今回のバグは winmm.dll だからというわけではなく巨大なアセンブラさんと戦ってコケた感じです。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.118)
| 投稿日 |
: 2016/08/24(Wed) 00:42 |
| 投稿者 |
: 久遠 |
| ID情報 |
: idI8gsc6goDxAeapQnaJa0 |
| 参照先 |
: |
>>117 変態紳士さん
履歴の日時が23日になっていたので再DLしてみました。
winmm.dllを上書きした所、作成日時が22日の同時刻で変わっていませんでした。
ソースフォルダの容量が変わっているので、コンパイルしたwinmm.dllだけ入れ替え忘れていると思われます。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.119)
| 投稿日 |
: 2016/08/24(Wed) 01:15 |
| 投稿者 |
: dipper◆LEFxdWWYR3c |
| ID情報 |
: nncKnfSC5XFq/M8x8J9Yv0 |
| 参照先 |
: |
>>117 変態紳士さん
早速の対応ありがとうございます。
途中強制終了していた添付SSGや強制終了されないまでも中々展開されなかったSSGも問題なく起動できました。
>>116の添付ファイルは修正途中ですし、それに需要も無いでしょうからファイルは削除しておきます。
>>118 久遠さん
上記でも記載しましたけど機能の修正を確認できましたから、作成日時が同じでもwinmm.dllは更新されていると思いますよ。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.120)
| 投稿日 |
: 2016/08/24(Wed) 01:45 |
| 投稿者 |
: 久遠 |
| ID情報 |
: idI8gsc6goDxAeapQnaJa0 |
| 参照先 |
: |
>>119 dipperさん
更新されていたのですね、早とちりしました。
こちらでは諸症状が確認できるSSGを持っていないので、日付が同じ時点で不安になり、dipperさんの報告を待とうかとも思ったのですが先走りました。
お騒がせしました。m(_ _)m

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.121)
| 投稿日 |
: 2016/08/25(Thu) 06:41 |
| 投稿者 |
: 変態紳士◆G9/eqTtPaq. |
| ID情報 |
: 2hT12tRTQ0Cl2D443IEiA. |
| 参照先 |
: |
64bit演算の試作 (1回目)
需要があるか分かりませんが、64bit演算の実装です。
64bitの除算をソフトウェア演算で書くと面倒なことになると思ったので、
なんとなく実装してみました。
別に32bitCPUでも動きます。昔からあるハードウェア演算です。
サンプル的なSSGは以下です。
source\test\__large_integer_test__.ssg
※2016.08.27 試作品なのでNo.4に統合

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.122)
| 投稿日 |
: 2016/08/25(Thu) 22:25 |
| 投稿者 |
: amateur◆kR..xsXL6RU |
| ID情報 |
: ol1tvu0SyTcmpa/8vyv0x/ |
| 参照先 |
: |
>>121
更新ありがとうございます。
サンプルSSGで試したところ正常に動作しています。
今まで解析した中で64bit演算の必要な場合があったかなと考えたところ、
以前解析したゲームで、IMUL命令の1オペランド形式で、
4バイトサイズのオペランドとEAXの乗算結果(8バイト)の、
上位4バイトはEDXに、下位4バイトはEAXに格納されるっていう
逆アセンブルコードがあったのを思い出しました。
こういう場合は、元の値を「n0」とすると、
-------------------
[0, n0] => n1
-------------------
のように値を64bitに拡張してから、
-------------------
$n1 * eax => n2
[$n2 >> 32] => edx
[$n2 & 0xFFFFFFFF] => eax2
-------------------
のように書けば良い、のかな

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.123)
| 投稿日 |
: 2016/08/26(Fri) 02:37 |
| 投稿者 |
: 変態紳士◆G9/eqTtPaq. |
| ID情報 |
: 2hT12tRTQ0Cl2D443IEiA. |
| 参照先 |
: |
64bit演算の試作 (2回目)
・定数を[1, 0]などと上位ワードと下位ワードに分離していたのを
0xFFFFFFFFFFFFFFFFと書けば自動で64bitになるようにした。
(キャストは継続して有効)
・デバッグログの出力を上位ワードと下位ワードに分けていたのを
64bit値そのものを出力するようにした。
・64bit定数に対応したのでサンプル的なSSGを修正
>>122 amateurさん
レスどぉもです。
除算が困るので64bit値を扱えるようにしてますが・・・
需要は低い?
乗算の方はこんな感じですかね。(imulじゃなくてmulにしてますが)
――――――――――――――――――――――――――――――
オペランド1 × オペランド2 = リザルト (edx:eax)
――――――――――――――――――――――――――――――
mov eax, [esp + 4]
mov edx, [esp + 8]
mul edx
――――――――――――――――――――――――――――――
0x11111111 => op1
0x22222222 => op2
[0, $op1] * $op2 => result
[$result >> 32] => edx
[$result] => eax
――――――――――――――――――――――――――――――
キャスト ([]の中が1つなら32bit) なので "& 0xFFFFFFFF" は不要です。
※2016.08.27 試作品なのでNo.4に統合

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.124)
| 投稿日 |
: 2016/08/26(Fri) 20:50 |
| 投稿者 |
: amateur◆kR..xsXL6RU |
| ID情報 |
: WQ9.58xFIOHLCOQPGe9JB1 |
| 参照先 |
: |
>>123 変態紳士さん
更新と、乗算(imulだけでなくてmulでも同様ですね)のフォローありがとうございます。
>キャスト ([]の中が1つなら32bit) なので "& 0xFFFFFFFF" は不要です。
よく考えると、64bit → 32bit にダウンキャストすると、上位32bitは切り捨てされる(と思う)ので、
下位32bitを取り出すのに"& 0xFFFFFFFF" は不要ですよね・・・
64bitの除算ですか・・・
今のところ必要になったケースは私には無かったと思いますが、
それは私の解析経験が浅すぎる(若葉マークの初心者)だけで、
解析経験豊富な方々には需要があるのではないでしょうか。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.125)
| 投稿日 |
: 2016/08/27(Sat) 16:52 |
| 投稿者 |
: amateur◆kR..xsXL6RU |
| ID情報 |
: O80PP0hq/IIQjtGfM6Wx70 |
| 参照先 |
: |
とっくに気付いてる方もいらっしゃるかと思いますが、
ウディタ製ゲームは、[define]の関数的構文を使用することで、物凄く楽にSSGが書けますね。
臨時板のウディタのスレNo.70でyunさんがアップしてくださったポインタの書式を[define]の定義式に先に書いておけば、
後は、「タイプのID」「データのID」「項目の番号(ID)」等をSSGの各項目のアドレスに書いていくだけでほぼOKという・・・
(上記の各ID等は、>>1に添付した2個目のファイルに入っているウディタ解析用SSGで表示されます)
下記はウディタVer2.01製ゲームでのSSG記載例ですが、こんな感じで書けますね。
--------------------------------------------------------
//可変データベースの関数的構文(項目の値。変数「typ」「da」「nu」は各々、「タイプのID」「データのID」「項目の番号(ID)」を指す)
[define CN][:[:[:0x6A6218:]+0x14+$typ*0x28:]+0x4+$da*0x20:]+$nu*0x4
[subject]灯(ダンジョン内)残り歩数【 '+' _mem, _1=>typ; 0=>da; 9=>nu;{CN}, 4,num ,??,%d '+' 】/灯残り歩数/_:calc, _1=>typ; 0=>da; 9=>nu;{CN}, 0, 999999, unsigned
[subject]透視(ダンジョン内)残り歩数【 '+' _mem, _1=>typ; 0=>da; 10=>nu;{CN}, 4,num ,??,%d '+' 】/透視残り歩数/_:calc, _1=>typ; 0=>da; 10=>nu;{CN}, 0, 999999, unsigned
--------------------------------------------------------
触り程度しか書いてないですが、上記の手法で書いた実際のゲームのSSGを添付しておきます。
対象ゲームは、ウディタVer2.01製の「イグニッシアサーガ第十四幕-穢れし神に捧ぐ詠-」(フリーゲーム)です。
(追記)
↓がウディタVer2.10製の可変DB(セーブされるデータ)の各項目の値の定義式で、
[define CN] [:[:[:0x78B6F4:]+0x14+$typ*0x28:]+0x04+$da*0x20:]+$nu*0x4
上記の定義式を先に書いてから、各項目の「アドレス」部分に、下記のように書くだけです。
_(タイプのID)=>typ; (データのID)=>da; (項目のID)=>nu;{CN}

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.126)
| 投稿日 |
: 2016/08/28(Sun) 04:14 |
| 投稿者 |
: amateur◆kR..xsXL6RU |
| ID情報 |
: beyciiVDtE4onwr4nDYCg1 |
| 参照先 |
: |
従来のSSGでは、先に[repeat]や[replace]を書いて、最後にそれらを反映させたアドレスコーディングを記述するのが定石(?)だったと思いますが、
逆に、最終的に書きたいアドレスコーディングを[define]の関数的構文で先に記述した方が分かりやすい場合もあるのではないかと
>>125のSSGを書いていて思ったので、試しにこの方法で簡単なSSGを書いてみました。
ゲームは、以前に別スレでSSGをアップした「Javardry THE KING」です。
動作環境はSSGの情報欄に書いてるとおりですが、
JavaのVer:32bit版の【 8 Update 101 (8.0.1010.13) 】、
Javardry本体のVer:0.362 (このVerの本体入手はJavardry公式から)
として書いてますので、別スレにアップした同ゲームのSSGと同じ環境では動作しません。
「ダンジョンマップ踏破フラグ」のアドレスでは変数部分([repeat]の$Val)を4箇所使ってますが、
こういう書き方で問題なく動作しています。
(追記)
添付のSSGを修正。
「ダンジョンの名称のアドレス」と「各パーティのデータ領域先頭アドレス」を先に定義して、
後から変数部分にループ変数「$Val」等を代入する書き方に変更。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.127)
| 投稿日 |
: 2016/08/29(Mon) 20:20 |
| 投稿者 |
: 管理人◆PIflJPH.oeY |
| ID情報 |
: bgT8fRhR3laLJ2YP/RHiO1 |
| 参照先 |
: |
【管理人からの提案】
「SpoilerAL」の修正パッチのに関する話題は専用スレを作ってそちらで語りませんか?
閲覧者からすれば、このスレは非常に煩雑で情報の整理がしにくいと思うので。
Wiki作ろうと言い出したのもそのためです。
掲示板の特徴上4番の記事を探すのも面倒かなとも思ったりもしていたり・・・。
また、0番の記事(常に上に表示される記事)の添付ファイルの更新も可能になっています。
つきましては変態紳士さんにスレ立てをお願いしたいのですがいかがでしょうか?
【質問】
・現在の設定では「1スレッド当りの「表示」記事数」を20、
「1スレッド当りの「最大」記事数」を1000に設定していますが、
どれくらいがいいと思いますか?

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.128)
| 投稿日 |
: 2016/08/30(Tue) 04:14 |
| 投稿者 |
: 変態紳士◆G9/eqTtPaq. |
| ID情報 |
: vietmtpsN0rkoK0qyNvjm. |
| 参照先 |
: |
>>127 管理人さん
お世話になっています。
>「SpoilerAL」の修正パッチのに関する話題は専用スレを作ってそちらで語りませんか?
>閲覧者からすれば、このスレは非常に煩雑で情報の整理がしにくいと思うので。
(中略)
>つきましては変態紳士さんにスレ立てをお願いしたいのですがいかがでしょうか?
いつか話題性も更新も終わると思い用意しませんでした。特別な意味もありませんので移動しました。
確かにスレッドのトップにファイルは無いですし捜索願が後を絶たないですね。
>Wiki
残念ながらドキュメントも追いついていない状態でして、ドキュメントよりコードの変更が多く、
それとWikiは経験が無いので放置していました。
最終的にドキュメントさえ放置するかも・・・
>・現在の設定では「1スレッド当りの「表示」記事数」を20、
>「1スレッド当りの「最大」記事数」を1000に設定していますが、
>どれくらいがいいと思いますか?
記事数が1000ですか、超える事も少ないですし超えても続きのスレ立てですよね。
問題にならないと思います。(いっきに超える時って騒動か何かですよね?)
表示記事数20は不自由では無いのですが、時々少ないとは思います。
web patioのコードを書いたことはありますが内容を覚えていませんし、こんなものかなと。
他の人の意見も必要だと思います。
以前あった機能と言えばスレッド内の記事番号へのリンク機能ですが、
たぶんCGIの変更が大きいと予想してみます。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.129)
| 投稿日 |
: 2016/08/30(Tue) 22:43 |
| 投稿者 |
: amateur◆kR..xsXL6RU |
| ID情報 |
: 5PWheszh4ck14Q6IIH22d. |
| 参照先 |
: |
>>125でアップしたウディタのSSGを書いていて、解析用SSGも以前と比べて簡潔に書けそうだと思ったので、
>>1でアップした詰め合わせの中の、ウディタ解析用SSGについて、
使いにくい部分を改良して全面的に作り直しましたので、追加で>>1にアップしておきます。
項目の値が「数値」か「文字列」かで格納されるアドレス領域が別になっているため、
以前のSSGでは表示される項目IDと実際のID(アドレス)がズレてしまう仕様だったのですが、
上記のズレに対応し、表示される項目IDと実際のID(アドレス)が一致するように修正しました。
他に、項目の値部分に名称も表示するようにしましたので、分かりやすくなったと思います。
また、ウディタVer2.10とVer2.01の両方に対応するようになりました。
動作確認したのは上記2つのVerのみで他のVerで動くかは未検証ですが、
Ver2.01以降なら動作するのでは、と思います(検証は人任せ・・・)。
あと、重要なことですが、
[define]の関数的構文でアドレス定義 → 後から変数部分にループ変数「$Val」を順次代入
という書き方をしたせいで(?)、メモリ使用量が異常に大きくなってしまうようです。
デフォルト設定でSSGを読み込むと、SpoilerALのみで1.2GBくらい使用してしまいます。
SSGファイルの[repeat]の終了値を増やして、表示数をデフォルトから増やしたりすると、
メモリ使用量が大きくなり過ぎてSpoilerAL起動に失敗する可能性があります。
なお、3つのDBのデータIDを全てデフォルトの30個から100個に増やすと、当方の環境ではSpoilerAL起動に失敗しました。
解析対象のゲームに応じて、[repeat]の終了値が大きすぎる部分は値を少なくしたり、
[group]main の中の、不要な[repeat]部分をコメントアウトして
DBを1個だけ表示するようにする等、必要に応じて調節してください。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.130)
| 投稿日 |
: 2016/08/31(Wed) 20:21 |
| 投稿者 |
: 変態紳士◆G9/eqTtPaq. |
| ID情報 |
: 2hT12tRTQ0Cl2D443IEiA. |
| 参照先 |
: |
>>129
少し修正しました。
結構メモリ食べてますね。
完全に直すにはファイルからSSGの全文をフィルタリングする方法がありますが、
互換性がどうなるか分からないし面倒なので保留してます。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.131)
| 投稿日 |
: 2016/08/31(Wed) 21:35 |
| 投稿者 |
: amateur◆kR..xsXL6RU |
| ID情報 |
: 9M.3m41oRe2kaGZjll3TU0 |
| 参照先 |
: |
>>130 変態紳士さん
パッチ更新ありがとうございます。
早速試したところ、解析用SSG読み込み時のSpoilerALのメモリ使用量が、1.5GB → 430MB と劇的に減りました!
この程度のメモリ使用量なら大きな問題にはならないと思いますので、
これだけでも非常に助かります。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.132)
| 投稿日 |
: 2016/08/31(Wed) 21:43 |
| 投稿者 |
: amateur◆kR..xsXL6RU |
| ID情報 |
: 9M.3m41oRe2kaGZjll3TU0 |
| 参照先 |
: |
>>129に書いた、作り直したウディタ解析用SSGですが、
表示項目(ID)数が限られてしまって使い勝手が悪いので、
[repeat]の終了値(ループ回数)は増やさず、表示項目(ID)をずらせるように仕様変更しました。
空きアドレス(と思われる)箇所に、任意の値を書き込み、その書込み値によって表示項目(読み書きするアドレス)をずらすという手法です。
臨時板の(元)管理人さんが使用されていた手法を真似しただけですけど。
多分、勝手に値を書き込んでも大丈夫な空きアドレスだとは思うのですが、
不具合が出ないか十分に検証したわけではないので、不具合が生じるかもしれませんが・・・
>>131に書いたとおり、メモリ使用量が劇的に減ったこともあり、
当方の環境では起動に問題はない(時間はかかるけど)ですが、
PCスペックによってはメモリ使用量の問題で使えない場合もあるかと思い、
メモリ使用量を大幅に減らせる「軽量版」を作成しました。
SpoilerALのメモリ使用量が110MB程度と、「通常版」の1/4程度で済み、起動も早いです。
ただし、一度に表示される項目(ID)が30個(通常版は50個)ですので、ID数の多い場合は面倒かも。
表示項目数以外の機能は全く同じです(表示項目(ID)をずらす機能も付いてます)。
というわけで、「通常版」と「軽量版」を同梱したファイルを>>1 (の2つ目の添付ファイル)に差し替えでアップしました。
ウディタ解析用SSGについては、私のスキルではこれが限界だと思うので、
SSGの記述ミス修正を除き、これで更新終了とします。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.133)
| 投稿日 |
: 2016/09/01(Thu) 02:38 |
| 投稿者 |
: amateur◆kR..xsXL6RU |
| ID情報 |
: lWL/GmO.0OCecHu52wpEb1 |
| 参照先 |
: |
>>127 管理人さん
【質問】についてですが、
「1スレッド当りの「最大」記事数」は、現在の1000で少ないということはないと思います。
むしろ、1000も記事があると、スレ内で記事を探すのが大変ですし、
1スレッドの表示ページが最大で50(1000/20)にもなるので、そちらの方が問題かもしれないですね。
確か、以前の臨時板では1スレッド当りの最大記事数は500だったと思いますが、
それくらいが妥当なのかも、と個人的には思います。
1スレッド当りの「表示」記事数は、現状の20くらいで良いのではないかと思います。
私のように無駄に長文書くと記事数20でも結構な長さになりますし・・・
次に、ご提案についてですが、
とりあえず、SpoilerAL修正パッチの話題は、出来るだけ変態紳士さんが立てられたスレの方で行うことにします。
Wikiについては、SSG作成と解析でほぼ手一杯で、そこまで手が回らないですね・・・
現状では、解析とゲームプレイにかける時間比が「9:1」くらいになっていて、
何のために解析してるのやら、という感じでして・・・(解析自体が下手にゲームするより面白いので不満ではないですが)
また、情報の整理といっても情報が多すぎて何から手を付けたら良いものやら、という感じです・・・

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.134)
| 投稿日 |
: 2016/09/01(Thu) 02:49 |
| 投稿者 |
: amateur◆kR..xsXL6RU |
| ID情報 |
: lWL/GmO.0OCecHu52wpEb1 |
| 参照先 |
: |
それと、Wiki等で情報整理するなら、まず解析の基本知識的な事項から始めた方が良さそうな気がするのですが。
うさみみ等のメモリエディタを使った実践的な検索方法(これが分かるだけで基本的な改造は大抵出来ますし)とか、
SSGの書き方のコツ(HowToSSGには、重要かつ基本的なことなのに記載が漏れてる事項が結構多いせいで初心者にとって無駄にハードルが高くなってる)とか、
ポインタの探し方のコツ(私もお世話になったこのページでアセンブリの読めない素人にも可能な方法が解説されてますが、そこに書いてる情報だけでは対処できないゲームが大半)とか、
このあたりの情報をまとめた方が良いのではないかと以前から思いつつも放置してたのですけど。
(検索方法はうさみみのヘルプをちゃんと読めばよいし、外部の解説サイトも色々あるのでその紹介だけで良いかもですが)
このスレの書き込み内容は難度が高いものが多く(プログラミング関係中心に私も理解不能なことが多いです)、
それ以前の基本、つまり、検索やポインタ探し等の解析をしてその結果をSSGに書くという、
基本的なことが出来る人を増やす(掲示板利用者全体のスキル底上げ)方が優先順位高いと個人的には思いますので。
現状では、お馴染みの数人程度の解析者の方々にSSG作成の負担が集中してるような気がして、
あまり望ましい状況ではないと愚考する次第です。(本家猫缶Indexでは結構多くの方がSSG公開されてた気がします)
ネットワーク対応のゲームが増えたせいで、SSGをアップ出来ない(=各自が自己責任・自助努力で対処するしかない)場合が多くなってきたという事情も・・・

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.135)
| 投稿日 |
: 2016/09/01(Thu) 04:54 |
| 投稿者 |
: 管理人◆PIflJPH.oeY |
| ID情報 |
: M/.5uHQO0w5d905dWV60g0 |
| 参照先 |
: |
>>128 変態紳士さん
>>133-134 amateurさん
参考になる意見ありがとうございます。
やはりWikiは先走りすぎたかなぁといった気がします。
やはり基本から書かないとダメですよね。
掲示板のみで上手く情報整理を行う方法を模索しようと思います。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.136)
| 投稿日 |
: 2016/09/01(Thu) 22:31 |
| 投稿者 |
: amateur◆kR..xsXL6RU |
| ID情報 |
: 9JykpQSUB5ZKVOsF5iw3X/ |
| 参照先 |
: |
>>132で書いた、修正したウディタ解析用SSGですが、
案の定、ミスがあったので修正して>>1の2つ目の添付ファイルを差し替えします。
表示項目(ID)をずらす機能を付けたことに伴い、
領域の先頭・終端アドレスの表示と、項目の値のアクセスアドレスも修正する必要があったのに、
修正するのを忘れてました。
一応、これでミス修正は出来た、と思います。多分。・・・段々自信無くなってきた・・・

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.137)
| 投稿日 |
: 2016/09/02(Fri) 20:30 |
| 投稿者 |
: 変態紳士◆G9/eqTtPaq. |
| ID情報 |
: uKmEnxi5LPuitOsfBx1bQ/ |
| 参照先 |
: |
>>136 amateurさん
差し替え前のSSGを対象に何故メモリを圧迫するのか調べてみました。
現状はパッチが大量消費しているわけではないようです。
差し替え前のSSGを見てみると、
[ユーザーデータベース]の[タイプの名称]で[repeat]100件×下位項目([repeat]100件+[repeat]30件)
という感じで、それ以外にも全体を通して何万件も項目があるのではないでしょうか。
SpoilerALのコードを見てみると、[repeat]は、あらかじめ解析し、件数分のメモリ(クラスなので大きい)を確保しています。
ちなみにこれは修正できません。
これはクラスのデザイン(設計の部分)で広範囲に及びますのでアセンブリ言語で書き換えるようなものではありません。
回避方法はNo.132の方法でいいと思います。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.138)
| 投稿日 |
: 2016/09/02(Fri) 22:14 |
| 投稿者 |
: amateur◆kR..xsXL6RU |
| ID情報 |
: vMHEjxIfx0wHu1O6D019l1 |
| 参照先 |
: |
>>137 変態紳士さん
お手数をおかけしまして恐縮です。また、解説ありがとうございます。
確かに、現在の仕様では[repeat](終了値が全て50)を各DBごとに3段階で使用しており、
50の3乗で125000項目→(これが3つのDB分)→375000項目+α となりますので、
メモリ使用量が多くなるのも当たり前ですね・・・
[repeat]は「静的展開」だとHowToSSGにも書いてますので、
メモリ使用量増大に加えて起動に時間がかかるのも致し方なし、というわけですね。
ただ、>>131にも書いたとおり、変態紳士さんがパッチを更新してくださった結果、
同じSSGでメモリ使用量が1/3以下に減りましたので、
メモリ使用量の問題に関しては随分改善されたのではと思います(これは大変有難いです)。
それでも400MB以上もメモリ食ってますので、[repeat]の使いすぎには注意、ですね。
[variable]や[define]の実装により、同じ[group]の系列で[repeat]が何回でも使えるようになったので尚更。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.139)
| 投稿日 |
: 2016/09/06(Tue) 22:11 |
| 投稿者 |
: 変態紳士◆G9/eqTtPaq. |
| ID情報 |
: uKmEnxi5LPuitOsfBx1bQ/ |
| 参照先 |
: |
対象のプロセスにメモリを確保する機能を追加してみました。
サンプル的なSSGは、source\test\__allocate_test__.ssg です。
SSGの中に色々とコメントを書いてますが、
ビミョーな所があるので変更の可能性もあります。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.140)
| 投稿日 |
: 2016/09/07(Wed) 01:11 |
| 投稿者 |
: amateur◆kR..xsXL6RU |
| ID情報 |
: edUE.CuSuZb5tQ38B0Kua. |
| 参照先 |
: |
>>139 変態紳士さん
おお、便利な機能追加ありがとうございます。
サンプルSSG等で試したところ、正常に機能しております。
>>132に書いた、表示項目をずらす手法は、空きアドレスを見つけられないと使えませんので、
空きメモリ(アドレス)を確保できるこの機能は大変有難いです。
今後、表示項目をずらす手法を使いやすくなり、SSGを書きやすくなりそうです。
感謝!

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.141)
| 投稿日 |
: 2016/09/09(Fri) 21:24 |
| 投稿者 |
: amateur◆kR..xsXL6RU |
| ID情報 |
: OBAgv2wyQRtmKXDA1uzqX1 |
| 参照先 |
: |
>>1の2番目の添付ファイルに入ってるウディタ解析用SSGですが、
名称や文字列を表示させる部分に不適切な箇所があったので、修正して差し替えました。
これで文字列を正常に表示できる、と思います
それに付随して、>>1の1個目に添付した詰め合わせの中の「ウディタ用のリスト作成用ファイル」(表計算ソフトのファイル)も、
正常にリストが作成できない場合を発見したのですが、
これは、時間と気力のあるときに修正したいと思います(私に修正できるのか不明ですが・・・)。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.142)
| 投稿日 |
: 2016/09/10(Sat) 21:13 |
| 投稿者 |
: amateur◆kR..xsXL6RU |
| ID情報 |
: MJwUhji9JrBPszKJCihgF. |
| 参照先 |
: |
>>141に書いた「ウディタ用のリスト作成用ファイル」の不具合を修正したので、
>>1の1個目の添付ファイルを差し替えました。
ついでに同梱のウディタ解析用SSGを最新版(2個目の添付ファイルと同じものです)に差し替えた以外、他のファイルは変わってません。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.143)
| 投稿日 |
: 2016/09/20(Tue) 02:39 |
| 投稿者 |
: amateur◆kR..xsXL6RU |
| ID情報 |
: PxiNtQ8EPIMPVUSTTafgD0 |
| 参照先 |
: |
ウディタ公式ページから、各VerのパッケージファイルをDLしてサンプルゲームで試したところ、
>>1にアップしたウディタ解析用SSGは、Ver2.00以降から最新の2.10まで動作するようです。
それと、一応、ウディタでの座標とプレイ時間についての仕様が分かりましたのでSSGを添付します。
添付SSGの座標機能は、Ver2.02a以降から動作(つまり、Ver2.02aと2.10のみ)し、
プレイ時間機能は、Ver2.10でのみ動作するようです。(他のVerについてはあまり需要が無さそう&面倒なのでスルー・・・)
なお、最新のVer2.10でしか使わない場合は、下記のような記述でOKのようです。
--------------------------
// (半マス移動が出来ない場合はここを有効にする) [io_fep] $Val<<1, $Val>>1
[subject]X座標【 '+' _mem, 0x78978C, 4,fep_num ,??,%d '+' 】(マップ左上が座標0.0)/X座標/_:calc, 0x78978C, 0, 255, unsigned
[subject]Y座標【 '+' _mem, 0x789790, 4,fep_num ,??,%d '+' 】/Y座標/_:calc, 0x789790, 0, 255, unsigned
// (半マス移動が出来ない場合はここを有効にする) [/io_fep]
[subject]プレイ時間:dir
[enabled][:0x431660:]==0x787A0C
[subject]プレイ時間増えない/ON/_: toggle, 0x431664, 909090, 83C101
[/enabled]
[subject]プレイ時間(秒単位)【 '+' _mem, 0x787A0C, 4,num ,??,%d '+' 秒】/現在値/_:calc, 0x787A0C, 0,0x7FFFFFFF, unsigned
[io_fep] [:0x787A0C:] =>time; $time%3600=>mod; $mod +$Val*3600, $Val/3600
[subject]【時間】単位で変更【 '+' _mem, 0x787A0C, 4,fep_num ,??,%d '+' 時間】(分以下はそのまま)/【時間】/_:calc, 0x787A0C, 0,100000, unsigned
[/io_fep]
[io_fep] [:0x787A0C:] =>time; $time%3600=>mod; $mod%60=>秒; $time -$mod +$Val*60 +$秒, $Val%3600=>mod; $mod/60
[subject]【分】単位で変更【 '+' _mem, 0x787A0C, 4,fep_num ,??,%d '+' 分】(時間・秒はそのまま)/【分】/_:calc, 0x787A0C, 0,59, unsigned
[/io_fep]
[back]
------------------------------

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.144)
| 投稿日 |
: 2016/09/20(Tue) 21:54 |
| 投稿者 |
: amateur◆kR..xsXL6RU |
| ID情報 |
: IYJT4i2WFPEMcSQyqVxsT/ |
| 参照先 |
: |
>>143の添付SSGに「現在MAPのID・名称」を追加したのでアップします。
サンプルゲーム等で試したところ、この項目はVer2.00以降、最新のVer2.10まで動作することを一応確認済み。
該当Verの全てのゲームで動くかまでは分かりませんが。
なお、「現在MAPのID」を書き換えても、現在のマップがそれだけで変わるわけではないようです(多分、コモンイベントの処理が必要)。
また、「現在MAPの名称」については、システムDBのタイプID【0】の各「データの名称」がMAP名であることを前提にしてます。
一応、サンプルゲーム等、Ver2.00以降の幾つかのウディタ製ゲームで試したら全てこれで動いてるので、
暫定的にVer2.00以降の汎用っぽい機能ということにしておきます。
なお、最新のVer2.10でしか使わない場合は、下記のような記述でOKです。
------------------------
//「システムDB」のタイプID:0 【マップ設定】のデータの名称(マップ名)のアドレスを定義
[define α] [:[:0x789DF0+0x10:]+0x3C:]+0x4+$da*0x1C=>name; [:$name +0x14:1] > 0xF =>num; ($num^1)*$name +[:$name:]*$num
[define β] [:0x78BFF0:]=>da; {α}
[subject]現在MAPのID・名称【 '+' _mem, 0x78BFF0, 4,num ,??,%d '+' 】【 '+' _mem, _{β}, 100, 00,?? '+' 】/MAPのID/_:calc, 0x78BFF0, 0, 255, unsigned
------------------------
なお、「座標」については、ウディタのVerが2.02aまたは2.10であっても、
このSSGでは表示・変更ができないゲームがあります。
その場合は、可変DB(または通常変数・予備変数?)に座標の項目があると思われますので、
>>1の「ウディタ解析用SSG」等で確認してください。
添付SSGの、現在MAPのID・座標・プレイ時間の各アドレスは全て「Game.exe」の.dataセクション内にあるので、
ウディタのVerが同じならどのゲームでもアドレスは共通です。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.145)
| 投稿日 |
: 2016/09/21(Wed) 00:59 |
| 投稿者 |
: amateur◆kR..xsXL6RU |
| ID情報 |
: sngBmTFujPOUi8DhReguK1 |
| 参照先 |
: |
>>143と>>144の添付SSGの
[enabled]の条件式の記述が間違っていた(条件判定がされてなかった)ので、修正しました。
ついでに、>>143の添付SSGは>>144の分と重複してるので削除しました。
(追記)
「現在MAPのID・名称」「座標」「プレイ時間」の全てを、
ウディタVer2.00からVer2.10で汎用的に動作するよう修正しましたので添付します。
各Verのサンプルゲームと幾つかのゲームで試して全部正常動作した(座標については下記参照)ので、多分大丈夫、と思います。
ただし、「プレイ時間増えない」(プログラム改造)は、Ver2.10でしか動作しません(他のVerではエラー表示)。
なお、>>144に書いたように、「座標」についてはウディタのVerが2.00から2.10であっても、
このSSGでは表示・変更ができないゲームがあるのは同様。
まあ、だからどうした、という感じのオマケ的機能ばかりかもですが(座標書換えだけは有用かも・・・)

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.146)
| 投稿日 |
: 2016/09/21(Wed) 21:19 |
| 投稿者 |
: yun◆6As0zdMqREo |
| ID情報 |
: 2IZF2kogJLz0tA8goUCcF0 |
| 参照先 |
: |
どうもお久しぶりです。
変態紳士さんのパッチがけっこうすごいことになっていてパッチで容量をへらせれる分は
へらしてみようとamateurさんのウディタの記述を元に私の分のものも少し変えてみました。
今回はアクリウムスのやつです。
私の設定の仕方が悪いのか、併用できないような使い方をしているのか分からないのでちょっと質問を。
追記:無事解決して修正しました。
-------------
b_toggleで最大値を現在値にまとめて書き込むときに、defineで設定すると読み込み元のアドレスの値が
異常値になってしまうようです
以下のように、普通のアドレス設定では正常な値が入り、defineで設定したものを入れると正常でない
巨大な値が入いります。これをdefineで正常に動かすためにはどうしたらいいでしょうか?
ちなみにデバッグモードで確認したところ読み取り元のアドレスに誤りはなさそうです。
//値正常
//_ 0=>type; 0=>data; 2=>chap;{cdb_value},$4 [.[:[:[:[:0x75A8D4:]+0x14+17*0x28:]+0x04+0*0x20:]+0x00:].] $$
//巨大な数値が入る
//_ 0=>type; 0=>data; 2=>chap;{cdb_value},$4 17=>type; 0=>data; 0=>chap;{cdb_value} $$
//_ 0=>type; 0=>data; 2=>chap;{cdb_value},$4 [.17=>type; 0=>data; 0=>chap;{cdb_value}.] $$
//_ 0=>type; 0=>data; 2=>chap;{cdb_value},$4 [.(17=>type; 0=>data; 0=>chap;{cdb_value}).] $$
-----------------

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.147)
| 投稿日 |
: 2016/09/21(Wed) 21:51 |
| 投稿者 |
: dipper◆LEFxdWWYR3c |
| ID情報 |
: FyiyLXgYH8rBIZARmkWI10 |
| 参照先 |
: |
>>146 yunさん
おそらく[: :]が抜けているためだと思います。
下記で動作を確認しました。
//_ 0=>type; 0=>data; 2=>chap;{cdb_value},$4 [:17=>type; 0=>data; 0=>chap;{cdb_value}:] $$

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.148)
| 投稿日 |
: 2016/09/21(Wed) 22:14 |
| 投稿者 |
: amateur◆kR..xsXL6RU |
| ID情報 |
: 2YWMxGPwyI.B.LuBCwsf1. |
| 参照先 |
: |
>>146 yunさん
こちらこそ、お久しぶりです。
お尋ねの件ですが、
//巨大な数値が入る
の箇所は、多分、以下のように記述すれば大丈夫ではないかと思います。
------------------
_ 0=>type; 0=>data; 2=>chap;{cdb_value},$4 17=>type; 0=>data; 0=>chap;{cdb_value}=>ad; [.[:$ad:].] $$
もしくは、
_ 0=>type; 0=>data; 2=>chap;{cdb_value},$4 17=>type; 0=>data; 0=>chap;[.[:{cdb_value}:].] $$
------------------
どういう意味かというと、
「$4 $$」内は、アドレスコーディングを記述し、その演算結果を「$4 $$」でバイト列に変換するわけですが、
>>146の場合、{cdb_value}に各IDを代入後のアドレスの「格納値」に、
オフセット演算子([. .])で加算した値をバイト列に変換するのだと思いますが、
そうすると、[define]で定義したアドレス式である「{cdb_value}」を、
{cdb_value}=>ad と変数定義し、その格納値は、[:$ad:]、これにオフセット演算子で加算するので、
最終的な値(バイト列に変換前)は、
[.[:$ad:].]
となると思います。この値を、「$4 $$」でバイト列に変換するということではないかと。
上で挙げた下の方の例は、
{cdb_value} = [:[:[:0x75A8D4:]+0x14+$type*0x28:]+0x04+$data*0x20:]+0x00+$chap*0x4
ですので(各IDの代入前)、
[define]の「テキスト置換」という性質から考えると、
[.[:{cdb_value}:].] = [.[: [:[:[:0x75A8D4:]+0x14+$type*0x28:]+0x04+$data*0x20:]+0x00+$chap*0x4 :].]
となるので、これでも動作するのではないかと思います(分かりやすいように、敢えて全角スペースを入れてます)。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.149)
| 投稿日 |
: 2016/09/21(Wed) 22:25 |
| 投稿者 |
: yun◆6As0zdMqREo |
| ID情報 |
: 5zLC8SAYhEYM.pjAtcWOI. |
| 参照先 |
: |
>>147 dipperさん
>>148 amateurさん
早速のお返事おふたりともありがとうございます。
両方動作しました。
(こんな単純な間違えで長い間悩んでいたなんて言えない・・・)
書き方としてはamarureさんの上のほうが個人的に見やすいので今度からはその書き方を参考に
しようと思います。
なにはともあれ146は正常動作版に変更しておきます。
ありがとうございます。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.150)
| 投稿日 |
: 2016/09/21(Wed) 22:31 |
| 投稿者 |
: amateur◆kR..xsXL6RU |
| ID情報 |
: BshwTBbsyAlT8iEBOVLn8. |
| 参照先 |
: |
>>147 dipperさん
私は実際に動作確認はしていないので断定はできないですけど、
$4 [:17=>type; 0=>data; 0=>chap;{cdb_value}:] $$
の部分の、[:17=>type; 0=>data; 0=>chap;{cdb_value}:] についてですが、
「;」で分割されたアドレスコーディングの最後の、{cdb_value}のアドレスに対して、
ポインタ変換演算子とオフセット演算子を使用する、というのが>>146の趣旨だと思いますので、
{cdb_value}=>ad; [.[:$ad:].]
または、
[.[:{cdb_value}:].]
と書くのが正しいのではと思うのですが・・・
ただし、ポインタ変換演算子[::]については、
後ろの「 :] 」の数と記述場所が合っていれば、実際には動作するようですので(前の「 [: 」は無視される?)、
オフセット演算子が抜けているのを除けば、>>147の記述でも動作したのでは、と思います。
例)
[:[:[:0x75A8D4:]+0x14+$type*0x28:]+0x04+$data*0x20:]+0x00+$chap*0x4
は、
[:0x75A8D4:]+0x14+$type*0x28:]+0x04+$data*0x20:]+0x00+$chap*0x4
でも、多分動作します(前の [: の数が合ってなくても構わない、というSpoilerALの仕様みたいです?)。
>>149 yunさん
動作したのなら何よりです。私は動作確認せずに書いてしまったので、実は不安でした・・・

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.151)
| 投稿日 |
: 2016/09/21(Wed) 23:53 |
| 投稿者 |
: dipper◆LEFxdWWYR3c |
| ID情報 |
: FyiyLXgYH8rBIZARmkWI10 |
| 参照先 |
: |
>>150 amateur
>>146のSSGを拝見して該当の処理を追っていくと[replace]を2回使ってましたが、結局は格納値が0なので、
オフセット演算子はいらないなと判断して省いてしまいました。
書き方については、>>147の処理で試してみたら動作したので横着して勇み足で投稿しただけです。
{cdb_value}=>ad; [.[:$ad:].]や[.[:{cdb_value}:].]と書くのが綺麗にまとまりますね。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.152)
| 投稿日 |
: 2016/09/22(Thu) 01:03 |
| 投稿者 |
: amateur◆kR..xsXL6RU |
| ID情報 |
: 3hhUgdUICXstPamgXJe9S. |
| 参照先 |
: |
>>151 dipperさん
確かに、ご指摘のとおりこの箇所の[replace]のオフセット値は、>>146のSSGをよく読むと0ですね。
確認せずに余計なことを書いてすみませんでした。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.153)
| 投稿日 |
: 2016/09/22(Thu) 01:29 |
| 投稿者 |
: amateur◆kR..xsXL6RU |
| ID情報 |
: ./n4Vy3HMCjvUrnj/vokr/ |
| 参照先 |
: |
>>149 yunさん
お尋ねの件と直接関係はないのですが、>>146のSSGの、[group]main にある、
[define cdb_string] [:[:[:0x75A8D4:]+0x14+$type*0x28:]+0x14+$data*0x20:]+0x04+$chap*0x1C=>name; [:$name +0x14:1] == 0x1F =>tmp; ($tmp^1)*$name +[:$name:]*$tmp
の箇所ですが、[:$name +0x14:1] == 0x1F については、
[:$name +0x14:2] > 0xF
または、
[:$name +0x14:2] == 0xF =>tmp; $name*$tmp +[:$name:]*($tmp^1)
等とした方がよいと思います。(※[:$name +0x14:1]から[:$name +0x14:2]に訂正)
実は、私も修正前の解析用SSGや、>>125に添付したSSG等では [:$name +0x14:1] == 0x1F と書いていたのですが、
[:$name +0x14:] の値は、「0xF」と「0x1F」だけでなく、「0x2F」や「0x3F」の場合もある(この場合も0x1Fと同様にポインタで飛んだ先に文字列格納)ようなので、
[:$name +0x14:1] == 0x1F と書いてしまうと、「0x2F」や「0x3F」の場合に文字列を正常に表示できないことに最近気付きまして・・・(ウディタで他に名称等を表示させる箇所も同様)
>>141に書いた「名称や文字列を表示させる部分に不適切な箇所があった」というのは正に上記のことでした。
一応、解析用SSGは>>141に書いたとおり修正したのですが、>>125に添付したSSGは修正するのを忘れていたので、
つい先程修正しました(汗・・・)
余計なことかもしれませんが、SSGを読んでいて気になりましたので・・・
・・・実際には、可変DBのキャラ名等で、「0x2F」等になる長い文字列はまず無いと思うので、実害は無さそうですが(だからこそ私は長い間気付かなかったのですが)。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.154)
| 投稿日 |
: 2016/09/22(Thu) 03:08 |
| 投稿者 |
: amateur◆kR..xsXL6RU |
| ID情報 |
: 3hhUgdUICXstPamgXJe9S. |
| 参照先 |
: |
>>1のウディタ解析用SSGを更新したので、差し替え(2個目の添付ファイル)。
「タイプのメモ」を表示するよう修正しました。
解析に役立つ情報が書いてあることが結構多いので、あった方がよいかと。
これについてもyunさんが公開くださった情報を有難く利用させていただきました。yunさんにお礼申し上げます。
それと、>>145でアップした、「現在MAPのID・名称」「座標」「プレイ時間」の確認用SSGをオマケとして同梱しました。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.155)
| 投稿日 |
: 2016/09/22(Thu) 04:05 |
| 投稿者 |
: dipper◆LEFxdWWYR3c |
| ID情報 |
: SXaTwJHb.fxUUzGit7MNV. |
| 参照先 |
: |
>>153 amateur
おそらく「 [:$name +0x14:1] == 0xF 」だと「 0xF 」の時だけしか機能しないと思います。
たとえば参照するバイト列が「 11223344 」とある場合「 [:〜〜:1] = 0x11 」「 [:〜〜:2] = 0x2211 」と返るはずです。
そのため「 [:$name +0x14:1]%0x10 == 0xF 」とすればおそらく機能すると思います。
もっとも「 [:$name +0x14:1] > 0xF 」と設定すれば済む話なんですけど、あくまで参考までに。
■追記
「 [:$name +0x14:1] > 0xF 」は末尾が0のアドレスの場合機能してしまう恐れがありますね。
「 [:$name +0x14:]=>ad;($ad%0x10)*($ad/0x100==0) == 0xF 」参考までに左記の処理なら4バイト「 0xF〜0xFF 」なら機能すると思います。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.156)
| 投稿日 |
: 2016/09/22(Thu) 07:38 |
| 投稿者 |
: (仔猫)◆KCezBilYINU |
| ID情報 |
: igMbiif6SuGvdJWXVnNbQ0 |
| 参照先 |
: |
(yunさんの書き込み…同じような所で躓いてまして‥。勉強になりました、ありがとう。)
(しかしamateurさんやdipperさん…すんなり6.2へ移行出来たことといい。才能の差を感じる今日この頃です)

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.157)
| 投稿日 |
: 2016/09/22(Thu) 07:52 |
| 投稿者 |
: amateur◆kR..xsXL6RU |
| ID情報 |
: ./n4Vy3HMCjvUrnj/vokr/ |
| 参照先 |
: |
>>155 dipperさん
色々フォローありがとうございます。
そもそも論になりますが、[:$name +0x14:] の値については、私のウディタ解析経験上、
「0xF」「0x1F」「0x2F」「0x3F」等、末尾1桁(16進数で)が「F」となる値以外(「10」や「25」)は存在しない、と思います(だから>>153のような条件式を書いたわけです)。
ウディタ製ゲームは10個くらいしか解析してませんが、それでもざっと計算して数千個の文字列をチェックしてきた経験上、
上記のとおり、[:$name +0x14:] の値について、末尾1桁(16進数で)が「F」ではなかった例は一度も見たことがありません。
百聞は一見にしかず、ということで参考に、私がウディタ製ゲーム(2つ)から抽出した文字列のリストを添付します。
・・・シート2個目の文字列がアレな内容ですが・・・[:$name +0x14:] の値が「0x2F」「0x3F」の例です(改造依頼を受けて最近SSGのリスト作ったので)・・・
LibreOffice(フリーソフト)で作成したファイルですので、エクセルでは読めないかもしれませんが。
添付ファイルの一番左の列(A列)はMDXで抽出したデータ(>>1の添付ファイル1個目に抽出用設定ファイルが入ってます)で、
[:$name +0x14:]の値 = 文字列(直接格納) = [:$name +0x14:]の値 = 文字列(ポインタで飛んだ先に格納)
という形式ですが、[:$name +0x14:]の値 が、「0xF」「0x1F」「0x2F」「0x3F」等、末尾が「F」以外は存在しないのが分かっていただけるかと(D列を参照)。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.158)
| 投稿日 |
: 2016/09/22(Thu) 07:54 |
| 投稿者 |
: amateur◆kR..xsXL6RU |
| ID情報 |
: ./n4Vy3HMCjvUrnj/vokr/ |
| 参照先 |
: |
(1000文字制限に抵触したので分割して>>157の続き)
一応、C列で各文字列のバイト数も確認可能にしましたが、
文字列のバイト数はバラバラの値でも、[:$name +0x14:]の値は、必ず末尾1桁が「F」となってます(空の文字列の場合は「0xF」です)。
といっても、相関関係が無いわけではなく、
各文字列のバイト数+1(末尾付加のNULL文字分)が0x10(16)を超えると、
[:$name +0x14:]の値が「0x1F」に(0x1F以上だとポインタで飛んだ先に文字列格納。直接文字列を格納するのは「0xF」の場合のみ)、
0x20(32)を超えると、「0x2F」に・・・(以下同様)、という法則?っぽいものが帰納的に見えてくると思います。
補足ですが、文字列のバイト数は [:$name +0x10:]の値となります。
なお、私も改めて検証して気付いたのですが、[:$name +0x14:]の値が「0x10F」と2バイトの例(全角128文字以上)を発見しました。
ですので、>>1の2個目に添付したウディタ解析用SSGを修正・差し替えしました。
文字列表示の箇所を「 [:$name +0x14:2] 」とし、1バイトではなく2バイト読み取りにしました。
一つの文字列だけで全角3万文字以上は非現実的なので、3バイト以上は流石に有り得ないかと。
ちなみに、[:$name +0x14:]の値が「0x10F」となってる例では、
文字列のバイト数が「0x10D」でしたので、上記の法則?に合致しています。
参考までに、上記の[:$name +0x14:]の値が「0x10F」なのは、
イグニッシアサーガ第六幕-それなりダンジョン-の、可変DBのタイプID【15】の「計算用tmp.キャラ」の「タイプのメモ」です(>>1のSSGで確認可能)。
アドレスは、 [:0x78B6F4+0x10:]+0x20+15*0xA8 =>name; [:$name:] ですので、うさみみ等で確認可能です。
※ [:0x78B6F4+0x10:]+0x20+15*0xA8 =>name; [:$name +0x14:] の値が「0x10F」

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.159)
| 投稿日 |
: 2016/09/22(Thu) 08:58 |
| 投稿者 |
: amateur◆kR..xsXL6RU |
| ID情報 |
: ./n4Vy3HMCjvUrnj/vokr/ |
| 参照先 |
: |
>>156
むしろ、(仔猫)さんが最近、高度なプログラム改造を書かれていて、凄いなあと思っていたところですけど。
私にはまだあんなレベルのは無理です・・・(いつまで経っても無理っぽい気が)
以前にも書いた気がしますが、私はその場凌ぎ・付け焼刃なので、すぐにボロが出ます・・・
基本的に面倒くさがりなので、楽するために自分なりに工夫してるだけという、身も蓋もない話ですし。
最近アップした某作品のSSGも、酷い手抜きで・・・

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.160)
| 投稿日 |
: 2016/09/22(Thu) 18:18 |
| 投稿者 |
: dipper◆LEFxdWWYR3c |
| ID情報 |
: FyiyLXgYH8rBIZARmkWI10 |
| 参照先 |
: |
>>157 amateurさん
あ、申し訳ない勘違いしてました。
最たるものは下記の様に勘違いしてました。見当違いな指摘で申し訳ありません。
[:$name +0x14:2] == 0xF =>tmp; $name*$tmp +[:$name:]*($tmp^1)
↓
[:$name +0x14:2] == 0xF =>tmp; $name*($tmp^1) +[:$name:]*$tmp

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.161)
| 投稿日 |
: 2016/09/22(Thu) 22:37 |
| 投稿者 |
: (仔猫)◆KCezBilYINU |
| ID情報 |
: rEJID857HEZobEaiEqljC/ |
| 参照先 |
: |
(>>159・・・まだまだ苦闘してます汗)
(やはり感謝すべきはナスさんや先輩の方々が残してくれた資料のお陰です・・・)

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.162)
| 投稿日 |
: 2016/09/23(Fri) 01:52 |
| 投稿者 |
: amateur◆kR..xsXL6RU |
| ID情報 |
: SITV/IorT.QAAGBhmX0kl1 |
| 参照先 |
: |
>>125に書いた、ウディタでのSSGの書き方ですが、
一つ、ミスしやすい点がありますので一応書いておきます(というか、私がやらかした間違いというだけですが・・・)。
例)
------------------
//可変DBのアドレスを定義
[define CN][:[:[:0x6A6218:]+0x14+$typ*0x28:]+0x04+$da*0x20:]+$nu*0x4
[define CS][:[:[:0x6A6218:]+0x14+$typ*0x28:]+0x14+$da*0x20:]+0x4+$nu*0x1C=>name; [:$name +0x14:2] > 0xF =>tmp; ($tmp^1)*$name +[:$name:]*$tmp
[subject]パーティメンバー:dir
[repeat]ssl->member_SSR,0,5,1
[back]
-------
[group]member_SSR
[define PA] 1=>typ; 0=>da; 0x[! 4+$Val !]=>nu
[define C1] {PA};[:{CN}:]
[subject]【 '+' _mem, _{C1}=>da; 5=>typ; 0=>nu;{CS}, 40, 00,-- '+' 】:dir
(省略)
[back]
[/group]
------------------
この場合、{C1}={PA};[:{CN}:] が、「{C1}=>da」として、
最初に定義した、可変DBの項目の文字列のアドレス(={CS})の「データのID」として代入する値ですが、
文字列表示のアドレスネーミングの「アドレス」部分の、
_{C1}=>da; 5=>typ; 0=>nu;{CS}
を書く際、
_5=>typ; {C1}=>da; 0=>nu;{CS}
と書いては駄目です。何故なら、下の例では、{CN}と{CS}以外を置換せずに書くと、
_5=>typ; 1=>typ; 0=>da; 0x[! 4+$Val !]=>nu;[:{CN}:]=>da; 0=>nu;{CS}
となりますが、「_5=>typ; 1=>typ; 」という順番での記述になるので、
{CS}に代入される変数「typ」(タイプのID)は、「1」になってしまう(「5」を代入するのが正しい)からです。
「タイプのID」や「データのID」を代入する際には、順番に気をつけないと間違えてしまう場合がある、ということで・・・

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.163)
| 投稿日 |
: 2016/09/23(Fri) 17:38 |
| 投稿者 |
: (仔猫)◆KCezBilYINU |
| ID情報 |
: igMbiif6SuGvdJWXVnNbQ0 |
| 参照先 |
: |
情報資料ありがとうございます。
ウディタ製ではないですが
動かなかった作りかけのコードで思い当たりました。
もしかして…それが原因だったのかもと。展開して最終確認が必要な訳ですね。
追伸:できました!原因は別にあって恥ずかしながら括弧バグが直ったので6.1と挙動が違うんでした。
もしかして@sslと直接アドレスを指定していたのですが全部defineへ置き換えることができるような気も…。
amateurさんのように共通の項をうまく纏めるようにできないかなぁ。と宿題が残りました。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.164)
| 投稿日 |
: 2016/09/23(Fri) 21:49 |
| 投稿者 |
: amateur◆kR..xsXL6RU |
| ID情報 |
: kw7WAKHJkI5dR6nZN1V/.0 |
| 参照先 |
: |
>>163 (仔猫)さん
添付のSSG拝見いたしました。
相変わらず、吉里吉里のアドレスは長ったらしいですね・・・
knさんの解析ツールが無ければ、私はとても書く気になれないです・・・(ハッシュ値云々の仕組みを理解してないのでツール無しには書けないのですが)
以前に同じ吉里吉里製のギアドラのSSGを書いていて思ったのですが、
ハッシュ値(吉里吉里解析ツールで表示される)以外は、ツールで出力されるアドレスが同じ項目が多かった記憶があります。
添付いただいたSSGでいうと、
[group]gpn_bank と、[group]g_t_HaremCount、[group]g_t_PrinceCount、[group]g_childrenCount あたり(他多数)は、
ハッシュ値以外は全く同じですね。ですので、例えば、
----------
[define Ad1] [:[.0x00.]:]=>B;$hash01=>H;[:$B+0x10:]=>T1;[:$B+0x18:]=>T2;($T1&$H)*0x20=>T1;$T2+$T1=>A0;[:$A0+0x1C:]=>A1;[:$A1+0x1C:]=>A2;[:$A0+0x04:]==$H=>V0;[:$A1+0x04:]==$H=>V1;[:$A2+0x04:]==$H=>V2;(($A0*$V0)|($A1*$V1)|($A2*$V2))+0x10
----------
と予め定義し(「$hash01」がハッシュ値となる)、その上で、各項目のアドレス部分に、
----------
_(各ハッシュ値)=>hash01; {Ad1}
----------
のように書いていくと、省力化できるような気がします。
ちなみに、テキスト中の異なる部分を簡単に特定するには、
テキスト差分比較サイト difff《デュフフ》を活用するのが便利かと(他に便利なツールがあるかもですが)
ギアドラのSSGを書く際に、上記サイトが大活躍でした。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.165)
| 投稿日 |
: 2016/09/23(Fri) 22:38 |
| 投稿者 |
: amateur◆kR..xsXL6RU |
| ID情報 |
: 9NipKN0//yE05amsCxA3a. |
| 参照先 |
: |
>>164の続きですが、例えば、[repeat]を使用して、
項目名部分には、[! @項目名リスト, $Val !] と書き、(「項目名リスト」作成は、解析ツールで抽出できれば簡単ですが・・・)
アドレス部分には、下記のように記述すれば、より省力化できる、ような気もします(項目種別やオプション部分が同じでよいなら、という条件つきですけど)
_[! @ssl->ハッシュ値リスト, $Val !]=>hash01; {Ad1}
※「ハッシュ値リスト」には、各項目名に対応するハッシュ値を各行に書いていく(これも解析ツールで抽出できれば簡単ですが・・・)
例)
[subject][! @ssl->項目名リスト, $Val !][ '+' _mem,_[! @ssl->ハッシュ値リスト, $Val !]=>hash01; {Ad1},4,num,-,%d '+' ]/[! @ssl->項目名リスト, $Val !]/:calc,_[! @ssl->ハッシュ値リスト, $Val !]=>hash01; {Ad1},0,999999999
(追記)
「@項目名リスト」等に、「ssl->」等のファイル名指定を忘れていたので、下記のように訂正
[! @ssl->項目名リスト, $Val !] や、[! @ssl->ハッシュ値リスト, $Val !]

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.166)
| 投稿日 |
: 2016/09/23(Fri) 22:45 |
| 投稿者 |
: (仔猫)◆KCezBilYINU |
| ID情報 |
: igMbiif6SuGvdJWXVnNbQ0 |
| 参照先 |
: |
amateurさんありがとう御座います。
素晴らしい回答です。目から鱗です!
6.1のコードと比べて全く同じ機能で、ここまでコードが縮まるとは思いませんでした。
感謝です。
添付:もうちょっと手直しする予定ですがとりあえず纏めてみました。
>>165
>※「ハッシュ値リスト」
以前考えたことがあったのですが、そのときは出来そうで出来ないような気がしたのですが6.2では可能なんですね。
>[subject][! @項目名リスト, $Val !]
これは項目もリスト化で表示ですね。まだ纏めることが出来るとは…超ダイエットに成功しそうな感じです。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.167)
| 投稿日 |
: 2016/09/24(Sat) 04:20 |
| 投稿者 |
: amateur◆kR..xsXL6RU |
| ID情報 |
: kw7WAKHJkI5dR6nZN1V/.0 |
| 参照先 |
: |
>>166 (仔猫)さん
お役に立てたなら幸いです。
あれから色々考えて、さらに省力化(になるかは?)が可能なことに気付きました。
>>165で、(項目種別やオプション部分が同じでよいなら、という条件つきですけど) と書きましたが、
下記のように、[repeat]の [! @ssl->xxxリスト, $Val !] を使えば、項目種別やオプション等も項目毎に変えられることに気付きました(こんなことが可能とは知らなかった・・・)ので、
サンプル的なSSGを添付します(体験版2.10用です)
なお、各リストを書くのが面倒そうに思えますが、表計算ソフトを使えば意外に楽、かもしれません
-----------
[subject][! @ssl->項目名リスト, $Val !] [ '+'_mem,_[! @ssl->ハッシュ値リスト, $Val !]=>hash01; {Ad1},[! @ssl->namingリスト, $Val !] '+' ]/[! @ssl->項目名リスト, $Val !]/[! @ssl->項目種別リスト, $Val !]_[! @ssl->ハッシュ値リスト, $Val !]=>hash01; {Ad1}[! @ssl->項目オプションリスト, $Val !]
[/group]
-----------
[group]項目名リスト
名前(uni)
職業(uni)
Lv
経験値
給与
[/group]
-----------
[group]ハッシュ値リスト
0xE6E17F14
0x2CFB01B7
0xF66D3B99
0xE2313450
0xDDB7CB37
[/group]
-----------
[group]namingリスト
0x20,unicode,-
0x20,unicode,-
4,num,-,%d
4,num,-,%d
4,num,-,%d
[/group]
-----------
[group]項目種別リスト
_:string,
_:string,
:calc,
:calc,
:calc,
[/group]
-----------
[group]項目オプションリスト
,16,00
,16,00
,0,99
,0,99999999
,0,99999
[/group]
-----------

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.168)
| 投稿日 |
: 2016/09/24(Sat) 09:54 |
| 投稿者 |
: (仔猫)◆KCezBilYINU |
| ID情報 |
: igMbiif6SuGvdJWXVnNbQ0 |
| 参照先 |
: |
amateurさん、ご助力ありがとうございます。
各項目をリスト化できるんですね。
こんなにコンパクトに書けるとは大変勉強になりました。
(UnDefの使い方…成る程、こう使うのかぁ・・・メモメモ)
リスト化すると
保守も簡単になりますね、お手本にさせて頂きます(こんな綺麗なコードになるとは…)
追伸:そろそろ表計算ソフトも使いこなせるようにならないと…。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.169)
| 投稿日 |
: 2016/09/24(Sat) 12:08 |
| 投稿者 |
: amateur◆kR..xsXL6RU |
| ID情報 |
: 538P2onrm1vobs9NTdpmQ/ |
| 参照先 |
: |
>>168
>>167に書いた例は、かえって面倒で省力化になってないかもですね・・・
あらためて見るとやり過ぎだった気がします。あくまで書式の実験ということで・・・
同じcalc項目でも、オプション部分(最大値等)を変えられる、程度の使い方でよいかもしれません。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.170)
| 投稿日 |
: 2016/09/24(Sat) 12:49 |
| 投稿者 |
: (仔猫)◆KCezBilYINU |
| ID情報 |
: igMbiif6SuGvdJWXVnNbQ0 |
| 参照先 |
: |
>>169
了解です。これで僕も6.2の仲間入り出来そうです、ありがたや〜。
(最初の躓きがあって2週間ぐらい考えても分からなかったのが、方々のお陰で解決できました。)

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.171)
| 投稿日 |
: 2016/09/24(Sat) 13:24 |
| 投稿者 |
: amateur◆kR..xsXL6RU |
| ID情報 |
: s9iC6o/u/9hk6a/a1rFau1 |
| 参照先 |
: |
そういえば、以前にSSGを書いたHSP製も、[define]の関数的構文で書くのに向いてる気が。
[define Ad] [:[:[:(ベースアドレス):]+0x2C:]+0x1C +$num*0x30:]
のように定義して、($numの部分がいわゆる「n値」)
_(各項目のn値)=>num; {Ad}
と各項目のアドレス部分に書くと楽かも。
※ 「$num*0x30」の箇所をまとめて「$num」とした方がよいかも?
特定のゲームエンジンを使うゲームは、[define]の関数的構文と相性が良いのでしょうか。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.172)
| 投稿日 |
: 2016/09/24(Sat) 17:57 |
| 投稿者 |
: amateur◆kR..xsXL6RU |
| ID情報 |
: woJMBY0l/s6yuKDrCKy7S. |
| 参照先 |
: |
(仔猫)さんとお話していた「魔剣士リーネ2」(吉里吉里製)の件ですが、
吉里吉里解析ツールのアドレス出力機能を使って、色々考えたところ、
吉里吉里のアドレスは物凄く長いのですが、構造自体は意外に単純みたいですね。
基本的に、解析ツールの上位ノードから、順番にハッシュ値をチェックし、
ハッシュ値ごとに共通の記述が繰り返されるという構造です。
このゲームでは、最初のハッシュ値は「0xB427DD3B」で、ノード名「game」以下(改造対象の項目は全てこのノード以下にある)の全項目共通、
2個目以降のハッシュ値で分岐していくという感じです。
添付SSGの末尾、[/script]の後ろに書いたように、[define]で定義する必要のあるのは、3つだけだと思います。
なお、各キャラやアイテム等、同階層のノードが各キャラ等で分岐している場合は、
添付SSGに記載の[define AD2]で定義した式が、{AD1}の前に入るようです
この場合、[repeat]を使って、[define AD2]の「$num」の箇所に 0x[! $Val !] を代入することが多いと思います。
基本形は、
_{AD};(ハッシュ値)=>Ha;{AD1};(ハッシュ値)=>Ha;{AD1} (以下、;(ハッシュ値)=>Ha;{AD1}を必要分だけ繰返し)
場合によって、;(ハッシュ値)=>Ha;{AD1} の前に、 (キャラID等)=>num;{AD2}; が入る、という感じかと。
(補足)
同じ吉里吉里のギアドラで確認したところ、
[define AD]に書いたモジュール名(ゲーム実行ファイル名)と最初のハッシュ値以外、
添付SSGの、[define AD]、[define AD1]、[define AD2] は、全く同じ(上記の基本形も同じ)でしたので、
吉里吉里のVerが同じなら、モジュール名と最初のハッシュ値だけ変えれば、他のゲームにも流用できそうです。
(さらに補足)
モジュール名は「MName::nul」と書けばゲーム毎に修正しなくて済みますね。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.173)
| 投稿日 |
: 2016/09/24(Sat) 19:47 |
| 投稿者 |
: (仔猫)◆KCezBilYINU |
| ID情報 |
: igMbiif6SuGvdJWXVnNbQ0 |
| 参照先 |
: |
amateurさん
吉里吉里の解析ありがとう御座います。
繰り返しが多いような感じではありましたけど…
本当に3つで出来そうですね。
変数の発想は誰が出したのだろうと思ったらdipperさんでしたか!?
うーん…流石としか言いようがないです。
それを実装させた変態紳士さんにも大感謝です。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.174)
| 投稿日 |
: 2016/10/01(Sat) 22:49 |
| 投稿者 |
: 匿名 |
| ID情報 |
: 6b2UI6aUdjrQ4A.kD8xpg/ |
| 参照先 |
: |
Alice Soft system3.9 で作られたフリーゲームうさ耳で数値検索>出た数値変更で数値変化なしだったんですが改造する方法って何かありますでしょうか?もしくはAlice Soft system3.9ゲーム全般的なSSGはあるんでしょうか?何処で聞くのがいいのか新規建てる方がよかったのかわからないのでここに書き込ませてもらいます

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.175)
| 投稿日 |
: 2016/10/02(Sun) 00:58 |
| 投稿者 |
: (仔猫)◆KCezBilYINU |
| ID情報 |
: pFOWhC7c3/WlFSlPI9r390 |
| 参照先 |
: |
system3.9 を使ったゲームと言うことは
古いアリスのゲームかな?
鬼畜王ランスを解析したとき各パラメーターのデータが2Byte(max65535)で処理されてました。
うさみみのデフォルトのサーチは4bytes(Dword)なのでプルダウンで2bytes(Word)へ変更すると
検索に掛かるかもです。あとは検索範囲を広げてみるとか。。。
(amateurさんと時間が被ってしまった!)
(と言うわけで、差し支えなかったらゲームタイトルを書いておいてください。)
>>176
amateurさんの遭遇した、値が3バイトで格納されていてるのが気になります。
依頼のゲームを解析してみると所持金が分離してまして…おやっと。
昔のゲームなどでは00を末尾へ加えて桁数を水増しする技とかあったみたいですね。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.176)
| 投稿日 |
: 2016/10/02(Sun) 00:58 |
| 投稿者 |
: amateur◆kR..xsXL6RU |
| ID情報 |
: C4GUNsOSJ.hca6iRZKber0 |
| 参照先 |
: |
>>174
フリーゲームなら、ゲーム名と入手先のリンクを書いていただけないでしょうか。
実際にそのゲームで試してみないと、はっきりしたアドバイス等は出来ませんので。
どうしてもゲーム名を書けない理由でもあるのでしょうか?
それだけの情報では一般的・抽象的な返答しかできませんし、
無駄に遠回りな話で時間を無駄遣いすることになります。
>>175
(仔猫)さん、フォローありがとうございます。
検索自体ができていないのか、書換え時点で何か問題があるのか・・・
書き換えた後、画面表示を更新していないだけって可能性もありますし、何とも言えませんね。
ステータス関係だと、書換え後、装備し直す等でステータスの再計算処理がされないと反映されないって場合もありますし。
そういえば、以前、値が3バイトで格納されていて、
バイト列に変換(エンディアン反転)してバイト列検索しないとヒットしない例がありました。(うさみみでは3バイト単位の数値検索は不可)

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.177)
こちらのゲームですこんな感じでいいんですかね

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.178)
| 投稿日 |
: 2016/10/02(Sun) 02:04 |
| 投稿者 |
: (仔猫)◆KCezBilYINU |
| ID情報 |
: pFOWhC7c3/WlFSlPI9r390 |
| 参照先 |
: |
2byteで格納されてますね。うさみみなら2bytesで検索&サーチ範囲を40000000ぐらいにしてみてください。
LEA EAX,[EAX+EAX*2]
MOV EDX,[ECX+EAX*4+4]
MOV [EDX+ESI*2],AX
system3.9のポインタの形ですが
上のアセンブラを変換するとこんな感じです(戦闘中HPのアドレスです)
ptr(ptr(ptr(495A90)+14)+18D*4)+2n
SSGの下の方にコメントアウトで解析部分を書いておきました。
>>174
>Alice Soft system3.9ゲーム全般的なSSGはあるんでしょうか
Takeさんの作られたアリスソフト解析用SSGと言うのがありまして
それを使うと色々と解析ができるかもしれません。ただ、system3.9では使ったことがないので手直しすれば使えるようになると思いますが…(入手先は何処だったかなぁ。臨時板のAlice関係の依頼でTakeさんが公開してくださってるSSGに含まれてるような記憶が。)
添付1:参考になれば(修正10/02 22:00)

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.179)
178さんありがとうございます、おかげで楽にストーリー進めて見ることができます

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.180)
| 投稿日 |
: 2016/10/03(Mon) 01:31 |
| 投稿者 |
: amateur◆kR..xsXL6RU |
| ID情報 |
: 7o6eMrHAFZefHw1QasErk1 |
| 参照先 |
: |
>>178 (仔猫)さん、SSGありがとうございます。
私は、アリス系(エンジン)のゲーム解析は初めてなので、大変参考になりました。
一応、私もSSGを作ってみたのですが、何故かベースアドレスが(仔猫)さんのSSGとは違ってしまいました・・・
私の環境ではどちらでも動作してますので、多分どちらでもよいと思います・・・おそらく。
念のため、ズレ対策の経路を使ったものの、必要かどうかは分からない上に、そもそもズレ対策に効果あるのか不明ですが、
私にはこれ以外の経路は見つけられませんでした。一応、経路は2つ見つけたのですが、どちらが良いかは?です。
詳しくは添付SSGの末尾を参照。
SSGにはアイテムやスキル関係、行動済みキャラを未行動に戻す等、色々入れましたが、
各項目→各キャラという表示になってるので、使いにくいかも・・・
なお、ゲーム開始後最初のマップしかプレイしてないので、キャラ名のリストがこれで正しいのかは未検証です。
(追記)
SSGを更新。
ステータス等を、各キャラごとに表示できるようにしました。
更新前の「各項目→各キャラ」の分も残してます。
どちらでも書換え内容自体は同じです。
(10.04 追記)
SSGを更新。難易度変更を追加。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.181)
| 投稿日 |
: 2016/10/03(Mon) 02:09 |
| 投稿者 |
: (仔猫)◆KCezBilYINU |
| ID情報 |
: SzycEX2TAWquIqbhGWdJV. |
| 参照先 |
: |
おお!amateurさん解析ありがとう御座います。
これは完成度が高い。しかも6.2で作られていて勉強になります。
ゲームも結構おもしろいし
これ別スレを立ててamateurさんのSSGを再投稿してもらった方がよさそうですね?
>私にはこれ以外の経路は見つけられませんでした。一応、経路は2つ見つけたのですが、どちらが良いかは?です。
あー。メインのポインタはあまり検証してなかったです。僕の方がミスってるぽい。
ひょっとして動いてるのが奇跡じゃないかと(汗

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.182)
| 投稿日 |
: 2016/10/03(Mon) 03:35 |
| 投稿者 |
: 匿名 |
| ID情報 |
: 6b2UI6aUdjrQ4A.kD8xpg/ |
| 参照先 |
: |
WIN10だと180さんのSSG中に書かれてるとうり更新パッチ落として
更新パッチフォルダーに書いてあるとうりにして起動すると
00416743でD0458920に対する読み込み違反てエラーが
ちゃんと更新出来てないってことですかね

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.183)
| 投稿日 |
: 2016/10/03(Mon) 04:20 |
| 投稿者 |
: amateur◆kR..xsXL6RU |
| ID情報 |
: 7o6eMrHAFZefHw1QasErk1 |
| 参照先 |
: |
>>182
そのエラー表示は、SpoilerAL起動時のエラーっぽい気がしますが、原因は分からないですね・・・
最新の修正パッチを当てても駄目でしょうか。私の環境では「2016.10.01」更新分の最新パッチで問題なく動作するのですが。
最新パッチを当てても同じエラーが出るなら、「SpoilerALの修正パッチ」のスレでパッチ作者の変態紳士さんにご報告していただくしかないと思います。
なお、上記スレで不具合報告する際は、同スレの(No.36) で変態紳士さんが書かれている内容をよく読んだ上でお願いします。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.184)
| 投稿日 |
: 2016/10/03(Mon) 10:07 |
| 投稿者 |
: Take◆z2zOLLMPyz2 |
| ID情報 |
: qtyJ/C0/kWnshYUUTWW6A/ |
| 参照先 |
: |
(仔猫)さんにamateurさんが凄いぞと言われて覗きにきましたがホントに凄いですね。
6.2仕様を十全に使いこなしている様で勉強させて頂きます。
自分の方は最近はずっと移植品しか作って無いのでパッチも1度導入したきりですので。
>>178
>Takeさんの作られたアリスソフト解析用SSGと言うのがありまして
確かイブニクルかランス3辺りだった気がしますね。
ベースと基本形さえ把握していればsystem3.9仕様にも出来るとは思いますがあくまであれは解析補助なので改造を主目的にするなら余り役には立たないかと。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.185)
| 投稿日 |
: 2016/10/03(Mon) 13:24 |
| 投稿者 |
: 匿名 |
| ID情報 |
: 6b2UI6aUdjrQ4A.kD8xpg/ |
| 参照先 |
: |
SpoilerALとパッチ落としなおして別途更新入れたら起動出来ました
解凍時か落とすときに一部ファイル破損等が起きてたのかも?
PC詳しくないのでよくわかりませんが

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.186)
| 投稿日 |
: 2016/10/03(Mon) 21:59 |
| 投稿者 |
: amateur◆kR..xsXL6RU |
| ID情報 |
: p/ELK5kD8gt1h6cjZmeK2/ |
| 参照先 |
: |
>>185 匿名さん
動作するようになったようで良かったです。
ファイル破損という可能性もあるので、一応何度か再DL等を試してみるのも大事ですね。
>>181 (仔猫)さん
私がSSGに書いたベースはブレーク設定しても反応が無く、これでいいのか?と思いつつ書いたので・・・
自分の環境では結果的に動作してるのでそのまま使ってるだけだったりします。
それと、このゲームの専用スレ立てた方がいいですかね。フリゲとしては評価高そうですし。
気になる点が少し残ってるので、それが解決したら改造投稿でスレ立てしようかと思います。
>>184 Takeさん
[define]による置換はSSG作成を省力化する強力な武器になりますので、
面倒臭がりの私には 願ったり叶ったりで即座に飛びついただけ、という気がします・・・(楽できる気配を察すると急にやる気が出る情けない習性)
[define]の関数的構文は>>67で変態紳士さんが私宛に解説くださったので([define]の書式が若干変わったようですが)、
印象に残っていて試しにウディタで使ったら非常に便利なことに気付いて、以降他のゲーム(エンジン)で試してる段階です。
6.2仕様ついては他の方々がその内もっと洗練された書き方でSSG作ってくださるのではと思います。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.187)
| 投稿日 |
: 2016/10/04(Tue) 17:42 |
| 投稿者 |
: (仔猫)◆KCezBilYINU |
| ID情報 |
: SzycEX2TAWquIqbhGWdJV. |
| 参照先 |
: |
amateurさん
>気になる点が少し残ってるので、それが解決したら改造投稿でスレ立てしようかと思います。
気になります!
しかし。。。
これは、お勧め出来るゲームだなぁと(雑談板にゲームの感想を…)
昨日は寝落ちしてしまってレスできませんでした。久々にうとうと…。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.188)
| 投稿日 |
: 2016/10/04(Tue) 21:57 |
| 投稿者 |
: amateur◆kR..xsXL6RU |
| ID情報 |
: IgQ2QfTm5h7LA/RA.6qb0/ |
| 参照先 |
: |
>>187 (仔猫)さん
モード(難易度)のことではなかったのですが、
難易度のアドレスは割りとあっさり見つかったので、SSGに追加しました。(>>180の添付SSGを更新)
(各難易度の値は、イージーが「0xA」、以下、公差1で、マスターが「0xD」でした)
気になる点というのは、味方ユニットと敵ユニットのステータス関係のアドレスの区別がどうなってるのか、
なのですが、一応大体は分かりました。
>>178で(仔猫)さんが書いてくださった下記の例でいうと、
ptr(ptr(ptr(495A90)+14)+18D*4)+2n
「n」が1から100までが味方ユニットの分で、通常ユニットは「n=68」の「ケケル」まで、
召喚ユニット(?)は、「流浪の衛生兵」:n=98、「ロフォ君」:n=99、「ヒュー」:n=100、のようで、
味方ユニットについては、「n」= ユニットID、という順番で固定のようです。
そして、「n=101」以降は、敵ユニットのデータとなるようですが、
ID順で固定というわけではなく、そのマップごとに異なるようです。
例えば、ゲーム開始後最初のマップでは、「n=101」は、マップボスの「プラント」(ID=129)となります。
敵ユニットについては、メモリ上のユニット名の並び順と、IDが結構バラバラで、全部調べるのが面倒そうなので
SSGに実装は見送りにします。
情報だけ書いておくと、下記が各ユニットのユニットIDのアドレスです。(n=1がハルカ。101以降は敵でマップごとに変わるよう)
_[:[:[:[:0x40114F:]+0x150:]+0x4:]+0x171*0x4+0x4:]+2n

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.189)
| 投稿日 |
: 2016/10/04(Tue) 22:26 |
| 投稿者 |
: amateur◆kR..xsXL6RU |
| ID情報 |
: aQjR6ysXytLKHk3mQkSdD/ |
| 参照先 |
: |
ご存知の方も多いかもしれませんが、
アドレス補正属性[adjustment]の「search」の仕様について幾つか気付いたことがありますので一応書いておきます。(search以外は使ったことがないので分かりません)
まず、
[adjustment]search,オプション
[/adjustment]
で括った項目(補正値適用対象項目)に、アドレスネーミングを使うと正常にサーチされない(サーチ範囲が「0x00400000 から 0x00400000」になる)
ただし、下記のように階層項目を使用すると、補正値適用対象項目にアドレスネーミングを使っても正常にサーチが可能。下記で(クリックでサーチ開始)を選択して下位項目を開くとサーチが開始する。
--------------------
[subject](クリックでサーチ開始):dir
[adjustment]search,オプション
(省略)
[/adjustment]
[back]
--------------------
なお、階層項目を使用すると正常にサーチが可能になることには、
臨時板管理人さん作のSSG「SRPG Studio 汎用 サーチ版」を読んでいて気付きました。
また、[adjustment]のオプション(基準アドレス等)に、[define]での置換は機能しないようです。
(サーチ開始のタイミングでSpoilerALが不正終了する)

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.190)
| 投稿日 |
: 2016/10/05(Wed) 00:02 |
| 投稿者 |
: (仔猫)◆KCezBilYINU |
| ID情報 |
: SzycEX2TAWquIqbhGWdJV. |
| 参照先 |
: |
>>188
amateurさん、詳細ありがとうございます。
ユニットでしたか…確かに。。。同じユニット名があるので、n値が網羅されてるアドレス(ポインタ)もありそう?な気はしますが労力と見合うメリットは…(僕もそこまでは無理ッス)
あと更新ありがとうございます。
難易度変更ありがたや。(マスター系の追加ユニットは仲間になるときにフラグも必要ある模様?)
追記:
マスターでのみ参加するキャラ
途中で難易度をマスターへ変更しても過去話を経てないと無理ぽい?そんな感じですね。
とりあえず全イベント網羅は無理な作りなのでハードモード終わらせてから2周目で確認します。
>>188,191
スポット参戦、確認しました(海MAPでの戦いで…。となるとカーソルを合わせた状態でのユニットのステータとか必要かな?)
_[:[:[:[:0x40114F:]+0x150:]+0x4:]+0x4:]+2*0x3B
でカーソル選択中のユニットIDです。
>>184
Takeさんありがとうございます。
また、技をお借りしました。選択中のユニット変更などを・・・。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.191)
| 投稿日 |
: 2016/10/05(Wed) 02:10 |
| 投稿者 |
: amateur◆kR..xsXL6RU |
| ID情報 |
: aQjR6ysXytLKHk3mQkSdD/ |
| 参照先 |
: |
>>188で「n=101」以降は、敵ユニットのデータ、と書きましたが、
敵ユニットとは限らず、スポット的に仲間になる「Helper」ユニット(1章第2話最初のマップで加わる「セバス」等)の場合もあるようです。
>>190
加入フラグ的なデータがあるのかと思い調べてみましたが、今のところ見つからないですね・・・

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.192)
| 投稿日 |
: 2016/10/05(Wed) 08:21 |
| 投稿者 |
: 匿名 |
| ID情報 |
: 6b2UI6aUdjrQ4A.kD8xpg/ |
| 参照先 |
: |
特定のステージで会話や特定のキャラで撃墜>仲間面があるんでフラグありそうですね、あとリスト名前で出てるキャラ敵限定ポイ人も味方の所に数人紛れ込んでるっぽい?マスターだと入るのかな?

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.193)
| 投稿日 |
: 2016/10/05(Wed) 09:56 |
| 投稿者 |
: Take◆z2zOLLMPyz2 |
| ID情報 |
: fIiQYbvUYJcUT0OW2rVHJ/ |
| 参照先 |
: |
どなたかtraceの仕様について詳しい方いますか?
色々と試してみたのですがtraceで条件式ファンネルが機能しないのって仕様ですかね?
trace自体を使うのが初めてで判断に困ってるので教えて頂けると有難いです。
単純に自分の記述ミスなら良いのですが…
>>186
amateurさん情報有り難うございます。
一応はパッチ導入時にはdefineを軽くは触っているので有用性は理解しるのですが、
SSGを作り直す気が起きなかったので今の所活用出来て無いですが新規で作る時にでも試してみます。
とは言え自分なりのSSGテンプレートがあるのでそちらを活かしつつと言った所ですかね。
自分の購入パターンで行くとアリスソフト辺りまでお預けかな?

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.194)
| 投稿日 |
: 2016/10/05(Wed) 18:08 |
| 投稿者 |
: (仔猫)◆KCezBilYINU |
| ID情報 |
: pFOWhC7c3/WlFSlPI9r390 |
| 参照先 |
: |
>>192
匿名さん
情報ありがとう。特定のキャラで倒すとかあったんですね。魔法使いは仲間になったのですが。そのとき選択肢がでたので
なにかフラグ?この場合はアイテムでしたか必要でした。
>>193
Takeさん
>trace
Takeさんの仰る通りで本来の動作では機能してないような気がします。
うーん。僕もTakeさんと同じくでファンネルファイル名の書き方が間違ってるのかなーと悩んで…挫折。
別の使い方として値の確認用でたまに使ってます(アドレスネーミング部は機能してるのでdirやcalcの代わりにと)
誤爆しても安全ですし(あと見た目、グレーで目立たないし)
[subject]CharID [ '+' _mem,0x04,4,num,-,%u '+' ]:trace
-----------------------------
本来は・・・
[group]funnel_file1
use,_0x04,01
[/group]
[subject]CharID [ '+' _mem,0x04,4,num,-,%u '+' ]:trace,0x00,ssl->funnel_file1
の用に使うのかな?
あ、そういえば
amateurさんの臨時板の投稿でSSRファイルの使い方が書かれてました。
trace,0x00,file::ssl->funnel_file1
これでも駄目かぁ
--------------------
追記
>>195
amateurさんありがとうー。
repeatの時だけだったんですね。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.195)
| 投稿日 |
: 2016/10/05(Wed) 19:25 |
| 投稿者 |
: amateur◆kR..xsXL6RU |
| ID情報 |
: nsIRRgVQTDKnda8wYU7JF. |
| 参照先 |
: |
>>190 (仔猫)さん
カーソル選択中のユニットID、そんなデータもあるんですね。
これでユニットIDの確認がしやすくなりそうです。情報ありがとうございます。
>>193 Takeさん
traceについてですが、(仔猫)さんが>>194で書かれているように、
そもそもtrace項目自体が機能してない気がするのですが。
以前確認したら「trace」と「copy」項目は両方機能していないっぽい感じでした・・・
「copy」項目が機能したら、現在HPを最大値まで回復とかが簡単に書けそうなのですが。
一応、SpoilerAL.exeを対象プロセスにした確認用SSGを添付しました。
やはり、「trace」と「copy」両方とも機能してないような・・・
「 File::ssl->ファイル名 」という指定方法は、
[repeat]のループ値リストファイルを指定する時だけ(?)だと思いますが、
添付SSGの「trace 動作確認3」で一応試しても駄目でした。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.196)
| 投稿日 |
: 2016/10/06(Thu) 20:45 |
| 投稿者 |
: 変態紳士◆G9/eqTtPaq. |
| ID情報 |
: hawhNksd5H7Be3gn.TEMo. |
| 参照先 |
: |
>>193-195 Takeさん, (仔猫)さん, amateurさん
修正パッチの案内です。
traceとcopyをHowToSSGの記述に従いロック項目として修正しました。
動作サンプルはamateurさんのSSGを基に変更しています。
>「copy」項目が機能したら、現在HPを最大値まで回復とかが簡単に書けそうなのですが。
たぶんdipperさんが書かれた部分だと思いますが、
「その古城に勇者砲あり!」の「mana/魔力炉回復」で最大値を現在値に代入するコードがあります。
traceとcopyはSSGファイルを閉じるまで無条件にロックしますので使い方は限られるかもしれません。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.197)
| 投稿日 |
: 2016/10/06(Thu) 22:24 |
| 投稿者 |
: amateur◆kR..xsXL6RU |
| ID情報 |
: mgj3sQGTE0B7X1NLcNXds. |
| 参照先 |
: |
>>196 変態紳士さん
こちらをご覧くださった上に、パッチ更新で対応までしてくださり有難うございます。
早速、最新パッチを適用して添付していただいたSSGを試したのですが、
copy項目については、正常動作するようになりました。
ただ、trace項目については、
[subject]trace 動作確認【 '+' _mem, _Memory\:\:0, 4,num ,??, %08X '+' 】:trace, ssl->trace_fnl
について、
【 trace, ssl->trace_fnl 】の部分を、【 trace, _Memory::0, ssl->trace_fnl 】のように何らかのアドレスを書かないと、
ロック周期で書込みが行われるタイミングでSpoilerALが落ちてしまうようです。
※エラー表示は「SpoilerAL.exe は動作を停止しました」
そこで、下記のように添付SSGの項目を修正しましたが、SpoilerALが落ちることはないものの、
ファンネルファイルに記載した内容どおりに書込まれないようです(ファンネルファイルに書いたアドレスに何も書き込まれない)。
[subject]trace 動作確認【 '+' _mem, _Memory\:\:0, 4,num ,??, %08X '+' 】:trace, _Memory::0, ssl->trace_fnl

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.198)
| 投稿日 |
: 2016/10/07(Fri) 01:18 |
| 投稿者 |
: 変態紳士◆G9/eqTtPaq. |
| ID情報 |
: hawhNksd5H7Be3gn.TEMo. |
| 参照先 |
: |
>>197 amateurさん
SpoilerALのソースコードにはアドレスの部分はありません。
10/06の分は何度か修正していますが最新?でしょうか。
元のソースコードのままだと周期タイマー中に初期値設定をしていたりして、
何かを作りかけた形跡がある感じでした。
HowToSSGも何故かアドレスを含む書式と含まない書式があったりします。
後から見つけた記述には「ロックを切り替えるチェックボックス」などと書かれていますが、
実際はソースコードにはGUIなんて無かったりします。
本当は画面でチェックボックスを操作するようなものだったのか、常時ロックするものだったのか、
作ろうとした時点の構想すら掴めなくなってきました。
仕様より前に何を作ろうとしていたのかハッキリしていない気がします。
これは放置するべきかも・・・

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.199)
| 投稿日 |
: 2016/10/07(Fri) 18:56 |
| 投稿者 |
: (仔猫)◆KCezBilYINU |
| ID情報 |
: SzycEX2TAWquIqbhGWdJV. |
| 参照先 |
: |
>>196
変態紳士さん
パッチ更新ありがとうございます。
また
trace及びcopyの動作仕様解析ありがとう御座います。
もしかして
[funnel]が実装されたときに
traceは利便性から…廃止されたのかなぁ?
っという気もします。
追記:
パッチ試す前に書き込んだのですが
現在の最新パッチは…
amateurさんのところと同じ現象?(タイトルセレクトで選択後、ALが落ちてしまう)…というわけで確認が出来てません。
一部のSSGは読み込めるみたいです。amateurさんの最新投稿"グレイメルカ"はALが落ちることなく起動、動作もOKでした。
うーん謎です。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.200)
| 投稿日 |
: 2016/10/07(Fri) 19:14 |
| 投稿者 |
: amateur◆kR..xsXL6RU |
| ID情報 |
: bwM.PNxy5MRpLSTsAzk6// |
| 参照先 |
: |
念のためその後、再DLしてパッチ再適用、を何回か試したのですが、
やはり>>197と同じ結果でした・・・
私の環境自体に問題があるのかもしれませんし、一応トレース項目と同じような効果を得られる手法はありますので、
今後はトレース項目は触らないようにします・・・
一応書いておきますと、下記のような感じでトレース項目と同様の結果になると思います(強制ロックではないですが)。
項目本体のトグルは意味のない処理(項目本体のアドレスにそのアドレスの格納値を書き込む。NOPと同じような感じ)なので、
結局ファンネルライトによる書込みのみされるのと同じ、ということで。
------------------------------
[allocate]0, 100, RW
[funnel]ssl->funnel
[subject]ファンネルライト【 '+' _mem, _Memory\:\:0, 4,num ,??, %08X '+' 】/ON/: toggle, _Memory::0 +0x10, $4 [:Memory::0 +0x10:] $$
[/funnel]
------------
[group]funnel
use, _Memory::0, 11111111
[/group]
------------------------------
SSGにしましたので添付しておきます。
ただ、先程試した最新パッチを適用すると、何故か添付したSSGも動かないのですが(昨日まで問題なく動いていた他の複数のゲームのSSGも動かない、というかSpoilerAL起動直後に落ちるor起動すらしない)、
保存していた「2016.10.01」の分のパッチに戻すと、添付SSGも含めて問題なく動作します。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.201)
| 投稿日 |
: 2016/10/07(Fri) 21:32 |
| 投稿者 |
: amateur◆kR..xsXL6RU |
| ID情報 |
: bwM.PNxy5MRpLSTsAzk6// |
| 参照先 |
: |
>>199 (仔猫)さん
修正パッチのスレでdipperさんが書かれている「MName::」のエラーかもしれません。
私が書いたグレイメルカのSSGでは、「MName::」が機能してる箇所はありませんので。([define]の定義部分に1箇所使ってますが、SSGで実際には{}で呼び出してません)
一方、「MName::」を使ってる「Javardry THE KING」のSSGはエラーで使えないです(SpoilerALが落ちる)。
(追記)
ただ、>>196や>>200のSSGには「MName::」は使ってませんので、何故かと考えたら、
「MName::」と、>>196や>>200のSSGに共通するのは、
「MName::」と「Memory::0」の、「::」かな?という気がするのですが・・・

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.202)
| 投稿日 |
: 2016/10/08(Sat) 00:27 |
| 投稿者 |
: 変態紳士◆G9/eqTtPaq. |
| ID情報 |
: hawhNksd5H7Be3gn.TEMo. |
| 参照先 |
: |
>>199-201 (仔猫)さん, amateurさん
皆さんと挙動が違うのですが、似たような不具合を修正しておきました。
恐縮ですが確認をお願いします。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.203)
初めまして
現在、苺坊主の東方玄夢妖譚乱の持ち技を変更して敵の技が使えるようにしたいと思い、技アドレスをうさみみハリケーンを使ってサーチしているのですが、中々うまくいかない状況です・・・。
(名称リストのピックアップまでは文字検索を利用してできましたが、肝心のアドレスの記載場所を特定する方法が見出せない状態です)
何かサーチをする上でのコツなどがあればお伺いしたいのですが、よろしいでしょうか?
(リリースから大分経った作品関係の質問になってしまい、申しわけございません・・・)

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.204)
| 投稿日 |
: 2016/10/08(Sat) 01:25 |
| 投稿者 |
: amateur◆kR..xsXL6RU |
| ID情報 |
: bwM.PNxy5MRpLSTsAzk6// |
| 参照先 |
: |
>>202 変態紳士さん、度々パッチ更新していただいてありがとうございます。本当にお疲れ様です。
早速最新パッチを適用して試したところ、
>>200のSSG、>>145のSSG(ウディタVer2.00-2.10対応)、>>1(2個目の添付ファイル)のウディタ解析用SSG(ウディタVer2.00-2.10対応)、Javardry THE KINGのSSG(No.31のもの)、
で試しましたが、いずれもタイトル選択後、SpoilerALが落ちてしまいますね(全項目に階層項目を使ってる>>1の「ウディタ解析用SSG」の場合は、下位項目を表示させた瞬間に落ちる)。
一方、グレイメルカのSSGは正常に動作します。
結論としては、最終更新の一つ前のパッチ(10/7午後7時ごろDL)適用時と挙動は同じでした。
念のため何回かDLし直して試しましたが、同じ結果でした・・・
とりあえずご報告させていただきます。
(追記)
「SpoilerALの修正パッチ」のスレ(No.56)でdipperさんがアップされているSSGは正常動作しました。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.205)
| 投稿日 |
: 2016/10/08(Sat) 04:29 |
| 投稿者 |
: (仔猫)◆KCezBilYINU |
| ID情報 |
: SzycEX2TAWquIqbhGWdJV. |
| 参照先 |
: |
>>202
変態紳士さん更新ありがとうございます。
やはり改善はなくALが落ちる現象が直ってない状況です。
SSGの中身をいじったりとしてみたのですが…。
原因は別にありそうな気がしてきたので、もしやとVista(32bit)で試した所、全く問題なく起動、動作もOKでした。
と言うことでx86 x64あたりの互換性問題かなぁーと?
Win7(64bit)ではSSG読み込みでALが落ちる現象が続いてます(落ちるSSGの方が多いです。)
追記:
今、確認したところ4:30頃の更新で直りました。
ありがとうございます。
追記2:
trace機能の正常化を確認しました。
項目がロック中の白い枠で囲まれてます…ファンネルファイルも正常に読み込んで該当アドレスの書き換えが機能してます。
完璧動作!です。ありがたや。
思いつく使い方ですが、改造対策されてる書き換えないと駄目な必須コードとか、キャラのパラメーター上限を拡張とかで使えそうですね。条件判定は[enabled]でON/OFFが出来ますね。これはいいかも。例えば自分のターンだけ無限行動とかでも使えそう。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.206)
| 投稿日 |
: 2016/10/08(Sat) 05:14 |
| 投稿者 |
: (仔猫)◆KCezBilYINU |
| ID情報 |
: SzycEX2TAWquIqbhGWdJV. |
| 参照先 |
: |
>>203
ラヴィナスさん
苺坊主様は
体験版がなく、過去に依頼されたSSGも…無い?
さらにパッチも公開されてないと完全に目隠し状態なんですよね。うーん。
体験版でもあればアドバイスが出来るのですが…。
追記:
該当のタイトルですが南夢さんのブログでSSGが公開されてるようです。
あー。変態紳士さんの書き込みまで待てばよかった(汗

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.207)
| 投稿日 |
: 2016/10/08(Sat) 06:03 |
| 投稿者 |
: 変態紳士◆G9/eqTtPaq. |
| ID情報 |
: 1FEI0U3d1/9ixStXY/B9l1 |
| 参照先 |
: |
>>206 (仔猫)さん
SSGだけならGoogle先生に「東方玄夢妖譚乱 SSG」と尋ねると教えてくれました。
でも体験版が無いですよね。
それと皆さん修正パッチの修正?にご協力ありがとうございました。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.208)
| 投稿日 |
: 2016/10/08(Sat) 09:43 |
| 投稿者 |
: Take◆z2zOLLMPyz2 |
| ID情報 |
: oXiNCefkkllcmbGqh.XuP. |
| 参照先 |
: |
>>(仔猫)さん、amateurさん
traceの件情報有り難うございます。
copyが機能しないと言うのは以前何処かで見た気がしてたのですがtraceもでしたか。
>>変態紳士さん
仕様上機能しない事が分かり次第一度要望を出してみようと思っていたのですが既に対応済みとは仕事が早いです。
まだ動作確認などはしていませんがパッチ対応有り難うございました。
>>195 amateurさん
>「copy」項目が機能したら、現在HPを最大値まで回復とかが簡単に書けそうなのですが。
変態紳士さんが書かれているので既にご存知かと思われますがが一応書くとこれはtoggleで代用可能です。
[subject]+04を+00へ代入//:toggle,0x00,$4 [:[.0x04.]:] $$,??
自分が作ったやつでもちょくちょく利用しているのでそちらを参考にして下さい。
最近ですと<正しい性奴隷の使い方>にて少し応用してアドレスAの値をアドレスB1、B2、B3……へコピーして
必要に応じてアドレスAへコピーし直すと言うのを作ってあるので興味があれば参考にでも。(ユニットの座標)

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.209)
| 投稿日 |
: 2016/10/08(Sat) 17:41 |
| 投稿者 |
: amateur◆kR..xsXL6RU |
| ID情報 |
: v5yiRypJm1WxnpXDRGkYE. |
| 参照先 |
: |
>>207 変態紳士さん
パッチ修正ありがとうございます。
>>204で挙げたSSGは全て正常動作することを確認しました。
それと>>196のSSGも正常動作し、トレース項目がHowToSSGの記述どおりに動作することも確認できました。
ご対応お疲れ様でした。
>>208 Takeさん
情報ありがとうございます。
copy項目についてはトグルで代用できることは知っていたのですが、
$4 [:(最大HPのアドレス):] $$ と、$4 [: :] $$で括らずに済むし、
値の固定しなくても定期的に最大値に戻してくれるので便利かなと思ってたのですが、
よく考えると大して手間は変わらないし、値の固定を外せる分、トグルで代用の方がよいかもですね。一括トグルだと全キャラ一括処理できますし。
変態紳士さんがパッチで対応してくださり、copy項目も正常動作するようになりましたので、今後は好きな方が使えますね。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.210)
>>206 (仔猫)さん
確かに苺坊主さんの作品は体験版もパッチも公開してないですね・・・。
何か参考になるものがあればよかったんですが、本当に申し訳ございません(涙)

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.211)
| 投稿日 |
: 2016/10/11(Tue) 01:28 |
| 投稿者 |
: (仔猫)◆KCezBilYINU |
| ID情報 |
: SzycEX2TAWquIqbhGWdJV. |
| 参照先 |
: |
>>187
>アドレス補正属性[adjustment]の「search」の仕様について幾つか気付いたことがありますので一応書いておきます。(search以外は使ったことがないので分かりません)
というわけで、amateurさんの書き込みは本当に参考になります。
朝方から[adjustment]を勉強してました。
今までサーチタイプのSSGは作ったことがなかったので(理由はLinux環境ではALのサーチ動作が全く動かないからという単純な理由でして)Win環境なら必要な時もあるだろうと。
初歩的な所から
[adjustment]search,0x400000,????????E7030000,0x400000,0x410000,1
で、アジャストされたアドレスはこんな感じで書ける訳ですね。
[_0x400000_]
ただ、これだとアドレスネーミングは使えない。。。
------------------------------
サーチ:dir
[adjustment]search,_MName::nul+0x1000,????????E7030000,_MName::nul+0x1000,_MName::nul=>base;[:$base+0x3C:]=>pl;[:$base+$pl+0x12C:]=>rdata;$base+$rdata,1
[back]
とすると可能ですね。なるほど勉強になりました。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.212)
| 投稿日 |
: 2016/10/11(Tue) 21:26 |
| 投稿者 |
: yun◆6As0zdMqREo |
| ID情報 |
: uALBCA01GFo4uGozH7xL2/ |
| 参照先 |
: |
amateurさん
遅くなりましたが、ウディタの件、勉強になりました。
たまーに、文字化けするものがあるかと思えばそういうことでしたか。
146はそのうち差し替えておきます。
今回は少し時間がとれたので、ウディタの解析情報について少し。
数値変更に関しては各種データベースや通常変数でだいたいのことができますが、
たまにコモンイベントに関わる部分がでてきます。(悠遠物語で少しつかってます)
コモンイベントの名称に関わる部分が臨時掲示板のときのアドレスでは不十分であったことが分かったので、
その修正と補助用SSGを作ったので何かの足しにしてください。
コモンイベントの値は固定化必須っぽいですけど、なかには変更できない場合があるので変更できるものと
できないものについての違いがわかればまた報告します。
(いつになるかわかりませんが。)
ちなみにSSGの中身をいじるのは骨が折れるのでそのままにしています。
この補助SSGも6.2に対応できるのはいつになることやら…。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.213)
| 投稿日 |
: 2016/10/12(Wed) 00:43 |
| 投稿者 |
: amateur◆kR..xsXL6RU |
| ID情報 |
: LCnZteioSls6ippjJwJtC0 |
| 参照先 |
: |
>>212
yunさん、情報提供ありがとうございます。
早速添付いただいたSSGを使ってみましたが、某ゲームで座標のアドレスを書き換えてもゲーム上で反映されない理由が分かりました。
コモンイベントで「移動判定」なるものが表示されましたので、やはりコモンイベントの処理を通す必要があったようです。
他にも「マップ移動処理」というのもあり、マップIDを書換えだけでは反映されない理由も大体分かりました。
コモンイベントやコモンセルフについては、サンプルゲーム+エディターで少し覗いた程度で詳しく理解してないですが、
ウディタで残った課題はこれだと思うので(一番厄介そうですが・・・)、
私も時間あるときにもう少し詳しく勉強してみようかと思います。(と言いつつまたもやyunさん頼みになりそう・・・)
>この補助SSGも6.2に対応できるのはいつになることやら…。
既に使ったSSGを6.2用に作り直すのは骨が折れますよね・・・
>>1の解析用SSGは元々杜撰なものだったので、6.2対応とは関わりなく作り直す必要ありと思ってたから6.2用に作り直しましたが、
個別ゲームのSSGを6.2用に作り直す気力は中々湧いてこないです。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.214)
| 投稿日 |
: 2016/10/13(Thu) 02:36 |
| 投稿者 |
: 匿名 |
| ID情報 |
: 6b2UI6aUdjrQ4A.kD8xpg/ |
| 参照先 |
: |
グレイメルカではお世話になりました、探せば雑談系スレもあったのかもですが外国の方の作ったフリーゲームでAM2R(Another Metroid 2 Remake)という現在公開停止されたゲームの時間でENDING後の1枚絵変わるゲームあるんですがうさ耳かスポイルでサーチ調べるとすればどのようにするのがいいんでしょうか?セーブデーター添付すれば何かいじれたりします?

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.215)
| 投稿日 |
: 2016/10/13(Thu) 04:56 |
| 投稿者 |
: (仔猫)◆KCezBilYINU |
| ID情報 |
: SzycEX2TAWquIqbhGWdJV. |
| 参照先 |
: |
>>214
匿名さん
うーん。同じVerの物が手に入ればわかるかもですが
すでに公開停止ということなので難しいかなぁ…。
追伸:
ミラーサイトを探して見つかった
AM2R (Another Metroid 2 Remake) 1.1をダウンロードして調べてみたのですが…。
ミサイルの数値はdoubleで格納されてますね。
他のパラメーターもdouble型で格納されてる可能が高いと思います。
経過時間ですが…これはちょっと難しいかもです。。。
セーブデーターですが
同じゲーム(同じVerで互換性がある)を持っている場合においてセーブデーターは有効かもしれませんが、今回のように配布されたゲームの手に入らない状態ではお手上げです。物が手に入らない状態ではアドバイスも不可能なのですよ。

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.216)
| 投稿日 |
: 2016/10/13(Thu) 16:09 |
| 投稿者 |
: 匿名 |
| ID情報 |
: 6b2UI6aUdjrQ4A.kD8xpg/ |
| 参照先 |
: |
(仔猫)◆KCezBilYINUさんそうですか、自分の入手出来たのも公開停止前に1.1入手ですがHP、弾薬固定等は可能そうでした?
2バイト検索でやばいときに書き換えで行くのが楽ですかねアクション好きな部類ですが苦手気味なので

編集

Re: SSGを投稿したり、ゲーム解析について語るスレ (No.217)
| 投稿日 |
: 2016/10/13(Thu) 23:57 |
| 投稿者 |
: (仔猫)◆KCezBilYINU |
| ID情報 |
: SzycEX2TAWquIqbhGWdJV. |
| 参照先 |
: |
>>216
匿名さん
>HP、弾薬固定
うさみみで変更は可能です(…Double型の範囲サーチで場所を調べます)
Double型の範囲サーチですが、amateurさんの書き込み臨時板の…記事No.2が参考になると思います。
追記:
Ver1.1と言うことでVer互換がありそうなのでセーブデーターの解析…+8Ch〜+98hが経過時間かと思われます。
なんとなく暗号化されてますが暗号鍵は固定&改竄チェック(サム)は無い?ようなので…。
単純に開始早々のセーブデーターを用意して該当箇所をコピー、クリア直前の方へペーストすれば時間を巻き戻せます(セーブデーターのバックアップ等を忘れずに)
(このアイデアは別スレのTakeさんのアドバイスで思いつきました。ありがたや。)

編集