外部音源DLL(V1)

本体exeと同じ場所に置きINIに
FMGenDll=mamefm.dll
と追加する事で使用します
その他使用している本体説明を参考にして下さい
組み込み側の条件によっては使用できない場合があります
複数搭載は本体側でサウンドボードを複数使用する場合の対応可否です

-------------------------------------------------------------------------------

・fmgen.dll(v1.02)
fmgen(008)のOPNA(YM2608)です
FM/PSG/RHYTHM/ADPCMに対応しています
リズム音源を使用する場合はdllと同じパスにWAVを置いて下さい
SSGタイプのエンベロープ(SSG-EG)や特殊な使い方をしているような効果には対応していない場合があります
タイマに対応しています
タイマを操作する事でCSM発音次回タイマオーバーフローまでの時間取得等が出来るようになります
複数搭載に対応しています
v1.02	fm_getcaps修正(SUPPORT_CSM削除)
		fm_getadpcmbuf追加

・fmgenv.dll(v1.02)
fmgen.dllに各チャンネル別にPCMデータを保持している以外は特に変わりありません

-------------------------------------------------------------------------------

・mamefm.dll(v1.01)
MAMEのFM音源(YM2608)でリズムデータ等は除外してあります
SSGタイプのエンベロープ(SSG-EG)や特殊な使い方をしているような音の再現性が上がります
CSMのタイミングをdll側で制御します
複数搭載に対応しています

・mamefmv.dll(v1.01)
mamefm.dllに各チャンネル別にPCMデータを保持している以外は特に変わりありません

-------------------------------------------------------------------------------

・mamefm2.dll(v1.00)
機能はmamefm.dllと同じ
音の出力が中央からの場合は左右に分けて片方の周波数をずらして出力
右もしくは左側からの場合はその方向と中央から周波数をずらしたものを出力します

中央(C)から出力の場合
	L(周波数をずらした音) C(無し) R(実際の音)
右側(R)から出力の場合
	L(無し) C(周波数をずらした音) R(実際の音)
左側(L)から出力の場合
	L(実際の音) C(周波数をずらした音) R(無し)

本体側では特に追加処理を必要とせず内部で勝手に処理します

iniファtイルがある場合そこから設定を読み込む事ができます(.dllを.iniとして作成)
[mamefm2]
; 音量への加算値(-40〜20:-200で無音)
Volume=-4	; デフォルト(無記述)は-4
; 周波数への加算値(あまり大きくすると変になる-10〜10程度)
Detune=7	; デフォルト(無記述)は7

・mamefmv2.dll(v1.00)
mamefm2.dllに各チャンネル別にPCMデータを保持している以外は特に変わりありません

-------------------------------------------------------------------------------

・mamefmp.dll(v1.01)

MAMEのFM音源部とnp2/fmgenの別タイプのPSG部の外部音源DLLです
PSGのボリュームは内部32段階(1.5dBステップ)
ノイズパターン生成はMAMEのAY-3-8910で使われているタイプ
元々のnp2のPSGよりは再現性が上がるかもしれません
v1.01	PSG音量変更不具合修正

・mamefmpv.dll(v1.01)
mamefmp.dllに各チャンネル別にPCMデータを保持している以外は特に変わりありません

-------------------------------------------------------------------------------

・mamefmp2.dll(v1.01)

機能はmamefmp.dllと同じ
音の出力が中央からの場合は左右に分けて片方の周波数をずらして出力
右もしくは左側からの場合はその方向と中央から周波数をずらしたものを出力します

中央(C)から出力の場合
	L(周波数をずらした音) C(無し) R(実際の音)
右側(R)から出力の場合
	L(無し) C(周波数をずらした音) R(実際の音)
左側(L)から出力の場合
	L(実際の音) C(周波数をずらした音) R(無し)

PSGは左側にオリジナル右側に周波数をずらしたものが出力されます

本体側では特に追加処理を必要とせず内部で勝手に処理します

iniファtイルがある場合そこから設定を読み込む事ができます(.dllを.iniにしたもの)
[mamefmp2]
; FM音量への加算値(-40〜20:-200で無音)
VolumeFM=-4	; デフォルト(無記述)は-4
; FM周波数への加算値(あまり大きくすると変になる-10〜10程度)
DetuneFM=7	; デフォルト(無記述)は7

; PSG音量への加算値(-40〜20:-200で無音)
VolumePSG=-4	; デフォルト(無記述)は-4
; PSG周波数への加算値(あまり大きくすると変になる-7〜7程度)
DetunePSG=4	; デフォルト(無記述)は4

・mamefmpv2.dll(v1.01)
mamefmp2.dllに各チャンネル別にPCMデータを保持している以外は特に変わりありません

-------------------------------------------------------------------------------

・genpfm.dll(v1.01)
Genesis Plus GXのFM音源(YM2612)です
SSGタイプのエンベロープ(SSG-EG)を使用しているような音の再現性が上がります
CSMのタイミングをdll側で制御します
エンベロープやCSMのアルゴリズムの再現性が上がっています(メガドラ的に)
YM2612なのでPCM(DAC)の機能があります
YM2203(YM2608)と同じ音が出ない条件があります(メガドラ的だと)
複数搭載には対応していません

-------------------------------------------------------------------------------

・np2fm.dll(v1.04)
本家np2のFM音源(YM2608)です
ハードウェアLFO他対応していない機能があります
クロックは7987200Hz付近が許容範囲
11/22/44KHzでしか合成出来ないので内部で近いレートで合成し出力レートへ変換します
複数搭載には対応していません
v1.04	効果音/CSMモード不具合修正
		fm_getcaps修正(SUPPORT_FM_B追加)

・np2fm+.dll(v1.03)
改造版のnp2のFM音源(YM2608)です
幾つかの修正やハードウェアLFOが追加されています
クロックは7987200Hz付近が許容範囲
11/22/44KHzでしか合成出来ないので内部で近いレートで合成し出力レートへ変換します
複数搭載には対応していません
v1.03	効果音/CSMモード不具合修正
		fm_getcaps修正(SUPPORT_FM_B追加)

-------------------------------------------------------------------------------

簡易表

○	ほぼ対応
△	不完全だか対応
×	未対応に等しい

・fmgen.dll

対象チップ		YM2608(FM6/RHYTHM/ADPCM)
複数搭載		○
クロック設定	○
合成レート設定	○
タイマ			○
プリスケーラ	○
CSM				○(手動タイマ操作fm_updatetimer)
効果音モード	○
SSG-EG			△
ハードウェアLFO	○
備考			リズムデータは外部でファイルを用意

・mamefm(2).dll

対象チップ		YM2608(FM6)
複数搭載		○
クロック設定	○
合成レート設定	○
タイマ			×
プリスケーラ	○
CSM				○(内部で自動)
効果音モード	○
SSG-EG			○
ハードウェアLFO	○

・mamefmp(2).dll

対象チップ		YM2608(FM6+PSG)
複数搭載		○
クロック設定	○
合成レート設定	○
タイマ			×
プリスケーラ	○
CSM				○(内部で自動)
効果音モード	○
SSG-EG			○
ハードウェアLFO	○

・genpfm.dll

対象チップ		YM2612(FM6/DAC)
複数搭載		×
クロック設定	○
合成レート設定	○
タイマ			×
プリスケーラ	×
CSM				○(内部で自動)
効果音モード	○
SSG-EG			○
ハードウェアLFO	○

・np2fm.dll

対象チップ		YM2608(FM6)
複数搭載		×
クロック設定	△(7987200Hzからあまり逸脱しない事)
合成レート設定	○(11/22/44KHzで合成後変換)
タイマ			×
プリスケーラ	×
CSM				×(手動)
効果音モード	×
SSG-EG			×
ハードウェアLFO	×

・np2fm+.dll

対象チップ		YM2608(FM6)
複数搭載		×
クロック設定	△(7987200Hzからあまり逸脱しない事)
合成レート設定	○(11/22/44KHzで合成後変換)
タイマ			×
プリスケーラ	×
CSM				×(手動)
効果音モード	×
SSG-EG			×
ハードウェアLFO	○
