Page 1 sur 2

Audio dans les jeux vidéo, chiptunes et travaux annexes

Publié : 12 févr. 2017 14:08
par Zetsubou-sensei
Je ne trouvais pas réellement de place pour parler de musiques de jeux vidéo dans son ensemble sur le forum.
Beaucoup d'écrits que je viens de publier devraient plutôt trouver un topic spécialisé, afin de désengorger les autres plus classiques déjà présents.
Afin de cibler les gens plus intéressés que de se retrouver avec des paquets de monologues en plein dans les Achats ou les Gens Contents.

Et aussi retrouver plus facilement à l'avenir si des gens venaient à vouloir y accéder ou suivre ce sujet sans être gêné pour retrouver les informations.

Je vais donc déplacer des grands morceaux à coups de multiples posts pour démarrer le sujet.

J'invite tous les gens intéressés par l'audio dans les jeux vidéo : la conception et la composition, la technique en général, leurs coups de cœur (récents comme retrogaming) en musiques, les chiptunes, les mods (et j'en passe), à venir se joindre tous ensemble ici.
Ainsi, on aura notre espace, sans gêner (et par respect pour) les gens qui viennent pour du matériel audio HiFi, des DAPs ou d'autres sujets qui les intéresseraient plus.

Re: Audio dans les jeux vidéo, chiptunes et travaux annexes

Publié : 12 févr. 2017 14:08
par Zetsubou-sensei
Le remplacement de la partie sonore de la Neo Geo (DAC Yamaha YM2610 + contrôleur Zilog Z80) a été complété dans la nuit.
Comme quoi des fois les insomnies c'est aussi pratique...

J'ai presque terminé d'implémenter la partie processeur principal également (Motorola 68000) par un code que j'avais commencé il y a bien de semaines au départ, pour aider à l'émulation de la SEGA Saturn avec une autre développeuse.
Je devrais terminer dans le début de soirée ou demain matin, en fonction de mon état de santé et le contrecoup de la veille.

Tout est fonctionnel à partir d'une série de deux puces FPGA que j'ai pontées sur une carte mère arcade MVS, qui était considérée comme grillée pour l'instant.
Le résultat est un véritable spaghetti et peu reluisant à regarder, donc aucune image en cours de développement.

Cela permettra de ressusciter plusieurs boards par ce genre de pièces de remplacement, à défaut d'avoir des pièces d'origine pour l'avenir.
J'ai tenté avec plusieurs jeux cryptés, notamment Metal Slug X, Garou - Mark of the Wolves, The King of Fighters 2000.
Jeux réputés très difficiles, avec un code watchdog qui coupe l'alimentation du processeur principal et met en hard reset le contrôleur de son en cas de fraude.
Tout se joue en temps de réponses niveau des timings et du passage d'une série d'interruptions IRQ, pour détecter les tentatives de lecture sur du matériel non autorisé par la marque).
La finalité du projet est de recréer une SNK Neo Geo sans avoir besoin d'acheter en occasion une machine avec des prix hallucinants un peu plus chaque année.

Il reste notamment à implémenter la partie graphique, mais qui m'est bien trop complexe et je vais laisser la main à un autre Français prochainement pour le développement, ainsi que toutes mes notes de réalisation et de reverse-engineering + manuels internes de chez SNK/logiciels de conception Neo Geo.

Pour les novices, comprendre que rien ne m'a sauté à la tête; la borne d'arcade est de nouveau fonctionnelle et le système n'y voit que du feu, même sur ses sécurités.

Prochains projets
Je préfère me consacrer dès la semaine prochaine sur la Famicom Mini/NES Mini, qui a un succès très relatif bien que très bridée au départ.
J'ai déjà pu mettre au point un module de remplacement du noyau pour y ajouter le Game Boy et ses dérivations, ainsi que la Super Nintendo.
Mais il faut encore revoir le packaging pour le grand public, avec un installeur.
J'en ai profité aussi pour mettre à jour l'émulateur principal de cette console; cela a été une grande joie de voir fonctionner complètement plusieurs jeux très difficiles et qui a même demandé des années de recherches au départ.
Je pense notamment au jeu Batman - Return of the Joker, qui utilise toutes les instructions de la NES, tous les canaux sonores, ainsi que deux canaux supplémentaires à même la cartouche, sur un mapping controller fabriqué directement par SunSoft (le créateur du jeu).

Autre point d'attaque pendant que j'étais alité la semaine passée, mais avec encore assez d'esprit (avec 40°C de fièvre, pas évident de tester des codes sur machine physique).
L'émulation de la SEGA Saturn, que ce soit sur PC, comme sur les solutions de types Raspberry Pi, vont faire un bond en avant assez impressionnant durant les 10 prochains jours.
En rassemblant un groupe de travail, entre plusieurs développeurs et plusieurs chercheurs dont je fais partie, nous avons pu enfin corriger et améliorer la compréhension globale de la SEGA Saturn, avec des bugs qui résistaient depuis presque 20 ans!
Je dois passer ma soirée en live avec de la famille et des amis, pour tester la première version de cette émulation sur Raspberry Pi 3 + multi-prises USB, afin de connecter 10 personnes à la fois sur Saturn Bomberman.
Les jeux Virtua Cop sont déjà corrigés et fonctionnent avec les pistolets d'origine + adaptateurs USB sur les écrans LCD; je dois encore tester sur de l'OLED et du plasma ce soir également.
Le plus gros problème de la SEGA Saturn est la compréhension de son DAC et surtout de son rôle indirect dans la régulation et la synchronisation de toutes les puces sur la carte-mère; c'est elle qui donne en interne le tempo.
S'il y a défaillance, le système se braque ou refuse l'instruction en cours; allant du simple bug graphique à l'éjection total du jeu et un hard reset/écran noir au démarrage.

Je me permets de parler de ce genre de choses ici, car je considère que la musque de jeux vidéo, ainsi que le chiptune a parfaitement sa place dans un site consacré à l'audio.
Cela va de l'écoute, à la compréhension sur comment est conçu le son dans le système.

Re: Audio dans les jeux vidéo, chiptunes et travaux annexes

Publié : 12 févr. 2017 14:08
par Zetsubou-sensei
Update du soir, bonsoir.
1/ Un développeur, inconnu pour le moment, a ajouté le support de plusieurs puces sonores supplémentaires, dont la Konami VRC-6 sur la NES Mini/Famicom Mini.
On va pouvoir enfin jouer à la version japonaise de Castlevania III - Dracula's Curse (sans les censures : croix, références à la mort, cercueils) et avec un son de bien meilleure qualité que la version internationale : Akumajou Densetsu (悪魔城伝説).
Pour vos oreilles, la version japonaise en premier face à la version internationale.
[video][/video] [video][/video]
Nintendo avait dit que ce n'était pas possible avec les capacités de la machine...
Démonstration du contraire.

SEGA Saturn plus axé émulation
2/ Le nouveau core Saturn pour RetroArch (logiciel front-end permettant de gérer plusieurs émulateurs à la fois, sur une machine cible donnée) est en cours de push vers chez eux.
J'ai du mettre le Raspberry Pi 3 à fond des capacités possibles en overclock + ventilo sur le SoC + dissipateur de chaleur sur la RAM.
Donc normalement les gens avec Retropie et/ou Recalbox devraient en profiter d'ici quelques jours; le temps qu'ils mettent à jour aussi RetroArch.
En tout cas, j'ai pu tester avec les ISOs provenant de mes originaux sur Rayman, Virtua Cop, Castlevania - Symphony of the Night, Saturn Bomberman ou encore Panzer Dragoon.
Avec le décodeur Zets -> humain : avant ça n'avait jamais été fait car pas les capacités techniques, la puissance de calcul, ni la connaissance assez précise de la SEGA Saturn; maintenant c'est possible mais c'est super-pas-fini et ça fait chauffer la machine qui la remplace comme un poêle à bois dans votre salon.
3/ Un développeur sous le nom de bubble2k16, vient de sortir un émulateur relativement complet de la Super Nintendo, fonctionnant sur les DEUX générations de 3DS.
Nintendo avait fait sa publicité sur la NEW 3DS, avec ses deux co-processeurs beaucoup plus rapides, notamment pour justifier l'émulation officielle de la Super Nintendo uniquement possible sur cette dernière génération.
Expliquant aussi que la première version n'était pas assez puissante pour le faire fonctionner, notamment le processeur sonore Sony SPC700.

Détails techniques sur l'émulation de la Super Nintendo sur les 3DS
Il met le constructeur au tapis, en créant un code plus rapide, plus complet et plus compatible que le système officiel de Nintendo sur cette puce son.
Mais il a également ajouté plusieurs co-processeurs de calcul. Notamment le SA-1, réputé être extrêmement gourmand en ressources, car il sert sur la Super Nintendo de compresseur/décompresseur de données à la volée.
Les jeux ont été limités longtemps au maximum à 4Mo sur les cartouches, mais en les compressant dans la puce de stockage, on pouvait en mettre presque le double. Au prix d'ajouter une puce supplémentaire (facturée $8 en plus lors de la conception des cartouches, pas folle la guêpe pour gagner encore plus d'argent que de proposer des puces de 6 ou 8Mo sauf pour eux, à l'exception de Kirby's Dreamland 3) pour ne s'occuper que de cette tâche et ne pas aller tirer sur le processeur principal de la Super Nintendo.
Le constructeur avait précisé ne jamais pouvoir supporter les jeux SA-1, même sur NEW 3DS car la console ne suivrait pas.
Pas de bol, ça marche à pleine vitesse sur Mario RPG, Kirby's Dreamland 3 ou encore Jikkyou Oshaberi Parodius (parmi une quarantaine de titres en tout) sur la NEW 3DS.
Par contre, cette fois la 3DS première génération ne pourra pas faire grand chose, à part afficher un bout de jeu toutes les 5 secondes.
C'est pas beau de mentir, Nintendo, pour ne pas avoir à développer un peu plus correctement.
Avancées sur la Neo Geo en FPGA
4/ L'implémentation du Motorola M68000 sur une puce FPGA suit son cours.
Pour le moment, j'ai un bel écran vert plein de pixels non ordonnés; au moins la séquence de boot de la console/borne d'arcade est la bonne et il reste à savoir où les instructions sont perdues.
Je vais devoir tracer au debugger ligne par ligne; il va falloir sortir mon petit caque de chantier japonais et mon panneau.

Image

Re: Audio dans les jeux vidéo, chiptunes et travaux annexes

Publié : 12 févr. 2017 14:19
par Zetsubou-sensei
Analyse complète de la Nintendo Famicom Mini.
Rétro-ingénierie du système, cassage du 'chiffrement' interne pour empêcher de modifier les fichiers systèmes ou même les jeux dans la puce Flash.
Améliorations techniques et de programmation.

DISCLAIMER

Je vais volontairement occulter des éléments : ne montrer que la faisabilité de plusieurs techniques logicielles et matérielles (à ce jour) sur un système fermé, afin de pouvoir y apporter des améliorations conséquentes.
Ce que je présente n'est pas destiné à être vendu et n'est pas destiné à être publié autrement qu'à des fins de recherches (à titre purement expérimentales).


Version courte
J'ai réparé les erreurs de conception de la Famicom Mini.
Vous pouvez aller voir ailleurs.

Version longue
Le version japonaise de cette réédition comporte une exclusivité par rapport à la version Europe/USA.
Certains des jeux sont des copies provenant du support Famicom Disk System (système à disquettes magnéto-optiques), qui venait se greffer en sus de la Famicom.
Le Famicom Disk System avait aussi la particularité de pouvoir étendre la partie sonore de la Famicom avec deux canaux sonores supplémentaires - permettant des effets plus nombreux et plus détaillés (particulièrement utilisés sur des jeux comme Akumajou Dracula - Castlevania, Metroid ou encore The Legend of Zelda 2 - Link no Bouken).
Effets sonores qui ont été coupés au montage dans leurs sorties internationales, car l'accessoire n'est jamais sorti de l'archipel.
Ainsi que l'instauration de codes de sauvegarde ou piles pour conserver les avancées de parties au lieu de l'écriture sur le disque.

Image
Exemple d'un Famicom Disk System connecté à la Famicom

En tâtonnant un peu dans les débuts - recherchant les documentations techniques à l'aide des numéros de série de chaque élément, je suis allé un peu plus loin en passant plusieurs des puces à l'acide nitrique et rinçage à l'acétone (technique dite du decapping chimique).
Pas de puces custom trouvées sous l'époxy : nous sommes bien dans un système assez connu, proche de ce qui se fait avec, par exemple, les Raspberry PI.

Image
Système à base de SoC AllWinner R16 principalement, très peu coûteux et rentabilité maximale.

En premier lieu, après avoir exposé à jour les puces, il est déjà temps de la copie intégrale de la puce Flash.
Une fois la copie effectuée (je ne détaille pas pour des raisons de légalité, éviter que des copies ne traînent sur le Net et que des bootlegs ne sortent), il m'est nécessaire d'analyser le code et trouver éventuellement des motifs connus sous forme hexadécimale ou même des erreurs classiques de chiffrement - laissant apparaître des morceaux de code mal cachés (simple scrambling XOR dans notre cas, pour les plus connaisseurs dans ce domaine).
Chiffrement qui n'a pas tenu la journée, le plus basique qui existe en protection.

Vient le temps de comprendre la structure et l'organisation interne des fichiers que l'on y découvre.
Vous pouvez voir sur des sites spécialisés la version du noyau Linux, ainsi que les fichiers, mais je ne détaille pas non plus ici.
Ce qui m'intéresse : la comparaison des fichiers de jeux Famicom Disk System utilisés par Nintendo, par rapport à des extractions [privées] de disquettes Nintendo réalisées l'année passée (encore sous blister, car les disquettes se modifient dès la première lecture/écriture - un peu comme les disquettes Atari ST ou Amiga).

La comparaison des fichiers sous un éditeur hexadécimal m'a permis de valider ces extractions privées par rapport aux jeux présents dans la Famicom Mini.
Il n'existe aucune copie desdits fichiers, ni diffusion de la méthode d'extraction à ce jour dans le public (ni software, ni hardware) mais on obtient les mêmes fichiers à l'octet près, ainsi que les codes de parité non présents des copies du Net; les versions de fichiers concordent + mêmes dates de compilation.
J'ai tenté d'utiliser une disquette corrompue et d'injecter le jeu extrait de la Famicom Mini, puis celle de ma disquette originale. Les deux fonctionnent parfaitement sur la console d'origine.
La Famicom Mini m'aura déjà permis de valider une théorie sur le format et les informations à conserver, ainsi que la possibilité de recréer des originaux si un jour il serait nécessaire pour la préservation du patrimoine vidéoludique.
"Je ne compte pas sur cette industrie pour préserver son patrimoine" (Frank Cifaldi, lors d'une conférence sur la récreation des 6 premiers Mega Man chez Eclipse en 2014).

A contrario, les copies provenant du Net sont faites avec des exemplaires souvent incomplets ou partiellement modifiés pour diverses raisons (corruptions dans le temps, signatures des copies, machines défaillantes lors de la copie, disquettes en mauvais état, poussières ou traces de doigts sur la partie magnétique...).
Voire provenant d'un support mal effacé précédemment - morceaux de plusieurs jeux mélangés (le format permettait de changer le jeu dans la disquette en la rapportant en magasin sur une borne spéciale Disk Writer et en faisant changer les étiquettes - pour l'équivalent actuel de quelques euros).

Image
Borne Disk Writer

Véritable plaie dans les tentatives de sauvegarde du patrimoine vidéoludique au format numérique car impossible de savoir ce qu'il y a sur une disquette sans l'avoir testée avant achat (souvent pas le bon jeu, car les gens n'ont pas changé les étiquettes).

Par contre, pour les jeux provenant de cartouches plus classiques, il s'agit bien de copies provenant du Net.
Je retrouve des entêtes de démarrage pour émulateurs dans les jeux, chose qui ne devrait pas exister si les fichiers provenaient des archives de Nintendo ou des éditeurs tiers.

La véritable raison où je parle de ces travaux sur un site spécialisé dans la promotion du matériel audio et HiFi.
Je n'étais pas satisfait de la partie émulation sonore de la console en premier constat en lançant la machine; les musiques des jeux sont déformées par l'implantation d'origine de la puce 2A03.
[video][/video]
Explication des canaux de la NES

L'un des canaux de génération de pulsation (NOISE) est complètement faux et le son n'est au final pas terrible pour une machine vendue sous le nom direct de la marque.
Sans compter les lags et les plantages lors de reprise de parties (sauvegardes d'état).

J'ai profité du démontage pour reprendre cette partie, consulter les codes sources fournis sur les parties open source par Nintendo sur sa page japonaise.
Y apportant des corrections et d'autres idées vues par plusieurs développeurs d'émulateurs.
En profitant pour rajouter des puces sonores non prises en charge par le code d'origine sur la réédition (MMC3, MMC5, VRC-3, VRC-4, VRC-6, FME-7).
Ces puces étaient au départ implantées à même les cartouches pour améliorer les performances de la console (RAM supplémentaire, canaux sonores supplémentaires, lectures de samples PCM ou FM).
L'idée est de rendre l'émulateur prévu au départ plus universel que simplement les 30 jeux proposés, voire à pousser le vice au maximum et utiliser des versions modifiées de plusieurs jeux.
Principalement avec l'utilisation de ces puces, apportant des gains de puissance/qualité sonore non négligeables.
[video][/video] [video][/video]
Musique originale (gauche), réorchestration + ajout VCR6 sous FamiTracker avant reprogrammation du jeu (droite)

Travaux sur la Famicom Mini/NES Mini
Je n'étais pas satisfait non plus de ne pas pouvoir changer les jeux à ma guise, telle une console cartouche; que le système soit bien fermé.
Au niveau matériel, réalisation d'un adaptateur microSD/SD en lieu et place de la puce Flash contenant le code de la console.
Le nouveau système fonctionne désormais sur cet adaptateur, en court-circuitant totalement la puce Flash sur la carte-mère.
Image

Dernier point d'insatisfaction, la colorimétrie et les gamma du rendu vidéo.
Techniquement, le rendu des couleurs est 'juste' quand je reprends les notes techniques laissées par MIYAMOTO Shigeru sur le développement de Super Mario Bros. & Zelda no Densetsu (disponibles dans un ouvrage en japonais retraçant la fabrication et le développement chez Nintendo).

A savoir, la Famicom (tout comme les versions NES) ne savent pas générer de couleurs à partir de codes YUV ou encore RGB, mais uniquement en signaux directs NTSC/PAL (en fonction de la version de la console) que les télévisions vont interpréter plus ou moins correctement.
Les nouvelles télévisions dévient complètement de ces normes, ce qui rend les couleurs avec cette réédition complètement faussées.
Image Image
Dans l'exemple suivant, vous avez à gauche le rendu en sortie de la Famicom/NES Mini d'origine, à droite le rendu corrigé avec les notes laissées et le calibrage des écrans dans les studios de développement à l'époque (sans les traces, grilles et rémanences des tubes cathodiques).
Suite & fin sur la Famicom Mini.
J'ai proposé à la personne en charge actuellement d'un logiciel d'amélioration de la NES Mini/Famicom Mini, l'intégralité de mes travaux de reverse-engineering à condition qu'ils soient utilisés pour son logiciel uniquement et à but non-commercial.

Notamment, un point où il est bloqué actuellement - la modification de l'émulateur par une version plus complète, afin de supporter davantage de jeux et corriger les problèmes existants sur la partie sonore.

Nouveautés sur la Famicom Mini/NES Mini
Pour le moment et les nouveautés datées de ce jour sont :
- la prise en charge directe des jeux Famicom Disk System avec détection automatique de changement de face du disque optique dans le lecteur;
- le changement de palettes de couleurs en fonction des envies de l'utilisateur;
- meilleure prise en charge du support PAL;
- de nouveaux filtres plus proches des tubes cathodiques et écrans phosphore, à partir de mesures de couleurs sur des rampes NTSC/PAL de plusieurs téléviseurs des années 1980;
- une augmentation du nombre de jeux accessibles, sans devoir toucher à la mémoire des sauvegardes d'état.

Le plus compliqué actuellement n'est plus de modifier cette console, mais de s'en procurer une.

Débuts des travaux sur la Neo Geo FPGA
J'ai aussi changé de projet depuis quelques jours, afin de m'attaquer au reverse-engineering de la puce sonore Yamaha YM2610.
Puce sonore utilisée par SNK pour sa console/système de bornes d'arcade à cartouches Neo Geo AES/MVS.
La puce est déjà décappée à l'acide nitrique (decapping) depuis le début de cette semaine et des photographies du die layer sous microscope électronique prises (afin d'identifier tous les modules).
J'ai du sacrifier une console en parfait état de fonctionnement (les collectionneurs vont s'étrangler de mon geste), mais ce sera pour la progression des connaissances.

EDIT : Quelques fautes de frappe détectées.


Image

Re: Audio dans les jeux vidéo, chiptunes et travaux annexes

Publié : 12 févr. 2017 14:29
par Zetsubou-sensei
J'ai acheté le prototype du jeu Disney's Aladdin sur Genesis/Megadrive.
Un ancien collègue de David Perry, le développeur du jeu (et aussi l'un des papas d'Earthworm Jim), l'avait depuis des années après son départ de chez Virgin.
Il a bien voulu me le vendre après de longues discussions.
Le jeu est complètement différent du jeu final.
Image

Restez assurés qu'il est en de bonnes mains désormais, et je vous dis qu'on va marquer la Saint-Valentin cette année.

Image Image

Vous comprendrez bientôt pourquoi je cherchais des prototypes de plusieurs jeux pour les racheter.

A savoir, comme nous sommes sur un site en audio, les musiques sont assez différentes de la version finale, notamment le tempo et l'utilisation assez poussée des canaux FM du Yamaha YM2612.
Cela va être intéressant à documenter et mettre les mains dans le code d'un morceau d'histoire du jeu vidéo.

EDIT 12/02/2017.
Le jeu a été placé dans un boîtier Plexiglas double couche avec un feuillard central traité anti-UV; les fenêtres d'effacement UV des EEPROMs ont été recouvertes d’époxy noir épais (plus sécurisant que du scotch électrique noir, pouvant être poreux à la lumière naturelle).
J'ai choisi de le laisser démonté au final afin de pouvoir montrer l'intérieur de la PCB.
Pour le moment, le jeu a été placé dans un coffre à ma discrétion et devrait sortir uniquement pour des expositions ou des meetings prochains.
Quant à la numérisation de la cartouche, tout a été scanné en 1200dpi et les puces documentées dans une base de données pour référencement.

L'extraction des EEPROMs a été réalisée en 3 fois (après nettoyage des connecteurs à l'alcool 70°); chacune des extractions avec un angle un peu différent dans le port cartouche (pour savoir s'il n'y a pas d'erreur à la lecture sur les broches) - 3 fois fois le même résultat, donc extraction validée.
J'ai inspecté le code binaire extrait et contrôlé la plupart des points de sécurité connus ou si je voyais des erreurs; le code ne compte pas d'erreur à part qu'il est nommé JUNGLE BOOK, qu'il a le numéro de série interne de ce précédent jeu et qu'il ne contient pas la signature numérique de validation de SEGA.
Si l'on place la cartouche sur une SEGA Megadrive classique, le jeu va refuser de se lancer à cause de la puce TMSS (TradeMark Security System) présente sur la carte-mère de la console. Ce qui n'est pas le cas sur les cartes-mères de développement.
Par contre, si je le place sur ma machine reliée sur le PC et que je monte virtuellement la cartouche, le jeu est jouable sur émulateurs, à condition de cocher le débridage de la TMSS.
Le code binaire a été réparti chez plusieurs super-players, pour en faire des vidéos complètes.
Il est important de préserver le matériel d'origine, mais également d'avoir des vidéos sur comment jouer pour l'avenir.

On m'a demandé un enregistrement des musiques du jeu, ce sera fait à une date ultérieure, car il faut extraire dans le code chaque section en audio, comme il n'y a pas de sound-test.
On doit tout enregistrer à la main, à l'ancienne, ce qui est extrêmement chronophage et doit être fait en temps réel.
D'habitude, j'enregistre en accéléré sur le processeur (16 fois plus rapidement que le cycle normal) les instructions, comme cela je n'en ai que pour quelques secondes.
Et l'on peut par exemple, rejouer le code sur un DAC Yamaha un peu plus costaud, comme le Yamaha YM3438, qui donne d'autres résultats parfois assez bluffants.


Pour parler un peu audio et rebondir sur ma remarque différente.
Le DAC Yamaha YM3438 de la SEGA Megadrive/Genesis fonctionne en entrée sur 14 bits (16 bits, où sont soustraits 1 bit de parité & 1 d'entête pour distinguer dans le code).
Les modules FM et PCM créent bien les notes sur 14 bits, par contre le module de multiplexage du son vers la sortie audio de la console ne passe plus qu'en 9 bits d'adressage.
Le problème vient que l'opérateur de transformation (time-shift) sur ce DAC juste avant la sortie audio n'est pas parfait sur cette puce et va générer des effets d'escalier dans les samples FM.
Ce qui donne ce son très caractéristique de la SEGA Megadrive/Genesis que les gens connaissent.
Sur les puces DAC suivantes chez Yamaha, cet opérateur a été revu et corrigé, et ils travaillent bien en entrées comme en sorties en 14 bits d'adressage à tout moment.
On peut donc reprendre le code provenant d'un jeu qui est parfaitement compatible et celui-ci sera traité sur 14 bits, sans effet d'escalier dans le son.

A lire quand vous avez des insomnies : garanti - vous lisez, dans 3 minutes vous dormez.

Re: Audio dans les jeux vidéo, chiptunes et travaux annexes

Publié : 12 févr. 2017 15:44
par comte zero
Et voilà que je découvre qu'on peut faire de l'émulation sur une 3DS! On ne me dit jamais rien à moi. :'(
J'imagine qu'il faut déjà contourner quelques protection avec une cartouche spécifique, genre linker de l'époque de la DS? Et que l'on doit être pas mal bridé par les maj de la console?

Re: Audio dans les jeux vidéo, chiptunes et travaux annexes

Publié : 14 févr. 2017 11:45
par Zetsubou-sensei
Après plusieurs discussions ces dernières 48H en privé, je remets ce point supplémentaire.

Si des gens sont intéressés par des précisions ou des détails, je peux en fournir en MP ou même vulgariser au maximum sur cette même page.
Je ne mords pas et suis toujours disponible avec tout le monde, à qui veut apprendre ou se renseigner.
C'est un plaisir que de renseigner les gens ou étancher leur soif de savoirs.


Tout le monde peut intervenir et proposer leurs sujets, même et surtout les gens qui découvrent ou veulent découvrir - il n'y a pas de questions ou d'interventions bêtes.
On ne va pas vous fouetter en place publique (enfin pas de suite, je cache mes bourreaux dans les geôles de mon donjon).

J'ai créé cet espace aussi pour vous, car j'ai eu de nombreuses discussions en privé sur le sujet des jeux vidéo.
Notamment sur leurs musiques, et il peut être intéressant d'en débattre, voulant apporter une nouvelle idée atypique sur un forum.

Pour la technique, c'est aussi et avant tout pour casser des mythes ou comprendre des fonctionnements.
C'est ce qui est au cœur de la culture geek.
Un geek, linguistiquement parlant, est avant tout quelqu'un qui veut comprendre la monde et le partager.
Loin de l'idée qu'en donnent les médias et la vision des personnages de Big Bang Theory/The IT Crowd ou des gros barbus (puceaux) dans leurs caves qui sentent le rat mort de 3 semaines (ça c'est que les mecs qui bossent sous Linux - et je vais me faire des copains maintenant!)

Pour la beta d'Aladdin, celle-ci ne sera pas cachée dans une cave à tout jamais.
Elle va bientôt partir pour des expositions en 2017, à définir.
La cartouche ne sortira probablement plus de sa double couche de Plexiglas traité anti-UV, sauf pour des recherches et documentations ultérieures.
Par contre, le jeu sera jouable sur une reproduction de la cartouche que je suis en train de préparer, et une console sera à disposition des personnes dans les meetings/salons/musées.
Un exemplaire numérique est parti chez plusieurs personnes, pour assurer un archivage mondial, ainsi que des gens de pouvoir y jouer, décompiler, documenter...

Re: Audio dans les jeux vidéo, chiptunes et travaux annexes

Publié : 14 févr. 2017 11:57
par Kooka
Rhhhaaaaa Aladdin....

[video][/video]

Un des tous meilleurs Disney, assurément ! (Y)

Re: Audio dans les jeux vidéo, chiptunes et travaux annexes

Publié : 14 févr. 2017 13:37
par SAR
Mon frère faisait des cauchemars à l'époque. Il continuait de perdre même en dormant ^^

Re: Audio dans les jeux vidéo, chiptunes et travaux annexes

Publié : 09 mars 2017 15:12
par Zetsubou-sensei
Le DAC Yamaha YM2610 de la Neo Geo me donne quelques cauchemars sur les filtres passe-bas + quelques opérandes pour la génération des signaux FM.
Étant également coincé sur un problème d'interpolation lors de la phase de resampling (sûrement un problème de type de filtre passe-haut).

En plus simple, j'arrive à avoir les bruitages et la pulsation des basses sur la musique, mais pas les autres canaux de musique de manière agréable - le son est brut de décoffrage et on entend des parasites à une fréquence de 800Hz.

Je mets en pause mes recherches le temps de quelques semaines (pour profiter aussi de The Legend of Zelda - Breath of the Wild, ainsi que NieR Automata).

Je travaille depuis 48H sur le DAC de la Megadrive/Genesis (Yamaha YM2612) pour aider sur un prochain projet d'émulateur de cette console.
Les deux puces DACs étant très proches, cela va me permettre de mieux comprendre comment aborder la suite du projet sur Neo Geo.
Toutes les implémentations actuelles font des gros raccourcis, ou carrément zappent, dans des parties de la documentation technique.
Le pire au niveau matériel étant la Genesis/Megadrive 2, pourtant sous licence officielle de SEGA (puce ASIC YM3438 mal dégrossie au lieu de la puce officielle Yamaha YM2612).
Son mono atroce, surchargé et crépitant - matériel de mauvaise facture pour couper dans les frais de fabrication.

[video][/video] [video][/video]
Deux exemples assez marquants entre les révisions du DAC.

Re: Audio dans les jeux vidéo, chiptunes et travaux annexes

Publié : 09 mars 2017 16:46
par comte zero
Aïe, ça pique les oreilles quand même!
Les bandes sons de mon Amiga: un des trucs que j'adorais (mais je radote) :(l)
[video][/video]

Re: Audio dans les jeux vidéo, chiptunes et travaux annexes

Publié : 22 mars 2017 15:10
par Zetsubou-sensei
[video][/video]
Excellente vidéo d'explication sur le Roland MT-32, expandeur MIDI très recherché dans les années 1990 par les joueurs PC.
On en trouve désormais en occasion dans les 40-50€.

Wikipédia liste les divers jeux compatibles avec ce matériel, liste déjà assez longue pour l'époque.
https://fr.wikipedia.org/wiki/Liste_de_ ... land_MT-32


Sur le plan technique de mes recherches sur deux DACs de consoles.
Grâce à l'accès aux documents internes de SEGA sur la programmation de la Genesis/Megadrive,, j'ai pu trouver plusieurs réponses un peu plus claires et contradictoires avec les nombreux reverse engineerings, afin de terminer de corriger mon implémentation du DAC Yamaha YM2612 (courant de la semaine passée).
Image
Un petit extrait sonore provenant du premier stage sur Streets of Rage 2 sera plus parlant qu'un long monologue technique.
Avant:

Après:


Virtuellement, l'implémentation du YM2612 sur un ASIC (avec les correctifs) me donne exactement le même son que la capture à même la sortie du DAC originel.
A l'oscilloscope sur la puce, ainsi qu'à l'analyse spectrale des fichiers son, nous tombons sur les mêmes résultats (les courbes se superposent), on pourrait remplacer le DAC sans problème avec cette dernière implémentation.
Je vais tout de même débugger quelques temps avant de proposer le code en accès open source, sûrement sous licence GPLv3.

Passons du côté du DAC Yamaha YM2610.
Image
L'idée initiale était de pouvoir remplacer ce DAC par une implémentation sur un SoC FPGA, mais je préfère m'orienter vers un ASIC pour des coûts ultérieurs, si l'on devait fabriquer à plus grande échelle cette pièce de remplacement.
Les travaux sur la Genesis/Megadrive m'ont permis de faire un bond en avant dans la compréhension sur la génération des canaux FM de ce DAC.
La documentation sur la partie ADPCM est très bien fournie, notamment en étudiant dans le code source de l'émulateur arcade MAME.
Mais la partie FM a été souvent approximée quand je relis les notes et commentaires dans le code, à défaut de mieux, et j'ai eu de longues discussions en soirées avec plusieurs membres de cette équipe.
Afin de savoir si l'on pouvait donner un souffle nouveau, ce qui est le cas.
En reprenant les correctifs du YM2612, j'ai pu grandement améliorer la qualité sonore, ainsi que corriger le mix final.
Par exemple avec le jeu Magician Lord, l'un des premiers, sinon le premier sorti en location sur Neo Geo AES en 1990.
Je n'ai pas choisi ce jeu par hasard, car les deux compositeurs sur ce jeu avaient entièrement séquencé les musiques, au lieu de se servir de samples PCM par la suite.
Beaucoup plus facile à programmer avec ces derniers, et surtout choix technique de passer par des samples complets car plus personne ne savait programmer directement avec le Z80+YM2612 après le départ de plusieurs grandes figures dans le monde de l'arcade après 1993.

Avant:


Après:



Ce sera tout pour cette fois, ces travaux m'ont bien épuisé et la partie vidéo est en cours de réalisation pour un autre français.
Normalement, le code est déjà intégré pour la prochaine version de MAME, les captures provenant directement de cet émulateur.
Il me reste encore à adapter le code pour l'intégrer sur ASIC dans un temps ultérieur.

Re: Audio dans les jeux vidéo, chiptunes et travaux annexes

Publié : 24 mars 2017 15:18
par g g
Tout ceci, même quand on ne comprend rien, c'est super passionnant Zets. J'adore lire ces explications techniques (Y)(Y)

Comme comte zero, pré-adolescent, j'écoutais en boucle des musiques de jeux-vidéos surtout pour quelques machines qui m'ont impressionné : Amiga 500 et 1200 (forcément ! ), nec-pc engine surtout la version cd et superfamicom. Mais aussi quelques machines d'arcade : Commando (capcom), OutRun (Sega) etc...

que de souvenirs :(l) ça paraît si loin.

Re: Audio dans les jeux vidéo, chiptunes et travaux annexes

Publié : 24 mars 2017 20:44
par comte zero
Ha merci, je me sens moins seul...
La demo-scene amiga était un sacré moment aussi, avec de sacrés artistes, y compris les bandes sons!

Re: Audio dans les jeux vidéo, chiptunes et travaux annexes

Publié : 12 mai 2017 17:43
par Zetsubou-sensei
Suite à la disparition de Robert Miles, il serait temps de parler un peu plagiat de musiques, notamment à partir de l'exemple sur Garou - Mark of the Wolves.
Et par extension, le plagiat dans les jeux video (et dans l'animation japonaise).

https://www.gamekult.com/actualite/kenj ... 95295.html