Tendo City
FPGAs are the best thing to happen to video game preservation! - Printable Version

+- Tendo City (https://www.tendocity.net)
+-- Forum: Tendo City: Metropolitan District (https://www.tendocity.net/forumdisplay.php?fid=4)
+--- Forum: Tendo City (https://www.tendocity.net/forumdisplay.php?fid=42)
+--- Thread: FPGAs are the best thing to happen to video game preservation! (/showthread.php?tid=7040)



FPGAs are the best thing to happen to video game preservation! - Dark Jaguar - 27th April 2017

Well, what are you going to do when it comes time to play those retro games? You can look for a port to modern hardware. That could be the best possible option, if the port is faithful and properly debugged. Among modern ports, you've certainly got no shortage of options, but that's only a small portion of retro games, and those obscure gems made by a company that no longer exists probably aren't getting a modern port. There's also the small matter of "modern" being subjective. Give it a few years, and that modern port will now be a "classic port" for outdated hardware, and if your old hardware is busted, you just have to hope for it to get ported again. "New Super Mario Bros" is now 11 years old, for an unrelated example of how quickly these sorts of things can date themselves.

Alright, so the next best thing is emulation. These days, even the big publishers regularly make their own emulators and sell their retro games as ROM packs (such as the Disney Afternoon collection that just came out). There's also less scrupulous ways to get your collection on modern hardware with a massive host of fan-made emulators, all with features and IPS patching that can make those old games more enjoyable than in the past. Emulators are a pretty tempting option that'll be good enough for most people, but with them come issues of accuracy. Emulators trade off CPU utilization for accuracy, so the more accurate the emulator, the more powerful your hardware needs to be. This is exponential, so while the SNES can be emulated perfectly on modern "gamer" PCs, even slightly more powerful hardware like the N64 ends up requiring computers far more powerful than today's in order to provide theoretically perfect accuracy. As far as how good "imperfect accuracy" can be, it depends on the game. Namely, it's popularity and what sorts of quirks the original programmers used. The biggest most popular hits tend to get the most focus, at the expense of fringe games, especially if those fringe games used undocumented workarounds to get the most out of the hardware they were designed for. Further, while "headerless ROMs" are becoming standard now, in the past headers were expected, and also many ROMs had "dirty" rips which many emulators expect. Further, there's issues of exclusivity. Most emulators store their saved data differently. Things like save states or even the "internal RAM" state can vary too much between different emulators to be portable. Some emulators render the saved data of the game entirely differently than originally coded (such as ScummVM, which emulates a game engine rather than hardware) and will occasionally break compatibility with their own save structure from update to update. Mods are also tricky. Best practice is to design a IPS hack using original hardware, but many modders either can't or won't do this and will use an emulator for testing purposes. As a result, there's a decent chance a hack that worked fine in SNES9X (for example) won't function correctly on other emulators or even the original hardware via flash cart. If that hack becomes popular (such as a translation hack), other emulator designers get pressured to "support" the hack, which pushes their own emulator out of spec even further with actual hardware. Again, how much these issues matter is down to personal tastes, but if you care about experiencing the game exactly as it was originally designed, emulation is full of pitfalls.

Okay, what about just buying an old console and playing it on that? Heck, most Youtubers go that route. This will certainly get you that authenticity, but it comes with it's own downsides. For rarer games and consoles, you're looking at either a long search or paying very high costs for the used hardware. Bigger than this, the hardware IS old and no longer manufactured. That means there's a limited supply and the hardware will all eventually fail with no replacements. For most of us, it's been very fortunate that our gaming hardware has survived so long beyond their eras. However, they all will eventually fail. Some of this can be repaired, but when the processors fail, there's almost nothing that can be done. The games themselves will also fail. The soonest to fail will be the battery backups and those games stored on floppy disk. They're already starting. Lastly, it's important to note that it IS the original hardware, so none of the sweet perks of emulators can be expected, from save states to IPS patching. Although, bit by bit each console are getting custom flash solutions like the Everdrive.

Now we get to reproduction consoles. These are consoles meant to replicate the functions of a specific console. The ideal version would be an exact part for part rebuild with the exact parts being manufactured again for that purpose. None of them hit that ideal. A decent chunk aren't even true reproduction systems, instead being little more than a computer with custom emulators built in to handle the games (at which point it's probably better to go with PC emulators again). The quality on these varies greatly, namely because almost none of them are licensed and they're being made and sold cheaply, and also because there's often not enough documentation so the engineers have to do some reverse engineering, which runs the risk of missing details both big and small. Often, the sound or the color or some other aspect is way off, and just as often various titles simply fail to work at all. There's a few that work better than others, and it's always an option, but again this isn't the accurate experience those who want to preserve history are after. One little spinoff of this idea is the "made from original parts" reproduction. These really are accurate, because they're taking the original parts of the console and repackaging them in a new shell. This raises a number of preservation related issues (one in particular did promise they only took parts from broken systems), but it also isn't sustainable anyway.

At last, we get to FPGAs. This stands for "field programmable gate array". This is a special processor that can be transformed into another processor by adjusting it's logic paths. Due to it's design, it isn't nearly as shrunk down as modern CPUs, and it can only take the form of processors it has enough logic gates to support, but it means it can be custom set to any task within those limitations a designer can dream up. It was originally designed to allow data centers to design hardware accelerated processing of any function they wanted (such as weather forecasting or protein folding). The advantages of having the hardware specially set for that particular task outweigh the relatively fewer logic gates it has to work with, and they can be designed and configured to run in series.

You probably already see where this is going, but since this processor can take whatever form you wish, it can also be turned into a game console's processor or processors (a single one can act like multiple processors linked to each other, so long as the total logic gates is below the count in the FPGA). Due to the limitation on logic gate count, it'll be limited to older consoles for now, but still this is an amazing boon to game preservation. In fact, there's one repro console out there that uses this very method, and the results are incredible. https://arstechnica.com/gaming/2016/08/the-500-nes-remake-gets-a-bit-smaller-and-more-affordable/ Now, accuracy depends on accurate knowledge of the chips in question, but if you get that nailed, you've got a perfect reproduction. This sucker even gets the little graphical glitch line in MM3's menu looking identical. Further, they're adding the "mappers" (special addon chips in various NES games) to the FPGA profile to perfectly replicate them too. They're adding processors via software updates, because we're living in the future. This repro isn't limited to NES games either. One of the main designers is releasing "unofficial" profiles that set the FPGA up like a Master System or Gameboy and so on. In fact, due to them having full control over the chip's layout, they can do things like "pause" games at any point, save states, real time IPS patch injecting as ROMs are loaded, and all of those things one would expect from emulators. I expect it would be easy to set up cartridge and saved data backups too. They can even apply certain patches that disable hardware limitations like sprite flickering or overclock the system, since the FPGA can easily perform faster than the NES hardware could if it's asked to.

This isn't a panacea that'll resolve all the problems with maintaining classic game history, but it's a huge step forward. It's the first time I've seriously considered getting a reproduction console to replace my actual NES hardware, and I'm paying very close attention.


FPGAs are the best thing to happen to video game preservation! - Sacred Jellybean - 29th April 2017

Quote:At last, we get to FPGAs. This stands for "field programmable gate array". This is a special processor that can be transformed into another processor by adjusting it's logic paths. Due to it's design, it isn't nearly as shrunk down as modern CPUs, and it can only take the form of processors it has enough logic gates to support, but it means it can be custom set to any task within those limitations a designer can dream up. It was originally designed to allow data centers to design hardware accelerated processing of any function they wanted (such as weather forecasting or protein folding). The advantages of having the hardware specially set for that particular task outweigh the relatively fewer logic gates it has to work with, and they can be designed and configured to run in series.

Holy shit.

Do you know what this means? Falcon won't have to track down that copy of Table Top Tennis for the Magnavox Odyssey. :D

Just kidding. He probably already has that.