例によって「ダウンロード」ページにうpしてあります。今回はデータの設定ミス、あまり重篤ではないバグの修正のみです。変更量も少ないのでrc化はしません。
修正点の1つである「格闘場の予想屋(予想屋ではなく掛札を買う場合でも同じ問題が起きていました)で同じモンスターがエントリーする場合の「モンスター名 + A,B,C,D」の「A,B,C,D」が表示されない問題」は、格闘場マッチメイク用のデータを移動した際に1レコードのサイズと同じバイト数だった「格闘場モンスターが同じ種類だった場合のA,B,C,D用の固定文字列ID(2Byte*4)」も一緒に移動してしまった、というのが原因でした。たまたまこのIDの配列が
14 | 03 | 15 | 03 | 16 | 03 | 17 | 03 |
となっており、これを格闘場のマッチメイクに直すと
おばけキノコ | 3 | どくイモムシ | 3 | デスフラッター | 3 | バリイドドッグ | 3 |
となり(3は倍率)、なんかそれなりに意味が通ってしまいます。正直なんでこんな微妙な取り合わせが一番最後のレコードに入ってるんだろうと思っていたのですが、単なる解釈ミスだったということです。#$03ED78-にパーティの先頭キャラクターのレベルに応じたマッチメイクのIDの最大値が定義されているのですが、レベル30以上の最大値(#$03ED80-81)は38なので、0から38までのランダムでマッチメイクを決定するのだろうと勝手に思い込んでいたのですが、実際は0からこの値-1したものの間でマッチメイクを決定していました。
- SR: $03EC84 格闘場マッチメイク
略 | |||
---|---|---|---|
03ECB5 | LDA $C3ED78,X | A=$03ED78+X | |
03ECB9 | DEC | A– | |
03ECBA | JSL $C0133E | SR: $00133E | 乱数発生 00-A A(1B) |
略 |
というわけで、格闘場マッチメイク(#$30DC5-)の固定長データのレコード数は39ではなく、正しくは38です。これについては次回のSFCGENEditorのリリース時にRommapを修正しておくつもりです。
そもそもこの問題を発見したのは予想屋の存在意義がまるでないので予想屋が押すモンスターはHP100%で出場するようにしようかと考えて実装を見ていたからなのですが(通常戦闘は80%~100%のHPでランダム。イベント戦闘は必ず100%になる。格闘場の場合は不明)、気が向いたらそのうちやるかもしれません。
コメント