DQ3 ストーリー変更(アリアハン2)

今回から実装を行います。

事前準備として、職業データ($120D0B)*1の#$09に追加職業「オルテガのこども」を設定しておきます。設定のポイントとしては以下の通りです。

  • 略称は「オ」
  • グラフィックは勇者と同じ
  • 習得呪文数は4にして、習得できる呪文を「おもいだす」「もっとおもいだす」「ふかくおもいだす」「わすれる」のみにする。(これらの呪文も省くとMPが上がらなくなるため)
  • レベルアップの速度は勇者と同じ
  • 各ステータス値の2段階目以降のステータス成長度を低くする

準備が整った所でまずは主人公の初期職業を変更します。

  • SR: $0464EA 冒険の書初期化+主人公仮ステータス設定
04650D LDA #$0009 A=#$0009
  • SR: $04425D 性格を加味して職業・男女別の初期ステータス値決定?
04432C CPY #$0009 Y==#$0009?

SR: $0464EAでは主人公のステータスの設定を行っています。この中で職業を勇者(#$08)にセットしている部分を#$09に変更します。この時点では、オープニングの性格診断を経ていないので、ステータス値は仮のものがセットされているだけです。性格診断の後、決定した性格に応じてステータス値をSR: $04425Dで調整しているようです。その中で勇者だけ特別処理を行っているようなのでそこも新職業ID(#$09)に変更します。続けて、オルテガのこどもの呪文画面が勇者と同じになるようにします。

  • SR: $035366 戦闘呪文情報取得
035374 JSR $FF00 SR: $03FF00
  • SR: $045621 移動呪文情報取得?
045626 JSR $FE9C SR: $04FE9C
  • SR: $04570B 戦闘呪文情報取得
045710 JSR $FE9C SR: $04FE9C
  • SR: $03B598 強さ画面上の呪文情報表示?
03B5ED JSR $FF00 SR: $03FF00
  • SR: $03FF00 Aが勇者かオルテガの子供か?(該当z=on)(新SR)
03FF00 CMP #$0008 A==#$0008?
03FF03 BEQ #$03 if(z==on) goto $03FF08
03FF05 CMP #$0009 A==or>=#$0009?
03FF08 RTS return
  • SR: $04FE9C Aが勇者かオルテガの子供か?(該当z=on)(新SR)

内容は$03FF00と同じなので省略。

基本は”A==#$0008″で職業IDを勇者かどうかを調べている部分を変えて”A==#$0008″ or “A==#$0009″にしているだけです。場所の特定の方が手間がかかりました。SR: $03FF00、SR: $04FE9Cという実装の同じSRを2箇所に書くのはあまりよくないのですが、とりあえずこのままにしておきます。

20090603213700.jpg

*1:拡張パッチでアドレスが移動しています。これは移動後のアドレスです

コメント

  1. MT より:

    質問なのですが

    拡張パッチ(DQ3 Extended ver1.444)のみ適用済みのROMで
    追加した職業の呪文を勇者の呪文画面にするには
    アドレスが違えど同じ処理を施せば可能でしょうか?

    管理者より返信:

    多分そうだと思います。やってみてください。

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