Overblog
Editer l'article Suivre ce blog Administration + Créer mon blog
upsilandre retrogaming

LE PIXEL ART AUDIO SUR FAMICOM DISK SYSTEM

 

 

 

 

 

 

Le canal audio du FDS, Késako?

Tout le monde ne le sait pas mais le Famicom Disk System (FDS) sur lequel est né Zelda, Castlevania, Kid Icarus ou Metroid (rien que ça), ajoutait aussi un canal audio supplémentaire à la Famicom.

Juste un seul, c’est pas grand chose quand on sait qu’il y en a déjà 5 dans la console mais ce canal supplémentaire apporté par le FDS n’est pas un simple générateur d’onde aux formes basiques et prédéfinies tel les canaux PSG qui équipent déjà la Famicom/NES ainsi que toutes les machines 8bit (et plus). Ces générateurs PSG balancent des ondes aux formes faciles à synthétiser et générer numériquement tel les pulse, square, triangle, noise, sawtooth (cette dernière forme n’existe pas nativement dans la Famicom/NES, on y reviendra plus loin).

 

Les différentes formes d'onde que propose les canaux PSG classiques

 

Ce canal supplémentaire n'est donc pas un simple canal PSG mais reste tout de même un générateur d’onde donc très proche du fonctionnement d’un canal PSG à la différence assez majeure que l’on peut soi même définir la forme d’onde (waveform) dans une table d’onde (wavetable) et s'affranchir de ces 3 ou 4 formes prédéfinies qu'on trouve partout a l'époque.

C’est ce qu’on appelle un canal WSG (wavetable sound generator), quelque chose d'intermédiaire entre le PSG et le sampling. Et ce qui est fascinant dans cette étape intermédiaire de l’histoire de la chiptune c’est d'être probablement la seule époque ou on dessinait les sons à la main. Une période assez courte et marginale où l’on faisait littéralement du pixel art audio!

Ce type de canaux WSG on en trouve donc un dans le FDS mais aussi un dans la Gameboy (il remplace le canal triangle PSG de la NES. Sa wavetable est d'ailleurs calibrée en résolution pour pouvoir parfaitement émuler le triangle de la NES si nécessaire). Mais c’est surtout le cœur du son de la PC-Engine (6 canaux WSG) qui reste sans doute l’exemple populaire le plus représentatif de ce type de son. 

Konami en a utilisé aussi dans ses cartouches SCC pour MSX (tel Contra, Metal Gear 2, Salamander, Parodius...). Mais l'entreprise qui l’a utilisé très tôt de façon massive et qui l’a vraiment incarné dans le jeu vidéo c'est Namco en arcade. Une majorité des jeux d'arcade Namco des années 80' embarquait un chip WSG en commençant par Pac-Man (le premier jeu à utiliser du son WSG?) et Rally-X en 1980, puis les Xevious, Pole Position, Tower of Druaga, Dragon Buster, Rolling Thunder, Dragon Spirit, Youkai Douchuuki et plein d'autres.

C'est pour cette raison aussi que l'on retrouve ce type de canaux dans certaines cartouches Famicom de Namco. Des canaux WSG intégrés dans leur mapper N163 qui reproduit assez bien leur chip utilisé en arcade. On le retrouve notamment dans les jeux Famicom Rolling Thunder et Youkai Douchuuki pour ne citer qu’eux (il y a une vingtaine de jeux Famicom qui utilisent ce mapper et ses canaux WSG) et ainsi être plus proche de leur version arcade. 

On peut voir le travail de Junko Ozawa chez Namco dans ce superbe documentaire que j'avais découvert grace au blog de Bilou ^^ :

 

 

Et notamment découvrir son cahier de travail dans lequel elle inventait et dessinait ses patterns audio (waveform) dans ce petit extrait de 22 secondes:

 

 

Ici les 8 patterns créées par Junko Ozawa et utilisées dans Tower of Druaga (1984), grand classique de l’arcade japonais. C'est fascinant d'avoir cette archive papier sous les yeux:

 

Certaines patterns qu'on voit ici servent juste à émuler un square PSG (la première) ou une sinusoïde qu'on pourrait trouver sur un canal FM (la 7ème) et d'autres sont plus complexes, plus personnelles, et spécifiques au son WSG.

 

 

 

 

 

 

Quelques subtilités techniques à comprendre...

Il est intéressant de noter qu’on peut vraiment faire une analogie avec le pixel art car les canaux WSG ont en quelque sorte une “résolution”, celle de la wavetable. Par exemple le canal du FDS c’est du 64x64 (une table de 64 valeurs 6bit) donc le pixel art audio du FDS se trace dans une pattern de 64x64 pixels ce qui est plutôt une belle résolution de pattern pour un canal WSG. Pour comparaison sur Gameboy c’est du 32x16 et 32x32 sur PC-Engine (mais sur 6 canaux). Sur les patterns de Tower of Druaga que j’ai mis plus haut on constate une résolution de 32x16 (mais sur les sound chip Namco il y a une certaine flexibilité en général. On peut réduire les canaux pour augmenter la résolution).

 

Il se trouve que le brevet qui a été déposé pour le canal WSG du Famicom Disk System le 5 Août 1985 est parfaitement identifié et accessible. Vous pouvez le consulter ici:
US patent 4783812A

On peut observer la RAM 64x6bit (64x64) qui sert donc de wavetable et qui correspond au bloc 56 sur le schéma. J’imagine que ce brevet a dû être une aide appréciable pour ajuster au mieux l’émulation de l’audio du FDS.

 

Image full resolution: FDS_WSG_channel_USPatent.png

 

 

Mais il y a un dernier point technique sur lequel j’aimerais porter un éclaircissement. Le son WSG ce n’est pas du sampling même si ça peut y faire penser. La pattern qu’on trace ici dans la wavetable couvre un instant extrêmement court et représente une seule période de l’onde acoustique, une seule "wave", qui va ensuite se répéter des centaines ou milliers de fois à l'identique de façon donc très synthétique comme le fait un générateur d'onde de type PSG.

Sur les patterns WSG on est à l'échelle de la milliseconde. A contrario quand on produit un sample (par exemple sur SNES), on décrit la forme entière de l’onde acoustique sur toute sa longueur/durée, pas juste sur une seule période/wave mais bien sur des centaines de période/wave (ou des milliers) avec donc toutes les subtiles variations qui accompagne le déroulé du sample dans le temps. Avec le sampling on est cette fois à l'échelle de la seconde ou au moins du dixième de seconde soit a minima un facteur x100 par rapport à une pattern WSG. 

C’est une différence assez fondamentale car dans le cas du sample on est sur quelque chose de massif en terme de data. Il n'est donc pas pensable de dessiner un sample à la main. La raison d'être du sampling c’est de produire les samples en enregistrant et numérisant de vrais sons afin de produire cette quantité et richesse de data sonore que permet un sample. A l’inverse du WSG qui en étant confiné à l’échelle microscopique d'une seule wave permet effectivement de tracer la pattern/waveform a la main de façon empirique en tâtonnant tel un artisan du son mais implique aussi qu’on est toujours face a un générateur de son très synthétique qui va juste répéter la même forme d’onde des centaines de fois comme un canal PSG. Ce sont donc des approches très différentes. C’est pour ça que je me permet d'insister sur le fait que le WSG c’est un intermédiaire entre le PSG et le sampling, une sorte de chaînon manquant sans être vraiment l’un ou l’autre. C'est ce qui le rend intéressant, ce n'est pas un simple ersatz. 

Ensuite évidemment on peut dériver l’usage d’un canal WSG pour faire du sampling mais comme c’est le cas déjà en dérivant et bidouillant un canal square PSG pour faire du sampling aussi (c’est d’ailleurs comme ça qu'on fait du sampling sur la plupart des machines 8 bit, en modulant astucieusement le signal des canaux square) et évidement c’est encore plus simple et efficace avec un canal WSG grâce à la wavetable mais c’est alors un usage dérivé à la marge (ca se fait parfois sur PC-Engine par exemple), pas sa fonction. 

 

 

 

 

 

 

Ma démarche

Mon idée de départ face à ce canal WSG du FDS était tout simplement d'écrire un script pour l'émulateur Mesen qui permette de visualiser sur l’écran les patterns chargées dans la wavetable du FDS pendant qu’on joue (et aussi d’enregistrer automatiquement un screenshot chaque fois qu’il y a une nouvelle pattern pour avoir une bibliothèque de patterns). Un script assez simple et malgré tout assez satisfaisant à utiliser quand on est curieux comme moi. Ça ne va pas très loin mais voyons ce qu’on peut tirer de ce script: Script FDS Wavetable Viewer

Quel type de constat on pourrait faire juste en observant la forme de ces patterns? C'est ça l'idée initiale de ce billet sans prétention. Et pour avoir une vision un tant soit peu globale j’ai fait la capture complète de 24 jeux FDS répartit équitablement:  8 jeux Nintendo, 8 jeux Konami (qui est de loin le principal soutien du FDS) et 8 autres jeux tiers. Je me suis aidé aussi des ROM NSF (un format de ROM qui contient uniquement le code audio et la soundtrack du jeu) pour attraper les patterns que je n’avais pas capturé in-game (car je ne vais pas jouer intégralement à tous ces jeux). J’ai donc capturé un total de 115 patterns pour ces 24 jeux. 

Voici déjà un premier aperçu partiel de cette récolte dans une vidéo qui a l’avantage de vous montrer les patterns mais aussi d’écouter le son associé a chacune. Dans cette vidéo j’ai bien sûr bloqué les canaux audio de la Famicom. Vous entendez uniquement le canal WSG du FDS donc ne juger pas la musique sur cette restitution très tronqué de la composition car certaine sont vraiment sublime:

 

Afin d'avoir une vision plus exhaustive je vous ai aussi longuement préparé des images patchwork qui permettent de visualiser le set complet de patterns utilisées dans chacun de ces jeux. J'ai divisé cela en 3 images: Nintendo, Konami et “Others”. Voyons ce que l’on peut tirer modestement de ces images d’un point de vue purement empirique et profane.

 

 

 

 

 

 

NINTENDO

Commençons donc par Nintendo puisqu’ils ont initié l’usage de ce canal audio avec Zelda qui faisait partie du line-up du FDS. Voici le set complet de patterns que j’ai capturé sur les jeux Nintendo:
 

Image full resolution: Nintendo_Fullset_Waveform.png

 

Zelda est un jeu du département R&D4 de Nintendo. C'est-à-dire la team Miyamoto/Tezuka avec Koji Kondo a la musique. C’est donc probablement ce dernier qui a dessiné les patterns de Zelda (une hypothèse raisonnable). Soit 7 Patterns dont 3 utilisées dans la musique d’intro sachant qu’ensuite pour la partie in-game le canal WSG du FDS n’est utilisé que pour les bruitages (cri, porte qui s’ouvre, coup d’épée, item flûte). Ça sera souvent l’usage que fera Nintendo de ce canal supplémentaire, l’utiliser uniquement pour la musique d’intro et ensuite réservé son usage in-game pour les bruitages.

Premier constat sur cette image: Ces 7 pattern que Koji Kondo aurait donc créées pour Zelda semblent être largement recyclées dans les jeux suivants de la team R&D4.  Mais surtout il y a quelque chose qui saute aux yeux sur ces 7 patterns ainsi que toutes les suivantes créés par Koji Kondo pour les autres jeux de la R&D4, c’est qu’il y a systématiquement une symétrie axiale. Un flipping de la première moitié de la pattern pour former la seconde moitié comme dans un miroir.
 

 

Et c’est effectivement comme cela que les patterns sont chargées concrètement dans la wavetable du canal FDS. Les datas stockées sur la disquette (puis en RAM) ne contiennent qu’une moitié de pattern et la seconde moitié symétrique est produite à la volée par le programme du jeu pendant le chargement de la pattern dans la wavetable.

C’est peut être un moyen d’économiser de l’espace (mais très peu quand même, entre 100 et 200 octets d’économiser selon le jeu, a comparer aux 100 000 d’une disquette FDS ou aux 33 000 du RAM buffer) tout en exploitant quand même toute la résolution du canal WSG (ce n'est pas une simple répétition). Mais cette symétrie impacte directement le timbre, la sonorité, de ces waves et de façon qui me paraît un peu imprévisible. Et on verra que Kondo est le seul à avoir appliqué cette méthode et de façon systématique. C’est donc un peu la signature de Koji Kondo a priori. 

A la suite de ce constat un peu mystérieux, je me suis amusé à ajouter dans mon script une fonction qui permet de forcer cette symétrie (juste en appuyant sur le bouton droit de la souris) sur les jeux qui ne l’utilisent pas pour écouter la différence quand on l’applique. Ça donne un son plus synthétique, plus nasillard, j'ai l'impression. S'il y a des spécialistes du son, sound designer ou autre qui aurait des remarques à faire sur les conséquences ou les raisons d’avoir appliqué cette symétrie sur les patterns ça m'intéresse car l'argument de l'économie de data est assez faible en réalité vu le gain insignifiant.

Dernière remarque sur ce Zelda. La 7ème patterns est celle associée à l'item flûte qui sert à se téléporter. On l'actionne en jouant une courte mélodie qui fait donc usage de cette pattern sur le canal WSG. C'est semble t'il la seule pattern qui soit exclusive à ce Zelda (et exclusive donc à cette item). Je ne l'ai pas revu ailleurs (ni chez Nintendo, ni chez les autres, vous comprendrez plus tard cette allusion).  Même la flûte de Zelda 2 s'en passe pour se contenter de recycler la pattern sinusoïdale dont l'usage est multiple. 

Et si vous voulez plonger encore un peu plus dans l'analyse de la musique de Zelda FDS, sous la forme d'un comparatif avec la version qu'on a connu en occident, je vous invite fortement a lire ce thread de Fanny Rebillard ^^: https://twitter.com/Cactuceratops/status/1363432110447595522

 


Dans Zelda 2 on observe que la façon d'initialiser ces patterns et d'appliquer la symétrie est légèrement différente (repris aussi par Kaettekita Mario Bros) plus "symétrique", mais c’est anecdotique. J’ajouterais aussi que j’aime beaucoup comment l’épée de l’écran titre se plante parfaitement dans la première patterns sur cette image car ce n'était pas calculé ^^

 

 

 

Dans Mystery of Murasame Castle l’usage du canal WSG est cet fois au service de la musique in-game ce qui est plutôt l’exception chez Nintendo donc ça vaut vraiment le coup d’écouter la BO du jeu.

Sur ce thème principal la mélodie est doublée et jouée simultanément sur le canal PSG square et le canal WSG. Cette combinaison des 2 sonorités donne quelque chose d'assez chouette:

 

Sur ce set de pattern de Mystery of Murasame Castle on peut constater l’ajout de “bruit” sur la pattern sinusoïde parfaitement lisse de Zelda. Cette nouvelle version de cette pattern (couplée a des effets de modulation de fréquence) sert ici pour le son du gong quand le timer s’approche de la fin. Un gong qui interrompt d'ailleurs plusieurs fois la mélodie jouée sur le canal WSG mais compensé justement par le fait que la mélodie est aussi doublée sur le canal square PSG comme expliqué plus haut.

 

 

 

 

 

 

 

 

 

Et l’autre grand constat qu’on peut faire c’est la scission entre les jeux de la R&D4 et ceux de la R&D1 de Gunpei Yokoi. Sur ces jeux (Metroid et Kid Icarus) ce n’est donc plus Konji Kondo qui s’occupe de la musique a priori mais Hirokazu Tanaka. On constate que les patterns ne sont donc plus du tout les mêmes. Il n’y a pas eu de partage ou de diffusion entre les R&D de ce point de vue là.

Mais cette fois encore comme pour les jeux R&D4, le canal du FDS va être réservé principalement pour les bruitages plus que la musique (à part quelques jingles avec la pattern sawtooth dans Metroid) et avec des patterns cette fois assez basique. Du triangle, du sawtooth voir des enchaînements de square et un mélange de tout ça dans la même pattern. Donc plutôt des types de waveform qu’on trouve déjà sur un simple canal PSG. Tanaka a participé à la conception du sound chip de la Famicom et de la Gameboy mais vu son usage assez timide du canal WSG du FDS je doute qu'il en soit de même pour celui du FDS.

Cela dit la Famicom n’a pas de canaux sawtooth PSG et c’est toujours cool de pouvoir émuler un sawtooth grâce à ce canal WSG (suffit d’écouter la BO de Akumajou Densetsu / Castlevania 3 jp qui profite bien du sawtooth du VCR6 de la cartouche).

Mais on remarque aussi que ces patterns de formes simples et géométriques ne sont pas très propres pour autant. Il y a comme des erreurs dans les données. C’est flagrant sur le sawtooth qui a un petit trou, mais aussi sur le triangle (qui est utilisé dans Metroid lorsqu'on passe en morph ball) avec ses pentes un peu tordues. Ou même la pattern 4 qui mélange sawtooth, triangle et square. On voit un pic qui semble pas très volontaire, vraiment comme une donnée corrompue.


 

 

 

 

 

 

 

Et ce n’est pas un problème de mon script, c’est réellement dans les données originales, j'ai vérifié. Et ça ne ressemble pas à l'ajout volontaire de bruit comme pour la patterns de Mystery of Murasame Castle, bizarre... Mais à l'époque ils n’avaient sans doute pas d’outils comme on peut avoir aujourd’hui pour visualiser et contrôler. Peut être des erreurs qui sont passées sous les radars.

 


Le dernier constat intéressant que j’ai pu faire en observant ce catalogue de patterns Nintendo concerne Knight Move qui est un jeu externalisé et conçu par Alexey Pajitnov (le papa de Tetris) mais édité par Nintendo en exclusivité sur FDS et ce qui saute aux yeux c’est que le jeu utilise exactement les mêmes 4 patterns que Metroid, même celle du cri de Samus quand elle prend un hit, mais utilisé cette fois pour la musique.

 

 

On peut donc faire une déduction intéressante qui n’a peut être jamais été faite? Knight Move est sans doute un jeu qui a été supervisé par la R&D1 de Nintendo.

 

 

 

 

 

 

KONAMI

En plus d'être de loin le plus fervent supporter du FDS en proposant un large catalogue exclusif à ce support, Konami a aussi une forme de passion plus globale pour la tech audio en s'efforçant chaque fois d’exploiter toutes les possibilités audio disponibles.

C’est d’ailleurs l’un des points qui distingue nettement Konami de Capcom son concurrent direct sur NES. Konami est l'éditeur qui utilisera le plus massivement le canal DMC de la NES pour la musique (le 5éme canal dédié au sampling mais souvent mis de côté par les développeurs dans les jeux NES de l'époque car pas facile à exploiter), même bien plus que Nintendo. Un usage quasi systématique dans tous leurs jeux la ou Capcom n’en fera jamais usage dans aucun des leurs.

Konami n'hésitera pas non plus parfois à ajouter un soundchip dans des cartouches Famicom ou MSX la ou Capcom ne tentera jamais une seule fois ce type d'acrobatie… et pour le FDS c’est encore le même scénario. Konami va faire un usage massif du canal WSG du FDS, bien plus que Nintendo une fois encore (mais avec quand même un petit retard à l'allumage, par exemple Castlevania 1 FDS en 1986 ne l'utilise pas), la ou Capcom n’en fera jamais aucun usage. On a une distinction assez nette sur ce point.

Voilà donc le contexte. Si maintenant on regarde le set complet de pattern que j’ai pu capturer sur les 8 jeux que j’avais sélectionné, on constate effectivement un usage assez massif du canal WSG. Konami utilise en moyenne 2 fois plus de pattern par jeu que Nintendo (on peut avoir jusqu'à 12 patterns dans un même jeu) et une variété globale aussi 2 fois plus grande: 

 

Image full resolution: Konami_Fullset_Waveform.png

 

Konami va utiliser ce canal principalement pour la musique contrairement à Nintendo donc si vraiment vous souhaitez avoir un bon aperçu de ce que peu modestement apporter le FDS en audio penchez vous sur les jeux Konami. Il y a vraiment des BO superbes sur ces jeux Konami FDS que je vous invite vivement à écouter notamment Arumana no Kiseki (par la compositrice de Castlevania), ou Falsion, Gyruss et Ai Senshi Nicole. Tous des incontournables je pense (mais je ne suis pas un spécialiste, a vous de juger).

 

Passons maintenant aux constats que l'on peut faire. La première chose c’est qu’on voit que Konami, comme Nintendo, a aussi tendance à réutiliser certaines patterns dans beaucoup de jeux (j’ai essayé chaque fois d’organiser le compositing de l’image pour aider à constater cela). Donc comme chez Nintendo avec Zelda, on a ici un set d’origine (qui vient de Ai Senshi Nicole?) qui va servir un peu de set standard chez Konami et réutilisé plus ou moins dans les autres jeux tout en ajoutant ou remplaçant certaines patterns. Avec certaine proximité plus flagrante entre certains jeux (par exemple Falsion et Gyruss)


On remarque aussi que contrairement aux patterns de Koji Kondo il n’y a pas de symétrie axiale chez Konami. Au mieux il y a des répétitions successives de la même onde dans la pattern pour remplir la table mais ce ne sont pas des symétries.
Cette façon de doubler la wave dans la pattern, en plus de faire des économies de données, permet surtout de monter plus haut en fréquence car nativement ce canal WSG est limité à 1750 hz max donc il manque plus d'un octave dans les aigus si on se réfère à un clavier standard 88 touches (tout comme il manque un octave dans les graves des canaux Square PSG de la NES). Dupliquer 2 fois la wave dans la pattern permet donc de doubler la hauteur de fréquence max. Ca explique peut être aussi pourquoi la résolution de la table sur FDS est assez élevée comparé à d'autres canaux WSG, ça permet ce genre de liberté si on veut monter très haut dans les aigus sans pour autant vraiment sacrifier la résolution de la wave qui est alors en 32x64. C'est un bon compromis.

En réalité si vous regardez bien on trouve quand même quelques patterns avec une symétrie axiale et si vous avez l’oeil aiguisé vous avez alors remarqué que ce ne sont rien d’autre que les patterns de Koji Kondo encore une fois (décidément les seules patterns à utiliser cette symétrie).  Et oui il semble bien que Konami ait eu accès aux patterns de la R&D4 de Nintendo (de façon officielle ou officieuse?) ce qui est un constat plutôt amusant. Voyez sur cette image les différentes patterns utilisés dans ces jeux Konami et qui viennent donc directement de Zelda ni plus ni moins:

 

Glissez l'image dans un autre onglet pour mieux voir!

 

 

 

Dans ces patterns Konami on retrouve aussi la classique pattern en sinusoïde, ainsi que l’incontournable sawtooth (uniquement dans Meikyujin Dababa) et parfois du simple square/pulse mais en utilisant la wavetable pour intégrer nativement des modulations de volume à très hautes fréquence comme on peut voir ici:

 

 

Excite Soccer arrive même à reproduire un son de basse assez convaincant avec cette simple pattern: 

 

On croirait presque entendre ici la célèbre “Sunsoft Bass” ( voir mon autre billet ) qui pourtant utilise un vrai sample sur le canal DMC de la NES même si minimaliste.

 

 


On remarque quand même un jeu qui se distingue nettement chez Konami c’est Bio Miracle. Un peu comme dans le cas Metroid / KidIcarus, on se trouve face à un jeu qui n’utilise pas du tout le set de pattern standard de Konami mais son propre set de pattern avec une approche assez différente. Plutôt des patterns très simples de type square ou sinusoïde et à faible résolution avec des petits effets de modulation intégrés à la pattern ou avec beaucoup de répétitions.
Mais l'utilisation des répétitions est ici assez extrême. On trouve des patterns avec du x8 et même du x16. La pattern #1 compte en effet 16 répétitions internes. Et force est de reconnaître que je ne saurais expliquer l'intérêt de ce choix. Au-delà de x4 je ne sais pas a quoi ca peut servir et par contre ça dégrade fortement la précision des notes dans les graves qui n'est déjà pas top (a l'inverse des squares PSG qui eux manquent plutôt de précision dans les aigus).

 

Tout cela donne plutôt l'impression d'un jeu qui ne viendrait pas des studios internes de Konami. Mais pourtant après vérification, il semble bien que ce soit le cas donc probablement un studio interne plus détaché des autres d’une façon ou d’une autre.

 

 

 

 

 

 

LES AUTRES...


En dehors de Nintendo et Konami, l'usage de ce canal WSG semble bien plus rare et limité. Voici donc le set de pattern en image pour les 8 jeux tiers que j’ai sélectionné:

 

Image full resolution: Others_Fullset_Waveform.png

 

On voit ici que les jeux tiers (hors Konami) se contentent souvent d'une seule pattern (sachant que beaucoup s'abstiennent complètement d'utiliser le canal WSG. L'usage de ce canal est loin d'être systématique dans les jeux FDS un peu comme le canal DMC sur NES).

 

Et comme vous pouvez le constater en un coup d'œil, le jeu tiers qui se distingue nettement est Otocky de ASCII avec ses 8 patterns. Otocky est un jeu musical, ni plus ni moins qu'un ancêtre de REZ. C'est donc un shmup dont les tirs produisent des notes synchronisées avec la musique. Donc on attendait pas moins de celui-ci qu'il exploite un minimum ce canal audio du FDS. 

 

Le jeu propose de switcher entre divers instruments en attrapant des items (sur ma vidéo c'est le mode composition quand on a terminé le jeu). Il y a 15 instruments donc certains instruments utilisent les mêmes patterns mais avec des effets différents.

On retrouve une fois encore les classiques et basiques square, sinusoïde et sawtooth évidemment mais il y a 2 patterns qui m'ont intrigué dans ce panel, la #6 et la #7 sur l'image. Des patterns plus complexes mais on remarque surtout qu'elles semblent en low-res et très aliasées. La résolution est faible, les lignes sont doublées à l'horizontal et les "marches" sont quadruplées à la verticale. Ce sont des patterns en résolution 32x16 (alors que la wavetable du FDS est 64x64 je rappel) ça ne vous rappelle rien?...

...et la j'ai eu une révélation! Je m'empresse de revisionner les patterns Namco créées par Junko Ozawa et BINGO!! Ce sont bien exactement ses patterns au pixel près!

 


 

C'est a dire les patterns de Tower of Druaga de Namco version Arcade donc rien à avoir à priori avec un jeu Famicom Disk édité par ASCII. C'est dans ces moments-là que je ne regrette pas d'avoir perdu autant de temps à faire ce genre de décorticage ^^. 
Donc encore une fois on constate que les patterns des créateurs ont tendances à circuler plus largement, au-delà des studios d'origine. Mais toujours difficile de dire si ce sont des partages volontaires ou à l'insu des créateurs.

Dans Otocky la première pattern est utilisée pour 3 instruments ("hautbois", "violon" et "Pzicat?") et la seconde pattern pour 2 variantes de l'orgue.

 

Et quand on s'intéresse un peu plus encore à ces patterns de Junko Ozawa on remarque aussi que la dernière pattern de Tower of Druaga ressemble beaucoup à celle utilisée par Konami . Le "partage" semble massif ^^

 

 

 

D'ailleurs en parlant de partage de pattern il y a un autre exemple dans cette liste de jeu qui a attiré mon attention et qui est tout aussi cocasse mais pour une tout autre raison. C'est The Hero of Babel de Carry Laboratory qui utilise cette unique pattern:

 

Mais.. mais... On dirait bien un collage de 2 demi-pattern de Zelda

Je vous ai déjà expliqué que les patterns de Konji Kondo sont en réalité constitués juste d'une demi-pattern (la partie gauche) sur laquelle est appliquée ensuite une symétrie par le programme. Et bien il semble que les gens de Carry Laboratory aient récupéré les datas des patterns de Nintendo (comme Konami avait pu le faire) mais peut être sans en comprendre précisément la nature ce qui expliquerait que pour remplir la wavetable ils aient loader l'équivalent en data de 2 (demi) patterns de Nintendo:

 

 

Et encore une fois ça ne vient pas de mon script. C'est vraiment comme ça dans le jeu. Difficile de savoir si c'est volontaire ou vraiment une erreur dans l'interprétation des données ou dans le code du jeu. Ca peut aussi être les 2. Une erreur puis le constat que ça donne un son pas inintéressant (vous pouvez écouter ça sur la vidéo récap en début de billet, il y a les time codes dans la description de la vidéo, et effectivement ça sonne bien) et donc la décision de laisser en l'état.

 

 

 

Même Sunsoft va utiliser une pattern de Zelda dans son jeu Chiteitairiku Orudola ^^

 

 

 

Galaxy Odyssey de Imagine se détache aussi un peu des autres avec déjà plus de patterns (il y en a 3 au lieu d'une seule) et des patterns intéressantes ou tout du moins que je trouve très jolie et "propre". Du beau "pixel art" comme celle ci ^^ :

 

 

 

On a aussi un Monty on the Run de Jaleco qui nous offre donc une réinterprétation de la composition C64 de Rob Hubbard.  Une seule pattern ici. Un peu simple et à la fois difficile à juger. Peut être pour reproduire certains effets de modulation rapide présent dans la musique originale notamment quand la pattern est joué ici dans les graves.

 

 

 

Et on retrouve l'incontournable sawtooth dans 3D WorldRunner de Squaresoft. C'est l'occasion pour dire que les sawtooth de 3D Worldrunner, Otocky ou même Meikyujin Dababa de Konami, sont vraiment propre (et inversé) comparé a celle un peu approximative utilisé par la R&D1 de Nintendo:

 

 

Ces sawtooth WSG sont vraiment bien lisses, proche de celle du SID C64, et très éloigné de celle du mapper VRC6 de Konami utilisé sur Castlevania 3 JP qui est extrêmement aliasé. Il y a seulement 7 "paliers" sur le sawtooth du VRC6 au lieu des 64 sur les sawtooth du FDS. Ca ressemble plutot a ca sur Castlevania 3:

 

Mais c'est cette aliasing très prononcé du sawtooth de Castlevania 3 qui lui donne ce timbre un peu différent que j'aime bien aussi (mais qu'on peut donc parfaitement mimer sur le canal WSG du FDS si on le souhaite. Je vous l'ai fait ici pour Famitracker: VRC6_Sawtooth_with_FDS.fti).

 

 

 

 

 

 

Conclusion

J'ai une certaine affection et curiosité pour cette approche "pixel art" de l'audio que permet le son WSG malgré que ce fût une parenthèse plutôt marginale dans la chiptune jeux vidéo (par contre je ne connais pas la proportion d'usage du WSG sur le marché des synthés). Et on reste face à du véritable son de synthèse (au sens positif du terme, c'est un peu ce qu'on aime dans la chiptune) tout en offrant un peu plus de richesse et de liberté que les canaux PSG. C'est plus ou moins ce qu'a apporté aussi le son FM d'une autre manière et qui est même l'alternative qui a dominé cette époque et qui explique peut-être que le WSG est resté un peu plus dans l'ombre. Mais le son FM c'est encore une autre histoire...

En ce qui concerne ce grain synthétique qui nous enivre dans le son 8bit, je laisserais le dernier mot à Junko Ozawa avec ce court extrait de 32 secondes:

 

 

Mais ce billet sur le son du canal audio du FDS n'est pas tout à fait complet. En effet ce canal contient aussi une seconde table plus petite de 32x3bit (vous l'avez peut être vu sur le schematic du brevet si vous avez l'œil ^^ sauf qu'elle est 4 fois plus petite que sur le brevet). Cette seconde table ne sert pas a stocker une pattern pour définir une forme d'onde mais contient des données de modulation de fréquence.

Une façon de pousser encore un peu plus la personnalisation du timbre de chaque instrument et de manière toujours autonome sans passer par le CPU. Les 2 patterns combinés donnent plus de combinaisons possibles même si cette table de modulation semble assez mal calibrée et son usage assez timide dans les jeux. J'ai l'impression que ca aurait pu être mieux.
Je compte ajouter la visualisation de cette table dans mon script donc peut être que je vous en reparlerais sur twitter  ^^ https://twitter.com/upsilandre

 

Partager cet article
Repost0
Pour être informé des derniers articles, inscrivez vous :
Commenter cet article
R
Salut, étant curieux mais béotien, je me pose pas mal de questions:<br /> - la gestion hardware de sprites, scrolling, rotations... Un GPU de l'époque, c'est quoi précisément ? un DSP très complexe ou une puce simple avec des routines dédiées en ROM ?<br /> - Quelle est l'utilité pour une console dite "16 bits" de pouvoir traiter en un seul cycle des données de 16 ou 32 bits ? Un adressage mémoire plus rapide ? Quel impact global ?<br /> - Pourquoi les concepteurs n'ont-il pas intégré aux consoles un système de décompression des Roms à la volé et transparent pour le système ?<br /> <br /> Et plus spécifiquement pour la PC-Engine:<br /> - Comment NEC pouvait-il fournir des ROM à plus de 7Mhz quand Nintendo peinait à s'approvisionner en puce à 3 Mhz ? Par multiplexage de 2 puces ?<br /> - Pourquoi la résolution horizontale de 320p n'a-t'elle quasiment jamais utilisée ?<br /> <br /> Enfin une grave limitation de SNES presque jamais évoquée: elle ne gérait simultanément que 2 tailles de sprites.
Répondre
U
Houlà c'est beaucoup de question d'un coup. J'aurais bien du mal a trouver le temps de répondre à tout ca ???? (et si j'avais la réponse a tout)
S
Bon article qui fait echo à ce que l'on peu lire dans les Anthologies NES et PC-Engine de Geeks Line qui parlent également du WSG et de l'historique de ces formes d'onde.
Répondre
R
Alors heureusement que je me suis restreint :) Au moins ça peut donner des sujets d'articles.
U
Et on en parle pas assez je trouve, ca reste méconnu comme canaux :)<br /> J'en ai souvent parlé ces 3 ou 4 dernières années mais il était temps d'en faire un billet ^^
M
Article très intéressant. C'est vraiment poussé mais prenant.<br /> J'adore le retrogaming et cette approche dans ton blog et unique.<br /> MERCI
Répondre
S
Yep, surtout que le son produit par ces puces est tout à fait particulier et très agréable pour la chiptune (en tout cas selon mes oreilles).
U
Merci a toi :)