ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

Final Fantasy6改造コミュの会議室

  • mixiチェック
  • このエントリーをはてなブックマークに追加
雑談、改造にあたっての相談部屋です。

ツールの使い方や基本的な質問などは質問コーナーでお願いします。
『質問コーナー』→http://mixi.jp/view_bbs.pl?id=24623251&comm_id=2761088

コメント(142)

連続攻撃バグの修正パッチ製作しました。

ttp://www9.uploader.jp/dl/gameandwatch1150583460/_uljp00007.rar.html

これで様子を見てください。
FF6-G ver1.03bの方にipsをパッチして使ってください。

連続攻撃の際に行動内容を格納する処理部分を発見したので、そこんとこを変更してみました。
>>与作さん
遅くまでお疲れ様です。

FFbin@wikiのモンスター行動について以下のような注意書きがありました。
・行動命令は32KB以内で設定をしないと32KBを超えたモンスターはカウンターを発動しない

これについて確認をしていないので検証してみます。
もしかしたら行動は32000byteまでしか使用できない可能性があります。
デバッグ報告
・モンスター追加魔法(連続、単体)のあとに味方みだれうち(源氏の篭手装備)は問題ありませんでした。
・[104]コメを確認したところやはりカウンターが発動しないようです。
このままでは各行動バンクは0x7CFF(位?)までしか使用出来ないのでどうにかしたいです。
カウンター処理に関するプログラムはこちらでもよくわかっていません。
SNESデバッガで該当処理をずっとさかのぼっていけば、いつかは問題箇所に多分たどりつくかとは思いますが・・・。

魔法2バイト化プログラムの内訳を作成したのでアップします。

ttp://www9.uploader.jp/dl/gameandwatch1150583460/_uljp00008.rar.html
>>与作さん
お疲れ様です。

バグ報告
・モンスターが追加魔法連続行動中(単行動ではない)にモンスターの行動が全て終わる前に味方キャラクター全員が魔法、召喚(アイテムは確認してません)のコマンドを入力し終わってしまうとキャラクターの魔法の効果、エフェクト(名前はそのまま)が追加魔法になってしまいます。

おそらく原因はモンスター連続行動中に味方キャラクターがコマンドを入力すると全体で連続行動扱いを受けてしまい処理を行う際にメモリーの内容がそのままなので読み取ってしまうものだと思われます。

こちらで修正するプログラムを作成しましたがまだうまくいかないです。

[107]コメのプログラムです。

アドレス0x0217BD(与作さん作成プログラム)

B9 10 ED
8D 2C 3A
AD 10 EE 追加
99 10 ED 追加
8E 43 62 追加(魔法エフェクト追加プログラムで使用、特にここでは関係なし)
B9 20 34
60

>>[107]コメントバグ

なかなか厄介ですね・・・。

こっちでも確認・修正プログラムを考えていこうと思います。
上の仮修正プログラムですが、メモリー0xED10yからのメモリーを0xEE10のメモリーでクリアするようにしたのですが、敵行動中に味方全員魔法及び召喚をすると0xED10yのメモリーが一つだけクリアされないようです。

また「れんぞくま」「クイック使用時」や「スロット」「スケッチ」などのコマンドについては未検証です。
[107]コメのバグの多分原因がわかりました。

原因は与作さんの作成したプログラムの
0217B3 ;024EE2からのJSR
LDA $3A2C
STA $ED10,y
LDA $3A7A
RTS

0217BD ;02027EからのJSR
LDA $ED10,y
STA $3A2C
LDA $3420,y
RTS

で、$3A2Cに魔法IDが書き込まれた瞬間に味方が魔法コマンド入力を終了すると$3A2Cに魔法IDが書き込まれた時の行動をするみたいです。

敵行動か味方行動か判定して分岐などのプログラムも試しましたがやはり書き込まれた瞬間のメモリを読み込んでいるのでダメでした。

FF5の魔法画像をFF6に移植するときFF5の画像チップロードポインタの値を
逆に書き込むだけでFF6に簡単に移植出来るようにするのに成功しました。

これで時間かけずにFF5の魔法エフェクトを移植できます。
与作さんが魔法を追加出来るようにしてくれたのでFF5の魔法エフェクトをすべて表示出来るようにしました。

これから、エフェクトタイルの構成、アニメーションの解析・設定、効果音の解析・設定を行います。

また魔法追加プログラムのバグ(現在致命的なのは魔法名が表示されないと追加魔法の連続行動中のバグ)についても解析していきます。
余談ですが、同じパーティー内で違うバンクからの行動を同時に読み込めない仕様については直さなくても大丈夫です。
どの道既存番号モンスターと追加番号モンスターは一緒に表示出来ないので、それで使い分けようかと思います。
バグ報告
魔法特殊効果のメッセージ(かいおんぱ、レベル5デスなど)が上位IDを読み込んでいなく違うメッセージがでます。

追加魔法ID 0x196 
特殊効果  レベル半減
メッセージ 「レベル2の倍数のキャラにコンフュ」

おそらく魔法ID 0x196のメッセージが出る予定が上位バイトを読み込んでいないので0x096のレベル2コンフュのメッセージが出たんだと思います。

メッセージ使用フラグのたった魔法にメッセージを表示させる為のストア箇所がわかったのでこれから修正してみます。


追加魔法連続行動中の味方コマンド入力時のバグについてですが
行動IDが保存されるメモリ$3A2Cが一回目の行動しか読まずその後0xFFでクリアされていて、ここをちゃんと連続行動が終了するまで設定した行動をクリアさせなくすれば解決できる様な気がします。
ただ、どこで行動をクリアしているのか不明なのでまだ手を出していません。

魔法名についてはまだ未解析です。
追加魔法名が表示されないバグを修正しました。
原因はやはり私の元に戻す作業のミスでした。
申し訳ありません。

修正箇所
0x1974F
0F→82
これで名前の問題がやっと終りました。
次は行動読み込みを修正します。
>>行動IDが保存されるメモリ$3A2Cが一回目の行動しか読まずその後0xFFでクリアされていて

021B60以降の処理
PHA
LDA #$00FF
STA $3A2C ;@追加 行動を終了すると$3A2C-$3A2Dは#$00FF(使用不可の魔法ID)が格納されるように設定。

魔法エフェクトの処理の部分で最後にクリアするように設定していました。

この設定を外す場合、行動内容が次のキャラの行動処理に持ち越されてしまい、kこれがプレイヤー側キャラの場合だと行動処理の際にバグが発生します。

こちらでもバグ修正法を考えていますが、成功していません。
>>与作さん
同じく
PHA
LDA #$00FF
STA $3A2C
ここが原因だと気づき、そして同じく味方の行動バグで悩んでいます。
というか(以下与作さん作成解説から抜粋)
モンスターの行動処理でない場合は魔法IDの上位桁は#$00になるよう設定
021A57 ;Mem8 A下位桁は魔法ID下位桁
XBA ;@追加命令
LDA #$00 ;@追加命令
XBA ;@追加命令
(ここまで)
この処理つぶしてもブラックアウトや致命的なバグが起こらずこの処理が読まれていないことに気づきました。
こちらの解釈ですが、
味方行動の場合は
021A57 ;Mem8 A下位桁は魔法ID下位桁
XBA ;@追加命令
LDA #$00 ;@追加命令
XBA ;@追加命令
の処理へ飛んで上位IDを0にし、モンスター行動の場合はこの処理を踏まないで次の
021A5B ;旧021DBA Mem8,Ind8
STA $3A2C ;@追加命令
XBA ;@追加命令
STA $3A2D ;@追加命令
XBA ;@追加命令
REP #$20 ;@(Mem16)追加命令
PHX ;Aに魔法ID上位桁&下位桁が入っているようにする,Aを16bitに
LDX #$18 ;@PHA,XBA,PLA撤去 データ変更(2バイト)*(Dデータ)=18
に飛んでいる処理だと思うのですが。
どうやら021A57へのジャンプ命令(サブルーチン呼び出し)を
つぶしても(20 57 1A→00 00 00 )反応しませんでした。
この021A57をちゃんと処理すれば大丈夫なような気がしすのは私の解釈の違いでしょうか…
FF6-G ver1.04をうpしました。
・チョコボ、キャラパレットバグなど修正
・FF5魔法エフェクトの編集(途中)
・追加魔法の表示されないバグ修正

ttp://www9.uploader.jp/dl/gameandwatch1150583460/_uljp00009.zip.html
追加魔法行動処理の修正が多分出来ました。
以下【】内が変更内容
024EE2
JSR 0217B3 ;@命令差し替え
【LDA $3A7A ;@命令差し替え】

02027E
JSR 0217BD ;@命令差し替え
【JSR 02FB20 ;@命令差し替え】

【0x20381】(修正プログラムへジャンプ)
【JSR 02FB30 ;@命令差し替え】

【0x2FB20】(魔法エフェクト1をクリアする処理※関係ないですが一応)
【B9 20 34 DA C2 10 A2 00 00 8E 43 62 E2 10 FA 60】

【0x2FB30】(修正箇所)
【8D 7C 3A 48 E2 20 AD 7C 3A C9 08 B0 0A C2 20 A9 FF 00 8D 2C 3A 68 60 C2 20 68 60】

です。
ちょっと見にくくてすみません。
説明しますと、【0x20381】で行動番号が書き込まれるのでこのタイミングでなら正しい処理を踏めると読んでジャンプさせました。
【0x2FB30】のプログラム説明
8D 7C 3A 行動番号読み込み
48    Aをプッシュ
E2 20   8bit
AD 7C 3A 行動IDを取得
C9 08   モンスター行動番号?と比較
B0 0A   モンスター行動番号の場合※へジャンプ

【以下キャラの場合の処理】
C2 20   16bit
A9 FF 00 A=00FF
8D 2C 3A Aを$3A2Cに代入
68    Aをプル
60    戻る

C2 20   16bit
68 Aをプル
60 戻る

という処理です。
今のところ魔法しか検証していません。スロット、スケッチなどは不明です。

やっと直せた感でいっぱいですorz
追加修正報告
上記の修正ではスケッチなどがおかしくなってしまうので以下のところを修正しました。

C9 08   モンスター行動番号?と比較
B0 0A   モンスター行動番号の以上場合※へジャンプ

C9 0C   モンスター行動番号?と比較
F0 0A   モンスター行動番号のと同じ場合※へジャンプ

多分これで大丈夫かと思いますが他の可能性を検証してみます。
どうやら連続行動中は魔法IDの上位番号は同じでなければならないようです。
おぼえたわざが行動番号0Cだった為おかしくなったので以下のように修正しました。

C2 20   16bit
68 Aをプル
60 戻る


AD EE 00 行動者ID取得
E0 08  
90 EF  味方行動の場合修正処理へジャンプ
C2 20   16bit
68    Aをプル
60    戻る

行動が味方(ストラゴス)の場合は修正プログラムへジャンプするように処理しました。
多分これでほとんどのケースが大丈夫かと思います。

あとの問題は
・追加魔法で特殊効果(かいおんぱ、レベル5デスなど)を使用した場合魔法ID上位バイト読まない
・行動内容の制限がある
です。
以下部分処理についての解説です。

021A57 ;Mem8 A下位桁は魔法ID下位桁
XBA ;@追加命令
LDA #$00 ;@追加命令
XBA ;@追加命令

この部分がなぜあるのかというと、ここ021A57部分へジャンプする(改造前はアドレス違い)処理が複数あり、そこのところの解析が全く手つかずの状態だったため、プレイヤー側の行動処理からジャンプする可能性も考え設置したプログラムでした。
解析不十分のために念のため作成した部分になっています。
この部分のプログラムはモンスター行動制御データの読み込み部分で使われる以外にどこで使われているのかこちらでははっきり理解していません。
もしなくても問題ないのであれば必要ないと思います。
>>[119]コメント

修正おつかれさまです。

こっちでもどの処理のタイミングで修正プログラムを入れればいいのかわからず苦心していました。
修正するプログラム部分を入れるところさえ正しければ大丈夫かと思います。
>>与作さん
味方については完全に修正できましたが、毒、スリップ、リジェネの状態(誰かが)のとき正しく処理されませんでした。
(連続行動中に毒などのダメージが入ると魔法上位IDがリセットされてしまいました)

でも、毒、スリップなどの状態時のダメージ表示処理の前に行動をストアし、ダメージ表示処理の終了(毒などの処理終了)時にストアした行動をロードすればいいような気がするのですが…そう甘くないですよね…
>>125の件修正できました。
以下行動を検証したもので正常に作動したもの(追加魔法連続行動の次の行動で検証)
・たたかう
・まほう
・れんぞくま
・アイテム
・スロット
・おぼえたわざ
・スケッチ
・トランス
・きかい
・ひっさつわざ
・ひっさつけん
・ショック
・いのる
・まふうけん
・なげる
・ジャンプ
・あばれる
・ぬすむ(なぜかこちらが盗んでいるのにお金を盗まれるが挙動は正常)
・ぶんどる(なぜかこちらが盗んでいるのにお金を盗まれる挙動は正常)
・ひりゅのつの装備でジャンプ
・げんじのこて装備でたたかう
・かいでんのあかし装備でたたかう
・モンスター沈黙状態
・モンスター混乱状態
・モンスターカッパ状態
・誰かがリ毒、リジェネ、スリップ状態

以下バグったもの
・あやつる(ブラックアウト)
・ぬすむ(原因は不明現象は上記の通り)
・ぶんどる(同上)
・追加魔法をリフレクで跳ね返した(その後の行動が全て魔法ID上位がクリア、リフレク反射エフェクトもなし)
・しょかんまほう(名前、エフェクトは正常だが効果がない)
・連続行動内容に違った魔法ID上位の行動をすると正しく動作しない
・特殊効果の魔法ID上位を読み込まない
・追加魔法行動の上位IDのまま獣が原でガウが仲間になる時
・とびこむ(飛び込みはするのだが飛び込みエフェクトが正常ではない)

こんなところだと思います。
まだ他にもあるかも知れません。

追加確認
以下バグったもの
・瀕死プロテス、シェル(上位番号リセット)
・連続行動中にリレイズ作動(同上)

上位番号のリセットの原因は行動IDが0x0Cなのに途中で他の行動者IDが入り0Cでありながらモンスター行動ではないとみなされているようです(ストラゴスのおぼえたわざの処理が原因)
上記検証でモンスターの追加魔法行動後の使用に関係なくおかしいもの
【原因不明】
・ぬすむ
・ぶんどる
・とびこむ

【原因がわかったのも】
・追加魔法行動の上位IDのまま獣が原でガウが仲間になる時
これはただ単に追加モンスター達が使用するセリフにガウのセリフがなかったためでした。


また、モンスター追加魔法連続行動中に毒などで戦闘不能になるときも上位魔法IDを読み込みませんでした。
この上位魔法IDを読み込まないものは現在プログラム作成中です。
以下のバグについて修正しました。
原因は特殊効果を追加する際にジャンプ先を間違えた為でした。
ということで以下のものは正しく処理されました。
・あやつる
・ぬすむ
・ぶんどる
・とびこむ
検証報告更新

【追加魔法連続行動中に魔法上位IDを読み込まなくなる味方の自動行動】
・追加魔法をリフレクで跳ね返した(リフレク反射エフェクトもなし、番号読み込みも一回目のみ)
・しょうかんまほう(名前、エフェクトは正常だが効果がない)
・瀕死プロテス、シェル発動(上位番号リセット)
・連続行動中にリレイズ発動(同上)
・連続行動中に戦闘不能
・連続行動中にトランスのもどる発動(時間切れで自動で戻る場合)
・連続行動中にしのせんこく発動
・ブラックベルト装備時のカウンター発動(追加魔法が物理攻撃扱いの場合)
・ひっさつけんのカウンター発動(追加魔法が物理攻撃扱いの場合)

※因みに味方睡眠中の自動回復は行動終了後に発動するので大丈夫でした。

【その他追加魔法に関するバグ】
・連続行動内容に違った魔法ID上位の行動をすると正しく動作しない
・特殊効果の魔法ID上位を読み込まない
・追加魔法使用直後に戦闘終了する(毒などで)とフィールドでの魔法がおかしくなる

【未検証】
・とりつく  
・ものまね
・おどる(削除した為検証不可)

FF6-G ver1.05最新版です。
こちらで上記動作を確認できます。
ttp://www9.uploader.jp/dl/gameandwatch1150583460/_uljp00010.zip.html
今後の個人的な計画です。

1・連続行動に関わるプログラムの解析

不明な部分が多いのでそこらへんの戦闘プログラムを解析してみようかと考えています。

2・改造の仕方指南書の製作

初めて改造に関わる人にはちょっと敷居が高いと思うので、改造できるようにツールの使い方、改造の仕方を説明するものを作ろうと考えています。



>>与作さん
お疲れ様です。
1は大変助かります(現在効果音の追加作業に追われてしまって)
1に関してですが一番の問題はやはり自動行動による割り込みなどです。
こちらでも少しずつ解析しています。

2は私もちょくちょく書いてはいるのですが説明(文章が下手くそなので)するとうまく伝わらない箇所が多々ありますので大変助かります。
何か資料、または解析結果など必要なものがあったらいってください。
ほんとは管理人の私がやるべきなのですが…


以下こちらで変更したバグ修正の内約です。
0x42C000〜
【最初(どのコマンドタイプなのか判断)】
8D 7C 3A :実行行動ID代入
48 :A退避
E2 20 :A8ビット
AD 7C 3A :実行行動ID取得
C9 0C :敵行動かどうか比較
F0 1B :敵行動の場合は※1にジャンプ

【敵行動ではない場合】
AD 7C 3A :実行行動ID取得
C9 1E :実行行動IDが非コマンドIDかどうか比較
90 07 :味方コマンドの場合※3へジャンプ

【味方がおぼえたわざを使用していた場合】※2
AD 7A 3A :予約行動ID取得
C9 1E :予約行動IDが非コマンドIDかどうか比較
B0 1B :非コマンドIDの場合※4へジャンプ

【味方行動の場合】※3
C2 20 :A16ビット
A9 FF 00 :行動IDリセット値取得
8D 2C 3A :取得したIDを追加魔法行動IDへ代入し行動上位IDを  クリア
68 :A復帰
5C 34 FB C2 :プログラムへ復帰

【敵行動の場合(判断したコマンドタイプがおぼえたわざの場合、味方行動なのかモンスターなのか判断)】※1
AD EE 00 :実行行動者ID取得
E0 08 :行動者が味方かどうか比較
90 E5 :味方の場合※2へジャンプ
C2 20 :A16ビット
68 :A復帰
5C 34 FB C2 :プログラムへ復帰
注)ここが原因で連続行動中は実行行動IDが変化せずにアクティブキャラの行動者IDのみ変更され、上位IDがリセットされてしまう。
解)おぼえたわざの魔法使用者が敵なのか味方なのか別箇所で判断させたいところですけど…

【非コマンドIDの場合】※4
C2 20 :A16ビット
AD 2C 3A :追加魔法行動ID取得
8D 00 ED :追加魔法行動IDを別に退避
A9 FF 00 :追加魔法行動IDクリア値代入
8D 2C 3A :取得したIDを追加魔法行動IDへ代入し行動上位IDを  クリア
4C 31 C0 :プログラム復帰へジャンプ


【毒などの処理最後から】
48 :A退避
C2 20 :A16ビット
AD 00 ED :退避した追加魔法行動IDを取得
8D 2C 3A :取得した行動IDを追加魔法行動IDメモリへ代入
E2 20 :A8ビット
68 :A復帰
5C 62 31 C2 :その後のプログラム処理へ復帰
FF6-Gのダメージ計算などの調整、それによるバグの修正が大体終わり一息ついたのでこれから本格的に与作さんが作ってくれた魔法追加プログラムの修正と効果音の追加(スーファミの仕様上出来るか怪しいですが)を行います。

ダメージ計算などのプログラム改変はメモしてあるので要望があれば詳細をうpします。

>>与作さん
行動解析で何かわかったことなどあったらご教授お願いします。
この魔法追加プログラムを何とかがんばって完成させましょう。
>>Teddyさん
バージョン1.07をうpろだにうpしました。
ttp://www9.uploader.jp/dl/gameandwatch1150583460/_uljp00015.zip.html

現在のバージョンで確認済みのバグは以下の通りです。
・追加魔法プログラムによる移動中魔法のバグ(カッパーでHP回復しますw)
・アイテム「レッドポーション」が移動中はどく状態じゃないと暗闇を直せない(戦闘では使用可能)

以下バグが発生する確率があるもの。
・魔法特殊効果、アイテム特殊効果を使用している魔法/アイテム(例:かいおんぱ、アルテマウェポンなど)
・モンスター関連(テスト用に弄っていたのでもしかしたら変更したことを忘れているモンスターがいるかも)


何かありましたらブログ掲示板のほうにお願いしますm(__)m
掲示板(デバッグ報告用)
http://jbbs.livedoor.jp/game/45891/#3
>>teddyさん
早速ありがとうございます^^
ちょっとreadmeについての記載ミスがあったので記述します。
readmeの内容がかなり先のことを書いてある箇所があります。
しばらくうpする予定ではなく色々完成させてからアップする予定で書いていました。

・ナルシェ炭鉱の幻獣死守戦までシナリオ進行可能
と有りますが、このバージョンではレテ川まで進行可能です。
すみません。
>>与作さん
雑談に近いものなのでこちらに移動しました。

昨日サイトの講座をじっくり読ませて頂きました。
解析方法の説明がおそらく一番難題ですよね。

逆汗のコードの説明なのですが、以下のサイトの説明など如何でしょうか?
http://dragon.s151.xrea.com/65816/65816.html
全くわからなかった私が、アセンブラが読めるようになったのはこのサイトのお陰です。
上記サイトの個人的な感想ですが、プログラマー目線ではなくゲーム改造目線で説明してくれているような感じでとてもわかりやすかったです。
参考にどうぞ^^

魔法追加プログラム修正箇所内約と現状最新版のFF6-G(ver1.07b)です。
http://www9.uploader.jp/dl/gameandwatch1150583460/_uljp00018.zip.html
これまで解析したプログラム部分の一部をアップしました。
作業も遅れてしまい、魔法2バイト化ができあがった後になってしまって、解析の意義は薄れてしまった感はありますが、今後の改造の役に立てばということで。
RAMメモリマップなどのデータも合わせて入ってます。

ttp://www9.uploader.jp/dl/gameandwatch1150583460/_uljp00020.rar.html

逆汗のコードの説明のサイトは上記のサイトが一番わかりやすいようですね。
しかも日本語ですし。
コード解説の講座もしようとは思っているけれど、簡略化した形にしようかなと思っている今日この頃。
>>与作さん
解析、資料作成お疲れ様です!!

メモリマップ、宝箱データ(特に場所記載)など本当に助かります。
魔法2バイト化プログラムもまだ一部不具合がありますが何とかなります。

最近ホームページにてFF6改造講座を作成しているのですが、与作さんにいくつか確認を取りたいことがありますので返答お願いします。
・与作さんホームページとの相互リンクをお願いしてもよろしいでしょうか?
・魔法追加プログラム完成版のプログラム内訳と紹介を載せてもよろしいでしょうか?
>>岩窟王さん

毎度返答遅れ気味でごめんなさい。

・こちらのホームページとの相互リンクの件、大歓迎です。
こちらからもリンク張っておきます。

・魔法追加プログラム完成版のプログラムの内訳と紹介も載せてOKです。
問題としては、こちらが記述した部分が相手にわかりやすく伝わるのかどうかと、記述に誤りがある可能性ですかね。わからない部分があったら連絡ください。

>>与作さん
ありがとうございます!
ブログ、ホームページ共にリンクさせて頂きます!

敵行動2バイト化プログラムは与作さんの解説をもとにこちらでの解釈を付け加えた形で紹介致します。
何か間違いがあった場合ご指摘して頂けると助かります。

ログインすると、残り104件のコメントが見れるよ

mixiユーザー
ログインしてコメントしよう!

Final Fantasy6改造 更新情報

Final Fantasy6改造のメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。

人気コミュニティランキング