Un train en retard ne rend pas le service rendu.

- KirbyX, dont la routourne a visiblement tourné

Dojobar
L'émission de radio déjantée qui revient toutes les deux semaines !



Émission s23e06 − Sea of Stars
Le 25 mai 2024, par Mortal

Émission s23e05 − Rétro Fighterz
Le 1 mai 2024, par Mortal

Émission s23e04 − Unicorn Overlord
Le 22 avril 2024, par Mortal



Parenthèse technique : le NESRGB

Comment obtenir la meilleure qualité d’images et de son possible avec une console rétro et un écran moderne ? C’est la question que j’ai commencée à me poser il y a quelques mois de cela et ça a été une épopée épique pour comprendre l’ensemble des mécaniques de traitement du signal analogique de nos bonnes veilles consoles.

Mais plus l’on creuse dans cet univers de signaux, de synchronisation, de connectiques et de couleurs, plus on se rend compte que toutes les consoles ne sont pas nées libres et égales face à la qualité d’images. Il y a des consoles qui ont été pensées dès le départ pour offrir le plus de possibilités et d’autres qui n’ont malheureusement pas bénéficié d’un tel soin.

C’est malheureusement le cas de la NES, revenons un peu dessus.

DAC ou pas DAC ?

Commençons par le composant essentiel sur toutes nos antiquités : le DAC pour Digital to Analog Converter. Il s’agit du composant capable de transformer les données numériques produites par les processeurs de la console (emplacement des sprites, du fond, des pixels, etc) en signal analogique pouvant être affiché sur une télévision cathodique (ou tout autre moniteur capable de traiter des entrées analogiques).

C’est donc un composant essentiel, vital pour une console ne supportant que les signaux analogiques. Même si les consoles modernes disposent d’une sortie numérique, elles ont toujours un DAC pour assurer une sortie analogique (même si cela se réduit à ma connaissance à un signal Component).

Mais alors, c’est quoi le problème avec le DAC de la NES ?

La NES dispose de deux processeurs principaux : le CPU, Central Processing Unit (un Ricoh 6502 modifié) et le PPU, Picture Processing Unit (un autre processeur Ricoh). Pour rappel le CPU gère tout ce qui est calcul, le PPU gère la génération des images (c’est notamment lui qui gère les scrollings, les sprites ou encore la palette de couleurs affichable).

Si le CPU est bien connu (il s’agit en fait d’une version castrée d’un 6502), le PPU a été fondu spécialement pour Nintendo et on ne dispose donc pas vraiment de ces spécifications fonctionnelles.

Et c’est là que les ennuis commencent : le DAC de la NES ne produit qu’un signal composite (donc pas top) et est directement inclus dans le PPU. Donc, non seulement, on ne sait pas vraiment comment fonctionne ce composant, mais en plus, le mieux qu’il puisse faire est le signal le plus pourri de la planète.

Le cas français est, comme nous l’avons déjà vu, encore pire. La NES devant obligatoirement sortir du RGB pour être vendable en France, Nintendo a ajouté un circuit convertissant le signal composite de base en signal RGB.

Le résultat est que la NES française sort l’image la plus dégueulasse possible : un signal très bruité à la base (composite) que l’on remachonne encore pour en faire du RGB.

Mais concrètement on peut y faire quoi ?

Le plus simple (et le moins coûteux) est de se fournir une NES pas française. Acheter une NES en Allemagne ou en dans les pays scandinaves où elle dispose directement d’une sortie composite permet d’obtenir une qualité d’image un peu meilleure que la NES française.

Attention tout de même, rappelez-vous bien qu’il y a deux zones PAL en Europe : PAL A et PAL B. Les consoles espagnoles, italiennes, portugaises ou britanniques ne seront pas forcément compatibles avec les jeux achetés en France (il est très très simple de faire sauter la protection, mais si vous recherchez cette solution, c’est qu’a priori vous ne voulez pas bricoler…).

Il est également possible de faire une modification, assez simple, de la NES française pour lui ajouter des sorties RCA permettant d’obtenir le même signal composite, simplement en passant outre la sortie RGB. Ce n’est pas forcément très élégant, mais ce n’est pas très compliqué à faire non plus.

Une autre solution consiste à récupérer une borne d’arcade PlayChoice 10. Ces bornes ont été produites par Nintendo pour jouer des jeux NES directement dans les salles d’arcade. Il se trouve qu’elle dispose d’un PPU fondu spécialement pour l’occasion capable de sortir du RGB.

C’est la solution dite « officielle » dans la mesure où elle n’utilise que des composants produits par Nintendo et Ricoh. Par contre, il va falloir vous attendre à douiller : le PlayChoice 10 n’est pas particulièrement bon marché. Et il se fait de plus en plus rare. Ce PPU utilise également une palette de couleurs différentes, produisant des résultats très approximatifs sur certains jeux. Et pour couronner le tout, il n’a jamais été pensé pour les régions PAL, il est donc impossible de poser sur une NES Française sans la transformer en NES américaine (changement du CPU obligatoire, changement de quartz donnant la fréquence à tout ce beau monde).

Entre ces deux solutions, il y a le NESRGB.

NESRGB

Tim Worthington est un moddeur australien qui a créé, il y a environ 2 ans mainteant, une carte permettant de sortir un signal RGB depuis n’importe quelle NES ou Famicom. Le monsieur étant dans une zone PAL, il a même pris le soin de s’arranger pour que sa modification soit compatible avec les consoles PAL et NTSC, courtoisie que n’ont généralement pas les moddeurs américains (c’est suffisamment rare pour être signalé).

Ouh ! La belle board !

Ouh ! La belle board !

Mais comment ça marche du coup, c’est de l’émulation ? Du remplacement de PPU ? Une intervention de Raël ?

La carte en elle-même ne fait pas d’émulation. Elle ne remplace d’ailleurs pas le PPU d’origine, qui est utilisé pour ce mod, essentiellement parce qu’on ne sait pas vraiment comment il marche (il existe un projet pour recréer un PPU qui serait capable de faire du RGB nativement, mais il n’est pas encore très avancé).

L’idée de Tim était d’utiliser le PPU d’origine et de créer un nouveau DAC en parallèle de celui de la console, ce qui est à la fois très élégant et très efficace.

Élégant, parce que finalement la modification est très légère : il ne fait que créer une nouvelle palette de couleurs (impossible d’exploiter celle d’origine) et de créer un signal RGB (ou autre d’ailleurs, on pourrait même faire du HDMI en théorie !).

Efficace parce que cela n’ajoute strictement aucune latence au processus d’origine : c’est toujours le PPU qui donne le signal de refresh à chaque top donné par le CPU.

Il s’agit donc véritablement de transformer une NES pour lui faire cracher la meilleure qualité d’image possible.

J’en veux ! J’en veux ! Comment on fait ?

Loin de moi l’idée de vous montrer pas à pas comment on fait. D’abord parce que d’autres le font bien mieux que moi, et ensuite parce que Tim propose des plans et une méthode à suivre. Ce sera toujours plus précis et plus suivi que tout ce que je pourrais faire.

Néanmoins, je souhaiterais partager avec vous les difficultés que j’ai rencontrées et les quelques astuces que j’ai utilisées.

Tout d’abord, je précise que j’ai flingué complètement une NES dans le process. C’est une modification qui est très difficile à faire, et il ne suffira pas d’avoir des connaissances en soudure pour s’en sortir.

La plus grosse difficulté est le dessoudage du PPU. Oui, vous avez bien lu, il va falloir complètement dessouder le PPU de la NES pour intercaler le NESRGB entre la carte-mère et le composant. C’est un processus tellement long, difficile et pénible que Tim a créé une page répertoriant toutes les méthodes possibles pour le faire. C’est d’ailleurs à ce moment que j’ai flingué une NES (j’ai cassé une patte du PPU en question au ras du composant, irratrappable sans avoir les outils adéquats).

Mais avec un bon fer à souder (qui chauffe très très bien), de la patience et un peu de chance, on arrive quand même à s’en sortir pour cette première partie (compliquée, mais pas impossible donc).

Le reste n’est pas bien compliqué : des fils, des soudures et c’est à peu près tout. Tim fournit, en plus du kit de base, tout ce qui est nécessaire pour la connectique. Si vous le faites sur une NES française, vous pouvez même réutiliser la prise Multi-Out d’origine pour sortir le signal du NESRGB. J’ai personnellement opté pour une sortie à part essentiellement parce que j’avais la flemme de démonter l’AV-Box (la petite boîte contenant le convertisseur composite vers RGB). Flinguer l’AV-Box alors qu’on a réussit à dessouder le PPU, je pense que j’aurais craqué…

J’ai donc opter pour la sortie indépendante : deux connecteurs assez plats (un connecteur 8-Pin Mini-Din et un connecteur Jack audio) qu’il faut percer dans la carcasse de la console… ce qui n’est pas sans difficulté. Le plastique de la NES est vraiment très difficile à percer (ou alors j’ai absolument pas les bons forets) et pour que ce soit un peu esthétique, il est nécessaire de les mettre sur la coque du bas, à côté de la sortie d’origine, à un endroit franchement pas très accessible.

Les mignonnes petites prises RGB

Les mignonnes petites prises RGB

Comble de la galère : il faut souder les fils venant du NESRGB sur ces deux câbles dans une position ultra pas confortable (dans le « creux » de coque de la NES) en ayant la carte-mère pas trop loin…

Bref, même si Tim dit de faire le montage dans ce sens, je pense que ça vaut le coup de tenter l’inverse : souder les fils sur les connecteurs d’abord et venir les repiquer sur le NESRGB ensuite.

Remettre le blindage sans sectionner de fil peut aussi se révéler un peu galère (à quoi ça sert d’avoir autant de blindage ?).

Comme vous pouvez le voir sur la photo, on peut même ajouter un interrupteur pour commuter entre 3 palettes de couleurs : la palette d’origine (ce que j’ai choisi et soudé en dur), la palette améliorée (qui est en fait la palette utilisé par l’émulateur FCEUX) et la palette du PlayChoice 10 (parce que pourquoi pas…).

Bon et du coup, ça donne quoi ?

Ça fait maintenant presque 3 mois que j’ai fait la modif sur ma console et je trouve le résultat toujours aussi impressionnant. Quelque soit le jeu que je met dans ma NES, l’image me bluffe à chaque fois : elle est super claire, chaque pixel est parfaitement défini, les couleurs sont chaleureuses. C’est vraiment un plaisir de rejouer à des grands classiques de la NES dans ces conditions-là !

Mais je vous laisse juger par vous-même avec ces quelques extraits.

Ces premiers extraits ont été upscalés en 720p puis simplement coupés pour être visible en plein écran, sans bande noire.

La Bande à Picsou :

Kirby’s Adventure :

Probotector (Contra) :

Cet extrait a simplement été doublé en résolution (288p -> 576p) puis les bandes noires ont été coupées

Castlevania III :

Cet extrait a la même résolution que le précédent, mais des scanlines ont été ajoutés pour votre confort visuel :)

Batman :

Mise à jour du 11 juin 2017 !

Un petit exemple de NESRGB en face-à-face avec une NES Composite/RGB (NES FRA non modifiée donc). La résolution a été boostée en 1080p, à 50Hz bien évidemment. Pour voir le mieux possible ce que ça donne, je vous conseille de la regarder en 1080p :


Par Mortal
Le 3 août 2015 | Catégories : Editos

Je le couperai au montage…
Voir les articles de Mortal

A voir également
Les trucs qu'on a rédigés avec nos petits doigts potelés

The Stanley Parable Ultra Deluxe (NS)
Le 22 novembre 2024, par Mortal

Dojo Hebdo 607 : du 11 au 17 novembre 2024
Le 17 novembre 2024, par Gueseuch

Dojo Hebdo 606 : du 4 au 10 novembre 2024
Le 10 novembre 2024, par Gueseuch


Dojo Hebdo 604 : du 21 au 27 octobre 2024
Le 27 octobre 2024, par Gueseuch

Dojo Hebdo 603 : du 14 au 20 octobre 2024
Le 20 octobre 2024, par Gueseuch

Dojo Hebdo 602 : du 7 au 13 octobre 2024
Le 13 octobre 2024, par Gueseuch



Dojo Hebdo 600 : du 23 au 29 septembre 2024
Le 29 septembre 2024, par Gueseuch


Dojobar
L'émission de radio déjantée qui revient toutes les deux semaines !



Émission s23e06 − Sea of Stars
Le 25 mai 2024, par Mortal

Émission s23e05 − Rétro Fighterz
Le 1 mai 2024, par Mortal

Émission s23e04 − Unicorn Overlord
Le 22 avril 2024, par Mortal