Magnetit 2002¢Raster¢¢T⑦m❎② po deseti letech jsem se kone⇨n❎ odhodlal vyrobit upravenou verzi m⑦ p
vodn logick⑦ hry Magnetit. Narozd l od origin⇧ln verze je v Magnetitu 2002 moən⑦ hr⇧t jednotliv⑦ m stnosti v libovoln⑦m po②ad , d⇧le jsem nahradil asi 6 m stnost nov⑨mi. Ovl⇧d⇧n z
st⇧v⇧ t⑦m❎② stejn⑦, pouze na ⑤vodn obrazovce je p②id⇧na zm n❎n⇧ volba ⇨ sla m stnosti tla⇨ tky SELECT a OPTION, START spou③t hru. Nemus te jiə tedy pracn❎ opisovat n❎jak⇧ hesla, ale rovnou si vyberete p② slu③n⑨ level a hrajete.¢P②eji p② jemnou z⇧bavu...¢¢Ze z⇧kulis :¢¢Ned⇧ mi to nezm nit se o tom, jak z⇧ludn⑦ bylo tyto ⑤pravy prov⇧d❎t. Jak jiə jsem ②ekl, hra je star⇧ t⑦m❎② 10 let. Na③t❎st jsem na③el se③it s pozn⇧mkami, kter⑨ mi prozradil, jak jsem m❎l data rozm st❎n⇧ po pam❎ti. Ov③em i tak to byl dost horor, protoəe jsem tehdy d❎lal v Magnetitu naschv⇧l r
zn⇧ zabezpe⇨en proti p② padn⑨m z⇧③kodn k
m, kte② by cht❎li hru upravit. Program si nap② klad na po⇨⇧tku po⇨ tal kontroln sou⇨et cel⑦ho pam❎④ov⑦ho prostoru hry a kdyə nesouhlasil, RESET a zdar. Ale tohle odstranit byla celkem legrace.¢¢Daleko v❎t③ z⇧hul pro mozkov⑦ buky n⇧sledoval p②i hled⇧n pam❎④ov⑦ho m sta, kam si hra uchov⇧v⇧ ⇨ slo pr⇧v❎ ②e③en⑦ m stnosti - to je pot②eba v❎d❎t kv
li jeho po⇨⇧te⇨n mu nastaven , aby se dalo za⇨ nat od libovoln⑦ m stnosti. Vzpomn❎l jsem si, əe jsem to tehdy velmi "kamufloval" r
zn⑨mi triky, jako nap②.¢¢1.)¢V pam❎ti nen ⇨ slo m stnosti nikde nikde uloəeno p② mo, ale je tam hodnota zm❎nen⇧ XOR funkc s n❎jakou konstantou. => Ned⇧ se naj t v pam❎ti.¢¢2.)¢K pam❎④ov⑦mu m stu s ⇨ slem m stnosti (kter⑦ je nav c pozm❎n❎no), se nikdy nep②istupuje p② mo, ale indexovan❎, a to pokaəd⑦ jinak. => Nelze naj t instrukci kter⇧ by p② mo ⇨etla ⇨i zapisovala na hledanou adresu.¢¢3.)¢Na n❎kter⑨ch m stech v kdu byly vloəeny kamuflovac odskoky, samop②episovac kd a fale③n⑦ podprogramy.¢¢Vypadalo to, əe s t m nehnu. Pak jsem zvolil jinou metodu a m sto abych hledal l⑦⇨ky v kdu, hledal jsem kazetu v ③upl ku. Kazetu s p
vodn m zdroj⇧kem v MACu65 se mi naj t poda②ilo, a tak jsem mohl s ⑤əasem v o⇨ ch sledovat spousty z⇧ludn⑨ch metod.¢¢Jen p⇧r p② klad
:¢¢M sto prost⑦ho¢ lda mistnost¢se pouəije¢ ldx #123¢ lda mistnost-123,x¢¢Jindy se pouəije¢ jsr blafak¢ ldx #99¢na1 lda mistnost-197,x¢a v podprogramu "blafak" najdete mezi hromadou jin⑨ch instrukc ch ty podstatn⑦, kter⑦ d❎laj ¢ pla ;n⇧vr.adresa¢ pla ;n⇧vr.adresa¢ ldx #197¢ jmp na1¢¢P② padn❎ jin⑨ zp
sob¢ ldx kons1¢ stx na1+1¢na1 ldy #0¢ lda mistnost-37,y¢ ldx #0¢ stx na1+1¢kde na adrese "kons1" se nach⇧z hodnota 37, coə znamen⇧, əe program si uprav ldy #0 na ldy #37, na⇨te data a ihned pot⑦ zm❎n instrukci zp❎t na ldy #0.¢¢Kdyə takhle vid te zdroj⇧k, je to samoz②ejm❎ kr⇧sn❎ p②ehledn⑦, ale nezapomete, əe p②i disassembleraci nic takov⑦ho nespat② te. Takəe sl⇧va budiə provol⇧na star⑨m kazet⇧m, ze kter⑨ch se mi i po spoust❎ let poda②ilo p②e⇨ st zdroj⇧ky a d ky tomu vytvo②it Magnetit 2002. :-)