Greetings, operators.
What if I told you there's a new version of Downloader ready to be auto-installed in your MiSTer FPGAs?
The main highlight of this new release is that I’ve integrated downloader_bin directly into Downloader itself. After a super-smooth Release Candidate period, it’s been proven that the compiled binary causes no unexpected problems, and it’s ready for kung fu.
Before diving into details, I also want to give a brief shoutout to the creator of the header images I’ve been using in my recent posts. You’ve probably noticed they look way nicer than what I used to put out in previous years—that’s all thanks to Ryōga, a conceptual graphic designer who’s also behind the magnificent GameDataBase. He’s been putting together these infographics and finding ways to present my nerdy updates in a way that looks both nice and informative, with very little guidance from my side.
He’s always taking on freelance work, so feel free to reach out to him if you’re in need of some of his magic.
Downloader is now a compiled binary
I introduced downloader_bin in this post. In short, it is a version of Downloader that's much closer to the bare metal. Thanks to this integration—and a couple of extra optimizations I delivered—the update process now runs even faster. This is, without a doubt, the fastest version of Downloader to date.
These are all external measurements performed on a device that's connected to a modest DSL connection with a cheap USB wifi dongle.
If you look at the graph, you’ll see an average improvement of more than 2.5 seconds. The accentuated peaks are due to occasional network hiccups skewing the averages, but if we ignore those outliers, the average time is around 6.7 seconds in Downloader 2.2 versus 9.3 seconds in the 2.1. That’s already 2X as fast as the version we had in February, just before releasing the big 2.0 refactor.
Changes in SSL Certs
The launcher now uses Scripts/.config/downloader/cacert.pem (recently included in distribution_mister) when it exists. If that file isn’t available, it falls back to /etc/ssl/certs/cacert.pem. If no certificate is found at either location, the user is prompted to install new certificates.
Downloader no longer checks certificate validity in the initial step. Instead, it immediately attempts to perform the updates. If all updates fail, it falls back to checking certificate validity and retries once a fix is found automatically. This change saves about half a second overall.
Other Downloader changes
Another notable change is that I reduced the default log verbosity. There are many more details in the CHANGELOG—please take a look if you want to see everything that’s changed. This has been a substantial update.
Regarding the self-updating process, the first time you run the updaters, you'll install the new version, which means you’ll only experience the new version starting the second time you run it.
Update All 2.3.1
I also updated Update All to use downloader_bin when it’s available on the system. As you can imagine, this makes Update All much quicker as well.
The BIOS DB now uses a different location (db_url) and includes 3 new systems: CD-i, Pokémon Mini, and Super Cassette Vision. This is automatically handled by Update All.
There are other minor fixes and tweaks. You can check them in the CHANGELOG as usual.
End of transmission
That’s it for now! Maybe let your Switch 2 rest a bit and spend some quality time with your FPGA—so much great stuff has been coming recently that's definitely worth checking out. And thanks to this release, updates will be installed even faster.
Connection lost.
UPDATE: If you encounter any issues when running Update All, just run update or downloader once, then you can go back to running update_all as usual without any problems. There was a 20-minute window where a buggy build was briefly distributed. If you ran the updater during that time, you may have been affected — but it’s already been fixed. The vast majority of users shouldn’t have noticed anything unusual.