Jump to content
kevtris

FPGA Based Videogame System

Interest in an FPGA Videogame System  

657 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...



Recommended Posts

It doesn't have the funky controller though :)

 

Back on topic, HDL is pretty tough... it takes both some programming and EE knowledge. I can read the code but I'm at a loss at to how to put things together. Anybody has a good book to recommend for EE but applied to FPGAs?

I'm the opposite. I'm great with electronics tinkering but I suck at programming. I would rather build a discrete circuit out of a dozen 74xx series logic chips than try my hand at learning how to program a PIC micro controller to do it for me. :lol:

Share this post


Link to post
Share on other sites

Forgive me for asking as I've had to take care of a wife with a broken arm :_( but Kevtris, do you plan on producing this system? Kickstarter? Basically, if you or someone else could summarize where you're

at with the system. I really hope you're going forward with it!

Share this post


Link to post
Share on other sites

Forgive me for asking as I've had to take care of a wife with a broken arm :_( but Kevtris, do you plan on producing this system? Kickstarter? Basically, if you or someone else could summarize where you're at with the system. I really hope you're going forward with it!

The gist of it is that Kevtris does want to produce his FPGA console commercially on a small scale ("small" being relative) and he wants to do one more prototype of the Zimba before aiming at a commercial product. Not sure at this point if he's going to get funding for his endeavour via Kickstarter or some other means.

Share this post


Link to post
Share on other sites

kevtris,

Here is an example of demand for driving a real vector monitor (or eBay insanity):

$602.75 for an "out of production $250 circuit board" that lets a computer emulator drive a real vector monitor!!

post-29575-0-47861400-1446419277_thumb.jpg

Share this post


Link to post
Share on other sites

So, with a vector monitor driver, does that mean I could put one of Kevtris' machines in my Tempest cabinet? DEAR GOD!

I think a Vector display could be emulated in 1080p with good results. HD resolution is fine enough to make the lines pop without jaggies, assuming a decent antialias filter is used. I know it won't be the same as a real vector tube as the flicker and phosphor trails won't be exact, but the best possible display with modern tech. I would love to play Vectrex games on an HD display.

  • Like 1

Share this post


Link to post
Share on other sites

I think a Vector display could be emulated in 1080p with good results. HD resolution is fine enough to make the lines pop without jaggies, assuming a decent antialias filter is used. I know it won't be the same as a real vector tube as the flicker and phosphor trails won't be exact, but the best possible display with modern tech. I would love to play Vectrex games on an HD display.

Asteroids running on an HD TV with a good vector engine, now that would be kewl... But not as cool as the Star Wars arcade game. ;)

  • Like 2

Share this post


Link to post
Share on other sites

They guy's been doing this for years and years. It's going. :P

Edited by NE146
  • Like 3

Share this post


Link to post
Share on other sites

Almost 2 weeks without a post.

 

Is the kev3K (or Z3000) still going?

Generally when you don't get updates from the developer for a while, it means he is super busy with the project and not responding to forum posts.

Share this post


Link to post
Share on other sites

The Retro Freak came out. Its better than the Retron 5 but the PCE feels laggy compared to the PCE FPGA core by Torlus and AMR. I guess it's in par with RPi emulation, but I greatly anticipate FPGA improvements such as this project or newer cores on the other platforms.

  • Like 1

Share this post


Link to post
Share on other sites

The Retro Freak came out. Its better than the Retron 5 but the PCE feels laggy compared to the PCE FPGA core by Torlus and AMR. I guess it's in par with RPi emulation, but I greatly anticipate FPGA improvements such as this project or newer cores on the other platforms.

Yeah it's definitely on my radar. The Retron5 that doesn't suck. Bonus points for Turbografx/PCe support. :D

Share this post


Link to post
Share on other sites

I think a Vector display could be emulated in 1080p with good results. HD resolution is fine enough to make the lines pop without jaggies, assuming a decent antialias filter is used. I know it won't be the same as a real vector tube as the flicker and phosphor trails won't be exact, but the best possible display with modern tech. I would love to play Vectrex games on an HD display.

 

It looks alright, but it definitely doesn't look like a real vector monitor, which has completely solid, straight lines regardless of their angle on the screen, and an intense phosphor glow. Here is a screenshot of MAME running Asteroids, anti-aliased, at 1920 x 1440 (click on it for full size):

 

7h8oGPZ.png

Share this post


Link to post
Share on other sites

 

It looks alright, but it definitely doesn't look like a real vector monitor, which has completely solid, straight lines regardless of their angle on the screen, and an intense phosphor glow. Here is a screenshot of MAME running Asteroids, anti-aliased, at 1920 x 1440 (click on it for full size):

 

7h8oGPZ.png

I never said it would be exactly the same. Vector monitors will always have a glow to them that you can't emulate. Ditto for flicker effect and phosphor trails. Also the brightness of the lines vary depending on how fast the beam moves and how many elements are onscreen. But at 1440x1080 the lines will look good enough and have sharp detail. Plus if it's an FPGA implementation then you don't have emulation or timing inaccuracies.

Share this post


Link to post
Share on other sites

Plus if it's an FPGA implementation then you don't have emulation or timing inaccuracies.

 

An FPGA implementation is emulation; it is just hardware-based emulation rather than software-based. I think the best FPGA approach, if accuracy is a top priority, is to mix an FPGA with original hardware, like Jrok did with his highly-regarded Multi-Williams arcade board, which uses an original CPU. Unfortunately, a lot of consoles used proprietary custom chips (like the NES' PPU and CPU), so that approach isn't feasible without cannibalizing original consoles for the custom chips.

 

Perfect emulation, whether hardware- or software-based, is theoretically possible, but I don't know if it has ever been achieved with a relatively complex platform or not. There are many cases of emulation being good enough for most people (including myself) though.

Edited by MaximRecoil
  • Like 1

Share this post


Link to post
Share on other sites

A flatpanel display can theoretically simulate most if not all of the quirks of a CRT monitor (vector or raster) given a high enough resolution/refresh rate and low enough response time. Also, that screenshot of Asteroids is definitely not rendered at 1920x1440, it's rendered (with anti-aliasing) at much lower resolution and then upscaled.

  • Like 2

Share this post


Link to post
Share on other sites

Also, that screenshot of Asteroids is definitely not rendered at 1920x1440, it's rendered (with anti-aliasing) at much lower resolution and then upscaled.

 

You're right; the resolution settings in MAME for Asteroids were on "auto", and it was rendering it at 640 x 480 and then upscaling it to the screen resolution of 1920 x 1440. Here's a correct screenshot, which is much better:

 

vbKtU79.png

 

Of course, Asteroids doesn't actually have a resolution, because it isn't a raster game, but with a NES game for example, the game's graphics code only contains 256 x 240 pixels, so obviously it can't be rendered at anything higher than that without upscaling.

 

 

 

A flatpanel display can theoretically simulate most if not all of the quirks of a CRT monitor (vector or raster) given a high enough resolution/refresh rate and low enough response time.

 

Not any time soon. It will have to be good enough to be indistinguishable from reality (like if an outdoor video was playing, you couldn't tell the difference between it and looking out your open window) before it could actually fool someone with a CRT simulation.

  • Like 1

Share this post


Link to post
Share on other sites

Ignoring the curved screen , given a high resolution display, you can already do most of it. A 24" 4K monitor is only 184 ppi, while an iPad Pro is 264 ppi. And hey, conveniently, an iPad Pro is a 4:3 display and roughly the same size as my PVM's viewable area...

 

Anyhow, when the pixel density gets that high, you're able to start simulating subpixel structure well enough that you can't visually tell the difference. Simulating scanlines? You've got roughly 9 real lines of resolution per SNES scanline, good enough to do a pretty reasonable approximation, including varying the scanline width based on intensity. You've also got roughly 11 pixels per SNES column, enough to simulate the RGB subpixels of a trinitron rather nicely. You're simulating details that are so tiny that they only really appear to the eye from a normal viewing distances as a subtle texture, and something like an iPad Pro can do that just fine. Of course, it's not curved...

 

Now, talking about simulating phosphor persistence and the flicker of a vector monitor, that's trickier. For that, you need a high refresh rate, not high resolution. Luckily, I don't think you need a particularly high resolution display for vector, because they didn't have scanlines and they weren't typically RGB (Vectrex wasn't, anyhow). So for that you'd want to grab a high refresh rate display. They only really go up to 144Hz today, but the typical refresh rate of the Vectrex was around 30, so you can break up each Vectrex frame roughly in four or five and fade the lines as you draw in order to get something reasonably approximating the look of a vector display... Or just throw g-sync at the problem to accommodate the Vectrex's dynamic refresh rate (the more that was on screen, the lower the framerate) and tie your actual display refresh rate to a fixed multiple of the Vectrex, so if the Vectrex is drawing at 20 FPS, render at 80Hz, and if the Vectrex is drawing at 36 FPS, render at 144Hz.

 

It's all trickery, and there are still things we need to do it better (high resolution *and* high refresh rate, and using OLED instead of LCD to get the low response times to better simulate stuff), but you can do a pretty credible job today...

  • Like 1

Share this post


Link to post
Share on other sites

You're simulating details that are so tiny that they only really appear to the eye from a normal viewing distances as a subtle texture, and something like an iPad Pro can do that just fine. Of course, it's not curved...

 

Normal viewing distances are a lot closer on an arcade machine than on a console hooked to a TV, and there are a lot of things going on in the image unique to a CRT, especially when you look closely at what's going on in the shadow mask (which only applies to color CRTs; monochrome CRTs would be easier to simulate). And yes, the spherical tube and thick glass are both visual elements that would have to be simulated as well.

 

On top of that, you have to simulate the natural effect of a coarse phosphor dot pitch, along with a coarse shadow mask, which results in the world's most natural looking anti-aliasing device; it is why the e.g., the Pac-Man sprite looks closer to round on a real arcade machine than looking like it is made of Lego blocks. There is no current anti-aliasing filter/algorithm which even comes close to simulating this effect which is inherent to standard resolution CRTs. Here's an example of the effect compared to raw output as it appears on a high-resolution display:

 

OxHddMv.png

 

You'd also need a type of display which generates its own light (as opposed to LCD, which uses backlighting); ideally this type of display would use phosphors like a CRT, making one less thing you'd have to simulate.

 

So the easiest (but far from easy) thing to simulate would be monochrome vector, not only because of its lack of a shadow mask, but also because high resolution actually works in your favor here, as-is (as opposed to with low-resolution raster graphics, which naturally look like lego blocks on high resolution displays).

 

The way to test it is: use the best video camera you can find and take a video of a game being played on a standard resolution CRT. Then, play back that video on the best HD display you can find. Would it fool anyone into thinking that they were watching an actual SD CRT?

Edited by MaximRecoil

Share this post


Link to post
Share on other sites

I like how much trickery it takes to simulate old, outdated, inferior technology. :)

 

It isn't inferior. Digital "flat panel" displays caught on because they are more compact for a given screen size, they are more energy efficient, they are practical to build in larger screen sizes, and they are cheaper to manufacture. In terms of performance, they have always been playing catch-up to the best CRTs. For example, if a new 24" flat panel PC monitor came out tomorrow which perfectly replicated every visual/performance characteristic of the Sony GDM-FW900 CRT monitor, it would be hailed as the greatest monitor ever.

 

The ideal display device would combine the performance advantages of a CRT with the practical advantages of a flat panel display. "SED" was intended to do exactly that, but aside from a working prototype, it turned out to be vaporware.

Edited by MaximRecoil
  • Like 1

Share this post


Link to post
Share on other sites

It was in my head as "inferior" with the quotes, but the quotes got lost between my brain and my fingers.

Better? :)

  • Like 1

Share this post


Link to post
Share on other sites

How would phosphor physical glow be simulated? Or is that just an aspect that you have to throw in the towel? That to me was always the defining aspect of Asteroids on a vector monitor where the shots were much brighter than the other graphics and caused that great persistent trail.. whereas in an emulator on a raster monitor the brightness was pretty much the same as everything else on-screen.

 

Forgive the lousy screenshot.. I just snagged it from a random TNT amusements video off youtube. :lol: But it's not a bad illustration.

post-31-0-04520000-1447702196_thumb.jpg

Share this post


Link to post
Share on other sites

Ignoring the curved screen , given a high resolution display, you can already do most of it. A 24" 4K monitor is only 184 ppi, while an iPad Pro is 264 ppi. And hey, conveniently, an iPad Pro is a 4:3 display and roughly the same size as my PVM's viewable area...

 

Anyhow, when the pixel density gets that high, you're able to start simulating subpixel structure well enough that you can't visually tell the difference. Simulating scanlines? You've got roughly 9 real lines of resolution per SNES scanline, good enough to do a pretty reasonable approximation, including varying the scanline width based on intensity. You've also got roughly 11 pixels per SNES column, enough to simulate the RGB subpixels of a trinitron rather nicely. You're simulating details that are so tiny that they only really appear to the eye from a normal viewing distances as a subtle texture, and something like an iPad Pro can do that just fine. Of course, it's not curved...

 

Now, talking about simulating phosphor persistence and the flicker of a vector monitor, that's trickier. For that, you need a high refresh rate, not high resolution. Luckily, I don't think you need a particularly high resolution display for vector, because they didn't have scanlines and they weren't typically RGB (Vectrex wasn't, anyhow). So for that you'd want to grab a high refresh rate display. They only really go up to 144Hz today, but the typical refresh rate of the Vectrex was around 30, so you can break up each Vectrex frame roughly in four or five and fade the lines as you draw in order to get something reasonably approximating the look of a vector display... Or just throw g-sync at the problem to accommodate the Vectrex's dynamic refresh rate (the more that was on screen, the lower the framerate) and tie your actual display refresh rate to a fixed multiple of the Vectrex, so if the Vectrex is drawing at 20 FPS, render at 80Hz, and if the Vectrex is drawing at 36 FPS, render at 144Hz.

 

It's all trickery, and there are still things we need to do it better (high resolution *and* high refresh rate, and using OLED instead of LCD to get the low response times to better simulate stuff), but you can do a pretty credible job today...

How much money in R&D costs will it require to produce a display with the variable timings necessary to emulate the vectors? Also you might as well throw in color vector monitors because Tempest.

 

Also give me a call when some industry guru decides to create a 4k screen with a 4x3 aspect and convex rather than concave curvature. They might have a buyer! :grin:

Share this post


Link to post
Share on other sites

Variable refresh rates on LCDs has been a thing for quite some time now, via GSync and FreeSync.

 

Convex display surfaces aren't going to be common, but you'll probably be able to do that with flexible OLED displays without too much trouble. At least on one direction (like a cylinder), but that's fine, that's what a Sony PVM is like (it's only curved in one direction, not two).

Share this post


Link to post
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.

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...