1.10世紀末化について

前回はファイル名文字列リテラルからすんなりと見つかったLoadPackagedFile(仮)関数ですが、全然見つかりません。無駄に時間を使った挙句、バージョンアップ対応したSWRSToysのBGMChangerからアドレスをぱくってそこへの参照サーチで終了。その他、1P/2PキャラIDやステージIDなども。
で、強制終了はなくなったものの、星取りがおかしくなりました。無駄に時間のかかる調査の結果、戦闘データ構造体のレイアウトが変わってやがる。→新バージョンに対応したth123_aiのiniからアドレスを(ry
まあ自信なくしますね。いらないんだけど。
一撃必殺奥義の実装に使っているスペカ使用中フラグ(研究の結果、ゲージが増加しない時間のようだ)ですが、ここだけはうさみみハリケーンの絞り込みで自力で見つけました。調べたときは候補として2バイトが2つ見つかったのですが、実際にやってみると動作が怪しく、下位1バイト(アドレスが奇数)でやると片方は少々短すぎる感じで、もう1つは元のっぽい感じでした。結構怪しいですが知りません。


次に、置換データの再構築です。正直そのままでもいい気もしますが(早苗さんの絵とか画像データはスルーしてるし)、.csvとか結構変わってるのも多いので一応やります。
まずBrightmoonを使ってth105a.dat→th105c.dat→th123a.dat→th123c.datの順番で中身を同じ場所に展開します。bはoggとsflしか入ってないので無視で。aよりcが優先されるようなのでaのあとcで上書きするようにします。ファイル展開については今はレガシーツールとなったhmakeにもついているものの、まあBrightmoonで。で、それを適当にth123a.datあたりのデータのようなディレクトリ配置にし、hmakeで元データ(.txt .csv .wav)に変換します。hmakeは展開・元データへ逆変換・データファイルへ変換・dat生成、の一連の流れを効率的に行えるように無駄に最適化されているので(最終目的は改変datの生成)現在流用状態となっております。元データのdataディレクトリを作れば、世紀末DLLがdatからのロードを実ファイルを変換しながらリダイレクトしてくれるので終了です。1.03用のdataと比較しながらのマージ作業が必要でしょうね。


1.03用は開発終了ということでその最終状態のソースを公開しました(してないけど)。