Alright, I created the nes.cfg. I used the default one from the compiler as the basis and rainwarrior's from this thread to correct the values.
I removed all the stuff that didn't have an influence on the output file.
Stuff like file = %O, fill = yes, define = yes. Or type = ro and type = rw in the MEMORY section, since these values are set in SEGMENTS anyway.
Curiously, fill = yes was necessary for HEADER. But whether it was set or not made no difference for PRG_ROM.
So, can you please tell me if I've got everything or if I'm missing something?
For example, stuff that I omitted, but that's still important because it will make a difference later when my program is a bit bigger.
Also, I'm going to program some stuff of my game in C. So, if there's something necessary for that, please tell me as well.
My game is supposed to be a standard-sized mapper 0 program with non-switchable pattern tables. So, whatever is only necessary for games with another mapper, you don't need to list it.
I removed all the stuff that didn't have an influence on the output file.
Stuff like file = %O, fill = yes, define = yes. Or type = ro and type = rw in the MEMORY section, since these values are set in SEGMENTS anyway.
Curiously, fill = yes was necessary for HEADER. But whether it was set or not made no difference for PRG_ROM.
So, can you please tell me if I've got everything or if I'm missing something?
For example, stuff that I omitted, but that's still important because it will make a difference later when my program is a bit bigger.
Also, I'm going to program some stuff of my game in C. So, if there's something necessary for that, please tell me as well.
My game is supposed to be a standard-sized mapper 0 program with non-switchable pattern tables. So, whatever is only necessary for games with another mapper, you don't need to list it.
Code:
MEMORY
{
HEADER: start = $0000, size = $0010, fill = yes;
PRG_ROM: start = $8000, size = $8000;
CHR_ROM: start = $0000, size = $2000;
ZP: start = $0000, size = $0100;
RAM: start = $0300, size = $0500;
}
SEGMENTS
{
HEADER: load = HEADER, type = ro;
CODE: load = PRG_ROM, type = ro;
RODATA: load = PRG_ROM, type = ro;
CHARS: load = CHR_ROM, type = ro;
VECTORS: load = PRG_ROM, type = ro, start = $FFFA;
ZEROPAGE: load = ZP, type = zp;
BSS: load = RAM, type = bss;
}
{
HEADER: start = $0000, size = $0010, fill = yes;
PRG_ROM: start = $8000, size = $8000;
CHR_ROM: start = $0000, size = $2000;
ZP: start = $0000, size = $0100;
RAM: start = $0300, size = $0500;
}
SEGMENTS
{
HEADER: load = HEADER, type = ro;
CODE: load = PRG_ROM, type = ro;
RODATA: load = PRG_ROM, type = ro;
CHARS: load = CHR_ROM, type = ro;
VECTORS: load = PRG_ROM, type = ro, start = $FFFA;
ZEROPAGE: load = ZP, type = zp;
BSS: load = RAM, type = bss;
}