DQ3 すごろくシステム変更4

重要な点を抜かしていたのに気がつきました。すごろく中は「ゴールド」ではなく「コイン」になるため、メッセージ中の文字列以外にも、「G」を「C」に変更する必要があります。対象はすごろく中のステータス画面、よろず屋での買い物中の画面(所持金表示、アイテム売却時)です。それぞれどこで決定しているかはウィンドウ描画SR群($03609C-)を片っ端から探して怪しい部分を変えてみて期待通りになるかどうかを試してみるしかありません。要は試行錯誤あるのみです。

  • SR: $036B6A ウィンドウ描画SR_008(すごろく中のステータス画面描画)
036BE9 JSR $F76B SR: $03F76B 金額単位文字列決定
  • SR: $03634B ウィンドウ描画SR_008(所持金画面描画)
036356 JSR $F76B SR: $03F76B 金額単位文字列決定
  • SR: $03586B アイテム売却値段描画
035890 JSR $F76B SR: $03F76B 金額単位文字列決定
  • SR: $03F76B 金額単位文字列決定(新SR)
03F76B JSL $C3FF09 SR: $03FF09 すごろく中かどうか(該当c=on)
03F76F BCC #$04 if(c==off) goto $03F775
03F771 LDA #$0093 A=#$0093 “C”を設定
03F774 RTS return
03F775 LDA #$0097 A=#$0097 “G”を設定
03F778 RTS return

ウィンドウ描画なんてノータッチの部分だったのですが、手をつけざるを得ない羽目に。いうほど大変でなかったのでよかったです。もう1点、これも実装してすっかり忘れていたのですが、すごろく中のアイテム売却値段を通常の1/50とします。

(6/24修正)
アイテムの買値が3バイトだったのを忘れていたため修正

  • SR: $044ECE アイテム売値取得
044EE0 JSL $C44E90 SR: $044E90 アイテムの買値取得(下位2B:Aにセット、上位1B:Yにセット)
044EE4 STY $4C DP($4C)=Y
044EE6 STA $4A DP($4A)=A
044EE8 JSL $C3FF09 SR: $03FF09 すごろく中かどうか(該当c=on)
044EEC BCC #$05 if(c==off) goto $044EF3
044EEE LDA #$0064 A=#$0064
044EF1 BRA #$03 goto $044EF6
044EF3 LDA #$0002 A=#$0002
044EF6 JSR $FDE6 SR: $04FDE6 アイテム売値1/A化
044EF9 LDY $4C Y=DP($4C)
044EFB LDA $4A A=DP($4A)
  • SR: $04FDE6 アイテム売値1/A化(新SR)
04FDE6 LDX #$004A X=#$004A 1/50にする
04FDE9 JSL $C01243 SR: $001243 DP($00,X)(3B)=DP($00,X)(3B)/A(1B) 剰余=A
04FDED RTS return