Автор Тема: Покадровое сохранение скриншотов  (Прочитано 282 раз)

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

Оффлайн 2nd Channel

  • Пользователь
  • Сообщений: 908
  • Пол: Мужской
  • Разработчик TNU4
    • ВКонтакте
    • Youtube
    • Просмотр профиля
Покадровое сохранение скриншотов
« : 12 Декабрь 2024, 23:46:00 »
Есть ли во Fceux или в каком-либо ином эмуляторе NES возможность покадрово и автоматически сохранять скриншоты?
Желателен эмулятор, в котором можно отключать фоны и спрайты

Оффлайн Ogr

  • Пользователь
  • Сообщений: 7431
    • Просмотр профиля
Покадровое сохранение скриншотов
« Ответ #1 : 13 Декабрь 2024, 01:01:41 »
Пишешь видео с чего угодно, потом получившиеся видео сохраняешь по кадрам, вроде в virtual dab была такая функция. Чтобы не шакалилась, пишешь с максимальным битрейтом.

Оффлайн 2nd Channel

  • Пользователь
  • Сообщений: 908
  • Пол: Мужской
  • Разработчик TNU4
    • ВКонтакте
    • Youtube
    • Просмотр профиля
Покадровое сохранение скриншотов
« Ответ #2 : 13 Декабрь 2024, 02:04:09 »
Не хочу возиться с такими костылями.
Как альтернатива, во FceuX можно понизить скорость до 1% и скринить. Но так долго и не совсем удобно (приходится постоянно жать кнопку скриншота, чтобы не пропустить очередной кадр).

В ZSnes, вроде была функция остановки эмуляции и перехода на следующий кадр на кнопку. Если нет автоматического сохранения, то хотя бы такой функционал устроил

Оффлайн Ogr

  • Пользователь
  • Сообщений: 7431
    • Просмотр профиля
Покадровое сохранение скриншотов
« Ответ #3 : 13 Декабрь 2024, 03:23:10 »
Но так долго и не совсем удобно (приходится постоянно жать кнопку скриншота, чтобы не пропустить очередной кадр).
Можно сделать автоматическое нажатие при помощи программ для макросов.

Оффлайн 2nd Channel

  • Пользователь
  • Сообщений: 908
  • Пол: Мужской
  • Разработчик TNU4
    • ВКонтакте
    • Youtube
    • Просмотр профиля
Покадровое сохранение скриншотов
« Ответ #4 : 13 Декабрь 2024, 03:28:54 »
Можно сделать автоматическое нажатие при помощи программ для макросов.
Как ещё один вариант, да. Но лучше было бы, конечно, что-то более подходящее. Спасибо за советы

Оффлайн Sharpnull

  • Пользователь
  • Сообщений: 5066
    • Просмотр профиля
Покадровое сохранение скриншотов
« Ответ #5 : 13 Декабрь 2024, 06:13:18 »
UPD: Я не заметил, что в Mesen можно сохранять в PNG сразу через Lua :) Вторая версия скрипта в SaveScreenshotsMesen_v2.lua.7z.
Mesen + Lua-скрипт
Создать в папке с ромом папку с именем рома с _s на конце, например, C:\test rom.nes создать папку C:\test rom.nes_s, там будут скриншоты. Запустить игру в Mesen (который новый), открыть Debug > Script Window, открыть скрипт SaveScreenshotsMesen_v2.lua, начнётся сразу сохранение кадров, если эмуляция не на паузе, можно включать и выключать Lua-скрипт.
В Mesen можно отключать фон и спрайты. Для FCEUX можно написать похожий скрипт.
UPD2: Для консолей, которые не поддерживает Mesen, можно сделать Lua-скрипт для BizHawk, там есть void client.screenshot([string path = nil]), string event.onframeend(nluafunc luaf, [string name = nil]), string gameinfo.getromname(), про полный путь до рома не знаю.
« Последнее редактирование: 13 Декабрь 2024, 07:21:01 от Sharpnull »

Оффлайн 2nd Channel

  • Пользователь
  • Сообщений: 908
  • Пол: Мужской
  • Разработчик TNU4
    • ВКонтакте
    • Youtube
    • Просмотр профиля
Покадровое сохранение скриншотов
« Ответ #6 : 13 Декабрь 2024, 08:29:26 »
UPD: Я не заметил, что в Mesen можно сохранять в PNG сразу через Lua :) Вторая версия скрипта в SaveScreenshotsMesen_v2.lua.7z.
Mesen + Lua-скрипт
Создать в папке с ромом папку с именем рома с _s на конце, например, C:\test rom.nes создать папку C:\test rom.nes_s, там будут скриншоты. Запустить игру в Mesen (который новый), открыть Debug > Script Window, открыть скрипт SaveScreenshotsMesen_v2.lua, начнётся сразу сохранение кадров, если эмуляция не на паузе, можно включать и выключать Lua-скрипт.
В Mesen можно отключать фон и спрайты. Для FCEUX можно написать похожий скрипт.
UPD2: Для консолей, которые не поддерживает Mesen, можно сделать Lua-скрипт для BizHawk, там есть void client.screenshot([string path = nil]), string event.onframeend(nluafunc luaf, [string name = nil]), string gameinfo.getromname(), про полный путь до рома не знаю.
Благодарю. Разобрался (проверил только 2-ой вариант, первый для меня сложнее).
Только понадобилось здесь галочку поставить.


Всё работает
« Последнее редактирование: 13 Декабрь 2024, 08:53:03 от 2nd Channel »

Оффлайн Sharpnull

  • Пользователь
  • Сообщений: 5066
    • Просмотр профиля
Re: Покадровое сохранение скриншотов
« Ответ #7 : 13 Декабрь 2024, 09:55:42 »
проверил только 2-ой вариант, первый для меня сложнее
1-ю версию не нужно использовать, делает тоже самое, но лишние действия, оставил для информации. Забыл, что ставил Allow acces to I/O and OS functions. Имя скриншота на основе номера кадра, поэтому при перемотки назад или повторном прохождении будет перезапись. Номер кадра можно отобразить через настройку Preferences > Advanced > Show frame counter.