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

  • 4 weeks later...

This course page contains group reports from the Advanced Digital Design course at CMU.

Both the success and failures make for an interesting read.

http://ece545.com/S16/project_reports.html

 

Interesting that the SNES and Apple IIGS projects got a 65C816 cpu core from WDC.

 

I'm looking forward to the future, with so many cool things made by smart people like Kevtris. :)

Link to comment
Share on other sites

Thanks for the kind words everyone :-) that means a lot. I really did want at least one 16 bit core at launch with this thing. PS1 is probably about as high end as these things can go, due to the speeds involved (CPU speeds, etc) and the sheer size of the undertaking. The N64 might be doable but is probably just out of reach without an insane amount of heroics. One problem I have been grappling with is how to get fast enough memory for things like SA-1 on the SNES, since that needs about 10MHz access to memory. This doesn't sound fast, but it's a lot faster than DDR running at 150MHz+ can handle I think. It's not the bandwidth that kills you, it's the latency. Setting up and performing random reads takes a relatively long time. I have been working to try and solve this problem before advancing. The Game King really showed me the problem of SDRAM latency. I am running it at 125MHz (max for that chip) and could barely coax 5.6MHz or so out of it of random access due to the latencies involved. There's several options I can do, so those are being explored. Good to get these kinks worked out now, before making the hardware.

 

That and I kind of want to get this synth project done first as a warm up too. Been working on that as well. Fortunately lots of the work on that will be directly transferable to the Zimba.

 

(edit: too quick on the posting trigger, lol)

 

Hi Kevtris,

 

Completely offtopic question.

 

A bunch guys and I were thinking of buying or at least paying you enough for the right to use your VRC7 emulation source code in order to implement it on the everdriveN8, which is the only chip that it does not yet have emulation for. Would you be willing to sell it, or license it? The idea is to gather enough money via a fundraiser like indie-gogo and then use the money to give you proper compensation for your intellectual property.

 

Let me know if you are interested, otherwise I'll just go back to waiting for a "hero" on the boards to implement it from scratch.

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

VRC7 would be amazing. But does the Everdrive's FPGA have sufficient breathing room for this sound chip? MMC5 is still largely incomplete (CVIII runs but Retro City Rampage and most other MMC5 games are still a hot mess) and gets a lot more support. I know there's an English translation floating about and Kevtris has nearly perfect soundchip emuation for nearly everything in the HiDefNES mod. But is Lagrange Point really that awesome, or just a forgetable game sans the musical score?

Link to comment
Share on other sites

VRC7 would be amazing. But does the Everdrive's FPGA have sufficient breathing room for this sound chip? MMC5 is still largely incomplete (CVIII runs but Retro City Rampage and most other MMC5 games are still a hot mess) and gets a lot more support. I know there's an English translation floating about and Kevtris has nearly perfect soundchip emuation for nearly everything in the HiDefNES mod. But is Lagrange Point really that awesome, or just a forgetable game sans the musical score?

Link to comment
Share on other sites

 

Hi Kevtris,

 

Completely offtopic question.

 

A bunch guys and I were thinking of buying or at least paying you enough for the right to use your VRC7 emulation source code in order to implement it on the everdriveN8, which is the only chip that it does not yet have emulation for. Would you be willing to sell it, or license it? The idea is to gather enough money via a fundraiser like indie-gogo and then use the money to give you proper compensation for your intellectual property.

 

Let me know if you are interested, otherwise I'll just go back to waiting for a "hero" on the boards to implement it from scratch.

 

My VRC7 implementation is actually a full OPL3 with a "wrapper" around it to turn it into a VRC7. the same code is also acting as a YM2413 for the SMS as well. I am not sure what a good price would be, but I would be receptive to open sourcing the OPL3/VRC7/YM2413 code for the right price. This way anyone could use it wherever they wanted to within reason.

 

Here's some examples played through it in various modes:

 

(OPL2)

 

http://blog.kevtris.org/blogfiles/FPGAsynth_Brix_Album/

 

(VRC 7 with NES APU accompaniment)

 

http://blog.kevtris.org/blogfiles/fpga_vrc7_output.mp3

 

(YM2413)

 

http://blog.kevtris.org/blogfiles/ym2413_test.mp3

  • Like 3
Link to comment
Share on other sites

 

My VRC7 implementation is actually a full OPL3 with a "wrapper" around it to turn it into a VRC7. the same code is also acting as a YM2413 for the SMS as well. I am not sure what a good price would be, but I would be receptive to open sourcing the OPL3/VRC7/YM2413 code for the right price. This way anyone could use it wherever they wanted to within reason.

 

Here's some examples played through it in various modes:

 

(OPL2)

 

http://blog.kevtris.org/blogfiles/FPGAsynth_Brix_Album/

 

(VRC 7 with NES APU accompaniment)

 

http://blog.kevtris.org/blogfiles/fpga_vrc7_output.mp3

 

(YM2413)

 

http://blog.kevtris.org/blogfiles/ym2413_test.mp3

 

Sounds good.

 

How much are we talking about? 100? 200? 500? a thousand dollars?

Link to comment
Share on other sites

So, I get the appeal of doing something like this, but I can't help but to wonder if the N64 would be possible? Talk about challenge, there STILL to this day isn't a truely compatible N64 emulator available. I mean for God's sake look at the progress CEMU (WiiU Emu) has had in just months of development, yet still no "good" n64 after 20 years?!

 

I know you are friends with Marshall from Retroactive who already has a wealth of N64 know-how, and infact I imagine that a N64 fpga with hdmi output alone could fetch you $200+ by itself. I guess my "issue" with this whole project is that (for the most part) all of the systems you are implementing are pretty much already available as emulators and most are done pretty well, clearly they aren't all 100% but I think you get the point, plus since you aren't planning on using cart slots or OEM controls you've already lost all of the "actual hardware" fan boys that refuse to use emulators based on principle alone, so this won't be any different.

 

All that being said, I personally would still be interested in purchasing one of these units even without N64 purely for the convience, but beg that you consider adding N64 later and perhaps Atari Jaguar too... basically any cart console would be amazing!

 

I do have a couple questions too. Will this system be compatible with usb hdd's as well as SD and... are there plans for a UI that would allow for cover art/game info to be shown for game selection? Similar to hyperspin and/or launchbox frontends, maybe not THAT customizable but I think you get what I'm talking about.

 

Keep up the amazing work you are doing, if this is as well done as Hi-Def Nes...it will be awesome!

Edited by falconsfan79
Link to comment
Share on other sites

So, I get the appeal of doing something like this, but I can't help but to wonder if the N64 would be possible? Talk about challenge, there STILL to this day isn't a truely compatible N64 emulator available. I mean for God's sake look at the progress CEMU (WiiU Emu) has had in just months of development, yet still no "good" n64 after 20 years?!

 

I know you are friends with Marshall from Retroactive who already has a wealth of N64 know-how, and infact I imagine that a N64 fpga with hdmi output alone could fetch you $200+ by itself. I guess my "issue" with this whole project is that (for the most part) all of the systems you are implementing are pretty much already available as emulators and most are done pretty well, clearly they aren't all 100% but I think you get the point, plus since you aren't planning on using cart slots or OEM controls you've already lost all of the "actual hardware" fan boys that refuse to use emulators based on principle alone, so this won't be any different.

 

All that being said, I personally would still be interested in purchasing one of these units even without N64 purely for the convience, but beg that you consider adding N64 later and perhaps Atari Jaguar too... basically any cart console would be amazing!

 

I do have a couple questions too. Will this system be compatible with usb hdd's as well as SD and... are there plans for a UI that would allow for cover art/game info to be shown for game selection? Similar to hyperspin and/or launchbox frontends, maybe not THAT customizable but I think you get what I'm talking about.

 

Keep up the amazing work you are doing, if this is as well done as Hi-Def Nes...it will be awesome!

I don't think you fully understand the power and reconfigurability of the FPGA. 5th gen consoles are off the table right now. SNES will probably be the best current tech can do for the time being but there's always plenty of room for technology to grow. In ten years from now, an N64 FPGA console with HDMI output may be doable and affordable.

 

Kevtris said he planned on creating cart slot adapters for more popular systems. This would be allowable with addon adapters with possibly periods grouped together like NES/SNES/Genesis on one cart adapter and precrash Atari consoles (or the 'visions) on another.

 

Kevtris has started with early 8-bit consoles because they are simpler tech but plans eventually to cover everything up through 4th gen. It really is a fantastic project from a historical perspective and anyone who wants to try out a few games on any obscure system will be able to do so with zero reconfiguration because all cores will be included, and more on the way.

Link to comment
Share on other sites

I guess I don't fully understand, thanks for taking the time to explain a little instead of flaming. I guess I've got some reading to do. I didn't know fpga couldn't handle 93 MHz but to be fair, I also didn't realize the snes was only just over 3Mhz and Genesis more than twice that. :-o

One of the problems Kevtris mentioned was that modern high speed RAM wasn't actually low latency like vintage parallel RAM which was true random access. The SD-RAM the Zimba used takes several clocks to fetch a single byte of data. So with the NES being 1.79Mhz, SNES being 3.58Mhz, or PC Engine being 7.16 Mhz, those cycles add up quick. Also considering some systems like Neo Geo having multiple busses running simultaneously, the 150Mhz SD RAM he used was being pushed to it's limits. Moving up to DDR would only make the latency issues worse. And vintage style 8-bit or 16-bit Parallel RAM chips either aren't manufactured anymore or aren't available in large enough size to hold some of the bigger ROMs. There isn't enough room on the FPGA to contain both the system RAM and ROM, so compromises have to be made somewhere. Also consider many chips are only rated for 3.3V or less so they need translational logic to convert to 5V for the cartridge add-ons.
Link to comment
Share on other sites

  • 2 weeks later...

First post here and registered because I want to participate in this thread :)

Someone mentioned that there should be console revisions that would add features.

This might be the best idea because really, it's hard to imagine that the first version of this console will be the perfect one when there are so many options and ways of thinking.

The basic start would be:
- $100 - $150
- HDMI
- Room for a future optional Composite and S-Video add-on
- SD Cards for ROMs
- 8 bit era games only if it saves any costs / helps keep it in that price range

The definite version for me would be:
- $200 - $299
- HDMI / Composite / S-video all next to each other.
- SD Cards and Cartridges
- 8 bit / 16 bit

I know little about costs, and I'd likely pay more for the definite version if necessary, since of course, it will have everything from the poll questions, but I think that any system worth more than $300 is almost dangerous to produce because the number of buyers will be much more limited beyond that price.

I have some questions though.

1. If we have Composite / S-Video and other non-HD output, will it be in pure 240p, like the original consoles?
This is VERY IMPORTANT to me. I do like HDMI because most people's TVs are HD, so when I visit others, it will be no problem sharing with others.
But really, most of my time playing is spent with my old CRT when I'm alone, it's my preferred look and feel for these systems.

2. Input lag. How much will there be in milliseconds exactly?
I was assuming that since the hardware is cloning the original game systems, it would have no lag or very minimum lag.
But the post by Kosmic Stardust makes me doubt. Does that RAM issue affect input latency?
I think it's still obvious to assume that it will be less input lag than a PC running Windows with an emulator on it, which would be awesome.
I hated the RetroN5's input lag, makes it obsolete to play games on it for me.
For comparison, I love the PS1's NES emulator (imbnes) as well as NES on GameCube, because those seem to have zero lag, and feel just like the real system.
If this FPGA game console is anything like that, it really would be worth it to pay as much as I can for it!

3. There's more about the RetroN5's lag that would help me understand what having HDMI would mean for this console.
See, I have a very fast HDTV capable of playing all of my HDMI game systems flawlessly, even non HD systems like the NES and SNES will look great AND have enough short lag that I can play games flawlessly on it. But the RetroN5's HDMI gets severely lagged on that TV, while it's fine in my PC monitor.
........ I have no idea what's happening but there seem to be different ways HDMI is transfered,
and the RetroN5 is using an inconvenient one for me.

So my question about this is... what should I expect from this FPGA system in regards to this? Is there a risk of HDMI Lag like that?

4. As for the cartridge slots...
Is Save file managing of cartridges possible? This is the ONLY reason I own a RetroN5 still.
If I can import from other emulators and backup, this also really makes it worthy to pay whatever price.

The RetroN5 is already a $150 save file manager for me. Wouldn't hurt me to replace it with a $350 machine that can do the same thing AND play the games properly.

Link to comment
Share on other sites

Kevtris said there would probably be a multi-out with 240p alongside HDMI. The multi-out would be RGB capable (component or other), or work with things like s-video and composite.

 

I'm pretty sure there will be zero lag. I don't think Kevtris would put out something that doesn't replicate the original hardware 100%, and that would be zero lag. HDMI will not have lag either. The lag will come in with your HD TV.

Link to comment
Share on other sites

 

2. Input lag. How much will there be in milliseconds exactly?

I was assuming that since the hardware is cloning the original game systems, it would have no lag or very minimum lag.

But the post by Kosmic Stardust makes me doubt. Does that RAM issue affect input latency?

You are confusing memory latency with input lag. Input lag is on the order of milliseconds. Response time and propagation delay from chips is more like nanoseconds.

 

The issue it the SD RAM is they are not so random access but designed to stream the data serially at very high speeds to the CPU cache which is true random access. These old game systems do not request data serially and there is no way to "pre fetch" a requested byte to have it ready in time. The console CPU sends an address value to the cartridge ROM or system RAM and the value contained therein is available immediately. Modern RAM receives a request and then fetches the value or address range and sends it serially through a wide 32-bit or 64-bit bus. This data is basically streamed at very high speed to the CPU cache for further processing. These RAM chips are designed for maximum bandwidth, not retrieving a single 8-bit or 16-bit value as quickly as possible. The parallel type RAM chips used in vintage consoles are no longer manufactured, meaning one must rely on stock salvaged from recycled electronics, and were never available in sizes large enough to hold all of the console RAM and ROM.

 

The way the cartridge hardware is designed, the CPU can request a read on any available clock cycle and have data available to it immediately. The FPGA is not large enough to contain all of the RAM plus ROM data so it must read this data off of external memory. The SDRAM will recieve a request for some 32-bit chunk of data, then fetch it and serve it to the FPGA. This requires several clock cycles to pull this data, and the FPGA must send a new read request for every byte of data the console CPU core needs to fetch. So the SDRAM is probably 133Mhz being overclocked to 150Mhz, and has a specific latency meaning it requires several clock cycles before it can supply the necessary chunk of data to the FPGA. This must be performed within the time allotment of a single clock cycle of the console CPU core, meaning the 150Mhz SDRAM latency is barely fast enough to fetch data in time for a 3.58Mhz CPU such as the SNES. More considering that some consoles (Neo Geo) have multiple busses which must be accessed on every clock. This would make Neo Geo all but impossible to emulate via FPGA plus SDRAM.

 

Going up to DDR (double data rate) 400Mhz or faster RAM would net no performance gains. SD-200, DDR-400, DDR2-800 and DDR3-1600 Mhz are all basically the same speed internally, using half (DDR), quarter (DDR2), and even eighth (DDR3) cycle clocks to stream the data to CPU. As a result, internal latencies actually increase as you go up each generation of RAM hardware, making faster RAM useless for direct access.

 

TLDR, the massive bandwidth of modern RAM technology is meaningless when the console CPU only requests a single byte at a time.

 

Regarding input lag which you were concerned about, whether using SD or HDMI, any perceived lag will be the result of your display device, not the console hardware. The fact the FPGA directly simulates the console bus in hardware means cycle accurate timing just like original hardware. Even light guns will work, provided you're using a CRT.

  • Like 1
Link to comment
Share on other sites

Sounds great!

Thank you for your info.

If we're only talking in nanoseconds here, I think I can rest easy with that.

It's sad that the most convenient RAM for a project like this seemingly doesn't exist.

But if that doesn't affect input lag, how else would one notice this disadvantage while playing? (Sorry if this is obvious.)

 

I will be reading the whole thread with replies and catch up too, as I only read a few posts of what I thought was important.

Link to comment
Share on other sites

Going up to DDR (double data rate) 400Mhz or faster RAM would net no performance gains. SD-200, DDR-400, DDR2-800 and DDR3-1600 Mhz are all basically the same speed internally, using half (DDR), quarter (DDR2), and even eighth (DDR3) cycle clocks to stream the data to CPU. As a result, internal latencies actually increase as you go up each generation of RAM hardware, making faster RAM useless for direct access.

 

TLDR, the massive bandwidth of modern RAM technology is meaningless when the console CPU only requests a single byte at a time.

 

Naturally. It became apparent with RAMBUS products and the Pentium IV, the beginning of the era of "streaming". P4 was typically known as a consumer-class streaming microprocessor and only achieved greatness when combined with a high-latency, high-bandwidth memory like RDRAM. RDRAM was a smoking hot buzzword for a while, but it wouldn't last. RAMBUS was a patent-troll company with no innovation of their own.

 

Modern memory is designed to work with modern CPUs, not FPGAs. And modern CPUs have loads of fast cache in them. Modern memory is designed as part of a hierarchy, beginning with registers and stacks inside the CPU proper. Then expanding outward to the onboard L1, L2, and L3 caches, then offboard to the main DRAM memory itself. Onward and upward, finally stopping at the hard disk and perhaps other I/O.

 

Is it required that z3k be strictly FPGA only? Perhaps there needs to be a microprocessor and/or memory controller/cache involved somehow.. Or a 3rd FPGA that simulates the memory subsystem.. Nothing wrong in that. If the proposed price goes up by $50 for such enhancements, so be it!

Edited by Keatah
Link to comment
Share on other sites

So, I get the appeal of doing something like this, but I can't help but to wonder if the N64 would be possible? Talk about challenge, there STILL to this day isn't a truely compatible N64 emulator available. I mean for God's sake look at the progress CEMU (WiiU Emu) has had in just months of development, yet still no "good" n64 after 20 years?!

 

It's simply a matter of interest. Today's PC is more then enough.

Link to comment
Share on other sites

 

Naturally. It became apparent with RAMBUS products and the Pentium IV, the beginning of the era of "streaming". P4 was typically known as a consumer-class streaming microprocessor and only achieved greatness when combined with a high-latency, high-bandwidth memory like RDRAM. RDRAM was a smoking hot buzzword for a while, but it wouldn't last. RAMBUS was a patent-troll company with no innovation of their own.

 

Modern memory is designed to work with modern CPUs, not FPGAs. And modern CPUs have loads of fast cache in them. Modern memory is designed as part of a hierarchy, beginning with registers and stacks inside the CPU proper. Then expanding outward to the onboard L1, L2, and L3 caches, then offboard to the main DRAM memory itself. Onward and upward, finally stopping at the hard disk and perhaps other I/O.

 

Is it required that z3k be strictly FPGA only? Perhaps there needs to be a microprocessor and/or memory controller/cache involved somehow.. Or a 3rd FPGA that simulates the memory subsystem.. Nothing wrong in that. If the proposed price goes up by $50 for such enhancements, so be it!

If fast 16-bit parallel RAM was available in sufficient size and quantity from modern part suppliers, I'm sure Kevtris would be using it. The FPGA could easily multiplex the RAM and cart ROM busses.

Link to comment
Share on other sites

What are the advantages and disadvantages of using memory through another FPGA?
Though I think I can already guess:

Pros: It will be closer to the type of ram needed.
Cons: It will be more expensive.

What else on a technical level?

Edited by veelk55
Link to comment
Share on other sites

As far as I know it's very inefficient to setup an FPGA as RAM unless it has dedicated memory inside already. A second FPGA would have other uses though (video processing, etc) so if a special RAM chip is expensive, it would be more versatile to take the FPGA route.

 

Anyway I'm sure Kevtris will find a good tradeoff. FPGA implementations are not new but they take time to refine. The 2003 C-One used two FPGAs and one 68K to run a C64 core, but the 2009 TC64 and 2013 MiST do the same with only one (bigger) FPGA.

Edited by Newsdee
Link to comment
Share on other sites

So I just read most of the thread and progress, mainly the updates by Kevtris and some interesting questions people asked for.

Like the 3 cartridge adapters, each one having 3 for 1 company's systems, etc.

 

One of the things that interested me the most was the "dot crawl" stuff.

So apparently the Z3K will be able to look just like a real NES on a CRT? Not just 240p, but also have the same weird artifacts the original NES gave it? MAAAAN THAT is cool.

To me personally, it can't get more legit and fun than that. I hope that's still there in the final version!

 

Back in 2003, I got an NES emulator for PS1 called It Might Be NES.

This opened up my mind completely to what could be done with emulation. I used to think that roms were just files limited to being in a PC xD meant to be played only with inaccurate emulators on PC that would make them sound weird, feel slightly laggy, have graphic glitches, etc.

I never even thought I'd make my own romhacks be playable on a real TV with real controllers. ImbNES felt real, minus the games it didnt support. I used to think that in 2 years (from 2003) someone would make an SNES emulator for PS1 or PS2 and that perfection would have been achieved.

Only when the DS was popular with emulators was I able to get something new running close to the real thing: lameboy for GameBoy roms.

Fast forward to 2016 and I'm still waiting for something like that. Z3K seems like it's going to be it. (Even better since it can't even be called emulation anymore)

I know a lot of people use a Wii for similar things, but by the time I became interested in this, it was a WiiU I got. Not going to get a Wii just to hack it.

In the end the best thing I could do to emulate games was use my PC connected to an Extron Emotia -> SD TV.

 

Oh I also noticed that phase when Kevtris got "burned out" with too much FPGA work. XD

That was funny, and sad.

Funny because I can relate. Sometimes I prefer to clean the whole house just for fun because I'm tired of doing whatever activity I've been doing nonstop, including playing games or creating things.

 

Also really admire his wish to do it all on his own. I find it shocking that it is more fun to make "cores" than most other things, because that seems to be the most important thing so I thought it would be the most annoying part.

 

As for USB controllers / Original console controllers...

Would a PS4 controller work via USB?
That's my favorite controller right now. It's the next best thing after the SNES, with the SNES controller being the best (for me). The PS3 controller is similarly good too.

Edited by veelk55
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...