BBC BASIC for SDL 2.0 v0.29a released

Richard Russell

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:

  1. General
    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.

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

  3. 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.

  4. Libraries
    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.

  5. 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).

Richard Russell

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.