Sunday, August 1, 2010

PC->NES Speed improvement!

So I've been wrestling with the timing of the transfer tool. The Arduino end is a huge unknown since I can't get access to the underlying assembly. The good news is I figured out what was blowing the timing. I had 2 bytes being sent each time - pretty much like a PISO (parallel in serial out) shift register. The way I was doing it originally was

PORTC = (byteToSend1 >> bitIndex);

Which was fine, but in the worst case it would have to shift the value 15 times.
Instead I made the change persistant:

byteToSend1 = (byteToSend1 >> 1);
PORTC = (byteToSend1);

Which ensures each bit only needs to be shifted once!


  1. Absolutely fantastic posting! Lots of useful information and inspiration, both of which we all need!Relay appreciate your work.
    raja poker

  2. this post is really amazing and the the information is brilliant.

    Escorts Service in Goa

    Delhi Escort

  3. I dunno how to say, but this post so helpfully
    Agen Bola Terpercaya

  4. This is a very interesting post and thanks for this informative post.
    VIP Delhi Escorts Service
    Escorts Service in Delhi