Версия для печати темы

Нажмите сюда для просмотра этой темы в оригинальном формате

GBX.ru _ NDS: Эмуляторы / Утилиты _ Перенос сейвов DraSTic<=>flashcart*

Автор: arhern Воскресенье, 29 марта 2015, 17:17

Собственно в процессе переезда на реальную DS столкнулся с данной проблемой.
Итак, у проблемы два пункта, которые оба косые и оба от драстика.

1. Он некорректно обновляет файл сейва который лежит рядом с ромом если включено сохранять его в сейвах самого эмулятора.
2. Длина и спецификация отличаются. Но это простой пункт.

Для переноса ИЗ драстика:
1. Загрузить игру, выключить в эмуляторе сохранение .sav вместе с сейвами, перезапустить, сохраниться и выйти. Store in-game saves in Savestates = off
2. ВНЕЗАПНО сейв рядом с ромом не обновится, сейв будет лежать в районе sdcard/DraStic/backup и иметь расширение .dsv Ищется поиском по имени игры или по дате обновления если что.
3. Переходим к пункту два - длина. Нужно его обрезать до ровного размера, обычно это 64к, 32к или 4к, у какой игры как, в сейве драстика как и у того, чьим форком он является после этих данных идут служебные эмулятора, собственно там написано в их начале |<--Snip above... или что-то подобное, собственно с | надо обрезать хвост. Для этого надо использовать dd или что ещё. Для GUI можно использовать WinHex и UltraEdit Я использовал dd из cygwin[cygwin.com], пример выходного файла для wood kernel(для r4, wood r4 и клонов, у него дефолт сейва называется .nds.sav, а не .sav, но можно поменять, в любом раскладе сначала сохраниться на флэшкарте, а потом смотреть как назовёт если неизвестно)
dd if=drastic.gamename.dsv of=gamename.nds.sav bs=1 count=65536
Далее кидаем получившийся файл на флэшку рядом с ромом и проверяем. Для начала флэшкарт не должен орать что файл левый и не стыкуется по длине, а уж потом игра. Не забываем про регион игры, они разные!

Для переноса В драстик/desmume из сэйва флэшкарта.
1. Берём сейв, переименовываем его строго в ROMNAME.sav (nds.sav итд не катят)
2. Нужен сам ром и desmume последней версии. Скачиваем desmume, запускаем 1 раз и закрываем.
3. В папку Battery(в дефолте) кладём файл .sav, ещё раз напомню что имя должно совпадать с именем .nds рома. В папке НЕ должен лежать сейв .dsv, если уже создался - надо переместить или удалить.
4. Загружаем nds ром нужной игры, лежать он может где угодно. Любуемся на импортировавшийся сейв.
5. Ещё раз не забываем убрать галочку в драстике - Store in-game saves in Savestates, закрываем его через его exit.
5. Переносим получившийся ROMNAME.dsv в sdcard/DraStic/backup , загружаем игру как новую, не resume.

Автор: ElForastero Воскресенье, 29 марта 2015, 18:11

В обратном направлении пробовали переносить сейвы: DS -> DraStic?

Кстати, не знаю такого дистрибутива Linux, где утилита dd не шла бы изначально в пакете. Так что там все проще.)

Автор: arhern Воскресенье, 29 марта 2015, 18:38

В обратном делается через desmume -> import save, так просто дописать служебные данные иногда работает, иногда нет, что в них я ещё не знаю, исходники не читал, руки дойдут может потом.

Короче говоря суть - нафиг сходу не забываем отрубать сейвы sram в сейвах эмулятора, иначе гемор. При том ещё потом надо всё почистить если ранее было врублено или ловить во временных папках эмулятора последние версии.
Естественно при обратном процессе надо сначала вырубить, потом ещё сейвы эмулятора затереть.

Автор: ElForastero Воскресенье, 29 марта 2015, 19:45

Так DraStic - это у нас потомок DeSmuME?

Автор: arhern Воскресенье, 29 марта 2015, 21:39

Они судя по всему это не афишируют. Хотя может просто придерживаются сейвов того же формата из честно забранных/не упомненных исходников.

Автор: arhern Воскресенье, 29 марта 2015, 22:03

Дописал обратный процесс. Так же есть набор утилит. Но зная принцип и что как всяко легче такие утилиты переписать, чем искать потерянное.