# defines where the banks will be loaded into CPU address space MEMORY { # Define CPU memory map for zero page, not saved to ROM ZEROPAGE: start = $00, size = $100, type = rw; RAM: start = $100, size = $6ff, type = rw, fill = no; # INES Cartridge Header, not loaded into CPU memory HEADER: start = $0000, size = $0010, fill = yes; OAMRAM: file="", start = $0200, size = $0100, type = rw; # UxROM (002) bank layout BANK_0: start = $8000, size = $4000, type = ro, fill = yes, fillval = $FF; BANK_1: start = $8000, size = $4000, type = ro, fill = yes, fillval = $FF; BANK_2: start = $8000, size = $4000, type = ro, fill = yes, fillval = $FF; BANK_3: start = $8000, size = $4000, type = ro, fill = yes, fillval = $FF; BANK_4: start = $8000, size = $4000, type = ro, fill = yes, fillval = $FF; BANK_5: start = $8000, size = $4000, type = ro, fill = yes, fillval = $FF; BANK_6: start = $8000, size = $4000, type = ro, fill = yes, fillval = $FF; BANK_7: start = $C000, size = $3C00, type = ro, fill = yes, fillval = $FF; # BANK_7 is actually still $4000 bytes large, but the hardware vectors, and # the NES_FOOTER, which are on BANK7, are counted separately # Hardware Vectors at End of 2nd 8K ROM (NES hard-coded location) DPCM_SAMPLES: start = $FC00, size = $03D0, type = ro, fill = no; NES_FOOTER: start = $FFD0, size = $002A, type = ro, fill = no; VECTORS: start = $FFFA, size = $0006, type = ro, fill = no; } # defines the order of the segments as they are stored in the .nes ROM file SEGMENTS { ZEROPAGE: load = ZEROPAGE, type = zp; RAM: load = RAM, type = bss; HEADER: load = HEADER, type = ro; OAMRAM: load = OAMRAM, type = bss, define=yes, optional=yes; BANK_0: load = BANK_0, type = ro; BANK_1: load = BANK_1, type = ro; BANK_2: load = BANK_2, type = ro; BANK_3: load = BANK_3, type = ro; BANK_4: load = BANK_4, type = ro; BANK_5: load = BANK_5, type = ro; BANK_6: load = BANK_6, type = ro; BANK_7: load = BANK_7, type = ro; DPCM_SAMPLES: load = DPCM_SAMPLES, type = ro; NES_FOOTER: load = NES_FOOTER, type = ro; VECTORS: load = VECTORS, type = ro; }