ROM hacking
Il Dicembre 28, 2021 da adminEssendo stati creati da molti programmatori o team di programmazione diversi, i dati ROM possono essere molto diversi.
Editing HexEdit
Un editor hex è uno degli strumenti fondamentali nel repertorio di ogni ROM hacker. Gli editor esadecimali sono di solito usati per modificare il testo, e per modificare altri dati di cui si conosce la struttura (per esempio, le proprietà degli oggetti), e l’hacking dell’Assemblea.
Modificare il testo è una delle forme più basilari di hacking. Molti giochi non memorizzano il loro testo in forma ASCII, e a causa di questo, sono stati sviluppati alcuni editor esadecimali specializzati, a cui si può dire quali valori di byte corrispondono a quale lettera(e) dell’alfabeto, per facilitare la modifica del testo; un file che definisce queste relazioni byte=lettera è chiamato un file “tabella”. Altri giochi usano semplici tecniche di compressione del testo (come la codifica a coppie di byte, chiamata anche codifica a doppio tile o DTE, in cui certe combinazioni di due o più lettere sono codificate come un byte) che un editor esadecimale opportunamente equipaggiato può facilitare l’editing.
Un editor esadecimale è lo strumento di scelta per modificare cose come le proprietà dei personaggi/oggetti, se la struttura e la posizione di questi dati è nota e non esiste un editor specifico del gioco che possa modificare queste informazioni. Alcuni intrepidi hacker eseguono anche l’editing dei livelli con un editor esadecimale, ma questo è estremamente difficile (eccetto per i giochi il cui formato di memorizzazione dei livelli assomiglia molto a quello presentato in un editor esadecimale).
Editing della graficaEdit
Un’altra abilità base di hacking è l’hacking della grafica, che consiste nel cambiare l’aspetto degli ambienti di gioco, dei personaggi, dei caratteri o altre cose simili. Il formato dei dati grafici varia da console a console, ma la maggior parte delle prime (NES, Super NES, Game Boy, ecc.) memorizzano la grafica in tile, che sono unità di dati di 8×8-pixel, che vengono disposti sullo schermo per produrre il risultato desiderato. Modificare queste mattonelle è possibile anche con un editor esadecimale, ma è generalmente realizzato con un editor di mattonelle (come Tile Layer o Tile Molester), che può visualizzare i dati ROM in modo grafico, così come trovare e modificare le mattonelle.
Graphics hack può variare da semplici modifiche (come dare a Luigi una mazza da golf, o fare sprites pixelati per Pokemon di generazione successiva) al “porting” di personaggi da un gioco all’altro, a cambiamenti tematici completi (di solito con cambiamenti di palette di accompagnamento; vedi sotto).
L’hacking grafico più sofisticato implica il cambiamento di più di semplici piastrelle e colori, ma anche il modo in cui le piastrelle sono disposte, o i gruppi di piastrelle generati, dando più flessibilità e controllo sull’aspetto finale. Questo viene realizzato attraverso la modifica dell’esadecimale o uno strumento specializzato (sia per il gioco specifico che per un sistema specifico). Un buon esempio di hack grafico è l’incompiuto Pokémon Torzach, un hack che tentava di aggiungere un’intera nuova generazione di Pokémon e piastrelle al gioco. L’hack è stato interrotto, ma serve ancora come un buon esempio di ciò che può essere realizzato con gli strumenti disponibili.
Palette editingEdit
Un’altra forma comune di hacking è il palette hacking, dove i valori di colore sono modificati per cambiare i colori che il giocatore vede nel gioco (questo spesso va di pari passo con il graphics hacking); i valori delle palette sono comunemente memorizzati in Hex. Questo è abbastanza facile per i giochi NES, la cui grafica utilizza un set predefinito di colori tra cui un gioco seleziona; l’hacking della tavolozza in questo caso comporta la modifica di quali di questi colori sono selezionati. La questione è leggermente più complicata con i giochi Super NES e i giochi per altri sistemi, che memorizzano valori assoluti di colore RGB. Gli editor di palette sono di solito semplici e spesso si trovano con gli editor di livelli, o con gli editor grafici specifici del gioco.
Level editingEdit
Una delle forme più popolari di ROM hacking, il level editing comporta la modifica o la riprogettazione dei livelli o delle mappe di un gioco. Questo viene fatto quasi esclusivamente con un editor fatto su misura per un particolare gioco (chiamato editor di livelli). Le modifiche ai livelli possono essere fatte per rendere il gioco più impegnativo, per alterare il flusso della trama del gioco, o semplicemente per dare qualcosa di nuovo a un vecchio gioco. Combinato con un esteso hacking grafico, il gioco può assumere un aspetto molto diverso.
Data editingEdit
Una componente fondamentale di molti hack (specialmente dei videogiochi di ruolo) è la modifica dei dati come le proprietà di personaggi, oggetti e nemici. Questo è di solito fatto o “a mano” (con un editor esadecimale) se la posizione e la struttura dei dati è nota, o con un editor specifico del gioco che ha questa funzionalità. Attraverso questo, un hacker può alterare il funzionamento delle armi, la forza dei nemici o il loro comportamento, ecc. Questo può essere fatto per rendere il gioco più facile o più difficile, o per creare nuovi scenari che il giocatore deve affrontare.
Assembly hackingEdit
La più potente, e probabilmente la più difficile, tecnica di hacking è la modifica del codice effettivo del gioco, un processo chiamato ASM hacking (“ASM” significa “assembly”, riferendosi al tipo di linguaggio di programmazione utilizzato per i primi videogiochi). Non c’è un modello fisso per l’hacking ASM, poiché il codice varia ampiamente da gioco a gioco, ma la maggior parte degli abili hacker ASM o usano un emulatore dotato di un debugger o tracciatore incorporato, o eseguono la ROM attraverso un disassemblatore, quindi analizzano il codice e lo modificano utilizzando un editor esadecimale o un assemblatore secondo le loro esigenze. Anche se abbastanza impegnativo rispetto ai metodi relativamente semplici elencati sopra, tutto è possibile con l’hacking ASM (naturalmente, entro i limiti dell’hardware/software della piattaforma di gioco), che vanno dall’alterazione dell’IA dei nemici al cambiamento di come viene generata la grafica. (Naturalmente, le possibilità sono ancora limitate dalla capacità dell’hacker di comprendere e modificare il codice esistente.)
Se gli sviluppatori hanno usato un linguaggio tipizzato, l’hacker può essere in grado di compilare il proprio codice per il gioco nello stesso linguaggio se ha accesso a un compilatore adeguato. Un esempio potrebbe essere l’uso del C per hackerare i giochi per Nintendo 64, dato che MIPS-GCC può compilare codice per Nintendo 64.
Music hackingEdit
L’hacking musicale è relativamente raro, a causa dell’ampia varietà di modi in cui i giochi memorizzano i dati musicali (da cui la difficoltà di localizzare e modificare questi dati) e le difficoltà nel comporre nuova musica (o portare musica da un altro gioco). Dato che il cracking musicale è molto raro, molti hack non hanno alcuna musica composta/portata. Il programma SapTapper può essere usato per hackerare i dati musicali del Game Boy Advance, tuttavia, poiché molti giochi per Game Boy Advance usano il motore M4A (chiamato anche “Sappy Driver”) per la musica. Varie altre utility sono state create per lavorare con il motore come Sappy 2006.
Un altro caso in cui lo stesso motore viene usato tra i giochi è sul Nintendo 64, in cui la maggior parte dei giochi usa lo stesso formato; anche se usano diversi banchi di suoni. Una utility conosciuta come N64 Midi Tool è stata creata per modificare le sequenze che la maggior parte dei giochi per Nintendo 64 usa, anche se non copre i titoli N64 first-party che usano un motore leggermente diverso, come Super Mario 64.Diversi giochi Mega Drive usano un motore sonoro non ufficiale conosciuto come “SMPS”, che è stato ricercato per decenni da molti hacker. Ad oggi, esistono vari strumenti per alterare la musica dei giochi che usano il motore SMPS (i giochi di Sonic the Hedgehog in particolare), e molti di essi si sono fatti strada nello Steam Workshop.
ROM expansionEdit
In generale, un hacker ROM non può normalmente aggiungere contenuti a un gioco, ma semplicemente cambiare il contenuto esistente. Questo limite può essere superato attraverso l’espansione della ROM, per cui la dimensione totale dell’immagine ROM viene aumentata, facendo spazio per più contenuti e, a sua volta, un gioco più grande. La difficoltà nel fare questo varia a seconda del sistema per cui il gioco è stato fatto. Per esempio, espandere una ROM NES può essere difficile o addirittura impossibile a causa del mapper usato dal gioco. Per esempio, se un mapper permette 16 banchi ROM e tutti sono usati, espandere ulteriormente la ROM è impossibile senza convertire in qualche modo il gioco in un altro mapper, il che potrebbe essere facile o estremamente difficile. D’altra parte, espandere un gioco SNES è (relativamente) semplice. Per utilizzare lo spazio aggiunto, parti del codice del gioco devono essere modificate o riscritte (vedi Assembly hacking sopra) in modo che il gioco sappia dove cercare. Un altro tipo di espansione ROM che è abbastanza facile è la ROM del Game Boy Advance. Le ROM stesse sono generalmente piccole, ma lo spazio di memoria disponibile a volte lo supera di multipli fino a 17.
.
Lascia un commento