I've been putting efforts on GB BASIC for months. The previous prototype release was nothing more than a command line tool that proved the compiler worked. During the last few weeks, I've made good progress pushing this project closer to its goal: being a Fantasy Console that generates GameBoy compatible ROM. I'll show off something new since last release.
Quite a few new features were added to this version, that should make up an alpha release. The latest version is available on itch.io.
Linux port
The alpha version supports both Windows and Linux for the moment.
Editor tabs
In this alpha version, I have finished code, tiles, map and palette (was not shown in the picture) editors. The other audio, font, actor, scene editors are coming soon.
I borrowed a lot of concepts and design language from two of my other released projects: BASIC8 (a Fantasy Console) and Bitty Engine (a Fantasy Console styled Game Engine). You'll get familiar with GB BASIC soon if you have used these two pieces of software or any other fantasy consoles.
Development experience
The idea behind GB BASIC is to bring the fun of programming for an old system back, with well designed and polished UX.
Integrated Environment
Compared to the prototype, the alpha version took a big step forward with a GUI-based environment to offer an integrated flow. You'll be able to get everything done without pushing and popping GB BASIC.
Recent
The first screen shows you your recent projects once you launched it.
Manual
As a feature preview, the reference manual will be also integrated.
Multi-page editors
Most of the editors support multi-page assets, say, organize code in different pages, put objects in different tiles pages, etc.
One-click compile and run
You'll get your program running very soon after one or two clicks, GB BASIC processes code pages and assets in a flash.
Code Editor
Code editor
First of all, the alpha version contains a code editor with syntax highlight.
Tiles Editor
Tiles editor
Tiles asset is the base of other graphical assets, painting tiles is as simple as using "mspaint.exe".
Map Editor
Map editor
With the map editor, you can edit both map data and map attributes. Please note that big map is not supported by defining in code yet, it is for the upcoming scene editor.
Palette Editor
Palette editor
The palette editor is mainly used to preview visuals during developing, but it can also generate BASIC code to set palette for CGB programs.
Emulator
Emulator
GB BASIC includes an emulator to keep you focused.
Fast Iterating
Fast iterating
GB BASIC compiles code and processes assets within a fairly short time.
Exporting ROM
Exporting ROM
The alpha version could generate runnable ROMs already.
Text-based Project Format
Text-based project format
The prototype version could handle plain source code only, this ability was reserved, and GB BASIC can work as a command line tool as well. I have invented a new "rich format" for it to support mixed source code, assets, config, etc. Everything (except for the upcoming font assets) are packed in a single project file, which is text-based and friendly to version control systems.
Using User-Created Assets
Some of the examples have been migrated to use real user-created assets instead of built-in and inline data. Now there are three major ways to define a resource.
Built-in data
First, it loads built-in data in ROM.
REM This is defined at the native side in C,
REM that compiles into a ROM, and referenced by its name.
fill sprite(0, 56) = "Elephant"
Data sequence
Second, it loads data sequence in BASIC code.
REM Read data sequence,
fill sprite(0, 56) = read
data 1, 2, 3, 4, 5, 6...
' or
REM use inline data sequence.
fill sprite(0, 56) = data 1, 2, 3, 4, 5, 6...
Tiles editor
And third, it loads resources from editors.
REM Reference to an asset page.
fill sprite(0, 56) = #0
Importing And Exporting Assets
Importing and exporting assets
Editors would support various importing and exporting methods respectively.
Though the alpha 1 is pretty rough, you could get a first impression of how working with full version would be like. There are three more alpha and two beta versions on the schedule, the overall progress is estimatedly 33% complete.
33% - Overall progress
Running on different devices
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
5% - Alpha 2 progress (WIP):
Implement font, actor, scene editors
Implement asset pipelines to process those real user made assets
0% - Alpha 3 progress (TODO):
Implement an audio tracker and editor
Implement an asset pipeline to process those real user made assets
Fill in the reference manual
0% - Alpha 4 progress (TODO):
Improve the API
Improve the Actor, Controller and Scene 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.
[Home|All articles|Permalink]
I've been putting efforts on GB BASIC for months. The previous prototype release was nothing more than a command line tool that proved the compiler worked. During the last few weeks, I've made good progress pushing this project closer to its goal: being a Fantasy Console that generates GameBoy compatible ROM. I'll show off something new since last release.
Quite a few new features were added to this version, that should make up an alpha release. The latest version is available on itch.io.
The alpha version supports both Windows and Linux for the moment.
In this alpha version, I have finished code, tiles, map and palette (was not shown in the picture) editors. The other audio, font, actor, scene editors are coming soon.
I borrowed a lot of concepts and design language from two of my other released projects: BASIC8 (a Fantasy Console) and Bitty Engine (a Fantasy Console styled Game Engine). You'll get familiar with GB BASIC soon if you have used these two pieces of software or any other fantasy consoles.
The idea behind GB BASIC is to bring the fun of programming for an old system back, with well designed and polished UX.
Integrated Environment
Compared to the prototype, the alpha version took a big step forward with a GUI-based environment to offer an integrated flow. You'll be able to get everything done without pushing and popping GB BASIC.
The first screen shows you your recent projects once you launched it.
As a feature preview, the reference manual will be also integrated.
Most of the editors support multi-page assets, say, organize code in different pages, put objects in different tiles pages, etc.
You'll get your program running very soon after one or two clicks, GB BASIC processes code pages and assets in a flash.
Code Editor
First of all, the alpha version contains a code editor with syntax highlight.
Tiles Editor
Tiles asset is the base of other graphical assets, painting tiles is as simple as using "mspaint.exe".
Map Editor
With the map editor, you can edit both map data and map attributes. Please note that big map is not supported by defining in code yet, it is for the upcoming scene editor.
Palette Editor
The palette editor is mainly used to preview visuals during developing, but it can also generate BASIC code to set palette for CGB programs.
Emulator
GB BASIC includes an emulator to keep you focused.
Fast Iterating
GB BASIC compiles code and processes assets within a fairly short time.
Exporting ROM
The alpha version could generate runnable ROMs already.
Text-based Project Format
The prototype version could handle plain source code only, this ability was reserved, and GB BASIC can work as a command line tool as well. I have invented a new "rich format" for it to support mixed source code, assets, config, etc. Everything (except for the upcoming font assets) are packed in a single project file, which is text-based and friendly to version control systems.
Using User-Created Assets
Some of the examples have been migrated to use real user-created assets instead of built-in and inline data. Now there are three major ways to define a resource.
First, it loads built-in data in ROM.
Second, it loads data sequence in BASIC code.
And third, it loads resources from editors.
Importing And Exporting Assets
Editors would support various importing and exporting methods respectively.
Though the alpha 1 is pretty rough, you could get a first impression of how working with full version would be like. There are three more alpha and two beta versions on the schedule, the overall progress is estimatedly 33% complete.
33% - Overall progress
100% - Prototype progress (DONE):
100% - Alpha 1 progress (DONE):
5% - Alpha 2 progress (WIP):
0% - Alpha 3 progress (TODO):
0% - Alpha 4 progress (TODO):
Actor
,Controller
andScene
modules, etc.0% - Beta 1 progress (TODO):
0% - Beta 2 progress (TODO):
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.
[Home|All articles|Permalink]