2041
Игры на консолях 1-4 поколений / Взлом ПЗУ игры на жизнь
« : 23 Март 2005, 18:13:09 »Цитата
Я бы и на сеге повзламывал, да только эмулятора с дебаггером где брейкпоинты ставить нет. А замарачиваться как GameManiac я нехочу.
Хе, а кто сказал, что я заморачиваюсь?
Всё элементарно. Брекпоинтов на обращение по адресу, конечно, нет, но можно создать брекпоинт на команду по определённому адресу (аналог "PC same" в FCEU) с помощью патч-кодов. Для этого используется команда BRA $FE, ссылающаяся на саму себя. Её хекс-код 60FE. Таким образом, если мы хотим поставить брекпоинт, например, на команду по адресу $B88A, мы пишем патч-код 00B88A:60FE. Как только игра дойдёт до этого адреса (там должна выполняться какая-то команда), она остановится.Для нахождения изменения таймера достаточно сохраниться прямо до удара, затем протрассировать и проследить за изменеием таймера.
Например, такие коды (за скобками дан геймгени, в скобках - аналогичный патч-код):
Wonder Boy in Monster World (UE)
AMVA-AA3C (00E222:6002) - постоянное мигание после удара
RHVA-A6VA (00E220:4E71) - постоянное мигание с самого начала
Эти коды легко разобрать самостоятельно, поставив брекпоинт 00E21C:60FE.
Ну вот ещё парочка кодов, не относящихся к таймерам:
Wonder Boy in Monster World (UE)
98HA-B94R (008E4E:FFFF) + 98HA-B94T (008E50:FFFF) - начать с полной экипировкой
Shining in the Darkness (U)
AJ3A-AA2C (003202:6002) - прохождение через стены в подземельях
Flintstones (U)
ADPA-AA9N (00DAEC:6000) + ZMPA-AB1R (00DAEE:C0AA) - возможность прыжка в воздухе, т.е. многократный прыжок
Этот код несовершенен по некоторым причинам и работает только на первом уровне.
