SPCCMD.EXE リファレンス マニュアル

トップ ページ

SNES SPC700 Player ダウンロード ページ

この資料は SNES SPC700 Player v2.13.5, v2.14.0 以降に準拠しています。

目次

1. 概要

2. SPCCMD.EXE の使用方法

3. 各種オプション

3.1 構文ヘルプの表示

3.2 バージョン情報の表示

3.3 演奏状態の設定

3.4 DSP レジスタ値の読み取り・書き換え

3.5 SPC700 I/O ポート値の読み取り・書き換え

3.6 64KB APU RAM の読み取り・書き換え

3.7 Script700 ワークエリアの読み取り・書き換え

3.8 Script700 CmpParam の読み取り・書き換え

1. 概要

SPCCMD.EXE は起動中の SNES SPC700 Player からメモリの内容を読み取ったり、書き換えたりするための公式外部拡張ツールです。

SNES SPC700 Player はある程度のレジスタやメモリ状態を表示できますが、メモリマップ全体を表示したり、リアルタイムで書き換えることはできません。

このツールは SNES SPC700 Player で SPC ファイルや SNESAPU のデバッグで必要となる追加機能を提供します。

2. SPCCMD.EXE の使用方法

SPCCMD.EXE はコマンドライン ツールですので、コマンド プロンプトより実行する必要があります。

SPCCMD.EXE を使用する前に、まずコマンド プロンプトを起動してください。

C:\>_

次に SNES SPC700 Player を起動し、任意の SPC ファイルを開いた状態にしてください (演奏中でも停止中でもかまいません)。

SPCCMD.EXE を置く場所はどこでもかまいません (SPCPLAY.EXE と異なる場所でも動作します)。

3. 各種オプション

構文ヘルプの表示

コマンド プロンプトで spccmd /? と入力して Enter キーを押すと、 SPCCMD.EXE の構文ヘルプが表示されます。

C:\>spccmd /?
Sending debug message tool to SNES SPC700 Player
サポートしている SPCPLAY.EXE のバージョン: v2.13.5 以降

<< 構文 >>
  spccmd.exe [オプション]

[オプション]
 == 基本オプション.
  /? /h         : 構文ヘルプを表示
  /v            : バージョン情報を表示
  /p            : 演奏開始・一時停止
  /r            : 最初から演奏
  /s            : 演奏停止
       :
       :

C:\>_

バージョン情報の表示

コマンド プロンプトで spccmd /v と入力して Enter キーを押すと、 SPCCMD.EXE のバージョン情報が表示されます。

C:\>spccmd /v
Sending debug message tool to SNES SPC700 Player
サポートしている SPCPLAY.EXE のバージョン: v2.13.5 以降

C:\>_

演奏状態の設定

【演奏開始の場合】

コマンド プロンプトで spccmd /p と入力して Enter キーを押すと、開いている SPC ファイルの演奏が開始されます。

C:\>spccmd /p

C:\>_

【一時停止の場合】

コマンド プロンプトで spccmd /p と入力して Enter キーを押すと、演奏が一時停止されます。

C:\>spccmd /p

C:\>_

【最初から演奏する場合】

コマンド プロンプトで spccmd /r と入力して Enter キーを押すと、演奏が最初から再開されます。

C:\>spccmd /r

C:\>_

【演奏停止の場合】

コマンド プロンプトで spccmd /s と入力して Enter キーを押すと、演奏が停止されます。

C:\>spccmd /s

C:\>_

DSP レジスタ値の読み取り・書き換え

【読み取りの場合】

コマンド プロンプトで spccmd /gd [アドレス] と入力して Enter キーを押すと、 DSP レジスタの値が表示されます。

[アドレス] には読み取りたいメモリの場所を指定します。 $ を最初に付けると 16 進数指定になります。

戻り値には読み取った値が表示されます。

C:\>spccmd /gd $41
戻り値 = $000000FE (254)

C:\>_

【書き換えの場合】

コマンド プロンプトで spccmd /sd [アドレス] [設定値] と入力して Enter キーを押すと、 DSP レジスタの値を書き換えます。

[アドレス] には読み取りたいメモリの場所、 [設定値] には書き込む値を指定します。 $ を最初に付けると 16 進数指定になります。

戻り値には書き込む前に設定されていた値が表示されます。

C:\>spccmd /sd $41 $37
戻り値 = $000000FE (254)

C:\>_

【メモリマップ表示の場合】

コマンド プロンプトで spccmd /md と入力して Enter キーを押すと、 DSP レジスタの値の一覧が表示されます。

C:\>spccmd /md
DSP レジスタ メモリマップ

Addr  :  +0 +1 +2 +3 +4 +5 +6 +7  +8 +9 +A +B +C +D +E +F
0000  :  00 00 3A 00 00 00 21 00  00 00 6E 00 00 00 3C 00
0010  :  00 00 0E 00 00 00 08 00  00 00 7E 00 00 00 3C 00
0020  :  00 00 6A 00 00 00 1D 00  00 00 3F 00 00 00 17 00
0030  :  00 00 0C 00 00 00 0A 00  00 00 72 00 00 00 17 00
0040  :  00 00 12 00 00 00 07 00  00 00 7D 00 00 00 20 00
0050  :  00 00 12 00 00 00 07 00  00 00 7D 00 00 00 00 00
0060  :  00 00 01 00 00 00 0A 00  00 00 7F 00 00 00 00 00
0070  :  00 00 0A 00 00 00 0A 00  00 00 68 00 00 00 C8 00

C:\>_

SPC700 I/O ポート値の読み取り・書き換え

【読み取りの場合】

コマンド プロンプトで spccmd /gp [アドレス] と入力して Enter キーを押すと、 I/O ポートの値が表示されます。

[アドレス] には読み取りたいメモリの場所を指定します。 $ を最初に付けると 16 進数指定になります。

戻り値には読み取った値が表示されます。

C:\>spccmd /gp 2
戻り値 = $00000000 (0)

C:\>_

【書き換えの場合】

コマンド プロンプトで spccmd /sp [アドレス] [設定値] と入力して Enter キーを押すと、 I/O ポートの値を書き換えます。

[アドレス] には読み取りたいメモリの場所、 [設定値] には書き込む値を指定します。 $ を最初に付けると 16 進数指定になります。

戻り値には書き込む前に設定されていた値が表示されます。

C:\>spccmd /sp 2 $10
戻り値 = $00000000 (0)

C:\>_

【書き換え後すぐに元に戻す場合】

コマンド プロンプトで spccmd /tp [アドレス] [設定値] と入力して Enter キーを押すと、 I/O ポートの値を書き換え、すぐに元の値に戻します。

効果音の再生等のために、ドライバにメッセージを送る際に便利です。

[アドレス] には読み取りたいメモリの場所、 [設定値] には書き込む値を指定します。 $ を最初に付けると 16 進数指定になります。

戻り値には常に 0 が表示されます。

C:\>spccmd /tp 2 $10
戻り値 = $00000000 (0)

C:\>_

64KB APU RAM の読み取り・書き換え

【読み取りの場合】

コマンド プロンプトで spccmd /gr [アドレス] と入力して Enter キーを押すと、 64KB APU RAM の値が表示されます。

[アドレス] には読み取りたいメモリの場所を指定します。 $ を最初に付けると 16 進数指定になります。

戻り値には読み取った値が表示されます。

C:\>spccmd /gr $1732
戻り値 = $E8021003 (3892449283)

C:\>_

【書き換えの場合】

コマンド プロンプトで spccmd /sr [アドレス] [設定値] と入力して Enter キーを押すと、 64KB APU RAM の値を書き換えます。

[アドレス] には読み取りたいメモリの場所、 [設定値] には書き込む値を指定します。 $ を最初に付けると 16 進数指定になります。

戻り値には書き込む前に設定されていた値が表示されます。

C:\>spccmd /sr $1732 55410474
戻り値 = $E8021003 (3892449283)

C:\>_

【メモリマップ表示の場合】

コマンド プロンプトで spccmd /mr [開始アドレス] [表示サイズ] と入力して Enter キーを押すと、 64KB APU RAM の値の一覧が表示されます。

[開始アドレス] は下 1 桁が切り捨てられます。 例えば $206 を指定すると $200 から始まります。

[表示サイズ] は 16 で切り上げされます。 例えば 33 を指定すると 48 バイト分表示されます。

C:\>spccmd /mr $200 256
64KB APU RAM メモリマップ

Addr  :  +0 +1 +2 +3 +4 +5 +6 +7  +8 +9 +A +B +C +D +E +F
0200  :  B8 02 00 5C 15 FF 00 00  00 00 00 00 00 00 00 00
0210  :  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
0220  :  00 00 00 00 01 00 BE 72  00 60 A0 80 00 00 00 00
0230  :  00 00 00 00 00 00 00 00  00 00 00 00 03 03 03 33
0240  :  0B 0B 33 33 00 00 00 00  00 00 00 00 1D 01 0E 90
0250  :  43 C6 46 EF 00 00 00 00  82 57 53 98 14 1E 15 17
0260  :  1B 1F 19 15 00 00 00 00  30 2C 28 28 A4 00 B4 F6
0270  :  B0 B0 F6 F6 00 00 00 00  00 00 00 00 04 15 02 0F
0280  :  16 10 0B 09 00 00 00 00  04 03 1A 0E 97 5C 56 D8
0290  :  1A 8F E0 6D 00 00 00 00  7D 68 E9 41 7D 00 00 00
02A0  :  00 F9 3C F8 00 00 00 00  23 0A 04 00 03 01 02 01
02B0  :  04 03 03 01 00 00 00 00  00 02 01 01 01 01 07 02
02C0  :  01 04 02 02 00 00 00 00  00 01 01 01 00 00 00 00
02D0  :  00 00 00 00 00 00 00 00  00 00 00 00 01 09 11 18
02E0  :  21 29 30 38 00 00 00 00  60 68 70 78 64 00 00 FF
02F0  :  FF 01 4C 02 81 FE 00 05  FF FF 64 C8 FF 00 1C FF

C:\>_

Script700 ワークエリアの読み取り・書き換え

【読み取りの場合】

コマンド プロンプトで spccmd /gw [アドレス] と入力して Enter キーを押すと、 Script700 ワークエリアの値が表示されます。

[アドレス] には読み取りたいメモリの場所を指定します。 $ を最初に付けると 16 進数指定になります。

戻り値には読み取った値が表示されます。

C:\>spccmd /gw 7
戻り値 = $00007D41 (32065)

C:\>_

【書き換えの場合】

コマンド プロンプトで spccmd /sw [アドレス] [設定値] と入力して Enter キーを押すと、 Script700 ワークエリアの値を書き換えます。

[アドレス] には読み取りたいメモリの場所、 [設定値] には書き込む値を指定します。 $ を最初に付けると 16 進数指定になります。

戻り値には書き込む前に設定されていた値が表示されます。

C:\>spccmd /sw 7 $20
戻り値 = $00007D41 (32065)

C:\>_

Script700 CmpParam の読み取り・書き換え

【読み取りの場合】

コマンド プロンプトで spccmd /gc [アドレス] と入力して Enter キーを押すと、 Script700 CmpParam の値が表示されます。

[アドレス] には読み取りたいメモリの場所を指定します。 $ を最初に付けると 16 進数指定になります。

戻り値には読み取った値が表示されます。

C:\>spccmd /gc 1
戻り値 = $3CF90000 (1022951424)

C:\>_

【書き換えの場合】

コマンド プロンプトで spccmd /sc [アドレス] [設定値] と入力して Enter キーを押すと、 Script700 CmpParam の値を書き換えます。

[アドレス] には読み取りたいメモリの場所、 [設定値] には書き込む値を指定します。 $ を最初に付けると 16 進数指定になります。

戻り値には書き込む前に設定されていた値が表示されます。

C:\>spccmd /sc 1 $3CFA0000
戻り値 = $3CF90000 (1022951424)

C:\>_