Connectez votre recalbox ecran crt avec HDMI (FR) - boudabass/recalbox-os GitHub Wiki
IMPORTANT : Il est IMPÉRATIF de disposer de la version 4.1 UNSTABLE de Recalbox pour que ces modifications fonctionnent.
Pour jouer à sa Recalbox sur un écran CRT connecté en HDMI, plusieurs choix sont possibles, selon les connectiques de son écran. * Connexion via la prise HDMI à l’aide d’un adaptateur HDMI / VGA =⇒ VGA / BNC * Connexion via la prise HDMI à l’aide d’un adaptateur HDMI / VGA =⇒ VGA / PERITEL
Beaucoup d’écrans CRT professionnels disposent d’entrée RGB en BNC, comme sur cette image en Line 3:
 Nous aurons donc 3 fils pour les 3 couleurs (Rouge, Vert, Bleu), ainsi que 2 fils pour la synchronisation (verticale et horizontale)
-
Vous aurez besoin d’un adaptateur comme celui ci:
 https://www.amazon.fr/UGREEN-Adaptateur-Rasberry-Chromebook-Ordinateur/dp/B00NBUTHJG/ref=sr_1_5?ie=UTF8&qid=1489225116&sr=8-5&keywords=vga+hdmi
Une fois connecté au port HDMI de votre Recalbox, vous aurez une prise VGA en sortie, et un jack audio. ATTENTION : Vous aurez besoin d’une alimentation externe micro usb, 1A devrait suffire.
-
Il vous faudra ensuite un adaptateur VGA =⇒ BNC comme celui ci:
 https://www.amazon.fr/gp/product/B0033AF5Y0/ref=oh_aui_detailpage_o01_s00?ie=UTF8&psc=1
-
N’ayant pas trouvé d’adaptateur VGA / BNC avec sortie BNC femelle, j’ai dû utiliser 5 connecteurs BNC mâle / mâle, trouvable en boutique spécialisée d’électronique.

Les résolutions acceptées par ce type d’écran diffèrent selon le modèle, mais en général, nous voulons: * Du 480i pour EmulationStation (mon écran ne supporte pas le 480p, et les textes sont illisibles en 240p) * du 240p pour les jeux (résolution de sortie pour quasiment toutes les consoles de cette époque)
Voila à quoi devrait ressembler votre fichier /boot/config.txt
Pour éditer ce fichier, il faut modifier la partition de boot en écriture en suivant ce tutorial : https://github.com/recalbox/recalbox-os/wiki/partition-en-ecriture-(FR)
Pour y accéder par Winscp, suivre ce tutorial : https://github.com/recalbox/recalbox-os/wiki/acces-via-WinSCP-(FR)
#Définition de la résolution du mode custom DMT 87 HDMI pour la résolution des jeux
hdmi_cvt=1920 240 60 1 1 0 0
#Ignore le EDID de votre TV (le CRT peut envoyer de mauvaises informations)
hdmi_ignore_edid=0xa5000080
#Force le mode d'encodage des pixels, 2 correspond à Full RGB
hdmi_pixel_encoding=2
#Désactive le safe mode au boot du raspberry pi
avoid_safe_mode=1
#Ne pas désactiver l'overscan
disable_overscan=0
#Evite les interférences de l'adaptateur en boostant le signal HDMI
config_hdmi_boost=4
#Force le son sur HDMI
hdmi_drive=2
#Selectionne le groupe HDMI CEA
hdmi_group=1
#Résolution CEA 6 = 480 interlaced
hdmi_mode=6
#Kernel utilisé
kernel=zImage
#Utiliser le mode HDMI même si aucun câble n'est connecté
hdmi_force_hotplug=1
#paramètres mémoire
gpu_mem_256=128
gpu_mem_512=256
gpu_mem_1024=512
#Paramètre lié à l'audio
dtparam=audio=on
#Permet de temporiser le boot
boot_delay=3
Quelques explications.
Le Raspberry pi démarrera en mode
, ce qui correspond à du 480i (interlaced).
Si le boot s’effectue directement en 240p, les textes des menus et des jeux seraient illisibles.hdmi_group=1 hdmi_mode=6
La ligne
spécifie une résolution de 1920 x 240 x 60 Hz, qui ne servira pas pour le boot, mais sera enregistrée en tant que mode hdmi_cvt=1920 240 60 1 1 0 0
, que nous utiliserons ultérieurement pour le lancement des jeux.
Voici un peu plus d’explication sur cette ligne :
DMT 87 HDMI
hdmi_cvt=<width> <height> <framerate> <aspect> <margins> <interlace> <rb>
width width in pixels
height height in pixels
framerate framerate in Hz
aspect aspect ratio 1=4:3, 2=14:9, 3=16:9, 4=5:4, 5=16:10, 6=15:9
margins 0=margins disabled, 1=margins enabled
interlace 0=progressive, 1=interlaced
rb 0=normal, 1=reduced blanking
Bien que le Raspberry Pi boot en mode vidéo CEA 6 (via le config.txt) j’ai préféré forcer cette configuration pour EmulationStation:
system.es.videomode=CEA 6 HDMI
global.videomode=DMT 87 HDMI
Petite explication pour les 1920 pixels de large:
Pour faire court, un écran CRT n’a besoin que d’un nombre de pixels vertical (240 ici) et d’un taux de rafraîchissement vertical (60 Hz ici).
Nous spécifions donc 1920 pixels de large, car 1920 est un multiple de 160, 320, 384… qui sont des résolutions souvent rencontrées. pour les résolutions n’étant pas des multiples, nous devrons calculer avec retroarch l’overscan, c’est à dire les bandes noires nécessaires autour de l’écran pour garder le ratio original.
-
Tout passe chez moi dans cette résolution. Mais vous pouvez spécifier une résolution différente par console, avec la ligne suivante:
dreamcast.videomode=hdmi_cvt 320 240 60 1 1 0 0
Lors du lancement d’un jeu, celui doit donc démarrer dans une résolution de 320 x 240 x 60 Hz pixels. Nous pouvons spécifier pour chaque système, la taille d’affichage réel, et le décalage si besoin.
Ces fichiers de configuration sont à créer dans votre dossier partagé
Ils devront contenir le nom du système (le même que dans le dossier roms), par exemple /system/configs/retroarch/
, ou nes.cfg
mastersystem.cfg
Voici le contenu de mon fichier nes.cfg
aspect_ratio_index = "22"
video_smooth = "false"
video_scale_integer = "false"
video_threaded = "false"
custom_viewport_width = "1680"
custom_viewport_height = "224"
custom_viewport_x = "118"
custom_viewport_y = "17"
-
Pour régler le positionnement de l’écran, il suffit de changer la valeur custom_viewport_x et y, directement en jeu via le menu retroarch (touche Hotkey + B), puis de recopier ces valeurs dans le fichier .cfg du système.
-
Voici les viewports width et height que j’ai configuré pour mon CRT:
nes.cfg custom_viewport_width = "1680" custom_viewport_height = "224" snes.cfg custom_viewport_width = "1792" custom_viewport_height = "224" gb.cfg gbc.cfg gamegear.cfg custom_viewport_width = "960" custom_viewport_height = "144" gba.cfg custom_viewport_width = "1440" custom_viewport_height = "160" megadrive.cfg neogeo.cfg segacd.cfg sega32x.cfg fba_libretro.cfg custom_viewport_width = "1920" custom_viewport_height = "224" mastersystem.cfg custom_viewport_width = "1536" custom_viewport_height = "192" psx.cfg n64.cfg custom_viewport_width = "1920" custom_viewport_height = "240" pcenginecd.cfg custom_viewport_width = "1760" custom_viewport_height = "240"
Pour l’arcade, j’utilise fba_libretro.
Chaque jeu ou presque ayant une résolution différente, j’ai défini un fichier par jeu, pour garder le ratio original.
Même manipulation que par système, sauf que les fichiers se situent dans votre dossier partagé /system/configs/retroarch/fba_libretro/
Le contenu du fichier est identique à la configuration par système. Le nom du fichier doit être sous la forme rom.zip.cfg Donc par exemple : 1944.zip.cfg
Pour gérer les viewports sur l’émulateur Nintendo 64, nous devons sélectionner le core retroarch
.
Ensuite, de la même façon que pour les autres systèmes, la configuration se trouvera dans un fichier glupen64
n64.cfg
Pour les jeux arcade Mame, le core AdvanceMame à la particularité de calculer automatiquement la résolution de chaque jeu, en l’adaptant à votre résolution d’écran.
Ainsi, nous nous passons d’effectuer une configuration par jeu (comme c’est le cas pour fba_libretro).
Cette partie reste à compléter.
Le thème doit être réalisé en 4/3 pour avoir une image bien cadrée, je vous propose un thème crée par Supernature2K: https://forum.recalbox.com/topic/6580/release-wip-theme-recalbox-multi-help-needed
Ce thème est configurable, et s’adapte parfaitement aux CRT.
