Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

BASIC Forum & Tutorials

The tutorials are useful for self-learning and the forum is good for sharing ideas & information · By david.JamIsFun

BazzBasic 1.1 released

A topic by Ek Bass created 9 hours ago Views: 10 Replies: 3
Viewing posts 1 to 3

Download: https://github.com/EkBass/BazzBasic/releases/tag/BazzBasic_1.1

# News and changes

These changes are about the current source code. These are effected once new binary release is published

## Mar 2026

## 22nd Mar 2026

Released as version 1.1

## 22nd Mar 2026

At Rosetta code I got inspired to create pendulum animation.

https://github.com/EkBass/BazzBasic/blob/main/Examples/pendulum_animation.bas

## 21st Mar 2026

BazzBasic-AI_guide.md is a tutorial for modern AI's. With it, AI can easily teach the user how to use BazzBasic.

Just download the file, attach it as project file or via prompt to AI and you are cool to go.  

https://github.com/EkBass/BazzBasic/discussions/26

---

Unfortunately, the GamePad support I planned didn't make it to version 1.1

The reason is that the SDL2 library has been having problems for some time, especially with Bluetooth gamepads.

I didn't want to do something half-hearted, so the gamepad support is now on hold until SDL2 gets its library back in condition.

Instead, I added three other functions that I've had in mind for some time: BASE64ENCODE, BASE64DECODE and SHA256

## 21st Mar 2026

Added JSON support: `ASJSON`, `ASARRAY`, `LOADJSON`, `SAVEJSON`

```vb

DIM data$

data$("name") = "Alice"

data$("score") = 9999

data$("address,city") = "New York"

LET json$ = ASJSON(data$)

' Output: {"name":"Alice","score":9999,"address":{"city":"New York"}}

DIM back$

LET count$ = ASARRAY(back$, json$)

PRINT back$("name")         ' Alice

PRINT back$("address,city") ' New York

SAVEJSON data$, "save.json"

DIM loaded$

LOADJSON loaded$, "save.json"

```

Added `BASE64ENCODE`, `BASE64DECODE` and `SHA256`

```vb

LET encoded$ = BASE64ENCODE("Hello, World!")

PRINT encoded$              ' SGVsbG8sIFdvcmxkIQ==

LET decoded$ = BASE64DECODE(encoded$)

PRINT decoded$              ' Hello, World!

LET hash$ = SHA256("password123")

PRINT hash$                 ' ef92b778... (64-char lowercase hex)

```

---

## 14th Mar 2026

## Sound system fix — parallel audio playback

**Problem:** The old implementation loaded MP3/OGG/FLAC files with `Mix_LoadMUS()` which uses the SDL2_mixer's global Music channel — only one sound at a time.

**Fixes:**

- All sounds are now loaded with `Mix_LoadWAV()` → play on their own Mix_Channels in parallel

- `SDL_INIT_AUDIO` added to `SDL_Init()` call in `Graphics.cs`

- `SoundManager` calls `SDL_Init` + `SDL_InitSubSystem` to ensure audio subsystem even without `SCREEN` command

- `SDL_AUDIODRIVER=directsound` set in `Program.cs` to work around WASAPI issues (Nahimic middleware causes "Invalid Handle" error in WASAPI)

- `PlayOnceWait` gets 50ms delay before polling loop due to DirectSound startup delay

## 7th Mar 2026

Added HTTP support for LOADIMAGE

### LOADIMAGE with url

LOADIMAGE now supports loading via HTTP.

```

Added WAITKEY() function. 

## WAITKEY

Halts the execution until requested key is pressed.

```vb

' Wait just the ENTER key

PRINT "ENTER"

PRINT WAITKEY(KEY_ENTER#) ' output: 13

' Wait any of "a", "b" or "esc" keys

PRINT "A, B or ESC"

PRINT WAITKEY(KEY_A#, KEY_B#, KEY_ESC#) ' output: depends of your choice of key

PRINT "Press any key..." 

LET a$ = WAITKEY()

PRINT a$ ' output: val of key you pressed

```

## 2nd Mar 2026

Added SHELL feature

```vb

' SHELL arg$, timeout$

' Sends a command to the system command interpreter  

' Param *timeout$* is optional. If not given, standard 5000 milliseconds used for timeout.

' with default timeout option

LET a$ = SHELL("dir *.txt")

PRINT a$

' sets timeout to 2 seconds

' 1000ms = 1 second etc.

LET a$ = SHELL("dir *.txt", 2000)

PRINT a$

```

Quick "rerelease" as 1.1b

Download: https://github.com/EkBass/BazzBasic/releases/tag/BazzBasic_1.1b

- I forgot to update version from source. - Now done

- I forgot to update syntax files for Notepad++, VS Code, Geany and built-in IDE - Now done

- Headers "support" not documented - Now done

  

[code lang='BazzBasic']

HTTPGET(url$)                           ' works as before

HTTPGET(url$, headers$)         ' new, optional

HTTPPOST(url$, body$)                       ' works as before

HTTPPOST(url$, body$, headers$)     ' new, optional

[/code]

See OpenAI API example: https://github.com/EkBass/BazzBasic/blob/main/Examples/OpenAI_request.bas for more.

Wow. You are so diligent.

*lol*

Well, I either go 110% and forgot something or I go 0% and do nothing