anchor.diff:  
   (defgeneric render-scanline (ppu)
     (:method ((ppu ppu)) ;; TODO: Mirroring. Scrolling?
  -    (let* ((sprites (get-visible-sprites ppu))
  -           (bd-index (logand (read-vram ppu #x3f00) #x3f))
  +    (let* ((bd-index (logand (read-vram ppu #x3f00) #x3f))
              (bd-color (get-color bd-index)))
         (dotimes (x (getf *resolution* :width))
           (let* ((bg-color (when (show-bg ppu)
                              (get-bg-pixel ppu x)))
                  (sprite-color (when (show-sprites ppu)
  -                               (get-sprite-pixel sprites x bg-color)))
  +                               (get-sprite-pixel x bg-color)))
                  (color (cond ((and bg-color sprite-color)
                                (on-top bg-color sprite-color))
                               (bg-color bg-color)
  
positive.code:                :tile-index (+ 1 (* 4 (aref oam index)))
                 :attribute  (+ 2 (* 4 (aref oam index)))))
  
  (defun do-sprites (ppu fn)
    (let ((oam (ppu-oam ppu)))
      (dotimes (i 64)
        (unless (funcall fn (from-oam oam i) i)
          (return nil)))))
  
  ;;;; Graphics Cards: How do they work?
  
  
negative.code:   )
  
  (defun on-top (x y)
    y ; TODO: determine sprite priority
    )
  
  ;;;; Core
  
  