This game is a Boulder Dash like game for the Commodore VIC-computer. I developped it as an exercice of C programming for old computers.
It does include:
- Not one, not three, but TWO (2) levels
- Colors (multiple !!)
- Sound
- Keyboard gameplay
X,C,VandDkeys to moveRkey to restart a level
- Basic gravity management (rocks and diamonds can fall, don't stay below)
It does not include:
- Crysis like graphics
- Possibility to push rocks
- Multi-screen levels
A Vic-20 with 3 kB RAM expansion (no less, no more)
- Install Visual Code Studio + VS64 extension
- Install LLVM-MOS-SDK - tested with version 22.3.0
- Update
llvmPathsetting from.vscode/c_cpp_properties.jsonas needed - (Optionnal) Install [VICE emulator] (https://vice-emu.sourceforge.io/), and set it's setting as needed. You may want to setup its drive to
Virtual devicewith typeHost file systemand set the host directory to thediskfile in this this repository
This game use a user defined charset with the needed characters for the game. This charset is build using:
resources/gencharset.shscript, which takes all text files (except fortemplate.txt) fromresources/charsdirectory, and convert if to a binary file namedresources/charset.bin. An empty template file is provided, and may be used to create new characters. Files MUST be namedchar-id_anything-you-want.txt(withchar-idbetween 0 and 63).- If you change the charset, you may modify
src/include/graphics.hheader file (CHARSET_SIZEvalue andCharset new characterssection). - The file
resources/charset.binis then copied to thediskdirectory of the repository
You may add new levels using:
resources/genlevels.shscript, which takes all text files fromresources/levelsdirectory, and convert them to a binary file namedresources/level_<number>.bin. Files MUST be namedlevel_<number>.txt.- If you add or remove levels, you may modify
src/include/gameplay.hheader file (MAX_LEVELvalue). - The files
resources/level_<number>.binare then copied to thediskdirectory of the repository
A special resources/levels/title.txt (and resources/title.bin) file is dedicated to the title screen, and is included in the above process.
-
There is no usage of
printfandsprintffunctions as they are too costly (about 3kB added when used with strings). -
The memory map is described below (with 3 kB expansion)
- 0x0401 : Start of user RAM
- 0x1DC8 : Start of user RAM reserved for custom charset
- 0x1DFF : End of user RAM
-
User RAM size is 6655 bytes
-
Max program RAM size is 6599 bytes
-
Custom charset size is 56 bytes (7 characters, 8 bytes each)



