"Kevin's work has easily been the most significant and groundbreaking"
April 5, 2017 7:52 AM   Subscribe

"The thing about the [field-programmable gate array (FPGA)] is, it replicates the hardware at a very low level [...] It's not emulating it per se; there's no code running. What it does is, it's like a chip that you can program to turn into another chip, which I program to act exactly like an old Nintendo. It's so close to a real Nintendo console that you can actually run the game right off the real cartridge."
Kevin Horton Is a Cryogenics Engineer Turned Retro Gaming Savior

BlueTech (hasn't been updated since 2006)
kevtris' YouTube (updated regularly)
posted by griphus (19 comments total) 22 users marked this as a favorite
 
One of my regrets about my electrical engineering education is that I didn't do it a year or two later. By the time I graduated, FPGAs were just starting to get wider attention, so they didn't really get much focus in my coursework. But the stuff you can do with reprogrammable hardware is amazing.
posted by tobascodagama at 8:18 AM on April 5, 2017 [1 favorite]


It might be perfect, but is it $500-perfect? I'd have to be very discerning to shell out that kind of cash for old Nintendo games.

The completely insane Vampire FPGA accelerators for the Amiga go more for speed and more features than 100% twitch accuracy, but they're still very good.
posted by scruss at 9:13 AM on April 5, 2017


I work with FPGA cards in a project that lets us process 16 servers worth of data on 1-4 servers with increased efficiency in both processing power and electrical power at a lower cost and with lower maintenance requirements. They're sorta magical. I really like how he's exploiting the power of the FPGA for games. He's doing the good lord's work, if indeed there is a good lord.
posted by brokeaspoke at 9:26 AM on April 5, 2017 [1 favorite]


So did Kevin hand-forge all the processor cores for this project, or was this leveraged off the work of others?
posted by JoeZydeco at 9:30 AM on April 5, 2017


I don't think there was any work of others in this field for him to leverage, honestly, and I've never seen anyone else get credit for his cores except him. If there is some sort of significant contribution by someone else to the firmware or cores (which I doubt) going uncredited they're certainly not speaking up about it.
posted by griphus at 9:51 AM on April 5, 2017


While it's pretty cool, I am very skeptical about the claim that FPGA results are impossible to reproduce through software emulation (but I think this is a claim from the writer not Kevin). The FPGA will be faster if well designed but your modern CPU is so powerful that it should be able to reproduce a NES (and it does).
posted by coust at 10:08 AM on April 5, 2017 [1 favorite]


I think the real advantage might be that you don't need to have a software ROM, you can actually use old carts directly, with the appropriate adaptor.
posted by tobascodagama at 10:26 AM on April 5, 2017


Yeah IIRC the software-based retro consoles that take carts dump the cart and then play the ROM in an emulator. This can use ROMs but when it interacts with the cartridge it does it the same way the NES (or whatever system) would.
posted by griphus at 10:28 AM on April 5, 2017


I am very skeptical about the claim that FPGA results are impossible to reproduce through software emulation

Yeah, the article is deceiving, I doubt there is any corner of the NES that hasn't been faithfully emulated in software. The only "game-breaking bug" discussed is latency, which is unavoidable in a modern OS with modern frame buffer-based graphics and a modern frame-buffer-based monitor. (Ironically, a fast 486 running DOS and a VGA monitor would have lower and more consistent latency than a modern PC.)

Though this looks pretty cool, I'm missing how it advances digital preservation efforts as the article claims, since all I can find released so far is some binary blobs for FPGAs. (which is why FPGAs suck for preservation right now, the toolchains are closed)

Keep in mind also that MAME simulates discrete circuits now, so Pong is playable, as well as some analog sound boards, voice synths too (which this guy works on too!)
posted by RobotVoodooPower at 10:35 AM on April 5, 2017 [2 favorites]


Nintendo carts aren't just ROMs -- many of them have custom chips in them that expand the NES's capabilities. For example, the Japan version of Castlevania III had an extra sound chip. (It sounds pretty awesome.)
posted by neckro23 at 10:44 AM on April 5, 2017 [5 favorites]


Seems like a good time to shout out one o' my heroes, Jeri Ellsworth who made this in FPGA a long time ago which lead to this which was a consumer product with some badass hacker mod points secretly baked in allowing it to be cooked into a full-blown C-64. Oh yeah!

Hyperpurists say that there's a point at which FPGA is gonna break down emulation-wise because its just too clean.
posted by Ogre Lawless at 10:52 AM on April 5, 2017 [5 favorites]


I don't think there was any work of others in this field for him to leverage

A quick scan of https://opencores.org/projects shows many, if not a majority, of the processors used in these old consoles as completed works.

There are other 6502 cores all over the place.

There's also Verilog for the RP2A03 specific to the NES (dated 2012).
posted by JoeZydeco at 11:28 AM on April 5, 2017 [4 favorites]


This ArsTechnica article does a good job explaining the difficulties in software emulation, and why you might need 10x the CPU power to get that last 1% of accuracy (or a FPGA).

There are also a couple other FPGA projects for the NES and Atari 2600.
posted by RobotVoodooPower at 11:54 AM on April 5, 2017 [2 favorites]


I have been very tempted to get a MIST FPGA Computer for a while now, which supports a large number of retro machines.
posted by fimbulvetr at 12:42 PM on April 5, 2017


If anyone is interested in learning FPGAs in a fun way, have a look at the recently-launched Blinklight: https://www.blinklight.io
posted by Korikhal at 1:07 PM on April 5, 2017 [3 favorites]


While it's pretty cool, I am very skeptical about the claim that FPGA results are impossible to reproduce through software emulation

Of the CPU, certainly, since someone dissected a 6502 to produce a transistor-level simulation in JavaScript. Which is, of course, too slow to run in real-time, but is 100% accurate and suffices for testing higher-level simulations against. Apparently they have a 6800 now as well, and are similarly reconstructing the sound/graphics chips from the Commodore 64.
posted by acb at 4:53 PM on April 5, 2017 [2 favorites]


FPP on that 6502 simulation
posted by griphus at 6:01 PM on April 5, 2017 [2 favorites]


FPGAs are really, really good at performing bounded tasks, like recreating a circuit, creating extremely efficient function process chains, and sucking in mixed-signal tasks that you'd need a lot of complex dedicated gubbins to manage in the past. They make perfect - as in, theoretically perfect - radios: you will never be able to build a better radio than some of the FPGA-based SDRs which you can buy now. They make stupidly feature-rich oscilloscopes for the equivalent cost of a reasonably good multimeter of just a few years ago. They can make incredibly good computation engines - provided you can define your computation task well enough.

They are not much good at anything general purpose, because it is very hard to build general purpose programmable circuits that don't trade off performance for flexibility (which is why so many FPGA designs have CPU architectures in the middle). Things may have changed, but when I last talked to someone who was running an FPGA supercomputer project, they said that the major bottleneck in achieving their ambitions was the lack of people who could cope with the mind-bending abstractions required. Perhaps the tools have got better, and I wouldn't even know where to look to find the state-of-the-art in the theory of FPGA-based computation, but while they are wonderful indeed and seem to have scintillating fairy-dust properties, they have fruatrated and will frustrate many very bright people.
posted by Devonian at 12:20 PM on April 6, 2017 [1 favorite]


I wish someone made almost-ready-to-use HDL code and configuration for the retro consoles (not just the CPUs!! the whole things!) so I could just flash that on a cheap Cyclone IV board from eBay.
posted by floatboth at 2:16 PM on April 6, 2017


« Older It was not how I had imagined spending Christmas...   |   It's college admissions week! Newer »


This thread has been archived and is closed to new comments