Jump to content
IGNORED

FPGA Based Videogame System


kevtris

Interest in an FPGA Videogame System  

682 members have voted

  1. 1. I would pay....

  2. 2. I Would Like Support for...

  3. 3. Games Should Run From...

    • SD Card / USB Memory Sticks
    • Original Cartridges
    • Hopes and Dreams
  4. 4. The Video Inteface Should be...


  • Please sign in to vote in this poll.

Recommended Posts

I don't own any OLED display devices, but have only heard horror stories of ruined screens on various smart devices and HDTVs. It was bad enough that Sony switched back to LCD on subsequent Vita models. A big issue with HDTVs is watching pillarboxed or letterboxed content over time will lead to a picture with different tint in the center as opposed to the borders. I am extremely sensitive to colors so any defect like this would become immediately apparent.

 

I have a galaxy s4 that i bought new, and where it has the black notification area (due to android) it really shows up - the pixels are worn much less there. That's why android now pushes for full-screen apps and the notifications area changes colours according to app. Note that the top bar is the only place burn in (or rather lack thereof) is visible at all, and that's only because of the geometric shape (it's a brighter stripe with no gradual transition from the darker to brighter area). Also bear in mind I use the phone all day long on max brightness, every day, and it's a very early oled screen.

 

It's also why I said this device should likely have blurred margins rather than letterboxing. This reduces this issue to zero. See here:

 

ozCejPV.jpg

 

As I understand newer OLED screens are supposed to be more resistant to wear, and i believe some of them shift the image periodically to prevent burn-in. But it remains to be seen if the new screens will look the same after 4 years as my samsung.

Link to comment
Share on other sites

Sorry I haven't been posting many updates. I have been in the process of moving for awhile, and contract work has been taking up a lot of time. Days before I moved, I finished work on the Gamate (handheld LCD cart system). The Gamate was a super fun system to reverse engineer and throw on the FPGA. I think it took about 15-20 hours to both reverse and implement.

 

Anyways, here's a little video about it.

 

  • Like 5
Link to comment
Share on other sites

 

What does that mean? I don't understand.

A CRT mask is composed of discrete RGB domains. To emulate this in UHD, each pixel can only be assigned red, green, or blue. Normally when displaying any content, Each pixel is capable of outputting all three colors. So collectively with simulated CRT mask, it takes three pixels to create the same luminary output as one without the mask.

Link to comment
Share on other sites

A CRT mask is composed of discrete RGB domains. To emulate this in UHD, each pixel can only be assigned red, green, or blue. Normally when displaying any content, Each pixel is capable of outputting all three colors. So collectively with simulated CRT mask, it takes three pixels to create the same luminary output as one without the mask.

 

OK so you mean: when stretching subpixels of the original e.g. a red subpixel will eat up several pixels in the resulting image and they will all only display R and because of that those pixels are only at 1/3 brightness. Yeah, I see what you mean. But that's not exactly the same because even if the amount of light is 1/3, the response of our eyes is non-linear, so it doesn't nearly seem like 33% brightness. Also current OLED and the better LCD screens have more brightness than CRTs could ever hope to have. Finally, the subpixels that you stretch are not pure R G and B if you're doing CRT emulation. They will be a bit off, and they will have some halos around them due to diffraction in the CRT glass :) so this uses a bit more but it's not a huge increase either..

Link to comment
Share on other sites

 

OK so you mean: when stretching subpixels of the original e.g. a red subpixel will eat up several pixels in the resulting image and they will all only display R and because of that those pixels are only at 1/3 brightness. Yeah, I see what you mean. But that's not exactly the same because even if the amount of light is 1/3, the response of our eyes is non-linear, so it doesn't nearly seem like 33% brightness. Also current OLED and the better LCD screens have more brightness than CRTs could ever hope to have. Finally, the subpixels that you stretch are not pure R G and B if you're doing CRT emulation. They will be a bit off, and they will have some halos around them due to diffraction in the CRT glass :) so this uses a bit more but it's not a huge increase either..

A pure white image would look something like this:

TileableLinearSlotMaskTall15Wide9And4d5H

 

Each RGB domain is 100%. For better example, look at this Yoshi sprite:

caligari%2Btriad-bigger.png

 

Now compare him to the original:

smw_mario_yoshi_nearest_8x.png

 

See? He looks a lot brighter now because each pixel can contain all of the RGB space instead of just a single color channel.

Link to comment
Share on other sites

A pure white image would look something like this:

TileableLinearSlotMaskTall15Wide9And4d5H

 

Each RGB domain is 100%. For better example, look at this Yoshi sprite:

caligari%2Btriad-bigger.png

 

Now compare him to the original:

smw_mario_yoshi_nearest_8x.png

 

See? He looks a lot brighter now because each pixel can contain all of the RGB space instead of just a single color channel.

 

Yeah, I got that. It's a sad thing but you can't do much about it other than crank brightness!

  • Like 1
Link to comment
Share on other sites

 

4k and 8k displays do it better. The example given doesn't have enough pixel density to look good.

 

Oh I wasn't concerned with it looking good. I just meant you can't do much about the fact that resizing subpixels will reduce brightness.

 

You're right, that mario example didn't look good. But I think you can do much better with some nicely dithered, rounded, pixels.

 

You're right that 4k will look better. But there's still a lot of improvement left that can be done in 1080p to make it look better.

Link to comment
Share on other sites

 

Oh I wasn't concerned with it looking good. I just meant you can't do much about the fact that resizing subpixels will reduce brightness.

 

You're right, that mario example didn't look good. But I think you can do much better with some nicely dithered, rounded, pixels.

 

You're right that 4k will look better. But there's still a lot of improvement left that can be done in 1080p to make it look better.

Right. I just pulled some examples off a quick Google search to show how true CRT mask can cause a dimmer picture. The only one I have seen that really looks good is this custom screenshot cheater posted treated with advanced photoshop filtering from the previous page:

snakeman.png

http://atariage.com/forums/topic/242970-fpga-based-videogame-system/?p=3586531

 

It used a "CRT mask" like effect but allowed the RGB values to bleed over to their adjacent domains, resulting in a picture that looks like a CRT mask to the eyes when zoomed out, but does not suffer from excessive dimming. I alluded to the fact this effect would fit perfectly with the 6 wide, 5 high 1080p pixel mode. But depending on the CPU intensity of rendering the effect, such images may not be possible to render in realtime with emulation without adding frames of lag as the result of processing, much less likely to be doable with a lag-free FPGA implementation.

 

But if such filtering could be added to a 1080p FPGA solution, I could definitely see myself gaming like this. The effect could also be applied to SNES, TG-16 FPGA implementations (256 pixels wide), Genesis (320 pixels wide), 2600 or 7800 (160 pixels x2). The Genesis and Atari screenshots would be 25% wider on the screen with 6 wide, 5 high pixels (or 12 wide in the case of Atari) by maintaining fixed pixel aspect ratios (pixel width must be divisible by 3 for each to get it's own rgb domains), but this would not be an issue with widescreen aspect displays which would still maintain black pillar bars (or simulated H-overscan) on the sides. Genesis would probably have perfect aspect with 5x5 pixels, and Atari with 10x5. 7800 games that support high definition (320h) mode would need an option for enable or disable of composite artifacting. Sonic games on the Genesis also use composite artifacts to blend transparent backgrounds, but I think these games have a "vertical scanline" effect that looks great without blending. It's not a "dirty" picture like what you get with say NES2 or FC jailbars.

 

So far however, all we've gotten so far that offers a "zero processsing" option for FPGA implementation is static scanlines by alternately dimming HDMI H-scans.

Link to comment
Share on other sites

Ah, dang. I did expect that an FPGA based system like this wouldn't go well with such a highly advanced filter like this.
I'm the one that made the screenshot, but to be able to do it, I had to use a few photoshop tricks that I can't imagine running that well in real time 60fps even on my own Windows XP based PC, maybe with NVidia on Core i5 or similar. There's a reason something like this hasnt even been commonly implemented in emulators yet :P.
But when you say that

 

So far however, all we've gotten so far that offers a "zero processsing" option for FPGA implementation is static scanlines by alternately dimming HDMI H-scans.

 

It reminds me of a much simpler alternative I did that gave (at least me) a good enough look! Might post it later. Unless it must strictly be lines and nothing else.

Edited by veelk55
  • Like 1
Link to comment
Share on other sites

 

Ah, dang. I did expect that an FPGA based system like this wouldn't go well with such a highly advanced filter like this.
I'm the one that made the screenshot, but to be able to do it, I had to use a few photoshop tricks that I can't imagine running that well in real time 60fps even on my own Windows XP based PC, maybe with NVidia on Core i5 or similar. There's a reason something like this hasnt even been commonly implemented in emulators yet :P.
But when you say that

 

 

It reminds me of a much simpler alternative I did that gave (at least me) a good enough look! Might post it later. Unless it must strictly be lines and nothing else.

 

Please do share when you have it ready. :)

Link to comment
Share on other sites

So basically, this is my "simple mask" idea.

 

Scanline_mask.png

 

Something that is just like scanlines, but a bit more rustic in place of special effects with RGB colors.

Here are some examples of how that looks:

 

ex1.png

 

ex2.png

 

I would imagine something like this takes as much processing power as normal black / semi transparent lines, but I have no idea if that works the way I imagine it.

This time it's a crop from a real 1080p image scaled exactly 5x, so the height is perfect and even. I stretched it a bit horizonatlly to closely match 4:3, or at least the proportion my NES looks like on my TV :P

Edited by veelk55
  • Like 1
Link to comment
Share on other sites

@Veelk55: The "ripple" effects really work. It's not quite as good as the first screenshot but far superior to just solid lines. A mask such as this could be applied with minimal processing I think. A single multiply command to each pixel is definitely doable, and the effect would work regardless if each pixel lined up horizontally.

 

@Schizophretard: It's called nostalgia. Lots of folks here have it. ;-)

Link to comment
Share on other sites

But those with nostalgia would be able to hook up the Z3K to a CRT...

I keep a CRT on hand for gaming. My setup consists of an ultra low latency ASUS monitor and a CRT. If it has an HDMI port, it goes to the monitor. If it's got standard definition (composite or RF), it goes to the CRT. I also use an HDMI switch that passes analog audio to my HiFi stereo sound.

 

I have no use for RGB mods or surround sound or other nonsense.

Link to comment
Share on other sites

Having a real CRT is not just for nostalgia. Filters are okay on a LCD, but it lacks the depth of picture, color accuracy and zero input lag found in a CRT. And if you have a CRT above consumer grade, like an Arcade Monitor, PVM or BVM, well then you have something really special and I would use one of those over the LCD for anything that supports 240 or 480 resolution.

Link to comment
Share on other sites

snakeman.png

 

So far however, all we've gotten so far that offers a "zero processsing" option for FPGA implementation is static scanlines by alternately dimming HDMI H-scans.

 

There's absolutely no reason this couldn't be done on an FPGA. The delay for a 240 line screen at 60 Hz would be at most 70 microseconds.

Link to comment
Share on other sites

@Veelk55: The "ripple" effects really work. It's not quite as good as the first screenshot but far superior to just solid lines. A mask such as this could be applied with minimal processing I think. A single multiply command to each pixel is definitely doable, and the effect would work regardless if each pixel lined up horizontally.

 

@Schizophretard: It's called nostalgia. Lots of folks here have it. ;-)

 

Having a mask like this would be more difficult on fpga than the "truer" crt emu where you resize subpixels one by one and possibly bleed the colours to neighboring subpixels.

Link to comment
Share on other sites

Right. I just pulled some examples off a quick Google search to show how true CRT mask can cause a dimmer picture. The only one I have seen that really looks good is this custom screenshot cheater posted treated with advanced photoshop filtering from the previous page:

snakeman.png

http://atariage.com/forums/topic/242970-fpga-based-videogame-system/?p=3586531

 

It used a "CRT mask" like effect but allowed the RGB values to bleed over to their adjacent domains, resulting in a picture that looks like a CRT mask to the eyes when zoomed out, but does not suffer from excessive dimming. I alluded to the fact this effect would fit perfectly with the 6 wide, 5 high 1080p pixel mode. But depending on the CPU intensity of rendering the effect, such images may not be possible to render in realtime with emulation without adding frames of lag as the result of processing, much less likely to be doable with a lag-free FPGA implementation.

 

But if such filtering could be added to a 1080p FPGA solution, I could definitely see myself gaming like this. The effect could also be applied to SNES, TG-16 FPGA implementations (256 pixels wide), Genesis (320 pixels wide), 2600 or 7800 (160 pixels x2). The Genesis and Atari screenshots would be 25% wider on the screen with 6 wide, 5 high pixels (or 12 wide in the case of Atari) by maintaining fixed pixel aspect ratios (pixel width must be divisible by 3 for each to get it's own rgb domains), but this would not be an issue with widescreen aspect displays which would still maintain black pillar bars (or simulated H-overscan) on the sides. Genesis would probably have perfect aspect with 5x5 pixels, and Atari with 10x5. 7800 games that support high definition (320h) mode would need an option for enable or disable of composite artifacting. Sonic games on the Genesis also use composite artifacts to blend transparent backgrounds, but I think these games have a "vertical scanline" effect that looks great without blending. It's not a "dirty" picture like what you get with say NES2 or FC jailbars.

 

So far however, all we've gotten so far that offers a "zero processsing" option for FPGA implementation is static scanlines by alternately dimming HDMI H-scans.

 

That's a nice idea. You could do the following: for each RGB triad, you could output each subpixel with both the colour of the triad and the colour of the subpixel at the same time. So if you're displaying teal, then display reddish teal, then greenish teal, then blueish teal. That should look CRTish while keeping the brightness levels nice and high, and you could set the mix ratio (e.g. 50% subpixel, 50% triad, or 75%/25%, or 25%/75%, or 12.5%/87.5%, etc.)

  • Like 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...