Gnildaのページ



SPCP_FF4

  1. トップ
  2. ダウンロード
  3. SPCP_FF4

概要

  • SPCP_FF4 は、スーパーファミコンソフト Final Fantasy IV の音楽ファイル (SPC) の演奏データを演奏しながら確認するためのプログラムです。
  • プレイヤー機能の出来は良くありません。演奏データをリアルタイムで確認するためのプログラムです。
  • Script700 には対応していません。
  • 演奏しながら APU RAM や DSP レジスタなどのメモリ状態を読み取り表示します。
  • 一部コマンドで演奏データにエラーがある場合は自動的に (一時) 停止させることができます。
  • ウィンドウ描画には Direct2D と DirectWrite を使用しています。
  • 各ランタイムや .NET Framework は一切不要です。
  • レジストリの書き込みを行いません。アンインストールはファイルを削除するだけで完了します。
  • SSE4.2 と AVX に対応した Windows (7 SP1 以降) と CPU で実行してください。

インストール

SPCP_FF4.exe と デグレファクトリー様の SNES SPC700 Player ページの改良版 SNESAPU.DLL (パッケージ・他プレイヤー用どちらでも結構です) 、設定が必要である場合は SPCP_FF4.ini を同じフォルダに置いてください。

各種ランタイムや .NET Framework などの導入は一切不要です。

SPCP_FF4_AVX.zip (SPCP_FF4.exe + SNESAPU.DLL v2.17.6)
SHA-256 : be7679d48d617d512393feee080dbb9068d176d59a2d7d220c02bfeace2c3ce9
VirusTotal での検査結果 (0 / 56)
SPCP_FF4.ini (音量 100% のみ)
SHA-256 : 126e630f52e6011a04fc5ed99c161bf2c897fd1f10faa627d3e7479946945961
ブラウザで表示される場合は右クリックで保存してください。

メインウィンドウ

SPC ファイルを一つウィンドウ上にドロップすると、演奏可能であれば自動的に演奏を開始します。

SPC ファイルである場合はゲーム名、曲名、コメントが表示されます。拡張 ID666 情報が存在する場合は、そちらが優先されて表示されます。

SPCP_FF4 メインウィンドウ

ツールバー

演奏開始 ボタン
演奏可能である場合は演奏を開始します。
一時停止中である場合は演奏を再開します。
一時停止 ボタン
演奏を一時停止します。
演奏停止 ボタン
演奏を停止します。
演奏開始時間指定 ボタン
オンの状態で演奏開始ボタンをクリックすると、ウィンドウ右に表示された時間から演奏を開始します。
演奏データエラーで一時停止 ボタン
オンの状態で "制御コマンド実行時に" 演奏データエラーを検出すると、メインウィンドウ右下にトラック番号・アドレス・制御コマンドを表示し、演奏を一時停止します。
情報表示状態を維持するために一時停止しますが、演奏を再開できません。
ファイルを開く ボタン
ファイル読み込み、演奏可能である場合は演奏を開始します。
ファイルを再読み込み ボタン
演奏可能なファイルを読み込みんでいた場合は同じファイルを再読み込みし、演奏可能である場合は演奏を開始します。
メインウィンドウを常に手前に表示切り替え ボタン
メインウィンドウが常に手前に表示されるようにするか設定することができます。
インジケータウィンドウを常に手前に表示切り替え ボタン
インジケータウィンドウが常に手前に表示されるようにするか設定することができます。
SPCP_FF4 メインウィンドウ

ウィンドウ右側の演奏開始時間指定アイコン 〜 秒周辺をポイントするとエディットボックスが表示されます。

数値を入力することで値を設定することができます。

入力可能な状態であれば、矢印↑↓キー・マウスのホイールで数値を 1 増減させることができます。Shift キー、マウスのサイドボタンを押しながら操作すると数値を 10 増減させることができます。

ポインタをエディットボックスが自動表示されない範囲まで移動をすることで自動的に確定され、エディットボックスは非表示になります。

設定可能な秒数は 0 〜 600 です。

マルチメディアキー

再生 キー
Ctrl キー押下状態である場合は、ツールバーの ファイルを再読み込み ボタンクリックと同じ操作になります。
上記以外の場合は、ツールバーの 演奏開始 ボタンクリックと同じ操作になります。
再生 / 一時停止 キー
Shift キー押下状態である場合は、ツールバーの 演奏停止 ボタンクリックと同じ操作になります。
Ctrl キー押下状態である場合は、ツールバーの ファイルを再読み込み ボタンクリックと同じ操作になります。
上記以外で演奏中の場合は、ツールバーの 一時停止、演奏中ではないまたは一時停止中の場合は、 演奏開始 ボタンクリックと同じ操作になります。
一時停止 キー
ツールバーの 一時停止 ボタンクリックと同じ操作になります。
停止 キー
ツールバーの 演奏停止 ボタンクリックと同じ操作になります。

動画

演奏中の動画です。

インジケータウィンドウ

演奏中の内部情報が表示されます。

SPCP_FF4 インジケータウィンドウ

使用方法

通常ドラッグでウィンドウを移動することができます。

SPCP_FF4 インジケータウィンドウ (上部) チャネルミュート範囲
Vx の文字 〜 EX の値の範囲内でマウスボタン操作することで、チャネルミュートのオンオフを切り替えることができます。
右ボタンクリック
Shift と Ctrl キー共に押下状態である場合は、全てのチャネルのミュート設定が反転します。
Shift キー押下状態である場合は、全てのチャネルのミュート設定がオフになります。
Ctrl キー押下状態である場合は、全てのチャネルのミュート設定がオンになります。
上記以外の場合は、一つのチャネルのミュート設定が反転します。
中ボタンクリック (マウスホイール)
全てのチャネルのミュート設定が反転します。
X1 ボタンクリック (戻る)
全てのチャネルのミュート設定がオンになります。
X2 ボタンクリック (進む)
全てのチャネルのミュート設定がオフになります。

上部 (DSP, CPU の情報など)

SPCP_FF4 インジケータウィンドウ (上部)
V0 〜 V7
Voice0 〜 Voice7 の設定です。
SN
設定されている波形番号です。
Addr
波形の先頭アドレスです。
Loop
波形のループ先頭アドレスです。
Read
読み取り中の波形データアドレスです。
F
BRR 復元時のフィルタ番号です。
R
BRR 復元時のレンジ番号です。
Flg
エコーオンの状態であれば E が表示されます。
ノイズオンの状態であれば N が表示されます。
ピッチモジュレーションオンの状態であれば P が表示されます。
VL
ボリューム (左) の値です。
VR
ボリューム (右) の値です。
Pitch
ピッチ (音程) の値です。
A/G
1 文字目は DC コマンドのソフトウェアエンベロープで音量倍率変化中であれば A (ADSR モード)、音量倍率変化が終了した状態であれば G (GAIN モード) が表示されます。
2 桁の 16 進数値は DD コマンドで設定、または DE コマンドで指定した時間経過後に自動的に変化する Gain rate の値です。
ADSR・Gain モードのその他の値は変化しませんので表示されません。
EX
エンベロープ (音の強さ) の値です。
DSP Register
その他の DSP の設定です。
MasterLv
マスターボリューム (左、右) の値です。0x80 〜 0xff は逆位相になります。
EchoLv
エコーボリューム (左、右) の値です。0x80 〜 0xff は逆位相になります。
Delay
エコーフィードバック強度 (リバーブ) の値です。0x80 〜 0xff は逆位相になります (% が負の値で表示されます)。
SrcAddr
APU RAM 内の波形データ (先頭・ループ先頭) のアドレスが保存されているアドレス領域です。
EchoAddr
エコー計算時に APU RAM 内のメモリを書き換えるアドレス領域です。
NoiseClk
ノイズ発生器のクロック周波数です。
FIR
C0 〜 C7
エコーフィードバックにかける FIR フィルタの係数の値です。0x80 〜 0xff は逆位相になります。
SPC700 Register
SPC700 レジスタの値です。
Output
Final Fantasy IV コンフィグで設定された出力の状態です (ステレオ・モノラル)。
Volume
Final Fantasy IV の音楽のマスターボリュームの値です。ポーズ中は約 1/4 になります。
Tempo
D2 コマンド (演奏速度設定・変化) の値です。
変化中でない場合は白色、変化中でエラー (変化量が 0) の場合は薄い赤、正常の場合は薄い水色で表示されます。
Time
演奏時間です。

下部 (トラックの情報)

SPCP_FF4 インジケータウィンドウ (下部)
S1 〜 S8
音楽のトラックです。
E1 〜 E3
効果音のトラックです。
Sequence
W
次のコマンド実行までの待ち時間 (ティック数) です。
Addr
次のコマンドのアドレスです。
SN
DB コマンドで設定されている波形番号です。
Flg
エコーオンの状態であれば E が表示されます。
ノイズオンの状態であれば N が表示されます。
ピッチモジュレーションオンの状態であれば P が表示されます。
Volume
F2
F2 コマンド (音量設定・変化) の値です。
変化中でない場合は白色、変化中でエラー (変化量が 0) の場合は薄い赤、正常の場合は薄い水色で表示されます。
DC
DC コマンド (ソフトウェアエンベロープ) の値です。
変化中でない場合 (DSP は GAIN モード) は白色、変化中 (DSP は ADSR モード) は薄い水色で表示されます。
D7
D7 コマンド (トレモロ) の値です。
Panpot
CV
F3D9 コマンドの値の合計です。
この値が音量計算に使用されます。
F3
F3 コマンド (パン設定・変化) の値です。
変化中でない場合は白色、変化中でエラー (変化量が 0) の場合は薄い赤、正常の場合は薄い水色で表示されます。
D9
D9 コマンド (オートパン) で変化する値です。
Pitch
CV
キーオン時の値・D8D6 コマンドの値の合計です。
この値が DSP に設定されます。
K-ON
キーオン時の値です。
D8
D8 コマンド (ビブラート) で変化する値です。
D6
D6 コマンド (ピッチスライド) で変化する値です。
Loop1 〜 Loop4
E0
E0 コマンドのカウントダウンカウンタの値です。
ループ設定でエラーが発生した場合は Loop1 に薄い赤色で値が表示されます。
F5
F5 コマンドのチェック回数です。
Addr
ループ開始位置のアドレスです。

INI ファイルの設定

INI ファイル直接編集で設定可能です。自動保存は行っていません。

メインウィンドウ (Window セクション)

起動時のスクリーン座標指定
Left と Top で左上の座標を指定します。いずれかの値が範囲外である場合は、システム既定の位置に表示されます。
範囲 : -32767 〜 32767
既定値 : システム既定の位置
起動時に常に手前に表示される状態にする
TopMost に 1 を設定します。0 で解除された状態になります。
範囲 : 0 〜 1
既定値 : 0

インジケータウィンドウ (Indicator セクション)

起動時のスクリーン座標指定
Left と Top で左上の座標を指定します。いずれかの値が範囲外である場合は、システム既定の位置に表示されます。
範囲 : -32767 〜 32767
既定値 : システム既定の位置 (0, 0)
起動時に常に手前に表示される状態にする
TopMost に 1 を設定します。0 で解除された状態になります。
範囲 : 0 〜 1
既定値 : 0

プレイヤー (Setting セクション)

音量を設定
DSPAmp に値を設定します。
65536 が 1 倍になります。
範囲 : 16384 〜 262144 (25% 〜 400%)
既定値 : 65536 (100%)
起動時のチャネルミュートを設定
VMute に値を設定します。
符号なし 8 桁の 2 進数で表したときに、一番下の位 (2 の 0 乗) が V0 一番上の位 (2 の 7 乗) が V7 の設定になります。
対応する位の値が 1 である場合ミュートがオンに、0 である場合はオフに設定されます。
範囲 : 0 〜 255
既定値 : 0

アンインストール

  • SPCP_FF4.exe, SPCP_FF4.ini, SNESAPU.DLL (と不要であればフォルダ) を削除します。

仕様 (手抜きですね)

  • SNESAPU の基本オプションは、内部ミキシング 32bit-float 、出力ステレオ 16bit 48kHz 、高精度ガウス分布補完、DSP エミュレーションのオプション未指定固定です。
  • 出力に使用するサウンドデバイスは Microsoft Sound Mapper 固定です。waveOut のみ対応しています。
  • メモリ使用量を減らすため(と現在設定不可能ですが設定変更時の応答速度を早くするため)にサウンドバッファ数は 8 で固定されています。
  • インジケータのリフレッシュ速度を確保するためサウンドバッファの大きさが 1/120 秒 (8.3ms) と小さな値で固定されています。
  • ID666 、拡張 ID666 による演奏時間、フェードアウトの設定には対応していません。
  • Script700 には対応していません。
  • 演奏中であるかのチェックを効果音のみ行っているので、音楽が演奏停止状態でなくても無音検出 2 秒で停止してしまいます。
  • 起動時に INI ファイルで音量指定できますが、変更できません。
  • 実行ファイル名を変更した場合、設定を反映させるためには INI ファイルのファイル名も変更する必要があります。
  • 管理者モードで実行した場合、エクスプローラからのメッセージが届かなくなり応答不能になります。管理者モードで実行する必要はありませんので、管理者モードでは実行しないでください。

謝辞

本ソフトでは、デグレファクトリー様の 改良版 SNESAPU.DLL を利用させていただいています。ありがとうございます。

本ソフトのインジケータウィンドウのフォントは、遊佐泰紀様の合成フォント Ricty Diminished を利用させていただいています。ありがとうございます。

免責事項

  • このソフトウェアによるいかなる損害にも作者 Gnilda は一切責任を負いかねます。

更新履歴

2016/05/29
マルチメディアキーで一部操作可能になりました。
同梱の SNESAPU.DLL を v2.17.6 に更新しました。
2016/04/29
演奏データエラー検出処理を変更しました。"制御コマンド実行時" にエラーが発生する場合に停止するようになりました。
Aero スナップ無効時にウィンドウを画面上に移動しようとすると、ウィンドウサイズが小さくなる問題を修正しました (Windows8.1 で確認)。
インジケータウィンドウ表示フォントを Ricty Diminished Version 4.0.1 に更新しました。
同梱の SNESAPU.DLL を v2.17.5 に更新しました (演奏データエラー検出処理で SPC700 フェッチの割り込みを使用しているので v2.17.5 未満では起動しません)。
2015/04/30
演奏開始時にインジケータウィンドウのループ表示を初期化するように修正しました。
同梱の SNESAPU.DLL を v2.17.2 に更新しました。
2015/03/27
初期化の処理を変更しました。
インジケータウィンドウの IME を無効化しました。
2015/03/06
チャネルミュートを追加しました。
インジケータウィンドウの表示処理を変更しました。
演奏データエラー検出処理を変更しました。
ツールバーの処理を変更しました。
2015/02/26
リソースを修正しました。
2015/02/25
ツールバーの処理を変更しました。
2015/02/24
ツールバーの処理を変更しました。
2015/02/23
例外が発生する可能性がある部分を修正しました (890 様、ありがとうございます) 。
2015/02/22
試作。
  1. トップ
  2. ダウンロード
  3. SPCP_FF4