I've put together a 32k multikernel framework. In a nutshell, it's an example of how to build up a 32k game out of individual 4k projects.
While this makes it a bit more cumbersome to build a game (I'd only recommend it for people that are very familiar with bB and the build process) it does away with some bB limitations that people often complain about...
- Each bank can have a different instance of the kernel. This means different sprite definitions, different playfields, different kernel compile options.
- There can be multiple banks with title screens. Use them for their intended purpose, game over screens, in-game displays, hidden easter egg screens, scrolling game credits, or whatever.
How the framework works
Each 4k project is built separately, with a custom bB score_graphics.asm file that adds a bankswitch table to the binary. Each project except for the "bank 1" project gets a custom bB 2600basicfooter.asm file that ensures bank 1 is the start-up bank.
When you want to change to another bank, you just issue a "goto bank#_entry" in your bB code. This will switch banks and start with the bB code at the top of the selected bank. It's up to you to decide how to make that work within your game flow.
If you want to make an empty bank/project without a standard kernel, you just need to stick a dummy std_kernel.asm in your project. The framework includes an example of this with the titlescreen held in bank 8. It's also recommended you use a custom default.inc in any bank without a kernel, to remove unused bB routines, e.g. the playfield routines.
Putting it all together
To build the project you need to build each bank individually (as you usually do) and then glue all the binaries together by double-clicking the included "make.bat" file (windows) or typing "make" from the parent directory. (Linux, probably OSX)
The sample bin is also attached here. The score displays the current bank, and pressing the fire button brings you to the next bank.
multikernel.130713.zip 65.2KB 187 downloads
multikernel.bas.bin 32KB 190 downloads