Good point. Philosophically, there’s no difference between playing (providing the input & viewing the output) the original hardware, a perfect software emulator, or a recreation of the original HW in an FPGA. Practically, some hardware is a stupid butt to emulate in software (multiple chips/pipelines running in parallel with synchronisation points, concurrency bugs are hard), and pushing those systems to HW avoids the complexity.
FPGAs are good as a dev because you improve the cadence of the problem-idea-fix-test loop vs. fixed HW. No need to wait for new chip designs to be fabbed to work out if your idea was good or not.
Re: microcontrollers, those (cheap ones) have fixed pipelines, so if you need stuff to run in parallel, you need two chips, which then need mounting on a PCB with traces of the right length and using the same clock signal and a shared bus to resources (RAM, disk, &c.). Emulating then on the same FPGA and you get all that free, and it takes up less space than a breadboard, and you can validate layouts straight from the design files which you can’t mess up by miswiring stuff by hand)
As a user, FPGAs mean you can update your functionality without buying new hardware, or even switch systems just by flashing some code. So they’re good for people on limited budgets with wide tastes.
Why not use FPGAs for everything, since they’re so great? They’re slower and more expensive than specialty dedicated hardware, and they have a limited number of write cycles before they can be updated anymore. They’re best for prototyping, low-volume manufacturing where the overhead of fabbing a specially-designed chip is higher than your expected margin from sales, or for products which need to be fast in specialised ways but also periodically updated (HDMI transcoders? Networking switch backplane controllers? Dunno of an actual use case for this)
Thanks for explaining this. I still feel like we are getting closer to my answer which fpga could be just like the original hardware. That’s what people keep saying. My thought the whole time is “there is no gurantee that is true, like any emulation.”
Unless I am making logical leaps,m. It feels like the internet makes logical leaps that fpga = the real thing. I don’t see any promise that might be true outside of people yelling it in a way they don’t usually about emulation?
In short
Internet: fpga = the real thing!
Me: why?
Internet: Because it could be exactly like the real thing!
Me: okay it could be but is it?
Internet: It’s like the real thing it’s very good!
Me: huh. Okay.
As I understand it, there’s no ‘could be’ about it.
Using the Analogue St as an example, if you hooked one up to one screen, then on another screen, you hooked up a mint-condition SNES, then covered both up so you couldn’t see the units, there would be no way to determine which was which. No set of controller inputs would be able to produce a detectable or measurable difference. The output coming out of the black box would be identical.
In short, it’s functionally the same as the real, original hardware because that is the whole point of the tech in question
Extremely pedantically, you could tell from the power consumption and electromagnetic emissions. But for normal human purposes, yeah they’re indistinguishable.
i don’t know that that’s entirely true. i mean, you can tell the difference in the video output (including some rare graphical glitches) between different models of actual legit SNES consoles when comparing the original model and the 1CHIP, etc.
First of all, I think this might need its own thread as my primary activity on SB is to lurk the news. Also, it’s an interesting subject in general and deserves it.
To say that it is functionally the same as original hardware because that is the point of the technology has triggered pedant mode. My apologies.
I just wonder if the physicality of the circuit boards and components could possibly introduce factors that an FPGA would either not be able to emulate or would only be able to emulate if first measured and integrated into the logic, not to mention heat tolerance of the components. It may run too well.
It’s important to remember that all computer logic operates off of analog voltages that register as binary values based on whether or not it exceeds a certain threshold. In the analog world there is a factor called “slew” which is roughly the time for a variable (in this case voltage) to respond to an impulse. Slew in analog hardware, including IC chips, can vary significantly. Could this ever factor in an FPGA or emulator playback of a game versus original hardware? Maybe TAS creators already need to deal with this along with lots of other factors when trying to make runs work on actual hardware.
I don’t know enough about emulation to know this but wouldn’t it be more accurate to emulate the actual circuitry of an “up to original spec” unit with high bit depth voltage tracking and whatever else could conceivably alter game play. Could be too expensive, too esoteric and too impossible now but… could be neat too
I mean, all of that is technically correct, but any anomalies at that scope would be monstrously overshadowed by the kinds of variances you’d have found between individual units of the original hardware. You gotta remember we’re taking about a mass produced consumer commodity-grade piece of equipment which was, for all intents and purposes, considered by it’s manufacturer to be a toy.
As I said earlier in the thread, this technique is used by CPU manufacturers to emulate WILDLY more complicated and sensitive chips. If this stuff wasn’t accurate enough to properly replicate a SUPER NINTENDO, they wouldn’t be using it to design the next Pentium.
and yeah the main reason i care about FPGA w/r/t retro games: an increased focus on being able to use original controllers and a CRT with the minimum possible latency. i don’t know if it should excite everyone (emulation, as stated many times, is wonderful), but fpga is different and specifically targets some of the weaknesses of emulation (high performance cost, latency)
also I like FPGA stuff like the analogue super nt because it has less severe long term issues with the voltage irregularities you see with flashcarts and original hardware. the sd2snes is pretty well designed to compensate for this, but a lot of flashcarts are not and even older everdrives have issues with this
from what I’ve read, at least, it’s more like fpgas are sometimes capable of being like the real thing but implementation of emulating a specific console is far from trivial? like there are some fpga implementations that aren’t perfect yet, and I imagine even in the ones that are “there” people could still discover bugs and irregularities.
but even if that’s the case, fpga emulation is still “better” because you have many hardware-related obstacles removed from the process
if nothing else you will pretty much always have less latency
someone correct me if any of that’s off base, please.
as far as my understanding goes I don’t think any of this is incorrect. like yes FPGAs can be programmed into a indistinguishable recreation of another chip but it takes a lot of time and effort to make an implementation that’s basically the real thing. analogue’s FPGA NES recreation was like 500 fucking dollars for a reason
my hot take as someone who has only played like two games on an actual SNES is that I can live with it not being 100% perfect if the FPGA implementation is good enough that it feels like a super nintendo to the average moron like me
bsnes already feels like a super nintendo to this average moron. but I still think fpga technology is really cool and promising for the future of emulation.
I think what’s confusing about fpga is that the technology implies you could have one box that could reconfigure its own hardware to mimic nes, snes, genesis, etc, on the fly, which I don’t think is really true? or like, it’s maybe theoretically true?
emulation is cool but I’m talking about hardware, like I vastly prefer physical things so the fact that there is an FPGA super nintendo out there makes me want to use it over the best most accurate emulator even if the FPGA console wasn’t a perfect recreation just by nature of it being a tangible hardware thing that I can interact with. I understand that I am an edge case!
also I think what you are describing is this open source FPGA thing so it definitely seems possible??? I don’t know enough about it to say for certain
posting on here has given me the impression that Felix is 103 years old and misses the days when cars worked like the flintstones so my headcanon is that playing snes games with a fpga is too new-fangled for him compared to an emulator