Просмотр полной версии : Boulder Dash
Меня интересует как остановить время в игре Boulder Dash? Есть Poke в BOULDER DASH: 36610,0 либо POKE 31007,0:POKE 31008,0:POKE 31009,0 что они делают для меня непонятно. Что означает запись 36610,0, и там же написано POKE 31007,0:POKE 31008,0:POKE 31009,0.
В имулляторе Spectaculator есть debuger, в нем реально показано код программы? как искать значение к примеру $56?
Black Cat / Era CG
11.08.2020, 08:34
Есть Poke в BOULDER DASH: 36610,0 либо POKE 31007,0:POKE 31008,0:POKE 31009,0 что они делают для меня непонятно. Что означает запись 36610,0, и там же написано POKE 31007,0:POKE 31008,0:POKE 31009,0.
Они меняют команду, которая лежит по этому адресу в оригинале на команду NOP (NoOPeration типа).
В имулляторе Spectaculator есть debuger, в нем реально показано код программы?
Можно перевести эти адреса в хекс, хотя бы в том же виндовом калькуляторе и увидеть, что находиться по этим адресам. А находится там скорее всего уменьшение таймера и проверки.
- - - Добавлено - - -
POKE 31007,0:POKE 31008,0:POKE 31009,0
Вот по этим адресам (791F,7920,7921) лежит команда DEC (IY-3E) и похоже как раз она-то и декрементит (уменьшает) таймер. Записывая вместо нее три ноля (она длинная просто, три байта), мы ее затираем.
лежит команда DEC (IY-3E)
ачто, DEC (IY-0) нельзя было сделать поку?? :)
Помню, в своей сборке из BD1-5 в каждой версии находил эти адреса для бесконечных жизней и остановки таймера... Бумаг, естественно не осталось, но есть scl.
лежит команда DEC (IY-3E)
DEC (IY-0) нельзя было сделать поку??
и изменить другую переменную ???
изящней делать or/dec
nop не всегда прокатывает, иногда важно изменение флага
Вот по этим адресам (791F,7920,7921) лежит команда DEC (IY-3E) и похоже как раз она-то и декрементит (уменьшает) таймер. Записывая вместо нее три ноля (она длинная просто, три байта), мы ее затираем.
Да, правильно, но если записать вместо нее три ноля время не останавливается.
По адрессу 36010(8F02) уже записан нуль.
ачто, DEC (IY-0) нельзя было сделать поку?? :)
Изм. и поку, и дизассемблере - результата нет, в игре время не остановл.
Дается 150 сек. Была идея найти зн. 150-$96, но как найти?
адреса для BoulderDash действительно даны неправильные. возможно они подходят для какой-то взломанной версии.
для фирменной 25969,182 остановит время в игре, но оно зациклится при начислении бонусов в финале уровня.
значит надо убрать вызов на уменьшение в игре, но оставить его для финала.
26022,111 ; вводить естественно после загрузки игры (лучше в меню)
....значит надо убрать вызов на уменьшение в игре, но оставить его для финала.
26022,111 ; вводить естественно после загрузки игры (лучше в меню)
Не совсем понял эту фразу, если ввести 26022($65A6) код 111($6F), то игра не будет зациклится при начислении бонусов в финале уровня и перейдет на след. уровень? Этого не происходит.
По адрессу 25968($6570) находится код FD 35 F5 DEC(IY-$0B), если после прохождения уровня каждый раз, по адрессу 25969 вместо 182($В6) водить $35, тогда игра переходит на др. уровень.
По адрессу 26020($65A4) находится код 3A 01 5C LD A,($5C01) вместо $5C водить $6F(111) и игра будет нормально переходить на след. уровень?
если ввести 26022($65A6) код 111($6F), то игра не будет зациклится при начислении бонусов в финале уровня и перейдет на след. уровень? Этого не происходит.
всё, понял. у игры было несколько переизданий и код (частично) реально отличается.
26022,111 я нашёл для этой версии http://www.tzxvault.org/Spectrum/TZX/BoulderDash.zip
Выходит то же зацикливание. По адрессу 25968(6570) то же самое. По адрессу 26021(65А5) CD 70 65. Если в адресс 26022 (65А6) установить 111($6F), то получим по адрессу 26021(65А5) CD 6F 65 т.е переход на адресс 656F где находится выход из подпрограммы С9-RET.
А как Вы ищите коды? какая у Вас методика? В польском журнале "Компьютер" была статья о нахождение кодов бессмертия,не помню номер. не могу скачать.
современные эмуляторы позволяют это делать гораздо быстрее.
поняв где на экране печатается допустим время я ставлю прерывание на эту ячейку и после стараюсь понять откуда берётся значение для печати.
ZX_NOVOSIB
13.08.2020, 19:06
А как Вы ищите коды?
Это делается с помощью эмулятора и недюженного хакерского интеллекта.
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 пока не очень получается и я не знаю все его возможности. Не могу найти где почитать, посмотреть.
Выходит то же зацикливание
откуда оно возьмётся ??? я только что проверил - уровень корректно завершается.
меняй только 26022,111 и именно в той версии на которую я дал ссылку
А где находится переменная отвечающая за скорость движения монстров гоняющимся за героем?
мне это неинтересно
Bedazzle
14.08.2020, 09:00
С эмулятором Spectaculator пока не очень получается и я не знаю все его возможности. Не могу найти где почитать, посмотреть.
Именно для ковыряния мне больше нравится хоть и глючный, но EmuzWin.
Несколько раз (три-четыре достаточно) сохраняю весь слепок памяти при уменьшении жизни/энергии, после снаружи скриптом ищу ячейки, в которых есть изменение.
Байты должны в разных слепках чётко либо увеличиваться, либо уменьшаться.
Могут попасть лишние, например, координаты врагов. Но в любом случае, подозрительных ячеек получается не так много, и вполне реально исследовать вручную места, откуда происходит в них запись/чтение.
А где находится переменная отвечающая за скорость движения монстров гоняющимся за героем?
В Boulder Dash нет монстров, гонющихся за героями. Они все двигаются по своим траекториям, и им плевать где герой находится. И понятия "скорости" нет. Есть игровой фрейм, он дискретный. Все двигаются на 1 клетку за игровой фрейм. Двигаться между клетками (т.е. например на пол клетки) сама концепция не позволяет. В лучшем случае можно попытаться внедрить специальный флаг, который каждый второй фрейм не будет процессить тех же бабочек, и мин, и они окажутся "замедленными". Но это лютый изврат.
Именно для ковыряния мне больше нравится хоть и глючный, но EmuzWin.
Несколько раз (три-четыре достаточно) сохраняю весь слепок памяти при уменьшении жизни/энергии, после снаружи скриптом ищу ячейки, в которых есть изменение.
в том-же Unreal`e это всё автоматизировано. Alt+F6 (по дефолту)
Bedazzle
14.08.2020, 21:15
в том-же Unreal`e это всё автоматизировано. Alt+F6 (по дефолту)
На меня хандра нападает от его интерфейса :(
Плюс скриптом вывожу полезную инфу - адрес dec/hex, байты всех снапшотов dec/hex, и флагом выбираю искать увеличение значения или уменьшение, точно на единицу или направление вектора (энергия может получать разный урон от врагов).
И самое главное - интересен сам процесс написания небольших скриптов. :)
Именно для ковыряния мне больше нравится хоть и глючный, но EmuzWin.
Несколько раз (три-четыре достаточно) сохраняю весь слепок памяти при уменьшении жизни/энергии, после снаружи скриптом ищу ячейки, в которых есть изменение.
Байты должны в разных слепках чётко либо увеличиваться, либо уменьшаться.
Могут попасть лишние, например, координаты врагов. Но в любом случае, подозрительных ячеек получается не так много, и вполне реально исследовать вручную места, откуда происходит в них запись/чтение.
Похоже на ArtMoney.
В разных источниках есть Poke вечной жизни и т.д. Меня подмывает желание просмотреть код, куда вводится бессмертие в разных играх, возможно найдется места
с одинаковым кодом.
В польском журнале "Компьютер" есть статья наз. не помню и номер не помню, как найти места где ументшаются кол-во к примеру жизней и т. пр. На форуме есть ветка https://zx-pk.ru/threads/5787-zhurnal-quot-kompyuter-quot.html, где можно скачать журнал, но уже не скачивается. В одних файлообмениках адресса изм., в др. файлы удалены. Хороший был журнал.
Об этой статье знают все синклериста https://studfile.net/preview/2593460/page:7/. Еще статью можно найти в "ZX-Ревю" 1992г.
В польском журнале "Компьютер" есть статья наз. не помню и номер не помню, как найти места где ументшаются кол-во к примеру жизней и т. пр. На форуме есть ветка где можно скачать журнал, но уже не скачивается. В одних файлообмениках адресса изм., в др. файлы удалены. Хороший был журнал.
???
https://vtrd.in/book/ZXIZNUTR.ZIP
ну и https://www.the-tipshop.co.uk
???
https://vtrd.in/book/ZXIZNUTR.ZIP Это парвая книга с которой все и началось, напечатали в ГВЦ на заводе за пол литра спирта.
нашел - это тоже все читали https://www.dropbox.com/s/wca9lxi6y243bal/_kak_zdelat_otmy4ku_.pdf
http://avtandil.narod.ru/atari.html#Mag
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot