         @framePosition++ # Skip alpha because it was already set to 0xFF.
 
     updateScrolling: ->
-        if 1 <= @cycle <= 256
-            @$incrementFineXScroll()
-            @incrementFineYScroll() if @cycle is 256
+        if 0 < @cycle < 256
+            @$incrementCoarseXScroll() if (@cycle & 0x7) is 0
+        else if @cycle is 256
+            @$incrementCoarseXScroll()
+            @$incrementFineYScroll()
         else if @cycle is 257
-            @copyHorizontalScrollBits()
-        else if @scanline is 261 and 280 <= @cycle <= 304
-            @$copyVerticalScrollBits()
+            @$copyHorizontalScrollBits()
+        else if 280 <= @cycle <= 304
+            @$copyVerticalScrollBits() if @scanline is 261
+        else if @cycle is 328
+            @$incrementCoarseXScroll()
+        else if @cycle is 336
+            @$incrementCoarseXScroll()
 
     updateVBlank: ->
         if @cycle is 1

    ###########################################################

    tick: ->
        @$updateFramePixel() if @$isRenderingCycle()
        @$updateScrolling() if @$isRenderingActive()
        @$updateVBlank()
        @$incrementCycle()

        @vramReadBuffer = 0 #  8-bit
        @writeToogle = 0    #  1-bit
        @fineXScroll = 0    #  3-bit

    resetVariables: ->
        @scanline = -1          # Total 262 scanlines (0..261)
