L'atelier Nano Drive 7 VGM Player
Hello,
J'ai voulu me procurer un NanoDrive 7 de Fujix, un lecteur VGM qui utilise de vraies puces FM Yamaha au lieu de l'émulation. Malheureusement les trois versions du kit sont en rupture de stock sur sa boutique depuis un moment.
Plutôt que d'attendre, je me suis lancé dans l'aventure : reconstruire la carte sous KiCad à partir du schéma et du manuel qu'il a publiés sur son GitHub, plus des photos de la carte. Beaucoup de nuits sur le routage, pas mal d'allers-retours, et quelques belles galères dont un reset toutes les 23 secondes qui venait en fait de mon câble USB à afficheur, pas de la carte.
J'ai fait fabriquer un premier jeu de PCB… et ça fonctionne. Écran, lecture depuis la SD, et de la musique qui sort des vraies puces.
Tout le mérite de la conception revient à Fujix, schéma, firmware et manuel sont sur son GitHub (https://github.com/Fujix1/NanoDrive7) et sa page BOOTH (https://e2j.booth.pm/)
Si le sujet intéresse du monde ici, je veux bien détailler la démarche : la reconstruction du schéma, le routage, l'approvisionnement des puces Yamaha (et les pièges, j'ai eu droit à des YM2413 AliExpress remarqués). Edité par Opooly Le 05/09/2026 à 08h31
J'ai voulu me procurer un NanoDrive 7 de Fujix, un lecteur VGM qui utilise de vraies puces FM Yamaha au lieu de l'émulation. Malheureusement les trois versions du kit sont en rupture de stock sur sa boutique depuis un moment.
Plutôt que d'attendre, je me suis lancé dans l'aventure : reconstruire la carte sous KiCad à partir du schéma et du manuel qu'il a publiés sur son GitHub, plus des photos de la carte. Beaucoup de nuits sur le routage, pas mal d'allers-retours, et quelques belles galères dont un reset toutes les 23 secondes qui venait en fait de mon câble USB à afficheur, pas de la carte.
J'ai fait fabriquer un premier jeu de PCB… et ça fonctionne. Écran, lecture depuis la SD, et de la musique qui sort des vraies puces.
Tout le mérite de la conception revient à Fujix, schéma, firmware et manuel sont sur son GitHub (https://github.com/Fujix1/NanoDrive7) et sa page BOOTH (https://e2j.booth.pm/)
Si le sujet intéresse du monde ici, je veux bien détailler la démarche : la reconstruction du schéma, le routage, l'approvisionnement des puces Yamaha (et les pièges, j'ai eu droit à des YM2413 AliExpress remarqués). Edité par Opooly Le 05/09/2026 à 08h31
Salut
tu as une photo de ton montage?
Merci
tu as une photo de ton montage?
Merci
Mon Github ->[/b] github.com/msxlegend
challenge 2013 -> neodream MSX 2013
Concepteur du -> KCX Bluetooth transmitter
Demo Terminator2 T2.zip
Sympa ce petit hardware autonome Japonais et bravo à toi de l'avoir construit, du coup je me sens moins seul a écouter des chiptunes avec les vraies puces en externe et mes modules RE:Birth
donc la on a :
une puce YM2413 OPLL (FMPAC MSX/Master system)
une puce YMF262 OPL3 (Sound Blaster) qui permet de jouer aussi l'OPL2 et l'OPL (Music Module mais sans les samples)
deux puces YM2203 OPN (NEC PC88 et jeux d'arcade comme psychic five que j'adoooore) qui permet aussi de jouer le PSG/SSG
la même configuration sur MSX nécessite une FMPAC (ou MSX2+), une Moonsound, un Yamaha SFK/SFG (ou une Makoto ou une Neotron) et une table de mixage + en option un VSIF si on veut l'affichage des jacquettes
Petit regret, seul le format VGM est supporté alors qu'il existe des centaines de ziques au format MGS ou KSS par exemple, mais ça reste quand même un module intéressant a un prix "abordable" (130 euros en kit)
donc la on a :
une puce YM2413 OPLL (FMPAC MSX/Master system)
une puce YMF262 OPL3 (Sound Blaster) qui permet de jouer aussi l'OPL2 et l'OPL (Music Module mais sans les samples)
deux puces YM2203 OPN (NEC PC88 et jeux d'arcade comme psychic five que j'adoooore) qui permet aussi de jouer le PSG/SSG
la même configuration sur MSX nécessite une FMPAC (ou MSX2+), une Moonsound, un Yamaha SFK/SFG (ou une Makoto ou une Neotron) et une table de mixage + en option un VSIF si on veut l'affichage des jacquettes
Petit regret, seul le format VGM est supporté alors qu'il existe des centaines de ziques au format MGS ou KSS par exemple, mais ça reste quand même un module intéressant a un prix "abordable" (130 euros en kit)
site en Français sur la musique MSX
Merci ! Content que ça parle à quelqu'un qui écoute déjà sur puces réelles.
Sur le MGS/KSS, ce n'est peut-être pas un mur. La différence avec le VGM, c'est qu'il faut un Z80 pour exécuter le driver or libkss (Okazaki) embarque justement un Z80 émulé + MGSDRV, MuSICA, KINROU5, MPK, MoonBlaster… Sur un ESP32-S3 à 240 MHz, faire tourner un Z80 à 3,58 MHz et rediriger les écritures de registres vers les vraies puces au lieu des émulateurs, c'est jouable.
Le MGS serait le cas facile : PSG + FM-PAC, donc le SSG du YM2203 + le YM2413 couvrent tout.
Le KSS, moins : beaucoup de rips Konami veulent du SCC, que le module n'a pas.
Le firmware est en Apache 2.0, donc à creuser.
Sur le MGS/KSS, ce n'est peut-être pas un mur. La différence avec le VGM, c'est qu'il faut un Z80 pour exécuter le driver or libkss (Okazaki) embarque justement un Z80 émulé + MGSDRV, MuSICA, KINROU5, MPK, MoonBlaster… Sur un ESP32-S3 à 240 MHz, faire tourner un Z80 à 3,58 MHz et rediriger les écritures de registres vers les vraies puces au lieu des émulateurs, c'est jouable.
Le MGS serait le cas facile : PSG + FM-PAC, donc le SSG du YM2203 + le YM2413 couvrent tout.
Le KSS, moins : beaucoup de rips Konami veulent du SCC, que le module n'a pas.
Le firmware est en Apache 2.0, donc à creuser.
Bon on oublie le KSS et même le MGS car effectivement il y a souvent la SCC
mais du coup j'ai pensé au format moonblaster MBM qui serait parfait car associe les 2 puces OPLL+Y8950
bon on perd les samples bien sur
j'ai converti un morceau avec KSS2VGM.exe qui prend en charge les MBM (entre autre)
https://github.com/digital-sound-antiques/kss2vgm
puis j'ai modifié le VGM obtenu en remplaçant toutes les occurrences "5C" par "5B" pour faire jouer l'OPL à la place du Y8950 et ajouté le clock de l'OPL dans l’entête
Le résultat est nickel mais a tester sur ton module quand tu aura les bonnes puces
SFIGHT1.zip
mais du coup j'ai pensé au format moonblaster MBM qui serait parfait car associe les 2 puces OPLL+Y8950
bon on perd les samples bien sur
j'ai converti un morceau avec KSS2VGM.exe qui prend en charge les MBM (entre autre)
https://github.com/digital-sound-antiques/kss2vgm
puis j'ai modifié le VGM obtenu en remplaçant toutes les occurrences "5C" par "5B" pour faire jouer l'OPL à la place du Y8950 et ajouté le clock de l'OPL dans l’entête
Le résultat est nickel mais a tester sur ton module quand tu aura les bonnes puces

SFIGHT1.zip
site en Français sur la musique MSX
Excellente idée le MBM et j'ai une bonne nouvelle sur le NanoDrive 7 tes
deux manipulations ne sont pas nécessaires. J'ai regardé le firmware de
Fujix, il gère déjà le Y8950 nativement.
Dans le flux de données, la commande `0x5C` (Y8950) tombe exactement sur le
même traitement que `0x5A`, `0x5B` et `0x5E` : tout part sur le port 0 de
l'OPL3. Ta substitution `5C` → `5B` ne change donc rien pour lui.
Et dans l'en-tête, le champ « horloge Y8950 » (offset `0x58`) est lu et
appliqué au YMF262 avec la conversion qui va bien : 3,579545 MHz sur le
Y8950 devient **14,318 MHz** sur l'OPL3, soit exactement le facteur 4 qu'il
faut pour retrouver les bonnes hauteurs. Fujix y a pensé.
Autrement dit, la sortie brute de `kss2vgm` devrait se jouer telle quelle :
OPLL sur le support YM2413, partie FM du Y8950 sur l'OPL3, les deux en même
temps. C'est précisément ce que tu cherchais.
Des que j'ai la puce je test!
Edité par Opooly Le 07/09/2026 à 21h08
deux manipulations ne sont pas nécessaires. J'ai regardé le firmware de
Fujix, il gère déjà le Y8950 nativement.
Dans le flux de données, la commande `0x5C` (Y8950) tombe exactement sur le
même traitement que `0x5A`, `0x5B` et `0x5E` : tout part sur le port 0 de
l'OPL3. Ta substitution `5C` → `5B` ne change donc rien pour lui.
Et dans l'en-tête, le champ « horloge Y8950 » (offset `0x58`) est lu et
appliqué au YMF262 avec la conversion qui va bien : 3,579545 MHz sur le
Y8950 devient **14,318 MHz** sur l'OPL3, soit exactement le facteur 4 qu'il
faut pour retrouver les bonnes hauteurs. Fujix y a pensé.
Autrement dit, la sortie brute de `kss2vgm` devrait se jouer telle quelle :
OPLL sur le support YM2413, partie FM du Y8950 sur l'OPL3, les deux en même
temps. C'est précisément ce que tu cherchais.
Des que j'ai la puce je test!
Edité par Opooly Le 07/09/2026 à 21h08
Et pour la petite histoire : j'ai aussi remplacé le YM2413 par un YM2420, la variante d'OPLL qu'on trouve dans les Yamaha PSS-140. J'ai un peu galéré à trouver les infos tout ce qui existe tient en une phrase vague (« le F-Number est à l'envers »), et c'est en fait faux : c'est le champ BLOCK qui quitte $20-$28 pour passer dans $10-$18. Une fois compris, ça joue parfaitement. J'ai publié la table de registres et le code de conversion pour que ça ne se reperde pas : https://github.com/opooly14/ym2420-register-map
Edité par
Opooly
Le 07/09/2026 à 22h02
Ah les Portasound Yamaha avec toutes leurs variantes de puces...
excellent ta modif, j'allais te suggérer de le signaler à Fujix1 mais j'ai vu que tu l'as fait
excellent ta modif, j'allais te suggérer de le signaler à Fujix1 mais j'ai vu que tu l'as fait

site en Français sur la musique MSX
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie


