Can somebody explain FPGA Barney style for me please?

Tribedog

Active member
Joined
Feb 2, 2011
Messages
954
Reaction score
226
Location
Arroyo Grande, California
I've read about it, looks interesting, but I just don't understand what the hell I would need to do to get a setup running in a cabinet. I am interested in recreating a cabinet, complete scratch build. I have no interest in wasting any authentic parts on this project so this seems like a good way to go. I like that it plays true and is not emulated. I just need somebody to break this down for me, like break it down to a level that some would find insulting 😂😆. Hit me with a link to a good tutorial or something!! Thanks in advance.
 
You're really asking two questions.

The links gleek posted explain what the term 'FPGA' is, as a technology. It is the technology used to create custom-programmed chips, which reproduce the circuits of the original hardware PCB's for whatever game you're interested in, but in a much smaller form, where a whole 1980's-era PCB can be shrunk into a single modern FPGA chip. FPGA technology can be used to create many different types of chips, for many different applications, in many industries. They are basically generic pieces of programmable hardware.

However here in arcade hobby land, we use the term 'FPGA' slightly differently, where it refers to a multi-board that someone created, using FPGA technology.

In terms of using an FPGA-based arcade board in a scratch-build cab, you would use it just like any other arcade PCB. Most of the FPGA multiboards are JAMMA, so you treat them just like any other JAMMA PCB, and you need a JAMMA power supply, harness, and control setup, just like any other JAMMA cab.

FPGA is just the technology that was used to create the board (i.e., to reproduce the circuitry for the game board being replicated, in a single chip or a small set of chips, which are created by the designer by writing FPGA code, which defines the digital circuits in the chip). But you don't need to know or care anything about that in order to use an FPGA-based arcade multi-board in a cabinet. (Just like you don't need to know anything about being a chef or nutrition, to go out and eat in a restaurant.)

Additional details will also depend on which FPGA board you're looking to use. Boards like the Bitkit and Jrok multi-boards come as prepackaged products, that are basically plug and play JAMMA boards. Other FPGA-based boards like the Mister, require more manual configuration and setup. But ultimately they all just plug into a harness, and connect to a PS, CP, and monitor, like any other arcade board.
 
A lot of people say that FPGA is not emulation, but it is. But it's a very different type of process than is usually meant when you hear the word "emulation." The differences give it the capability to be far more accurate, to the point where if done correctly it can operate exactly like the original hardware, which is not really possible with MAME or other types of arcade game emulation.

MAME is software that mimics the processor and the other components of the original hardware so the game code can run, but since it's software it can only approximate the behavior of these components because the computer itself is also involved. FPGA allows a game's hardware components to be replicated precisely, without being filtered through (and regulated by) another software program, which allows the game code to run exactly as it did on the original hardware.

The super-basic version is that most of the FPGA boards you see discussed are installed just like a 60-in-1 board: all you do is wire up JAMMA and plug the board in, and you have games. The limitation is that unlike MAME, you can't just dump any rom into an FPGA board and expect the game to work... the FPGA has to be set up to mimic the original hardware, which was far from universal. So instead of one FPGA board that plays any game you want, what we have is a number of different FPGA setups based on similar original hardware: there is a Zookeeper/Qix board since those boards were the same architecture; there is a multi-Williams board since most Williams games used variations of the same hardware, etc.
 
You're really asking two questions.

The links gleek posted explain what the term 'FPGA' is, as a technology. It is the technology used to create custom-programmed chips, which reproduce the circuits of the original hardware PCB's for whatever game you're interested in, but in a much smaller form, where a whole 1980's-era PCB can be shrunk into a single modern FPGA chip. FPGA technology can be used to create many different types of chips, for many different applications, in many industries. They are basically generic pieces of programmable hardware.

However here in arcade hobby land, we use the term 'FPGA' slightly differently, where it refers to a multi-board that someone created, using FPGA technology.

In terms of using an FPGA-based arcade board in a scratch-build cab, you would use it just like any other arcade PCB. Most of the FPGA multiboards are JAMMA, so you treat them just like any other JAMMA PCB, and you need a JAMMA power supply, harness, and control setup, just like any other JAMMA cab.

FPGA is just the technology that was used to create the board (i.e., to reproduce the circuitry for the game board being replicated, in a single chip or a small set of chips, which are created by the designer by writing FPGA code, which defines the digital circuits in the chip). But you don't need to know or care anything about that in order to use an FPGA-based arcade multi-board in a cabinet. (Just like you don't need to know anything about being a chef or nutrition, to go out and eat in a restaurant.)

Additional details will also depend on which FPGA board you're looking to use. Boards like the Bitkit and Jrok multi-boards come as prepackaged products, that are basically plug and play JAMMA boards. Other FPGA-based boards like the Mister, require more manual configuration and setup. But ultimately they all just plug into a harness, and connect to a PS, CP, and monitor, like any other arcade board.
So for arcade purposes am I limited to only games that people who have far greater abilities than myself have reverse engineered? Edit!! Just had that question answered!!
 
So for arcade purposes am I limited to only games that people who have far greater abilities than myself have reverse engineered? Edit!! Just had that question answered!!

Correct.

Some of the people working on these systems are adding games to them over time. The Bitkit gets new games added to it periodically, as does the Mister platform. Jrok was releasing new boards for groups of similar games (Williams, Taito, Mylstar, etc), as he was developing them.

Also, the accuracy of any game ultimately comes down to how much work and how carefully the creator of the FPGA did their implementation. Just because a game is recreated in FPGA doesn't automatically mean it will play perfectly. It's just that FPGA tech allows an implementation to be closer to the original game board's behavior, but only if the designer took the time to make it that accurate (and tested it to make sure it's that accurate.) And some of that comes down to the skill of the person creating the FPGA. But in general the people who have made these FPGA implementations have taken the time to get them as accurate as possible.
 
like that it plays true and is not emulated.

Well, that is not entirely true. An FPGA is a programmable logic device, which you can use to replace/recreate logic components (cpus, glue logic, memories, older programmable devices, etc). But, those are just approximations.

As you need to program them using a hardware description languages, it is very difficult to get every detail (specially timings and undocumented behavior) completely correct. And even if you get the cpu flawlessly replicated, there is more than digital logic to games. Things like audio and image colors will never be the same, due to how DACs (digital to analog converters) and amplifiers are different.

Most people wont care though. I think the advantages of a FPGA is not about the fidelity of the emulation (it is a hardware emulation at the end of the day) but that a FPGA can do the same job with way less resources than a purely software based emulation.
 
A lot of people say that FPGA is not emulation, but it is. But it's a very different type of process than is usually meant when you hear the word "emulation." The differences give it the capability to be far more accurate, to the point where if done correctly it can operate exactly like the original hardware, which is not really possible with MAME or other types of arcade game emulation.

MAME is software that mimics the processor and the other components of the original hardware so the game code can run, but since it's software it can only approximate the behavior of these components because the computer itself is also involved. FPGA allows a game's hardware components to be replicated precisely, without being filtered through (and regulated by) another software program, which allows the game code to run exactly as it did on the original hardware.

The super-basic version is that most of the FPGA boards you see discussed are installed just like a 60-in-1 board: all you do is wire up JAMMA and plug the board in, and you have games. The limitation is that unlike MAME, you can't just dump any rom into an FPGA board and expect the game to work... the FPGA has to be set up to mimic the original hardware, which was far from universal. So instead of one FPGA board that plays any game you want, what we have is a number of different FPGA setups based on similar original hardware: there is a Zookeeper/Qix board since those boards were the same architecture; there is a multi-Williams board since most Williams games used variations of the same hardware, etc.
This is the best description I've encountered to date with one caveat. I still don't consider it emulation for exactly the reason you describe. Because there is no other "software" regulating or filtering it there's no "emulation" happening. Replacing a 74LS00 quad nand gate with 4 separate nand gates in my opinion is not "emulation" it's "replication" If I replace a 7400 on an original board with a 74LS00 is that "emulation"? Not in my book. Your point about "if done correctly" is VERY important and a key element on the quality of the "replication".
 
I still don't consider it emulation for exactly the reason you describe. Because there is no other "software" regulating or filtering it there's no "emulation" happening. Replacing a 74LS00 quad nand gate with 4 separate nand gates in my opinion is not "emulation" it's "replication" If I replace a 7400 on an original board with a 74LS00 is that "emulation"? Not in my book. Your point about "if done correctly" is VERY important and a key element on the quality of the "replication".

Well, this is getting into a similar territory than digital v/s analog music. Some people say they can get the difference, others, that humans have limited sensors, so as far as the encoding of the analog signal holds as much information as your ears/eyes can decode, then you won't be able to tell the difference.

FPGA allows a game's hardware components to be replicated precisely, without being filtered through (and regulated by) another software program, which allows the game code to run exactly as it did on the original hardware.

Well, that is a concern, but it is not difficult to get an audio/display buffer (piece of mapped memory) from your OS where you are able to put whatever 1's and 0's in there without fear of filtering. And you could always build an emulator around some barebones OS where no filtering happens at all.

The big difference between FPGA and software emulation is that a software approach takes more resources to do so, because on every cycle it needs to simulate the whole machine. An fpga doesn't have this "runtime" evaluation, as is already set up to process the input in only one way until you program it again.

A practical example would be, that when you are programming an FPGA you can check your design by emulating it in software. It does take a lot of resources to do so, and most of the time is not realtime, but it is still behaving exactly as the programmed device will. So, if you take it to the limit, there is no difference.
 
This is the best description I've encountered to date with one caveat. I still don't consider it emulation for exactly the reason you describe. Because there is no other "software" regulating or filtering it there's no "emulation" happening. Replacing a 74LS00 quad nand gate with 4 separate nand gates in my opinion is not "emulation" it's "replication" If I replace a 7400 on an original board with a 74LS00 is that "emulation"? Not in my book. Your point about "if done correctly" is VERY important and a key element on the quality of the "replication".

Thank you. It's splitting hairs, but in my book anything that is imitating the original hardware, without any of that actual hardware present, is "emulating" it. Using a 74LS00 instead of a 7400 is like using a newer spec spark plug when tuning up your car... the new part does the same job as the old one but it's still the same car. FPGA emulates hardware with more advanced hardware, while MAME etc. emulates hardware with software... but in the end it's emulation on both counts. I thinik it's important to identify FPGA as a type of emulation, albeit a far more sophisticated one than is normally meant when the term is used and there does need to be a distinction between the two.

Well, that is a concern, but it is not difficult to get an audio/display buffer (piece of mapped memory) from your OS where you are able to put whatever 1's and 0's in there without fear of filtering. And you could always build an emulator around some barebones OS where no filtering happens at all.

The big difference between FPGA and software emulation is that a software approach takes more resources to do so, because on every cycle it needs to simulate the whole machine. An fpga doesn't have this "runtime" evaluation, as is already set up to process the input in only one way until you program it again.

A practical example would be, that when you are programming an FPGA you can check your design by emulating it in software. It does take a lot of resources to do so, and most of the time is not realtime, but it is still behaving exactly as the programmed device will. So, if you take it to the limit, there is no difference.

I get that, but the OP asked for the dumbed-down version, not the dissertation version! We've both explained that using software to emulate hardware adds a layer of operation that can affect the end result, no matter how precisely the software does its job... you just went a bit deeper into the nuts and bolts than I thought was necessary to answer the question. Cheers.
 
Last edited:
Thank you. It's splitting hairs, but in my book anything that is imitating the original hardware, without any of that actual hardware present, is "emulating" it. FPGA emulates hardware with more advanced hardware, while MAME etc. emulates hardware with software... but in the end it's emulation on both counts. I thinik it's important to identify FPGA as a type of emulation, albeit a far more sophisticated one than is normally meant when the term is used.


You're reproducing transistor-based logic gates with transistor-based logic gates. They're just a lot smaller, and you lay them out with code instead of your fingers. But they're still logic gates. And if you do it right, there's no functional difference in the output signals produced (i.e., it can be bit-accurate).

If I replace LS-series chips on a vintage PCB with HCT-series, is it emulation?
 
You're reproducing transistor-based logic gates with transistor-based logic gates. They're just a lot smaller, and you lay them out with code instead of your fingers. But they're still logic gates. And if you do it right, there's no functional difference in the output signals produced (i.e., it can be bit-accurate).

The fact that it can be bit-accurate does not mean it's not also emulating the original hardware. The term emulation has no relationship with accuracy.

If I replace LS-series chips on a vintage PCB with HCT-series, is it emulation?

If it's a part installed in the same spot on the original board that does the same job, no it is not emulation. If you build a brand-new board that's identical to the original and re-populate it with new components that do the same task as the originals did, it's a reproduction but it is not emulation. If you take every part on the board and replace them with a single part that does all of their jobs, then it is emulation.
 
So I apologize if I have unleashed a firestorm between the emulated/not emulated camp 😆!! All of you have really gone in depth explaining this and I appreciate the hell out of it. I am continually amazed at the amount of knowledge this forum holds. So am I safe I'm assuming that it will be a long way off before we see some newer games on FPGA? Games like paperboy and 720 that have monster PCBs would probably be difficult or at least a shit ton of work correct?
 
If you build a brand-new board that's identical to the original and re-populate it with new components that do the same task as the originals did, it's a reproduction but it is not emulation. If you take every part on the board and replace it with a single part that does all of their jobs, then it is emulation.

That seems like an odd definition, when that single part literally contains all of the same logical functions and gates of the original board, still in hardware, just in a smaller form. Functionally speaking (if it's done properly), it's a reproduction, even if the package is different. Why does the package matter?

To electrical input signals, they're the same thing, and produce the same logical outputs, using transistor-based switching elements, via the same logic circuits and schematics.

If you're producing the same outputs via an entirely different paradigm (e.g., software), that mimics the behavior of the original system, then I agree it's emulation. But that isn't what an FPGA is doing. It's still transistor-based logic gates, reproducing the same circuits as the original game schematics, to get the same outputs for the same inputs. Just much smaller and in a single chip. I call that a reproduction.
 
That seems like an odd definition, when that single part literally contains all of the same logical functions and gates of the original board, still in hardware, just in a smaller form. Functionally speaking (if it's done properly), it's a reproduction, even if the package is different. Why does the package matter?

To electrical input signals, they're the same thing, and produce the same logical outputs, using transistor-based switching elements, via the same logic circuits and schematics.

If you're producing the same outputs via an entirely different paradigm (e.g., software), that mimics the behavior of the original system, then I agree it's emulation. But that isn't what an FPGA is doing. It's still transistor-based logic gates, reproducing the same circuits as the original game schematics, to get the same outputs for the same inputs. Just much smaller and in a single chip. I call that a reproduction.

The difference is that you are focused on output and functionality, but that's not the entire story. Functionally, FPGA can achieve a reproduction of the original hardware's behavior at a fundamental electronic level, we agree on that. And a handful of modern components today can realize the same exact function that it took hundreds of components to achieve 40 years ago, that's also true. But the ability to reproduce a result accurately, even if the same basic processes are utilized in a new/updated package, does not define whether nor not emulation is taking place.

Functionally speaking, I can (or at least, I used to be able to) play Metallica songs note for note on the guitar. Biologically speaking, James Hetfield and I have roughly similar components. But none of this makes me James Hetfield, because the package DOES matter. No matter how perfectly I may have been able to produce his output using the same paradigm (ten human fingers on a guitar plugged into an amplifier), at best I'd be emulating James Hetfield. And if you saw an advertisement reading "James Hetfield performing live" and showed up to see my dumpy ass up there with a guitar, you would question the accuracy of that description no matter how much like Hetfield I may have sounded. The only guitarist that sounds like James Hetfield who isn't emulating James Hetfield is James Hetfield, and the only arcade board that plays Zookeeper that isn't emulating a Zookeeper board is a Zookeeper board.
 
So I apologize if I have unleashed a firestorm between the emulated/not emulated camp 😆!! All of you have really gone in depth explaining this and I appreciate the hell out of it. I am continually amazed at the amount of knowledge this forum holds. So am I safe I'm assuming that it will be a long way off before we see some newer games on FPGA? Games like paperboy and 720 that have monster PCBs would probably be difficult or at least a shit ton of work correct?
No worries! just a spirited debate on semantics. I get the argument about it being "emulation" and I see fcjim's point. The reason I'm really sticking to my guns is more for others like you who may not understand the differences between an FPGA solution and MAME at that level of detail. For those people grouping them under the same "emulation" term is really a disservice as they really are VASTLY different in terms of fidelity of the reproduction which I would argue is THE goal. My first project using an FPGA to recreate hardware was back in '99 when I did a Pac-man solution. One of my original reasons for doing this was to create a test bed I could use to compare signals against to repair original boards. Unlike MAME the FPGA really is a replication of the hardware and I can "probe" or bring out any signal from the FPGA solution and probe it with a logic probe or scope just like an original board. In fact my "grander" vision was to add "hardware" in the FPGA to do this comparison directly very similar to how a logic comparator works but on a much greater scale, a sort of "board comparator". This is a key element that differentiates "emulation" vs "replication" in my mind. In the FPGA every signal that exist on an original board also exists in the FPGA as a real electrical signal that could be probed (if done properly) where in an emulator like MAME this is not the case. MAME "emulates" the behavior of the system in a different medium (that medium being software). Don't take this a knock of MAME as it's a GREAT project whos goal is to document and preserve theses "systems" for posterity and for this purpose it does a much better job. It was never intended to be used to replace hardware, at least that's what I've been told by the MAME devs I've talked to directly.
 
The difference is that you are focused on output and functionality, but that's not the entire story. Functionally, FPGA can achieve a reproduction of the original hardware's behavior at a fundamental electronic level, we agree on that. And a handful of modern components today can realize the same exact function that it took hundreds of components to achieve 40 years ago, that's also true. But the ability to reproduce a result accurately, even if the same basic processes are utilized in a new/updated package, does not define whether nor not emulation is taking place.

Functionally speaking, I can (or at least, I used to be able to) play Metallica songs note for note on the guitar. Biologically speaking, James Hetfield and I have roughly similar components. But none of this makes me James Hetfield, because the package DOES matter. No matter how perfectly I may have been able to produce his output using the same paradigm (ten human fingers on a guitar plugged into an amplifier), at best I'd be emulating James Hetfield. And if you saw an advertisement reading "James Hetfield performing live" and showed up to see my dumpy ass up there with a guitar, you would question the accuracy of that description no matter how much like Hetfield I may have sounded. The only guitarist that sounds like James Hetfield who isn't emulating James Hetfield is James Hetfield, and the only arcade board that plays Zookeeper that isn't emulating a Zookeeper board is a Zookeeper board.
So can we call FPGA a tribute band instead of emulation?? 😂😂
 
Whats even better is when you find some legit pcbs with an occasional FPGA on them. We can compare those PCBs to Judas Priest I suppose
 
Back
Top Bottom