--- lcd.c.old	2010-08-27 17:40:46.000000000 -0500
+++ lcd.c	2010-08-25 20:39:14.000000000 -0500
@@ -1012,6 +1012,12 @@
 #ifdef HAVE_LCD_COLOR
     char frameout[30];
 #endif
+    static int frame = 0;
+
+#if LCD_HEIGHT == 64
+    if(R_LY == 0)
+        frame = !frame;
+#endif
 
     if (!(R_LCDC & 0x80))
         return; /* should not happen... */
@@ -1023,7 +1029,7 @@
          (fb.mode==3&&((R_LY%9)==8))
 
 #if LCD_HEIGHT == 64
-        || (R_LY & 1) /* calculate only even lines */
+        || ((R_LY & 1) == frame) /* alternate odd and even scanlines */
 #endif
         )
         return;
