anchor.diff:           (result (read-vram ppu addr)))
       (incf (ppu-addr ppu) (vram-step ppu))
       (if (< addr #x3f00)
  -        (prog1
  -            (ppu-buffer ppu)
  +        (prog1 (ppu-buffer ppu)
             (setf (ppu-buffer ppu) result))
           result)))
   
  
positive.code:                (sprite-color (when (show-sprites ppu)
                                 (get-sprite-pixel ppu x bg-color)))
                 (color (pick-color bg-color sprite-color bd-color)))
            ;(put-pixel x (ppu-scanline ppu) color)
            (sdl:with-pixel (pixels (sdl:fp *screen*))
              (sdl:write-pixel pixels x (ppu-scanline ppu) color)))))))
  
  (defgeneric start-vblank (ppu)
    (:method ((ppu ppu))
      (set-in-vblank ppu 1)
      (set-sprite-zero-hit ppu 0)
      (when (vblank-nmi ppu) t)))
  
  (defgeneric new-frame (ppu)
    (:method ((ppu ppu))
      (setf (ppu-scanline ppu) 0)
      (set-in-vblank ppu 0)
      t))
  
  (defgeneric ppu-step (ppu to-cycle)
    (:method ((ppu ppu) to-cycle)
  
negative.code: 
  ;;;; Colors
  
  (declaim (inline get-color))
  (defmethod get-color ((ppu ppu) vram-index)
    (let* ((color-index (logand (read-vram ppu vram-index) #x3f))
           (base (* color-index 3))
           (red   (aref *color-palette* (+ 2 base)))
           (green (aref *color-palette* (+ 1 base)))
           (blue  (aref *color-palette* (+ 0 base))))
      (logior (ash red 16) (ash green 8) blue)))
  
  (defmethod get-pattern-color ((ppu ppu) kind tile x y)
    (let ((offset (+ y (ash tile 4))))
  