RISC-V マイコン Longan Nano (GD32V) を使って VGM ファイルを再生します。SD カード内のフォルダに保存した vgm 拡張子のファイルを順番に再生します。
。初期版は可能な限り表面実装部品を使うものでしたが、より誰でも気軽に製作できるようにスルーホール部品版も制作しました。
YM2203 を 2 発搭載しているので、オールドカプコン、タイトーなどのアーケードゲーム、PC-8801 や PC-9801 の PC ゲームのほか、AY-3-8910 PSG 単体(MSX など)にも対応します。
I2C デジタルボリュームを搭載しているので、フェードアウトや音量のノーマライゼーションができます。
This is a vgm player working with a Longan Nano RISC-V microcomputer. This version supports dual YM2203 OPN chips which is capable to play old Campcom arcades (1943, GnG, Commando etc.), MSX, PC-8801 and PC-9801 musics. VGM data is stored in a SD card.
DIP Version (release 1.21)
Visual Studio Code + PlatformIO IDE を使用します。具体的な使用法については以下を参照してください。
Use Visual Studio Code and Platform IO IDE.
- https://beta-notes.way-nifty.com/blog/2019/12/post-b8455c.html
- http://kyoro205.blog.fc2.com/blog-entry-666.html
https://github.com/Fujix1/NanoDrive-Dual-OPN_PCB
【注】音量の増幅率を決める R6 と R7 が音量小さめの 20kΩ になっていますが、通常は 15kΩ にしてください。
** Note: R6 and R7 are 20kohm but it was originally to avoid clipping in some arcade titles. Use 15k ohm usually.**
番号 | 部品 | 個数 | 説明 | 秋月電子通販コード例 |
---|---|---|---|---|
C1, C2, C4, C5, C12, C13, C19 | 0.1uF | 7 | パスコン。5mmピッチ | P-10147 |
C8-C11, C15-C18 | 10uF | 8 | 電解コンデンサ。2.5mmピッチ | P-15828, P-04624 など |
C3 | 100uF | 1 | 電源用。2.5mmピッチ | P-02724 |
C6 | 10uF | 1 | 電源用。2mmピッチ | P-17897 |
C7 | 1000uF | 1 | 電源用。OS-CON 1000uF 6.4V | P-08293 |
C14 | 1000pF | 1 | ローパス用 | P-14587 |
D1 | LED | 1 | 5mm LED 3Vくらい。好きな色で | |
R2, R3, R14, R16-R22 | 1K | 10 | 抵抗。よくある6.3mmのもの | R-25102, R-16876 |
R8 - R9 | 10K | 2 | R6とR7は基板上に20Kとありますが、15Kを使ってください | R-25103, R-16877 |
R6 - R7 | 15K | 2 | R6とR7は基板上に20Kとありますが、15Kを使ってください | 同梱 |
R4, R5 | 20K | 2 | 抵抗。 | 同梱 |
R1, R11 | 2K | 2 | 抵抗。 | 同梱 |
R12 | 330 | 1 | 抵抗。 | 同梱 |
R13 | 620 | 1 | 抵抗。 | 同梱 |
R15 | 3.3K | 1 | 抵抗。 | 同梱 |
J1 | MJ-8435 | 1 | 3.5mmステレオミニジャック | C-09060 |
FM1, FM2 | YM2203C | 2 | FM音源IC | 別売り |
DAC1, DAC2 | YM3014(B) | 2 | DAC IC | 別売り |
RV1, RV2 | ボリューム 10kΩA | 2 | 音量用ボリューム。 ALPS ALPINE製 RK09D117000C | 同梱 P-14773 |
ボリュームつまみ | 2 | 軸6mm。D型シャフトかイモネジ固定タイプ。直径19mm 程度まで | P-16279, P-12202, P-00999 | |
SW1~SW5 | タクトスイッチ | 5 | 4本足タクトスイッチ。中華製はボタンが固い。軽い操作感なら日本メーカー製 | 別売り |
U1 | LonganNano マイコン GD32VF103CBT6 | 1 | Flash128KB/SRAM 32KB版 【注意】マイコン付属属のピンヘッダは太くてソケットに入りません。細いピンヘッダを使ってください | K-14678 |
丸ピンIC用連結ソケット40P | 1 | マイコン用ピンヘッダ | P-01382 | |
丸ピンIC用 ソケット 1x40 | 1 | マイコン用ソケット | P-01591 | |
U2 | 4回路オペアンプ | 1 | 速めのオペアンプならOK。LMC6484AIN, TLC274BCN, LME49740NA, NJM2747D など。 | I-03685, I-09117 など |
U3 | AE-Si5351A | 1 | I2Cクロック生成モジュール | K-10679 |
U5 | 2回路オペアンプ NJM3414 | 1 | ミキシング用オペアンプ。3414以外でもOK。NJM4580DD、NJM2732Dなどで動作確認済み。 | 同梱 |
U6 | PT2257 デジタルボリューム | 1 | I2C制御のデジタルボリューム | 同梱 |
ICソケット8P | 5 | P-00035 | ||
ICソケット14P | 1 | P-00028 | ||
ICソケット40P | 2 | P-00034 |
SD カードにディレクトリを作って、その中に VGM フォーマットファイルを保存します。ファイルには「.vgm」の拡張子が必要です。ZIP 圧縮された VGM ファイルである「*.vgz」は認識しません。解凍して .vgm の拡張子をつけてください。不要なファイル、空のディレクトリは削除してください。
YM2203 はアーケードとパソコンでは音量レベルが全然異なるため、このプログラムではフォルダ単位で音量低減率を指定できます。
各フォルダに「att4」「att6」「att8」「att10」「att12」「att14」という名前の空ファイルを配置すると、それぞれ 4 ~ 14dB 音量を低減できます。例えば、PC-8801 版「YsII」とアーケード版「戦場の狼」を同じくらいの音量にしたいなら、戦場の狼のフォルダを att8 ~ att10 くらいにすればいい感じになります。
SD カードにデータ読み込みをするときにブツブツとノイズが出ることがあります。これはアクセス時に大きく電圧降下が起こるのが原因で、SD カードの種類によってノイズが目立つものと目立たないものがあります。いろいろ試してノイズの少ないものを使うのがおすすめです。
PC から USB で電源供給を行い、さらに音声を PC に入力すると大きなグランドのループができて、ノイズが増幅されることがあります。電源は可能な限りクリーンなもの(モバイルバッテリーなど)を使ってください。
- 一部の vgm ファイルで音が間延びする。
DIP Version (黒基板)
DIP Version (白基板)
https://github.com/SeeedDocument/GD32VF103/blob/master/res/GD32_MCU_Dfu_Tool_V3.8.1.5784_1.rar