ugBASIC update released: new features for MSX1, Commodore, ZX Spectrum and CoCo

The latest release of ugBASIC 1.18.1 is worth paying attention to, it's  is not a flashy “new skin” update. It is the kind of release that quietly gives developers more room to breathe: more memory, better storage options, improved sound accuracy, broader video support, and a stronger compiler beneath the surface. Version 1.18.1 of ugBASIC and UGBASIC-IDE was released on GitHub on 29 May, and is marked as the project’s latest release. For anyone new to the project, ugBASIC is an open-source, isomorphic BASIC compiler for retrocomputers. Its central idea is simple but ambitious: write one BASIC source and compile it for many different 8-bit systems, without giving up too much performance or machine-specific character along the way.

The latest release of ugBASIC 1.18.1 is worth paying attention to, it is the kind of release that quietly gives developers more room to breathe: more memory, better storage options, improved sound accuracy, broader video support, and a stronger compiler beneath the surface. Version 1.18.1 of ugBASIC and UGBASIC-IDE was released on GitHub on 29 May, and is marked as the project’s latest release. For anyone new to the project, ugBASIC is an open-source, isomorphic BASIC compiler for retrocomputers. Its central idea is simple but ambitious: write one BASIC source and compile it for many different 8-bit systems, without giving up too much performance or machine-specific character along the way.

More memory, faster loading, bigger ideas

The most immediately interesting change in 1.18.1 is storage and memory support. On the Olivetti Prodest PC 128 / Thomson MO6 target, ugBASIC now offers more available memory and preliminary USBDRIVE support. In practical terms, that means games can load more quickly and can be distributed directly on a USB stick.

That may sound like a technical footnote, but for developers it changes the mood of a project. Loading from traditional media can shape the entire design of a game. Faster access means larger assets become less painful, multi-part games become easier to imagine, and distribution becomes friendlier for players who want to run software on real hardware without turning setup into a weekend project.

The MSX scene also gets a meaningful upgrade. For MSX1, ugBASIC 1.18.1 adds support for ASCII8 ROMs up to 2 MB, giving developers much more space for graphics, sound resources and program data. That is the sort of change that does not merely make existing projects easier; it invites larger ones.

Commodore 128 users are not left out either. This release adds GeoRAM support up to 4 MB for the C128 target, opening another route for ambitious software on a machine that has long tempted programmers with possibilities beyond its standard memory limits.

Old graphics modes, new attention

One of the pleasures of ugBASIC is that it does not treat all old machines as interchangeable boxes. Version 1.18.1 adds support for the SG4 semi-graphic mode on Dragon 32/64 and TRS-80 Color Computer 1/2 systems, including image loading.

That matters. Semi-graphic modes are part of the visual personality of these machines. They are not simply inferior versions of bitmap graphics; they are the look and feel of a particular era of home computing. By making SG4 more accessible, ugBASIC helps developers create games that feel native rather than merely ported.

Video improvements go further. The release changes how color and high-resolution modes are prioritised, adds an option to reduce the space used by redefined fonts, introduces 2 MHz sprite multiplexing support for the Commodore 128, and adds general horizontal scrolling support.

For game developers, those are practical tools. Better scrolling means smoother movement. Better font handling means more space for game logic and assets. Sprite multiplexing can help squeeze more action out of limited hardware.

One of the pleasures of ugBASIC is that it does not treat all old machines as interchangeable boxes. Version 1.18.1 adds support for the SG4 semi-graphic mode on Dragon 32/64 and TRS-80 Color Computer 1/2 systems, including image loading. That matters. Semi-graphic modes are part of the visual personality of these machines. They are not simply inferior versions of bitmap graphics; they are the look and feel of a particular era of home computing. By making SG4 more accessible, ugBASIC helps developers create games that feel native rather than merely ported.

A better ear for old sound chips

Sound receives one of the most interesting upgrades in this release. ugBASIC 1.18.1 introduces new tempered-scale calibrations for the AY-3-8910, POKEY, and SN76489 audio chipsets. The goal is more faithful playback when music is converted from MIDI or generated inside a BASIC program.

This is exactly the kind of improvement that separates a useful retro tool from a loving one. Old sound chips have personalities. They are not neutral audio devices; they colour everything. Better calibration means converted music has a better chance of sounding intentional rather than merely approximate.

The ZX Spectrum 48K also gains new sound support in this release, alongside better vertical-blank timing support. It is a modest start, but for Spectrum developers it adds another piece to the toolkit.

The compiler work you may not see — but will feel

Not every important change can be shown in a screenshot. A large part of ugBASIC 1.18.1 happens inside the compiler itself. The parser has been reorganised, with reviewed syntax trees. That work enables dynamic strings inside user-defined types, along with new options for stack position and stack size. The compiler can also better classify loaded resources such as images, audio and data as read-only depending on whether they live in ROM or RAM.

For programmers, this is the sort of groundwork that pays off over time. Dynamic strings in structured types make code cleaner and more expressive. Better stack control is useful when working close to the limits of old hardware. Smarter handling of ROM and RAM resources makes the same source code easier to adapt across very different target machines.

The arrival of a new primitive BIT type also fits the theme of the release. On modern machines, a bit can feel almost absurdly small. On 8-bit systems, it can be the difference between fitting and not fitting. Giving developers a direct way to describe bit-sized data makes code more efficient and more readable.

A fuller toolkit for game makers

The language itself has grown too. This release adds a handful of new instructions aimed at the practical business of making games: controlling speed, preparing assets, handling data, reading input, and putting graphics on screen. They are small additions individually, but they speak to where ugBASIC is heading — away from simple cross-compilation and toward a fuller creative toolkit for 8-bit developers.

The new ATLAS-related features are especially useful. ugBASIC can now define virtual ATLAS resources by stripping graphics into usable pieces, and developers can write to the screen using a custom font defined as a separate ATLAS. That is a very game-development-friendly improvement, particularly for custom interfaces, title screens, dialogue systems and tile-based presentation.

Why this update matters

ugBASIC 1.18.1 is the sort of release that rewards people actually making things. It gives MSX1 developers more ROM space. It gives C128 developers more expansion-memory freedom. It gives Dragon and CoCo users better access to a characteristic graphics mode. It improves sound conversion. It makes the compiler more capable. It adds practical language features that help with speed, data, graphics and control. In other words, this is not just maintenance. It is infrastructure.

Retro development often lives in the space between nostalgia and stubborn practicality. You want the charm of the old machines, but you also want tools that respect your time. ugBASIC 1.18.1 pushes further in that direction. It does not erase the limits of 8-bit computers — and it should not. Instead, it gives developers better ways to work with those limits, stretch them, and occasionally make them disappear. For a project built around bringing portable BASIC development to classic systems, that feels like exactly the right kind of progress.

Spread the love
error: