Hey MiSTer!
Tales From The Dork Web #34
Like most people, over time I’ve acquired lots of drawer-based technology. Unlike most people that includes ludicrous amounts of older computers. In the early 2000s I went on a quest to buy every computer I ever wanted. Emulation wasn’t great back then but the hardware was often cheap or free. Consequently, I have way more computers than I can realistically make use of.
In this issue I’ll write about how I’m reducing my janky oldvintage technology collection and what’s replacing it. I’ll write about the pros and cons of emulation vs FPGA-led simulation, and ways you can get into both without breaking the bank.
This issue’s music is brought to us by JL Segel. Press play and read on.
The Emulation Trap
If you’ve only used modern PCs and game consoles, you might be unaware of how difficult older systems could be. They were mostly incompatible with each other, sometimes even amongst themselves. Games loaded slowly from cassette tapes or floppy disks. One game I bought took 28 minutes to load off tape! Most of these came out in a time when controls and mechanics were still worked out. Developers often lengthened gameplay by making games difficult rather than increasing content. Graphics and sound were nothing like today’s capabilities. At the time this didn’t matter, we didn’t know better anyway.
Modern emulation is fantastic. Fast load-times, better controls and even graphical improvements are common. Emulators are great to play old games, even with input methods they were never designed for. Emulation isn’t perfect. Nothing is. But most people are unaware of emulation's trade-offs.
Latency is one such trade-off. Controllers were wired directly into circuitry. This meant when you pressed fire the electrical signals registered at the speed of light. Modern systems don't do this. Instead of direct connections, intermediary bus controllers, OS APIs and even HDMI add input lag.
You won't notice in games like The Secret of Monkey Island. Play games like DoDonPachi in Mame2003 and you almost certainly will. Some emulators have tweaks to ease this. It's very much system, emulator and sometimes game-specific.
Most emulators simulate specific systems across different hosts. These operate under different configurations at different speeds. On some hardware and software, emulator timing can be out of sync with the original hardware. The effect isn’t evenly distributed, sometimes leading to weird effects. Drewtalks shows this above in the context of Raspberry Pi N64 emulation.
Older systems often used custom chips to boost performance. In hardware this runs in parallel. Many emulators (certainly the terrible ones I’ve written) tend to perform one function at a time. Functions can be farmed out to threads or forked processes. Even so, this may not match the original, leading to timing and latency issues. This isn’t a criticism of emulators; it’s just how modern systems work.
Emulators apply these trade-offs in different ways. Some emulators focus on accuracy, others optimise for speed on less powerful systems. Emulator design choices affect the games we play. The video above shows an original CPS arcade board running Street Fighter 2 - Hyper Fighting alongside emulators. Watch the start of the game then skip to about a minute in. Note how out of sync the emulators become.
In this video, we see the same game compared to a MiSTer FPGA implementation of the CPS1 Street Fighter 2 Hyperfighting PCB. It’s not perfect, but is only out by 0.65%. Some MiSTer cores have perfect speed matches, some don’t.
If you never played emulated games on original hardware, you won't notice a difference. If you still play games on old hardware then latency and slowdown issues can sometimes grate. Unfortunately, each old system I have requires maintenance. I lack the space or time to keep everything going. Moving to MiSTer lets me pass systems on to people who’ll get their most-wanted systems. In return I keep a mostly accurate implementation of similar hardware.
Should Normal People Buy A MiSTer?
Aww hell no. My computing experience is so far removed from that of normal people most of what I’d do is expensive overkill.
You’re probably unaware of latency or timing issues on systems you’ve never owned. Games might seem unusually unforgiving, or feel like you’re bad at them. For years I just thought I sucked at Megadrive/Genesis games. After spending time with the real thing, I found emulator latency and timing issues were killing Sonic, not me.
Well-configured free, then paid emulators are most peoples' best bet on modern hardware. Modern versions of classic controllers usually beat original classic controllers and converters. Older classic system controllers tend to have perished rubber and worn microswitches.
Ergonomics also matter. The original Atari CX-40 stick might look cool but we used these as nothing better existed at the time. Even top-tier controllers like Zipstiks and Competition Pro joysticks haven't aged well compared to some 8BitDo and Monster products.
If you don’t already have a Pi, a Raspberry Pi 400 makes an excellent all-in-one emulation solution. The Pi isn't the most powerful or technically best platform, but it's value for money can't be beat. If all you want is a turnkey image for most systems, Wolfanoz’ 1TB Retromania SSD image is all you need. The beauty of the Pi approach is you can have different SD cards for different purposes. Dan Wood walks through setting up the excellent Amiberry in the video above.
As well as older systems, I also run emulators on those systems. I used to play Spectrum games on an Amiga because the same QuickShot joysticks I used to use worked on both. These days I have emulators on most systems I use and they’re mostly good enough, with the odd exception.
I use an RG-350 for on-the-go gaming. I’ve used handheld emulators since getting my first Palm Pilot in the 90s. The RG-350 is the best early-mid era handheld emulation device I’ve ever owned. It has limits and newer models feature things like 640x480 screens. Still, my RG-350 works well enough for me to not need to buy another system. For anything from the 70s to the early 90s plus PS1 it’s hard to beat for the price. If that sounds interesting watch Taki’s guide above and see if it’s for you.
What About HipstersPurists?
Microcontrollers have CPUs, dynamic RAM, and flash RAM for program storage. Field-Programmable Gate Arrays (FPGAs) are different. FPGAs are programmable logic chips. Instead of writing a program with instructions, FPGA code describes a system's logic. Rather than emulate, FPGAs synthesize hardware at the logic gate level as ‘cores’.
I have several FPGA dev boards but haven’t spent enough time with them. Most are closed-source with clunky dev environments. The Terasic DE-10 Nano dev board forms the core of the MiSTer project. MiSTer is a distribution of reimplemented cores for different classic systems. Although it could be argued that some cores are simulation, project lead Sorgelig himself considers MiSTer a different kind of emulation, rather than pure reimplementation.
FPGA accuracy comes with caveats. MiSTer isn't automatically 'better' than traditional emulation. A core might be built via reverse engineering due to a lack of available design information. The core designer might be new to FPGA design. The system might have subtle timing complexities outside of chip logic.
I bought the rest of my setup from MisterFPGA, a UK seller. As this is an Open Source project it’s very DIY focused. Plan your build ahead of time or you’ll end up with things you never use, like I did. Americans may prefer to use MisterAddons, while European friends may prefer Ultimate Mister. These aren’t recommendations, I haven’t used them. They’re just the biggest regional names I’m aware of. Here’s my setup:
Acrylic case (I went for Shadow Grey)
I also bought and installed an RTC module for the Minimig Amiga Core and a 512Gb Micro-SD card. This was fairly expensive, but as I get cores working how I want, I sell off my old hardware. Most of what I bought I don't currently need. If I did this again, I would build it completely differently. Getting hold of DE-10s is currently difficult thanks to the chip shortage, but Mouser and Digi-Key are worth watching for stock.
The DE-10, a heatsink, a powered USB hub and a power supply are all you need to get started at around about 1.5x the price of a basic Raspberry Pi 400 setup. Only some cores need extra RAM. Amigaos Retro Gaming goes through a minimal MiSTer setup to get started. MiSTers can always be expanded over time.
So, what do I do with my MiSTer? As well as gaming I also explore alternative computing methods and applications. I could (and in some cases do) emulate these. MiSTer provides a mostly accurate hardware representation with some quality-of-life improvements.
Temlib has a MiSTer-compatible SparcStation core capable of running Linux, NeXTSTEP, SunOS and Solaris, meaning my Sun computer collection will finally head to new owners. My MSX is gone. My Spectrums are on the way out. Even the Sam Coupe will be passed on to someone who’ll get more from it than I. I plan to keep two or three Amigas, a couple of laptops, a Pi and a NUC. Other than that, my collection is (hopefully) going to good homes for a new lease of life.
I also simulate computers that I used growing up but don’t own, like the Acorn Archimedes and Atari ST. My MiSTer also acts as a reserve Amiga, playing older games that don’t run well on my A4000.
Setup is more involved than a pre-loaded Raspberry Pi SD Card, but less than a fresh RetroPie install. It doesn’t need to completed all at once and most cores have sane defaults. The menu interface is sparse but functional, fast, and gets out of the way. The in-core menu lets you tweak configuration settings, speeds, filters etc. on the fly. MiSTer’s upsides all relate to quality of life improvements. I’ve yet to see a core doing something real hardware wasn’t supposed to be able to do, like use a hi-res texturepack.
Old console gamepads often had several fire buttons. Many console platformers used a separate jump button. Home computers mostly used joysticks with single fire buttons. This meant many computer platformers used up to jump. This makes sense for a joystick but not for a gamepad. MiSTer fixes this perfectly, as shown above.
So how does it compare to emulation? That depends on the emulator, it’s configuration and the hardware it runs on. There are too many variables to provide a blanket answer. Unscientific tests suggest my MiSTer setup can be closer to original hardware than my emulator setups. I can't tell the difference between MiSTer and Megadrive/Genesis. The SNES core’s colours are more vibrant and lack jail bars. The most noticeable difference seems to be better picture quality than original hardware.
Demos are often the best way to stress test emulators. When MiSTer fails, I’ve often ignored a hardware tweak the demo needed. ESI’s Shock Megademo is a ZX Spectrum classic, but uses ULA tricks in some of its effects. I struggled to get it working correctly. Then I realised my configuration didn’t match an actual Spectrum model. Once I configured it to accurately simulate a +2A it was flawless. The biggest difference between it and the real thing was that my +2 has jail bars.
The level of effort to get something working is the same or less than with emulation. The level of effort needed for 100% perfection is similar. MiSTer cores are exceptionally well documented and usually well supported.
My unexpectedly favourite cores are the PC Engine, Neo-Geo, MSX and ao486 cores. I never had a PC Engine but I’ve always enjoyed Bonk’s Big Adventure and Ryuukyuu. Sofarun is the best way I’ve experienced MSX, hands down. Flynn’s ExoDOS scripts make the ao486 experience something I’m not even sure is possible on a real 486.
Should *You* Get A MiSTer?
If you’re happy with what you have, a MiSTer is unlikely to be worth the money. A minimal MiSTer is much less expensive than people might think. My MiSTer has become my base emulation platform. I still dig out emulators now and again.
There’s no reason you can’t work towards the best of both with RetroPie, and a MiSTer for systems where an emulator’s limitations start to grate. Both are good at what they do. Both have their limits, and neither is clearly “better” in all cases. As with all Open Source projects, you get out of MiSTer what you put in.
Things You May Have Missed
The sadly departed Byuu (of BSnes and Higan fame) writes on why FPGAs aren’t magic. In another piece, Byuu writes about the quest for accurate emulation. If my MSX references were new to you, the always worth-your-time Tedium has a fantastic writeup on The Platform Microsoft Forgot. SystemTalk uses old MacWorld magazines to walk through Apple Macintosh history, post-launch.
Quinn Meyers presents An Oral History of GoldenEye 007 on the N64.
Ahoy has an essential video on the history of tracker music. It’s over 40 minutes long, but worth watching/listening to. Emulator timing issues are often most noticeable themselves through sound. Natalie built an amazing DIY handheld Sega VGM player using original sound chips. Thran’s been having fine times with the PineTime watch.
Anthropologist David Graeber sadly passed away earlier this year. I hope to pick up his final book co-authored with David Wengrow, ‘The Dawn of Everything: A New History of Humanity’ over a Christmas break. Ana Andjelic writes about The End of Efficiency in business. Matthew McKeever writes about Radical Markets and Generalized Capitalist Realism.
Even the Wall Street Journal is starting to realise that modern tech is heroin. I’m linking Datagubbe’s sage advice for a second month in a row because it’s damned good advice.
Blair Neal wrote a survey of display types, well worth a read if you like to explore different interaction methods.
The 2021 Amiga Art Contest had some brilliant entries, the gallery is definitely worth a look. Brent Santin entered this music video, which I loved to bits. Also check out Paulee Alex Bow’s brilliant cover of Chris Isaak’s Wicked Game. I thought I’d end with a quote from the Rumi:
Don’t grieve. Anything you lose comes round in another form.
I’ll be back with more Tales From The Dork Web next month. If you haven’t already subscribed, use the button below to sign up.