1
Общий / Lossless Scaling - оживляем старые игры
« : 02 Январь 2025, 12:46:34 »
Вступление
Прогресс не стоит на месте и постоянно радует нас новыми фишками, казавшимися ранее невозможными. Многие знают, что за последние годы в видеоиграх стало модным (да и весьма выгодным) использовать технологии масштабирования изображения и генерации кадров. Если системе не хватает мощности, чтобы воспроизводить игру на приемлемой скорости и с хорошим качеством изображения, то на помощь могут прийти такие инновации как DLSS, FSR, XeSS. Но проблема в том, что всё это дело требует поддержку как со стороны железа, так и со стороны игр. Герой же данной темы не страдает подобными зависимостями. Небольшая программка Lossless Scaling (далее LS) является всеядной и умеет масштабировать картинку и генерировать кадры для любого приложения (будь то исходные ПК игры, эмуляторы, видеоплейеры и т.д.). В данном случае, хотелось бы остановиться именно на эмуляторах и технологии генерации кадров.
Техническая часть
Как известно, старые игры зачастую выдавали не более 30 fps (а то и меньше) и по сегодняшним меркам не отличаются плавностью картинки. Современные эмуляторы пытаются справиться с данной проблемой путём виртуального разгона ЦПУ, чтобы повысить частоту кадров целевых игр. Это помогает, но может привести к нарушению физики в игре (ускорение анимации) или нарушить стабильность. А что же делает LS? Прога генерирует недостающие кадры на лету, при этом не нарушая физики. Игровой процесс становится заметно плавнее и комфортнее. Для этого надо правильно настроить LS.

Так как нас интересует больше генерация кадров, настройки масштабирования затрагиваться не будут! Разберём скриншоты:
Frame Generation - оставляем как есть, так как иного выбора в текущей версии программы нет.
Mode - кол-во генерируемых кадров для достижения целевой частоты (X2 для 30=>60, X3 для 20=>60 и X4 для 15=>60). Чем меньше множитель, тем стабильнее картинка.
Resolution scale - как показала практика, наиболее качественная картинка получается, при ползунке в крайнем правом положении.
Performance - добавляет производительности, но и добавляет артефактов (для 2D игр лучше отключить).
Sync mode - оставить по умолчанию, если не нужны разрывы изображения или частота монитора не больше 60 гц.
Max frame latency - манипуляции с задержками кадров. Я оставил как есть (экспериментируйте).
Draw FPS - показ счётчика кадров в левом верхнем углу, что является индикатором работы программы.
Capture - очень неоднозначный пункт, который наверняка будет зависеть от конкретного эмулятора / приложения. Я оставил в положении WGC, так как в DXGI изображение частенько дёргалось. При выборе GDI я не увидел никаких визуальных отличий от WGC (так что, тут паритет).
Double buffering - актуально только для режима WGC, и судя по краткому всплывающему описанию, добавляет стабильности изображению.
Все неоговоренные настройки оставлены по умолчанию, так как не оказывают никаких видимых эффектов (как мне показалось).
Crop input - позволяет подрезать изображение со всех сторон (например, если мешает меню эмулятора или статусная панель).
Как это работает
Выводы
При использовании LS старые игры с частотой 30 fps и ниже реально оживают - становятся плавнее. Взять, к примеру, мегадрайв - это хорошо заметно в играх, залоченных на 30 fps: Battletech, Beyond Oasis, Generations Lost и т.д. А в играх на 32x - так вообще почти во всех. Что касается SNES, то ввиду слабой анимации на данной системе плавность будет заметна даже в файтингах (например, в Killer Instinct).
В общем, после пары часов игры в таком режиме, в исходный возвращаться уже не хочется. Цена же за это удовольствие - увеличение инпутлага (я особо не заметил) и возможные мелкие артефакты (эффект ряби на воде при увеличении кол-ва генерируемых кадров). Для меня LS оказался весьма неожиданно приятным открытием (может, таковым окажется и для вас).
Прогресс не стоит на месте и постоянно радует нас новыми фишками, казавшимися ранее невозможными. Многие знают, что за последние годы в видеоиграх стало модным (да и весьма выгодным) использовать технологии масштабирования изображения и генерации кадров. Если системе не хватает мощности, чтобы воспроизводить игру на приемлемой скорости и с хорошим качеством изображения, то на помощь могут прийти такие инновации как DLSS, FSR, XeSS. Но проблема в том, что всё это дело требует поддержку как со стороны железа, так и со стороны игр. Герой же данной темы не страдает подобными зависимостями. Небольшая программка Lossless Scaling (далее LS) является всеядной и умеет масштабировать картинку и генерировать кадры для любого приложения (будь то исходные ПК игры, эмуляторы, видеоплейеры и т.д.). В данном случае, хотелось бы остановиться именно на эмуляторах и технологии генерации кадров.
Техническая часть
Как известно, старые игры зачастую выдавали не более 30 fps (а то и меньше) и по сегодняшним меркам не отличаются плавностью картинки. Современные эмуляторы пытаются справиться с данной проблемой путём виртуального разгона ЦПУ, чтобы повысить частоту кадров целевых игр. Это помогает, но может привести к нарушению физики в игре (ускорение анимации) или нарушить стабильность. А что же делает LS? Прога генерирует недостающие кадры на лету, при этом не нарушая физики. Игровой процесс становится заметно плавнее и комфортнее. Для этого надо правильно настроить LS.
Так как нас интересует больше генерация кадров, настройки масштабирования затрагиваться не будут! Разберём скриншоты:
Frame Generation - оставляем как есть, так как иного выбора в текущей версии программы нет.
Mode - кол-во генерируемых кадров для достижения целевой частоты (X2 для 30=>60, X3 для 20=>60 и X4 для 15=>60). Чем меньше множитель, тем стабильнее картинка.
Resolution scale - как показала практика, наиболее качественная картинка получается, при ползунке в крайнем правом положении.
Performance - добавляет производительности, но и добавляет артефактов (для 2D игр лучше отключить).
Sync mode - оставить по умолчанию, если не нужны разрывы изображения или частота монитора не больше 60 гц.
Max frame latency - манипуляции с задержками кадров. Я оставил как есть (экспериментируйте).
Draw FPS - показ счётчика кадров в левом верхнем углу, что является индикатором работы программы.
Capture - очень неоднозначный пункт, который наверняка будет зависеть от конкретного эмулятора / приложения. Я оставил в положении WGC, так как в DXGI изображение частенько дёргалось. При выборе GDI я не увидел никаких визуальных отличий от WGC (так что, тут паритет).
Double buffering - актуально только для режима WGC, и судя по краткому всплывающему описанию, добавляет стабильности изображению.
Все неоговоренные настройки оставлены по умолчанию, так как не оказывают никаких видимых эффектов (как мне показалось).
Crop input - позволяет подрезать изображение со всех сторон (например, если мешает меню эмулятора или статусная панель).
Как это работает
- Скачиваем LS (не спрашивайте откуда).
- Запускаем игру на эмуляторе и саму LS.
- Активировать LS можно двумя способами:
- Нажать кнопку Scale в правом верхнем углу проги и сменить фокус на эмулятор (кликнуть на его окно). Через 5 сек LS активируется.
- Нажать горячую комбинацию кнопок (CTRL+ALT+S). Эмулятор должен быть в фокусе при этом. Комбинацию можно сменить в настройках.
Выводы
При использовании LS старые игры с частотой 30 fps и ниже реально оживают - становятся плавнее. Взять, к примеру, мегадрайв - это хорошо заметно в играх, залоченных на 30 fps: Battletech, Beyond Oasis, Generations Lost и т.д. А в играх на 32x - так вообще почти во всех. Что касается SNES, то ввиду слабой анимации на данной системе плавность будет заметна даже в файтингах (например, в Killer Instinct).
В общем, после пары часов игры в таком режиме, в исходный возвращаться уже не хочется. Цена же за это удовольствие - увеличение инпутлага (я особо не заметил) и возможные мелкие артефакты (эффект ряби на воде при увеличении кол-ва генерируемых кадров). Для меня LS оказался весьма неожиданно приятным открытием (может, таковым окажется и для вас).