современные эмуляторы позволяют это делать гораздо быстрее.
поняв где на экране печатается допустим время я ставлю прерывание на эту ячейку и после стараюсь понять откуда берётся значение для печати.
Вид для печати
современные эмуляторы позволяют это делать гораздо быстрее.
поняв где на экране печатается допустим время я ставлю прерывание на эту ячейку и после стараюсь понять откуда берётся значение для печати.
goodboy, Выходит то же зацикливание. По адрессу 25968(6570) то же самое. По адрессу 26021(65А5) CD 70 65. Если в адресс 26022 (65А6) установить 111($6F), то получим по адрессу 26021(65А5) CD 6F 65 т.е переход на адресс 656F где находится выход из подпрограммы С9-RET.
А где находится переменная отвечающая за скорость движения монстров гоняющимся за героем?
Мы тоже не пальцем деланные. Там размер программ 10-45Кб это не сравнить с гегобайтами. На старом ZX-Spectrum мне было легче. Можно было запускать подпрограммы и смотреть, что они делают. С эмулятором Spectaculator пока не очень получается и я не знаю все его возможности. Не могу найти где почитать, посмотреть.
Именно для ковыряния мне больше нравится хоть и глючный, но EmuzWin.
Несколько раз (три-четыре достаточно) сохраняю весь слепок памяти при уменьшении жизни/энергии, после снаружи скриптом ищу ячейки, в которых есть изменение.
Байты должны в разных слепках чётко либо увеличиваться, либо уменьшаться.
Могут попасть лишние, например, координаты врагов. Но в любом случае, подозрительных ячеек получается не так много, и вполне реально исследовать вручную места, откуда происходит в них запись/чтение.
В Boulder Dash нет монстров, гонющихся за героями. Они все двигаются по своим траекториям, и им плевать где герой находится. И понятия "скорости" нет. Есть игровой фрейм, он дискретный. Все двигаются на 1 клетку за игровой фрейм. Двигаться между клетками (т.е. например на пол клетки) сама концепция не позволяет. В лучшем случае можно попытаться внедрить специальный флаг, который каждый второй фрейм не будет процессить тех же бабочек, и мин, и они окажутся "замедленными". Но это лютый изврат.
На меня хандра нападает от его интерфейса :(
Плюс скриптом вывожу полезную инфу - адрес dec/hex, байты всех снапшотов dec/hex, и флагом выбираю искать увеличение значения или уменьшение, точно на единицу или направление вектора (энергия может получать разный урон от врагов).
И самое главное - интересен сам процесс написания небольших скриптов. :)
Похоже на ArtMoney.
В разных источниках есть Poke вечной жизни и т.д. Меня подмывает желание просмотреть код, куда вводится бессмертие в разных играх, возможно найдется места
с одинаковым кодом.
В польском журнале "Компьютер" есть статья наз. не помню и номер не помню, как найти места где ументшаются кол-во к примеру жизней и т. пр. На форуме есть ветка https://zx-pk.ru/threads/5787-zhurna...uter-quot.html, где можно скачать журнал, но уже не скачивается. В одних файлообмениках адресса изм., в др. файлы удалены. Хороший был журнал.
Об этой статье знают все синклериста https://studfile.net/preview/2593460/page:7/. Еще статью можно найти в "ZX-Ревю" 1992г.