Previously on the project:
It's been five months since the last alpha update. During this period of time, GB BASIC got significant progress which constitute as this alpha 3. As of the time of this writing, the latest alpha 3 is available on itch.io.
The alpha version supports both Windows and Linux for the moment.
Compared to the previous alpha, I have added two music and SFX editors in the new version, henceforward all the editors are complete, I have also updated the pipeline and compiler to process and make use of assets made by the new editors; updated the runtime to support new features and make improvements; updated the syntax for intuitive coding experience; added a reference manual; and upgraded the examples.
For next step in the alpha 4, the runtime and syntax will be further more enhanced. That alpha 4 will be the last alpha version before a beta release.
What's New
The following highlight features and modifications were made in the alpha 3.
- Editors
- Added a music editor
- Added an SFX editor
- Added a pre-made SFX library for importing
- Added definition edit to the scene editor
- Added global search to the code editor
- Added a "Ctrl+/" shortcut to toggle code comment
- Added "Alt+PgUp"/"Alt+PgDn" shortcuts to move code lines up and down
- Updated the compiler and pipeline to support sound assets production
- Runtime
- Added an SFX player
- Added an
ASC(...)
statement - Updated the font initialization routine to support customized font for
PRINT
- Syntax
- Added an
ELSE IF
as alias of theELSEIF
- Added an
END IF
as alias of theENDIF
- Added an
END WHILE
as alias of theWEND
- Added an
- Documents
- Added a reference manual
Music Playback and Editor
The music playback feature is supported by the hUGEDriver lib, which parses note sequences in ROM and drives the audio chip to generate sound. There are two views to compose a hUGEDriver compatible song in GB BASIC. The first one is the tracker view that represents four channels at a time, the second one is the piano view that shows one of the four channels on it. As a composer, you can use keyboard and mouse to edit channels, notes, waveforms, etc. It also supports previewing key strokes and a song itself instantly. Like using other editors, you can import and export with external files to simplify music reusing and producing.
SFX Playback and Editor
The SFX playback feature is supported by the sfxplayer lib, which parses sound elements in ROM and drives the audio chip to generate short sounds. You can import existing VGM, WAV, and FxHammer files into GB BASIC as SFX. As a matter of convenience, GB BASIC offers a number of pre-made SFXs that are ready for importing.
Touch
Besides generating GB compatible ROMs, GB BASIC also implements a number of extension features that extends its capability boundary. Imagine that if the GB were invented nowadays, touch screen would be an essential component. GB BASIC makes this dream come true with the TOUCH
statement.
let x = 0
let y = 0
let p = 0
loop:
p = touch x, y
if p then
print "%d, %d", x, y
end if
update
goto loop
It uses particular unused bus address to store and transfer the statuses of touch/mouse events, thus technically it is totally possible to make a real hardware that supports this extension.
Shell Command
With the shell command extension, it tears a small gap between inside and outside an emulator that let BASIC code escape from the emulator delicately.
shell "https://paladin-t.github.io/"
This would be helpful to open external websites, execute external commands with an HTML or native build in future, that would be very interesting, so why not.
Debugging
To simplify inspecting in-game values, GB BASIC offers a specialized format of SHELL
statement that outputs values onto the application window.
Reference Manual
I have finished the first version of the reference manual eventually, which has already covered all the implemented features.
We are getting closer to this project's formal launch. There are only one more alpha and a beta versions on the schedule, the overall progress is estimatedly 67% complete.
67% - Overall progress
100% - Prototype progress (DONE):
- A working parser and a compiler
- A runtime that supports a number of programming interfaces
100% - Alpha 1 progress (DONE):
- A working assets processing pipeline flow
- Code, tiles, map, palette editors
- A built-in emulator
- A ROM exporter
- Migrated examples
- A Linux port
100% - Alpha 2 progress (DONE):
- Implement font, actor, scene editors
- Implement asset pipelines to process those real user made assets
100% - Alpha 3 progress (DONE):
- Implement an audio tracker and editor
- Implement an asset pipeline to process those real user made assets
- Fill in the reference manual
5% - Alpha 4 progress (WIP):
- Improve the syntax
- Improve the API
- Improve the
Actor
,Controller
andScene
modules, etc. - Implement extension features
0% - Beta 1 progress (TODO):
- Improve usability of the editors
- Improve the API and modules
- Add more examples
- Finish the reference manual
- Port the project to other operating systems
0% - Beta 2 progress (TODO):
- Improve usability of the editors
- Improve the API and modules
- Add more customization options
- Add more exporters
More versions (TBD)?
Stick around for future updates if you are interested in GB BASIC, leave a message below if you got an idea or question. You can also support my development by getting my other projects listed on the main page of this site.
Loading content...