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.