This page is a mirror of Tepples' nesdev forum mirror (URL TBD).
Last updated on Oct-18-2019 Download

[Solved]Mapper 3 on real machine not working.

[Solved]Mapper 3 on real machine not working.
by on (#129847)
Hey guys!
I tried to change CHR bank at runtime, according to this:
viewtopic.php?f=10&t=9518&hilit=shiru+example
Code:
.export _bankswitch

_bankswitch:

   tax
   sta bankBytes,x
   rts

bankBytes:
  .byte $00,$01,$02,$03

It worked, on emulator.(VNES,FCEXU even Nestopia works fine)
But it's not working on real device.
I'm using NES+Everdrive n8 with latest nesos.

I don't know y it's failing. :s

thx for help.

Edit: not working means it just don't change bank.
Re: Mapper 3 on real machine not working.
by on (#129852)
Did you try putting a breakpoint on the write in FCEUX and then making sure that it's occurring and that your table is being used properly? Maybe the EverDrive actually simulates the bus conflict and somehow your table isn't being used or aligned right.
Re: Mapper 3 on real machine not working.
by on (#129863)
Okay, maybe MMC1 (i mean MAPPER 3) is a dead end.
I'm now gonna try different mappers.
Re: Mapper 3 on real machine not working.
by on (#129865)
That's like...UNROM or AOROM, not MMC1? MMC1 is completely different.
Re: Mapper 3 on real machine not working.
by on (#129866)
Mapper #3 is CNROM. You should have 32kB of PRG, and 32kB CHR. I'd go with that, because AFAIK, no other sizes were used.

You'll need to post your full source code, that code for writing to the mapper should be fine. Another way I handle bus conficts is with this (in ca65 macro format):

Code:
.macro  conflict value
.local foo
foo:
        lda #value
        sta foo+1
.endmacro
Re: Mapper 3 on real machine not working.
by on (#129867)
Memblers wrote:
Mapper #3 is CNROM. You should have 32kB of PRG, and 32kB CHR. I'd go with that, because AFAIK, no other sizes were used.

You'll need to post your full source code, that code for writing to the mapper should be fine. Another way I handle bus conficts is with this (in ca65 macro format):

Code:
.macro  conflict value
.local foo
foo:
        lda #value
        sta foo+1
.endmacro

Thank you! Problem solved.
I changed CHR size to 32 and split all my CHR files to 4 KB then worked on real device.
Thanks again!