W poprzedniej części tego artykułu przedstawiłem Wam najprostszy sposób na wypruwanie zaków. W niniejszym postaram się przedstawić, jak wypruwać zrelokowane zaki.
Należy bowiem wiedzieć, że najpopularniejsze edytory muzyczne zapisują zaki przeważnie od $1000. Często, albo w edytorze, albo osobno, znajduje się specjalny program, tzw. relocator. Najczęściej relokuje zaki tylko od $1000 do dowolnego miejsca pamięci w zakresie $0200-$ffff z przyrostem co $0100. Uzbrojeni w tą wiedzę zabieramy się do konkretów. Wgrajmy np. Triadę z Timsoftu i odpalmy gierę Timtris. Po tych wszystkich interkach, kiedy dojdziemy do właściwej gry, resetujemy komputer, ale resetem w kartridżu, a nie całkiem z sieci, bo wtedy pamięć nam się skasuje! Wchodzimy do monitora. Jeżeli nie masz Action Replaya, to nie masz co nawet zaglądać tam, gdyż wiedz, że szukane zaki są zrelokowane. Wiemy, że utwory są najczęściej relokowane w normalny adres np.: $4000. Więc szukamy. Wpisz:
.I*1000
nic…
.I*2000
znowu nie ma naszych jumpów…
I tak dalej $3000, $4000…. aż do $a000 Wow! Są nasze magiczne jumpy! Teraz, aby się upewnić, że to zak, wgrywamy naszego playera i wklepujemy:
.M A000
Najeżdżamy kursorem na literę A i zmieniamy ją na cyfrę 1 i wciskamy return. Wychodzimy z monitora i odpalamy sys4000. GRA! No to mamy zaka! Ze zgraniem nie ma problemu. Należy stosować metodę opisywaną w pierwszej części tego artykułu. Podpowiem, że ten zak kończy się na adresie $B000. Ale co to? Dajemy
.I* B000
I znowu są jumpy! Kolejny zak! Wow! Podpowiem, że któryś z nich ma dwie muzyczki w jednym. Należy wpisać Poke 4006,1 i odpalić zaka. Pierwszy sukces! Jak umieścić takiego zaka we własnym programie? Ano zmienić skoki w samym playerze z $1000 i $1003 na $a000 i $a003 lub przepisać odpowiednie skoki z $a000 do $1000, tak jak to podałem wcześniej. Ten problem mamy już z głowy. Pozostają jeszcze zaki w różnych miejscach pamięci relokowanych wszędzie. Dla przykładu weźmy dentro Samaru pt.: Marihuana. Jest tam świetny zak Mitcha & Dane’a. Tego zaka szukamy tak: wpisujemy I* 0800 i jeszcze raz I* i Controlem zwalniamy przesuw textu. Szukamy naszych skoków. Jest to dosyć trudne, jeżeli program jest strasznie zagmatwany. Ale wreszcie pod $645d znajdujemy jumpy! Przepisujemy je pod $1000 i odpalamy playera. Z głośnika słychać przemiłe plumkanie.
Na koniec mała rada dla zapalonych świeżo upieczonych zak-ripperów. Ta robota jest piekielnie ciężka i czasochłonna. Trzeba mieć dużo cierpliwości, aby wypruć zaka, chociażby z Monty On The Run. I potrzebna jest jeszcze znajomość Assemblera i mapy pamięci. Życzę miłego wypruwania, gdyż jest to ostatni artykuł z tego cyklu.W następnym przedstawię wypruwanie fontów. Do zobaczenia!
H.M.MURDOCK/TROPYX/OXYGEN64
Jest to kontynuacja cyklu tekstów o tym, jak wypruwać zaki z gier i produkcji scenowych C64. W poprzedniej, jak i obecnej części zabrakło informacji o tym, iż przeglądanie pamięci w monitorze Action Replaya może być wygodniejsze poprzez zastosowanie komendy I*xxxx- gdzie xxxx to adres startowy pamięci, który chcemy przeszukać, a myślnik po adresie wskazuje na to, iż komputer ma wyświetlać dane bez przerwy. Wówczas przytrzymujemy Control i spoglądamy na to, co nam serwuje C64 na ekranie. Nie trzeba zatem wpisywać 2x komendy I*, jak to jest wspomniane w artykule.
Tekst napisałem prawdopodobnie na przełomie 1999/2000 r. przy użyciu Commodore 64 oraz edytora artykułów do magazynu dyskowego Inverse. Ukazał się on w marcu 2000 r. w magazynie Inverse #7/Oxygen64 w dziale Inne. Oryginalną treść poddałem minimalnej obróbce technicznej z uwzględnieniem poprawek interpunkcyjnych.