public void SetOverlay(int[] pixelLine, int offset, TileAttributes flags, int oamIndex)
        {
            var priority       = flags.IsPriority();
            var overlayPalette = _registers.Get(flags.GetDmgPalette());

            for (var j = offset; j < pixelLine.Length; j++)
            {
                var p = pixelLine[j];
                var i = j - offset;

                if (_pixelType.Get(i) == 1)
                {
                    continue;
                }

                if (priority && Pixels.Get(i) == 0 || !priority && p != 0)
                {
                    Pixels.Set(i, p);
                    _palettes.Set(i, overlayPalette);
                    _pixelType.Set(i, 1);
                }
            }
        }