ROM hacking
On decembrie 28, 2021 by adminAvând fost create de mai mulți programatori sau echipe de programare diferite, datele ROM pot fi foarte diverse.
Editare hexagonalăEdit
Un editor hexagonal este unul dintre cele mai fundamentale instrumente din repertoriul oricărui ROM hacker. Editorii hexagonali sunt de obicei utilizați pentru editarea textului și pentru editarea altor date a căror structură este cunoscută (de exemplu, proprietățile elementelor), precum și pentru hacking de asamblare.
Editarea textului este una dintre cele mai de bază forme de hacking. Multe jocuri nu își stochează textul în formă ASCII și, din această cauză, au fost dezvoltate unele editoare hexagonale specializate, cărora li se poate spune ce valori de octet corespund la ce literă(e) din alfabet, pentru a facilita editarea textului; un fișier care definește aceste relații octet=literă se numește fișier „tabel”. Alte jocuri folosesc tehnici simple de compresie a textului (cum ar fi codificarea perechilor de octeți, numită și codificare cu două tăblițe sau DTE, în care anumite combinații de două sau mai multe litere sunt codificate ca un singur octet), pe care un editor hexagonal echipat corespunzător poate facilita editarea.
Un editor hexagonal este instrumentul preferat pentru a edita lucruri precum proprietățile personajelor/elementelor, dacă structura și locația acestor date este cunoscută și nu există un editor specific jocului pentru joc care să poată edita aceste informații. Unii hackeri îndrăzneți efectuează, de asemenea, editarea nivelurilor cu un editor hexazecimal, dar acest lucru este extrem de dificil (cu excepția jocurilor al căror format de stocare a nivelurilor seamănă foarte mult cu modul în care este prezentat într-un editor hexazecimal).
Editare graficăEdit
O altă abilitate de bază în hacking este hacking-ul grafic, care constă în modificarea aspectului mediilor, personajelor, fonturilor sau a altor lucruri de acest gen din joc. Formatul datelor grafice variază de la o consolă la alta, dar cele mai multe dintre primele (NES, Super NES, Game Boy etc.) stochează grafica în plăci, care sunt unități de date de 8×8 pixeli, care sunt aranjate pe ecran pentru a produce rezultatul dorit. Editarea acestor plăci este, de asemenea, posibilă cu un editor hexazecimal, dar, în general, se realizează cu un editor de plăci (cum ar fi Tile Layer sau Tile Molester), care poate afișa datele ROM într-un mod grafic, precum și găsi și edita plăci.
Hacks grafice pot varia de la modificări simple (cum ar fi să-i dai lui Luigi o crosă de golf sau să faci sprite pixelate pentru Pokemon din generația următoare) la „portarea” personajelor de la un joc la altul, până la modificări tematice în toată regula (de obicei cu modificări de palete însoțitoare; vezi mai jos).
Hacking-ul grafic mai sofisticat implică schimbarea mai mult decât a plăcilor și a culorilor, dar și a modului în care sunt aranjate plăcile, sau a grupurilor de plăci generate, oferind mai multă flexibilitate și control asupra aspectului final. Acest lucru se realizează prin editare hexagonală sau printr-un instrument specializat (fie pentru jocul specific, fie pentru un sistem specific). Un bun exemplu de hack grafic este Pokémon Torzach, un hack nefinalizat, care a încercat să adauge o generație complet nouă de Pokémon și dale în joc. Hacking-ul a fost întrerupt de atunci, dar încă servește ca un bun exemplu cu privire la ceea ce se poate realiza cu instrumentele disponibile.
Editare paleteEdit
O altă formă comună de hacking este hacking-ul de palete, în care valorile de culoare sunt modificate pentru a schimba culorile pe care un jucător le vede în joc (acest lucru merge adesea mână în mână cu hacking-ul grafic); Valorile paletelor sunt de obicei stocate în Hex. Acest lucru este destul de ușor pentru jocurile NES, a căror grafică folosește un set predefinit de culori dintre care un joc selectează; piratarea paletei în acest caz presupune modificarea culorilor care dintre acestea sunt selectate. Chestiunea este puțin mai complicată în cazul jocurilor Super NES și al jocurilor pentru alte sisteme, care stochează valori absolute de culoare RGB. Editorii de palete sunt de obicei simpli și deseori sunt împreună cu editorii de niveluri sau cu editorii grafici specifici jocului.
Editare de niveluriEdit
Una dintre cele mai populare forme de hacking ROM, editarea de niveluri presupune modificarea sau reproiectarea nivelurilor sau hărților unui joc. Acest lucru se face aproape exclusiv cu un editor special conceput pentru un anumit joc (numit editor de nivel). Editarea nivelurilor poate fi făcută pentru a face jocul mai provocator, pentru a modifica fluxul intrigii jocului sau doar pentru a da ceva nou unui joc vechi. Combinat cu un hacking grafic extins, jocul poate căpăta un aspect foarte diferit.
Editare de dateEdit
O componentă de bază a multor hack-uri (în special a jocurilor video de rol) este editarea datelor, cum ar fi proprietățile personajelor, obiectelor și inamicilor. Acest lucru se face, de obicei, fie „de mână” (cu un editor hexazecimal), dacă se cunoaște locația și structura datelor, fie cu un editor specific jocului care are această funcționalitate. Prin aceasta, un hacker poate modifica modul în care funcționează armele, cât de puternici sunt inamicii sau cum acționează aceștia etc. Acest lucru poate fi făcut pentru a face jocul mai ușor sau mai greu, sau pentru a crea noi scenarii cu care să se confrunte jucătorul.
Assembly hackingEdit
Cea mai puternică și, fără îndoială, cea mai dificilă tehnică de hacking este editarea codului propriu-zis al jocului, un proces numit ASM hacking („ASM” înseamnă „assembly”, referindu-se la tipul de limbaj de programare folosit pentru primele jocuri video). Nu există un model prestabilit pentru ASM hacking, deoarece codul variază foarte mult de la un joc la altul, dar cei mai pricepuți hackeri ASM fie folosesc un emulator echipat cu un depanator sau un tracer încorporat, fie trec ROM-ul printr-un dezasamblator, apoi analizează codul și îl modifică folosind un editor hexazecimal sau un asamblor în funcție de nevoile lor. Deși este destul de dificil în comparație cu metodele relativ simple enumerate mai sus, orice este posibil cu ASM hacking (bineînțeles, în limitele hardware-ului/software-ului platformei de joc), de la modificarea AI-ului inamic până la modificarea modului în care este generată grafica. (Desigur, posibilitățile sunt în continuare limitate de capacitatea hackerului de a înțelege și modifica codul existent.)
Dacă dezvoltatorii au folosit un limbaj tipizat, hackerul poate fi capabil să își compileze propriul cod pentru joc în același limbaj dacă are acces la un compilator adecvat. Un astfel de exemplu ar fi utilizarea limbajului C pentru a sparge jocurile Nintendo 64, deoarece MIPS-GCC poate compila cod pentru Nintendo 64.
Hacking muzicalEdit
Hacking-ul muzical este relativ rar, din cauza varietății mari de moduri în care jocurile stochează datele muzicale (de aici dificultatea de a localiza și modifica aceste date) și a dificultăților de a compune muzică nouă (sau de a porta muzică dintr-un alt joc). Având în vedere că spargerea muzicii este foarte rar întâlnită, multe hack-uri nu au nicio muzică portată/compusă adăugată. Cu toate acestea, programul SapTapper poate fi folosit pentru a sparge datele muzicale din Game Boy Advance, deoarece multe jocuri Game Boy Advance folosesc motorul M4A (numit și „Sappy Driver”) pentru muzică. Diverse alte utilitare au fost create pentru a lucra cu motorul, cum ar fi Sappy 2006.
Un alt exemplu de utilizare a aceluiași motor între jocuri este cel de pe Nintendo 64, în care majoritatea jocurilor folosesc același format; deși folosesc bănci de sunet diferite. Un utilitar cunoscut sub numele de N64 Midi Tool a fost creat pentru a edita secvențele pe care majoritatea jocurilor Nintendo 64 le folosesc, deși nu acoperă titlurile N64 first-party care folosesc un motor ușor diferit, cum ar fi Super Mario 64. Mai multe jocuri Mega Drive folosesc un motor de sunet cunoscut neoficial sub numele de „SMPS”, care a fost cercetat timp de decenii de mulți hackeri. Începând de astăzi, există diverse instrumente pentru a modifica muzica jocurilor care folosesc motorul SMPS (în special jocurile Sonic the Hedgehog), iar multe dintre ele au ajuns în Steam Workshop.
ROM expansionEdit
În general, un ROM hacker nu poate adăuga în mod normal conținut la un joc, ci doar modifica conținutul existent. Această limită poate fi depășită prin intermediul expansiunii ROM, prin care dimensiunea totală a imaginii ROM este mărită, făcând loc pentru mai mult conținut și, la rândul său, pentru un joc mai mare. Dificultatea de a face acest lucru variază în funcție de sistemul pentru care a fost creat jocul. De exemplu, extinderea unui ROM NES poate fi dificilă sau chiar imposibilă din cauza mapper-ului folosit de joc. De exemplu, dacă un mapper permite 16 bănci ROM și toate sunt folosite, extinderea ROM-ului este imposibilă fără a converti cumva jocul la un alt mapper, ceea ce poate fi ușor sau extrem de dificil. Pe de altă parte, extinderea unui joc SNES este (relativ) simplă. Pentru a utiliza spațiul adăugat, anumite părți din codul jocului trebuie modificate sau rescrise (a se vedea hacking-ul Assembly de mai sus), astfel încât jocul să știe unde să caute. Un alt tip de expansiune ROM care este destul de ușor de realizat sunt ROM-urile Game Boy Advance. ROM-urile în sine sunt în general mici, dar spațiul de memorie disponibil îl depășește uneori cu multipli de până la 17.
.
Lasă un răspuns