一括表示
タイトル
記事No
投稿日
投稿者
参照先
kbgme.kpi v0.01
334
2024/06/02(Sun) 00:36:25
Kobarin

https://kobarin.sakura.ne.jp/kpi/kbgme_001.7z

game-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 を指定)
pagetop
タイトル
記事No
投稿日
投稿者

Re: kbgme.kpi v0.01
336
2024/06/03(Mon) 20:58:39
たかおか
お忙しい中対応いただきありがとうございます。
foo_input_gmeと同等の再生状況にはならないとのことですが、
手持ちのAYファイルは良く再生できるようになりました。

foo_input_gmeはもともとfoo_gepという名前でkode54氏によって開発されていました。
2年ほど前にkode54氏とfoobar2000作者のPeter氏と間になんらかのいざこざがあり、
kode54氏はgithub、gitlabからソースコードを消去して開発をやめてしまいました。
現在はPeter氏が開発しているのですが、foobar2000本体のライセンスと同じくソースコード非公開でやっているようです。
libgmeはLGPLなのでlib部分には手を加えてないと思われます。

bitbucketにkode54氏開発プラグインのソースコピーがあるのですが、古いコピーのようです。
https://bitbucket.org/chiptune-plugin-archives__not-my-release/foo_gep/src/main/
pagetop
タイトル
記事No
投稿日
投稿者
参照先
Re^2: kbgme.kpi v0.01
337
2024/06/04(Tue) 21:52:45
Kobarin

素晴らしいライブラリを教えて頂いてありがとうございました。

> 2年ほど前にkode54氏とfoobar2000作者のPeter氏と間になんらかのいざこざがあり、

github に foobar 関係のが全然ないと思ってましたがそんなことがあったのですね。

VGM 関係はソースの中身をきちんと検証してなかったですが、ライブラリ自体は新しい
バージョンの VGM に対応してなくて foo_input_gme は対応させてるだけなのかもしれ
ません。

SPC も補間の設定があるあたり特別な対応をしてるのでしょう。

AY はコンパイラの最適化を有効にすると明らかに再生が出来なくなるデータがあるので
ライブラリ自体に何か問題があると思うのですが、落ちるバグと違って問題の箇所が特定
出来ないので、諦めてそのうち解決されるのを待つことにします。


wsr と psf 系の foobar プラグインのいくつかが新しくなってるみたいですね。
取り敢えず wsr だけ更新しましたが再現性に関わる修正ではなかったです。
pagetop

- Web Forum v8.0 -
++ Edited by Hamel ++