I understand most/all emulators won't enforce the minimum 42 cycles. But since I would like this to potentially work on a real VRC7, that made me think about the most efficient way to write lots of stuff to these registers without tons of 42-cycle burns all the time. I thought I would make a circular buffer in RAM to queue up the register writes, then use the VRC7's IRQ to service the queue. So that is the story how I got to the IRQ problem.After writing to this register, the program must not write to $9010 (or $9030 again) for at least 42 CPU clock cycles while the VRC7 internally handles the write.
Basically I write a $07 to register $F000, and I never, ever get an IRQ. I also tried writing to the IRQ Acknowledge register $F010 with no improvement. From everything I can tell, that is all I should have to do is write 7 to f000 and it should get an IRQ within 256 cycles, and it just won't do it, very stubborn this one. Anyone familiar what more I might have to do? I attached the source and assembled ROM file if it could help.