ZFEbHVUE/Batocera-CRT-Script

Strange Double Image

Closed this issue · 12 comments

Batocera Version: 40

I have a strange Issue with my PVM-1454QM - I am using an ATI R9 380 and my display looks like this after I run the script and I'm not quite sure on what I can do, I tried both arcade_15 and generic_15 and I am connected to my PVM via DVI->VGA->BNC (On my PC with CRT_Emudriver I don't have this issue. If anyone could provide me with some tips on what is actually happening here and how I can fix it.
PXL_20240905_122351783
PXL_20240905_122343577 MP

It looks like you are still getting a 31khz output instead of 15khz. I know some of the R9 380's have both DVI-I and DVI-D outputs, so I would double check that you are connected to the DVI-I port and also selected the DVI-I output in the script.

I was told by someone that It might be due to my sync as my cables have horizontal and vertical output - but when I use them with crt_emudriver on my windows machine have no issues like this - I don't know if thats because maybe crt_emudriver is outputing sync via composite or something as I have only recently started playing around with this. - But yes I am connected to the DVI-I port my cable even has the extra pins so if i was connected to the DVI-D port all of them would be bent lol - and yes DVI-I was selected in the script.

Ah right, those DVI to VGA adapters wouldn't fit in a DVI-D port.

I think you are right and it is a sync issue. I did a quick check on crt_eumdriver as I haven't used that software before, and it seems to have the ability combine H-V and output CSYNC on both the H and V lines which I don't think this script has that option. On my setup I had to get a sync combiner(VGA2SCART) that also attenuates the sync voltage down to 0.7vpp for a consumer rgb-modded CRT.

Another note too, is I would check the expected sync voltage for your PVM and make sure the sync level when using crt_emudriver isn't too high, I have read that over time it can damage the set. A PVM is most likely able to take the higher voltage, but just a head's up.

Here's a link to a build for passive sync combiner circuit: https://www.retrorgb.com/building-a-passive-sync-combiner.html

Confirmation, you need a sync combiner for Batocera: https://forum.batocera.org/d/5749-csync

So I did a little messing around and switched to my windows 10 OS which is on the same machine as Batocera and I noticed while yes - there is the option for composite sync - I supposedly am not using it - yet I am able to get a normal image in-comparison to Batocera - is this an error in crt_emudriver and it is on by default or something? or is Batocera the issue?
vmmaker_jteq766Igd

PXL_20240905_151420468 MP

Ah right, those DVI to VGA adapters wouldn't fit in a DVI-D port.

I think you are right and it is a sync issue. I did a quick check on crt_eumdriver as I haven't used that software before, and it seems to have the ability combine H-V and output CSYNC on both the H and V lines which I don't think this script has that option. On my setup I had to get a sync combiner(VGA2SCART) that also attenuates the sync voltage down to 0.7vpp for a consumer rgb-modded CRT.

Another note too, is I would check the expected sync voltage for your PVM and make sure the sync level when using crt_emudriver isn't too high, I have read that over time it can damage the set. A PVM is most likely able to take the higher voltage, but just a head's up.

Also how can i check the sync level? I was unaware that crt_emudriver could cause issues like that.

That's very odd that you get an image without composite sync enabled in crt-emudriver. Perhaps just using the generic_15khz preset auto enabled it yet the GUI doesn't update that section? There's no issue with Batocera, it just uses the switchres implementation, which does not have the option to combine H-V sync and output over the H line unfortunately.

You can use a multimeter set to AC voltage and check the sync output levels. I checked and your model PVM can handle 4v p-p, so I think you are fine(VGA sync output is around 5V), but good knowledge to have regardless as you might want to use a consumer set in the future and they are more prone to damage from too high of signal voltage. To attenuate the signal you would place a resistor in-line with the sync signal.

So this is interesting, apparently there is a option flag to output Csync on a modeline instead of hsync and vsync: https://forum.arcadecontrols.com/index.php?topic=157834.0

If you read the wiki for a CRT setup with Batocera(https://wiki.batocera.org/batocera-and-crt) it shows how to create modelines, which this script does for you, but I am thinking that you can maybe go back and edit those modelines by adding the -csync flag(+csync for positive polarity) and delete the -hsync -vsync flags. Maybe just try the one for the EmulationStation resolution and see if you can get it to work.

So this is interesting, apparently there is a option flag to output Csync on a modeline instead of hsync and vsync: https://forum.arcadecontrols.com/index.php?topic=157834.0

If you read the wiki for a CRT setup with Batocera(https://wiki.batocera.org/batocera-and-crt) it shows how to create modelines, which this script does for you, but I am thinking that you can maybe go back and edit those modelines by adding the -csync flag(+csync for positive polarity) and delete the -hsync -vsync flags. Maybe just try the one for the EmulationStation resolution and see if you can get it to work.

The only thing the script does when it comes to modelines is generate a EDID file with a Modeline. The rest is handled by a custom version of batocera-resolution that generated the resolutions on the fly using swirchres. The wiki guide is outdated and only there for hardware reference nothing else.

A sync combiner is the solution as I mentioned on discord several times.

So this is interesting, apparently there is a option flag to output Csync on a modeline instead of hsync and vsync: https://forum.arcadecontrols.com/index.php?topic=157834.0
If you read the wiki for a CRT setup with Batocera(https://wiki.batocera.org/batocera-and-crt) it shows how to create modelines, which this script does for you, but I am thinking that you can maybe go back and edit those modelines by adding the -csync flag(+csync for positive polarity) and delete the -hsync -vsync flags. Maybe just try the one for the EmulationStation resolution and see if you can get it to work.

The only thing the script does when it comes to modelines is generate a EDID file with a Modeline. The rest is handled by a custom version of batocera-resolution that generated the resolutions on the fly using swirchres. The wiki guide is outdated and only there for hardware reference nothing else.

I sync combiner is the solution as I mentioned on discord several times.

I am getting SCART to BNC cables soon that have a single sync output rather then H and V - I was just trying to get this to potentially work until then and while I'm new to this I was just attempting to wrap my head around why on my windows machine I have perfect output - CSYNC is NOT on (at least according to crt_emudriver - but i am unsure if it is on by default and its simply displaying incorrectly) - and my modelines on my windows machine all have -hsync and -vsync flags yet still work @Pitch-Bend
EG:

"640x480_60 15.55KHz 59.93Hz" 12.94 640 680 760 832 480 481 485 519 interlace -hsync -vsync
"2560x480_60 16.38KHz 60.00Hz" 52.81 2560 2624 2744 3224 480 502 516 546 interlace -hsync -vsync

If truly there is nothing I can do - I will simply wait for my cables - I was just trying to be thorough - and thanks guys for the support

Closing this since issue has been Identified.