Jump to content
Keatah

FPGA vs. EMULATION? What is your choice?

FPGA or Emulation?  

81 members have voted

  1. 1. Which do you prefer?

    • FPGA
      46
    • Emulation
      35
  2. 2. Which do you think has the most potential for perfection?

    • FPGA
      60
    • Emulation
      21


Recommended Posts

When it comes to recreating the classics, especially 8 and 16 bit machines of the 70's and 80's, what do you prefer? Emulation or FPGA? What are some of the advantages of each choice and why?

 

I personally prefer Emulation because of flexibility. And yet the stability and consistency of FPGA is enticing. What's your pick?

  • Like 1

Share this post


Link to post
Share on other sites

FPGA are awesome but emulation has longevity, as you mentioned flexibility, as well as almost unlimited choice of options for video, sound, and controller(s) to use - if/when programmed correctly.

 

Love having both, but (especially in the long run) emulation reigns supreme. Just wish there was a Stella level of emulation for the 7800. MESS (especially in recent versions) has made great strides and is very good, but the 7800 needs a 'Stella' - something excellent.

 

If I had to pick one or the other - My choice would be emulation.

  • Like 1

Share this post


Link to post
Share on other sites

FPGA is emulation. The important question is whether the emulation is cycle accurate, which can be the case for both software or FPGA emulation.

  • Like 8

Share this post


Link to post
Share on other sites

FPGA is emulation. The important question is whether the emulation is cycle accurate, which can be the case for both software or FPGA emulation.

 

Correct...However, I believe the intention is whether you prefer (ultimately) software emulation over hardware emulation (At least that is how I viewed the question/poll).

 

Absolutely both can be cycle accurate (It would be a dream come true for the 7800); long term though, any FPGA falls to the same ultimate pitfall as any piece of hardware - it has a 'mortality' that is not present with (software) emulation.

 

I like to have both options, but again if I had to choose one over the other (software) emulation wins over FPGA (hardware emulation).

  • Like 1

Share this post


Link to post
Share on other sites

It's a pretty murky line. I'd say FPGA is an actual hardware implementation. The gates in the FPGA really do reconfigure themselves to be a certain CPU, video chip, etc.. That being said, it's the same as a NES clone. Slightly different hardware with slightly different compatibility. Emulation often cheats to work around issues that would botch smooth operation.

 

This aspect of emulation actually has more of a benefit than you'd think. When people translate or hack games the higher tolerance helps keep brittle code from crashing. Also (ironically) some games are so shoddy they wont even run on real hardware - like some of the games on Action 52.

  • Like 1

Share this post


Link to post
Share on other sites

I prefer emulation because of versatility and pervasiveness. With FPGA you're back to being limited to a single piece of hardware.

Share this post


Link to post
Share on other sites

I prefer emulation because of versatility and pervasiveness. With FPGA you're back to being limited to a single piece of hardware.

 

In reality you are correct. The theory is, though, that an FPGA can change into anything it has enough gates for. Just check out projects like the C-ONE or the upcoming FPGA Arcade. What has actually come out is closer to the (in my opinion) flaccid Multiple Classic Computer.

  • Like 1

Share this post


Link to post
Share on other sites

Let me add that any "tech" household has phablets and PC's that can emulate many systems. A microscopic fraction of even enthusiast tech households have an FPGA board ready to play games.

 

I like the idea of FPGA being able to morph itself into other hardware, that's cool. And at the same time, the latest PC CPUs can load everything into their (ever expanding L2 + L3) cache and accomplish the same thing but by different means.

 

Someone said emulation has longevity and being "free" from hardware maintenance and breakdowns. Keep in mind it is important to maintain backward compatibility, and that as time passes, the emulator in question be updated to work on new OS'es. Or somehow provide a way to run the old (not updated) emulator on current hardware (and current os).

 

There was a time when I had to use dosbox to run old dos mame for a certain game.

  • Like 1

Share this post


Link to post
Share on other sites

I don't think you're going to emulate a N64 with an FPGA. You just need a big processor + 3d processor. Not cycle-perfect, but better. polygons in 1920x1080 resolution, 16x9 widescreen, surround sound, whatever :)

  • Like 2

Share this post


Link to post
Share on other sites

Why has no-one mentioned cost?

 

Emulation is pretty much free if you already have a decent PC. Additionally, if you have a wireless Xbox 360 controller it supports analog and d-stick controls and in the case of Dreamcast emulation decent throttle support.

 

FPGA requires the purchase of the base hardware (not exactly cheap either) plus controllers in line with the type of ports the PCB is setup with. Ones I have looked at seem to have the Amiga/Sega style controller ports so if you don't have those lying around it's a small additional purpose but analog joystick support seems lacking at the current time. Then there's the fact that FPGA is a one shot emulator. Load the system and that's it until you reprogram it again.

 

I do see an obvious place for FPGA though. Older arcade machines. With rom rot and general wear and tear knocking over real arcade PCB's more and more the FPGA is perfect as a PCB replacement. I'd rather have a FPGA system than one of those crappy 60-in1 Asian rip-off boards in a JAMMA cabinet. Man those things have bad audio.

  • Like 1

Share this post


Link to post
Share on other sites

really whats the difference?

 

emulation, you write software for you pc to emulate every aspect of the original hardware

 

FPGA, you write software for your FPGA to emulate every aspect of the original hardware

 

in the end they are both SOFTWARE EMULATING SOME OTHER FORM OF HARDWARE

 

now do you do it on FPGA board or a windows machine, who cares unless your making a stand alone console, FPGA is not some magic bullet

 

 

I'd rather have a FPGA system than one of those crappy 60-in1 Asian rip-off boards in a JAMMA cabinet. Man those things have bad audio.

 

what do you think those are running on? unicorn farts?

Edited by Osgeld

Share this post


Link to post
Share on other sites

I thought it was. See.. From time to time, if I game on my PIII and P4, Stella slows down while the system does housekeeping or Windows does disk access activities. A burp! I would assume that FPGA doesn't exhibit this property.

Share this post


Link to post
Share on other sites

A pc wont exhibit that property either if your not running software in the background, IE stella in dos in that situation theres not much difference cause you have a machine dedicated to the task

Edited by Osgeld

Share this post


Link to post
Share on other sites

There's no reason why an FPGA implementation can't "live forever". IMO it's even better since you're using a hardware description language (HDL) to make the systems; this is an "agnostic" (relatively) language that all brands and models of FPGAs can use. It is relatively easy to "port" say an FPGA 2600 from a Xilinx part to an Altera part, or make it run on different hardware with a few adjustments. Any reasonable FPGA design should be 100% "future proof" once the HDL is debugged, and it should be possible to port it from chip to chip forever more.

 

The HDL code defines how the hardware itself works, and has little to do with software emulation; though the end result of an emulator and an FPGA can be the same as previously described. The FPGA is simply a much lower level implementation, and could theoretically exactly duplicate how the actual hardware functions, down to each signal and gate.

 

As for "Good" 7800 emulation, I managed to make a great FPGA 7800 recently and timing seems to be pretty much spot on. All games run perfectly on it including the "difficult" titles. I know from some reverse engineering efforts, the timing of the DMA engine and duplicated that along with the other stuff and did some testing to make sure it matched up. I can't say for sure if it's absolutely 100% accurate, but it properly runs every single game I could find so there is that.

 

I am not sure if people would want to buy FPGA game systems. It's easy to say that a PC emulator is free which is true, but you would not buy it only for that. You'd be paying for something that plugs into a TV or monitor and has an absolutely perfect emulation of the target system with a cohesive menu and controller choices with hardware upscaling and no input lag at all. This isn't so easy to do on a PC emulator, if it's even possible.

  • Like 7

Share this post


Link to post
Share on other sites

From a hardware point of view, FPGA can recreate any chip with the greatest level of perfection, there can be different blocks operating in parallel.

 

In contrast, emulation can be slow because it has to recreate sequentially these parallel tasks, this is the cause that even an emulation of Atari can require a hefty machine.

 

But I prefer emulation because I can run a wide array of old computers in PC, and FPGA usually is limited to one or two platforms per board.

 

Both FPGA and emulation can be "perfect," though as said, emulator will be slow at "maximum" perfection.

 

There is something that we will lose over years: the RF noise and the mixed colors that change per variations in components and capacitors and potentiometers, still I don't have seen a good emulation of TV RF noise and mixed colors.

 

The FPGA and emulation sometimes looks a little too clear and you've the feeling that the roughness takes something from the game.

  • Like 1

Share this post


Link to post
Share on other sites

 

I'd rather have a FPGA system than one of those crappy 60-in1 Asian rip-off boards in a JAMMA cabinet. Man those things have bad audio.

what do you think those are running on? unicorn farts?

 

From what I've read, the crappy 60-in-1 boards have general purpose ARM CPUs, not FPGA, and run an earlier less-demanding hacked version of MAME. (though I haven't seen definitive proof)

 

Of course, there are in-1's that use FPGA.

  • Like 1

Share this post


Link to post
Share on other sites

FPGA vs. Software Emulation -- The two techniques for recreating classic hardware are extraordinarily different from each other.

 

I see an FPGA working like a multi-processor system. The chip itself "runs" (it doesn't actually run anything) several 8-bit cores. Its internal gates are rewired to look exactly like the target hardware. Like a switches on a railroad layout. You can configure it so a lot of freight goes here or there, or make way for passenger trains. Or connect different towns and providences. Even lay out new tracks! Or perhaps the FPGA may be thought of as the micro-sized version of those 100-in-One project kits from RadioShack that were so popular in the 70's and 80's.

 

It's like you have two basic 74LS04 Hex Inverter TTL chips on your workbench. And via a programming language, VHDL, you can wire them together. A typical FPGA may have 500,000 gates like this. And each gate can be connected to other gates. To do this, there's a whole other "level" and bag full of parts stuffed in there. This underground "level" serves the same purpose as "you building a science fair project" or something. These parts do the wiring, like those old-school telephone switchboards that were so popular in the vacuum tube era. Think 1930-1960. VHDL

 

Now, "arbitrarily" picking Gyruss (because it's a favorite game) it has:

2x Z80

5x Ay-3-8910

1x DAC

1x 8039

1x 6809

 

Consider that's 10 processors, 9 if you skip the sound DAC. Plus all the housekeeping like ram/rom & memory mapping, video, controllers, and glue to bring it all together. An FPGA is going have each of these cores and other circuitry "running" simultaneously. Because it IS the actual circuit! The FPGA has become the circuit. Each gate from the target (6502 for example) has an equivalent dedicated gate wired up in the FPGA.

 

Whereas an emulator is going to run them sequentially. With the input of one device waiting on the output of another, right on down the line till one clock cycle is completed.

 

I understand (and an expert emulator author can correct me) that an emulator can achieve the look of all these processors interacting by completing all their i/o dependencies within one video screen update, or clock cycle.

 

In a standard PC with a fast processor, the whole damned box of hardware, the target system, is broken down into a discrete state machine. Instructions! And your host CPU has to compute how a gate or resistor or capacitor behaves then store that information, look at the next part, do it again, and propagate the results down the line. If the host does this fast enough, you are fooled.

 

And that is the basic difference between the two methods.

  • Like 2

Share this post


Link to post
Share on other sites

From a hardware point of view, FPGA can recreate any chip with the greatest level of perfection, there can be different blocks operating in parallel.

 

In contrast, emulation can be slow because it has to recreate sequentially these parallel tasks, this is the cause that even an emulation of Atari can require a hefty machine.

 

But I prefer emulation because I can run a wide array of old computers in PC, and FPGA usually is limited to one or two platforms per board.

 

Both FPGA and emulation can be "perfect," though as said, emulator will be slow at "maximum" perfection.

 

There is something that we will lose over years: the RF noise and the mixed colors that change per variations in components and capacitors and potentiometers, still I don't have seen a good emulation of TV RF noise and mixed colors.

 

The FPGA and emulation sometimes looks a little too clear and you've the feeling that the roughness takes something from the game.

 

Yes all that. But I think that once things like the Blargg television effects in Stella become polished we'll be alright. I've seen a lot of implementations and they keep getting better and better. With the best being showcased in Atari 800 Emulator 3.0.0. These effects need to go beyond just filtering and phosphor masks. Varying levels and imperfections of analog noise needs to be given a closer look and injected into the final rendering. Not as a tacky tack-on filter, but much closer to the emulation core. We need an RF modulator simulator and a CRT simulator.

 

Getting the look of a real CRT (and this has been discussed before) would need a whole separate module. And *this* is where I believe software emulation will surpass FPGA. Software can simulate this noise and integrate it into the sterile output of the base emulator. But with FPGA, connecting to a modern display, how would you get this noise into the signal going to that modern display?

 

You can make a module in software for emulation, but with FPGA? Well, you need to make a CRT simulator. And one for each platform and tv type. Hella lot more work!

 

Please excuse any strange rambling expirations today, we had another Vodka party again!

  • Like 2

Share this post


Link to post
Share on other sites

If those in-1's I've used are running FPGA then the code used in them is not good. I ran one beside MAME and the sound on a couple of games was bad compared to that from MAME. Can't recall the games offhand but it was enough to make my mind up on keeping the in-1. I didn't.

 

I do think FPGA is the way to go (IF the hardware emulation is complete) for standalone arcade machines. Think of all the SEGA and Atari vector games using X-Y monitors. Those monitors are getting harder and harder to maintain. When they die that's it for the original PCB as they can't be reworked for any other display type. The only way these will be able to be played is via emulator/FPGA at some point in the future. Sure, using a normal LED monitor won't be the same but at least you'll still be able to play those classics.

 

Oh yeah ... those 2000-in-1 bootlegs use Windows 2000 and a MAME variant from what I read as people have been hacking them to include more games so those ones are not FPGA. I call them bootlegs because I've never seen anything anywhere validating their license to use those games. They were pulled from EBAY because of that weren't they?

  • Like 1

Share this post


Link to post
Share on other sites

Getting the look of a real CRT (and this has been discussed before) would need a whole separate module. And *this* is where I believe software emulation will surpass FPGA. Software can simulate this noise and integrate it into the sterile output of the base emulator. But with FPGA, connecting to a modern display, how would you get this noise into the signal going to that modern display?

 

You can make a module in software for emulation, but with FPGA? Well, you need to make a CRT simulator. And one for each platform and tv type. Hella lot more work!

 

The real CRT effect - 100% vital concerning colors too for the Atari 2600, Atari 5200, and Atari 7800.

The Atari systems display their palettes differently on a CRT than a modern flat panel (I.E. Plasma/LCD/LED) display.

 

Additionally, a FPGA would ideally need to incorporate phase shifting of the Atari 7800, Atari 5200, and Atari 2600 as well.

 

An option to tweak the pot adjustment setting under FPGA should also be included too if everything that impacts how the systems display is being included.

 

Right now it is relatively "easy" under software emulation by swapping out palette files or the proper palette values. In the future I expect this to be incorporated even further with emulators allowing 'hot swaps' of palettes and/or an automatic adjustment timed according to emulator consistent runtime - just like a real system would behave.

  • Like 1

Share this post


Link to post
Share on other sites

Whatever became of this? http://eejournal.com/archives/articles/20100302-space/

http://en.wikipedia.org/wiki/Tabula_%28company%29#Products

 

Basically this FPGA reconfigures itself each clock cycle. One operating at 1.6GHZ would give you 8 virtual (in 3D space) sets of 100,000 gates at 200MHz each to play with. Each set can be connected by a set of of buffers 8-bits and deep the program could be changed every 125ms. Thus seemingly increasing the complexity by 8x. Different speeds and depths could change the switching rate and how many virtual gates are available.

 

Theoretical questions for the day:

Question #1 Could FPGA ever replace the general purpose CPU?

Question #2 Will CPUs ever have a significant FPGA-like part integrated into their die for the purpose of creating custom instructions?

Edited by Keatah
  • Like 1

Share this post


Link to post
Share on other sites

In revisiting this thread; why are we even bothering with FPGA arcade recreations in this day and age of RPI2 and better than ever software accuracy? And if RPI2 isn't enough power then just get i7. Not to mention software's inherent easy updating, popularity, and versatility. Another thing is only a handful of games been done on FPGA, and updates to them have to be infrequent.

Share this post


Link to post
Share on other sites

Ha! It's been 2 years since I made this thread. And In quickly revisiting my choice (software emulation) I only reaffirm my position. The versatility and ongoing development and value-added features of software emulation is a huge plus. And don't forget availability. Software emulation is available anywhere on any platform. Software emulation is doing things we'll never likely see in FPGA.

Share this post


Link to post
Share on other sites

My vote is for emulation via software. The flexibility is hard to beat. If there is something that cannot be adequately emulated, then FPGA might be a good option.

  • Like 1

Share this post


Link to post
Share on other sites

I'm only going to consider something outside of my main box (aka my computer aka software emulation) when the software emulation fails. Mini PCs can do so much in a tiny space, I no longer have the desire to maintain or store large amounts of equipment for gaming when my daily driver is satisfactory.

 

I'm sure mileage varies between other people depending on how much space/money they have for their retro setups.

  • Like 1

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