In a nutshell, these frameworks provide an example of how to build up a larger 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 has the benefit of doing away with some bB limitations that people sometimes 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 "temp1=switchbank(#)" in your bB code. This will switch banks and starts running 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.
To run 128k or 256k binaries in emulation, you'll need stella 3.9.3 or later. To run 128k or 256k binaries on real hardware, you'll need an eeprom burner and a board from CPUWIZ, or the forthcoming Harmony Encore.
32kMultikernelFramework.zip 84.73KB 274 downloads
32kSCMultikernelFramework.zip 83.96KB 246 downloads
64kMultikernelFramework.zip 112.64KB 258 downloads
64kSCMultikernelFramework.zip 62.3KB 254 downloads
128kMultikernelFramework.zip 167.59KB 260 downloads
128kSCMultikernelFramework.zip 126.29KB 225 downloads
256kMultikernelFramework.zip 281.7KB 241 downloads
256kSCMultikernelFramework.zip 248.39KB 264 downloads
Special thanks to CPUWIZ, stephena, and batari for laying the groundwork.