Quantcast
Channel: nesdev.org
Viewing all articles
Browse latest Browse all 746

MMC3 ca65 compilable startup ! 256kb cart for new projects ready ! switchable at c000 , last second fixed at 8000

$
0
0
:twisted: seee below last post for working config .cfg and cart.s

_______________________


Okay , im gunna start from scratch a project using mmc3 step by step. This compile fine. I get a .nes.

I copied this config to understand.

NOW ATTACHED is my cart.s.

The only thing I manage to do is write FA at $8000 ( see code attached ).

Please help me understand whats going on, I though I had to put the reset at e000, NADA at e000 in the memory viewer.

Like I want to be able to write code like I use to , but the mmc3 mapper is confusing me , i dont even know where to start, I had a power on, I had a rodata, I had my vectors, my nmi, everything. Now I cant even write to the ppu normally. please help me setup a basic cart.s !!!!! MY ultimate goal is to have back my game so i can keep wrting is in using mmc3.



Code:

MEMORY {#RAM Addresses:    # Zero page    ZP: start = $00, size = $100, type = rw, define = yes;#note OAM: start = $0200, size = $0100, define = yes;#note, sprites stored here in the RAMRAM: start = $0300, size = $0400, define = yes;#note, I located the c stack at 700-7ff, see belowWRAM: start = $6000, size = $2000, define = yes;#INES Header:    HEADER: start = $0, size = $10, file = %O ,fill = yes;#ROM Addresses:    PRG0: start = $8000, size = $2000, file = %O, fill = yes, define = yes;PRG1: start = $8000, size = $2000, file = %O, fill = yes, define = yes;PRG2: start = $8000, size = $2000, file = %O, fill = yes, define = yes;PRG3: start = $8000, size = $2000, file = %O, fill = yes, define = yes;PRG4: start = $8000, size = $2000, file = %O, fill = yes, define = yes;PRG5: start = $8000, size = $2000, file = %O, fill = yes, define = yes;PRG6: start = $8000, size = $2000, file = %O, fill = yes, define = yes;PRG7: start = $8000, size = $2000, file = %O, fill = yes, define = yes;PRG8: start = $8000, size = $2000, file = %O, fill = yes, define = yes;PRG9: start = $8000, size = $2000, file = %O, fill = yes, define = yes;PRG10: start = $8000, size = $2000, file = %O, fill = yes, define = yes;PRG11: start = $8000, size = $2000, file = %O, fill = yes, define = yes;PRG12: start = $8000, size = $2000, file = %O, fill = yes, define = yes;    PRG: start = $a000, size = $2000, file = %O ,fill = yes, define = yes;PRG15: start = $e000, size = $2000, file = %O ,fill = yes, define = yes;# make sure the reset code is in e000-ffff, see below# ! 16 Banks of 8K CHR ROM    CHR: start = $0000, size = $20000, file = %O, fill = yes;}SEGMENTS {    HEADER:   load = HEADER,         type = ro;    # this needs to be in the fixed bank between e000 and ffff    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;    CHARS:    load = CHR,            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,  define = yes;XRAM:  load = WRAM, type = bss, define = yes;BANK0:    load = PRG0,           type = ro, define = yes;BANK1:    load = PRG1,           type = ro, define = yes;BANK2:    load = PRG2,           type = ro, define = yes;BANK3:    load = PRG3,           type = ro, define = yes;BANK4:    load = PRG4,           type = ro, define = yes;BANK5:    load = PRG5,           type = ro, define = yes;BANK6:    load = PRG6,           type = ro, define = yes;BANK7:    load = PRG7,           type = ro, define = yes;BANK8:    load = PRG8,           type = ro, define = yes;BANK9:    load = PRG9,           type = ro, define = yes;BANK10:    load = PRG10,           type = ro, define = yes;BANK11:    load = PRG11,           type = ro, define = yes;BANK12:    load = PRG12,           type = ro, define = yes;STARTUP:  load = PRG15,          type = ro, define = yes;# needs to be in the e000-ffff fixed bank# SAMPLES:  load = PRG, start = $f000, type = ro;VECTORS:  load = PRG15, start = $fffa, type = ro;}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__;}}
SO far so good?

Attached is a skeletton cart.s in ASM only with the segment organised. I want to load the ppu and setup, lets say the bgcolor to another one. help plz.
cart.nes

cart.s

Statistics: Posted by v.depatie — Wed Jan 01, 2025 6:23 pm — Replies 6 — Views 327



Viewing all articles
Browse latest Browse all 746

Trending Articles