Tak ako som sľúbil je tu druhá časť návodu pre Apatcher, ale tato časť je určená len pre skúsených užívateľov.
Musím upozorniť, že som „takmer“ všetky príkazy preštudoval a pochopil. Bohužial jeden tu ani nespomeniem (rundll|x.dll|y[|dialog]) a príkazy replacetext a replaceunicode som netestoval. Kto by chcel vediet viac práve o týchto príkazoch bude musieť navštíviť fórum na www.oslik.ru. Ostatné fungujú skvele, viď príklad na konci. Ako na Apatcher je spomenuté tu. Okrem formátovania textov v patchoch, dokáže Apatcher do patchov vkladať dialógové okná, ktoré môžu byť zobrazené počas aplikovania patchu. Tieto dialógy slúžia nielen na zobrazenie rôznych informácií, ale poskytujú možnosť výberu užívateľom. To znamená, že je možné v patchoch vytvoriť rôzne scénare aplikovania jednotlivých jeho častí. Zoznam a popis jednotlivých príkazov: replace:oldhex:newhex[:dialog] Príkaz nahradí staré „oldhex“ dáta novými „newhex“ dátami. Otázka „dialog“ je nepovinná ,ale v prípade že je, nahradenie sa vykoná len vtedy ak je odpoveď „Yes“. „oldhex“ a „newhex“ musia byť dáta v šestnástkovej sústave (hexadecimálnej). Príklady použitia: replace:433A5C7369766F73:45 - nahradí vždy replace:433A5C7369766F73:45:Aplikovat? - nahradí iba ak je kliknuté na „Yes”. ![]() replacefile:search:entered:file[:dialog] Príkaz nahradí staré dáta „search“ novými dátami, ktoré sú v „dump“ súbore s názvom „file“. Otázka „dialog“ je nepovinná ,ale v prípade že je, nahradenie sa vykoná len vtedy ak je odpoveď „Yes“. Premenná „entered“ určuje koľko sekcií zo súboru „file“ sa má vložiť do firmwaru. Zvyčajne je „entered“ 0, čo znamená všetky sekcie. Príklady použitia: replacefile:524F4C465F696D61676500000000000000:0:mod.dmp replacetext:oldtext:newtext[:dialog] Príkaz nahradí starý text „oldtext“ novým textom „newtext“. Otázka „dialog“ je nepovinná ,ale v prípade že je, nahradenie sa vykoná len vtedy ak je odpoveď „Yes“. Text sa zapisuje bez úvodzoviek a je vo formáte ASCII. Príklad použitia: replacetext:sound:music replaceunicode:oldtext:newtext[:dialog] To isté ako v príkaze replacetext iba text sa zapisuje vo formáte Unicode. Príklad použitia: replaceunicode:sound:music set:flag:value[:dialog] Nastaví premennú „flag“ (z rozsahu 0 až 127) na hodnotu „value“ (0 alebo 1) podľa odpovede užívateľa na otázku „dialog“. Hodnota „dialog“ je nepovinná. Príklady použitia: set:99:0 - nastaví premennú 99 na 0 set:99:1 - nastaví premennú 99 na 1 set:99:1:Nastavit premennu 99 na 1? - ak je kliknuté na „Yes“ je premenna 99 nastavená na 1, pri kliknutí na „No“ je nastavená na 0. ![]() set:99:0:Nastavit premennu 99 na 1? - vždy je premenná 99 nastavená na 0, nezáleží na výbere užívateľa (to isté ako set:99:0) not:flag Invertuje hodnotu premennej „flag“. Príklad použitia: not:99 label:value Je návestie pre skok. Hodnota čísla „label“ musí byt jedinečná. Znamienko čísla „label“ sa neberie do úvahy, iba absolútna hodnota. Návestie je využívané príkazmi selectbox, jump a jumpn. Ak použijete niektorý z týchto príkazov, príkazy v patchi sa nevykonávajú až po zodpovedajúce návestie. Príklad použitia: label:10 jump:step:flag Príkaz preskočí na dané miesto ak je premenná „flag“ nastavená na 1. Hodnota „step“ určuje ako sa má dané miesto najsť. Ak je „step“ kladné číslo, alebo 0 (step>=0), preskočí sa „step“ príkazov. Ak je „step“ záporné číslo (step<0), preskočí sa na návestie „step“. Príklady použitia: jump:-10:99 - skočí na riadok s "label:10" ak je premenná 99 nastavená na 1 jump:2:99 - preskočí dva príkazy, ak je premenná 99 nastavená na 1 ... label:10 jumpn:step:flag Príkaz preskočí na dané miesto ak je premenná „flag“ nastavená na 0. Popis je rovnaký ako pre príkaz jump. Príklady použitia: jumpn:-10:99 - skočí na riadok s "label:10" ak je premenná 99 nastavená na 0 jumpn:2:99 - preskočí dva príkazy, ak je premenná 99 nastavená na 0 ... label:10 break[:х:dialog] Príkaz podľa hodnoty „x“ buď ukončí beh patchu a/alebo zobrazí dialógové okno podľa s otázkou „dialog“. Hodnoty „x“ a „dialog“ sú nepovinné. Hodnota „x“ je žiadna,0,1,2 alebo 3. Príklady použitia: break - aplikácia patchu sa vždy ukončí break:0:Iba info! - zobrazí sa text a aplikácia patchu pokračuje. ![]() break:1:Uz otazka. - aplikovanie patchu sa ukončí ak je kliknuté na „Yes“. break:2:Uz otazka. - aplikovanie patchu sa ukončí ak je kliknuté na „No“. ![]() break:3:Info a koniec. – zobrazí sa text a aplikácia patchu sa ukončí. ![]() include:x.sxp Príkaz aplikuje patch z externého súboru „x.sxp“. Príklad použitia: include:01_Change_eidpic_path_to_E.sxp - aplikuje tento patch. selectbox:title:str_1:d_1:str_2:d_2:.... str_n:d_n Zobrazí dialógové okno s otazkou „title“ a s moznosťami výberu „str_1“, „str_2“,... „str_n“. Po výbere užívateľa je vykonaný príslušný skok. Formát skoku je možné zapísať dvomi možnosťami ak d_n je kladné čislo skočí sa o d_n príkazov dopredu, v prípade, že d_n je záporné skočí sa na toto návestie. Príklad použitia: selectbox:Pretaktovat MMC ?:na 16MHz:-10:na 24MHz:-20:na 48MHz:-30:nepretaktovat:-40 replace:030052E30900000A020000CA000052E3:02 replace:0320A0E3DC8E00EA0C68005808009FE5:02 label:10 replace:013084120338A0112348A0110C00A0E3FF10A0E3:0000A0E10A0054E30340A093 break label:20 replace:013084120338A0112348A0110C00A0E3FF10A0E3:0000A0E10A0054E30240A093 break label:30 replace:013084120338A0112348A0110C00A0E3FF10A0E3:0000A0E10A0054E30140A093 label:40 break ![]() Tak to je asi tak všetko, a teraz hurá do úprav patchov. Jeden taký upravený je v poslednom príkaze. Stačí skopírovať a vložiť do Apatchera. Niektorý budú namietať, že to išlo spraviť ešte elegantnejšie, ale toto bol môj prvý pokus a viem, že funguje. Takže ak niekto upraví nejaký patch, nech sa s nami oň podelí vo fóre.
|