I've got this really, really annoying bug in my project (Pulsar, my new tracker) where very occasionally I get a bit of the NVRAM (three or four bytes) filled with rogue values (strangely, all $01).
I tried to set up a breakpoint based on writes to the addresses (they're always in the same area) but so far I've not managed to make it happen in FCEUX - it only seems to do it in Nestopia.
I've spent the weekend going through all the code and I can't see any possible places that I could be writing to the NVRAM with rogue indexes (all writes to that particular area of the RAM are done with (indirect),y
I was wondering though if doing too much DMA or going over a frame with the background code loop (which does happen occasionally) could cause this kind of corruption? If so, do you have any advice or safeguards?
I'm clutching at straws.
I tried to set up a breakpoint based on writes to the addresses (they're always in the same area) but so far I've not managed to make it happen in FCEUX - it only seems to do it in Nestopia.
I've spent the weekend going through all the code and I can't see any possible places that I could be writing to the NVRAM with rogue indexes (all writes to that particular area of the RAM are done with (indirect),y
I was wondering though if doing too much DMA or going over a frame with the background code loop (which does happen occasionally) could cause this kind of corruption? If so, do you have any advice or safeguards?
I'm clutching at straws.