SFC版では名ばかりの「オルテガのかぶとの補助呪文耐性」を実装します。やってみたら意外と簡単でした。方針としては、
- 耐性アイテムの残り2ビットを使い、6ビット目をラリホー・マヌーサ・ルカナン系、7ビット目をマホトーン・メダパニ系の耐性用とする。
- オルテガのかぶとの耐性値は半減(128)とする
とします。 補助呪文として2つに分けたのは、僧侶の底上げとしてマホトーン・メダパニ耐性の高い(70%カット)専用防具を追加するためです。耐性アイテムのレコードサイズ(3バイト)を拡張して個別に耐性を設定できるようにしてもそれほど手間にはならないのですが、まあこんなもんでいいでしょう。さて、まず何をするかと言うと、各補助呪文について耐性値取得SR(配列)を変更し、6ビット目を参照するSR、7ビット目を参照するSRを呼ぶようにします。(オリジナルでは何もしないSRしか参照していない)。全ての戦闘行動には属性ID(22バイト目3ビット目から5ビット)が設定されています。今回対象になる行動の属性IDはそれぞれ以下の通り。
系統 | 属性ID | 変更後のSR開始アドレス |
---|---|---|
ラリホー*1 | 10 | DBB9 |
マホトーン | 11 | EA14 |
マヌーサ | 12 | DBB9 |
ルカナン | 13 | DBB9 |
メダパニ | 14 | EA14 |
したがって、順番が前後しますが、耐性設定値取得SRの配列($02BCB7-)の20バイト目から28バイト目までのSR開始アドレスを変えてやればいいことになります。
- SR: $2DBB9 耐性設定値取得SR_SR_000A(新SR)
02DBB9 | JSL $C90566 | SR: $090566 引数:1#$00 引数:2#$0003 引数:3#$C2D160 引数:4#$0002 引数:5#$000040 | |
---|---|---|---|
02DBC8 | RTS | return |
- SR: $2EA14 耐性設定値取得SR_SR_000B(新SR)
02EA14 | JSL $C90566 | SR: $090566 引数:1#$00 引数:2#$0003 引数:3#$C2D160 引数:4#$0002 引数:5#$000080 | |
---|---|---|---|
02EA23 | RTS | return |
これで各種補助呪文の閾値を作成する際に耐性アイテム($2D160-)*2の2バイト目6ビット目、7ビット目をそれぞれ参照するようになるので、耐性アイテムにオルテガのかぶとを追加し、耐性種類(2バイト目5ビット目)、ラリホー・マヌーサ・ルカナン系(2バイト目6ビット目)、マホトーン・メダパニ系(2バイト目7ビット目)をONにし、耐性値に128を入れればOK、ということになります。
コメント