X68000用のVGMプレイヤー作ってみました。
X68000のVGM環境って聞いたことなくてなければ作る(?)と思い、できたのがこちらです。
X68000の内蔵音源(OPMとOKIM6258)に対応しています。OKIM6295及びOPN3-Lに関しては下の当該項目をお読みください。
(VGMDRVという名前ですが音源ドライバーというよりプレイヤーです。この名前にしたかったんです!まあ駆動はさせてますし...)
使い方
vgmdrv ファイル名 [-r -d -n -f]
ファイル名: 必須です。VGMファイルを指定します。
-r: リピート回数を入力します(デフォルトは-r2、-r0は無限ループになります)
-d: 指定された分OPMのピッチを下げます(デフォルトは-d0※4MHz時)
-n: OKIM6295の音量を微調節します(デフォルトは-n10、範囲は-n0から-n15)
-f: ループ終了時、曲の中断時にフェードアウトを設定します
・再生中にEscキー、もしくはDELキーを押すことで再生を中断できます。
・-fオプション使用時はフェードアウト開始2秒後ほどよりEscキー、DELキーを押すと中断できます。
・再生中に1-8キーを押すことでOPMのチャンネルミュートができます。9キーでADPCMも同様のことができます。
・VGZファイルに対応しています。VGZファイルを開く場合はパスが通ってる場所にtx.rを置いてください。
・VGZファイル読み込み時はカレントディレクトリーに _vgmdrvt.emp という一時ファイルを作成(終了時には削除)します。そのためライトプロテクトや同名ファイルの作成は禁止です。
・OPMの入力周波数が3MHzから4MHz未満の間であれば自動的に音程調節をします。
・-dオプションは元々~Version 0.97用に用意していたものです。Version 0.98以降は機能向上により原則不要だとは思いますが残してます。
・全てのファイルで正しく鳴るかは分かりません。使用は自己責任でお願いします。
OKIM6295の限定対応について
本プログラムはOKIM6295にも限定的に対応しています。ご利用される場合はPCM8Aを常駐させてください。ただし、あくまで再現になりますので再生品質は異なると思っていてください。データによっては鳴りません。
尚、OKIM6295を使用しない場合でもPCM8Aを付けたままで鳴りますがPCM8A常駐時は負荷分散のため再生タイミングの精度を下げています。そのためOKIM6295を使用しない場合の常駐は非推奨です。(そもそもADPCMの鳴り方が異なってくるためというのもあります)
まーきゅりーゆにっとV4のFM音源(OPN3-L)に対応
対応VGMファイルはOPNA(ADPCM非対応)/OPN/SSGです。
上記の1種類のチップx2つの再生にも対応していますが複数種類ある場合は再生できません。ファイルが対応しているかつOPN3-Lの存在が確認できた時にMercury-Opn3 ModeがONになります。
こちらはOPMと違い音程調節機能、フェードアウト機能など各種機能は存在しません。ご了承ください。
2023/08/13: Version 0.90公開
2023/08/24: Version 0.91公開 (3.58MHz時の変換再生機能追加、-dオプション追加、チューンナップ等)
2023/08/28: Version 0.95公開 (⭐が流れるようになりました!それと再生中断機能の修正等)
2023/08/30: Version 0.96公開 (開始時に異音が鳴る場合があることを確認したので修正)
2023/08/31: Version 0.97公開 (初期化時にTest Modeをオンにしてしまっていたのを修正)
2023/09/12: Version 0.98公開 (OPM入力周波数3MHz-4MHzの間であれば自動で変換再生できるようにしました。他、ADPCMのパンの修正、ADPCMの⭐追加等)
2023/09/15: Version 1.00公開 (380KiBの上限を開放し、メモリーが許すまで読み込めるようになりました。VGZファイルに対応しました。再生時間を表示するようにしました。DELキーでの中断を追加。一部中断できないファイルを中断できるように修正。)
2023/10/07: Version 1.01公開 (OKIM6295に限定対応→PCM8Aに対応、再生時間の計算方法変更)
2023/10/15: Version 1.02公開 (再生中に非対応チップがあった場合、中断していたのをスキップするようにしました。無限ループに対応)
2023/10/23: Version 1.04公開 (曲の現在位置と現在のリピート回数を表示するようにしました。-fオプション追加。再生時間を60分表示から24時間表示に変更。OKIM6295再生時にPCM8Aを常駐していなくてもエラー終了しないようにしました。※ただし、この場合ADPCMは鳴りません)
2023/10/25: Version 1.05公開 (OPMのチャンネルのミュートができるようになりました。それとフェードアウト機能の改善)
2023/11/09: Version 1.06公開 (稀にフェードアウト時にクラッシュする現象を見つけたので修正)
2023/11/17: Version 1.07公開 (Opm-Tone Mode, Refresh Rate, Processed Data/s, Sampling Dataの表示項目を追加しました。←の変更により起動時の4MHzじゃないメッセージは廃止。VGMデータの待ち時間が長すぎる場合にキー入力を受け付けなくなる問題の修正)
2023/11/19: Version 1.08公開 (Refresh RateをFrame Rateに変更。どのファイルでもFrame Rate=60ぐらいで動くように調節。ADPCMの一時停止・再開を可能にしました)
2023/11/23: Version 1.09公開 (非常にレアケースだと思いますがADPCM初期設定時、OKIM6295の一時停止・再開時に起こりうる可能性がある問題の修正)
2023/11/25: Version 1.10公開 (コマンドライン引数で前回起動時の値が反映されることがあったので修正)
2023/12/05: Version 1.11公開 (VGM Size[KiB]を表示するようにしました)
2024/07/23: Version 1.13公開 (まーきゅりーゆにっとV4のFM音源に対応しました)
2024/07/25: Version 1.14公開 (OPN3-Lの初期化手順の修正(多分Version 1.13でも大丈夫なのでしょうが念のため))
2024/09/10: Version 1.15公開 (画面レイアウトの調節、Sampling Dataの計算を初回以外は行わないように修正、フェードアウトからの中断可能時間を3秒から2秒に変更)
2024/09/22: Version 1.16公開 (軽量化しました(多分Version 1.15と変わりません))
2024/12/21: Version 1.17公開 (一部ファイルにおいてOKIM6258の再生レートを間違う問題を修正)