Важная информация

User Tag List

Показано с 1 по 4 из 4

Тема: Модификация RZX файлов

  1. #1
    Moderator Аватар для JeRrS
    Регистрация
    02.02.2005
    Адрес
    г. Екатеринбург
    Сообщений
    826
    Спасибо Благодарностей отдано 
    3
    Спасибо Благодарностей получено 
    6
    Поблагодарили
    4 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Модификация RZX файлов

    Приветствую, меня давно преследует мысль оперативно проверить релиз на играбельность и прочее, особенно если одна игра была выпущена различными релизерами (хакерами) и я вспомнил про формат прохождении RZX, но вот беда, стоит загрузить RZX файл через Spectaculator и "подсунуть" ему дамп памяти с другого релиза как прохождение мгновенно останавливается. Хотя если вызвать Poke то он на это спокойно реагирует и не сбрасывает прохождение. В общем меня интересует возможно ли адаптировать RZX под другой релиз?

  2. Этот пользователь поблагодарил JeRrS за это полезное сообщение:

    Reobne (04.09.2019)

  3. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  4. #2
    Master Аватар для Bedazzle
    Регистрация
    02.05.2015
    Адрес
    г. Таллин, Эстония
    Сообщений
    837
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Если смотреть описание формата, то там не просто дамп памяти, а снапшот внутри. Т.е. регистры тоже учавствуют.
    И т.к. разные релизы могут использовать вполне даже разные адреса в памяти, что-то будет рушиться.

  5. #3
    Master
    Регистрация
    26.11.2013
    Адрес
    г. Новосибирск
    Сообщений
    694
    Спасибо Благодарностей отдано 
    71
    Спасибо Благодарностей получено 
    14
    Поблагодарили
    13 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Интересный вопрос!
    Теоретически это возможно. Если релизы не сильно разнятся, то можно добиться синхронности. Например если просто сделан свой загрузчик. Может, если подправлена немного графика, без изменения размеров и количества спрайтов. Если подправлены тексты и шрифт, если не изменены размеры слов, не подправлена процедура печати, не перенесён шрифт в медленную память...

    Для этого, оба релиза нужно остановить в одной и той-же точке.(Поставить в отладчике точку останова, и дождаться пока прога на ней стопорнётся) Но, и чтобы фаза работы программы была одинакова, и чтобы состояние стека совпадало, и на остальные регистры тоже разумно глянуть.

    Проще, когда ты сам пишешь RZX. Выбираешь почти наобум точку останова, и ловишь первый стопарь после запуска проги, для каждого релиза. Скорее всего и стек и регистры будут как надо.

    Естественно, что если игра оптимизирована, или наоборот замедлена вставленной музыкой; если изменено управление, логика работы, карты и так далее, то синхронизации скорее всего не будет.

  6. #4
    Veteran
    Регистрация
    07.10.2006
    Адрес
    Павлоград, Днепропетровская обл., Украина
    Сообщений
    1,186
    Спасибо Благодарностей отдано 
    23
    Спасибо Благодарностей получено 
    17
    Поблагодарили
    13 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от JeRrS Посмотреть сообщение
    Приветствую, меня давно преследует мысль оперативно проверить релиз на играбельность и прочее, особенно если одна игра была выпущена различными релизерами (хакерами) и я вспомнил про формат прохождении RZX, но вот беда, стоит загрузить RZX файл через Spectaculator и "подсунуть" ему дамп памяти с другого релиза как прохождение мгновенно останавливается. Хотя если вызвать Poke то он на это спокойно реагирует и не сбрасывает прохождение. В общем меня интересует возможно ли адаптировать RZX под другой релиз?
    Не всё так просто. Если в релизе изменен код логики работы игры, или управляющие данные, плывет RZX-синхронизация - количество выполненных команд и количество чтений портов на фрейм. Это может прокатить только для релизов без изменения исполняемого кода Z80 - с изменённой графикой по старым адресам, или вообще без изменений, не считая загрузчика.

    Если соблюдается последовательность чтения портов в старом/новом релизе, теоретически можно попробовать отключить RZX-синхронизацию, читать состояние портов из RZX без неё. Но это может прокатить только если порты читаются строго в основном коде, а не в прерываниях. Если и там и там - последовательность чтения портов быстро нарушится. А для чтения строго в прерываниях прохождение скорее всего тоже поплывет, но несколько позже. Как результат - персонаж не проскочит очередное препятствие, потеряет жизнь, и дальше логика прохождения рухнет.

    - - - Добавлено - - -

    А дамп для подсовывания надо снимать/подставлять в одной и той же точке кода в обоих релизах, при этом желательно в цикле меню игры, чтобы состояние стека и используемых в данный момент программных переменных было одинаковым. Т.е. надо ставить точку останова на один и тот же адрес в обоих релизах, снимать дамп (можно даже и простой снапшот типа .sna) в одном релизе и подсовывать его в другом в этой точке останова.
    Последний раз редактировалось weiv; 04.09.2019 в 08:39.

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. RZX Archive
    от PATHNK в разделе Игры
    Ответов: 2
    Последнее: 01.11.2014, 10:29
  2. rzx-видео
    от PRO-USTAS в разделе Для начинающих
    Ответов: 11
    Последнее: 26.06.2013, 21:18
  3. The RZX Archive
    от vixen в разделе Игры
    Ответов: 1
    Последнее: 03.02.2009, 23:09
  4. rzx для запрещёных игр
    от ZEman в разделе Игры
    Ответов: 1
    Последнее: 20.05.2007, 15:32
  5. RZX и подгрузки
    от TomCaT в разделе Эмуляторы
    Ответов: 0
    Последнее: 09.10.2006, 12:06

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •