https://kobarin.sakura.ne.jp/kpi/kbgme_001.7zgame-music-emu を用いたデコーダプラグインです。
掲示板で要望頂いたので対応してみました。
ライブラリはとても使いやすいものだったので比較的簡単に対応出来ましたが、再生出来
ないデータがあります。コンパイラの最適化を有効にするだけで音が鳴らなかったり正常
に再生出来なくなるデータがありました。最適化を無効にしても(デバッグ版のままでも)
駄目なものもあります。
AY の一部と、VGM の多くが正常に再生出来ません。
これらのデータは foo_input_gme では問題ありません。foo_input_gme のソースがあれば
確認してみたいのですが入手方法が分かりませんでした。
他の形式でも foo_input_gme で再生出来て本プラグインで再生出来ないのがあるかもしれません。
libgme 0.6.4 ではなく 0.6.3 でも試してみましたが結果は変わりませんでした。
GENS と MAME のコアでも試しましたが同じです。
最適化が有効だと再生出来ないものがあったりするあたり、何か初期化し忘れてる変数や
事前に呼び出しておくべき API があるのかもしれません。
ちなみに VGM は拡張子は VGM だが GZ 圧縮されているもの(VGZ) にも対応しています。
VGZ だから音が鳴らないのではない筈です。
これ以上調査しても私には解決出来そうにありません。
kbgme.txt より
-------------------------------------------------------------------------------
【 名 称 】 game-music-emu Decoder
【ファイル名】 kbgme.kpi
【バージョン】 0.01
【対応拡張子】 .ay/.gbs/.gym/.hes/.kss/.nsf/.nsfe/.sap/.spc/.vgm/.vgz
【 Platform 】 x86(32bit)/x64(64bit)
【 公 開 日 】 2024/06/02
【 動作環境 】 KbMedia Player 本体同梱の kbzlib.dll が必要
KbMedia Player 以外のソフトから使う場合に注意が必要
KbMedia Player から使う分には何もする必要はありません
-------------------------------------------------------------------------------
【概要】
game-music-emu を用いたデコーダプラグインです。対応拡張子は
.ay/.gbs/.gym/.hes/.kss/.nsf/.nsfe/.sap/.spc/.vgm/.vgz
です。本体同梱の kbnezplug.kpi よりも .ay/.gbs の再現性が高いと思われますが、
kbnezplug.kpi で再生出来て本プラグインでは再生出来ない .ay なども少しですが存
在するようです。
他の形式については良く分かりません。VGM は音が鳴らないことが多いようです。
game-music-emu については
https://github.com/libgme/game-music-emuを参照して下さい。
【設定】
プラグイン設定で対応拡張子を設定します。
.ay/.gbs は既定で有効としていますがそれ以外は無効としています。
本プラグインが対応する拡張子は全て本体標準同梱のプラグインと競合します。
拡張子を有効にしてもプラグイン優先度の関係で競合するプラグインの方の拡張子の無
効化も必要になることがあります。
それが煩わしい場合は「HighPriority」を true にすることで他のプラグインよりも優
先的に使用されるようになります。
本プラグインで拡張子を無効化すると、本体のプラグイン設定画面で該当拡張子を検索
してもヒットしなくなります。これは他のプラグインについても同様です。
全ての拡張子を有効にしておき、%Kbmplay% セクションで無効化するというのも一つの
方法です。
【ライセンス】
本プラグインには game-music-emu(libgme) と Nuked コアが組み込まれています。
LGPL です。
本プラグインのソースコードは本体の正式版公開時、その時点で最新版のものをプラグ
イン置き場にて公開します。
それよりも新しい版のソースコードが欲しい方は催促頂ければお送りします。
【既知の不具合】
・正常に再生出来ない AY が一部存在する
・正常に再生出来ない VGM が多数存在する
コンパイラの最適化を有効にすると再生出来なくなるデータがあり、本プラグインでは
最適化を無効にしていますが、それでも再生出来ないデータがあります。
同じ libgme をベースに作られていると思われる foo_input_gme では問題なく再生する
ことが出来るようです。
-------------------------------------------------------------------------------
【更新履歴】
Version 0.01(2024/06/02)
・初版
・libgme 0.6.4(2024/05/15)
・Nuked コア(プリプロセッサの定義に VGM_YM2612_NUKED を指定)