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 tried the FDS Metroid (via the N8 Everdrive) on the NT Mini in a very unscientific test.. i.e. just starting it up and playing, and yes, there was no sound when shooting open doors.

 

I'm not aware if that was ever any different though.. even when getting the ball, the music sounded "inverted". Is that expected? :P Again I don't know if there's some specific option of some sort needed to be enabled for FDS sound

Link to comment
Share on other sites

I never said I knew anything about you. I simply said this isn't drama and if you view it as such you are incorrect and have some kind of issue with a normal conversation that reflects more on yourself than on the quality of the conversation.

 

I believe the issue here is a miscommunication caused by the fact that for some reason you seem to think calling something drama is a compliment which it is not.

 

Mmm whatever. It is not a compliment, and not a negative. It is an interesting conflict. Drama is an exciting series of events, they can be good or bad. At least the dictionary says so.

 

So yes, more drama please!

 

Except it wasn't a conflict, it was just several people discussing performance of various technologies calmly. Drama might have a different meaning when applied to the theater but when applied to real life drama is synonymous with cancer. (Think Jersey Shore if that helps you process what drama has come to mean in modern times.) Unless you think "Ejaculate" still means "to exclaim" you should probably be aware the meanings of words can change over time.

 

OK you caught my interest ... what??

[i totally miss the reference here, was this something that happened recently?]

 

And therein lies the drama.

No, it doesn't. Because drama in a modern context means a bunch of children throwing crap at each other. There is absolutely nothing positive about it. To say something is drama is to say it is a pointless waste of time and effort by immature people.

 

But at this point that case could be made and it would be accurate. Congratulations, you created a self fulfilling prophecy.

The funny thing about all this "drama" was it started all because somebody (Wolf) posted that the thread wasn't dramatic. Self-fulfilling prophesy, indeed! Carry on... :grin:
  • Like 1
Link to comment
Share on other sites

People are overlooking the display driver. I'm not talking about the software side, I'm talking about that circuit that decides to take the HDMI signal, decode it, upscale/downscale it (thus buffering it), and then deciding where to draw the pixels. The pixels are never blanked like a CRT would, as that would generate flicker, which if you recall, all CRT's did, and I can distinctly recall being unable to use a CRT at 60hz after using one running at 85hz that appeared flicker-free.

 

So the correct answer would be 'it updates the pixels and holds them as fast as it's able to', otherwise running a panel at 288, 240,144,120, 90, 60hz would all look distinctly different. It's like how RAM works, in that the physical panel is being told to hold the pixel at a value, and you're changing the value through the display driver.

 

Here's a FPGA display driver without a framebuffer, http://hackaday.com/2011/09/09/putting-laptop-lcds-to-use-with-an-fpga/

So while we're talking about HDMI at 60hz, the LVDS is running at 500Mhz.

 

Here's a FPGA display driver with a framebuffer http://blog.tkjelectronics.dk/2012/10/lvds-display-controller-for-microprocessors/

Kimset, would it not be possible, with the right display driver, to perform the scaling and update each line in realtime? This would create just a handful of scanlines worth of lag.

 

For instance, the display analyzes the input signal to determine the input and output resolution. From there a matrix is applied to each row using a fast bilinear scale algorythm to determine exactly what percentage of each input scanline gets blended into each output scanline. A similar algorythm is applied at the pixel level for all pixels scaled into each scanline. There is no frame buffer but a half dozen or so lines must be buffered to handle the bilinear scale algorythm. As a result, and with minimal delay, the main display gets updated one line at a time, at a rate wholly dependant upon the vertical rate of the input signal multiplied by the scale ratio of input lines to output lines.

 

Such a hypothetical display would be able to push pixels to the screen almost in realtime, with an overall display lag of well under one millisecond. It would also tolerate signals with out of sync timings, provided each frame has consistent number of scanlines. A similar processor could take analog signal such as 240p, convert it line-by-line to 720h (horizontal pixel width), repeated 240 times per frame. The one downfall is such processing wpuld be treated as progressive since interlaced signals are incompatible with realtime processing on progressive display tech, so 480i content would be processed as 240p60, with some small offset of the lines during odd frames. Likewise, 1080i gets treated as 540p60.

 

I don't see why a display with sub-millisecond lag could not be achievable by refreshing the LCD one line at a time, even with bilinear scaling applied to the image. Even with an "update once per frame" display driver, realtime bilinear scaling should be possible without buffering the entire input frame before pushing to the display. My ASUS monitor I use for gaming has 9ms rating on displaylag.com for instance, so it must be possible on some existing displays, since buffering a single frame cost 16ms.

Link to comment
Share on other sites

Kimset, would it not be possible, with the right display driver, to perform the scaling and update each line in realtime? This would create just a handful of scanlines worth of lag.

 

For instance, the display analyzes the input signal to determine the input and output resolution. From there a matrix is applied to each row using a fast bilinear scale algorythm to determine exactly what percentage of each input scanline gets blended into each output scanline. A similar algorythm is applied at the pixel level for all pixels scaled into each scanline. There is no frame buffer but a half dozen or so lines must be buffered to handle the bilinear scale algorythm. As a result, and with minimal delay, the main display gets updated one line at a time, at a rate wholly dependant upon the vertical rate of the input signal multiplied by the scale ratio of input lines to output lines.

 

Such a hypothetical display would be able to push pixels to the screen almost in realtime, with an overall display lag of well under one millisecond. It would also tolerate signals with out of sync timings, provided each frame has consistent number of scanlines. A similar processor could take analog signal such as 240p, convert it line-by-line to 720h (horizontal pixel width), repeated 240 times per frame. The one downfall is such processing wpuld be treated as progressive since interlaced signals are incompatible with realtime processing on progressive display tech, so 480i content would be processed as 240p60, with some small offset of the lines during odd frames. Likewise, 1080i gets treated as 540p60.

 

I don't see why a display with sub-millisecond lag could not be achievable by refreshing the LCD one line at a time, even with bilinear scaling applied to the image. Even with an "update once per frame" display driver, realtime bilinear scaling should be possible without buffering the entire input frame before pushing to the display. My ASUS monitor I use for gaming has 9ms rating on displaylag.com for instance, so it must be possible on some existing displays, since buffering a single frame cost 16ms.

 

In an earlier version of this discussion, I had dug up the block diagrams for a few LCD monitors and televisions. Basically the way all LCD's work, or at least those with any kind of menu, is that they need the framebuffer to create an overlay and typically do it out of cheapness. Now let's say you put the bare minimum between the input HDMI (eg no HDCP, thus it is just TDMS) and buffer just enough lines to allow the maximum integer scale (so 9 lines for 240p to 2160p, 103,680 Bytes or so) you'd likely have only one line of latency, and would be comparable to CRT speeds.

 

However the real challenge here is building a LCD driver board that works with any LVDS connection. A FHD doesn't integer scale 240p but a 4K and a 720p does. However as demonstrated in various videos, 720p's issue is that it doesn't have the right aspect ratio, hence 4K makes the most sense to get an integer scale correct.

 

Most of the 4K panels I've looked up, seem to be being built as eDP. eDP connections AFAIK pass the control to the video source (eg a GPU with FreeSync) thus allowing variable frame rates under the guise of power management (CVT-RB2,) so there is a built in frame buffer, but the GPU is directing it. iDP is the same idea but for Television between the TV's SoC.

 

So it may at some point become possible to pull the back off a TV and disconnect the SoC and use the eDP/iDP connection directly, but I've found no information if eDP/iDP simply goes to a scaler/buffer ASIC in the panel that then drives the pixels, or if there is yet another LVDS link.

  • Like 1
Link to comment
Share on other sites

Basically the way all LCD's work, or at least those with any kind of menu, is that they need the framebuffer to create an overlay and typically do it out of cheapness.

Poppycock. The setup menu for most CRTs manufactured after 1990 or so can overlay menu icons, volume settings, and channel descriptors over live TV in realtime, not to mention closed captions. Funny because when I tune into a snowy picture on the RF, the system menu seems to get wavy as the rest of the picture is distorted for lack of Vsync and colorburst / hsync signals. This is easy to do, just send bright color info to the opaque pixels as they appear.
Link to comment
Share on other sites

Poppycock. The setup menu for most CRTs manufactured after 1990 or so can overlay menu icons, volume settings, and channel descriptors over live TV in realtime, not to mention closed captions. Funny because when I tune into a snowy picture on the RF, the system menu seems to get wavy as the rest of the picture is distorted for lack of Vsync and colorburst / hsync signals. This is easy to do, just send bright color info to the opaque pixels as they appear.

Note I said "out of cheapness", those SmartTV SoC's route the video through the SoC so they can do things like PiP and transparency with the apps because who cares if the video is delayed by 3-8 frames in the process. Monitor menus need to know what color the pixel is before they draw it to do transparency. That overlay is always running on a smartTV.

 

Here's a 4K Display Driver

http://www.digitalview.com/media/manuals/svx-4096-2x-manual-rev201-19aug2016.pdf

Link to comment
Share on other sites

The funny thing about all this "drama" was it started all because somebody (Wolf) posted that the thread wasn't dramatic. Self-fulfilling prophesy, indeed! Carry on... icon_biggrinwink.gif

Actually it started because some moron called a regular conversation diarhea followed by another moron that backed him up saying it was drama but evidently he was more clueless than the original troll because he didn't even understand he was making an insult and supporting that troll.

Link to comment
Share on other sites

i tried the FDS Metroid (via the N8 Everdrive) on the NT Mini in a very unscientific test.. i.e. just starting it up and playing, and yes, there was no sound when shooting open doors.

 

I'm not aware if that was ever any different though.. even when getting the ball, the music sounded "inverted". Is that expected? :P Again I don't know if there's some specific option of some sort needed to be enabled for FDS sound

 

NE146, can you make sure FDS sound is explicitly turned on in the menu as kevtris mentioned? For my test with the Hi-Def NES, the issue existed with FDS sound enabled in the menu (as FDS sound effects worked in other games that I tried), but we're curious with the Analogue NT Mini.

Link to comment
Share on other sites

If you can hear Samus transform into the morph ball ("Maru Mari"), then the FDS sound channel is enabled and must be working to some extent.

That is what I found odd with the Hi-Def NES and the Everdrive N8 using the latest firmware; the morph ball transform produced FDS audio (and saw it move the first FDS waveform in the APU menu option). I noticed that the APU has two waveforms listed for FDS; could it be that the FDS Metroid door opening sound effect is on the second FDS waveform, which appears to be broken from the 2.25 -> 3.01 upgrade? I never saw that second waveform register any audio.

 

This is the menu I am referring to:

http://retrorgb.com/images/Hi-DefNESmenuViewer.jpg

Edited by bikerspade
Link to comment
Share on other sites

 

NE146, can you make sure FDS sound is explicitly turned on in the menu as kevtris mentioned? For my test with the Hi-Def NES, the issue existed with FDS sound enabled in the menu (as FDS sound effects worked in other games that I tried), but we're curious with the Analogue NT Mini.

 

Tested with Everdrive N8 and Nt mini. No sound when you open doors. I'm sure that the FDS expansion audio chip is enable.

 

Also tested with FDS Ram adapter and FDS stick and now have sound everytime I open a door!

  • Like 1
Link to comment
Share on other sites

I had a theory- could it be the everdrive's emulation of the audio that is bad? The games can *read back* some audio state- I wonder if this is causing issues? The test would be to play it on a real FDS, but disable cart audio and enable on board audio instead. I don't have any way to test this here.

  • Like 1
Link to comment
Share on other sites

I had a theory- could it be the everdrive's emulation of the audio that is bad? The games can *read back* some audio state- I wonder if this is causing issues? The test would be to play it on a real FDS, but disable cart audio and enable on board audio instead. I don't have any way to test this here.

 

I tested with a FDS stick and it only emulates the drive itself, so I think it's like a real FDS.

 

What I did: I turned down cartridge audio volume until I cannot hear anymore the "morphing ball" sound. Enabled FDS audio audio (emulation), "Morphing ball" sound comes back. But still no sound effect when I opens doors.

  • Like 1
Link to comment
Share on other sites

Actually it started because some moron called a regular conversation diarhea followed by another moron that backed him up saying it was drama but evidently he was more clueless than the original troll because he didn't even understand he was making an insult and supporting that troll.

And you are continuing this downward spiral of "verbal diarrhea" by not dropping the subject. :roll:

R3FSRO8Z9D0lO.gif

  • Like 1
Link to comment
Share on other sites

 

I tested with a FDS stick and it only emulates the drive itself, so I think it's like a real FDS.

 

What I did: I turned down cartridge audio volume until I cannot hear anymore the "morphing ball" sound. Enabled FDS audio audio (emulation), "Morphing ball" sound comes back. But still no sound effect when I opens doors.

OK thanks, so there's a problem with it then. I am not sure when I will get a chance to fix it but it's on the list. thanks for the testing!

  • Like 2
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...