Автор Тема: NES PAL composite signal simulation Shader for RetroArch  (Прочитано 2280 раз)

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

Оффлайн evgs

  • Пользователь
  • Сообщений: 904
  • Пол: Мужской
    • Просмотр профиля
NES PAL composite signal simulation Shader for RetroArch
« : 28 Апрель 2018, 08:30:06 »
r57shell при поддержке feos, HardWareMan и NewRisingSun
написал cg-шейдер для ретроарча, довольно точно имитирующий
артефакты PAL-декодера и палитру NES PAL / Dendy:
https://gist.github.com/realmonster/b89e63d4018eb5bbab62331c42acf9e7

Дефолтные директории, рекомендуемые r57shell:
\shaders_cg\crt\crt-royale-pal-r57shell.cgp
\shaders_cg\pal\pal-r57shell.cgp
\shaders_cg\pal\shaders\pal-r57shell.cg
\shaders_cg\pal\resources\nes_lut.png

Видео финальной версии (обычная и смешанная с шейдером CRT Royale):

Шейдер может читать RGB любых ядер арча (не только NES), либо же
считывать RAW из ядра нестопии (аутентичная палитра nes pal/dendy, но требует больше ресурсов GPU)

Для работы в режиме RAW следует убрать комментарий со строки #70:
"\shaders_cg\pal\shaders\pal-r57shell.cg"
до:
//#define USE_RAW

после:
#define USE_RAW
При этом в core options нестопии обязательно выставить "RAW" palette
Это довольно сильно нагружает GPU, поэтому можно убрать комментарий со строки #74:
до:
//#define USE_LUT

после:
#define USE_LUT
Цвета будут чуть менее точными, но производительность увеличится

Пресет "\shaders_cg\pal\pal-r57shell.cgp" - "чистая" версия, имитирует только PAL-декодер и палитру
Пресет "\shaders_cg\crt\crt-royale-pal-r57shell.cgp" - смешан с CRT Royale

В шейдере также имеются богатые настройки, доступные через UI ретроарча.
« Последнее редактирование: 29 Апрель 2018, 20:03:00 от evgs »

Оффлайн Sharpnull

  • Пользователь
  • Сообщений: 1809
    • Просмотр профиля
NES PAL composite signal simulation Shader for RetroArch
« Ответ #1 : 28 Апрель 2018, 09:43:55 »
Не хватает настраиваемого искажения под форму кинескопа и можно довольно точно портить глаза как в былые времена. :)

Оффлайн evgs

  • Пользователь
  • Сообщений: 904
  • Пол: Мужской
    • Просмотр профиля
NES PAL composite signal simulation Shader for RetroArch
« Ответ #2 : 28 Апрель 2018, 10:59:19 »
CRT Royale имитирует ЭЛТ-маску, там же можно настроить и геометрию и силу свечения.
Иными словами, вам нужен смешанный пресет (crt-royale-pal-r57shell.cgp)

Оффлайн EVIL

  • Пользователь
  • Сообщений: 2345
  • Пол: Мужской
    • Просмотр профиля
NES PAL composite signal simulation Shader for RetroArch
« Ответ #3 : 28 Апрель 2018, 11:28:09 »
CRT Royale
Одно не могу понять, глядя на это демо видео и прочие.
Нахрена все искажают геометрию картинки в этих шейдерах. Да, кинескопы были пузатыми и края не идеально прямые линии, как у жк, но геометрия при том всегда и везде отстроена с завода, поэтому по горизонтали и вертикали всегда прямые линии, а не гнутые сферой, пусть даже края изображения выходят за пределы кинескопа. 
Дичь полнейшая. Такое чувство, что авторы их только на картинках и фотках видели.
Да и зачем тогда существовали изображения и таблицы для настройки.

Оффлайн HardWareMan

  • Модератор
  • Сообщений: 6297
    • Просмотр профиля
NES PAL composite signal simulation Shader for RetroArch
« Ответ #4 : 28 Апрель 2018, 16:26:25 »
EVIL, я вот тоже пытался объяснять разным людишкам, но они же "лучше помнят как было".

Оффлайн EVIL

  • Пользователь
  • Сообщений: 2345
  • Пол: Мужской
    • Просмотр профиля
NES PAL composite signal simulation Shader for RetroArch
« Ответ #5 : 28 Апрель 2018, 18:51:53 »
EVIL, я вот тоже пытался объяснять разным людишкам, но они же "лучше помнят как было".
Ну реально, логично же, что искажение можно увидеть, только если глянуть на него под большим острым углом, но не при обычном использовании.
Ведь даже в каких-то совковых книгах по настройке чертили такое на рисунках
И ровной картинки и пытались добиться, несмотря на ограничения
Но куда не плюнь, а везде вот так и с этого жопа горит.
Если грубо взять скрины и маску, то выводимая картинка должна быть такой
196594-0196596-1
А в реальности так вообще примерно такой
196594-2196598-3
А на кинескопе примерно такой, когда все бордюры уедут за пределы.
196600-4196602-5

Сделать построчную отрисовку линиями
196604-6
И уже поверх этого маску
[ Указанное вложение недоступно ]

Вот это бы реально был бы "царскиий СиЭрТэ", а не эта жопа, ведь он и в жизни так же строками на маску стреляет, а там уже что получится, а не попиксельно, как уже потом.
Т.е. все эти црт шейдеры - шляпа, а имитация композита в оригинальном посте - годная.

Оффлайн evgs

  • Пользователь
  • Сообщений: 904
  • Пол: Мужской
    • Просмотр профиля
NES PAL composite signal simulation Shader for RetroArch
« Ответ #6 : 28 Апрель 2018, 20:15:17 »
Первая картинка - pal-r57shell.cgp (стандартный PAL-шейдер)
Вторая картинка - crt-royale-pal-r57shell.cgp (смешанный с CRT Royale)

Bucky O'Hare - green planet:

Bucky O'Hare - red planet:

Battletoads & Double Dragon character select screen:

Battletoads & Double Dragon level 3-3:

Prince of Persia title

Скриншоты Comix Zone (SMD), предоставленные r57shell:
https://imgur.com/a/cv4eBIV

Первый акт желтой планеты:
Звёзды на бэкграунде, пропускаемые через ПАЛ-фильтр очень интересно начинают артефачить.
Они меняют свой цвет (а тёмно-синие визуально и размер - начинают "пульсировать") при скроллинге
Именно это место интересно тем, что "звезды" скроллятся медленно, поэтому все артефакты удается разглядеть хорошо.
При записи использовалась "сочная" палитра SONY CXA2025AS
« Последнее редактирование: 28 Апрель 2018, 21:06:48 от evgs »

Оффлайн Maelstrom

  • Пользователь
  • Сообщений: 3141
  • Пол: Мужской
  • Deinonychus Antirrhopus
    • Youtube
    • Просмотр профиля
NES PAL composite signal simulation Shader for RetroArch
« Ответ #7 : 28 Апрель 2018, 20:27:31 »
Круто выглядит! Молодцы.

Оффлайн EVIL

  • Пользователь
  • Сообщений: 2345
  • Пол: Мужской
    • Просмотр профиля
NES PAL composite signal simulation Shader for RetroArch
« Ответ #8 : 28 Апрель 2018, 20:44:10 »
evgs, А на видео у тебя пузырь и без раздельных строк, а в жизни так не бывает.
196608-0

Судя по тем скринам, если искажение убрать можно, то хоть чем-то напоминает правду, но строки слишком четкие.

Оффлайн evgs

  • Пользователь
  • Сообщений: 904
  • Пол: Мужской
    • Просмотр профиля
Re: NES PAL composite signal simulation Shader for RetroArch
« Ответ #9 : 28 Апрель 2018, 20:46:30 »
Это видео с канала r57shell, автора PAL-шейдера.
Цитата
но строки слишком четкие
Напоминаю, что в UI арча куча настроек для этого шейдера (включая версию с CRT-royale)

P.S: r57shell не является автором CRT Royale
https://github.com/libretro/common-shaders/blob/master/crt/shaders/crt-royale/README.TXT
crt-royale-pal-r57shell.cgp это просто пресет, миксующий оригинальный PAL-шейдер (pal-r57shell.cg) с роялем
« Последнее редактирование: 28 Апрель 2018, 21:17:11 от evgs »

Оффлайн HardWareMan

  • Модератор
  • Сообщений: 6297
    • Просмотр профиля
NES PAL composite signal simulation Shader for RetroArch
« Ответ #10 : 29 Апрель 2018, 08:45:21 »
Вторая картинка - crt-royale-pal-r57shell.cgp (смешанный с CRT Royale)
Так ЭЛТ показывает только в полной темноте (я про ореолы вокруг ярких элементов). Как часто вы играли перед сушилкой для глаз в полной темноте? Сам эффект люминофоров верный, а ореолы днем практически не заметны. И, кстати, глубокого черного не было: люминофоры темно-серые днем.

Оффлайн EVIL

  • Пользователь
  • Сообщений: 2345
  • Пол: Мужской
    • Просмотр профиля
NES PAL composite signal simulation Shader for RetroArch
« Ответ #11 : 29 Апрель 2018, 18:06:03 »
(я про ореолы вокруг ярких элементов)
Эффект же может быть достигнут вообще в любое время. Просто добавь водымелкодисперсной пыли.

Оффлайн HardWareMan

  • Модератор
  • Сообщений: 6297
    • Просмотр профиля
NES PAL composite signal simulation Shader for RetroArch
« Ответ #12 : 29 Апрель 2018, 19:29:18 »
Осторожнее с выражениями.