Hello everyone! I hope you all had a refreshing summer, soaking up the sun and relishing the outdoors. As the days start to shorten, what better time to cozy up indoors and spend more time playing FPGA cores. As you know, my goal is to support you on that. Over the summer, my focus has been primarily on overarching maintenance and materializing my roadmap for Downloader. Let’s delve into the updates!
1. Downloader 1.8 Release 🚀
The release of Downloader version 1.8 is the centerpiece of this update, marking a substantial overhaul with over 4,000 lines of modifications. This brings a plethora of enhancements to optimize system performance and UX and a couple of handy new features.
New Features
- Free Space Check: This feature checks for sufficient free space before commencing file installations, ensuring you don't get into a cryptic error because your SD or your external drive got full. It required a substantial arquitectural change, meaning I now have to process databases in parallel. That change also allowed the optimizations that I introduced in this release, and other ones that I'll be introducing in a future release.
- Backup & Restore of some System Files during Linux Updates: This was implemented by wizzo. Thanks to this, the following files will be kept intact in your system after a new Linux update: /etc/hostname /etc/hosts /etc/network/interfaces /etc/resolv.conf /etc/dhcpcd.conf /etc/fstab
Improvements
- Introduced file system caching to optimize some short runs (the ones happening right after booting up the system) by approximately 3X! - Parallel processing of databases during installations significantly accelerates overall speed, especially if your network connection is not the greatest. This brings between 5% and 50% speed improvement on full runs! The picture below illustrates an overall 40% speed improvement on my Wi-Fi setup after measuring 200 full runs (100 with the newly optimized code and 100 with the old code).
+41.05% speed improvement on my Wi-Fi connection (red: old code, blue: new code)
There were many more improvements and fixes that I'm not mentioning here. For an in-depth overview of all the changes, please refer to the detailed changelog here.
2. Numerous Enhancements and Additions
Distribution MiSTer- Improved download_distribution utility to also work with branches and subpaths.- Added “mister_firmware” as filter term for matching just the MiSTer firmware file.- Fixed a bug on db_operator that caused the utility to not handle uppercase file hashes correctly.- Added a way to easily add extra single files to the distribution under the “user-content-file” category.
theypsilon Unofficial Distribution- Added d18c7db/atari_system1_fpga- Removed furrtek/Arcade-TMNT_MiSTer
BiosDB- Added NeoGeo CD Bioses, including UniBios CD.- Added Nintendo 64 bios files (birdybro)
ArcadeROMsDB- Games asking for MAME merged > 251 will fall back to using version 251 until newer links appear.
Names TXT / Arcade Names TXT- Arcade names have been removed from the Names TXT DB, and now they are contained in the new Arcade Names TXT DB, maintained by PigSaint
Arcade Organizer- For the “By MiSTer Core” folder, the new arcade_names.txt file is used instead of names.txt
Update All- Added agg23’s MiSTer Cores DB- Added Arcade Names TXT DB, which shows automatically active for those who had Names TXT already active- Using a better URL for MiSTer Extensions DB by wizzo
Cheats- Moved Genesis Cheats to MegaDrive folder. Adding SMS cheats to the MegaDrive folder too.
DB-Template (do your own Downloader DB!)- Adding manual trigger to the GitHub Actions workflow in the template.
JTCORES DB- Removed trigger to update jtpremium DB since now all users should be using JTCORES DB, which can select between premium cores or non-premium cores with a download filter (and is handled automatically via the Update All menus, as usual)
Help Wanted: Collaborators Needed 🤝
As you may imagine, I've been spreading thin for a while so I'm in search of new maintainers for:
Bios DB: Involves editing this file.
The Unofficial Distribution: Responsibilities include editing this file, ensuring the inclusion of stable cores with the author's permission, and removing cores included elsewhere officially.
If collaboration on these projects intrigues you, please contact me via DM on Twitter or via my Discord server.
...And
That's all for now! Happy gaming!