Converting RGB to VGA using FPGA

Página 2/5
1 | | 3 | 4 | 5

Por retrocanada76

Champion (460)

Imagen del retrocanada76

23-10-2014, 16:07

Here is the video running Nyyrikki screen test:

https://www.youtube.com/watch?v=zL5kzqaCG2w

Difficult for the camera to capture the screen effects.

Por Grauw

Ascended (8454)

Imagen del Grauw

23-10-2014, 19:14

Some of the tests I get, but others I have no idea what they’re testing Smile. Curious about Nyyrikki’s analysis / explanation!

Por NYYRIKKI

Enlighted (5384)

Imagen del NYYRIKKI

23-10-2014, 19:25

What I can tell from the video, you've done really good job! Practically flawless result! Only the picture borders are missing at the moment.

BTW was this video made on 60Hz? How you handle the picture in 50Hz / 60Hz? Do you run the screen in 60Hz /100Hz or does your monitor support 50Hz refresh rate?

@Grauw: To understand the tests, please download the test and read the HTML-documentation. It explains all tests with example pictures and typical failures to look for.

Por edoz

Prophet (2172)

Imagen del edoz

23-10-2014, 19:48

Hi !! This is a very interesting project !! Would it be difficult to build it yourself ? I like the idea to disable the borders. (Especially when using SymbOS.)

Por retrocanada76

Champion (460)

Imagen del retrocanada76

23-10-2014, 20:01

I use a framebuffer in SDRAM. No matter the input frequency, the output is made at 640x480@60Hz. Whenever I get a HSYNC I jump to the next line. The scrolling is very good with no tearing. In fact I started doing this board after getting disappointed with the GBS8200.

I'm doing a documentation, still not finished:

https://sites.google.com/site/tandycocoloco/rgb2vga

My main problem is the noise I get in some colors. I believe changing from proto to a PCB will help. Also, I need to find a way to isolate the differential pins, either building a metal shield or something. The noise I see is the image itself. I believe the VGA output is causing this interference. Need more tests. I noticed as well I have less noise on Coco3, but this could be related to the different voltage they operates and not necessarily a problem with the computer.

Also I cannot get all color spectrum. I digitize RRRGGGBB. But this doesn't mean necessarily I can get all screen8 colors. In order to display borders I would need to display in 800x600x60 what would make the image smaller and also as the frequency increases I have problems with the SDRAM because I will practically double the output rate. I need to digitize and send one line to the frame buffer and read two lines. The SDRAM is always busy writing and sending full scanlines, but it cannot be randomly accessed. it takes too much time.

Resuming: it's a fairly complex mechanism and it runs in FGPA. it's not like a C++ algorithm.

Por Grauw

Ascended (8454)

Imagen del Grauw

23-10-2014, 20:06

It looks like you cut off the borders to fit screen 0 text 40/80 columns mode exactly?

Note that screen 0 text mode is only 240 / 480 pixels wide, whereas the bitmap modes are 256 and 512 pixels wide. You will notice in the vertical-bars test that the rightmost bar is shorter than the others because of this (and the leftmost one too, but that one’s next to another black one). So, you probably want to cut off a little less than you do now.

Edit: Ah, I see you’re converting to 640x480 VGA mode. Are you planning to support higher-resolution modes as well?

Por retrocanada76

Champion (460)

Imagen del retrocanada76

23-10-2014, 20:05

Edoz, the board is fairly simple. It takes 1 hour to assembly it using a protoboard. Also you will need a Altera DE0-Nano to work with. You will have to find a LM1881 to separate the MSX CSync, bunch of resistors, few capacitors and a VGA output connector.

As soon I finish the documentation you will find all there.

Por Grauw

Ascended (8454)

Imagen del Grauw

23-10-2014, 20:08

Do you wait for the frame buffer to be completely filled, or do you start rendering from the frame buffer even while it is still being filled?

@Nyyrikki: ah, thanks!

Por retrocanada76

Champion (460)

Imagen del retrocanada76

23-10-2014, 20:09

No higher resolutions for now. I'm operating near to the limit of the hardware. Increasing the resolution means doubling the output rate.

I have dip-switches to control the borders. It's nearly impossible to detect a border when they are the same color as the rest of the image.

Por retrocanada76

Champion (460)

Imagen del retrocanada76

23-10-2014, 20:15

There is no wait. This is why you don't see tearing. It's like having the 50hz or 60Hz on top of your 60Hz output. Do you understand this ? I'm operating like a TV, pumping scanlines to the screen like crazy.

I didn't play the 50Hz extensively. Need to run Manbow2 to test.

Página 2/5
1 | | 3 | 4 | 5