https://kobarin.sakura.ne.jp/test/kbmed315_beta.exehttps://kobarin.sakura.ne.jp/test/kbmed315_beta.7z.exe と .7z はどちらも中身は同じです。
.7z の展開の仕方が分からない方は .exe をダウンロードして下さい。
.exe だと Microsoft Edge でブロックされる方は .7z をダウンロードして下さい。
Microsoft Edge にブロックされる方は安全だと報告してくれると助かります。
起動時にエラーメッセージが表示されてプラグインが認識されない場合は
Microsoft Visual C++ 2022 再頒布可能パッケージが必要です。
https://visualstudio.microsoft.com/ja/downloads/#other-ja-familyx64 版ランタイムファイル直リンク
https://aka.ms/vs/17/release/VC_redist.x64.exex86 版ランタイムファイル直リンク
https://aka.ms/vs/17/release/VC_redist.x86.exe(x64 版の動作には vc_redist.x64.exe と vc_redist.x86.exe の両方が必要です)
VS2019 のランタイムでも動作はするようですが、念のため VS2022 のランタイムを
入れて下さい。
β版は Windows XP のサポートを打ち切りました。XP 環境だと一部のプラグインが
動作しません。Windows XP で使いたい方は正式版をお使い下さい。
v3.15beta での変更点
・各種プラグイン/DLL の開発環境を VS2022 17.10.3 に更新
・MIMPI WRD(*.wrd) に対応
・DECO さん制作「DECOPLAY」の MIMPI WRD 再生プラグイン「DPWWRD.DPX」(戸上山さ
ん制作)を使用
・
http://cgi.members.interq.or.jp/ox/izu/ ・「ツール」->「環境設定」->「MWRD」で DPWWRD.DPX のパスを設定
・既定では DPWWRD.DPX は DECOPLAY のインストールフォルダから検索
・HKEY_LOCAL_MACHINE\SOFTWARE\Deco\Decoplay for Windows\ExeDir
から DPW.EXE のパスを取得、同じフォルダ内の DPWWRD.DPX
・DPWWRD.DPX のパス以外の設定も本体の環境設定画面で行えるようにする予定だが未
実装
・現状はウィンドウを右クリック->「設定」で表示されるダイアログで設定
・DPWWRD.DPX の設定は以下のレジストリに保存(DECOPLAY とは異なる場所)
・HKEY_CURRENT_USER\Software\Kobarin's Soft\KbMidi Player\Dpx\DpwWRD\
・「最大化」「最小化」「閉じる」ボタンは無視される
・「最大化」と「最小化」はレジストリを直接編集しても無視
・以下の設定は無視される(常に無効、レジストリを直接編集しても無視)
・640x400画面を使う
・GiveIO を使う
・DPEV_STEP16を使う(時間の進み方がおかしくなる、有効化しても次回再生時に無
効に戻す)
・拡張子.dv/.dvs を MWRD として扱うようにした(DPWWRD.DPX が対応している為)
・WRD(MWRD/SWRD/NWRD) に関する以下の修正
・「表示」->「WRD」のチェックが有効時は WRD を再生/無効時は WRD を再生しない
ように仕様変更
・今まではウィンドウが閉じられて非表示になったときに表示させるだけで、内部
では常に再生していた
・本体がフォーカスを持っていなくても WRD を表示&再生するようにした
・「表示」->「WRD」が無効時は再生しない
・今まではフォーカスがないときは表示しなかった(内部では再生していた)
・kbmod.kpi に関する以下の修正
・libopenmpt を 0.7.8(2024/06/09) に更新
・kbGuru2SMF.kpi に関する以下の修正
・GuruGuruSMF4.dll に関する以下の修正
・64bit 版の本体から使うと再生中 DDE がまともに機能しなくなるのを修正
・関連付け起動時にファイルを開くまで異常に時間がかかる等
・設定画面のヘルプを修正
You さんの協力のおかげで MIMPI WRD に対応することが出来ました。
まだやるべきことが残っていますが、それなりに完成度が上がって来たので一先ず
公開することにします。
DECOP + DPWWRD.DPX の組み合わせと再生結果が異なるものがあったら教えて下さい。
試した限りでは大丈夫そうです。
DV2WRD32.DLL が必要なデータは手元に1つしかありませんが、再生が出来ることは
確認しました。同一フォルダに .wrd がなくても .dv か .dvs があれば再生出来ます。
「表示」メニューの「WRD」の仕様変更により、「WRD」のチェックが入っていないと
WRD は表示されませんので注意して下さい。
今までは表示/非表示を切り替えるというより、非表示状態だったのを表示させるものでした。
本バージョンからは「WRD」のチェックマークを外すと WRD データを再生しません。
WRD を含む曲データを BGM として連続再生したい場合などはチェックを外して下さい。
あと SWRD/NWRD でもそうでしたが、WRD データの長さが MIDI の曲長より長いと最後が
再生されません。
midiOut で再生したときのみ、MIDI の方の演奏が終わっても 5 秒程度時間が進むように
してありますので MIDI より 5 秒長い程度までなら最後まで再生されます。
最後のノートオン/オフより後の MIDI イベントを捨てる仕様になっている為、このような
動作になってしまいます。
いずれ対応したいと考えていますが意外と難しいです。
今回の MWRD 対応のせいで、もしかしたら 32bit 版の kbrunkpi.exe がウイルス対策ソフト
に誤検知されやすくなったかもしれません。
再生に必要な WRD 関連ファイルの取得の為、 DPXWRD.DPX の CreateFileA という API
の呼び出しをフックする為です。
他にも LoadLibraryA とレジストリアクセス関係の API もフックします。
CreateFileA のフックはアーカイブ内の MWRD を再生する場合に WRD の内容を本体側では
調べず、再生に必要なものだけを展開して対応するようにする為に必要です。
データによっては .COM や .EXE を開きに来るようですが PC98 用に作られたこれらの
実行ファイルを DPWWRD.DPX がエミュレートするんでしょうか。
(そのデータのアーカイブには .COM も .EXE も含まれてはいませんでした)