RP4 on 15kHz arcade cabinet : how to properly set TATE games resolution?
-
Hello everyone,
I am using retropie 4.6 on a RP4 inside my arcade cabinet through the JAMMA connector.
The RGB signal comes from the GPIO of course through a home-made GERT VGA 666 (just a video DAC after all...) adapter.My monitor is an Hantarex MTC9110 (15kHz monitor) and I am using a classic 240p mode for emulstation as follows:
dtoverlay=vga666 disable_audio_dither=1 enable_dpi_lcd=1 display_default_lcd=1 hdmi_ignore_edid=1 dpi_group=2 dpi_mode=87 hdmi_timings=320 1 20 20 44 240 1 6 7 10 0 0 0 60 0 6400000 1 gpu_mem_256=128 gpu_mem_512=256 gpu_mem_1024=256
I try to set the best (ie original) resolutions per game by using the opt/retropie/configs/all/retroarch/config/MAME\ 2003-Plus/<game_name>.cfg files.
So far, I managed to set the 384x240 mode for CPS2 using the following lines:aspect_ratio_index = "23" custom_viewport_width = "384" custom_viewport_height = "224" video_threaded = "false"
The result is absolutely great, even if I have to resize the image using the H-amp, H-shift, V-amp and V-shift potentiometer that are on the monitor. This is ok, it reminds me when I had real arcade PCBs :).
Nevertheless, problems come when it turns to play TATE games which are not in 320x240 resolution. As examples, Ketsui, Dodonpachi daioujou, ESP Galuda... are in 448x224.
I tried the following file:video_allow_rotate = "true" video_rotation = 2 video_scale_integer = "false" aspect_ratio_index = "23" custom_viewport_width = "448" custom_viewport_height = "224" video_threaded = "false"
In this case, I can see that the definition is the good one. The image is clear, and the scrolling is smooth. But the image is too big for my screen. Ok, then I try adjust it thanks to the potentiometer and here is the surprise :
- if I use the H-amp potentiometer, I find that the image is cropped!
- if I sue the H-shift potentiometer, I can make the missing part of the image appear, but of course, I then hide another part of the image on the other side of the screen.
I put two pictures as an illustration of my problem.
So, did someone manage to play that kind of game in the original (224x448) resolution using an RP4/GertVGA666/arcade monitor? (like me...) and how?
-
@Nevohteeb I haven't tested with a rpi4.
I'm using scripts from RetroPie CRT Edition for the Pi3b+ for my MX7000 and MX4000. The MX4000 is exclusively used for Tate Mode . -
Hi Rion,
I'll give that a try, thx.
-
Hello everyone,
there must be something I do not do well or I do not understand.
Actually, I manage to change the resolution by using the vcgencmd. It actually works under emulstation (I can see the difference between old/new resolution).
Nevertheless, as soon as I launch any game, the screen remains black. I don't even see the launch message (the white strip with the name of the emulator, I guess you know the one.).I also tried to use the run command-onstart/onend.sh scripts. Same problem.
-
Can you post your
onstart
script ? -
@mitu said in RP4 on 15kHz arcade cabinet : how to properly set TATE games resolution?:
Can you post your
onstart
script ?Here it is :
vcgencmd hdmi_timings 384 1 75 32 115 224 1 14 10 18 0 0 0 60 0 9600000 1 tvservice -e "DMT 87" fbset -depth 8 && fbset -depth 16 -xres 384 -yres 224
The hdmi_timings here are just an example.
-
tvservice
doesn't function correctly on a Pi4 - since it use a new set of drivers andtvservice
doesn't know about the DRM/KMS layer. -
Well, I indeed read that somewhere, but what I do not understand is that if I just write the aforementioned script under another name, let's say "set_video.sh", I actually see the image changing, which makes me think the resolution changed.
Then, is there another way to modify the resolution on the fly ?
-
@Nevohteeb said in RP4 on 15kHz arcade cabinet : how to properly set TATE games resolution?:
Then, is there another way to modify the resolution on the fly ?
AFAIK, only if you're running under X and using
xrandr
to create new resolutions and change them on the fly. Not sure you'll get 100% the same functionality astvservice
offered on previous Pi models. -
@mitu said in RP4 on 15kHz arcade cabinet : how to properly set TATE games resolution?:
tvservice
doesn't function correctly on a Pi4 - since it use a new set of drivers andtvservice
doesn't know about the DRM/KMS layer.Just one question about that: if tvsercice does not work on RPI 4, why is it mentioned in the documentation here : https://www.raspberrypi.org/documentation/configuration/hdmi-config.md
Even for RPI 4.
-
@Nevohteeb
tvservice
still works when you're not using thev3d
KMS/DRM driver, but then you'll loose all the 3D/GL functionality - not a very usable system for RetroPie and the emulators included.
Maybe the documentation needs updated to specify the Pi4 limitations fortvservice
. -
Ok, well, thx. :)
I guess I should downgrade to RPI 3 then. -
@mitu said in RP4 on 15kHz arcade cabinet : how to properly set TATE games resolution?:
tvservice
doesn't function correctly on a Pi4 - since it use a new set of drivers andtvservice
doesn't know about the DRM/KMS layer.I installed retropie on a RPI3 and I still have the same message.
[E] Failed to power on HDMI with explicit settings (DMT mode 87)
-
@Nevohteeb You'll have to provide the complete command that gives this error - maybe the video mode you're trying to set is not correct ?
-
Hi mitu,
it happens when i do:
vcgencmd hdmi_timings 320 1 16 30 34 240 1 2 3 22 0 0 0 60 0 6400000 1 tvservice -e "DMT 87"
Actually, the hdmi_timings are good. The problematic part is the tvservice one.
-
From the looks of it,
tvservice
may be trying to power on the actual HDMI port. Do you have configured the PI to output to GPIO by default ?enable_dpi_lcd=1 display_default_lcd=1
-
This is the results of vcgencmd get_config int.
enable_dpi_lcd and display_default_lcd are set to 1.arm_freq=1500 audio_pwm_mode=514 config_hdmi_boost=5 core_freq=500 core_freq_min=200 disable_audio_dither=1 disable_commandline_tags=2 disable_l2cache=1 display_default_lcd=1 display_hdmi_rotate=-1 display_lcd_rotate=-1 dpi_group=2 dpi_mode=87 enable_dpi_lcd=1 enable_gic=1 force_eeprom_read=1 force_pwm_open=1 framebuffer_ignore_alpha=1 framebuffer_swap=1 gpu_freq=500 gpu_freq_min=250 init_uart_clock=0x2dc6c00 mask_gpu_interrupt0=1024 mask_gpu_interrupt1=0x10000 max_framebuffers=2 over_voltage_avs=-23750 overscan_scale=1 pause_burst_frames=1 program_serial_random=1 total_mem=4096 hdmi_force_cec_address:0=65535 hdmi_force_cec_address:1=65535 hdmi_ignore_edid_audio:0=1 hdmi_pixel_freq_limit:0=0x11e1a300 hdmi_pixel_freq_limit:1=0x11e1a300
Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.
Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.