Автор Тема: Lossless Scaling - оживляем старые игры  (Прочитано 556 раз)

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

Оффлайн paul_met

  • Супермодератор
  • Сообщений: 8125
  • Пол: Мужской
  • Похититель эмуляции
    • Youtube
    • Просмотр профиля
Lossless Scaling - оживляем старые игры
« : 02 Январь 2025, 12:46:34 »
Вступление
Прогресс не стоит на месте и постоянно радует нас новыми фишками, казавшимися ранее невозможными. Многие знают, что за последние годы в видеоиграх стало модным (да и весьма выгодным) использовать технологии масштабирования изображения и генерации кадров. Если системе не хватает мощности, чтобы воспроизводить игру на приемлемой скорости и с хорошим качеством изображения, то на помощь могут прийти такие инновации как DLSS, FSR, XeSS. Но проблема в том, что всё это дело требует поддержку как со стороны железа, так и со стороны игр. Герой же данной темы не страдает подобными зависимостями. Небольшая программка Lossless Scaling (далее LS) является всеядной и умеет масштабировать картинку и генерировать кадры для любого приложения (будь то исходные ПК игры, эмуляторы, видеоплейеры и т.д.). В данном случае, хотелось бы остановиться именно на эмуляторах и технологии генерации кадров.

Техническая часть
Как известно, старые игры зачастую выдавали не более 30 fps (а то и меньше) и по сегодняшним меркам не отличаются плавностью картинки. Современные эмуляторы пытаются справиться с данной проблемой путём виртуального разгона ЦПУ, чтобы повысить частоту кадров целевых игр. Это помогает, но может привести к нарушению физики в игре (ускорение анимации) или нарушить стабильность. А что же делает LS? Прога генерирует недостающие кадры на лету, при этом не нарушая физики. Игровой процесс становится заметно плавнее и комфортнее. Для этого надо правильно настроить LS.

286973-0 286975-1

Так как нас интересует больше генерация кадров, настройки масштабирования затрагиваться не будут! Разберём скриншоты:
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, происходит автоматический переход в полноэкранный режим (я не смог заставить работать LS в оконном режиме). Размер картинки при этом будет равен размеру оной в окне эмулятора. Так что, если хотите картинку на весь экран - разворачивайте окно эмулятора или экспериментируйте с пунктом Scaling Type. Не переходите в полноэкранный режим в самом эмуляторе - это чревато вылетом LS (по крайней мере у меня было так)!

Выводы
При использовании LS старые игры с частотой 30 fps и ниже реально оживают - становятся плавнее. Взять, к примеру, мегадрайв - это хорошо заметно в играх, залоченных на 30 fps: Battletech, Beyond Oasis, Generations Lost и т.д. А в играх на 32x - так вообще почти во всех. Что касается SNES, то ввиду слабой анимации на данной системе плавность будет заметна даже в файтингах (например, в Killer Instinct).
В общем, после пары часов игры в таком режиме, в исходный возвращаться уже не хочется. Цена же за это удовольствие - увеличение инпутлага (я особо не заметил) и возможные мелкие артефакты (эффект ряби на воде при увеличении кол-ва генерируемых кадров). Для меня LS оказался весьма неожиданно приятным открытием (может, таковым окажется и для вас).
« Последнее редактирование: 02 Январь 2025, 14:53:13 от paul_met »

Оффлайн HayaoYokogawa

  • Пользователь
  • Сообщений: 2137
  • Пол: Мужской
  • большой и толстый розовый динозавр
    • Просмотр профиля
Lossless Scaling - оживляем старые игры
« Ответ #1 : 02 Январь 2025, 12:59:13 »
(не спрашивайте откуда).
Почему?
Я не дурак, просто не врубаюсь  :blush:
« Последнее редактирование: 02 Январь 2025, 13:12:41 от HayaoYokogawa »

Оффлайн AnyZero

  • Пользователь
  • Сообщений: 34
    • Просмотр профиля
Lossless Scaling - оживляем старые игры
« Ответ #2 : 02 Январь 2025, 13:37:15 »
Почему?
Она типа платная, хотя везде есть если поискать например на известном PlayGround или можно зарегать одним файликом, из минусов работает только на windows 10-11.
Есть абсолютно легальный бесплатный аналог, Magpie.
https://github.com/Blinue/Magpie/releases
« Последнее редактирование: 02 Январь 2025, 13:51:24 от AnyZero »

Оффлайн Freeman665

  • Пользователь
  • Сообщений: 2725
  • Пол: Мужской
    • Просмотр профиля
Lossless Scaling - оживляем старые игры
« Ответ #3 : 02 Январь 2025, 18:05:59 »
Несколько месяцев назад Витя Карасев про эту прогу ролик сделал.

Оффлайн paul_met

  • Супермодератор
  • Сообщений: 8125
  • Пол: Мужской
  • Похититель эмуляции
    • Youtube
    • Просмотр профиля
Lossless Scaling - оживляем старые игры
« Ответ #4 : 02 Январь 2025, 18:48:22 »
Несколько месяцев назад Витя Карасев про эту прогу ролик сделал.
Там он рассказывал про ПК игры, не уделяя внимание эмуляторам. Тут же наоборот.

Оффлайн PoliKarp

  • Пользователь
  • Сообщений: 750
  • Пол: Мужской
    • Просмотр профиля
Lossless Scaling - оживляем старые игры
« Ответ #5 : 13 Январь 2025, 09:04:12 »
Классная программулина. Ещё один неплохой сценарий использования — когда игра идёт в 60, а катсцены либо залочены в 30, либо вовсе являются пререндером, что чаще всего. Касаемо инпутлага, в шутаны, ртс и прочие игры, требующие оперативного мауслука — лучше не играть. Характерный "кисель" ощущается.
Насчёт Beyond Oasis заинтриговал, 8-16 битки не пробовал. Есть подозрение, что с шейдерами ретроарча в паре использовать не получится, скорее всего произойдёт лютое месиво картинки.

Оффлайн paul_met

  • Супермодератор
  • Сообщений: 8125
  • Пол: Мужской
  • Похититель эмуляции
    • Youtube
    • Просмотр профиля
Lossless Scaling - оживляем старые игры
« Ответ #6 : 13 Январь 2025, 11:13:59 »
Насчёт Beyond Oasis заинтриговал, 8-16 битки не пробовал. Есть подозрение, что с шейдерами ретроарча в паре использовать не получится, скорее всего произойдёт лютое месиво картинки.
У меня не было месива с XBR шейдером.

Оффлайн PoliKarp

  • Пользователь
  • Сообщений: 750
  • Пол: Мужской
    • Просмотр профиля
Lossless Scaling - оживляем старые игры
« Ответ #7 : 13 Январь 2025, 12:46:23 »
У меня не было месива с XBR шейдером.
Ну с ним понятно, я забыл уточнить, что скорее crt-шейдеры имел в виду)