Автор Тема: HD-видео 8-битных игр  (Прочитано 10732 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Gilroy

  • Пользователь
  • Сообщений: 12
    • Просмотр профиля
HD-видео 8-битных игр
« : 26 Февраль 2013, 12:01:48 »
Наткнулся на канал TopRetroGames на ютубе, где выложены прохождения 8-битных игр в HD (720p).

Непосредственно автору этих видео я писать не стал, так как на комментарии он вообще не отвечает. На канале размещена ссылка на Emu-Land, поэтому спрошу здесь.

Как можно добиться такого же качества? Какой эмулятор для этого нужен, какая монтажка, какие опции надо выставлять?

Оффлайн Valet2

  • Пользователь
  • Сообщений: 673
    • Просмотр профиля
Re: HD-видео 8-битных игр
« Ответ #1 : 26 Февраль 2013, 12:14:50 »
Вот как по мне, вся пикселявость там на месте - никакого необычного качества.

А отсутствие смазанности - из-за того, что автор не стал записывать и выкладывать видео разрешения 320x240, как всякие дебилы, а увеличил его до HD со ступенчатой интерполяцией - все несовские пиксели остались квадратными, но сделались крупными.

Вот, например, так выглядит кадр в замечательном клиппе Move Your Feet группы Junior and Senior:



При увеличении, по задумке режиссёра, картинка должна выглядеть так (картинки кликабельны):



Но по умолчанию при изменении размера во всех плеерах, программах по редактированию, сервисах применяется как минимум билинейная фильтрация, которая годится для чего угодно, кроме пиксель-арта. И поэтому получается такая каша:



Клип можете скачать у меня.
« Последнее редактирование: 26 Февраль 2013, 12:29:44 от Valet2 »

Оффлайн Gilroy

  • Пользователь
  • Сообщений: 12
    • Просмотр профиля
Re: HD-видео 8-битных игр
« Ответ #2 : 26 Февраль 2013, 12:42:06 »
Valet2, большое Вам спасибо за развёрнутый ответ.

Вот как по мне, вся пикселявость там на месте - никакого необычного качества.

Да, никакого необычного качества. Но всё равно в HD смотрится лучше.

А отсутствие смазанности - из-за того, что автор не стал записывать и выкладывать видео разрешения 320x240, как всякие дебилы, а увеличил его до HD со ступенчатой интерполяцией - все несовские пиксели остались квадратными, но сделались крупными.

Довелось мне уже столкнуться с этой смазанностью, когда я пытался в Premiere увеличить масштаб NES’овского видео. Смотрелось ужасно.

Как можно применить эту ступенчатую интерполяцию? Это делается на стадии захвата или уже потом?

Оффлайн Valet2

  • Пользователь
  • Сообщений: 673
    • Просмотр профиля
Re: HD-видео 8-битных игр
« Ответ #3 : 26 Февраль 2013, 14:30:11 »
я не знаю, как в премьере, но в Вегасе это делается в настройках проекта

Оффлайн Gilroy

  • Пользователь
  • Сообщений: 12
    • Просмотр профиля
Re: HD-видео 8-битных игр
« Ответ #4 : 26 Февраль 2013, 16:08:04 »
Буду пробовать.

Оффлайн Gilroy

  • Пользователь
  • Сообщений: 12
    • Просмотр профиля
Re: HD-видео 8-битных игр
« Ответ #5 : 02 Март 2013, 23:29:47 »
Итак, установил я Vegas Pro 10.

Видео пишу в FCEUX 2.1.5. Получаю файл с такими свойствами:

Video: 256x224 (1.14:1), 60.100 fps,  ~82713 kbps avg, 24.00 bit/pixel
Audio: 44.100 kHz, Microsoft PCM, 1 ch, ~705.60 kbps avg

1. Как растянуть это видео на весь экран, чтобы не было полос вверху и внизу?
2. Где находится та заветная опция, которая включает ступенчатую интерполяцию?

Оффлайн Partsigah

  • Пользователь
  • Сообщений: 5325
  • Трёхглазый пуйошник
    • Steam
    • Youtube
    • Просмотр профиля
Re: HD-видео 8-битных игр
« Ответ #6 : 03 Март 2013, 00:03:25 »
Как сделать ступенчатую интерполяцию в VirtualDub?

Ещё вопрос, можно-ли в Нестопии сделать видео 640х480 (кратно 320-ти) не растягивая окно вручную?


Получилось:
Эмулятор: Nestopia 1.41 - 640x480
Запись через HyperCam 2: x264wfv (Fast decode / Still Image / Zero Latency / FVW Four CC: avc1 / Virtual Dub hack)
Далее Virtual Dub: Filters - Resize - Nearest neighbor - 200% / Compression - x264wfv
Главной проблемой было сделать захват, т.к. h264 постоянно рассинхронивал аудио, то опаздывая, то опережая.
« Последнее редактирование: 03 Март 2013, 01:13:07 от Partsigah »

Оффлайн Gilroy

  • Пользователь
  • Сообщений: 12
    • Просмотр профиля
Re: HD-видео 8-битных игр
« Ответ #7 : 03 Март 2013, 14:45:31 »
Partsigah, спасибо за разъяснение!

А что если опустить этап с HyperCam’ом, а записывать напрямую через эмулятор? И затем уже выставлять в VirtualDub’е увеличение, скажем, на 500 %. Получится разрешение 1280×1120.

Кстати, откуда у всех берётся разрешение 320×240? Вот цитата из английской Википедии:

Цитата
The standard display resolution of the NES is 256 horizontal pixels by 240 vertical pixels. Typically, games designed for NTSC-based systems had an effective resolution of only 256 by 224 pixels, as the top and bottom 8 scanlines are not visible on most television sets.

У меня тоже пишет 256×224. Разве так и не должно быть?

Оффлайн Partsigah

  • Пользователь
  • Сообщений: 5325
  • Трёхглазый пуйошник
    • Steam
    • Youtube
    • Просмотр профиля
Re: HD-видео 8-битных игр
« Ответ #8 : 03 Март 2013, 16:15:04 »
А что если опустить этап с HyperCam’ом, а записывать напрямую через эмулятор? И затем уже выставлять в VirtualDub’е увеличение, скажем, на 500 %. Получится разрешение 1280×1120.
Смотря какой эмуль, попробуй так сделать на fceux и залить результат на ю-туб, может будет тоже самое HD.
Кстати, откуда у всех берётся разрешение 320×240? Вот цитата из английской Википедии:

У меня тоже пишет 256×224. Разве так и не должно быть?
Так это комповское разрешение, даже TV-aspect не даёт такое. Я так понял, оно для удобства заливки на ю-туб в HD.

Оффлайн EdHell

  • Технический консультант
  • Сообщений: 12193
  • Пол: Мужской
  • Ортодоксальный пофигист
    • Просмотр профиля
Re: HD-видео 8-битных игр
« Ответ #9 : 03 Март 2013, 16:45:06 »
Хочешь максимум качества - захватывай уже в высоком разрешении, потом только кропай.

Оффлайн feos

  • Пользователь
  • Сообщений: 785
  • Пол: Мужской
    • Просмотр профиля
Re: HD-видео 8-битных игр
« Ответ #10 : 03 Март 2013, 17:15:16 »
Система для взрослых дядь такова:

1. Записываем AVI прямо с эмулятора, в родном разрешении, НО с использованием lossless кодека. Варианты:

CamStudio lossless codec
http://sourceforge.net/projects/camstudio/files/legacy/CamStudioCodec-1.4-w32.zip/download
(Для установки кликаем ПКМ по camcodec.inf и выбираем Установить)

Lagarith
http://lags.leetcode.net/codec.html

2. Пoлученный файл руками тащим в Virtual Dub и обрабатываем.

Video - Filters - Add - resize - Filter mode - Nearest neigbour. New size - Relative - 400
* Можно руками вписать разрешение 960x720, тогда будет и 4:3, и HD.
Video - Frame Rate - Convert to fps - 25
Video -> Compression -> Выбираем x265vfw (http://sourceforge.net/projects/x264vfw/files/) и жмем кнопку Configure
 
Preset -> Ultrafast
Tuning -> Animation
Rate control -> Single pass - ratefactor-based
Ratefactor ставите на 10.
Обязательно ставите галку Zero latency!

File -> Save as AVI

Вкатаракте: http://vk.com/page-53076_31720814
На инглише: http://tasvideos.org/EncodingGuide/CustomEncoding.html

Оффлайн Valet2

  • Пользователь
  • Сообщений: 673
    • Просмотр профиля
Re: HD-видео 8-битных игр
« Ответ #11 : 03 Март 2013, 17:24:14 »
Кстати, ютуб нормально воспринимает и 30 fps.

Lagarith рулит!

Оффлайн feos

  • Пользователь
  • Сообщений: 785
  • Пол: Мужской
    • Просмотр профиля
Re: HD-видео 8-битных игр
« Ответ #12 : 03 Март 2013, 17:32:28 »
Ютуб нормfльно воспринимает и когда ты срезаешь 60-кадровое мигание до 30-кадрового. Мигания просто больше нет, но ютуб-то да, нормально воспринимает. Срезая до 25 еще есть шанс увидеть его. Хотя взрослые дяди юзают deblink функцию, основанную на создании маски мигающего объекта и смешивании только его между кадров.

Код: (AviSynth) [Выделить]
# nanogyth's deblink.
function ng_deblink(clip clp,
\ float "ratio",
\ int "level",
\ clip "blinkmask"
\){
#Version 10 2012.04.22

    blink = default(blinkmask, clp.ng_blinkmask())

    ratio = default(ratio, 2.0 /3)
    assert(ratio >= 0.0 && 1.0 >= ratio,
    \      "[ng_deblink] 1.0 >= ratio >= 0.0, it was " + string(ratio))

    level = default(level, round(ratio * 257))
    assert(level >= 0 && 257 >= level,
    \      "[ng_deblink] 257 >= level >= 0, it was " + string(level))

    m01=mt_logic(blink.SelectEvery(4,0),
\                blink.SelectEvery(4,1),
\                mode="or").ConvertToRGB32()
    m23=mt_logic(blink.SelectEvery(4,2),
\                blink.SelectEvery(4,3),
\                mode="or").ConvertToRGB32()

    f0=Layer(clp.SelectEvery(4,0),
\            clp.SelectEvery(4,1).Mask(m01),
\            level=level)
    f1=Layer(clp.SelectEvery(4,1),
\            clp.SelectEvery(4,0).Mask(m01),
\            level=level)
    f2=Layer(clp.SelectEvery(4,2),
\            clp.SelectEvery(4,3).Mask(m23),
\            level=(257-level) )
    f3=Layer(clp.SelectEvery(4,3),
\            clp.SelectEvery(4,2).Mask(m23),
\            level=(257-level) )

    Interleave(f0,f1,f2,f3)
}

function ng_blinkmask(clip clp,
\ bool "TEST",
\ bool "STABILIZE",
\ bool "SHARP",
\ bool "HYSTER",
\ int "inpand",
\ int "expand",
\ int "ml"
\){
#Version 10 2012.04.22

#BLINK
# Blinking is a block that alternates on/off each frame
# SelectEven would only see either the on or the off

#FLASH
# Flashing is a block that is only on for a single frame
# SelectEven might miss the flash

#SHAKE
# Shaking is a block that moves back/forth each frame
# SelectEven would only see one position

# The goal of this function is to make a blink mask for use with
# ng_deblink. For overly complicated scenes where a clean blinkmask
# can't be found, just use TASBlend. Uniform softness looks better
# than sharp artifacts.

# This function calculates flash and shake info for the test script,
# but those effects should be handled in different ways.
# Flash - choose frames to make sure the flash is in your final clip.
# Shake - SelectEvery(4,0,2,1,3) or SelectEvery(4,1,0,2,3)
# SelectEvery doesn't generally work because it messes with the fluidity
# of motion. But that won't be noticable on a shaking screen.
# Be careful if 2 frame blinking is present, as the selectevery can turn
# it into 1 frame blinking.

    TEST      = default(     TEST, false)
    STABILIZE = default(STABILIZE, true)
    SHARP     = default(    SHARP, true)
    HYSTER    = default(   HYSTER, false)
    inpand    = default(   inpand, 1)
    expand    = default(   expand, 1)
    ml        = default(       ml, 128)

# The functions used to make the masks work in the YV12 colorspace. Once
# the masks are created they can be used in the RGB32 colorspace direcly
    src=clp.ConvertToYV12()

# Blinking is located by looking for blocks that don't exist in
# consecutive frames. The motion vector will match blocks that exist in
# both frames. The blocks that aren't in both will end up with huge
# values that are picked out by the motion mask.
    super = MSuper(src, pel=1)
    fvec  = MAnalyse(super, isb=false, blksize=4)
    bvec  = MAnalyse(super, isb=true , blksize=4)
    fmask = Mmask(src, fvec, kind=1, ml=ml).mt_binarize()
    bmask = Mmask(src, bvec, kind=1, ml=ml).mt_binarize()
    blink = mt_logic(fmask, bmask, mode="and")

# Blinking usually occurs against a stable background. This is found
# by looking at blocks 2 frames apart. This distinguishes a blink from
# blocks that are just changing every frame.
    ee_src   = src.SelectEven()
    ee_super = MSuper(ee_src, pel=1)
    ee_fvec  = MAnalyse(ee_super, isb=false, blksize=4)
    ee_bvec  = MAnalyse(ee_super, isb=true , blksize=4)
    ee_fmask = Mmask(ee_src, ee_fvec, kind=1, ml=ml).mt_binarize()
    ee_bmask = Mmask(ee_src, ee_bvec, kind=1, ml=ml).mt_binarize()

    oo_src   = src.SelectOdd()
    oo_super = MSuper(oo_src, pel=1)
    oo_fvec  = MAnalyse(oo_super, isb=false, blksize=4)
    oo_bvec  = MAnalyse(oo_super, isb=true , blksize=4)
    oo_fmask = Mmask(oo_src, oo_fvec, kind=1, ml=ml).mt_binarize()
    oo_bmask = Mmask(oo_src, oo_bvec, kind=1, ml=ml).mt_binarize()

    fmask_2   = Interleave(ee_fmask, oo_fmask)
    bmask_2   = Interleave(ee_bmask, oo_bmask)
    background = mt_logic(fmask_2.SelectEvery(1,1),
\                         bmask_2.SelectEvery(1,-1),
\                         mode="or")
    stable_blink = mt_hysteresis(background.mt_invert, blink)
    blink2 = (STABILIZE) ? stable_blink : blink

# Shrinking the blink mask can get rid of noise,
# too much will lose signal as well.
    blink3 = blink2.mt_inpand(mode=mt_diamond(inpand))
   
# Using just pixels that changed helps sharpen the mask
    diff   = ng_diff(clp.SelectEvery(1,-1), clp)
    diff_2 = mt_logic(diff, diff.SelectEvery(1,1), mode="and")

#Hysteresis
# Matches continuous blocks of pixels.
# Use with care, will match the whole screen on fades.
    hyster_blink = mt_hysteresis(blink3, diff_2)

# Expand the mask to make up for shrinking it (or just use hysteresis)
    blink4 = blink3.mt_expand(mode=mt_circle(expand))
    sharp_blink = mt_logic(blink4, diff_2, mode="and")

    blink5 = (HYSTER) ? hyster_blink :
\            (SHARP)  ? sharp_blink  : blink4

   
# A flash won't match blocks 1 or 2 frames away.
    sub_flash = mt_logic(fmask_2, bmask_2, mode="and")
    flash     = mt_logic(blink, sub_flash, mode="and")
   
# A shake changes in one frame and changes back in the next.
# This isn't detected by the motion vectors because the blocks exist in
# both frames, they are just shifting around.
    same   = ng_same(clp.SelectEvery(1,-1), clp.SelectEvery(1,1))
    shake  = mt_logic(same, diff_2, mode="and")

    (TEST) ? stackhorizontal(clp, mergeRGB(blink5, flash, shake))
\          : blink5.GreyScale()
}

function ng_diff(clip A, clip B, int "thr"){
    thr=default(thr,0)
    TAD=ng_TAD(A,B)
    return mt_binarize(TAD, threshold=thr)
}

function ng_same(clip A, clip B, int "thr"){
    thr=default(thr,0)
    TAD=ng_TAD(A,B)
    return mt_binarize(TAD, threshold=thr, upper=true)
}

function ng_TAD(clip A, clip B){
    R=ng_AD(A  .showRed("YV12"),B  .showRed("YV12"))
    G=ng_AD(A.showGreen("YV12"),B.showGreen("YV12"))
    B=ng_AD(A .showBlue("YV12"),B .showBlue("YV12"))
    return ng_plus(R, ng_plus(G, B))
}

function ng_AD(clip A, clip B){
    return mt_lutxy(A,B,"x y - abs")
}

function ng_plus(clip A, clip B){
    return mt_lutxy(A,B,"x y +")
}

Оффлайн Valet2

  • Пользователь
  • Сообщений: 673
    • Просмотр профиля
Re: HD-видео 8-битных игр
« Ответ #13 : 04 Март 2013, 02:54:46 »
Пожалуйста, по-русски.

Если имеется в виду, что на приставке для имитации цвета используется быстрое мигание двух других цветов, и при конвертации во вдвое меньший фреймрейт исчезнет всё это, то можно конвертировать через тот же Вегас - по умолчанию там включен smart resample для дорожки - он просто два кадра смешивает. Если приглядеться, будет немного смазанным в движении, но зато информация с обоих кадров останется.

Оффлайн Partsigah

  • Пользователь
  • Сообщений: 5325
  • Трёхглазый пуйошник
    • Steam
    • Youtube
    • Просмотр профиля
Re: HD-видео 8-битных игр
« Ответ #14 : 04 Март 2013, 07:17:26 »
Этот код в "extra command line" вставлять, в настройках x264vfw?

Оффлайн feos

  • Пользователь
  • Сообщений: 785
  • Пол: Мужской
    • Просмотр профиля
Re: HD-видео 8-битных игр
« Ответ #15 : 04 Март 2013, 07:28:09 »
Valet2, дак я жи говорю, между кадрами смешивается только сам мигающий объект и только когда он мигает. Все прочее остается идеально четким. Например пламя в Gunstar Heroes:


Partsigah, это часть скрипта AviSynth. Позже целиком скрипт дам.

Оффлайн Gilroy

  • Пользователь
  • Сообщений: 12
    • Просмотр профиля
Re: HD-видео 8-битных игр
« Ответ #16 : 06 Март 2013, 21:05:31 »
Можно руками вписать разрешение 960x720, тогда будет и 4:3, и HD.

Не знаю, как у всех остальных, но у меня FCEUX 2.2.0 захватывает в разрешении 256×224. Если выставить в VirtualDub'е 960x720, нарушатся пропорции.

Откуда у всех берётся 320×240, объясните мне, тупому.

Оффлайн feos

  • Пользователь
  • Сообщений: 785
  • Пол: Мужской
    • Просмотр профиля
Re: HD-видео 8-битных игр
« Ответ #17 : 06 Март 2013, 21:20:52 »
Ниоткуда не берется, это ютуб пережимает.

А пропорции не нарушаются, он становятся как на телеке.

Оффлайн Gilroy

  • Пользователь
  • Сообщений: 12
    • Просмотр профиля
Re: HD-видео 8-битных игр
« Ответ #18 : 06 Март 2013, 21:45:04 »
Тут всё правильно я выставил?


Оффлайн Valet2

  • Пользователь
  • Сообщений: 673
    • Просмотр профиля
Re: HD-видео 8-битных игр
« Ответ #19 : 06 Март 2013, 22:21:24 »
Ты выставил проценты, а не разрешение!

Оффлайн Gilroy

  • Пользователь
  • Сообщений: 12
    • Просмотр профиля
Re: HD-видео 8-битных игр
« Ответ #20 : 06 Март 2013, 23:22:04 »
Упс!

Aspect ratio точно надо отключать?

А Framing options так и оставить?


Оффлайн Ti_

  • Пользователь
  • Сообщений: 3265
  • Пол: Мужской
    • ВКонтакте
    • Youtube
    • Просмотр профиля
Re: HD-видео 8-битных игр
« Ответ #21 : 07 Март 2013, 01:19:39 »
На инглише: http://tasvideos.org/EncodingGuide/CustomEncoding.html
Ужос сколько извращений из-за кривоопости ютуба и плееров.  :lol:

Оффлайн Partsigah

  • Пользователь
  • Сообщений: 5325
  • Трёхглазый пуйошник
    • Steam
    • Youtube
    • Просмотр профиля
Re: HD-видео 8-битных игр
« Ответ #22 : 07 Март 2013, 01:37:36 »
Не совсем на инглише:
Цитата
VirtualNES
Option -> Graphics: Ставите галку Show 240 scanlines.

Оффлайн feos

  • Пользователь
  • Сообщений: 785
  • Пол: Мужской
    • Просмотр профиля
Re: HD-видео 8-битных игр
« Ответ #23 : 07 Март 2013, 07:52:34 »
блджад, забыл перевести
Добавлено позже:
Gilroy, автоматический аспект иногда тупит. во 2 поле все праильна.

Оффлайн Gilroy

  • Пользователь
  • Сообщений: 12
    • Просмотр профиля
Re: HD-видео 8-битных игр
« Ответ #24 : 07 Март 2013, 12:12:53 »
Ужос сколько извращений из-за кривоопости ютуба и плееров.  :lol:

+1

Gilroy, автоматический аспект иногда тупит. во 2 поле все праильна.

Ну хоть с этим разобрались.

Оффлайн Psycho-A

  • Пользователь
  • Сообщений: 384
    • Просмотр профиля
Re: HD-видео 8-битных игр
« Ответ #25 : 09 Март 2013, 02:03:55 »
Цитата
Вот как по мне, вся пикселявость там на месте - никакого необычного качества.
А отсутствие смазанности - из-за того, что автор не стал записывать и выкладывать видео разрешения 320x240, как всякие дебилы, а увеличил его до HD со ступенчатой интерполяцией - все несовские пиксели остались квадратными, но сделались крупными.
Честно говоря, не совсем понятно, зачем на видео выставлять эту "пикселявость", принимая во внимание тот факт, что все игры того времени наоборот были заточены под отображение на оборудовании (старые ЭЛТ-телевизоры), которые эту пикселявость очень хорошо сглаживали, из-за чего картинка воспринималась гладкой и целостной. Глаза не повылазят от рассыпающихся на пиксели спрайтов? :D

Оффлайн Valet2

  • Пользователь
  • Сообщений: 673
    • Просмотр профиля
Re: HD-видео 8-битных игр
« Ответ #26 : 09 Март 2013, 02:22:55 »
Ну, можно какие-нибудь фильтры использовать при увеличении разрешения, но только не стандартную билинейную интерполяцию, делающую картинку мазнёй.

Вот пример удачного использования фильтра и гигантского разрешения: http://tasvideos.org/1617M.html

смотрим ссылку под "experimental hi-def encode 1920x1344"

Кстати, насчёт всего этого в сони вегасе. Да, нет там nearest neighbor, но нечто похожее я нашёл в плагине Boris UpRez. Входит в комплект Boris FX, штука дорогущая, но есть на торрентах. Порядок действий такой: на импортированном видео ставится соотношение пикселя 1x1 (обязательно!), устанавливается размер кадра такой же, как и разрешение проекта (т.е. у нас в превью будет маленькая картинка по центру), зафигачивается плагин, в нём выставляется нужный нам пиксель (в случае с сегой это будет 1x1 - квадратный пиксель), способ увеличения - кроп, подгон под рамки или растагивание, и способ увеличения разрешения. Чтобы оставить пикселявость, надо выбрать draft.

Оффлайн Partsigah

  • Пользователь
  • Сообщений: 5325
  • Трёхглазый пуйошник
    • Steam
    • Youtube
    • Просмотр профиля
Re: HD-видео 8-битных игр
« Ответ #27 : 09 Март 2013, 10:47:26 »
А что, если scanline выставлять в эмуле или фильтром, будет подобие ТВ.

Оффлайн Valet2

  • Пользователь
  • Сообщений: 673
    • Просмотр профиля
Re: HD-видео 8-битных игр
« Ответ #28 : 09 Март 2013, 16:03:31 »
Я вообще не понимаю смысл scanline. К каждой второй строчке добавляется затенение. Что это, такое они в телевизорах видели? Ни фига подобного - у меня картинка чёткая и ясная, никаких полос. Я такое лишь встречал в игровых роликах и фильмах, где показывают видео с камеры наблюдения (хотя, опять-таки, за свою жизнь не видел такого).

Оффлайн Psycho-A

  • Пользователь
  • Сообщений: 384
    • Просмотр профиля
Re: HD-видео 8-битных игр
« Ответ #29 : 12 Март 2013, 00:58:37 »
Valet2, согласен, в PAL-телеках строчной структуры и правда не видно, но дыма без огня не бывает, и если вы пустите на телевизор чистый NTSC-сигнал и будете смотреть на экран боковым зрением (либо быстро водить зрачками), то чересполосица довольно-таки заметна; правда она, в отличие от программных фильтров, динамична - то есть, заметно движение ("сканирование" матрицы электронной пушкой). Другое дело, что даже в софтварном режиме, вкупе с интерполяцией, сканлайны делают картинку более теплой, "аналоговой". Только вот ни у кого из создателей таких фильтров, видимо, не хватает ума понять, что число этих строк должно быть 480 или 576 (для НТСЦ и ПАЛ, соответственно), и в большинстве случаев мы видим 224 или 240 линий, по одной на строку оригинального разрешения NES-овской или Сеговской картинки. Неудивительно, что они так бросаются в глаза.