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 found this guy explained quite well the benefits of an FPGA for emulation/cloning. It's focused on the MiST but most of what he says applies to other FPGA systems (like the NT mini)

 

[...]

When it comes to interesting FPGA videos I can recommend this one as well:

 

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

Edited by retro_fan
Link to comment
Share on other sites

When it comes to interesting FPGA videos I can recommend this one as well:

Interesting stuff indeed.

 

I haven't really investigated this for myself, but I wonder how many arcade games the NT Mini (and by extension the Zimba 3000) could run. I figure each arcade game has its own hardware setup, so each game would need its own specialized FPGA core. That means a lot of effort to invest in creating each core. Still, it would be nice to have at least a few arcade favorites running flawlessly on an HDMI television, like Galaxian, Galaga, Space Invaders, Pac-Man, Ms. Pac-Man, Donkey Kong... Y'know, the early stuff that today's FPGA should be able to support. :)

Link to comment
Share on other sites

Right now we have

NES

Sega Master System

SG-1000

Game Gear

Gameboy

Gameboy Color

Kevtris says GBC is not fully debugged yet but the games I've tried have all run fine so far!

If Kevtris wanted a real challenge, he would attempt to build a X68000 core. Now that would be epic!

Link to comment
Share on other sites

Interesting stuff indeed.

 

I haven't really investigated this for myself, but I wonder how many arcade games the NT Mini (and by extension the Zimba 3000) could run. I figure each arcade game has its own hardware setup, so each game would need its own specialized FPGA core. That means a lot of effort to invest in creating each core. Still, it would be nice to have at least a few arcade favorites running flawlessly on an HDMI television, like Galaxian, Galaga, Space Invaders, Pac-Man, Ms. Pac-Man, Donkey Kong... Y'know, the early stuff that today's FPGA should be able to support. :)

One of the issues with arcades is the video out frequency. Some games run at very weird refresh rates: RType is at 55Hz for example.

So the HDMI conversion will have to be stuttering or repeat one frame each 9 or something weird like that.

Even the MVS vertical refresh rate is an odd 59.1856060 so without accelerating the cores it would required a framebuffer -> lag -> stutter etc....

 

BTW the MiST gets away with generating non std VGA signals here and there and you need to have a tolerating monitor (most (S)VGA CRTs were pretty good at latching pretty much anything you threw at them, but LCD would throw fits outside narrow bands of compatible modes).

Link to comment
Share on other sites

If Kevtris wanted a real challenge, he would attempt to build a X68000 core. Now that would be epic!

He kind of said he's not really interested in computers so I wouldn't hold my breath on that, at least not for the Z3K.

And I think his meticulous matching of the NES video signal as well as all the audio mappers is already a "real" challenge that he won in my book.

Link to comment
Share on other sites

I found this guy explained quite well the benefits of an FPGA for emulation/cloning. It's focused on the MiST but most of what he says applies to other FPGA systems (like the NT mini). FPGA explanation starts at around 1:40:

 

 

I find the tradeoff with the MiST unfortunately is that it uses the VGA and not HDMI, so even if it was powerful enough to emulate a SNES or NeoGeo, it doesn't solve the primary problem in common with emulating all CRT-era computers and consoles, and that's the inability to use a LCD screen, bypassing the screen's useless upscaler and the latency that comes with it.

 

The RetroUSB AVS and the NT Mini solve that (at least if you use a 720p or 1080p screen respectively) but we're now coming around to the 4K screens which require HDMI 2.0 or Displayport (or Displayport/HDMI over USB-C) which is going to begin yet another cycle of "my monitor doesn't have that connector"

Link to comment
Share on other sites

 

I find the tradeoff with the MiST unfortunately is that it uses the VGA and not HDMI, so even if it was powerful enough to emulate a SNES or NeoGeo, it doesn't solve the primary problem in common with emulating all CRT-era computers and consoles, and that's the inability to use a LCD screen, bypassing the screen's useless upscaler and the latency that comes with it.

 

The RetroUSB AVS and the NT Mini solve that (at least if you use a 720p or 1080p screen respectively) but we're now coming around to the 4K screens which require HDMI 2.0 or Displayport (or Displayport/HDMI over USB-C) which is going to begin yet another cycle of "my monitor doesn't have that connector"

OSSC or Audio Authority 9A60 (component) are good options for passing VGA without scaling, if your TV supports them.

Edited by simbin
Link to comment
Share on other sites

OSSC or Audio Authority 9A60 (component) are good options for passing VGA without scaling, if your TV supports them.

Adding yet another box. Why not use the original device then?

 

The ideal setup for most people is you plug your HDMI devices straight into the TV, and if you have a home theater, the TV routes that audio to the theater setup. If you can replace 30 consoles, computers, and hdmi switcher/upscaler/splitters with one box, that is the right solution. However the TV and Monitor manufacturers don't care about legacy support, so anything you can do to reduce latency, including bypassing the upscaler is beneficial.

 

If you have kids and you don't want them wrecking your classic computer/console equipment, that is where you hand them the Z3K and an after-market wireless SNES controller so they don't send the console flying when they throw the controller.

 

I'll use an analogy here. Those "Kodi" devices people are selling on nvidia shield (also $200) can do a lot of stuff, including playback of HD video, but it has no native games for it. You're not going to buy it just to get the same experience you get on the Retron5 ($160) or even a desktop pc. These are expensive gadgets that do everything poorly or just passible. kevtris took a Retron5 apart and noted that it had over 140ms of latency with the wired controller. If I want a passable experience, I'll just play the emulated console or computer, on my $2000 PC with my Xbox 360 controller.

 

I'm not putting down the MiST, I am however saying that device falls way too short of a zero-latency HDMI solution that you would want for playing games. It's good enough if you are playing on CRT VGA screen. That FPGA computer is capable of good output, but only with a CRT. If you have to run it through an upscaler then you're back to the original question of why not just use the original hardware with an upscaler.

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

I have some reservations about my Odyssey^2 core though - specifically how to handle the keyboard. The core is 100% done including speech, but there's no way to type on the keyboard using the nt. Right now I have it hooked into the PC and I can send key presses over to it from there. I guess many games don't use it, so I can just cheat and map the usual keys that games use to start.

 

 

But the Nt does support a keyboard, specifically this one :

 

18j2wxf2nq8dtjpg.jpg

 

There are more than enough keys on it to map to the Odyssey 2 ;p

  • Like 1
Link to comment
Share on other sites

I'm not putting down the MiST, I am however saying that device falls way too short of a zero-latency HDMI solution that you would want for playing games. It's good enough if you are playing on CRT VGA screen. That FPGA computer is capable of good output, but only with a CRT. If you have to run it through an upscaler then you're back to the original question of why not just use the original hardware with an upscaler.

There's plenty of reasons not to use the original hardware, but let's stick with the simplest which is that it might not output RGB video (e.g. the original Famicom on RF).

 

Once you have RGB you need an upscaler circuit of some form even if it's internal; Kevtris mentioned the Z3K is planned to bundle one as a separate FPGA. That could be replicated and added to the MiST in a bigger case too (and it would still be cheaper than the price point of the NT mini).

 

IMHO more than hardware, the real difference of the Z3K is that I'd expect Kevtris would fine-tune the cores and internal upscaler to play nice together, and so give great results. So it's the "software" that makes the real difference.

  • Like 1
Link to comment
Share on other sites

When it comes to interesting FPGA videos I can recommend this one as well:

 

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

He's actually building a core for MikeJ's FPGA Arcade Replay, it's the black PCB inside that box :) He talks about Mike and Wolfgang in the video, both are devs who contributed a lot to open source HDL, and several of their cores were ported to other boards.

post-43772-0-24852600-1487661155_thumb.jpg

Edited by Newsdee
Link to comment
Share on other sites

 

 

Edit: VGA = HD15 not DB25, sorry for the confusion, the rest stays the same.

Fun fact, there are two types of DB-15 connectors, the "three row" VGA and the less common "two row" ports: Famicom/5200/NeoGeo/PC joystick (all with incompatible pinouts and the potential to "blow" the parent hardware if connected to the wrong system) to name a few.

 

I think you are on the right track with the Jag controllers, but how long would the NOS last if a brand new product comes out that relies on them? A custom multiplexed SNES controller like the goofball controller Kevtris pictured would be golden, only issue is the buttons on that thing are laid out improperly and could really benefit from a 3x4 matrix. Any keypad game that uses the numeric pad for ie auxiliary 8-way directional control rather than menu selection would be awkward to play on it. A number of old PC games used the numeric pad in this manner in addition to the arrow keys; not sure if any Coleco/Intelli/5200/Jag games used them as an auxiliary Dpad.

 

They do make numeric pad only keyboards for use with terminal applications, but the telephone keypads have the 1, 2, 3 on the top whereas PC keypads have the 1, 2, 3 on the bottom, right above the double wide 0 and the "." button. Then the teller machines sometimes have an "00" or "000" macro button alongside the zero.

 

Another thought, crazy as it sounds, the original PS digital controllers I have found paired with a PSX <-> USB adapter to be perfect for emulation of nearly anything, with the dual shock analog controllers for anything 5th gen and up, including N64 if you map the C-buttons to the right stick. A Playstation controller for everything that doesn't use keypad and a Jag controller for everything that needs keypad would work, with the notable caveat that the 5200 would need both controllers (analog stick plus keypad) for full support.

Link to comment
Share on other sites

Most things people have done so far have been on dev boards which usually have a very large FPGA, and lots of RAM so they don't really count so much IMO. The dev boards are usually heavily subsidized, and the FPGA alone costs more than the entire dev board. Not that I'm complaining, but this is just a problem with the industry.

I know it's a cheat, but why not bulk buy the dev boards, then use a reflow oven or hot air gun to "drop" the FPGA chip off the dev board and repurpose for your own use! :evil:

 

I mainly don't like the idea of designing in something like the jag controller on a new product because the supply of them is unknown, and if I did the cost of them on i.e. ebay would probably skyrocket. It's 15-20 bucks now but it could easily reach 50+ if there was any kind of demand. Maybe Mike has the molds for those squirreled away somewhere? lol.

QFT.

Link to comment
Share on other sites

Interesting stuff indeed.

 

I haven't really investigated this for myself, but I wonder how many arcade games the NT Mini (and by extension the Zimba 3000) could run. I figure each arcade game has its own hardware setup, so each game would need its own specialized FPGA core. That means a lot of effort to invest in creating each core. Still, it would be nice to have at least a few arcade favorites running flawlessly on an HDMI television, like Galaxian, Galaga, Space Invaders, Pac-Man, Ms. Pac-Man, Donkey Kong... Y'know, the early stuff that today's FPGA should be able to support. :)

Well to be honest (and I'm putting on my Armchair developer hat here), consoles were cost reduced systems which often contained highly customized chips which were placed into millions of consoles. For instance, with the NES/Famicom, Nintendo took the 6502, stripped away some functions that were considered unimportant to gaming such as decimal mode, and added custom sound generation hardware developed specifically for the system. This reduces chip count which in turn reduces cost. Basically the NES had two custom ICs, the CPU and PPU, and a few generic RAM chips and 74xx logic. Atari had 3 chips, an off-the-shelf CPU, the TIA, and the RIOT.

 

Why do I bring this up? Very little of arcade games used entirely custom chips. Arcade units cost thousands of dollars retail and sold tens of thousands of units. Video game consoles cost hundreds of dollars retail and sold sometimes tens of millions of units. The vast price difference and economies of scale allowed arcade games to use off-the-shelf CPUs and sound chips while video game consoles were almost entirely custom to drive cost per unit way down. Furthermore oftentimes many arcade games shared components between each other.

 

Looking at MAME, there's a data file for every chip on the motherboard for each game. When looking at the literally thousands of games produced all with seemingly unique hardware, from a modular perspective, there's relatively few unique chips between them, and building a motherboard piecewise from FPGA implementations of each chip would be relatively straightforward. To avoid copyright, the ROMs cannot be included but provided by the end user. So I think an FPGA solution for classic era arcade games like Pacman or Donkey Kong or Centipede are doable, just user provides the MAME ROM. The core for each game would only have to be compiled once.

 

Zip compression algorithms could be avoided by extracting the binary files to subfolders prior to reading them, ie x:\MAME\GAMENAME\BINS

 

Perhaps a GUI helper application on PC could build FPGA "cores" per game based on MAME data, provided FPGA cores for each chip exist. Select popular arcade cores would be provided by Kevtris prebuilt without the embedded ROMs, or the core builder app could compile the desired cores, with or without the required ROM contents, but full arcade game cores with embedded ROMs will not be provided by Kevtris. Users could pass around prebuilt arcade cores under the table if they wanted but Kevtris/Zimba would not officially support or promote underground sharing of cores compiled with embedded ROMs, and thus would not be liable for copyright infringement resulting from other Zimba 3000 users.

 

~disclaimer: I am not a lawyer... :ahoy:

 

I have no idea if such a core compiler system would work, but self-contained FPGA cores for Arcade games, for use with Zimba3000 or NT-Mini hardware, would be amazing. At the very least, I would like be able to play Donkey Kong and Pacman and a sampling of other classics on it... 8)

  • Like 2
Link to comment
Share on other sites

Fun fact, there are two types of DB-15 connectors, the "three row" VGA and the less common "two row" ports: Famicom/5200/NeoGeo/PC joystick (all with incompatible pinouts and the potential to "blow" the parent hardware if connected to the wrong system) to name a few.

 

I think you are on the right track with the Jag controllers, but how long would the NOS last if a brand new product comes out that relies on them? A custom multiplexed SNES controller like the goofball controller Kevtris pictured would be golden, only issue is the buttons on that thing are laid out improperly and could really benefit from a 3x4 matrix. Any keypad game that uses the numeric pad for ie auxiliary 8-way directional control rather than menu selection would be awkward to play on it. A number of old PC games used the numeric pad in this manner in addition to the arrow keys; not sure if any Coleco/Intelli/5200/Jag games used them as an auxiliary Dpad.

 

They do make numeric pad only keyboards for use with terminal applications, but the telephone keypads have the 1, 2, 3 on the top whereas PC keypads have the 1, 2, 3 on the bottom, right above the double wide 0 and the "." button. Then the teller machines sometimes have an "00" or "000" macro button alongside the zero.

 

Another thought, crazy as it sounds, the original PS digital controllers I have found paired with a PSX <-> USB adapter to be perfect for emulation of nearly anything, with the dual shock analog controllers for anything 5th gen and up, including N64 if you map the C-buttons to the right stick. A Playstation controller for everything that doesn't use keypad and a Jag controller for everything that needs keypad would work, with the notable caveat that the 5200 would need both controllers (analog stick plus keypad) for full support.

 

If we're nitpicking, the 15pin VGA connector is DE-15, while the 15-pin gameport/famicom/neogeo port is DA-15

 

As for the naming scheme https://en.wikipedia.org/wiki/D-subminiature

 

 

Later D-sub connectors added extra pins to the original shell sizes, and their names follow the same pattern. For example, the DE-15, usually found in VGA cables, has 15 pins in three rows, all surrounded by an E size shell. The pins are spaced at 0.090 inches (2.3 mm) horizontally and 0.078 inches (2.0 mm) vertically,[4] in what is called high density.

Basically, anything called "DB" is actually wrong from the original naming scheme because the second letter is the shell size. So the technically correct name for VGA is DE-15. The connectors we all call DB-9 are actually supposed to be DE-9.

Source Wikipedia:

440px-DSubminiatures.svg.png

Basically, only the DB-25 connector is the right naming scheme.

 

 

If we're only considering cost, apparently D-sub connectors are more expensive than others. Just manually looking at digikey, the PCIe connector is the cheapest "card edge" at 15 cents (36 contact). The cheapest D-sub that can be mounted to a PCB is 1.19 (cheaper available if you order several hundred and have 10 weeks to wait), 19-pin HDMI connectors are 35 cents. USB-C has 24 contacts and are 88 cents. Hmm I wonder if it would be reasonable to use a usb-c connector that detects if it's connected to USB or something else. Might be bad practice to do that, though it would be more "futureproof" if that's what's used for USB. It's considered bad practice (just like using the HDMI connectors for non-HDMI things) because someone might confuse the proprietary-use ports with the one actually meant to be used for that purpose.

 

I can't really think of any other connectors that aren't expensive and widely available that people won't accidentally confuse for something else other than the SATA-power connector, and the last thing you need is someone plugging in a SATA power connector and frying things with 12 volts.

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