Нашел способ как сгладить картинку в Splinter Cell Double Agent для Xbox Original (той самой лучшей версии Двойного Агента), и как бонус - получить 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 картинка подёргивается / статтерит (бывает, но редко) - это не нормально. Должно быть плавно.
Исправляется легко, одним из двух вариантов:
- Либо выключите/включите заново LSFG горячей кнопкой (как бы рестарт фреймгена сделайте).
- Либо дважды нажмите курсором на любое место выходной полноэкранной картинки: Первое нажатие сменит фокус на эмуль и отключит LSFG фреймген в этот момент, второе нажатие вернёт фокус на Shader Glass и LSFG включится обратно;
Смотрите также: