Published on: May 2, 2026
It has been almost two years since the release of EndBASIC 0.11. Fear not, though, for the development hasn’t stopped since then!
If you paid attention last year, you may have seen that I spent the first half of 2025 building the EndBOX and modernizing the website. However, these efforts didn’t come with a corresponding formal release and it’s about time to fix that.
The 0.12 release marks the end of an era. No, EndBASIC is not going anywhere just yet (although I have some thoughts to share on that). No, this release is the last one based on the compiler and symbol-based virtual machine that have existed and slowly evolved since 0.1. I’ve spent all of 2026 to date rebuilding these components from the ground up in what I’ve called core2 and, before I publish those, I want to have a “clean last cut” release of the old platform based on core.
There is a lot to talk about, but before we get to that, here are the must-visit links:
Without further ado, let’s take a peek into the major changes.
What’s in this release?
While there are many changes in 0.12, none really is the usual “killer feature” you might have come to expect from earlier releases. The changes in 0.12 are primarily quality-of-life improvements and internal code restructuring to support the EndBOX.
If you must know, here is a list of the biggest news:
Performance improvements of up to 2x: I made some changes to the VM to execute upcalls by index instead of by name. This was the first optimization in a long list of changes I had been wanting to apply, but unfortunately I had to stop there because it was nigh impossible to implement the other ones with the old symbol-based bytecode—which is effectively what pushed me towards the development of
core2.Multi-font support in the LCD driver: It’s now possible to choose from two bitmap fonts (the previous 5x8 font for the tiny ST7735S LCD, and a larger 16x16) when using the LCD driver. This feature was implemented to support the EndBOX’s larger display and it’s something I’d like to retrofit in the frontend for all other platforms, but I’ll get to that once
core2is out.File manipulation tweaks: As I revamped the gallery, I needed to be able to copy binary files into my shared cloud drive, which required implementing a
COPYcommand and various path manipulation fixes in theLOAD,SAVE, andKILLcommands.Support for
EXIT FOR/FUNCTION/SUBstatements: These are minor improvements that became “necessary” when I tried to use an AI to produce EndBASIC games late in 2025, because that AI assumed that EndBASIC provided these primitives. It was easy enough to implement them, and they are good to have.SDL 3 compatibility fixes: While EndBASIC continues to use the SDL 2 APIs, this release includes fixes so that it can work with the backwards compatibility layer provided by SDL 3. Preexisting bugs for macOS continue to exist, though.
That’s about it for this release, but the most exciting stuff is about to come.
What’s coming up?
The next release, which should be out soon, will feature a transition to core2: a brand-new compiler designed from the ground up to target a register-based bytecode instruction set, and a corresponding VM to efficiently execute such bytecode. In some simple benchmarks I’ve run, I’ve observed a 7x performance improvement over the old design—and this is just the beginning considering I haven’t yet gone through any optimization rounds.
After that, I plan to unify the console drivers on the LCD implementation to support font selection, and to provide extra graphics primitives to support sprites in some form or another. And after that, I should finally get to implementing support for sound playback… which is really the missing piece to being able to write complete minigames.
A licensing question for you…
One thing I’m really considering as part of the core2 rewrite is to switch the codebase from the current Apache 2.0 license to the AGPL v3. I’ve avoided copyleft licenses like the plague for years… but they are the ones that drove me into open source in the first place back in the late 90s. The ecosystem has changed a lot since then and I think this is one possible recourse to maybe protect the project against AI slop and ensure that any cool stuff built on top of EndBASIC remains free.
Why the AGPL v3 specifically, and not the GPL v3? Because EndBASIC is primarily used via the web-based interface. I’m curious, though: what would your reaction be to such a change, if you have any?
In any case, EndBASIC 0.12 is now ready for you. Go forth and play, and stay tuned for upcoming news!
Launch interpreter