Разработка и ромхакинг > Ромхакинг и программирование
Кто поможет вытащить спрайты из SNES?
(1/1)
DMI3Y:
Нужно из этой игры Joe and Mac 2: Lost in the Tropics вытащить финального босса, в спрайтах. Кто поможет? :? Или подскажите какой прогой пользоваться. На сайтах такого спрайта нет, всё перерыл
Sharpnull:
Открываете Mesen-S (или другой эмулятор как bsnes-plus), доходите до босса, открываете окно Debug -> Sprite Viewer: Ctrl+S для сохранения всех спрайтов на экране, так делаете для каждого нужного кадра. Там есть Lua-скрипты, что возможно поможет сохранить все кадры.

Добавлено позже:
Знаю ещё два метода:
* Правильный и очевидный - изучить код, чтобы узнать структуры данных и т. п. Будут получены палитры, тайлы, карты (tilemap).
* Автоматизированный способ описанный мной выше. Требует некоторых знаний программирования.
Отключить в эмуляторе фоны (в Mesen - Options > Video > Advanced: Hide background layer 0/1/2/3), если так неудобно играть, то можно записать геймплей без отключения фонов (Mesen - Tools > Movies > Record) и после воспроизвести (Play) с отключёнными фонами. Записать lossless (без потерь) видео средствами эмулятора (а не дурацким Bandicam и т. п.) в месте с нужными спрайтами (Mesen - Tools > Video Recorder > Record: Camstudio). С помощью ffmpeg нарезать видео на кадры (PNG). С помощью Python и библиотеки PIL (pillow) найти все спрайты на кадрах, используя какой-нибудь метод "заливки" (обход графа), чтобы отделить связанные пиксели от сплошного фона. Позже удалить дубликаты спрайтов.
Из минусов: спрайты могут быть наложены (главный герой + босс, например), тогда они не подойдут или придётся вручную удалять. Из плюсов: в конце получим готовые спрайты в отдельных файлах.
Witch:
А есть сейв перед боссом? А то не хочется проходить всю игру.
Sharpnull:

--- Цитата: Witch от 20 Октябрь 2020, 12:35:10 ---А есть сейв перед боссом?
--- Конец цитаты ---
Зачем, если savestate несовместимы между эмуляторами и версиями.
Введите пароль MHDQ FDPS NJTP BGFB и GG читы 6DC4-3D64 (Invincibility), B9C1-3467 (Infinite Lives Player 1). Выйти из деревни, идти вниз и влево, потом линейно минут 10.
Witch:
С неуязвимостью не пускают к боссам, а если её отключить у меня реакция уже не та пройти несколько динозавров подряд.
Sharpnull:

--- Цитата: Witch от 20 Октябрь 2020, 19:36:39 ---С неуязвимостью не пускают к боссам
--- Конец цитаты ---
Вот это поворот. Я в Mesen-S DevWin 0.4.0.66 использовал этот пароль и именно эти читы, чтобы пройти до последнего босса.
Witch:
Может читы не полностью работают из-за конкретного эмулятора snes9x-1.53-win32-x64?
DMI3Y:

--- Цитата: Sharpnull от 20 Октябрь 2020, 06:40:27 ---Открываете Mesen-S (или другой эмулятор как bsnes-plus), доходите до босса, открываете окно Debug -> Sprite Viewer: Ctrl+S для сохранения всех спрайтов на экране, так делаете для каждого нужного кадра. Там есть Lua-скрипты, что возможно поможет сохранить все кадры.

Добавлено позже:
Знаю ещё два метода:
* Правильный и очевидный - изучить код, чтобы узнать структуры данных и т. п. Будут получены палитры, тайлы, карты (tilemap).
* Автоматизированный способ описанный мной выше. Требует некоторых знаний программирования.
Отключить в эмуляторе фоны (в Mesen - Options > Video > Advanced: Hide background layer 0/1/2/3), если так неудобно играть, то можно записать геймплей без отключения фонов (Mesen - Tools > Movies > Record) и после воспроизвести (Play) с отключёнными фонами. Записать lossless (без потерь) видео средствами эмулятора (а не дурацким Bandicam и т. п.) в месте с нужными спрайтами (Mesen - Tools > Video Recorder > Record: Camstudio). С помощью ffmpeg нарезать видео на кадры (PNG). С помощью Python и библиотеки PIL (pillow) найти все спрайты на кадрах, используя какой-нибудь метод "заливки" (обход графа), чтобы отделить связанные пиксели от сплошного фона. Позже удалить дубликаты спрайтов.
Из минусов: спрайты могут быть наложены (главный герой + босс, например), тогда они не подойдут или придётся вручную удалять. Из плюсов: в конце получим готовые спрайты в отдельных файлах.

--- Конец цитаты ---
Спасибо за дельный совет

Добавлено позже:

--- Цитата: Sharpnull от 20 Октябрь 2020, 06:40:27 ---Открываете Mesen-S (или другой эмулятор как bsnes-plus), доходите до босса, открываете окно Debug -> Sprite Viewer: Ctrl+S для сохранения всех спрайтов на экране, так делаете для каждого нужного кадра. Там есть Lua-скрипты, что возможно поможет сохранить все кадры.

Добавлено позже:
Знаю ещё два метода:
* Правильный и очевидный - изучить код, чтобы узнать структуры данных и т. п. Будут получены палитры, тайлы, карты (tilemap).
* Автоматизированный способ описанный мной выше. Требует некоторых знаний программирования.
Отключить в эмуляторе фоны (в Mesen - Options > Video > Advanced: Hide background layer 0/1/2/3), если так неудобно играть, то можно записать геймплей без отключения фонов (Mesen - Tools > Movies > Record) и после воспроизвести (Play) с отключёнными фонами. Записать lossless (без потерь) видео средствами эмулятора (а не дурацким Bandicam и т. п.) в месте с нужными спрайтами (Mesen - Tools > Video Recorder > Record: Camstudio). С помощью ffmpeg нарезать видео на кадры (PNG). С помощью Python и библиотеки PIL (pillow) найти все спрайты на кадрах, используя какой-нибудь метод "заливки" (обход графа), чтобы отделить связанные пиксели от сплошного фона. Позже удалить дубликаты спрайтов.
Из минусов: спрайты могут быть наложены (главный герой + босс, например), тогда они не подойдут или придётся вручную удалять. Из плюсов: в конце получим готовые спрайты в отдельных файлах.

--- Конец цитаты ---
А допустим взять игру Felix the Cat на NES и отключить задний фон, то сам спрайт чёрного цвета (felix) и обычный фон чёрного цвета. Как в данной ситуации быть? Менял палитру, меняется вместе со спрайтом
Навигация
Главная страница сообщений

Перейти к полной версии