Skip to content

frdlss/NVIDIA-Instant-Replay-Upscale-Fix

Repository files navigation

NVIDIA Instant Replay — Upscale Fix (Shadow Play)

Этот проект автоматизирует обход бага в экосистеме NVIDIA, из‑за которого «Мгновенный повтор» (Instant Replay) иногда не апскейлит запись до целевого разрешения (например 1440p), если вы играете в нестандартном соотношении сторон — кастомное 4:3, 5:4, растянутый картинку и т.п.

Важно: так ведёт себя не у всех — зависит от драйвера, версии приложения NVIDIA, кодека и цепочки захвата. У части пользователей апскейл работает сразу; у других после смены разрешения/перезапуска IR запись оказывается «обрезанной» по размеру (например 1706×1364 вместо 2560×1440). Поддержка NVIDIA в подобных случаях может ссылаться на ограничения кодека/пайплайна; официального универсального патча под все конфиги может не быть — здесь именно автоматизация рабочего обходного пути.


⚠️ Проблема

В ряде конфигураций NVENC / цепочка записи не подхватывает выбранный в настройках апскейл до 1440p (или выше), пока система «видит» не то базовое разрешение/режим, который ожидает пайплайн. Типичный симптом: в настройках выбран выход 1440p, а клип мгновенного повтора всё равно в нативном размере с небольшими отличиями по пикселям или без upscale. То есть, если вы играете в разрешении, например, 1280×1024, а в настройках мгновенного повтора стоит 1440p или 1080p, то сохранённое видео может остаться 1280×1024, а не выбранным апскейлом, и выглядеть «квадратным», без нужного растягивания.


💡 Решение

Программа повторяет тот же сценарий, что вручную у многих срабатывает:

  1. На короткое время ставится целевое разрешение под апскейл (например 2560×1440).
  2. Делается пауза, чтобы драйвер/картинка стабилизировались.
  3. Выключается и снова включается «Мгновенный повтор» через горячие клавиши (как в NVIDIA App → сочетания; по умолчанию часто Alt+Shift+F10, у вас может быть своё сочетание).
  4. Ставится обратно ваше игровое разрешение (например 1706×1365 для 4:3).
  5. В итоге запись снова может идти в нужном масштабе (например с растягиванием до 1440p, если так настроено и так отрабатывает драйвер).

Всё делается из одного окна программы: настройки, ручной запуск сценария, журнал шагов (внизу, крупная область — можно растянуть окно по вертикали), при необходимости — включение и выключение автозапуска при входе в Windows (галочка создаёт или удаляет задачу в планировщике).


🎨 Интерфейс

  • Тёмная тема в духе панелей NVIDIA: тёмный фон, зелёный акцент (#76b900), шапка с подписью NVIDIA и переносом длинной строки подзаголовка.
  • Подсказки: наведите курсор на подпись, поле или кнопку — всплывающее пояснение.
  • Разрешения: выпадающие списки заполняются режимами основного дисплея так же, как их отдаёт Windows через драйвер (формат «ширина x высота», как в «Параметры экрана»). Нужного режима нет — пункт «Другое» и ввод ширины/высоты вручную.
  • Горячие клавиши: клик по полю → нажмите реальное сочетание; в поле не набирают текст. В config.json для AutoHotkey хранится внутренний формат отправки.
  • Лёгкие эффекты: плавное появление окна (Windows), анимация полоски под шапкой.

🛠 Технологии

  • Python + tkinter — GUI: списки разрешений (перечисление через Windows API EnumDisplaySettings), паузы, захват сочетаний клавиш, журнал, автозапуск, подсказки.
  • PowerShell — смена разрешения (Set-Resolution.ps1), установка/снятие задачи планировщика (install-autostart.ps1 / uninstall-autostart.ps1 — вызываются из программы, вручную запускать не нужно).
  • AutoHotkey v2 — должен быть установлен: программа вызывает его для имитации нажатий.
  • Планировщик заданий Windows — только если включили автозапуск в GUI (режим nvidia_replay_gui.py --autostart без окна).

Зависимости: Python 3.10+ с tkinter, PowerShell, AutoHotkey v2. Отдельный pip install не требуется.


⚙️ Как настроить (всё в программе)

  1. Установите Python 3Add to PATH), AutoHotkey v2. В NVIDIA App откройте сочетания клавиш и запомните, что назначено на вкл/выкл мгновенного повтора (часто Alt+Shift+F10).
  2. Запустите nvidia_replay_gui.pyw двойным щелчком или в терминале: py -3w nvidia_replay_gui.py — так не появится лишнее чёрное окно консоли.
  3. В блоке «Разрешения» выберите из списка целевое (апскейл) и игровое после сценария (список совпадает с режимами основного монитора в Windows). Нужной пары нет — «Другое» и ввод вручную.
  4. В «Паузы (мс)» при необходимости подстройте задержки после смены режима и между выкл/вкл мгновенного повтора (значения по умолчанию обычно рабочие).
  5. В «Сочетания (NVIDIA App)» кликните в поле и нажмите то же сочетание, что в NVIDIA App. Если вкл и выкл — одна клавиша-переключатель, поле «Вкл» можно оставить пустым.
  6. В «Автозапуск при входе в Windows» задайте паузу в секундах после входа (например 15), чтобы успели подняться рабочий стол и NVIDIA App.
  7. Нажмите «Сохранить настройки» — всё запишется в config.json рядом с программой.
  8. «Запустить сценарий» — прогнать обходной путь вручную; ход выполнения — в журнале внизу (область высокая по умолчанию; при необходимости растяните окно — журнал занимает нижнюю зону и растёт вместе с ней).
  9. Чтобы сценарий выполнялся сам после входа в учётную запись, включите «Включить автозапуск…». Рядом с nvidia_replay_gui.py должны лежать install-autostart.ps1 и uninstall-autostart.ps1. Фоновые запуски пишутся в autostart.log.

Если что-то пошло не так, текст ошибки будет в журнале и/или в окне сообщения.


📁 Основные файлы

  • nvidia_replay_gui.py — основной код приложения
  • nvidia_replay_gui.pyw — запуск через pythonw без консоли
  • Set-Resolution.ps1 — смена разрешения экрана
  • install-autostart.ps1 и uninstall-autostart.ps1 — для галочки автозапуска в GUI
  • config.json — настройки после «Сохранить» (числа и строки для AHK)
  • autostart.log — лог автозапуска из планировщика

Лицензия

См. файл LICENSE.

About

NVIDIA ShadowPlay / Instant Replay upscale workaround for stretched & custom resolutions (4:3). Python GUI. Автоматизация обхода бага апскейла в NVIDIA App.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors