Table of Contents
Project Customization
Project-wide settings are stored in the new project.json
that lives in the root of an SDK project.
{ "title" : "My GameTank Game", "romname" : "game.gtr", "progbanks" : 1, "modules" : [ "PERSIST", "RANDOM", "TEXT", "DRAWQUEUE" ] }
title
The full title of your game. Not actually used for anything yet but stay tuned!
romname
The output filename for the GameTank ROM to compile from this project
progbanks
A number of additional ROM banks to set aside near the top of cartridge memory. The first segment is “PROG0”, additional segments are “PROG1”, “PROG2”, etc.
cc65 recognizes preprocessor directives such as #pragma code-name (“PROG0”)
which will store compiled program data into another segment. Be sure to swap to the correct ROM bank before attempting to access that data or code though!
modules
The modules list defines which of the optional features are enabled and compiled.
If you're not using certain SDK features then why have them take up ROM space? Normally you should be able to fit a lot of content into the 2MB cartridge, but if you're *thiiiis* close to fitting into the banks you're using and don't want to refactor then try removing an unused feature.
PERSIST
API for saving data to the flash chip
RANDOM
Default RNG algorithm
TEXT
Functions for printing strings to the screen
DRAWQUEUE
The interrupt-driven queued drawing system.