DQ3 ふくろのアイテム数を特定のアイテムを除き9個に制限する

地味にDQ3の難度を下げているという批判の多いふくろ中のアイテム数の最大値を特定のアイテム(すごろく券、メダル、各種種)以外を9個に制限します。ほとんど同じ修正が改造人間氏のバージョンで実現されてますが、今回は作者が種廚なので種も例外にします。

  • SR: $0453BA アイテムを袋に入れる
0453D0JSR $FEA5SR: $04FEA5
0453D3-D9NOP

  • SR: $04FEA5 袋に入れるアイテム数のクリップ処理(新SR)
04FEA5CMP #$B2A==#$B2?ちからの種
04FEA7BEQ #$22if(z==on) goto $04FECB
04FEA9CMP #$B3A==#$B3?すばやさの種
04FEABBEQ #$1Eif(z==on) goto $04FECB
04FEADCMP #$B4A==#$B4?スタミナの種
04FEAFBEQ #$1Aif(z==on) goto $04FECB
04FEB1CMP #$B5A==#$B5?ラックの種
04FEB3BEQ #$16if(z==on) goto $04FECB
04FEB5CMP #$B6A==#$B6?かしこさの種
04FEB7BEQ #$12if(z==on) goto $04FECB
04FEB9CMP #$B7A==#$B7?命の木の実
04FEBBBEQ #$0Eif(z==on) goto $04FECB
04FEBDCMP #$D0A==#$D0?小さなメダル
04FEBFBEQ #$0Aif(z==on) goto $04FECB
04FEC1CMP #$D5A==#$D5?不思議な木の実
04FEC3BEQ #$06if(z==on) goto $04FECB
04FEC5CMP #$E4A==#$E4?すごろく券
04FEC7BEQ #$02if(z==on) goto $04FECB
04FEC9BRA #$0Bgoto $04FED6
04FECBLDA $3825,XA=$3825+X
04FECEINCA++
04FECFCMP #$63A>=#$63?
04FED1BCC #$02if(c==off) goto $04FED5
04FED3LDA #$63A=#$63
04FED5RTSreturn
04FED6LDA $3825,XA=$3825+X
04FED9INCA++
04FEDACMP #$09A>=#$09?
04FEDCBCC #$02if(c==off) goto $04FEE0
04FEDELDA #$09A=#$09
04FEE0RTSreturn

実装はかなり簡単です。$7E3725+Xに袋中のアイテムの種別、$7E3825+Xに対応するアイテムの個数が入っている、ということがわかっていればあとはただの作業です。SR: $04FEA5に入った時点でAレジスタにはアイテムID、Xにはそのアイテムの袋中のインデックスがセットされている状態です。ちなみに、「袋中のアイテム数を例外なく9個を最大にする」場合は単に$0453D5を#$63から#$09に変えるだけでOKです。なお、この実装をしてもすでにセーブデータの中で規定個数をオーバーしている場合にはそのアイテムを新たに袋に入れるまではアイテム数はクリップされません。

コメント

  1. ガイル より:

    「ふくろのアイテム数を特定のアイテムを除き9個に制限する処理」は
    別アドレスに移動したのでしょうか?

    管理者より返信:

    ちょっと覚えていません。袋にアイテムを入れる処理から追っていってください。

タイトルとURLをコピーしました