К вопросу о шейдерах.. написал (точнее, модифицировал один, имеющийся в виде grid) тут недавно несколько шейдеров эффекта scanlines (строки ТВ-развертки), результатом остался доволен. Так как встроенный фильтр сканлайнов убог и не позволяет нормально использовать его совместно с фильтрами сглаживания типа hq2xS - то здесь, в совокупности с билинейной фильтрацией, hq2xS или Super2xSaI, картинка получается довольно солидной.
Немного об именовании файлов:
* -1х, -2х, -3х в конце имени - это масштаб изображения (выводимого эмулятором), для которого подходит конкретный шейдер - например, шейдер с "-1х" нужно использовать для сырой картинки без фильтров (билинейная фильтрация к ним не относится, и разрешена); 2х - с фильтрами, которые множат картинку на 2; соответственно 3х - на 3 ("4х" не стал включать за ненадобностью, так как картинка с таким скейлом слишком резкая).
* -448/-480/-576 - число строк на экране (448 - удвоенное вертикальное разрешение картинки SNES; 480 - телек с NTSC; 576 - телек PAL). То есть, шейдер "scanlines-480-2x" будет выводить 480 строк при использовании фильтров типа "2Х*" (hq2x+, 2xSai и т.д.). Если в фильтрах выбрать другой множитель, то число строк на экране поделится, или умножится на 2, что испортит эффект.
Также, можно по желанию отрегулировать яркость изображения и глубину строк - просто откройте блокнотом файл шейдера и поэкспериментируйте с параметрами
const float base_brightness = 0.85;
const float2 sine_comp = float2(0.00, 0.15);
В принципе, шейдер можно и вовсе юзать как регулятор яркости (эмуль этого не поддерживает, но иногда это-таки требуется) - достаточно просто уменьшить значение "0.15" до нуля и играться в последствии с "base_brightness".
p.s. Для режима Direct3D.