It's been 13 years to the day since the very first stable release: 0.1.0. That first version only supported Linux, had pretty broken FM emulation, awful compatibility and no UI, but it was a start. 2019 brought the 0.6.X series which worked with the vast majority of published Genesis/Mega Drive games, had high quality FM emulation and had a serviceable UI. After the release of 0.6.2 in March of that year, progress didn't stop, but stable releases did. A combination of some unfortunate regressions and other events in my life delayed a new stable release. The longer the release was delayed, the more effort was required to do a new one. While the nightly build system ensured some users could access the latest improvements, many people still stuck to the increasingly crufty stable build. Thankfully that ends today with a brand new stable release.
The changes I'm most proud of are the inclusion of Sega CD and 32X support including CD 32X titles. The race to build the first functional Sega CD emulator is what got me interested in emulation development in the first place so adding Sega CD support sort of brings things full circle for me. The 32X has had some recent interesting homebrew developments and the lack of support for this add-on, along with the Sega CD, was one of the main reasons people cite for sticking to Kega Fusion. Compatibility isn't perfect for these add-ons, but most games are playable and work will continue on the remaining bugs.
Another addition I'm proud of is Sega Pico and Yamaha Copera support. While Pico has been emulated in emulators like Picodrive for a long time, the rare Yamaha Copera variant was unemulated. I reverse engineered the additional hardware and added some initial support to BlastEm. OPL3 emulation is far from complete so these games generally lack music in BlastEm, but they're all playable and the Copera-specific ADPCM samples play just fine.
1.0.0 also sees major improvements to support for Sega 8-bit consoles. While 0.6.2 had some support for Master System games, it was generally limited to things supported by the backwards compatibility mode in the Genesis. 1.0.0 adds in support for TMS9918a modes along with support for the Game Gear, SG-1000 and SC-3000, including keyboard and cassette tape emulation. Since the hardware is very similar to the SG-1000, there's also some basic support for Colecovision.
ARM was already dominant in the mobile space when I first released BlastEm. Being restricted to x86 family processors was never the long-term plan, but my initial approach to writing dynarecs made porting to new architectures difficult and time consuming. While those x86 dynarecs are still the default on platforms with those CPUs, 1.0.0 is the first release to be CPU independent. There are new 68K and Z80 cores built with a DSL (Domain Specific Language). For now these just emit an interpreter in C, but I hope to produce dynarecs and companion assembly language interpreters from the same source code. This new DSL was also used for the SH2 core used for 32X emulation on all platforms.
Some have asked why there's been such a big jump in the version number since the last release. There are a few reasons for this. Partly this just reflects how much has been added since 0.6.2. Partly it's because my original goal for a 1.0 release was to support all the systems that Kega Fusion did, and that goal has largely been achieved. That said, embarassment is also a factor. Before today, BlastEm would have fit right in on the satirical zer0ver website and is only not listed because it's less well known than other 1.0-lacking software, but the threat was ever-present. Well, no more! BlastEm has an official 1-based version now. Take that, satirical website authors!
BlastEm today is made up of 100% artisanal AI-free code and I intend to keep it that way. That said, I've found the proliferation of vibe-coded projects in the retro space to be fairly discouraging. When it comes to commercial development for modern platforms, I get that ROI concerns make AI hard to ignore. I may have some concerns about over-reliance on these tools in the commercial space, but I can't deny they can be helpful for accelerating software development. For most software, people primarily care whether it works and does what they want, not whether it was artisanally crafted by a real human being.
Retro software developmpent is a different though. Much of this software is not particularly useful for any real work. People develop it for the challenge and the sense of personal achievement. If a computer does all the hard work, what's the point? Will developing this stuff by hand still be valued in a world in which anyone with money to burn on tokens can quickly turn out an AI-slop version? I don't think I know the answer to those questions, but they are weighing on me.
For now, I still have a few "white whales" to conquer in BlastEm. In particular, I'd like to emulate the Teradrive and at least the Sega-PAC in the LaserActive. I expect these goals will keep me motivated for now. Hopefully with this huge stable release out of the way, I will also be a bit more on top of stable releases for a while. That said, don't sleep on the nightly builds. They'll always be the first to get new features and bugfixes.