Repository navigation
BazzBasic 1.5 released #76
EkBass
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
BazzBasic 1.5 released
BazzBasic is a modern, beginner-friendly BASIC interpreter for Windows x64,
with SDL2 graphics and sound built in.
Download: https://github.com/EkBass/BazzBasic/releases
Direct download: https://github.com/EkBass/BazzBasic/releases/download/BazzBasic_15/BazzBasic_win_x64_1.5.zip
Homepage: https://ekbass.github.io/BazzBasic/
Manual: https://ekbass.github.io/BazzBasic/manual/#/
NEW
Gamepad support
Xbox, PlayStation, Switch Pro and most compatible pads, over USB or Bluetooth.
Works in console programs too, no SCREEN needed. Pads can be plugged in
while the program runs.
GAMEPADS() number of connected pads
PADBUTTON(pad, button) TRUE while a button is held
PADAXIS(pad, axis) sticks -1..1, triggers 0..1 (dead zone built in)
PADNAME(pad) controller name
PADRUMBLE pad, power, ms vibration
New constants: PAD_A#, PAD_B#, PAD_X#, PAD_Y#, PAD_UP#, PAD_DOWN#,
PAD_LEFT#, PAD_RIGHT#, PAD_LB#, PAD_RB#, PAD_START#, PAD_BACK# ... and
PAD_LX#, PAD_LY#, PAD_RX#, PAD_RY#, PAD_LT#, PAD_RT#.
A pad that isn't connected simply reads as "nothing pressed", never as an error.
Examples in Examples/GamePad/.
x$ = x$ + PADAXIS(0, PAD_LX#) * SPEED#
IF PADBUTTON(0, PAD_A#) THEN GOSUB [jump]
DISCLAIMER:
BazzBasic version 1.5 has been tested with only one PS4-compatible Bluetooth controller. Therefore, for the time being, I cannot guarantee that GamePad support will work with all different types of controllers.
Got an Xbox, Switch Pro or Elite controller? Run gamepad_tester.bas from the v1.5 examples, press each button once, and post the header line plus anything that lit the wrong row (or didn’t light at all). Elite owners: which physical paddle lights (raw 16)…(raw 19)?
FILELIST(arr$, folder$ [, pattern$])
Lists the files in a folder into an array, sorted, with * and ? wildcards.
ARRKEY(arr$(), i)
Returns the key at position i, so string-keyed arrays can finally be looped
with FOR/NEXT or WHILE/WEND. Keys come back in insertion order.
Numpad operator constants
KEY_NUMPAD_PLUS#, KEY_NUMPAD_MINUS#, KEY_NUMPAD_MUL#, KEY_NUMPAD_DIV#,
KEY_NUMPAD_DOT#. Same on every keyboard layout.
IDE improvements
The old Edit menu (Find/Replace) is now called Search.
CHANGES THAT MAY AFFECT EXISTING PROGRAMS
DEF FN functions are now fully isolated from global arrays.
A function used to be able to read and change global arrays by accident.
Now that gives a clear error. Pass arrays in with ASJSON() and rebuild them
inside with ASARRAY(), as documented.
Arrays created with DIM inside a DEF FN are now local to each call.
Before, they kept their contents between calls and recursion levels shared
one array.
Console INKEY returns letters as uppercase codes, the same as graphics mode.
"a" and "A" both give KEY_A# (65). Compare against KEY_A# or ASC("A").
KEYDOWN follows the key label on the user's keyboard layout, like INKEY.
KEYDOWN(KEY_A#) is now the key marked "A" also on AZERTY and other layouts.
BEEB removed. It was undocumented. Use LOADSOUND and SOUNDONCE instead.
BUG FIXES
{{-KEY_A#-}}.
longer split. SPLIT() also accepts arr$() as its first argument.
constants. Numpad Enter returns the same value as Enter.
WAITKEY(KEY_UP#), WAITKEY(KEY_F1#) etc. work.
OTHER
The outdated VS Code extension was removed; a new one may come later.
Hugging Face: https://huggingface.co/datasets/EkBass/BazzBasic_AI_Guide
By clicking a new link on left panel on manual "Advanced CLI usage" you find
some neat guides for more advanced use of BazzBasic.
See: https://ekbass.github.io/BazzBasic/manual/#/Running_BazzBasic_from_anywhere
SOME NEW EXAMPLES/GAMES:
See cool sniping scope effect:
Source: https://github.com/EkBass/BazzBasic/blob/main/Examples/graphics/sniper_scope.bas
Img: https://ekbass.github.io/BazzBasic/img/sniping.png
Turtle painting via Windows INPUT BOX:
Source: https://github.com/EkBass/BazzBasic/blob/main/Examples/graphics/Turtle_and_Win_input_box.bas
Img: https://ekbass.github.io/BazzBasic/img/turtle.png
A memory game, the way Schrödinger would have made it.
URL: https://ek-bass.itch.io/schrdingers-memory-game
Wonder around 2D maze with your GamePad
Source: https://github.com/EkBass/BazzBasic/blob/main/Examples/GamePad/2D_maze_FOV_demo_console_PAD.bas
Img: https://ekbass.github.io/BazzBasic/img/fov_2d_console.png
A Comanche-style voxel terrain snipped tuned up, runs much smoother
Source: https://github.com/EkBass/BazzBasic/blob/main/Examples/graphics/Voxel_terrain.bas
Img: https://ekbass.github.io/BazzBasic/img/voxel_example.png
Full list of changes: https://github.com/EkBass/BazzBasic/blob/main/changes.md
All reactions