Hello,
A nouveau en quête d'un upscaler pour mes chères consoles rétro, et en grattant sur le net pour me documenter, je suis retombé sur un vieux thread de shmup11 où il est question de customiser le sclaer chinois GONBS, pas fameux à la base mais qui fait le job.
Le Gonbs est à la base prévu pour l'arcade, il n'est pas prévu dans son architecture hardware et software pour accepter autre chose, même si il est vrai qu'on peut lui rajouter un syncstrike au cul pour pouvoir brancher les consoles de salon.
Par ailleurs son upscale est plutôt rudimentaire, voire pas top comparé aux cadors du genre que sont les XRGBs, le Framemeister et l'OSSC : image avec un filtre de lissage un peu flou, réglages présents mais peu variés, image qui tremblote selon la source, perte de synchro, etc...et les résolutions pas folichonnes sur TV HDs.
En retombant donc sur le topic de shmup11, j'ai vu qu'un boulot dingue a été fait sur le gonbs : un firmware custom existe désormais, développé par un certain Robert (^^), et un github du projet est dispo à cette adresse :
https://github.com/ramapcsx2/gbs-control
Quel est l'intérêt de ce nouveau firmware ? Il est multiple :
- Prise en charge des sources 240p et 480i/480p avec le moins d'emmerdes possibles (en gros le but est d'être plug and play sans se prendre la tête).
- Upscale de qualité avec des presets prédéfinis selon la console utilisée.
- Compatibilité pour le plus d'écrans possibles (TVs HD et moniteur de PC).
- Résolutions de sortie adéquates en fonction de la source, pour éviter des images écrasées par exemple.
- Filtre de scanline déjà intégré.
- LAG Free.
En plus d'un firmware custom et consoles friendly, une recherche hardware a également été menée, et a conduit a des suggestions de modifications physiques du gonbs, l'objectif étant d'enlever le plus de parasites possible à l'image upscalée.
Ce qui m'a donné envie de tenter la modif :
- J'ai déjà un Gonbs sous la main, tout prêt avec adaptateur péritel pour brancher les consoles dessus.
- Le coût matériel supplémentaire est faible : environ une 20aine d'€ tout compris.
- Le guide de mise en place est certes long à lire et contient des lacunes, mais c'est assez intuitif globablement et je pense pouvoir m'en sortir.
- Le jeu en vaut probablement la chandelle par rapport à l'upscaler d'origine.
Ce dont j'ai eu besoin :
- Un scaler Gonbs évidemment, toute version est compatible. Je possède le vieux 8220, il existe désormais une version 8200 (un seul port VGA en sortie) et même une version avec sortie HDMI. Coût d'environ 25-30€ par amazon.
- Une PCB de développement type Arduino : référence NodeMCU (V3 pour moi). Coût de 5€ par amazon.
- Des connecteurs Dupont.
- Une alimentation 5V (3A minimum).
- Des résistances et de l'huile de coude car il faut que le Gonbs passe sur le billard.
Une fois tout le matos reçu, j'ai suivi le guide du lien ci-dessus pour télécharger le fameux firmware custom et charger celui-ci dans le Gonbs.
Le NodeMCU V3 : il se branche en USB sur votre PC, pour pouvoir charger des programmes dessus.
Une fois cette première étape faite, il faut relier l'Arduino au Gonbs. J'ai fait un schéma simplifié pour vous représenter la chose :
Ce schéma indique également des modifications hardware à réaliser directement sur le Gonbs. Ces modifs ont surtout pour objectif de limiter les parasites et bruits de fond inhérents à la conception du Gonbs, pour ainsi avoir une image nickel.
Modif à faire absolument :
- Enlever le condo numéro C11 sur le Gonbs.
- Rajouter une résistance de 100ohm entre la masse et la synchro sur l'entrée vidéo du Gonbs : cela permet de rendre le gonbs le plus compatible possible avec les synchros des consoles de salon.
Modifs non obligatoires :
- Remplacer C11 par un condensanteur de 22µF. Si vous n'avez pas une image encore top, cela permet de la stabiliser encore plus.
- Enlever les potards de réglages RGB : le Gonbs étant à la base prévu pour l'arcade, ces potards permettent normalement d'atténuer le signal RGB d'un jeu, si ce signal est trop fort. Ces potards ne permettent pas d'avoir du 0ohm sur les signaux RGB, même baissés à fond. Les enlever et ponter les points de soudure permet d'avoir des signaux de couleur purs, mais ce n'est pas forcément obligatoire d'en arriver puisque qu'on peut repasser par des réglages complémentaire en sortie.
- Remplacer R58 par de la ferrite : une nouvelle fois pour enlever des parasites éventuels à l'image.
- Rajouter un condo SMD de 100nF entre R58 et R59 : nécessaire si vous avez installé la ferrite.
Pour le moment, j'ai fait les modifications "obligatoires", pas les optionnelles, car vous verrez plus bas, sur ma TV l'image est parfaite et exempte de parasites.
Miantenant passons aux branchements entre l'Arduino et le Gonbs :
- Il faut tout dabord fermer le jumper du Gonbs.
- Le signal SCL du Gonbs se branche sur le D1 de l'Arduino.
- Le signal SDA du Gonbs se branche sur le D2 de l'Arduino.
- La masse du Gonbs vers le G de l'Arduino.
- Le VCC du Gonbs vers le 3V de l'Arduino.
- Il y a également un pin d'un chip du Gonbs à aller brancher sur le D6 de l'Arduino : il s'agit du second pin en partant de la gauche sur le chip sur le Gonbs.
Voici mon bricolage Frankenstein obtenu :
Le valeureux "XGOJI" que j'ai monté il y a quelques années. Il est équipé d'une entrée péritel maison, et j'y ai désormais ajouté l'arduino pour pouvoir utiliser le firmware custom
Passons aux tests : j'ai pour le moment expérimenté la Megadrive et la Supernintendo. Mon X-Goji possède un T SLG pour générer les scanlines, que j'ai désactivé pour mes tests, et pour ainsi tester le filtre de scanlines que le Gonbs peut désormais me sortir seul comme un grand.
Allons y avec la Megadrive : réglages tout en automatique gérés par le Gonbs, résolution de sortie 1080p. Je n'ai pas eu besoin d'utiliser un sycstrike en entrée.
Par rapport au Gonbs originel, c'est le jour et la nuit. Les pixels sont bien "cryspis", l'image est nette et fixe, pas de couleurs qui bavent, pas de tremblote, pas de vague en fond, pas de perte de synchro à signaler.
Attention je ne pars pas dans le débat de savoir si c'est mieux que le Framemeister par exemple, je suis persuadé que ce monstre fait bien mieux.
Voyons voir avec la Super Nintendo :
Je remarque un léger flou par rapport à la Megadrive, mais ça reste plus que correct et les couleurs ne bavent pas. La synchro utilisée de base dans les câbles Super Nintendo PAL n'est pas top, le léger flou est peut-être dû à cela. A tester avec un câble de chez Retrogaming cables, cela ne peut qu'être mieux.
Quid des scanlines ? Le développement de ce filtre n'est pas bien avancé, on ne peut par exemple par en régler l'intensité, mais voyons voir ce qu'il donne :
C'est pas mal du tout, le résultat est similaire à un TSLG. L'image est assombrie par le filtre scanline, mais on peut refaire un réglage du gain RGB en automatique sur le nouveau firmware.
Tiens d'ailleurs, comment on fait les réglages avec le nouveau firmware custom ? Les boutons sur mon Gonbs sont devenus inutilisables ! L'Arduino étant muni d'un module WIFI, tout est contrôlable très simplement depuis un smartphone .
Voici les différents menus et réglages possibles ; on a même des explications pour savoir à quoi sert chaque chose :
Alors est-ce que cela vaut le coup ? Pour ma part oui sans hésiter, l'image est top, réglages automatiques bien sentis, pas de Lag, firmware évolutif, mise en place pas bien dure, et puis putain c'est pas cher au final. D'autant plus que le Gonbs HDMI existe maintenant, on peut donc se faire un upscaler bon marché et tout à fait fonctionnel pour une 50aine d'€ et qui ira très bien sur les TVs d'aujourd'hui. Un bémol pour moi : les scanlines dont on ne peut pas régler l'intensité ; le filtre existant est trop costaud à mon goût. Après, on peut toujours passer par un SLG-3000 si on a ça sous la main, et le tour est joué.
En conclusion, je ne vais bien évidemment pas aller jusqu'à dire que cela remplace le Framemeister ou l'OSSC, mais le Gonbs est désormais une excellente solution d'upscaling pour les sources 240p et 480p. Je n'ai pas encore testé la PS2 et la Gamecube en YUV, mais j'ai peu de doutes sur la réussite du Gonbs sur ce point là aussi.
Oh, j'oubliais, on peut sauvegarder des réglages prédéfinis aussi !