Автор Тема: [Sega Mega Drive] Life On Mars (dump)  (Прочитано 9300 раз)

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

Оффлайн godun

  • Пользователь
  • Сообщений: 3937
    • Просмотр профиля
[Sega Mega Drive] Life On Mars (dump)
« Ответ #60 : 18 Январь 2023, 10:17:34 »
Кое-как перенес сохранение на обычный SRAM, в начале работает
на железке не пашет, на эмуле да

Оффлайн DrMefistO

  • Пользователь
  • Сообщений: 1312
  • Пол: Мужской
  • Sega Mega Drive reversing
    • Просмотр профиля
[Sega Mega Drive] Life On Mars (dump)
« Ответ #61 : 18 Январь 2023, 10:58:34 »
Кое-как перенес сохранение на обычный SRAM, в начале работает. Continue без сохранения не работает, нужно добавлять проверку.
Меня удивило, что запись сохранения как в self-flashable https://www.nesdev.org/wiki/UNROM_512, последовательность байтов такая же.
Да, оно, спасибо.

Добавлено позже:
Закрепил в начало ссылку на пост с нормальным ромом с сейвами.
« Последнее редактирование: 18 Январь 2023, 11:47:32 от DrMefistO »

Оффлайн Rumata

  • Супермодератор
  • Сообщений: 24738
    • Просмотр профиля
[Sega Mega Drive] Life On Mars (dump)
« Ответ #62 : 18 Январь 2023, 12:10:18 »
на железке не пашет, на эмуле да
Для железки надо /TIME задействовать, здесь же 4М. Как в Бейонд Оазисе. Может и заголовок править, я не знаю, как там ОС определяет схему.

Оффлайн ww

  • Emu-Land Team
  • Сообщений: 4044
  • Пол: Мужской
    • ВКонтакте
    • Youtube
    • Просмотр профиля
[Sega Mega Drive] Life On Mars (dump)
« Ответ #63 : 18 Январь 2023, 12:56:27 »
Кое-как перенес сохранение на обычный SRAM, в начале работает. Continue без сохранения не работает, нужно добавлять проверку.
Супер  :thumbup:
На генсе тоже запускается. А далеко там до сэйвов? Хочу проверить на эмуле и флэщкарике

Оффлайн DrMefistO

  • Пользователь
  • Сообщений: 1312
  • Пол: Мужской
  • Sega Mega Drive reversing
    • Просмотр профиля
[Sega Mega Drive] Life On Mars (dump)
« Ответ #64 : 18 Январь 2023, 13:15:52 »
Супер  :thumbup:
На генсе тоже запускается. А далеко там до сэйвов? Хочу проверить на эмуле и флэщкарике
Минуты две вправо идти:)

Оффлайн ww

  • Emu-Land Team
  • Сообщений: 4044
  • Пол: Мужской
    • ВКонтакте
    • Youtube
    • Просмотр профиля
[Sega Mega Drive] Life On Mars (dump)
« Ответ #65 : 18 Январь 2023, 13:55:50 »
Минуты две вправо идти:)
На Генсе сэйвы работают  :thumbup:

Оффлайн Rumata

  • Супермодератор
  • Сообщений: 24738
    • Просмотр профиля
[Sega Mega Drive] Life On Mars (dump)
« Ответ #66 : 18 Январь 2023, 14:01:50 »
А чем Генс отличается от других эмуляторов? o_0

Оффлайн DrMefistO

  • Пользователь
  • Сообщений: 1312
  • Пол: Мужской
  • Sega Mega Drive reversing
    • Просмотр профиля
[Sega Mega Drive] Life On Mars (dump)
« Ответ #67 : 18 Январь 2023, 14:27:46 »
А чем Генс отличается от других эмуляторов? o_0
Тем что он древнее зло:)

Оффлайн Rumata

  • Супермодератор
  • Сообщений: 24738
    • Просмотр профиля
[Sega Mega Drive] Life On Mars (dump)
« Ответ #68 : 18 Январь 2023, 14:36:27 »
Да ладно :D Местами лучше Фьюжена

Вот жаль под руками подходящей платки с флешкой нет. Хотя в принципе и так всё ясно

Оффлайн Sharpnull

  • Пользователь
  • Сообщений: 5154
    • Просмотр профиля
[Sega Mega Drive] Life On Mars (dump)
« Ответ #69 : 18 Январь 2023, 17:44:05 »
на железке не пашет
Попробуйте заменить в файле байт 1B2 с F8 на E0, это указывает на доступ вместо "8-bit (odd addresses)" на доступ по 2 байта, что и делает игра. Я не уверен, что нужно и где-то проверяется, поэтому не менял. Там и размер рома $0FFFFF вместо $3FFFFF, вроде никто не смотрит. Ещё можно поменять размер SRAM с 00 20 FF FF (позиция 1B8) на 00 20 0F FF, всё равно используется только 0x828 байт, а то BizHawk создаёт сохранение на 64КБ, когда нужно 4КБ.  Вообще, я только поменял адреса и вкл/выкл SRAM до и после работы с ней.
UPD: Для BlastEm нужно было поставить 1B2:E0. Добавил ром с этим и правильным размером рома и SRAM на 4КБ.
« Последнее редактирование: 19 Январь 2023, 02:29:38 от Sharpnull »

Оффлайн Ti_

  • Пользователь
  • Сообщений: 3265
  • Пол: Мужской
    • ВКонтакте
    • Youtube
    • Просмотр профиля
[Sega Mega Drive] Life On Mars (dump)
« Ответ #70 : 19 Январь 2023, 10:04:11 »
доступ по 2 байта, что и делает игра.
На evedrive-md не будет работать, так как там 8-битная sram. Только на mega.
Поэтому надо переписывать весь код, который читает/сохраняет сейвы. Менять на байтовые чтения/записи только с нечетных адресов.

Оффлайн godun

  • Пользователь
  • Сообщений: 3937
    • Просмотр профиля
[Sega Mega Drive] Life On Mars (dump)
« Ответ #71 : 19 Январь 2023, 17:18:24 »
На evedrive-md не будет работать, так как там 8-битная sram
Так на родном катридже оно как всё-таки работает то? Сейвы пишутся в те же 4 мегабайта, где и ром, или за пределы 4 мегабайт? Если в теже  где и сам ром, то нафига флешкатриджу вообще эта срам и что-то там переписывать?

Оффлайн Rumata

  • Супермодератор
  • Сообщений: 24738
    • Просмотр профиля
Re: [Sega Mega Drive] Life On Mars (dump)
« Ответ #72 : 19 Январь 2023, 18:32:30 »
На родном оно пишется во флешку, в стандартные 4М.
нафига флешкатриджу вообще эта срам
О каком флешкартридже речь? Если Эвердрайв, то он просто повторяет конфигурацию существующих картриджей. А у существующих записи в ПЗУ нет и быть не может.
С эмулятором примерно та же история, там тоже запись в ПЗУ не предполагается.

Оффлайн godun

  • Пользователь
  • Сообщений: 3937
    • Просмотр профиля
[Sega Mega Drive] Life On Mars (dump)
« Ответ #73 : 19 Январь 2023, 18:41:01 »
О каком флешкартридже речь?
обычный эвердрайв
А у существующих записи в ПЗУ нет и быть не может.
а как же тогда идет запись на родном картридже? записью управляет какой то кусок кода? верно? а если так. то этот кусок кода  находится в роме. то почему этот же код не выполняет свою функцию на флешкатридже? или это потому что там флешка не такая? или что?

Оффлайн Rumata

  • Супермодератор
  • Сообщений: 24738
    • Просмотр профиля
[Sega Mega Drive] Life On Mars (dump)
« Ответ #74 : 19 Январь 2023, 18:46:01 »
"Родной" картридж имеет НЕСТАНДАРТНУЮ конфигурацию. Это фича исключительно крикзовского Flash Kit MD.

почему этот же код не выполняет свою функцию на флешкатридже?
Потому, что кроме кода нужно ещё и железо. А его нет.


Добавлено позже:
записи в ПЗУ нет и быть не может.
« Последнее редактирование: 19 Январь 2023, 22:41:07 от Rumata »

Оффлайн Rumata

  • Супермодератор
  • Сообщений: 24738
    • Просмотр профиля
[Sega Mega Drive] Life On Mars (dump)
« Ответ #75 : 19 Январь 2023, 22:12:31 »
Кстати, можно на Али купить чистый картридж от Flash Kit MD, даже в корпусе.

Оффлайн masyanya

  • Пользователь
  • Сообщений: 545
  • Пол: Мужской
  • ...there's no knowledge that is not power...
    • Youtube
    • Просмотр профиля
[Sega Mega Drive] Life On Mars (dump)
« Ответ #76 : 21 Январь 2023, 23:11:53 »
Судя по фоткам. Заведены сигналы VA[21:1], VD[15:0], nCAS0, nCE0 и nLWR, адреса A[23:22] не заведены, отсюда выводы:
1. Только 4мб.
2. Записывается прям во FLASH память.
3. Записываться может как в режиме 16bit, так и 8Bit.
4. На эмуле глючит, потому что эмуль не умеет эмулировать (простите за каламбур) FLASH память.

Разбираем ром.

Видим что вначале вычитывается CFI (Common Flash Memory Interface).

Вот с этого адреса вызывается CFI: 0xe0ff001e (тут и далее имеется ввиду M68K PROCESSOR COUNTER, после вызова CFI у нас FLASH "исчезает" из области памяти и везде данные CFI, поэтому подобные операции делаются только из рабочей памяти консоли): [0x55*2 + 1] = 0x98 (входим в CFI).
0xe0ff0028 - Read From (читает младшими битам данных, а у 68k это нечетный адрес, выписал адреса: 0x21, 0x23, 0x25, 0x27, 0x29, 0x2b, , 0x2d, 2f, 0x31, 0x33, 0x35, 0x37, 0x39, 0x3b, 0x3d, 0x3f, 0x41, 0x43, 0x45, 0x47, 0x49, 0x4b, 0x4d, 0x4f, 0x51, 0x53, 0x55, 0x57, 0x59, 0x5b, 0x5d, 0x5f, 0x61, 0x63, 0x65, 0x67, 0x69, 0x6b, 0x6d, 0x6f, 0x71, 0x73, 0x75, 0x77, 0x79, то есть вычитывается вся область CFI)
0xe0ff0038 - [0x01] = 0xF0 выходим из CFI, после этой команды можно уже выполнять код с FLASH.

Алгоритм проверки ждет от CFI что там будет написано, - “QRY”, и главное FLASH = 64MBit (так что нужна именно S29GL064N, S29GL032N не подойдет как и S29GL128N и так далее). Так же вычитываются данные об алгоритмах стирания и проверяется наличие в самом верху адресов блоков по 8килобайт (можно открыть документашку на S29GL064N и увидеть какие именно байты ждет от нас алгоритм проверки, тут не буду выписывать, портянка до пола получится).

Всё, с защитой закончили.

Как происходит сохранение:

При сохранениях, вначале трется сектор стандартной командой JDEC, - Sector Erase.

Причем трет адресом по середине сектора в побайтном режиме, а именно:
 0x3ff001 - Erase sector, ага ток сектор весь стирается, начиная с 0x3F0000 (и да, так как нога nWE FLASH'ки соединена напрямую с nLWR, то флешь одинаково хорошо реагирует на правильные команды как размером WORD так и размером BYTE по младшим битам данных, то есть по нечетным адресам, поэтому в CFI на старте вполне норм заходит в побайтном режиме).

Затем по WORD'ам (чё не по байтам то  :lol:) пишет сохраненку, тоже начиная с середины сектора, причем проверяет не состояние машины статуса, а прям ворд читает и сравнивает с исходным значением.

В общем оно бы работало нормально, если эмуль на котором вы запускаете мог эмулировать поведение S29GL064N.

Чтоб без "вранья", есть эмулятор повторяющий поведение InviteDRIVE v4 MAX.

На нем работает.

Скачиваем, распаковываем, запускаем "run.cmd" (управление только с клавиатуры, но тут цель указать на верность сделанных выводов, да и вообще он в основном для отладки, так что не обессудьте: A = "A", S = "B", D = "C", F = "START", TAB = RESET).

Теперь разрешите откланяться, удачного Вам дня!

P.S.
 
 Судя по документации у S29GL064N (Models 06, 07, V6, V7 only) в корпусе TSOP-48 только 32 мегабита памяти на борту, так как на 13 пин выведен "ACC", в других ревизиях там "A21". Полностью для определенности напишите маркировку чипа пожалуйста.
« Последнее редактирование: 22 Январь 2023, 09:23:27 от masyanya »

Оффлайн Segaman

  • Пользователь
  • Сообщений: 3240
  • Пол: Мужской
  • Blast Processing!
    • Youtube
    • Просмотр профиля
[Sega Mega Drive] Life On Mars (dump)
« Ответ #77 : 22 Январь 2023, 11:26:57 »
Так ну тут конечно это всё очень здорово, но надо это дело перелопатить для эмулятора и флешкариков.
Иначе понту в данном сливе маловато, ибо играть невозможно  :)

Оффлайн hot

  • Пользователь
  • Сообщений: 123
    • Просмотр профиля
[Sega Mega Drive] Life On Mars (dump)
« Ответ #78 : 22 Январь 2023, 11:52:12 »
Иначе понту в данном сливе маловато, ибо играть невозможно  :)
На самом деле сохранения в этой игре не особо то и нужны. Она очень короткая, если сравнивать её с классическими Метроидами. Я прошёл её за полтора часа, исследовав все локации полностью. Думаю, если не тупить и не пытаться найти какие-то секреты, которых нет, то её можно и за час пройти.

А терминалы даже без взаимодействия с ними (и сохранения) становятся чекпоинтами, если просто рядом с ними пройти, поэтому если вдруг убьют, то начинать игру сначала не придётся.

Оффлайн Segaman

  • Пользователь
  • Сообщений: 3240
  • Пол: Мужской
  • Blast Processing!
    • Youtube
    • Просмотр профиля
[Sega Mega Drive] Life On Mars (dump)
« Ответ #79 : 22 Январь 2023, 12:47:40 »
hot, ну казуалам от этого легче не станет.
Так что думаю надо будет сесть поковырять, а в качестве примера взять принцип из Beyond Oasis. :)

Оффлайн DrMefistO

  • Пользователь
  • Сообщений: 1312
  • Пол: Мужской
  • Sega Mega Drive reversing
    • Просмотр профиля
[Sega Mega Drive] Life On Mars (dump)
« Ответ #80 : 23 Январь 2023, 09:53:09 »
Цитата
Полностью для определенности напишите маркировку чипа пожалуйста.
Указана в шапке темы или пару постами ниже.

Оффлайн masyanya

  • Пользователь
  • Сообщений: 545
  • Пол: Мужской
  • ...there's no knowledge that is not power...
    • Youtube
    • Просмотр профиля
[Sega Mega Drive] Life On Mars (dump)
« Ответ #81 : 23 Январь 2023, 12:59:31 »
Указана в шапке темы или пару постами ниже.
Ага, уже увидел, спасибо. Соответственно ревизия чипа 4-ая.


hot, ну казуалам от этого легче не станет.
Так что думаю надо будет сесть поковырять, а в качестве примера взять принцип из Beyond Oasis. :)
Ииии, вооот.

 Пофиксил проверку и сделал поддержку мапера Beyond Oasis, соответственно работает в эмуляторах и на FLASH картриджах.

P.S.
 А тут фикс запуска с "пустым" сохранением.
« Последнее редактирование: 01 Март 2024, 10:44:59 от masyanya »

Оффлайн DrMefistO

  • Пользователь
  • Сообщений: 1312
  • Пол: Мужской
  • Sega Mega Drive reversing
    • Просмотр профиля
[Sega Mega Drive] Life On Mars (dump)
« Ответ #82 : 23 Январь 2023, 13:31:49 »
Ага, уже увидел, спасибо. Соответственно ревизия чипа 4-ая.
 Ииии, вооот.

 Пофиксил проверку и сделал поддержку мапера Beyond Oasis, соответственно работает в эмуляторах и на FLASH картриджах.

P.S.
 ...надо бы ещё пофиксить запуск с "пустым" сохранением.
Спасибо, укажу ссылку в шапке.

Оффлайн lupus

  • Пользователь
  • Сообщений: 3828
  • Пол: Мужской
  • man with no face
    • ВКонтакте
    • Просмотр профиля
[Sega Mega Drive] Life On Mars (dump)
« Ответ #83 : 25 Январь 2023, 03:48:28 »
А чего там с данными внутри рома? Я в разрезе возможности перевода на русский спрашиваю.

Оффлайн Rumata

  • Супермодератор
  • Сообщений: 24738
    • Просмотр профиля
[Sega Mega Drive] Life On Mars (dump)
« Ответ #84 : 25 Январь 2023, 04:12:23 »
А что с данными? Качаешь ром и смотришь. Тексты присутствуют.

Оффлайн lupus

  • Пользователь
  • Сообщений: 3828
  • Пол: Мужской
  • man with no face
    • ВКонтакте
    • Просмотр профиля
[Sega Mega Drive] Life On Mars (dump)
« Ответ #85 : 25 Январь 2023, 07:44:02 »
А что с данными? Качаешь ром и смотришь. Тексты присутствуют.
Я про всякий изврат с самописными сжатиями и обфускациями.
Сегодня скачаю и посмотрю, конечно. Просто с мобильного тему увидел, поэтому спросить решил у тех, кто уже ковырял ром.

upd
Скачал, глянул.
Текст легко нашёлся, хрантся в простом INSI. В большинстве случаев строки добиты пробелами слева и справа до 40 символов. Переводить можно как угодно.
Шрифт сходу не обнаружил. Или графика пожата или я плохо искал...
Может быть кто-то подскажет?

Основную часть текста прицепил ниже.
« Последнее редактирование: 25 Январь 2023, 10:29:25 от lupus »

Оффлайн DrMefistO

  • Пользователь
  • Сообщений: 1312
  • Пол: Мужской
  • Sega Mega Drive reversing
    • Просмотр профиля
[Sega Mega Drive] Life On Mars (dump)
« Ответ #86 : 25 Январь 2023, 14:16:40 »
Я про всякий изврат с самописными сжатиями и обфускациями.
Сегодня скачаю и посмотрю, конечно. Просто с мобильного тему увидел, поэтому спросить решил у тех, кто уже ковырял ром.

upd
Скачал, глянул.
Текст легко нашёлся, хрантся в простом INSI. В большинстве случаев строки добиты пробелами слева и справа до 40 символов. Переводить можно как угодно.
Шрифт сходу не обнаружил. Или графика пожата или я плохо искал...
Может быть кто-то подскажет?

Основную часть текста прицепил ниже.
Т.к. игра сделана на SGDK, думаю можно даже распознать библиотечные функции и найти где используется сжатие.

Оффлайн lupus

  • Пользователь
  • Сообщений: 3828
  • Пол: Мужской
  • man with no face
    • ВКонтакте
    • Просмотр профиля
[Sega Mega Drive] Life On Mars (dump)
« Ответ #87 : 25 Январь 2023, 14:28:37 »
Т.к. игра сделана на SGDK, думаю можно даже распознать библиотечные функции и найти где используется сжатие.
Буду благодарен помощи в решении технических вопросов.
потихоньку начал переводить текст. Вдруг всё же пригодится.

Оффлайн Segaman

  • Пользователь
  • Сообщений: 3240
  • Пол: Мужской
  • Blast Processing!
    • Youtube
    • Просмотр профиля
[Sega Mega Drive] Life On Mars (dump)
« Ответ #88 : 26 Январь 2023, 10:53:01 »
lupus, шрифт есть? давай затолкаю на место старого и выдам сурс для сборки рома :)

Оффлайн lupus

  • Пользователь
  • Сообщений: 3828
  • Пол: Мужской
  • man with no face
    • ВКонтакте
    • Просмотр профиля
[Sega Mega Drive] Life On Mars (dump)
« Ответ #89 : 26 Январь 2023, 12:18:01 »
lupus, шрифт есть? давай затолкаю на место старого и выдам сурс для сборки рома :)
Не, я ж не нашёл его. Хекс-редактором текст правил, смотрел, что строчная латиница есть.
В личку черкану.