DQ6 Extended 0.9.6リリース

戦闘中にモシャスをした敵モンスターが行動しようとするとフリーズするバグを修正しました。0.9.4での修正の仕方がまずかったようです。ご指摘いただきありがとうございます。再現データをいただけたので迅速にデバッグ作業ができました。「ダウンロード」ページにうpしてあります。

(10/19追記)
0.9.4で修正した問題が0.9.5で再発していたので再修正し、0.9.6に更新しました。ご指摘ありがとうございます。戦闘中キャラクター情報の$7E204F、$7E2051の扱いが適当すぎていたので見直しました。

$7E204Fはモシャス/ドラゴラム後のキャラクターID、$7E2051はもとのキャラクターIDがセットされています(味方キャラならDQ6 ExtendedではID#$200以上)。オリジナルでは味方キャラの場合、各種ステータス(HP、攻撃力など)に戦闘中にアクセスする場合、$7E2061の下位5ビットにセットされている「何番目に仲間になったか(PC情報の配列インデックス?)」の情報を使用してアクセスしています。5bitなので最大32キャラ分ということになります。DQ6 Extendedでは、仲間モンスターの数を増やせるようにしたために(オリジナル15体→最大27体、トータル36キャラ分)、ここの情報が使用できません。そのために、オリジナルで$7E2061の下位5ビットを参照している部分を書き換えて「キャラクターIDをもとに何番目に仲間になったか」の情報を逆引きする、という処理をはさんでいます。ここで参照する必要があるのが上記$7E204F/2051の情報なわけです。0.9.4では直前で$7E2051の情報を参照していた場所でも構わず$7E204Fの情報を参照するようになっていて、0.9.5では直前で$7E204Fの情報を参照していた場所でも構わず$7E2051の情報を参照していたためにフリーズするという問題が起きていました。

今回は直前でどちらの情報を参照しているかに応じて、逆引きのもとになるキャラクターIDのアドレスを変えるようにしました。一応両方のケースで確認したので多分大丈夫だと思います。

スポンサーリンク

コメントを書く

メールアドレスが公開されることはありません。コメントは管理者の承認後表示されます。