デバッグ・解析なーど
SPC解析・デバッグって、みなさま、どうしてますか?
メモリ内部の状態について演奏しながら確認するのが難しかったりするので、なかなかむつかしいとこです。
そんなボクは、現在は以下のような感じでやってます。
逆アセンブル
逆アセンブルは、byuu氏作のSPCDASをカスタムビルドして使ってます。
OpcodeをSNES Dev Manualに沿ったものにしてみた(つもり)り、ラベル関係を弄ってみたりしました。
あと、ラベルが多いと個人的に見難いので、ラベル最適化スクリプト書いたりしてます。
デバッグ
これはSPCToolが最強ですね。
ステップ実行・ブレークポイントなんでもホイなので、今のところコレ以上のものはない感じ。
ただ、演奏かけながらできないのがおしいですね。
Script700 + SPCプレイヤーによるメモリ監視
演奏しながらメモリ値を見るなら、コレですね。
ただ、コレをするのには条件アリで、SPCのOUTポートが使用されていない場合にのみ可能です。
こんな感じのスクリプトを書くと良いと思います。
; ; memcheck script ; :1 m r0x230 o3 ; メモリ 0x230 の値を SPC I/O PORT3に書き込む w 256 ; 256クロック待つ。てきとう。 bra 1 ; ループ
黒猫SPCの場合は、コレで画面右下のほうの「F7」の下に数字が出ます。
spcplayの場合は情報表示>Script700デバッグで確認できます。
spcplayで確認するなら、上のスクリプトの o3 を w0 とかにしておいたほうが賢いです。
SNESAPU.dllのワークスペース機能を使うので、SPCのI/Oの使用有無に関わらず使えます。
コンパイル
以前はbyuu氏作のSPCASを使っていましたが、現状機能がそこまで良くないので、現在はWLA DXを使っています。
公式配布では実装が間違っているOpcodeがあるので、カスタムビルドしたもの使ってます。
以上、こんなかんじです。
特に参考にもならないとおもいますが。