th123_ai(仮)の進捗報告

本当に必要最低限だけですが動くようになりました。
キー入力も出来るようになったので、複雑な事をしていないAIならば動くと思います。

やった事は単純にアドレスサーチを進めつつ、その途中で見つけたバグ修正だけ。
といいつつ、テスト用に使っていた某衣玖さんのAIにもう負けるようになりました、AI強すぎありえん。
アドレスサーチはまだ1/5程度で本当はここまで動くはずないんですが、どうやら全部が全部アドレスずれているわけでは無いようです。
絶対値で指定しているところは全滅していますが、相対指定が圧倒的多数なのでアドレスサーチは以外と早く終わりそう、かも?

今回の更新で正式対応された部分
・my_xspeed
・my_yspeed
・enemy_xspeed
・enemy_yspeed
・my_act
・enemy_act
・my_frame
・enemy_frame
・weather
・weather2
・weather_time
・1Pキーコンフィグ取得
・2Pキーコンフィグ取得
・PAD使用時の自動1P2P識別

上記以外の機能も一部動きますが、きちんと検証したわけでは無いので現在は未実装扱い。
(もちろん緋や非と関係がない機能はそのまま動いていますが)

2009/09/16 3:00追記:
アドレス張り忘れた。
th123_ai.zip
以前と同じだからいいとは思うけど念のためね。

理想はroaddr.dll

たぶん同世代の解析よりなツール作者は皆多かれ少なかれ影響を受けているだろう伝説のアレ。
自分はiniの解析に何度か参加しただけで使ったこともコード読んだ事もないわけですが。

で、何の話かというとth123_aiの話。
なんだかんだ言って解析が面倒なのと、更新あるたびに解析必要部分を洗うのが面倒なので、roaddr.dllに倣って可能な限りiniに出してしまおうという話。

tskの作者さんも確か最初はそういうのを目指してiniを作ったという話なので自分も似たような書き方をしてみる事に。
といってもあの膨大な量をコードも見せずに更新丸投げしても誰もやってくれるわけがないので、あくまで自分のためなんですがね。
もちろん、roaddr.dllみたいな汎用ツール作成支援dllなんて作る気も技術もないしね。

それに伴って問題発生。
iniからの読み出しは汎用性を重視して文字列指定で読んでいる訳ですが
メモリー読み込み全てをiniから読み込むようにした場合、読み込みにかかるコストがとんでもない事になるだろうって話。
適当に構造体用意するなりして、アドレス周りだけでも直に読むようにしないとなー、めんどす。

th123_ai(仮)の作成開始

まだ手をつけてなかったんかいと言われそうですが、手をつけてませんでした。
いや、framedisplayswrのような物を作っていたんですが、どうにも納得いくGUIが作れず行き詰り、ようやくこちら手を付ける気になっただけですが。

土曜開始で現在ようやくスクリプトが走る段階までいけたところ。
といっても、本当に走るだけでHPとXY座標とbattle_timeしか取れないので何も出来ないわけですが……
中間報告を兼ねてexeだけ上げておきます。
th123_ai.zip
基本的にth105_aiと同じなのでテキストの類なしでもなんとかなるはず。

ちなみに、具体的な作業内容をあげると
・開発環境を変えた
・開発環境変更に伴うコードの変更
・使用しているライブラリも変えた
・ライブラリ変更に伴うコードの変更
・緋と非を両立させられるよう内部構造を変えた
・一部手を抜きすぎた部分の改修
という感じで、まだ非のアドレスサーチはほとんどやってません。
つまりここからが本番、がんばれ俺。

上記の通り、かなり大幅な変更が加わっているため今まで動いていた環境で動かなくなるなどあるかもしれません。
一応緋で使う分にはth105_aiと完全に同じ動作をする”はず”なので、動作確認に緋で使ってみるのもいいかも。