WiFi PLL Mother 用 windows ソフトウェア


●対応環境

windows10 1909 (x64) で動作確認をしています。
配布ファイルは VS2019 で作成されています。32bit バイナリです。
実行するには VS2019 用 C++ ライブラリ(x86)が必要です。以下からダウンロードしてインストールしてください
https://support.microsoft.com/ja-jp/help/2977003/the-latest-supported-visual-c-downloads

また、ビルド時に windows10 1903 用SDK を使っているので、このバージョン以前の OS では不具合を
生じる可能性があります。


●アーカイブ内容

[bin/] ライブラリ

・udpl.dll
  wifi pll mother を制御するための DLL
  同じディレクトリに tap_switch.dll があると、アプリケーションの起動時にタップの電源を ON にし、終了時に OFF にする

・scci2udpl.dll
  scci 対応アプリケーションで udpl.dll を使うためのラッパー。scci.dll にリネームもしくはリンクを張って利用する

  scci2udpl.dll は scci インターフェイスを提供しますが、質問等がある場合には Yachiyo までお願いします

・scci2udpl.ini
  udpl.dll で管理されている指定の種類の chip を、指定されるクロックを持つ複数の chip に見せかけるための設定ファイル
  scci2udpl.dll と一緒に使う。リネームはしないこと

・udpl_tray.exe
  udpl.dll をロードし、タスクトレイアイコンを表示するだけのツール。タスクトレイアイコンから web 設定ページを
  開くために使うと便利かもしれない
  詳しくは、下記の「タスクトレイアイコンについて」を参照のこと


[sample/]
  udpl.dll を使うサンプルアプリとそのソース


●udpl.dll, scci2udpl.dll について

現在対応している Re:birth モジュール、音源チップは以下の通り

- AY-3-8910
- YM2203C
- YM2608B
- YM2151
- YM3812
- YM2612
- YM3438
- SN76489a
- 自作 MSX カートリッジ（SCC）用サウンドモジュール + SCC
- 自作 YM2610/B サウンドモジュール
- YM2413 （動作確認 Thanks to UME3 さん）
- YMF262 （動作確認 Thanks to UME3 さん）
- Y8950 （Thanks to UME3 さん）
- RE1-EXT-MSCCX + SCC/SCC+ （動作確認 Thanks to UME3 さん）

動作確認していないが、おそらく動作すると思っている、あるいは対応するコードは実装してある Re:birth モジュール、音源チップは以下の通り

- YM3526
- YM2149

scci 対応ソフトウェアは、hoot.exe、mucom88win.exe、SPFMplayer.exe で動作確認済み
mmldrv.exe は正常動作しない（現状対応予定なし）


●scci2udpl.dll + hoot.exe の組み合わせについて

scci2udpl.dll の動作を考慮した場合、hoot.ini の scci 設定は以下の値が良い

scci_clock_margin_type=0
scci_clock_margin=0

その上で、演奏したいタイトルが使用する音源チップとクロックを調べ、scci2udpl.ini に追記する


●scci2udpl_manymany.ini について

"scci2udpl_manymany.ini" は、必要になりそうなクロック設定をたくさん盛り込んだ設定ファイル。
UME3 さんに作成していただきました。（Yachiyo が若干追記）UME3 さん、ありがとうございます！

scci2udpl.ini にリネームして使用するといろいろな場面で役立つだろう。しかし、クロックの列挙数が
多いほど初期化に時間がかかるようになるのでその点を注意すること。
必要に応じて内容を削除、追記するなどして、自分好みの設定を作ると良いかもしれない。


●タスクトレイアイコンについて

udpl.dll がロードされているとき、タスクトレイに WiFi PLL Mother の数だけアイコンが表示される。
ボードが通信状態にあるとき、アイコンが赤く点滅して状態を示す。
また、右クリックするとメニューが3つ現れる。

- ボード情報表示
  ボードの各種情報が表示される
  
  アプリケーションにインターフェイスを提供している chip には SLOT の前に「o」、そうでない chip には「-」が表示される
    [注] scci2udpl.dll を経由して使用する場合には scci2udpl.dll の仕様によりすべての chip が提供されるのであまり役に立たない
  
  現在アプリケーションが演奏コマンドを実際に送信している chip は赤色で表示される
    [注] ダイアログを開いてから1秒ほど、ダイアログを開く前の演奏状況が反映されるのは仕様

- 遅延設定
  コマンドがボードに送信される遅延時間を設定できる。これは udpl.dll が実行されている間のみ有効で、
  ソフトウェアが再実行される時には初期値に戻っている。恒久的に設定を変えたい時はボード側で変更する必要がある。

- 出力ボリューム設定
  電子ボリュームが接続されている場合、ボリュームを設定できるウインドウが表示される。接続してない場合は
  このメニューは選択できない。
  ここで設定した値はボードが起動している間保持される。ボードの電源再投入やリセットによって初期値に戻る。

- ボード設定ページを開く
  ボードの web 設定ページを開く。firefox が規定のディレクトリにインストールされている場合は firefox で開く
  firefox をインストールしておくことを強く推奨する。chrome では正常動作しないことを確認している

  演奏中にボード設定ページを開くことは、ソフトウェアの動作を妨げるので推奨されない。動作停止することもある


  [注]ボードがホストからのコマンドに応答しない設定になっている場合、そのボードはタスクトレイに表示されない


●udpl_config.toml について

udpl.dll と同じディレクトリに udpl_config.toml というファイル（文字コードは必ず UTF-8 とする）を置くと
udpl.dll の動作設定を行うことができる。ファイルの存在は任意である。
文法は TOML に従うこと https://github.com/toml-lang/toml

現在設定できる項目は以下の通り。

 (1) 接続するボードを ipv6 アドレスにより制限する

  - キーワード [target_address]  で接続を制限する記述を始める
  - ipv6 = [ 〜〜 ] の記述により、ipv6 アドレスを指定する。〜〜の部分は、カンマで区切って複数の ipv6 アドレスを記述できる。
    それぞれの ipv6 アドレスは、"" によって囲む。

  udpl.dll は、ここで指定した ipv6 アドレスを持つボードにのみ接続を試みる。記述がない場合は制限なく接続を行う。


とりあえずサンプル udpl_config_sample.toml を参考に作成して欲しい



[注意事項]
著作権は yachiyo が持っています。ソースは自由に使って下さい。
動作は保証されておらず、著作者は本ライブラリ、ソースコードに関する一切の責任を負いません。

Yachiyo http://nekokohouse.sakura.ne.jp/