News:

Printed Amstrad Addict magazine announced, check it out here!

Main Menu

VGA through rpi pico - How many colors possible on border?

Started by gregg, 15:46, 15 April 24

Previous topic - Next topic

0 Members and 2 Guests are viewing this topic.

gregg

@eto I managed to load Relentless, and I think I can see that issue. It is just shaking and I agree it makes it unplayable. I think I know where the issue is, and I will try to fix it. As I understand, what they do is a combination of actually shifting pixels on screen and changing the duration of hsync (the one the is part of c-sync on GA's output, not the one on GA's input). My problem is that I shift twice too much when duration of hsync changes. As a result, instead of shifting one pixel per frame, it shifts by 1 pixel, 2 pixels, 1 pixel, 0 pixels. I probably messed up something with timing when waiting for csync to end.

gregg

@eto Does relentless look OK on this video, or do you see the same issue that you have seen on scan doublers? (Sorry I made a video with phone so it may be a bit shaky)




One more horizontal scroll test with Skate Wars:



eto

Quote from: gregg on 08:16, 04 May 24Does relentless look OK on this video, or do you see the same issue that you have seen on scan doublers? (Sorry I made a video with phone so it may be a bit shaky)
I haven't played it for quite some time now so I don't know if it's 100% accurate but it definitely looks better than anything I have ever seen on a LCD.

This is absolutely awesome. 


McArti0

@gregg

How did you make the ADC input? Anything additional than the 2040 PCB?
CPC 6128, Whole 6128 and Only 6128, with .....
NewPAL v3 for use all 128kB RAM by CRTC as VRAM
TYPICAL :) TV Funai 22FL532/10 with VGA-RGB-in.

gregg

@eto That's great. Thanks a lot for checking it! Actually there are two things still to do. One is that I have 60hz output and I can see it is not 100% smooth (even if not visible on this video), because it doubles the frame from time to time. I am just experimenting with 50.08hz output. It is 100% smooth then but there are other issues and it only works on one monitor out of 3 that I have. Still, I could add a switch so it would be possible to have 60hz that works on every monitor, or 50 that is 100% smooth.
Other thing is how I handle shorter hsync at this point. I need to start scanning .5us earlier for each 1us that hsync is shorter. I only handle 3 and 4 us vsync at this point. After csync goes down, I wait 3.5us whatever csync value is and then wait until csync goes up. If it was 3us hsync, then it is already up, and I start scanning, but if it was 4us, then I wait until full 4us (.5us longer). That gives me .5us shift and makes scroll smooth. But from what I read, there are options (not recommended but I believe still used) to have even shorter hsync. I will need to handle them, too. 

@McArti0 I Just used voltage comparators. There are only 3 possible levels of each color in Amstrad so I just made use of it. Of course this solution will be Amstrad only. I tried a couple comparators to find something cheap and fast enough. At this point I sticked to 3x TLV3202. They are $1.50 each and they are fast enough. I had a lot of noise on output but I managed to filter out most of it with capacitors. Some of it may be because I still have it on a some shitty breadboard when comparator's docs say a lot about how accurately it has to be placed on a pcb to avoid noise.
First I wanted to use ADCs in RP2040, but they are just too slow.
The output from comparators (and input to RP2040) are two pins for each color. One is high if there is full brightness, and other is high if there is half or full brightness. That is also how I keep it in memory.

andycadley

It does look pretty impressive. The 60Hz thing was always going to be a bit of an issue but not insurmountable. 50Hz would be nice and is supported by a lot more displays these days (due to the panels being the same as in TVs).

The colour issue does mean it wouldn't work on a Plus machine though, which is a shame. Although the GX does have Scart output and a slightly adjusted PAL friendly clock, so hooking one of those up to a modern display is less problematic most of the time (especially since Plus only software is probably less likely to use HSYNC hacks).

eto

Quote from: andycadley on 10:15, 05 May 24wouldn't work on a Plus machine
for a Plus version it would probably required to attach the scandoubler internally before the DAC like the RGB2HDMI does.

Quote from: gregg on 03:03, 05 May 24Still, I could add a switch so it would be possible to have 60hz that works on every monitor, or 50 that is 100% smooth.
that would be absolutely amazing. 

Powered by SMFPacks Menu Editor Mod