It is currently Thu Dec 13, 2018 3:53 am

All times are UTC - 7 hours





Post new topic Reply to topic  [ 8 posts ] 
Author Message
PostPosted: Tue Nov 13, 2018 7:55 am 
Offline

Joined: Sun Mar 25, 2018 9:02 pm
Posts: 11
Hello forums,

I'm writing a project using the MMC3 mapper. It is my understanding that I could potentially have 32 PRG banks in this mapper, and I desperately need them!

It was my understanding that I would just change the "NES_PRG_BANKS" value to "32". I would then need to assign entries to PRG banks in the "MEMORY" section, the match them up in the "SEGMENTS" section. However, if change the banks value to "32" and I uncomment those lines below, it compiles and gives me a grey screen. I assume it can't find start code because I haven't addressed something correctly.

So as it stands now, it compiles and works okay, I'm just running out of space.

Can you guys tell what I'm misunderstanding?

Code:
SYMBOLS {

   __STACKSIZE__: type = weak, value = $0500; # 5 pages stack

   NES_MAPPER: type = weak, value = 4;          # mapper number
   NES_PRG_BANKS: type = weak, value = 16;          # number of 16K PRG banks, change to 2 for NROM256
   NES_CHR_BANKS: type = weak, value = 16;          # number of 8K CHR banks
   NES_MIRRORING: type = weak, value = 1;          # 0 horizontal, 1 vertical, 8 four screen
}

MEMORY {

    ZP:        start = $0000, size = $0100, type = rw, define = yes;
    HEADER:    start = $0000, size = $0010, file = %O ,fill = yes;
    PRG1:      start = $8000, size = $2000, file = %O ,fill = yes;      #
    PRG2:      start = $8000, size = $2000, file = %O ,fill = yes;      # level
    PRG3:      start = $8000, size = $2000, file = %O ,fill = yes;      # level
    PRG4:      start = $8000, size = $2000, file = %O, fill = yes;      # level
    PRG5:      start = $8000, size = $2000, file = %O, fill = yes;      # level
    PRG6:      start = $8000, size = $2000, file = %O, fill = yes;      # level

    PRG7:      start = $8000, size = $2000, file = %O, fill = yes;      # level
    PRG8:      start = $8000, size = $2000, file = %O, fill = yes;      # level
    PRG9:      start = $8000, size = $2000, file = %O, fill = yes;      # level

    PRG10:     start = $A000, size = $2000, file = %O, fill = yes;     # consts
    PRG11:     start = $A000, size = $2000, file = %O, fill = yes;     # story text   
    PRG12:     start = $A000, size = $2000, file = %O, fill = yes;     # item - nmi metaspr lvl1-3
    PRG13:     start = $A000, size = $2000, file = %O, fill = yes;     # nmi metaspr lvl 4-6
    PRG14:     start = $A000, size = $2000, file = %O, fill = yes;     # player metaspr,

    PRG15:     start = $8000, size = $2000, file = %O, fill = yes;     # music
    PRG16:     start = $8000, size = $2000, file = %O, fill = yes;     # music
    PRG17:     start = $8000, size = $2000, file = %O, fill = yes;     
    PRG18:     start = $8000, size = $2000, file = %O, fill = yes;     
    PRG19:     start = $8000, size = $2000, file = %O, fill = yes;     
    PRG20:     start = $8000, size = $2000, file = %O, fill = yes;     
    PRG21:     start = $8000, size = $2000, file = %O, fill = yes;     
    PRG22:     start = $8000, size = $2000, file = %O, fill = yes;     
    PRG23:     start = $8000, size = $2000, file = %O, fill = yes;     
    PRG24:     start = $8000, size = $2000, file = %O, fill = yes;     
    PRG25:     start = $8000, size = $2000, file = %O, fill = yes;     
    PRG26:     start = $8000, size = $2000, file = %O, fill = yes;     
    PRG27:     start = $8000, size = $2000, file = %O, fill = yes;     
    PRG28:     start = $8000, size = $2000, file = %O, fill = yes;     
    PRG29:     start = $8000, size = $2000, file = %O, fill = yes;     
    PRG30:     start = $8000, size = $2000, file = %O, fill = yes;     
#    PRG31:     start = $8000, size = $2000, file = %O, fill = yes;     



#    PRG:       start = $c000, size = $3ef5, file = %O ,fill = yes, define = yes;  # main.c
#    ENDPRG:    start = $fef5, size = $cb, file = %O, fill = yes;

    PRG:       start = $c000, size = $3ee0, file = %O ,fill = yes, define = yes;  # main.c
    ENDPRG:    start = $fee0, size = $e0, file = %O, fill = yes;


    DMC:       start = $ffc0, size = $003a, file = %O, fill = yes;
   
    VECTORS:      start = $fffa, size = $0006, file = %O, fill = yes;


    CHR0:          start = $0000, size = $1000, file = %O, fill = yes;      # level 1, offset: 0 kb, size: 4 kb
    CHR1:          start = $0000, size = $1000, file = %O, fill = yes;      # level 1d, offset: 4 kb, size: 4 kb
    CHR2:          start = $0000, size = $1000, file = %O, fill = yes;      # level 2a, offset: 8 kb, size: 4 kb
    CHR3:          start = $0000, size = $1000, file = %O, fill = yes;      # level 3, offset: 12 kb, size: 4 kb
    CHR4:          start = $0000, size = $1000, file = %O, fill = yes;      # level 4, offset: 16 kb, size: 4 kb
    CHR5:          start = $0000, size = $1000, file = %O, fill = yes;      # level 5, offset: 20 kb, size: 4 kb
    CHR6:          start = $0000, size = $1000, file = %O, fill = yes;      # level 6, offset: 24 kb, size: 4 kb
    CHR7:          start = $0000, size = $0800, file = %O, fill = yes;       # player sprite male, offset: 28 kb, size: 2 kb
    CHR8:          start = $0000, size = $0800, file = %O, fill = yes;      # player sprite female, offset: 30 kb, size: 2 kb
    CHR9:          start = $0000, size = $1000, file = %O, fill = yes;      # title, offset: 32 kb, size: 4 kb
    CHR10:          start = $0000, size = $800, file = %O, fill = yes;      # enemies_1, offset: 36 kb, size: 2 kb
   
    CHR11:          start = $0000, size = $400, file = %O, fill = yes;      # story font, offset: 38 kb, size 1 kb

    CHR12:          start = $0000, size = $0c00, file = %O, fill = yes;      # story evilcart, offset: 39kb, size 3 kb   
    CHR13:          start = $0000, size = $0c00, file = %O, fill = yes;     # story booth, offset: 42kb, size 3kb
    CHR14:          start = $0000, size = $0c00, file = %O, fill = yes;     # story tv, offset: 45kb, size 3kb
    CHR15:          start = $0000, size = $0c00, file = %O, fill = yes;     # story evilend, offset: 48kb, size 3kb
    CHR16:          start = $0000, size = $0c00, file = %O, fill = yes;     # story crazy  , offset 54 kb, size 3kb
    CHR17:          start = $0000, size = $0c00, file = %O, fill = yes;     # story kotr  , offset 57 kb, size 3kb
    CHR18:          start = $0000, size = $0c00, file = %O, fill = yes;     # story   , offset 60 kb, size 3kb
    CHR19:          start = $0000, size = $0c00, file = %O, fill = yes;     # story   , offset 63 kb, size 3kb
    CHR20:          start = $0000, size = $0c00, file = %O, fill = yes;     # story   , offset 66 kb, size 3kb
    CHR21:          start = $0000, size = $0c00, file = %O, fill = yes;     # story   , offset 69 kb, size 3kb
    CHR22:          start = $0000, size = $0c00, file = %O, fill = yes;     # story   , offset 72 kb, size 3kb
    CHR23:          start = $0000, size = $0c00, file = %O, fill = yes;     # story   , offset 75 kb, size 3kb
    CHR24:          start = $0000, size = $0c00, file = %O, fill = yes;     # story   , offset 78 kb, size 3kb
    CHR25:          start = $0000, size = $0c00, file = %O, fill = yes;     # story   , offset 81 kb, size 3kb
    CHR26:          start = $0000, size = $0c00, file = %O, fill = yes;     # story   , offset 84 kb, size 3kb
    CHR27:          start = $0000, size = $0c00, file = %O, fill = yes;     # story   , offset 87 kb, size 3kb
    CHR28:          start = $0000, size = $0400, file = %O, fill = yes;     # padding
    CHR29:          start = $0000, size = $1000, file = %O, fill = yes;     # level2b, offset 90 kb, size 4kb

    CHR30:         start = $0000, size = $0400, file = %O, fill = yes;    # items, offset 91kb, size 1kb
    CHR31:         start = $0000, size = $0400, file = %O, fill = yes;    # l1enemies, offset 92kb, size 1kb
    CHR32:         start = $0000, size = $0400, file = %O, fill = yes;    # l2enemies, offset 93kb, size 1kb
    CHR33:         start = $0000, size = $0400, file = %O, fill = yes;    # l3enemies, offset 94kb, size 1kb
    CHR34:         start = $0000, size = $0400, file = %O, fill = yes;    # l4enemies, offset 95kb, size 1kb
    CHR35:         start = $0000, size = $0400, file = %O, fill = yes;    # l5enemies, offset 96kb, size 1kb
    CHR36:         start = $0000, size = $0400, file = %O, fill = yes;    # l6enemies, offset 97kb, size 1kb


    CHR37:         start = $0000, size = $0400, file = %O, fill = yes;    # l1boss, offset 98kb, size 1kb

    CHR38:         start = $0000, size = $0400, file = %O, fill = yes;    # l2boss, offset 99kb, size 1kb
    CHR39:         start = $0000, size = $0400, file = %O, fill = yes;    # l3boss, offset 100kb, size 1kb
    CHR40:         start = $0000, size = $0400, file = %O, fill = yes;    # l4boss, offset 101kb, size 1kb
    CHR41:         start = $0000, size = $0400, file = %O, fill = yes;    # l5boss, offset 102kb, size 1kb
    CHR42:         start = $0000, size = $0400, file = %O, fill = yes;    # l6boss, offset 103kb, size 1kb
    CHR43:         start = $0000, size = $0400, file = %O, fill = yes;    # Flames/subweapons, offset 104kb, size 1kb
    CHR44:           start = $0000, size = $1000, file = %O, fill = yes;       # Gameover Screen, offset: 105 kb, size: 4 kb
    CHR45:           start = $0000, size = $1000, file = %O, fill = yes;       # Status Screen, offset: 109 kb, size: 4 kb





#    CHRFONT:       start = $0000, size = $1000, fil^e = %O, fill = yes;
#    CHRBG1:       start = $0000, size = $800, file = %O, fill = yes;
#    CHRBG2:       start = $0000, size = $2000, file = %O, fill = yes;
#    CHRPAD:      start = $0000, size = $800, file = %O, fill = yes;   

    RAM:      start = $0300, size = $0500, define = yes;

     # Use this definition instead if you going to use extra 8K RAM
     # RAM: start = $6000, size = $2000, define = yes;
}

SEGMENTS {

    HEADER:   load = HEADER,         type = ro;
    STARTUP:  load = ENDPRG,            type = ro,  define = yes;
    LOWCODE:  load = PRG,            type = ro,                optional = yes;
    INIT:     load = PRG,            type = ro,  define = yes, optional = yes;
    CODE:     load = PRG,            type = ro,  define = yes;
    RODATA:   load = PRG,            type = ro,  define = yes;
    DATA:     load = PRG, run = RAM, type = rw,  define = yes;
    PRG1:     load = PRG1,           type = ro;
    PRG2:     load = PRG2,           type = ro;
    PRG3:     load = PRG3,         type = ro;
    PRG4:     load = PRG4,           type = ro;
    PRG5:     load = PRG5,           type = ro;
    PRG6:     load = PRG6,           type = ro;

    PRG7:     load = PRG7,           type = ro;
    PRG8:     load = PRG8,           type = ro;
    PRG9:     load = PRG9,           type = ro;
    PRG10:    load = PRG10,          type = ro;
    PRG11:    load = PRG11,          type = ro;
    PRG12:    load = PRG12,          type = ro;
    PRG13:    load = PRG13,          type = ro;
    PRG14:    load = PRG14,          type = ro;

    PRG15:    load = PRG15,          type = ro;
   
    PRG16:    load = PRG16,          type = ro;
    PRG17:    load = PRG17,          type = ro;
    PRG18:    load = PRG18,          type = ro;
#    PRG19:    load = PRG19,          type = ro;
#    PRG20:    load = PRG20,          type = ro;
#    PRG21:    load = PRG21,          type = ro;
#    PRG22:    load = PRG22,          type = ro;
#    PRG23:    load = PRG23,          type = ro;
#    PRG24:    load = PRG24,          type = ro;
#    PRG25:    load = PRG25,          type = ro;
#    PRG26:    load = PRG26,          type = ro;
#    PRG27:    load = PRG27,          type = ro;
#    PRG28:    load = PRG28,          type = ro;
#    PRG29:    load = PRG29,          type = ro;
#    PRG30:    load = PRG30,          type = ro;


#    PRG31:    load = PRG31,          type = ro;  # seems like extra


    VECTORS:  load = VECTORS,        type = rw;
#    SAMPLES:  load = DMC,            type = rw;


    CHR0:       load = CHR0,          type = rw;
    CHR1:       load = CHR1,          type = rw;
    CHR2:       load = CHR2,          type = rw;
    CHR3:       load = CHR3,          type = rw;
    CHR4:       load = CHR4,          type = rw;
    CHR5:       load = CHR5,          type = rw;
    CHR6:       load = CHR6,          type = rw;
    CHR7:       load = CHR7,          type = rw;
    CHR8:       load = CHR8,          type = rw;
    CHR9:       load = CHR9,          type = rw;
    CHR10:    load = CHR10,          type = rw;
    CHR11:    load = CHR11,          type = rw;

    CHR12:    load = CHR12,          type = rw;
    CHR13:    load = CHR13,          type = rw;
    CHR14:    load = CHR14,          type = rw;
    CHR15:    load = CHR15,          type = rw;
    CHR16:    load = CHR16,          type = rw;
    CHR17:    load = CHR17,          type = rw;
    CHR18:    load = CHR18,          type = rw;
    CHR19:    load = CHR19,          type = rw;
    CHR20:    load = CHR20,          type = rw;
    CHR21:    load = CHR21,          type = rw;
    CHR22:    load = CHR22,          type = rw;
    CHR23:    load = CHR23,          type = rw;
    CHR24:    load = CHR24,          type = rw;
    CHR25:    load = CHR25,          type = rw;
    CHR26:    load = CHR26,          type = rw;
    CHR27:    load = CHR27,          type = rw;
    CHR28:    load = CHR28,          type = rw;
    CHR29:    load = CHR29,          type = rw;


    CHR30:    load = CHR30,          type = rw;
    CHR31:    load = CHR31,          type = rw;
    CHR32:    load = CHR32,          type = rw;
    CHR33:    load = CHR33,          type = rw;
    CHR34:    load = CHR34,          type = rw;
    CHR35:    load = CHR35,          type = rw;
    CHR36:    load = CHR36,          type = rw;
    CHR37:    load = CHR37,          type = rw;
    CHR38:    load = CHR38,          type = rw;
    CHR39:    load = CHR39,          type = rw;
    CHR40:    load = CHR40,          type = rw;
    CHR41:    load = CHR41,          type = rw;
    CHR42:    load = CHR42,          type = rw;
    CHR43:    load = CHR43,          type = rw;
    CHR44:    load = CHR44,          type = rw;
    CHR45:    load = CHR45,          type = rw;

#    CHRFONT:  load = CHRFONT,        type = rw;
#    CHRBG1:  load = CHRBG1,          type = rw;
#    CHRBG2:  load = CHRBG2,          type = rw;
#    CHRPAD:  load = CHRPAD,          type = rw;


    BSS:      load = RAM,            type = bss, define = yes;
    HEAP:     load = RAM,            type = bss, optional = yes;
    ZEROPAGE: load = ZP,             type = zp;
    ONCE:     load = PRG,            type = ro, optional = yes;
}

FEATURES {

    CONDES: segment = INIT,
       type = constructor,
       label = __CONSTRUCTOR_TABLE__,
       count = __CONSTRUCTOR_COUNT__;
    CONDES: segment = RODATA,
       type = destructor,
       label = __DESTRUCTOR_TABLE__,
       count = __DESTRUCTOR_COUNT__;
    CONDES: type = interruptor,
       segment = RODATA,
       label = __INTERRUPTOR_TABLE__,
       count = __INTERRUPTOR_COUNT__;
}


Top
 Profile  
 
PostPosted: Tue Nov 13, 2018 8:00 am 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 20867
Location: NE Indiana, USA (NTSC)
An MMC3 PRG ROM bank is 8192 bytes, or 8 KiB.
An iNES PRG ROM "bank" is 16384 bytes, or 16 KiB, or two MMC3 banks.
This means that if you have 524288 bytes of PRG ROM, or 512 KiB, or 32 iNES "banks", your linker script needs to allocate 64 memory areas, not just 32.


Top
 Profile  
 
PostPosted: Tue Nov 13, 2018 9:22 am 
Offline

Joined: Sun Mar 25, 2018 9:02 pm
Posts: 11
Oh! Okay, so have my PRG's defined up to 30 working smoothly. Thanks very much!


So though, if I change

Code:
 NES_PRG_BANKS: type = weak, value = 16;          # number of 16K PRG banks, change to 2 for NROM256


To anything >16

Code:
 NES_PRG_BANKS: type = weak, value = 32;          # number of 16K PRG banks, change to 2 for NROM256


I just compile to grey still, should I not be modifying that symbol?


Top
 Profile  
 
PostPosted: Tue Nov 13, 2018 9:28 am 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 20867
Location: NE Indiana, USA (NTSC)
When you set NES_PRG_BANKS to 32, what does your MEMORY block look like? If you increase NES_PRG_BANKS to 32 without making the corresponding change to MEMORY, your ROM image will not be valid, and the emulator is likely to produce a gray screen for this invalid ROM image.


Top
 Profile  
 
PostPosted: Tue Nov 13, 2018 10:27 am 
Offline

Joined: Sun Mar 25, 2018 9:02 pm
Posts: 11
Here's that memory section,

[spoiler]
Code:
MEMORY {

    ZP:        start = $0000, size = $0100, type = rw, define = yes;
    HEADER:    start = $0000, size = $0010, file = %O ,fill = yes;
    PRG1:      start = $8000, size = $2000, file = %O ,fill = yes;      #
    PRG2:      start = $8000, size = $2000, file = %O ,fill = yes;      # level
    PRG3:      start = $8000, size = $2000, file = %O ,fill = yes;      # level
    PRG4:      start = $8000, size = $2000, file = %O, fill = yes;      # level
    PRG5:      start = $8000, size = $2000, file = %O, fill = yes;      # level
    PRG6:      start = $8000, size = $2000, file = %O, fill = yes;      # level

    PRG7:      start = $8000, size = $2000, file = %O, fill = yes;      # level
    PRG8:      start = $8000, size = $2000, file = %O, fill = yes;      # level
    PRG9:      start = $8000, size = $2000, file = %O, fill = yes;      # level

    PRG10:     start = $A000, size = $2000, file = %O, fill = yes;     # consts
    PRG11:     start = $A000, size = $2000, file = %O, fill = yes;     # story text   
    PRG12:     start = $A000, size = $2000, file = %O, fill = yes;     # item - nmi metaspr lvl1-3
    PRG13:     start = $A000, size = $2000, file = %O, fill = yes;     # nmi metaspr lvl 4-6
    PRG14:     start = $A000, size = $2000, file = %O, fill = yes;     # player metaspr,

    PRG15:     start = $8000, size = $2000, file = %O, fill = yes;     # music
    PRG16:     start = $8000, size = $2000, file = %O, fill = yes;     # music
    PRG17:     start = $8000, size = $2000, file = %O, fill = yes;     
    PRG18:     start = $8000, size = $2000, file = %O, fill = yes;     
    PRG19:     start = $8000, size = $2000, file = %O, fill = yes;     
    PRG20:     start = $8000, size = $2000, file = %O, fill = yes;     
    PRG21:     start = $8000, size = $2000, file = %O, fill = yes;     
    PRG22:     start = $8000, size = $2000, file = %O, fill = yes;     
    PRG23:     start = $8000, size = $2000, file = %O, fill = yes;     
    PRG24:     start = $8000, size = $2000, file = %O, fill = yes;     
    PRG25:     start = $8000, size = $2000, file = %O, fill = yes;     
    PRG26:     start = $8000, size = $2000, file = %O, fill = yes;     
    PRG27:     start = $8000, size = $2000, file = %O, fill = yes;     
    PRG28:     start = $8000, size = $2000, file = %O, fill = yes;     
    PRG29:     start = $8000, size = $2000, file = %O, fill = yes;     
    PRG30:     start = $8000, size = $2000, file = %O, fill = yes;     
    PRG31:     start = $8000, size = $2000, file = %O, fill = yes;  #Weird compile if used
    PRG32:     start = $8000, size = $2000, file = %O, fill = yes;
    PRG33:     start = $8000, size = $2000, file = %O, fill = yes;
    PRG34:     start = $8000, size = $2000, file = %O, fill = yes;
    PRG35:     start = $8000, size = $2000, file = %O, fill = yes;
    PRG36:     start = $8000, size = $2000, file = %O, fill = yes;
    PRG37:     start = $8000, size = $2000, file = %O, fill = yes;
    PRG38:     start = $8000, size = $2000, file = %O, fill = yes;
    PRG39:     start = $8000, size = $2000, file = %O, fill = yes;
    PRG40:     start = $8000, size = $2000, file = %O, fill = yes;
    PRG41:     start = $8000, size = $2000, file = %O, fill = yes; 
    PRG42:     start = $8000, size = $2000, file = %O, fill = yes;
    PRG43:     start = $8000, size = $2000, file = %O, fill = yes;
    PRG44:     start = $8000, size = $2000, file = %O, fill = yes;
    PRG45:     start = $8000, size = $2000, file = %O, fill = yes;
    PRG46:     start = $8000, size = $2000, file = %O, fill = yes;
    PRG47:     start = $8000, size = $2000, file = %O, fill = yes;
    PRG48:     start = $8000, size = $2000, file = %O, fill = yes;
    PRG49:     start = $8000, size = $2000, file = %O, fill = yes;
    PRG50:     start = $8000, size = $2000, file = %O, fill = yes;
    PRG51:     start = $8000, size = $2000, file = %O, fill = yes; 
    PRG52:     start = $8000, size = $2000, file = %O, fill = yes;
    PRG53:     start = $8000, size = $2000, file = %O, fill = yes;
    PRG54:     start = $8000, size = $2000, file = %O, fill = yes;
    PRG55:     start = $8000, size = $2000, file = %O, fill = yes;
    PRG56:     start = $8000, size = $2000, file = %O, fill = yes;
    PRG57:     start = $8000, size = $2000, file = %O, fill = yes;
    PRG58:     start = $8000, size = $2000, file = %O, fill = yes;
    PRG59:     start = $8000, size = $2000, file = %O, fill = yes;
    PRG60:     start = $8000, size = $2000, file = %O, fill = yes;     
    PRG61:     start = $8000, size = $2000, file = %O, fill = yes;     
    PRG62:     start = $8000, size = $2000, file = %O, fill = yes;     
    PRG63:     start = $8000, size = $2000, file = %O, fill = yes;     
   
#    PRG:       start = $c000, size = $3ef5, file = %O ,fill = yes, define = yes;  # main.c
#    ENDPRG:    start = $fef5, size = $cb, file = %O, fill = yes;

    PRG:       start = $c000, size = $3ee0, file = %O ,fill = yes, define = yes;  # main.c
    ENDPRG:    start = $fee0, size = $e0, file = %O, fill = yes;


    DMC:       start = $ffc0, size = $003a, file = %O, fill = yes;
   
    VECTORS:      start = $fffa, size = $0006, file = %O, fill = yes;


    CHR0:          start = $0000, size = $1000, file = %O, fill = yes;      # level 1, offset: 0 kb, size: 4 kb
    CHR1:          start = $0000, size = $1000, file = %O, fill = yes;      # level 1d, offset: 4 kb, size: 4 kb
    CHR2:          start = $0000, size = $1000, file = %O, fill = yes;      # level 2a, offset: 8 kb, size: 4 kb
    CHR3:          start = $0000, size = $1000, file = %O, fill = yes;      # level 3, offset: 12 kb, size: 4 kb
    CHR4:          start = $0000, size = $1000, file = %O, fill = yes;      # level 4, offset: 16 kb, size: 4 kb
    CHR5:          start = $0000, size = $1000, file = %O, fill = yes;      # level 5, offset: 20 kb, size: 4 kb
    CHR6:          start = $0000, size = $1000, file = %O, fill = yes;      # level 6, offset: 24 kb, size: 4 kb
    CHR7:          start = $0000, size = $0800, file = %O, fill = yes;       # player sprite male, offset: 28 kb, size: 2 kb
    CHR8:          start = $0000, size = $0800, file = %O, fill = yes;      # player sprite female, offset: 30 kb, size: 2 kb
    CHR9:          start = $0000, size = $1000, file = %O, fill = yes;      # title, offset: 32 kb, size: 4 kb
    CHR10:          start = $0000, size = $800, file = %O, fill = yes;      # enemies_1, offset: 36 kb, size: 2 kb
   
    CHR11:          start = $0000, size = $400, file = %O, fill = yes;      # story font, offset: 38 kb, size 1 kb

    CHR12:          start = $0000, size = $0c00, file = %O, fill = yes;      # story evilcart, offset: 39kb, size 3 kb   
    CHR13:          start = $0000, size = $0c00, file = %O, fill = yes;     # story booth, offset: 42kb, size 3kb
    CHR14:          start = $0000, size = $0c00, file = %O, fill = yes;     # story tv, offset: 45kb, size 3kb
    CHR15:          start = $0000, size = $0c00, file = %O, fill = yes;     # story evilend, offset: 48kb, size 3kb
    CHR16:          start = $0000, size = $0c00, file = %O, fill = yes;     # story crazy  , offset 54 kb, size 3kb
    CHR17:          start = $0000, size = $0c00, file = %O, fill = yes;     # story kotr  , offset 57 kb, size 3kb
    CHR18:          start = $0000, size = $0c00, file = %O, fill = yes;     # story   , offset 60 kb, size 3kb
    CHR19:          start = $0000, size = $0c00, file = %O, fill = yes;     # story   , offset 63 kb, size 3kb
    CHR20:          start = $0000, size = $0c00, file = %O, fill = yes;     # story   , offset 66 kb, size 3kb
    CHR21:          start = $0000, size = $0c00, file = %O, fill = yes;     # story   , offset 69 kb, size 3kb
    CHR22:          start = $0000, size = $0c00, file = %O, fill = yes;     # story   , offset 72 kb, size 3kb
    CHR23:          start = $0000, size = $0c00, file = %O, fill = yes;     # story   , offset 75 kb, size 3kb
    CHR24:          start = $0000, size = $0c00, file = %O, fill = yes;     # story   , offset 78 kb, size 3kb
    CHR25:          start = $0000, size = $0c00, file = %O, fill = yes;     # story   , offset 81 kb, size 3kb
    CHR26:          start = $0000, size = $0c00, file = %O, fill = yes;     # story   , offset 84 kb, size 3kb
    CHR27:          start = $0000, size = $0c00, file = %O, fill = yes;     # story   , offset 87 kb, size 3kb
    CHR28:          start = $0000, size = $0400, file = %O, fill = yes;     # padding
    CHR29:          start = $0000, size = $1000, file = %O, fill = yes;     # level2b, offset 90 kb, size 4kb

    CHR30:         start = $0000, size = $0400, file = %O, fill = yes;    # items, offset 91kb, size 1kb
    CHR31:         start = $0000, size = $0400, file = %O, fill = yes;    # l1enemies, offset 92kb, size 1kb
    CHR32:         start = $0000, size = $0400, file = %O, fill = yes;    # l2enemies, offset 93kb, size 1kb
    CHR33:         start = $0000, size = $0400, file = %O, fill = yes;    # l3enemies, offset 94kb, size 1kb
    CHR34:         start = $0000, size = $0400, file = %O, fill = yes;    # l4enemies, offset 95kb, size 1kb
    CHR35:         start = $0000, size = $0400, file = %O, fill = yes;    # l5enemies, offset 96kb, size 1kb
    CHR36:         start = $0000, size = $0400, file = %O, fill = yes;    # l6enemies, offset 97kb, size 1kb


    CHR37:         start = $0000, size = $0400, file = %O, fill = yes;    # l1boss, offset 98kb, size 1kb

    CHR38:         start = $0000, size = $0400, file = %O, fill = yes;    # l2boss, offset 99kb, size 1kb
    CHR39:         start = $0000, size = $0400, file = %O, fill = yes;    # l3boss, offset 100kb, size 1kb
    CHR40:         start = $0000, size = $0400, file = %O, fill = yes;    # l4boss, offset 101kb, size 1kb
    CHR41:         start = $0000, size = $0400, file = %O, fill = yes;    # l5boss, offset 102kb, size 1kb
    CHR42:         start = $0000, size = $0400, file = %O, fill = yes;    # l6boss, offset 103kb, size 1kb
    CHR43:         start = $0000, size = $0400, file = %O, fill = yes;    # Flames/subweapons, offset 104kb, size 1kb
    CHR44:           start = $0000, size = $1000, file = %O, fill = yes;       # Gameover Screen, offset: 105 kb, size: 4 kb
    CHR45:           start = $0000, size = $1000, file = %O, fill = yes;       # Status Screen, offset: 109 kb, size: 4 kb





#    CHRFONT:       start = $0000, size = $1000, fil^e = %O, fill = yes;
#    CHRBG1:       start = $0000, size = $800, file = %O, fill = yes;
#    CHRBG2:       start = $0000, size = $2000, file = %O, fill = yes;
#    CHRPAD:      start = $0000, size = $800, file = %O, fill = yes;   

    RAM:      start = $0300, size = $0500, define = yes;

     # Use this definition instead if you going to use extra 8K RAM
     # RAM: start = $6000, size = $2000, define = yes;
}
[/spoiler]

Here's a NES-SC report, looks like I have broken something after PRG16?

https://photos.google.com/share/AF1QipM ... JPX1lYeFV3


Top
 Profile  
 
PostPosted: Sun Nov 18, 2018 2:43 am 
Offline
User avatar

Joined: Mon Jan 03, 2005 10:36 am
Posts: 3141
Location: Tampere, Finland
theinfamousmrmeow wrote:
Code:
    PRG:       start = $c000, size = $3ee0, file = %O ,fill = yes, define = yes;  # main.c


Why is this so large?

_________________
Download STREEMERZ for NES from fauxgame.com! — Some other stuff I've done: fo.aspekt.fi


Top
 Profile  
 
PostPosted: Sun Nov 18, 2018 6:03 am 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 20867
Location: NE Indiana, USA (NTSC)
It appears to cover the last 2 PRG ROM banks (except the last 288 bytes), for use when the P bit of $8000 is clear (0). This leaves room for ENDPRG which is presumably init code.


Top
 Profile  
 
PostPosted: Fri Nov 23, 2018 10:33 pm 
Offline
User avatar

Joined: Mon Jan 03, 2005 10:36 am
Posts: 3141
Location: Tampere, Finland
tepples wrote:
It appears to cover the last 2 PRG ROM banks (except the last 288 bytes), for use when the P bit of $8000 is clear (0). This leaves room for ENDPRG which is presumably init code.

(63*0x2000 + 0x3ee0 + 0xe0 + 0x3a + 0x6) bytes = 520 kilobytes. Probably the size should be $1ee0.

_________________
Download STREEMERZ for NES from fauxgame.com! — Some other stuff I've done: fo.aspekt.fi


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 8 posts ] 

All times are UTC - 7 hours


Who is online

Users browsing this forum: Duke Owlington and 5 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group