version 0.29a of 'BBC BASIC for SDL 2.0' released

New releases of BB4W and BBCSDL, and other updates, will be announced here
Posts: 323
Joined: Mon 02 Apr 2018, 18:04

version 0.29a of 'BBC BASIC for SDL 2.0' released

Post by DDRM »

At Richard's request, here is an announcement of the release of the latest version of BBCSDL, copied verbatim from I've rolled in a second post in the same thread, which presumably Richard feels works well together.

I have today released version 0.29a of 'BBC BASIC for SDL 2.0', the cross-platform programming language for Windows, Linux, MacOS, Raspberry Pi, Android and iOS. The changes in this version are as follows:

The MacOS edition is now 64-bits, in anticipation of Apple dropping support for 32-bit apps. Sadly, but inevitably, speed and compatibility with earlier versions will have suffered somewhat.

IDEs / Compiler
The 'BBCEdit' IDE (desktop editions only) has been updated by its author to be 64-bit compatible.

BASIC Interpreter / Run Time Engine
BBCSDL can now play MP3 files, see Example Programs below.
The built-in 8x8 and 16x16 bitmap character sets have been revised so that characters &80 to &9F are more compatible with their (ANSI) equivalents in BB4W.
An obscure bug in the *SCREENSAVE (*GSAVE) command has been fixed.

The '' library now supports PgUp and PgDn keys in the Listbox control; it also enables the On Screen Keyboard as required when running in Android or iOS.

Example Programs
The programs '' and '' (in the 'games' directory) have been modified to use an MP3 file for their background music, with a considerable saving in file size.

This new version may be downloaded, for all the supported platforms, from the usual location: The GitHub repository has been updated (containing the source code used to build the MacOS, Raspberry Pi, iOS and 64-bit Linux editions, currently).

On Thu, Jan 10, 2019 at 10:57 PM, Richard Russell wrote:

BBCSDL can now play MP3 files

Note that in supporting playing MP3 (and WAV) files I have quite deliberately not provided any built-in commands such as *PLAY to 'make it easy' because that could be very inflexible. Rather, it's necessary to call the relevant APIs directly using SYS: there is example code in '' and '' (the routines could of course be moved into a library if you prefer). Doing it this way allows for options such as playing MP3/WAV data from memory rather than from file, mixing two or more sounds together, looping, using different formats (number of channels, sampling rate etc.) and so on which would be difficult to accommodate in a built-in command. If somebody fancies creating an audio library I would be happy to consider bundling it.