I am trying to fit my game (https://github.com/Fabrizio-Caruso/CROSS-CHASE) into a Vic 20 +8k.
I only need a few UDG (between 10 and 15) and I want to use the minimum graphics memory.
I am using CC65 (and other devkits for other CPUs since my game is massively multitarget with more than 100 systems supported by the very same game code).
I initialize the graphics by setting $9005 to 0xFF. Maybe I am doing something wrong here... Any idea?
I am trying to have the UDG definitions at $1C00 and only take $200 (512) bytes. Is it a good idea?
The code is split in two areas (one starting at $120D and one starting at $1E00) as described below.
My linker cfg looks like
Code: Select all
...
MEMORY {
ZP: file = "", define = yes, start = $0002, size = $001A;
SCREEN: start = $1000, size = $0200;
LOADADDR: file = %O, start = $11FF, size = $0002;
HEADER: file = %O, start = $1201, size = $000C;
MAIN: file = %O, define = yes, start = $120D, fill = yes, size = $1C00 - $120D - __STACKSIZE__;
DUMMY: file = %O, start = $1C00 - __STACKSIZE__ - 1, fill = yes, size = __STACKSIZE__;
CHARMEM: file = %O, start = $1C00, size = $0200, type = rw, define = yes, fill = yes;
RAM1: file = %O, start = $1E00, size = $2200, type = rw;
}
SEGMENTS {
ZEROPAGE: load = ZP, type = zp;
LOADADDR: load = LOADADDR, type = ro;
EXEHDR: load = HEADER, type = ro;
STARTUP: load = MAIN, type = ro;
LOWCODE: load = MAIN, type = ro, optional = yes;
ONCE: load = MAIN, type = ro, optional = yes;
CODE: load = RAM1, type = ro;
RODATA: load = MAIN, type = ro;
DATA: load = MAIN, type = rw;
INIT: load = RAM1, type = bss;
BSS: load = MAIN, type = bss, define = yes;
UDCCHAR: load = CHARMEM, type = ro, define = yes, optional = no;
CODE2: load = MAIN, type = ro;
}
...
Who could give me a hand on this?
Fabrizio