Seleziona la tua lingua
Eye of the beholder hex edit
La prima volta che completai gli episodi della saga di Eye of the Beholder non feci uso di trucchi, non ero abbastanza smaliziato. La prassi consisteva nel salvare continuamente la partita e provare alla cieca ogni strada possibile. Alla mal parata si poteva chiedere ad un amico o consultare le soluzioni sulla rivista del mese, ammesso che fossero disponibili. Ricordo quei tempi con nostalgia, un po' perché avevo tempo da spendere impazzendo a risolvere enigmi allucinanti, un po' perché si trattava di un intrattenimento più genuino, senza quell'alone di commercialità su vasta scala che i videogiochi moderni hanno.
In seguito la passione per l'informatica unita alla curiosità mi hanno portato ad esplorare la possibilità di forzare certi meccanismi del gioco grazie ad un po' di sano editing esadecimale, senza però lo scopo di barare ma semplicemente per puro amore della conoscenza. Ho provato qualche trucco e funzionano davvero!
In primo luogo occorre sapere come sono fatti i file del gioco, come i dati sono organizzati e su quali codici sono mappati i vari oggetti e funzioni. Una volta noti questi aspetti è semplice scrivere un programma che modifica i file del gioco rimpiazzando i codici alla bisogna.
Alcune funzioni sono disponibili senza il bisogno di modifiche ai file, ma semplicemente attivando la modalità scrivendo al prompt del dos durante il caricamento del gioco:
set aesop_diag=1
Durante il gioco premendo alcuni tasti si attiveranno i trucchi secondo la tabella seguente.
Tasto | Funzione |
A | Uccide tutti i nemici |
T | Abilita la modalità testuale |
I | Disabilita le collisioni |
X | Avanzamento di livello |
G | Teletrasporto |
O | Nuovo oggetto |
Tutto ciò è cosa buona e giusta per chi non ama particolarmente sporcarsi le mani col codice, tuttavia esiste una via più perversa. Trovando e sostituendo nel codice eseguibile alcune sequenze di byte, si possono abilitare funzioni avanzate di gioco.
Sequenza | Sostituta | Effetto | Note |
2A 46 08 26 88 47 1B | 2A 46 08 90 90 90 90 | Invulnerabilità | |
A9 01 00 75 05 | A9 01 00 EB 05 | Passa pareti | |
8B 46 0A 26 29 | 33 C0 90 26 89 | Super arma | Solo la prima occorrenza |
Nella versione per PC, il file del salvataggio ha un formato semplice. Esso contiene sei record, uno per ciascun membro nel gruppo. Ogni record contiene 233 byte, ciascuno dei quali ha un significato ben preciso.
I byte più interessanti sono le caratteristiche del personaggio, che si trovano all'offset 13. Esse sono codificate come quattordici byte, sette per le caratteristiche reali ed altrettanti per quelle del momento, che possono cambiare temporaneamente a seguito dell'uso della magia. La forza è codificata su due byte per tenere conto della forza eccezionale (solo per i guerrieri). Rimpiazzando i valori presenti con quelli di propria scelta si può perfino stravolgere le regole del gioco e creare un mago con forza 18/00!
Il gioco infatti non fa alcun controllo di coerenza sui dati ma si limita a leggerli e cercare nelle sue tabelle i bonus relativi.
All'offset 27 si trovano due byte per i punti ferita, uno per i punti attuali ed uno per il valore massimo. Anche questo campo è molto utile per rinvigorire i personaggi più deboli.
All'offset 29 c'è la classe dell'armatura, mentre al 34 c'è un byte che rappresenta la classe, seguito dall'allineamento morale. Questi campi sono molto interessanti per chi volesse creare paladini caotici o ranger malvagi!
All'offset 40 ci sono i punti esperienza, altro fattore importante per mettere alla pari chi è rimasto indietro. I PX sono organizzati su dodici byte, quattro per ciascuna classe dato che un personaggio può essere al massimo tripla classe. Per i personaggi singola classe i primi quattro byte sono quelli interessanti.
All'offset 172 si trova l'inventario. Esso è strutturato i 54 byte, due per ciascuno dei 27 slot di equipaggiamento. Conoscendo i codici dei vari oggetti è possibile armare il gruppo fino ai denti. Per esempio se per ciascun guerriero nel gruppo andiamo a scrivere il valore 5D 01 nella prima coppia di byte, corrispondenti allo slot della mano principale, concederemo a ciascun personaggio una spada lunga "Severius" +5.
Vogliamo corazzare il mago con una veste +5? Il codice 4D 01 va scritto nella diciottesima coppia di byte. E via dicendo...