It's hard to notice when you're just playing Mario Paint, but I determined that about 1-2 times a second, frames of input are dropped. This is most likely due to the other Arduino support software running in the interrupt vector and after loop(). I have decided to rewrite this to never return from loop and to never enable interrupts, bypassing most of the Arduino code with direct register operations instead. I expect that this should fix the sync issues.
It's hard to notice when you're just playing Mario Paint, but I determined that about 1-2 times a second, frames of input are dropped. This is most likely due to the other Arduino support software running in the interrupt vector and after loop(). I have decided to rewrite this to never return from loop and to never enable interrupts, bypassing most of the Arduino code with direct register operations instead. I expect that this should fix the sync issues.