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

Scanline shaders on CRT monitor? And problem with bottom black border at lr-snes9x



  • The fourth answer at this thread is an actual problem. The bottom part of lr-snes9x is black in all games. But the RetroArch menu opened up with Select+X shows the full usage of screen. The black part is only seen in the game.

    Short story:
    Does it make sense to use scanline shaders on a CRT monitor with a 640*480 resolution via VGA? Any suggestion on this topic?

    Long story:
    Hello guys, finally I "upgraded" my current LCD based HDMI monitor with an old CRT based VGA monitor to play retro games. Got it for free btw. There is no real problem, I managed to get to working it. Now, with the different resolution and monitor type, the previously used shader aren't looking good. I did use the most common crt-pi shaders. Now after i got a crt monitor, I don't need to emulate it anymore or do I? I don't run the games in their original resolution, it's 640*480 pixel and the monitors own scanlines are too small to have the "correct" effect, right?

    Important note: I am using an HDMI to VGA adapter.

    And here I am now. I am not aiming for 100% accurate and correct emulation and reproduction, but if possible, I would do it "correct". Leaving out shaders looks somewhat like on my flat screen, I miss those "big" scanlines. But maybe its just wrong. So, do you have any suggestion on this topic? I play mainly those "common" 8-bit and 16-bit home consoles and handhelds, plus arcade. For the emulators, I only use lr- emulators. In the configs, I did selected video mode "DMT-4", which should be the same for my boot config as hdmi_group 2 and hdmi mode 4. In snes emulators RetroArch settings, I did aspect ration 4:3, custom aspect ration down to 1x (original), windowed scale 1.0x and integer scale off, to get full screen. For the handhelds, I don't stretch them and use core aspect ration, as they wasn't meant to be played on 4:3 tv. Here are my specs:

    Monitor: Liyama Iiyama S900MT1
    Adapter: Rankie HDMI to VGA https://www.amazon.de/gp/product/B00ZMV7RL2/

    Pi Model or other hardware: 3B
    Power Supply used: Original 5.1V 2.5A
    RetroPie Version Used: 4.3.17
    Built From: Pre made SD Image on RetroPie website
    USB Devices connected: 2 snes gamepads, 1 arcade fightstick, 1 wireless adapter for mini keyboard
    Emulator: lr-stella lr-gambatte, lr-gpsp, lr-beetle-pce-fast, lr-fbalpha, lr-genesis-plus-gx, lr-mame2003, lr-mupen64plus, lr-nestopia, lr-pcsx-rearmed, lr-picodrive, lr-snes9x

    Here my /boot/config.txt:

    # For more options and information see
    # http://rpf.io/configtxt
    # Some settings may impact device functionality. See link above for details
    
    # uncomment if you get no picture on HDMI for a default "safe" mode
    #hdmi_safe=1
    
    # uncomment this if your display has a black border of unused pixels visible
    # and your display can output without overscan
    disable_overscan=1
    
    # uncomment the following to adjust overscan. Use positive numbers if console
    # goes off screen, and negative if there is too much border
    #overscan_left=16
    #overscan_right=16
    #overscan_top=16
    #overscan_bottom=16
    
    # uncomment to force a console size. By default it will be display's size minus
    # overscan.
    #framebuffer_width=1280
    #framebuffer_height=720
    
    # uncomment if hdmi display is not detected and composite is being output
    #hdmi_force_hotplug=1
    
    # uncomment to force a specific HDMI mode (this will force VGA)
    hdmi_group=2
    hdmi_mode=4
    
    # uncomment to force a HDMI mode rather than DVI. This can make audio work in
    # DMT (computer monitor) modes
    hdmi_drive=2
    
    # uncomment to increase signal to HDMI, if you have interference, blanking, or
    # no display
    config_hdmi_boost=5
    
    # uncomment for composite PAL
    #sdtv_mode=2
    
    #uncomment to overclock the arm. 700 MHz is the default.
    #arm_freq=800
    
    # Uncomment some or all of these to enable the optional hardware interfaces
    #dtparam=i2c_arm=on
    #dtparam=i2s=on
    #dtparam=spi=on
    
    # Uncomment this to enable the lirc-rpi module
    #dtoverlay=lirc-rpi
    
    # Additional overlays and parameters are documented /boot/overlays/README
    
    # Enable audio (loads snd_bcm2835)
    dtparam=audio=on
    gpu_mem_256=128
    gpu_mem_512=256
    gpu_mem_1024=256
    overscan_scale=1
    
    ### ALL FOLLOWING LINES BY TUNCAY ###
    
    # OTHER SETTINGS #
    
    disable_splash=1
    
    # OVERCLOCK #
    
    arm_freq=1400
    core_freq=525
    gpu_freq=525
    v3d_freq=525
    sdram_freq=550
    sdram_schmoo=0x02000020
    sdram_over_voltage=6
    over_voltage=6
    #total_mem=1023
    
    # Use gpu_mem=64 or 48 for optimal results for testing with memtester
    # for usage with memtester 700m 5
    #gpu_mem=64
    
    # VGA monitor settings
    #hdmi_ignore_edid=0xa5000080
    


  • I am still experimenting. In RetroArch menu, setting

    Shader #0: crt-pi.glsl
    Shader #0 Filter: Don't care
    Shader #0 Scale: Don't care
    

    seems to be looking nice under the snes emulator. What is your opinion to this? Do I miss here something or don't see a fundemental "error"?

    EDIT: Btw I am currently setting the render resolution in RetroArch to 640*480. Now I am really lost about all settings and how they work together. I just will try different settings, but I am not exactly sure what all they do, even after I read a little. So, if you have some advice, you are welcome. :-)



  • It makes sense if you can't get true 15Khz (240p) signal. It's the cheap and easy way to enjoy the benefits of CRT's response (if your adapter is adequate) and "organic" motion without buying other 3rd party hardware to get those nice thick scanlines.

    I would recommend a resolution of a multiple of 240 lines so your shader will produce equal thickness. A DMT resolution of hdmi_mode=32 (1280x960) is ideal for such cases.



  • @matchaman 640*480 is ideal too, isnt it? its multiple of 240p too. Problematic is, not all systems are 240p, especially the arcades have sometimes different resolutions and even some home consoles. But in those case, I just go with basic scanlines shader now. It does not look good as crt-pi on snes, but at least it works. I experimented with those settings and 2x size of shader and for now, I stay with it.

    I am not sure if my monitor can work with 240p natively. These topics are new to me, so reading about it will not make me magically understand it. :D I saw in RetroArch that i can set render resolution for each emulator to 320240. But for video output mode, I only can select down to 640480 (DMT-4). I am not exactly sure about the relationships between these settings and shader. I also have PAL and NTSC games, so they have different resolution...

    EDIT: Trying out 320240 render resolution, I quickly set it back. I think, I found the sweet spot for me with 640480 render resolution and output video. And maybe this thread should have been in normal discussion forum, not in help.



  • Ok, so after I wanted play some games now, I realized the bottom part of the lr-snes9x games are always black. I can't say how many rows, but maybe 10th. The other sides are all on the edge of screen and Emulation Station is shawn correct, lr-nestopia too. Is there a setting I miss? The strange thing is, in RetroArch menu the whole screen is used. The emulator makes the image of game smaller and shows a black bottom border only.

    EDIT: Ok so, after quick testing, it happens also in PC Engine, but not the other emulators.



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.