- It's breaking Super Mario 3. AFAIK, on writes to A001h, bit 80h=0 disables WRAM reads, bit 40h=1 disables WRAM writes.
- Is this correct?
Yes: you're correct about the behavior
But this does not break SMB3. Your problem must be elsewhere.
- Bah, never mind. My fault, I've found the problem. Sorry... -_-!
I don't know what to tell you. I emulate it as described in my emu and SMB3 works fine.
Try logging writes to $A001 and make sure the game is writing $80. It should be. And double-check your $A001 handling code to make sure you're not making a silly mistake.