押入れ

ここにおいてあるツール、ソース等のドキュメントの著作権は Yachiyo が持っています。動作は保証されておらず、著作者は著作物、非著作物に関する一切の責任を負いません。

餓死3さんの scci.dll をラッピングするソフトウェアの配布は終了しました。



[このページに置いてあるハードウェア情報、ソフトウェア情報についての権利事項](2020年8月4日作成)(2020年8月5日修正)(2020年8月6日例を追加)
  1. 以降のハードウェア情報に対する制限は Yachiyo の著作物に対し、Yachiyo が著作権を主張できる範囲に対して適用されます
  2. 以降のソフトウェアに対する制限は Yachiyo の著作物に対し、Yachiyo が著作権を主張できる範囲に対して適用されます
  3. このページのハードウェア情報を参照して、個人での使用を目的として参照したハードウェアを作成することは自由に行ってください
  4. 作成したハードウェアを、人物A から別の人物B へ有償無償問わず配布、譲渡する行為はご遠慮ください
  5. このページのハードウェア情報を参照し、参照したハードウェアを改変することは自由に行ってください。(改変点を教えて頂けると Yachiyo が喜びます)ただし、改変したハードウェアはオリジナルのハードウェアに課せられた制限に従ってください
  6. このページのハードウェア情報及びその一部を他のハードウェアの作成のために利用することはご遠慮ください
  7. このページにあるソフトウェア情報、ソース及びその一部は自由に改変して利用してください。公開してもかまいません。(改変点を教えて頂けると Yachiyo が喜びます)ただし有償での行為は一切禁止します
  8. このページにあるソフトウェア情報、ソース及びその一部をこのページにあるハードウェア以外に利用することを一切禁止します


MENU

[ハード・ソフト]

  • YM2610/B+H 〜 YM2610/B サウンドモジュール with FT232H
  • WiFi PLL MOTHER … Re:birth対応 WiFi + PLL マザーボード
  • 電子ボリュームモジュール … WiFi PLL Mother 出力用電子ボリューム
  • アナログボリューム外付けキット
  • 自作電源タップスイッチ(サンワサプライのパソコン連動タップ用)
  • 自作 MSX カートリッジ(SCC)用サウンドモジュール
  • Re:birth DCSG モジュール用 自作 Mute ボード POM for DCSG
  • Re:birth 用 自作 PLL 搭載マザーボード PLL mother(更新終了)
  • Re:birth 用 自作 PLL モジュール(更新終了)
  • その他単発のツール

    [Tips]

  • PLL mother 用に調べた音源チップ用クロックの利用情報


    WiFi PLL MOTHER … Re:birth対応 WiFi + PLL マザーボード

    [外観]

    ハードウェアについて

    [機能]

  • WiFi (802.11b/g/n 2.4GHz) でホストと通信し、最大 4枚の Re:birth モジュールを駆動できるマザーボード
  • Re:birth モジュールには PLL を使って任意のクロックを供給できる
  • OLED を接続し、任意の表示を行うこともできる(対応OLED 秋月電子 http://akizukidenshi.com/ の P-12031)
  • DCSG モジュールは電源投入時・リセット時にミュートする指定ができる

    [必要な環境等]

  • IPv6、IPv4 で通信可能な環境
  • WPS 機能の付いたルーター、もしくはアクセスポイント。WPS 機能がない場合、I2C eeprom に SSID と パスワードを書き込む事ができる環境
  • ボードの設定を行うためのブラウザ(FireFox で動作確認。chrome は動作対象外)
  • 制作した場合、初回ファームウェアを書き込むためのUSB-シリアルインターフェイス

    [主な仕様]

  • PLL によって任意のクロックを生成し、これを Re:birth スロットの SCLK 端子に出力する
  • ホストとボードは基本的にルーターの WPS 機能を使って間接的に接続する。ホストと直接繋ぎたい場合はホストをアクセスポイントとして動作させ、ボード上の I2C eeprom に SSID とパスワードを何らかの方法で書き込んでおく必要がある(後者は win10 では未確認)
  • ボードの設定は、ブラウザでボードにアクセスしブラウザ上で行う。この時は IPv4 HTTP が用いられる
  • ホストとボードのコマンド送受信は IPv6 UDP が用いられる

    [使用上の注意点]

  • ボード上のマイコンは 2.4GHz 無線を使うので、マイコンのアンテナ部分(ボードからはみ出てる部分)に音声入出力のケーブルを近づけることは避けること。音声にノイズが乗る原因となる。ファームウエアアップデート時や YM2608 ADPCM 転送時などに周期的ノイズが見られる場合、これが原因であることが多い。周辺の音声出力ケーブルを一本ずつ抜いて、どの音声入出力にノイズが乗っているか調べると良い。(この問題は体験した)
  • 2.4GHz 無線は USB3.0 と相性が悪いという指摘がある。(検索するとでてくる)ボードは 2.4GHz帯しか使えないので、USB3.0 機器と距離を取ることで対処するのがいいと思われる。(個人的にこれが問題になったことは無い)

    [基本的な使い方]

    (スロットの設定例)
  • AY-3-8910
  • YM2203C
  • YM2608B
  • YM2151
  • YM3812
  • YM2612, YM3438
  • SN76489a
  • SCC
  • 自作 YM2610/B サウンドモジュール
    hoot.exe などで多クロックに対応するときの設定は scci2udpl.ini で行う。記述を見れば大方想像できると思う。

    [ハードウェア情報]

    ボード rev 1.3

    ボード rev 1.2

    [プロトコル仕様]

  • プロトコル仕様ドキュメント

    [ファームウェア]

  • ver 0.9.4a[2020/08/28]
    OLED 焼付き対策のために、OLED を表示しない設定が可能になった。詳しくは [基本的な使い方] の [ボード設定] を参照のこと
  • ver 0.9.4[2020/06/04]
  • ver 0.9.3[2020/05/24]
  • ver 0.9.2[2020/04/24]
  • Arduino core for the ESP32 の変更部分
  • ファームウェア書き込み方法

    ソフトウェアについて

    [動作環境]
    windows10 1909 (x64) で動作確認をしています。win10 1903 以前では不具合が起きる可能性があります。(使っている SDK のバージョンのため)
    以下のソフトウェアは VS2019 で作成されており、32bit バージョンです。利用するためには VS2019 C++ ライブラリ (x86) が必要です。下のリンクからダウンロードしてインストールしてください。
    https://support.microsoft.com/ja-jp/help/2977003/the-latest-supported-visual-c-downloads

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

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

    [ソフトウェア]
    WiFi PLL mother を利用するための DLL (udpl.dll) と、アプリケーションからの scci API コールを udpl API コールに変換して udpl.dll に渡す DLL (scci2udpl.dll) と小物ツール (udpl_tray.exe)
    履歴

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

  • ver 0.9.4.2 [2021/01/21]
    ファームウェア ver 0.9.3 以降が必要。以前からの変更点:演奏テンポが安定するように修正。餓死3さんの scci.dll をロードしないように変更。

    (対応アプリケーション)
    現在は udpl.dll + scci2udpl.dll の環境で scci 対応アプリケーションを利用することになります。udpl.dll ネイティブのアプリケーションは準備中です。
    scci 対応ソフトウェアは、hoot.exe、mucom88win.exe、SPFMplayer.exe で動作確認をしています。
    mmldrv.exe は正常動作しません。(現状対応予定なし)

    [ソースファイル]
    上記 DLL のソースファイル

  • ver 0.9.4.2 [2021/01/21]

    [組立情報]

    トラブルシューティング

  • トラブルシューティングのドキュメント


    電子ボリュームモジュール … WiFi PLL Mother 出力用電子ボリューム

    [外観]

    [機能]
    WiFi PLL Mother のステレオ出力の音量調整をソフトウェアでコントロール可能にする拡張モジュール

    [必要な環境等]

  • WiFi PLL Mother リビジョン 1.3 以降
  • ファームウェア ver 0.9.4 以降
  • udpl.dll ver 0.9.4 以降

    [主な仕様]

  • 電子ボリュームの制御は 3.3V I/O の I2C 通信により行う
  • 本モジュール上で音声信号は +2.5V のバイアスを掛けられて 0V〜5V の信号として処理される
  • 処理された音声信号は、バイアスを掛けたまま出力される

    [使用上の注意点]

  • モジュール上の I2C コネクタに OLED を接続する場合、DIP スイッチは両方とも必ず OFF にすること (写真)
  • モジュール上の I2C コネクタに何も接続しない場合は、DIP スイッチは両方とも必ず ON にすること
  • 取り付け・取り外しは、必ずボードの AC アダプタを抜いて行うこと
  • 本モジュールの音量最大は、アナログボリュームの音量最大よりも若干音が小さくなる(およそ抵抗160Ω分だけ)。気になる場合は Re:birth モジュールの方で調整すること

    [基本的な使い方]

  • 本モジュールが接続されていると、WiFi PLL Mother の 設定 web のボード設定画面で、電源投入時の音量を設定することができる
  • 本モジュールが接続されていると、udpl.dll のタスクトレイアイコンの右クリックメニューから、 出力ボリューム設定画面を開くことができる。これを使うとリアルタイムで音量を変えることができる

    [ハードウェア情報]

  • 回路図
  • 部品表

    [組立情報]

  • 電子ボリュームキットの組み立て方


    アナログボリューム外付けキット

    [外観]

    [機能]
    WiFi PLL Mother のアナログボリュームを取り外し可能にする
    WiFi PLL Mother のボリュームを、従来のアナログと電子ボリュームで付け替えて運用したい時に使用することを想定している。アナログのみ、もしくは電子ボリュームのみで運用したいときには不要

    [使用上の注意点]

  • 取り付け・取り外しは、必ずボードの AC アダプタを抜いて行うこと

    [組立情報]

  • アナログボリューム外付けキットの組み立て方


    自作電源タップスイッチ(サンワサプライのパソコン連動タップ用)

    [機能]
    サンワサプライのパソコン連動タップ TAP-RE34U-2/5 の ON/OFF を PC から制御します。(他の USB連動タップは未確認)

    ハードウェア情報は以下の通り。

  • 回路図
  • 部品表

    [動作環境]
    対象プラットホームは windows。DLLファイルは 32bitバイナリです。
    実行には Visual Studio 2015 の Visual C++ 再頒布可能パッケージ(x86) が必要です。[ダウンロード先]
    MCP2221A のドライバが必要です。[このページの Documents ダブからダウンロード]

    ver 1.0.1.0 [2019/07/18]

  • 実行ファイル
  • ソースファイル

    やってることは Hid デバイスの Mcp2221A を制御して、GPIO 出力を ON/OFF してるだけです。


    自作 MSX カートリッジ(SCC)用サウンドモジュール

    [機能]
    SCC 音源を内蔵した MSX カートリッジを SPFM light + SCCI の環境で使用するための Re:birth 互換サウンドモジュールです。Re:birth プロジェクトさんの RE1-EXT-MSCCX と RE1-BUFAMP201 を参考に作成しており、これらの機能のサブセットを提供します。(多分)

  • カートリッジスロットは一つのみ
  • エクステンションボード相当の機能は無い
  • SPFM light に直接接続することを想定している
  • RE1-EXT-MSCCX を所持しておらず、その動作を把握してないので、本モジュールが同様の動作をしているのかどうかはわからない


    Re:birth DCSG モジュール用 自作 Mute ボード POM for DCSG

    [機能]
    DCSG(SN76489)モジュールは電源投入時にビーと音が鳴ります。これを自動的にミュートする(Power On Mute)ためのボードです。

    [使い方]
    マザーボードと DCSG モジュールの間に接続します。ジャンパを設定します。

    JP1:
    開く=DCSG モジュールは、モジュール上のオシレーターのクロックを使っている
    閉じる=DCSG モジュールは、SCLK のクロックを使っている(ほぼ自作 PLL mother のための設定)

    ボード上の LED は不要です。つけると、ミュート動作が完了したときに光りますが、正直鬱陶しいです。

    このボードのハードウェア情報は以下のとおりです。

  • 回路図
  • 部品表

    PIC のファームウェアは以下です。 [注] project Re:birth さんによるサポートは有りません。
    ver 1.0.1.0 [2018/05/30]

  • PIC18F14K22 用ファームウェア


    Re:birth 用 自作 PLL 搭載マザーボード[更新終了]

    以前作成した PLL モジュールの機能を SPFM light 相当のマザーボードに搭載したものです。FT2232D の機能を使って I2C通信を行い、PLL(Si5351a)のクロックを設定します。
    [注意]このハードウェアは SPFM light で使われている PIC を必要とします。

    このマザーボードのハードウェア情報は以下のとおりです。

  • 回路図
  • 部品表

    ※この回路図は餓死3さんが公開されている SPFM light の回路図をもとに作成されており、SPFM light の回路図に相当する部分については Yachiyo は著作権を持っていません。

    上記のものを使用するには以下のソフトウェアが必要です。

    scci_pllboard.dll

    [機能]
    SCCI のラッパーです。PLL Mother 用に scci.dll の機能を拡張します

    si5351a_module.dll

    [機能]
    si5351a に指定されたクロックを出力するよう設定します。この機能を scci_pllboard.dll に提供します

    ft2232di2c.dll

    [機能]
    FT2232D を使って I2C 通信を行います。この機能を si5351a_module.dll に提供します

    上記3つについて
    [動作環境]
    対象プラットホームは windows。DLLファイルは 32bitバイナリです。
    実行には Visual Studio 2015 の Visual C++ 再頒布可能パッケージ(x86) が必要です。[ダウンロード先]
    FTDI の D2XX ドライバが必要です。[ダウンロード先]

    当人は、餓死3さん配布の SCCI + scci_altschip.dll + scci_pllboard.dll + si5351a_module.dll + ft2232di2c.dll の環境で動作確認を行っています。
    ハードウェアは、SPFM light(及び自作 PLL MOTHER)、SPW が混在している環境での動作確認をしています。(SPW 混在環境はまだ短期間)
    FMの塔混在環境は動作確認をしていませんが、混在してても大丈夫かもしれません。re:birth マザー、SPPCM の混在環境は動作確認をしておらず、対応するためのコードも書いてないので正常動作しない恐れがあります。

    ver 1.1.1.0 [2018/05/12]

  • 実行ファイル
  • ソースファイル

    ftdi_list

    [機能]
    接続している FTDI デバイスを一覧表示します。このツールを使ってデバイス情報を見た時、FT2232D の Location ID が重複している環境では FT2232D モジュールに eeprom を載せてシリアル番号を設定しないと上記のライブラリは正しく動作しません。

  • 実行ファイル
  • ソースファイル

    scci_portlist

    [機能]
    SCCI が認識しているCOMポート順を出力します。
    ライブラリのバージョンアップに伴い、環境によってはこれを使わずに動作させることもできるようになりました。
    以下にあります


    Re:birth 用 自作 PLL モジュール(更新終了)


    re:birth のサウンドモジュールに繋げることによって、サウンドモジュールに自由なクロックを与えることができる PLL モジュールです。
    以下の目的のために作成しました

  • いろいろなクロックでサウンドを鳴らしたいときでも、サウンドモジュールが一つで足ります
  • 珍しいクロックのオシレーターを用意しなくて済みます

    このモジュールのハードウェア構成の情報は以下のとおりです。
    [配線図・表(部品名など入り)] [配線図・表] [配線図・裏] [marmelo で書いた配線データ] →marmelo のサイト

    使用した部品は大体以下のものです
    [秋月の FT232H モジュール] [PCA9547(と変換基板)] [秋月の Si5351a モジュール] [東芝の 3.3V レギュレータ] [TC74HCT244] [3.3V用プルアップ抵抗4.7KΩ] [5V用プルアップ抵抗10KΩ] [適当なコンデンサ]
    ※ 3.3V のクロック信号で十分サウンドモジュールは動いたので、TC74HCT244 はなくても大丈夫そう

    上記のものを使用するには以下のソフトウェアが必要です。

    scci_pllclk.dll

    [機能]
    PLL が接続されたサウンドモジュール用に scci.dll の機能を拡張します

    si5351a_pll.dll

    [機能]
    si5351a と PCA9547 からなる回路に対して、指定された出力ピンから指定されたクロックを出力するよう設定します。この機能を scci_pllclk.dll に提供します

    fti2c.dll

    [機能]
    FT232H を使って I2C 通信を行います。この機能を si5351a_pll.dll に提供します

    上記3つについて
    [動作環境]
    対象プラットホームは windows。DLLファイルは 32bitバイナリです。
    実行には Visual Studio 2015 の Visual C++ 再頒布可能パッケージ(x86) が必要です。[ダウンロード先]
    FTDI の D2XX ドライバが必要です。[ダウンロード先]

    当人は、餓死3さん配布の SCCI + scci_altschip.dll + scci_pllclk.dll + si5351a_pll.dll + fti2c.dll の環境で動作確認を行っています。

    ver 1.0.1.0 [2018/03/15]

  • 実行ファイル
  • ソースファイル

    scci_portlist

    [機能]
    SCCI が認識しているCOMポート順を出力します。
    以下にあります

    更に、YM2203 にこの PLL モジュールを接続して使用するときには、以下のソフトウェアがあると便利かもしれません。

    scci_altschip

    [機能]
    自作YM2610モジュールを使うための SCCI ラッパーですが、YM2203 の不都合な動作を回避する機能もあります。
    以下にあります


    YM2610/B+H 〜 YM2610/B サウンドモジュール with FT232H

    [外観]
    サウンドモジュールは基板2枚で構成され、2枚を重ねて使う。
    2枚重ねる時の基板間隔は 1cm だが、部品面を外側にして重ねるため、専有する幅は広い。実質的に一番外側のスロットに挿して運用することになると思う。

    ハードウェアについて

    [機能]

  • インターフェイスとして Re:birth バスと FT232H による USB2.0 ポートを備えた YM2610/B サウンドモジュール
  • ADPCM データは 6MiBytes/s くらいの速度で転送する

    [必要な環境等]

  • Re:birth インターフェイスを備えたサウンドモジュール制御ボード → WiFi PLL Mother
  • FT232H を接続するための USB2.0 Hi-Speed ポート

    [主な仕様]

  • YM2610/B の演奏には Re:birth インターフェイスを利用する
  • ADPCM データを保持するための 32MiBytes SDR SDRAM を備えている
  • ホストから SDRAM への ADPCM データの転送には FT232H の非同期 FIFO モードを使用する
  • 音源チップのクロックは、オンボードの 8MHz 固定である
  • LED-A は、ADPCM-A のデータを SDRAM に転送している時に点灯する
  • LED-B は、ADPCM-B のデータを SDRAM に転送している時、及び ADPCM-B のデータを YM2610/B チップに出力しているときに点灯する

    [使用上の注意点]

  • 秋月電子通商(http://akizukidenshi.com/catalog/)の FT232H モジュール (K-06503) のジャンパは両方とも必ず外すこと
  • FT232H の eeprom は、下にある FT232H_eeprom_chk を使うなどして適切に設定すること(配布されているものは設定済み)

    [基本的な使い方]

  • 完成したサウンドモジュールを WiFi PLL Mother に挿し、FT232H の USB ケーブルをホストにつなぐ。DC ジャックに 5V ACアダプタ(センタープラス)を接続する。
  • サウンドモジュールに挿している FT232H のシリアルナンバーを、FT232H_eeprom_chk.exeFT_Prog.exe を使って調べる。FT232H_eeprom_chk.exe を使う例FT_Prog.exe を使う例
  • WiFi PLL Mother の設定 web ページで、YM2610/B+H の設定をする。チップ名は、音源チップが YM2610 なら YM2610+H を、音源チップが YM2610B なら YM2610B+H を選ぶ。追加情報には FT232H のシリアルナンバーを入力する。設定の例

    [ハードウェア情報]

    ソフトウェアについて

    [動作環境]
    WiFi PLL Mother が動作する環境が必要です。
    また、必要に応じて FT232H の動作設定をするために FT232H_eeprom_chk、もしくは FTDI の FT_Prog.exe が必要です。(配布されているものは FT232H の動作設定済み)

  • FT232H_eeprom_chk
    YM2610+H モジュール用に FT232H の eeprom を書き換えます。FTDI 配布の FT_PROG の代用品です

    ver1.0.0.0 [2018/02/07]

    [組立情報]

    トラブルシューティング


    以下単発のツール

    sccirst

    [機能]
    scci.dll を使って re:birth にリセットをかけるだけのツール。
    Windows の起動時に実行して、DCSG のブー音を消すために使うのを想定している。

    [動作環境]
    対象プラットホームは windows。実行ファイルは 32bitバイナリです。
    実行には Visual Studio 2015 の Visual C++ 再頒布可能パッケージ(x86) が必要。[ダウンロード先]

  • 実行ファイル
  • ソースファイル

    wavesel

    [機能]
    指定された名前の wave デバイスを探して、hoot がそのデバイスを使って出力するように hoot.ini を書き換えるツール。
    プライマリデバイス以外で出力したい、かつ、なんらかの理由でデバイス番号が度々変わってしまう環境向け。

    [動作環境]
    対象プラットホームは windows。実行ファイルは 32bitバイナリです。
    実行には Visual Studio 2015 の Visual C++ 再頒布可能パッケージ(x86) が必要。[ダウンロード先]

  • 実行ファイル
  • ソースファイル


    PLL mother 用に調べた音源チップ用クロックの利用情報

    hoot.exe で PLL mother を使用することを念頭に、各種ゲームタイトルで使用する音源チップ用クロックの情報を以下に示します。
    これは、音源チップがどういうクロックで用いられることが多いのか、ざっくり傾向を探ることを目的として調べた結果です。

    [注意]

  • この情報は MAME 0.183 を元に調べていますが、情報の正確さは保証しません。
  • (今更だけどポイントとなる知識1) AY-3-8910 のクロック = YM2149(SELジャンパON) のクロック の 1/2 = SSG として使う場合の YM2203 のクロックの 1/2
  • (今更だけどポイントとなる知識2) YM2203 のクロック = YM2608B のクロックの 1/2

    [大まかな傾向]

  • アーケードで YM2151 を使うものは、3579545Hz で動かすものが多い
  • 例外として、SEGA は YM2151 を 4MHz で動かすものが多い
  • YM2203、AY-3-8910、SN76489 のクロックはいろいろある
  • YM2203 で 1MHz 台のクロックのものはプリスケーラをいじってるものが多いっぽい

    ハード・ゲームタイトル 音源チップ クロック
    FM7 AY-3-8910 1228800
    YM2203 1228800
    スペースハリアー YM2203 4000000
    ダークシール YM2203 4027500
    YM2151 3580000
    戦場の狼 YM2203 1500000
    アレスの翼
    魔界村
    闘いの挽歌
    豪血寺一族 YM2203 1500000
    豪血寺一族2 YM2203 4000000
    超時空世紀オーガス2 YM2203 1500000
    1942 AY-3-8910 1500000
    ブラックドラゴン YM2203 3579545
    ひげまる AY-3-8910 1500000
    ラストデュエル YM2203 3579545
    ラッシュ&クラッシュ YM2203 4000000
    サイドアームス YM2203 4000000
    ソンソン AY-3-8910 1500000
    虎への道 YM2203 3579545
    バーガータイム AY-3-8910 1500000
    コブラコマンドー YM2203 1500000
    ぶたさん YM2203 1500000
    ももこ120% YM2203 1250000
    AIR BUSTER YM2203 3000000
    コンバットスクール YM2203 3000000
    ダブルドリブル YM2203 3579545
    フロッガー AY-3-8910 1789750
    大列車強盗 YM2203 3072000
    ラビリンスランナー YM2203 3000000
    ダライアス YM2203 4000000
    スターフォース SN76496 2000000
    コラムス(SEGA) YM3438 7670454
    SN76496 3579545
    system1(SEGA) SN76489A 2000000
    system18(SEGA) YM3438 8000000
    system32(SEGA) YM3438 8000000
    イーアルカンフー SN76489A 1536000
    ファイナライザー SN76489A 1536000
    exedexes SN76489 3000000
    テラクレスタ(海外版) YM3526 4000000
    クレイジークライマー2 YM3812 4000000
    バブルボブル YM3526 3000000
    YM3526 4000000
    アテナ
    達人 YM3812 3500000
    究極タイガー
    チェルノブ YM3526 3000000
    サイコニクスオスカー YM3526 3000000
    テーカンワールドカップ AY-3-8910 1536000
    ボンジャック AY-3-8910 1500000
    へべれけのぽぷーん YM3438 8000000
    達人王 YM2151 3375000


    (C) Yachiyo. https://nekokohouse.sakura.ne.jp/