Please do not post a support request without first reading and following the advice in https://retropie.org.uk/forum/topic/3/read-this-first

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 :

    1. if I use the H-amp potentiometer, I find that the image is cropped!
    2. 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.

    IMG_5794.JPG
    IMG_9589.JPG

    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.

  • Global Moderator

    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.

  • Global Moderator

    tvservice doesn't function correctly on a Pi4 - since it use a new set of drivers and tvservice 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 ?

  • Global Moderator

    @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 as tvservice 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 and tvservice 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.

  • Global Moderator

    @Nevohteeb tvservice still works when you're not using the v3d 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 for tvservice.


  • 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 and tvservice 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)
    
  • Global Moderator

    @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 ?


  • @mitu

    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.

  • Global Moderator

    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.