tepples wrote:
The last time we tried this, it ended up on
this page. I don't know whether kyuusaku's final suggestion is vulnerable to corruption due to $E000-$FFFF writes or not.
Sorry for the topic necro, but I just came across that wiki page yesterday.
Yes, there's a race condition between M2 and PRG /CE, but wouldn't the most viable workaround for that be to simply
not have your mapper's registers mapped at C000-FFFF? Writes between 8000-BFFF would only coincide with addresses 0000-3FFF, which are entirely off limits to the cartridge anyway, so there's no possible way for a write within that region to cause a conflict.
The only other possible workaround I can think of is to assume SYSTEM CLK will pulse before M2 toggles, and use that to trigger a write to the RAM on the falling edge of M2, where PRG /CE and M2 are both (theoretically) stable. However, I dunno if that's how it works. (plus, this wouldn't be available on the famicom)