[#74]
Re: Trudne początki z WHDLoad
@asman,
post #73
Jeśli chodzi o wyszukiwanie samomodyfikującego kodu to jest to prawie tak proste jak konstrukcja cepa. Najlprościej jest zrobić dwa zrzuty pamięci z danej gry czy programu. Pierwszy, gdy exek jest w pełni zdepakowany i zrelokowany, ja zwykle używam do tego mojego niezawodnego breakpointa, czyli $60FE na początku kodu, który potem pod Actionem podmieniam z powrotem na oryginalny kod (zwykle $48E7), tyle że nie wiem czy z włączonym cachem to będzie działać, ale zawsze możesz go wyłączyć. Drugi zrzut pamięci robisz po jakimś czasie, najlepiej w miejscu gdzie program się wywala lub ma wywalić. Potem porównujesz kod (dane pomijasz) z obu wersji za pomocą jakiegoś programu do porównywania, ja zwykle używam prostej procedury CMP (by Hali/Union) i jeśli jest taki sam to kod nie był modyfikowany, a jeżeli w czymś się różni to sprawdzasz co to jest, i jak kod to szukasz procedury co go zmienia, którą potem patchujesz.
Co do extra waitów, to po prostu 68040 jest szybsza niż 68030, i jakaś procedura może być wykonana zbyt szybko, i przez to mogą pojawiać się problemy. Ja znam dwa typy waitów: DMA wait (do muzyki) i blitter wait (do grafiki), ale pewnie mogą być jeszcze inne. Po prostu musiałbys poszukać procedury, która jest wykonywana zbyt szybko i ją spowolnić. Ale co i jak to już musisz dojść samemu.