Here is the raspberry and recalbox configuration to output 240p via hdmi to crt tv 15khz.
I use this transcoder and any other rgb to component ypbpr video and it works 240p in arcade games, 8 and 16 bit.
Recalbox boot configuration
The resolutions accepted by this type of screen are different depending on the model, but in general, we want :
- 480i for EmulationStation (my monitor does not support 480p, and text is unreadable in 240p).
- 240p for games (output resolution for almost all consoles of that time).
This is what your recalbox-user-config.txt file should look like :
# DMT 87 HDMI custom mode resolution setting for game resolution
hdmi_cvt=1920 240 60 1 1 0 0
# Ignore the EDID of your TV (CRT can send wrong information)
# Force the pixel encoding mode, 2 corresponds to Full RGB
# Disable safe mode at raspberry pi boot
# Do not disable overscan
# Avoid adapter interference by boosting the HDMI signal
# Force sound on HDMI
# Selects the HDMI CEA group
# CEA resolution 6 = 480 interlaced
# Kernel used
# Use HDMI mode even if no cable is connected
# memory settings
# Audio related parameters
# Allows to delay the boot
- The Raspberry Pi will boot in
hdmi_mode=6, which corresponds to 480i (interlaced).
- If the boot is done directly in 240p, the texts of the menus and the games would be unreadable.
- The line
hdmi_cvt=1920 240 60 1 1 0 0 specifies a resolution of 1920 x 240 x 60 Hz, which will not be used for boot, but will be saved as
DMT 87 HDMI mode, which we will use later for launching games.
Here is a little more explanation of this line:
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
Recalbox.conf file configuration
Although the Raspberry Pi boots in CEA 6 video mode (via the recalbox-user-config.txt file), it is better to force this configuration for EmulationStation:
system.es.videomode=CEA 6 HDMI
Next we need to specify the boot resolution for our emulators, globally:
global.videomode=DMT 87 HDMI
All emulators will be launched in
DMT 87 HDMI mode (custom mode) containing via the
hdmi_cvt of the
recalbox-user-config.txt file, the 1920 x 240x 60Hz resolution.
Small explanation for the 1920 pixels wide :
To make it short, a CRT screen only needs a vertical number of pixels (240 here) and a vertical refresh rate (60 Hz here).
We specify 1920 pixels wide, because 1920 is a multiple of 160, 320, 384… which are often met resolutions.
For resolutions that are not multiples, we will have to calculate with RetroArch the overscan, that is to say the black bands necessary around the screen to keep the original ratio.
Everything must fit in this resolution. But you can specify a different resolution per console, with the following line:
dreamcast.videomode=hdmi_cvt 320 240 60 1 1 0 0