Unable to change mirroring in JY-120A

Are you new to 6502, NES, or even programming in general? Post any of your questions here. Remember - the only dumb question is the question that remains unasked.

Moderator: Moderators

infidelity
Posts: 335
Joined: Fri Mar 01, 2013 4:46 am

Unable to change mirroring in JY-120A

Post by infidelity » Thu Feb 14, 2019 7:10 am

https://wiki.nesdev.com/w/index.php/J.Y ... .24D001.29

The notes for mirroring say that $D001 is the register to perform the changes for mirroring. But I am unable to do so with doing this? I'm able to use the other functions of this mapper, like setting the prg-rom size, being able to swap banks, I just cant get the mirroring to work. Am I missing a bit somewhere that needs to be set for $D001 to work?

Thanks!

infidelity
Posts: 335
Joined: Fri Mar 01, 2013 4:46 am

Re: Unable to change mirroring in JY-120A

Post by infidelity » Fri Feb 15, 2019 1:10 pm

Has this stumped the community? :-o

tepples
Posts: 21752
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Re: Unable to change mirroring in JY-120A

Post by tepples » Fri Feb 15, 2019 1:26 pm

Perhaps it has. This means we may need to step back, as one does in the case of an XY problem, and try to solve the larger problem.

Are you making an original game for the JY Company mapper?

infidelity
Posts: 335
Joined: Fri Mar 01, 2013 4:46 am

Re: Unable to change mirroring in JY-120A

Post by infidelity » Fri Feb 15, 2019 1:39 pm

Just messing around with it, but I can't figure out how it does the mirroring. Even when i set breakpoints to the mirroring register, it does snap when I load super Mario world. Never encountered this.

Edit: I ditched the .unf format and went to .nes and I set the mapper as 209, and now the mirroring is working for me at will.

Denine
Posts: 395
Joined: Wed Feb 17, 2010 5:42 pm

Re: Unable to change mirroring in JY-120A

Post by Denine » Fri Feb 15, 2019 3:02 pm

Excuse the somewhat off topic question, but what does the "Mask: $F803. This means that writes are ignored if address bit 11 is set." mean?

lidnariq
Posts: 8785
Joined: Sun Apr 13, 2008 11:12 am
Location: Seattle

Re: Unable to change mirroring in JY-120A

Post by lidnariq » Fri Feb 15, 2019 3:24 pm

It means that registers do not extend, as one might naively think, over the entire range from $8000-$8FFF, but instead just $8000-$87FF.

How can we rephrase that to make it clearer?
infidelity wrote:Edit: I ditched the .unf format and went to .nes and I set the mapper as 209, and now the mirroring is working for me at will.
What MAPR was the original file?

User avatar
koitsu
Posts: 4216
Joined: Sun Sep 19, 2004 9:28 pm
Location: A world gone mad

Re: Unable to change mirroring in JY-120A

Post by koitsu » Fri Feb 15, 2019 3:58 pm

lidnariq wrote:It means that registers do not extend, as one might naively think, over the entire range from $8000-$8FFF, but instead just $8000-$87FF.
How can we rephrase that to make it clearer?
Exactly how you just did! Putting that in parenthesis after the existing description I think is reasonable. I'll take care of doing that, since the particular line is repeated in several places throughout the page.

Edit: done. Let me know if that's more helpful. I wasn't sure how to fix up Miscellaneous Registers because the mask for $5000/5400/5C00 seems in conflict with the others.

infidelity
Posts: 335
Joined: Fri Mar 01, 2013 4:46 am

Re: Unable to change mirroring in JY-120A

Post by infidelity » Sat Feb 16, 2019 8:28 am

Ok, so im starting to wonder if FCEUX is missing features to some of these mapper variations from JY-120A?

I'm learning how to use extra 512kb of PRG-ROM. When i'm on mapper 209, these are the abilities im able to perform...

Header is NES 2.0

1: set PRG-ROM swapping to 16kb for $8000-$BFFF & $C000-$FFFF
2: ability to adjust mirroring via writes to $D001
3: ability to load anywhere within the additional 512kb PRG-ROM with writes to $D003

The only thing i'm unable to do, which is what i need, is the ability to write to $6000-$7FFF WRAM. Nothing gets stored to it. However, you are able to use it as PRG-ROM by inserting 2000 bytes of a bank into $6000-$7FFF. But i want to use it as RAM.

Now, i read that mapper 35 is a "duplicate...." of mapper 209, with the ability to use 8kb of WRAM. So Im like "awesome!"

I change the header using Nestopia to mapper 35, i reload the test rom and i write LDA #$88 STA $6000, and when I view $6000, the value 88 is stored there.

So again i'm like "awesome!" now comes the part of what i was NOT able to do, that I was originally able to do with mapper 209

1: unable to set PRG-ROM swap type, it's always set to 8kb chunks even if I set $D000 to either 8kb/16kb/32kb, it's always 8kb.
2: unable to swap out $E000-$FFFF (it's always set to hard wired) & again, originally I want it as 16kb $C000-$FFFF but cant.
3: unable to use $D003 to access the additional 512k PRG-ROM. It looks like because of the PRG-ROM only using 8kb chunks, it's unavailable?

I havent even begun to mess with the CHR, because I want to make sure everything else is working properly as i advance in learning the mapper usage. But if the nesdev wiki says 35 is a duplicate of 209, then i feel the FCEUX build i have (2.2.3) has mapper 35 functioning incorrectly.

Could someone point me in the right direction to speak to a dev that works on FCEUX? Or am I incorrect in all of this? Cause when I went back to mapper 209, everything was working fine with it's registers.

lidnariq
Posts: 8785
Joined: Sun Apr 13, 2008 11:12 am
Location: Seattle

Re: Unable to change mirroring in JY-120A

Post by lidnariq » Sat Feb 16, 2019 10:49 am

FCEUX's implementation of mapper 35 is very incomplete. Look at the old version of the page before NewRisingSun verified what the hardware was.

(edit) For that matter, all of FCEUX's implementations of the J.Y. Company mappers are incomplete, because no-one before him tried to look for hardware to verify patterns across different mapper numbers.
Last edited by lidnariq on Sat Feb 16, 2019 11:23 am, edited 1 time in total.

infidelity
Posts: 335
Joined: Fri Mar 01, 2013 4:46 am

Re: Unable to change mirroring in JY-120A

Post by infidelity » Sat Feb 16, 2019 11:17 am

Ooook, just looked at that older doc. That explains everything regarding 35.

Guess I'll stick with 209, just wish wram was a function.

Edit: just saw your edit, would I have luck getting in touch with one of the fceux devs on having 35 worked on?

infidelity
Posts: 335
Joined: Fri Mar 01, 2013 4:46 am

Re: Unable to change mirroring in JY-120A

Post by infidelity » Mon Feb 18, 2019 6:23 am

Is there anyone that knows c+, that could edit the "90.cpp" mapper file for FCEUX, to allow wram usage? I'm using 209 and have figured out how to utilize all the registers I wish to use, only problem is with the projects I have in mind, I cant write anything to $6000-$7FFF. Is there anyone that would be able to do this? I'm not looking to make repo carts or anything like that, thanks!

infidelity
Posts: 335
Joined: Fri Mar 01, 2013 4:46 am

Re: Unable to change mirroring in JY-120A

Post by infidelity » Tue Feb 19, 2019 9:32 am

Or am I incorrect that any nes game, regardless of mapper, can access nes's $6000-$7FFF?

I'm using NES 2.0 header.

tepples
Posts: 21752
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Re: Unable to change mirroring in JY-120A

Post by tepples » Tue Feb 19, 2019 10:20 am

For NES 2.0, you have to specify RAM size at $6000-$7FFF in byte 10. If you put $00 there, you get open bus. Some mappers don't allow RAM at $6000-$7FFF at all because they have registers there.

infidelity
Posts: 335
Joined: Fri Mar 01, 2013 4:46 am

Re: Unable to change mirroring in JY-120A

Post by infidelity » Tue Feb 19, 2019 10:59 am

Ok I'll take a look at my header tonight.

One more question. I checked the wiki on the NES 2.0 header, and noticed a term called PRG-NVRAM. I've seen this as well in the ines editor within Nestopia, but idk what the NV stands for?

lidnariq
Posts: 8785
Joined: Sun Apr 13, 2008 11:12 am
Location: Seattle

Re: Unable to change mirroring in JY-120A

Post by lidnariq » Tue Feb 19, 2019 11:00 am

Non-volatile. Because the field both marks EEPROMs and battery-backed RAM.

Post Reply