| Приставки > Картриджи / диски |
| Чтение SRAM-пямяти картриджа (Резервное копирование сохранений) |
| (1/2) > >> |
| gegmaster:
Приветствую всех! Сделал флеш-картридж по схеме Рюмика c FRAM-памятью для сохранений. Для программирования картриджа переделал DVD-плеер на MediaTek MT1389. Картридж работает, программатор читает и пишет. Теперь остро стала необходимость в резервном копировании сохранений. Причины под спойлером. Решил поиграть в Shining Force 2, естественно на русском языке. В сети нашел две версии перевода от NewGame и Шедевр. Сравнив два перевода, появилось отвращение от NewGame, поэтому однозначно решено было играть в перевод от Шедевра. От Шедевра существует две версии: на 3 мб где сохранения не работают совсем и версия на 2 мб в которой сохранения работают. Беда заключалась в том, что на приставке (в эмуляторе все хорошо) этот ром запускается с проблемами (не отображаются спрайты героев, глюки с текстом), но если понажимать несколько раз Reset или выключать/включать приставку, то игра запускалась нормально. И вот здесь у меня несколько раз возникала ситуация с потерей сохранений. Да и хотелось бы на будущее при смене игры на картридже не терять сохранения. Вопрос, каким образом можно осуществить резервное копирование сохранений? Может есть какой-то способ вытащить эти сохранения с помощью программатора, в наличие есть TL866 и старенький willem? Знаю есть готовые решения на микроконтроллерах в виде дамперов, но я пока не готов к таким приобретениям. |
| Sharpnull:
Наверно не поможет, но для FlashKit MD (китайцы продают за 2400р, недавно было 2000) есть исходный код: https://krikzz.com/pub/support/flashkit-md/, можно узнать последовательность записи в регистры. |
| Rumata:
"Схема Рюмика" - это уже пугает, ибо неизвестно, что там наворочено. Я FRAM ставлю без всяких рюмиков :) ОЗУ в картридже читается точно так же, как ПЗУ. Только действующим является младший байт, старший не имеет значения. Если у тебя ПЗУ 2 Мб, то проблем вообще никаких. Адресация линейная. В самом начале 3 Мб висит ОЗУ, подробности в заголовке. Для записи используется /LWR. Если ПЗУ больше 2 Мбайт, то используется дополнительный триггер, управляемый через /TIME. Есть правда вариант размещения ОЗУ выше, в 4-й Мбайт. При использование FRAM есть некоторые сложности. Ей требуется СТРОБ АДРЕСА (где-то я об этом писал и диаграммы приводил). В приставке он формируется автоматически. В программаторе нет. Если программатор умеет работать с FRAM, то надо делать адаптер, который будет обращаться к ОЗУ с учётом дешифрации адреса. Вообще странно, что там что-то слетает :-\ |
| Rumata:
--- Цитата: Sharpnull от 26 Июль 2022, 11:40:54 ---для FlashKit MD --- Конец цитаты --- FlashKit MD на SRAM. Там всё тупо и без затей, как я писал выше. |
| gegmaster:
Sharpnull, FlashKit MD покупать мне нет необходимости, да и не известно будет ли он работать с моим флеш-картриджем. --- Цитата: Rumata от 26 Июль 2022, 11:41:37 ---ибо неизвестно, что там наворочено --- Конец цитаты --- Схема старая давно известная. Можно переключать режим сохранений с 2мб ПЗУ и с 3мб ПЗУ, дешифрация на 74HC138 и два диода. --- Цитата: Sharpnull от 26 Июль 2022, 11:40:54 ---При использование FRAM есть некоторые сложности. Ей требуется СТРОБ АДРЕСА --- Конец цитаты --- В общем простым чтением через обычный программатор, я так понял, не получится. |
| Rumata:
Да, похоже в TL этой микросхемы нет |
| Sharpnull:
Юмористическое решение: встроить в игру вывод SRAM на экран, можно с RLE/LZ, его быстро фотографируешь на телефон (даже что-то типа QR-кодов сделать можно). Когда приспичит, ввести назад 8-32КБ, можно модифицировать контроллер для быстрого ввода(?). UPD: 256*1024 бит / 3 бита за нажатие одной из 8 кнопок / 30 нажатий в секунду / 60 = 48.5 минуты. Если считать 8 кнопок по 1 биту и ввод каждый кадр, то всего 9-11 минут. UPD2: Подключаем 2 или 4 контроллера и время восстановления бэкапа не больше 6 минут :ohmy: |
| Rumata:
Может проще перевод довести до ума? |
| gegmaster:
--- Цитата: Rumata от 26 Июль 2022, 14:27:34 ---Может проще перевод довести до ума? --- Конец цитаты --- Да, эта идея меня посетила одной из первых. Вот и сейчас сижу разбираюсь в ромхакинге. Думаю во всем виновата крутая заставка Шедевра, хотя могу ошибаться. Если хватит ума разобраться как ее вырезать, то возможно проблема отвалится. |
| Rumata:
Заставку-то отрезать проблемой быть не должно. Она засунута или в хвост или в пустое место дампа. Поменять значение PC в заголовке, скорее всего как в оригинале. Вот если текст или шрифт куда-то залезли, то это хуже. |
| gegmaster:
--- Цитата: Rumata от 26 Июль 2022, 14:56:30 ---Поменять значение PC в заголовке, скорее всего как в оригинале. --- Конец цитаты --- Спасибо за подсказку. Изменил в заголовке два адреса как в оригинале и ром запустился сразу с оригинальной заставки SEGA, без заставки Шедевра. Ну далее только остается протестровать на железе. |
| Rumata:
Кстати. TL866 II+ RT809H |
| Rumata:
Кстати, а что это перевод Шедевра на 2 Мб? Я вижу только на 3 |
| gegmaster:
--- Цитата: Rumata от 26 Июль 2022, 17:38:52 ---TL866 II+ RT809H --- Конец цитаты --- А вот это уже интересно. Тогда вопрос, если вывести из слота шину адреса A0-A14 и младшую половину шины данных D0-D7, то как управлять данной микросхемой не выпаивая ее из картриджа? Сигнал /CS заведен на дешифратор HC138, а значит нужно подать какой-то двоичный код, чтобы активировать нужный выход. --- Цитата: Rumata от 26 Июль 2022, 17:54:23 ---Кстати, а что это перевод Шедевра на 2 Мб? Я вижу только на 3 --- Конец цитаты --- На сайте Шедевр автор перевода заменил патч и теперь пропатчив им оригинальный ром размер файла не меняется, а следовательно также сохранения работают. Размеры в роме тоже разные |
| Rumata:
--- Цитата: gegmaster от 26 Июль 2022, 19:42:11 ---значит нужно подать какой-то двоичный код, чтобы активировать нужный выход. --- Конец цитаты --- В первом приближении подать на А21 (у Рюмика это вроде Н20) лог. 1. (люблю я советских инженеров :D ) --- Цитата: gegmaster от 26 Июль 2022, 19:42:11 ---На сайте Шедевр автор перевода заменил патч --- Конец цитаты --- Внезапно o_0 Пойду посмотрю. |
| gegmaster:
Ну в общем как и предполагал картридж без заставки Шедевр стартует как надо. Пошел тестировать до победного :lol: |
| Rumata:
Ждём результатов |
| HardWareMan:
А я не понял: это что, получается, народу нравится перевод Шедевра но не нравится заставка Шедевра? |
| Rumata:
--- Цитата: gegmaster от 26 Июль 2022, 10:36:50 ---Беда заключалась в том, что на приставке (в эмуляторе все хорошо) этот ром запускается с проблемами (не отображаются спрайты героев, глюки с текстом), но если понажимать несколько раз Reset или выключать/включать приставку, то игра запускалась нормально. --- Конец цитаты --- Народ от этого просто в восторге и поёт осанну Шедевру. :lol: |
| gegmaster:
--- Цитата: HardWareMan от 27 Июль 2022, 07:05:15 ---А я не понял: это что, получается, народу нравится перевод Шедевра но не нравится заставка Шедевра? --- Конец цитаты --- И перевод и заставка очень нравятся, но дело тут в том, что с флеш-картриджа на 60 герцовых приставках игра стартует с глюками. Я проверял это на оригинальной приставке Genesis 1 VA6, на стародельном клоне с GO-ONE(60Hz) и на новодельном клоне SM801 (60HZ), что на флешь-картридже Рюмика, что на оригинальном флеш-картридже Krikzz'а результат одинаков. Понажимав несколько раз RESET можно добиться нормального старта на этих приставках. Единственное когда он правильно запускается это когда я приставку на SM801 перевел в 50Hz. Ни я первый обнаружил эти баги: https://www.emu-land.net/forum/index.php/topic,81385.msg1382713.html#msg1382713 Добавлено позже: Выявил я ситуацию при которой пропадают сохранения. Если после включения приставки на заставке с синими буквами SEGA выключить питание и снова запустить, то сохранения гарантировано слетают. Причем что на оригинальном роме, что с переводом результат один.Теперь бы понять это только флеш-карик от Рюмика этим грешит или на FlashKit cart MD - KRIKzz тоже самое. Возможно это какая то особенность FRAM памяти. |
| Навигация |
| Главная страница сообщений |
| Следующая страница |