ユーザ用ツール

サイト用ツール


サイドバー

guide:バイナリ比較でバグ修正

改造FEでどんなバグも数時間で直せるかもしれないデバッグ方法

改造feを作っていく時に、
過去ロムのバックアップをちゃんと取っていれば、
過去ロムとのバイナリ比較を使い、
原因はよくわからんがバグ修正できることがあります。

まず、今のバグありrom(ng rom)が壊れちゃうので必ずバックアップを取る

バックアップをとっている過去ロムから、
このバグがおきなくなるバージョンまで遡る。

起きないバージョンを見つけたらok romと命名。

ok romと、バグありng romの差分を
WinMargeU(バイナリ比較)とかで取る。

loop1:
ok romから、ng romに
適当に差分をコピーして当てていく。

動作確認。このバグが起きるのか?
Yes→バグが起きなくなるまで差分をコピーしていく loop1:に戻る
No

loop2:
バグが起きなくなったので、
次は、Undoをつかって、バグが起きるまで戻す

動作確認。このバグが起きるのか?
No→さらにUndoして、バグが起きるまで戻る loop2:に戻る
Yes

今undoしたところがバグを生み出している箇所だ!
アドレスと、バグらないok romのコードをメモる。
(救済コードと命名)


バックアップを取った一切手を入れていないng romに
救済コードを注入する。
(救済コードを入れ前にもバックアップ取って)

動作確認。このバグが起きるのか?
Yes→残念。救済コードが足りないらしい。このromとOK romを比較してloop1:からやり直そう。
No

バグを直した!
副作用がないか確認する

動作確認。副作用があるか?
Yes→残念。救済コードが過剰だったらしい。救済コードの周りのアドレスを含めてコピペしてみるか、
この方法を諦めて逆汗を交えながら根本解決をするしかない。
No

副作用なし。バグ修正完了。
やったぜ

こんな感じでやれば、プログラムとか一切関係無しに
だいたい数時間ぐらいあれば、
たいていのバグは直せます。

guide/バイナリ比較でバグ修正.txt · 最終更新: 2018/09/09 00:42 (外部編集)