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)
hdmi_ignore_edid=0xa5000080
# Force the pixel encoding mode, 2 corresponds to Full RGB
hdmi_pixel_encoding=2
# Disable safe mode at raspberry pi boot
avoid_safe_mode=1
# Do not disable overscan
disable_overscan=0
# Avoid adapter interference by boosting the HDMI signal
config_hdmi_boost=4
# Force sound on HDMI
hdmi_drive=2
# Selects the HDMI CEA group
hdmi_group=1
# CEA resolution 6 = 480 interlaced
hdmi_mode=6
# Kernel used
kernel=zImage
# Use HDMI mode even if no cable is connected
hdmi_force_hotplug=1
# memory settings
gpu_mem_256=128
gpu_mem_512=256
gpu_mem_1024=512
# Audio related parameters
dtparam=audio=on
# Allows to delay the boot
boot_delay=3
Copy
Some explanations:
- The Raspberry Pi will boot in
hdmi_group=1
and 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
Copy
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
Copy
Next we need to specify the boot resolution for our emulators, globally:
global.videomode=DMT 87 HDMI
Copy
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