Нашел способ как сгладить картинку в Splinter Cell Double Agent для Xbox Original (той самой лучшей версии Двойного Агента), и как бонус - получить 120fps

Прошу прощения за то что в некоторые моменты видео картинка стоит неподвижно, в это время игра работает отлично в 4K 120fps, просто запись видео не всегда корректно подхватывает выходной видеопоток. Если что просто проматывайте такие моменты видео вперед.

Кратко: Используем ShaderGlass с шейдером сглаживания "ScaleFX+rAA+AA" для апскейла до 4K, и Lossless Scaling фреймген для получения 120fps.
Обновлено: дополнил внизу инструкцию как такое сделать.
ᅠ ᅠ
В игре нативно только 640x480 и 30fps (с некорректным двоением кадров) – ранее пиксели очень бросались в глаза, и картинка двоилась и смазывалась.
Для наибольшей наглядности сравнения "до/после" смотрите на ПК на весь экран. С телефона видно не так.
ᅠ ᅠ
Решенные проблемы: ...

  • Первая проблема была в том, что с настолько громадными пикселями и лесенками не справлялись традиционные методы сглаживания (fxaa, smaa, даже xbr). Все способы вызывали мыло. А задача была снизить пиксельность и сгладить пилы-лесенки, но при этом сохранить чёткость объектов, граней и контуров.
  • Вторая проблема была в том, что эмуль Xemu при реальных 30fps игры все равно выводит их в 60гц, то есть 1 реальный кадр игры отображается дважды подряд. Из-за чего картинка двоилась и смазывалась. И к ней таким образом даже нельзя было нормально применить Lossless Scaling фреймген.

Это всё удалось решить.

Cравнения до/после смотрите на ПК на весь экран. С телефона не видно будет.

Либо ещё лучше - смотрите видос который добавил в шапку поста.

Обновлено:

Примечание: Настройка описанная ниже - делается один раз. В следующий раз как захотите поиграть - достаточно будет пары кликов.

Вот что и как нужно настроить:

  • Скачиваем спец. билд Xemu с исправлением зелёного засвета по краю экрана в SC Double Agent: с Яндекс Диск или Mega (файл qemu-system-i386w.exe);
  • Уменьшаем окошко эмуля до минимального размера 640x480 чтобы пиксели были 1:1 с экранными (чтобы так было автоматом при каждом старте в настройках эмуля "Display > Window size > 640x480" и ниже опция "Display mode > Scale 4:3")
    Если у вас в винде включено масштабирование, то в свойствах exe-файла эмуля отключить dpi scaling винды. Это нужно чтобы была максимально чёткая картинка перед апскейлом и сглаживанием;
  • В настройках эмуля включаем VSync для наиболее равномерного времени кадра (пригодится дальше для фреймгена до 120 кадров), и фоновый ввод с геймпада (чтобы даже когда мы переключаем окна всё равно можно было управлять игрой);
  • C помощью ShaderGlass копируем вывод окна эмуля:
    “Input > Window > Xemu”
    “Processing > Advanced > Allow tearing”
    “Processing > FPS > 100% (Vsync)”
    "Input > Pixel size > 1x"
  • И применяем к нему шейдер на выбор "ScaleFX+rAA+AA" или "ScaleFX+rAA+AA-fast" (с этой игрой второй даже лучше обрабатывает интерфейс) – эти два шейдера также хорошо выглядят в VR гарнитуре, и отлично дружат с фреймгеном 120fps.
    Или как вариант используйте шейдер “CRT-Royale-Smooth” – у него тоже есть особый шарм старых CRT тв, и он классно выглядит на обычных мониторах (в идеале 4K), но с этим шейдером не дружит фреймген, так что если вы выберете его вам придётся играть в 30fps.
    Как применить нужный вам шейдер в Shader Glass:
    “Shader > Choose from Library > …”
    ...и найдите в папке и выберите “RetroArch Library > presets > scalefx-plus-smoothing > "ScaleFX+rAA+AA-fast"
    ИЛИ
    ...и найдите в папке и выберите “RetroArch Library > presets > “CRT-Royale-Smooth”

    Выбранный шейдер это и есть то, что сгладит пиксели и лесенки, но оставит четкость;
  • Не забудьте сохранить собранный пресет настроек в ShaderGlass:
    “Processing > Save profile as…”
    “Processing > Set as default”
    Тогда он будет автоматически настроен и применён при следующем запуске программы.
  • К окну ShaderGlass (не к самому эмулю, а именно к ShaderGlass) также применяем ограничение до 30fps через RivaTuner – для того чтобы убрать дублирование кадров от эмулятора Xemu;
  • Запускаем игру в окошке эмуля. Далее открываем ShaderGlass, разворачиваем его на весь экран, и включаем адаптивный LSFG с нужной целевой частотой кадров, например у меня это 120fps.

В следующий раз когда будем играть:
1. Запускаем эмуль с игрой;
2. Открываем ShaderGlass и разворачиваем на весь экран;
3. Включаем LSFG фреймген, и наслаждаемся гладкой и плавной игрой!
ᅠ ᅠ

p.s.
Если вдруг после включения фреймгена LSFG картинка подёргивается / статтерит (бывает, но редко) - это не нормально. Должно быть плавно.
Исправляется легко, одним из двух вариантов:

  1. Либо выключите/включите заново LSFG горячей кнопкой (как бы рестарт фреймгена сделайте).
  2. Либо дважды нажмите курсором на любое место выходной полноэкранной картинки: Первое нажатие сменит фокус на эмуль и отключит LSFG фреймген в этот момент, второе нажатие вернёт фокус на Shader Glass и LSFG включится обратно;

Смотрите также:

6
38 комментариев