Se sei uno di noi:
ajax-loader
14 Avatar di RemtonJDulyak RemtonJDulyak
15
Tempo di Lettura in Minuti
di Valerio Parlavecchia

2l9ljrp

“Andiamo avanti”, disse Arthur con un cenno della testa, sfilando le due spade. William ne seguì l’esempio, scrutando nell’oscurità davanti a loro.

Ahmed diede una rapida occhiata al suo libro di incantesimi, accertandosi di avere tutto chiaro in mente, e Cu Chulain pregò gli dei di garantirgli il loro favore. Il corridoio era buio, la visibilità molto limitata.

L’ambiente era molto umido, e si sentiva un lieve suono, come di chiodi battuti sul pavimento. Ad un certo punto, si trovarono ad un bivio; pronti al tutto fecero un passo avanti e…

cover

…andò via la corrente elettrica!

 

 

Preambolo

Correvano gli anni ’90, gli anni in cui andavo alle superiori e studiavo informatica (“studiavo” per modo di dire, in realtà con quel poco che sapevo ero comunque avanti rispetto ai docenti).

Di videogiochi ne avevo tanti, ai tempi li si comprava piratati direttamente nei negozi, e ce li si scambiava con gli amici.

A volte capitava di trovarsi davanti ad alcuni giochi particolarmente difficili, oppure ci si trovava a vivere (come il sottoscritto) in un buco di merda della Terronia orientale una ridente e piccola comunità della Puglia, in cui lo “sbalzo di tensione” ed il black-out sono realtà quotidiane, soprattutto quando piove (con la pioggia ancora oggi, con il bel tempo almeno ora è stabile), distruggendo ore di progressi (a volte anche lo stesso PC) in una frazione di secondo.

In queste condizioni “energetiche”, uno deve fare una scelta importante tra le seguenti opzioni:

Un VeroNerd™ i cheat se li faceva in casa, non li andava a cercare in giro!
  • Mando tutto a fanculo, e niente più giochi!
  • Con tanta pazienza ricomincio dall’ultimo salvataggio (o dall’inizio) e salvo più spesso.
  • Mi rimbocco le maniche, e trovo un modo di risolvere il problema.

Un VeroNerd™ è geneticamente incapace di scegliere la prima opzione, quindi la scartiamo a priori.

La seconda opzione, pur essendo più che valida in termini di nerdismo, a volte deve essere scartata per questioni di tempo (troppi giochi da giocare!) o praticità (troppi giochi da giocare!).

Resta la terza opzione, che aprirà anche altre strade, di cui parleremo però in seguito.

 

Nei Favolosi Anni 90™, i cheat li si leggeva sulle riviste (come il mitico Zzap!), ce li si scambiava a voce (o sulle BBS, per chi ci bazzicava), oppure si era costretti a farseli in casa. In genere, io cercavo di farmeli in casa, in un certo modo.

 

 

 

Gli studi di informatica

Alla fine delle scuole medie, quando mi intestardii sul voler andare all’istituto biologico agrario, per continuare gli studi insieme al mio migliore amico, mio padre mi rispose con un caldo: “Scordatelo, è troppo lontano e ci metti troppo tempo ad andare e tornare. Piuttosto, dato che sei bravo con i computer, vai a studiare informatica.”

Non ho mai voluto studiare informatica (al di là che non ho mai voluto studiare in generale)

Innanzitutto, qualche tempo dopo scoprii che mi ci sarebbero voluti solo 15 minuti in più per arrivare all’istituto biologico agrario (ma ormai il danno era fatto), e poi mi resi anche conto che quelli che dovevano insegnarmi l’informatica, di informatica non ne sapevano una beata minchia erano molto esperti.

Al di là del professore di Sistemi, che comunque stuzzicava la nostra mente ed il nostro ingegno spingendoci alla mentalità del troubleshooting & brainstorming, molto importante in qualunque campo, non solo nella programmazione, degli studi di informatica delle superiori, fondamentalmente mi rimase in testa solo una cosa:

I numeri, nel computer, vengono memorizzati a partire dalla cifra meno significativa, o più semplicemente “al contrario”

Nel caso di un numero decimale, teoricamente significherebbe che “365″ lo scriviamo “563″. Nel nostro caso la storia si fa un po’ più complessa, ma procediamo per gradi.

 

 

Cosa serve per iniziare?

Per prima cosa, una copia di backup del file di salvataggio su cui lavoreremo! Non si sa mai, si potrebbero far danni!

Come scritto nella premessa, teoricamente ho studiato informatica alle superiori, ma di tutto il percorso di studi, l’unica cosa che abbia mai messo in pratica è stata la nozione su come i numeri vengano memorizzati. Quello che qui ci serve è seguire la regola del potere.

Come nel Grande Mondo Reale™, infatti, anche nella nostra piccola realtà ludica regna una legge non scritta:

Chi ha le informazioni, ha il potere

Ma quali sono queste informazioni, e come possono essere utilizzate?

Le informazioni dipendono dal gioco specifico, ovviamente.

colonize

Nello screenshot qui sopra, da Sid Meier’s Colonization, ho evidenziato in rosso tre sezioni, due in cima (nome della città e soldi), ed una sul fondo (risorse della città). In altri giochi ci saranno altre informazioni; ad esempio, nei GdR le informazioni utili saranno i nomi dei personaggi, e le loro caratteristiche.

Se non conoscete Colonization, conoscetelo!

 

 

Cosa facciamo ora con questi numeri?

Per prima cosa li convertiamo in esadecimale (Hex), con l’aiuto di una calcolatrice (quella di Windows va bene), apriamo il savegame con un editor ASCII/Hex (Notepad non va bene, in questo caso), che ci dia i numeri in esadecimale, ed andiamo a cercarci questi dati.

Riprendiamo l’esempio di Colonization di cui sopra. I nostri 906,151 gold diventeranno, in esadecimale, 0D D3 A7. Come detto prima, le cifre vanno scritte in ordine inverso, diventando quindi A7 D3 0D. Questa è la stringa che dobbiamo cercare nel nostro savegame. Una volta individuata, possiamo modificarla per alterare i soldi a nostra disposizione, ma in che modo?

save-money

Come vediamo nello screenshot del salvataggio, la stringa è seguita da un byte di valore 00, poi uno di valore 37.

Ora, il 37 sicuramente “appartiene” a qualcos’altro, ma non siamo certi dello 00. La cosa più semplice è andare per tentativi (tutto il sistema si è sempre basato su questo, dopotutto!).

Proviamo a “massimizzare” il valore dei 4 byte, portiamolo su FF FF FF FF (4.294.967.295, tantissimo!), poi ricarichiamo il gioco:

after-max

Qualcosa non è andata proprio come ci aspettavamo, ma siamo comunque vicini al risultato ottenuto.

Questo -1 è per noi indicativo, in quanto ci spiega che il gioco gestisce i soldi come numeri interi relativi (quindi gli interi positivi e negativi).

Ne consegue, applicando una regola fissa dell’informatica nella gestione dei numeri interi relativi, la prima metà dei valori possibili con quei byte rappresenta i numeri positivi, mentre la seconda rappresenta i numeri negativi.

Andiamo quindi a posizionarci a metà valore, cambiando quel precedente FF FF FF FF in FF FF FF 7F (2.147.483.647, cioé tanto comunque!):

after-half

Questa volta ha funzionato! Quindi ora sappiamo con certezza come e dove andare a cambiare i valori per avere più soldi, vai con la flotta di galeoni e con le schiere di coloni!

Ma aspetta, non è finita!

Noi, però, non ci accontentiamo solo dei soldi, vero? Vogliamo anche che le nostre colonie abbiano tutte le risorse di cui necessitano, in modo da focalizzare la nostra flotta di galeoni (vedi su) nel trasporto delle schiere di coloni (vedi su di nuovo).

A questo punto, riprendiamo l’editor esadecimale, ed andiamo a cercare le nostre città. Prendiamo ad esempio Isabella, di cui allo screenshot più sopra.

Scorrendo scorrendo nel savegame, arriviamo al punto che ci interessa (i due byte che precedono il nome sono le coordinate sulla mappa, non mettete le città in mare, per favore):

colony

Ora, grazie allo screenshot di prima (ora è tutto molto più facile, lanciando i giochi sotto DOSBox, dato che possiamo avere più finestre aperte e non dobbiamo prendere gli appunti su carta come un tempo), vediamo le risorse di Isabella:

resources

La nostra Isabella ha Food(1), Sugar(50), Tobacco(0), Cotton(o), Furs(18), non abbiamo bisogno per ora di elencarle tutte. Partiamo dall’idea che il savegame utilizzi due byte per ogni risorsa (dato che con i magazzini la città può avere più di 300 pezzi per risorsa, sappiamo che il valore supera i 255 di un byte).

Dobbiamo, quindi, cercare una sequenza che sia (HEX) 01 00 32 00 00 00 00 00 12 00, che prontamente troviamo:

string

Se, infatti, controlliamo le due coppie di byte successive (HEX 24 00 9E 00) e le convertiamo in decimale, otteniamo 36 (Wood) e 158 (Ore).

La verifica finale la abbiamo con quel 2C 01, che corrisponde a 300 (Muskets). Ora che sappiamo dove sono conservate le risorse delle singole città, possiamo giostrarne i magazzini a nostro piacimento.

Mostra Spoiler ∨

Con un po’ di lavoro, ora che siamo a conoscenza della “dimensione” in byte della città, e della posizione delle risorse nella stessa, possiamo giostrare un po’ con i dati, e scoprire anche le altre informazioni.

Perché, dopotutto, spendere tempo e risorse per far crescere la città, quando possiamo semplicemente portarla al massimo con un rapido Hex-Editing?

Un suggerimento, alla cella 403 dello screenshot del savegame c’è una cella di valore 0C (12), e Isabella è una città da 12 abitanti. Ci sarà un collegamento tra i due?

Mostra Spoiler ∨

 

 

Posso fare altro con l’Hex-Editing?

Le possibilità sono limitate solo dalla pazienza, e dalla competenza.

Alcuni Hex-Editors vanno a volte a cambiare parti del codice stesso, ma le mie competenze in questo campo sono nulle, quindi non affronto l’argomento, posso dire che recuperai da qualche parte un file dati di X-Wing, da sovrascrivere all’originale, che consentiva ai caccia ribelli di avere la stessa armatura e potenza di fuoco (e volume di fuoco) di uno Star Destroyer classe Imperial!

Una modifica che ero solito fare ai tempi delle superiori, per evitare pagine di fotocopie, era di cercarmi nell’eseguibile o nei file dati le parole usate come protezione del gioco, e cambiarle con una parola standard.

Lo feci per X-Wing e per TIE-Fighter, per rivendere il file modificato ai compagni di scuola (loro sceglievano la “password universale”, io gli portavo il floppino, loro mi davano le mie 1.500 lire per il servizio).

Questo però non è sempre fattibile, in alcuni giochi non sono riuscito a trovare questi dati, e quindi ho mantenuto le fotocopie.

 

 

Un esempio completo (o quasi)

Veniamo alla parte che preferisco dell’Hex Editing, modificare i savegame dei videogiochi di ruolo.

La mia esperienza di Hex Editing in questo campo è focalizzata principalmente su Eye of the Beholder (di cui nell’intro e nella cover), ma ebbi una fase di interesse anche per altri giochi, tra i quali Wizardry 7 – Crusaders of the Dark Savant, del quale però, purtroppo, non riesco a trovare gli appunti (ma prima o poi me ne andrò in vacanza dai miei, e cercherò di ritrovare tutti i miei vecchi appunti, anche per altri giochi).

In EOB ho decifrato quasi interamente il blocco dati corrispondente ad un personaggio all’interno di un savegame.

Alcuni byte ancora mi sfuggono, dato che sono un po’ pigro nello sperimentare, visto che ciò che mi serve l’ho trovato che non trovo alcun “impatto” in gioco, e non li ho visti cambiare nel corso delle partite, ma voglio condividere quello che ho scoperto, anche perché EOB merita sempre di essere rigiocato, imho.

Il salvataggio di EOB si presenta così (per comodità mostro solo il blocco che ci interessa per il singolo personaggio):

eob-character

Questo è il primo personaggio del party (Arthur), ed andremo a studiare il savegame partendo da lui (i dati si ripetono con uno schema statico, quindi non c’è bisogno di analizzare tutto il party, basta fare attenzione alla posizione del personaggio).

Nel blocco-personaggio, avremo (in ordine):

  • 1 byte per lo “slot” del personaggio: questo byte serve solo a dire al programma “qui inizia il personaggio #”, il valore va da 00 a 05 (sei personaggi in tutto)
  • 1 byte di attivazione del personaggio: se 00 lo slot non viene popolato, se 01 lo slot viene popolato ed i dati successivi vengono letti, lasciate un solo slot a 01 per giocare in hard mode
  • 10 byte per il nome del personaggio: accetta alcuni caratteri speciali (.-?*, per esempio), ma non distingue tra maiuscole e minuscole, tutte le lettere diverranno maiuscole
  • 1 byte “sconosciuto”: non ho capito a cosa serva
  • 14 byte per le caratteristiche: allocati a coppie, indicano nell’ordine Forza (STR), percentuale della forza (per personaggi con 18), Intelligenza (INT), Saggezza (WIS), Destrezza (DEX), Costituzione (CON), Carisma (CHA). Il minimo è 1, il massimo è 25 (Hex 19). La coppia indica attuale/effettivo (in caso di effetti che alterino i punteggi)
  • 2 byte per i Punti Ferita: il valore massimo è 127 (Hex 7F), dopodiché va in negativo. Due valori per attuali/massimi
  • 1 byte per la Classe Armatura: al momento in cui indossate un’armatura o uno scudo verrà ricalcolata in automatico, il “top” è -127 (Hex 80)
  • 1 byte “sconosciuto”: non ho capito a cosa serva
  • 1 byte per razza e sesso: valori nella tabella seguente

race-sex-table

  • 1 byte per la classe: valori nella tabella seguente, non mi spiego l’esistenza di un Chierico/Mago/Mago, forse usata internamente al gioco per qualche funzione

class-table

  • 1 byte per l’allineamento: valori nella tabella seguente; si può avere finalmente un Paladino Caotico Malvagio! L’allineamento serve solo alle classi con incantesimi clericali per definire se possano avere i causa ferite (personaggi malvagi)

alignment-table

 

  • 1 byte per il ritratto: non ho fatto una tabella di conversione valore-ritratto, sperimentate direttamente voi
  • 1 byte per la fame: il valore va da 00 (affamato) a 64 (100% pieno)
  • 3 byte per i livelli: classe 1, classe 2, classe 3, potete lasciare a 00 quelli delle classi non attive
  • 12 byte per gli XP: 4 byte per ogni classe, potete lasciare a 00 00 00 00 quelli delle classi non attive. Il valore massimo è 7F FF FF FF (salvato come FF FF FF 7F), pari a 2,147,483,647 XP, più che sufficienti per il massimo livello. conviene fermarsi più in basso, per non andare in negativo quando si ammazzano mostri
  • 4 byte “sconosciuti”: non ho capito a cosa servano
  • 30 byte per gli incantesimi da mago memorizzati: 6 byte per ogni livello di potere, con l’Hex editing si possono memorizzare le palle di fuoco come incantesimi di primo livello, ma poi quando si riposa si torna alla normale divisione. Gli incantesimi Read MagicKnock mandano il gioco in crash quando vengono lanciati (divide error), mentre gli incantesimi Stinking CloudCloudkill non hanno alcun effetto. Valori nella tabella seguente

memorized-spells-list

  • 30 byte per gli incantesimi da chierico memorizzati: 6 byte per ogni livello di potere, con l’Hex editing si possono memorizzare le palle di fuoco come incantesimi di primo livello, ma poi quando si riposa si torna alla normale divisione. L’incantesimo Protection From Lightning non ha alcun effetto in gioco. Valori nella tabella seguente

memorized-cleric-spells

  • 4 byte per gli incantesimi da mago conosciuti: qui la cosa si fa un po’ più “scomoda” per chi non è pratico. Questi byte sono cumulativi, nel senso che sono la somma dei valori dei vari bit, e ad ogni valore del byte corrisponde una specifica lista di incantesimi. Avere, ad esempio, il byte numero 1 con valore 255 (Hex FF) significherà conoscere tutti gli incantesimi di primo livello, più l’incantesimo invisibility (secondo livello). I valori sono come nella tabella seguente (divisa per byte)

known-wizard-spells

  •  54 byte per l’inventario: ogni slot di inventario utilizza due byte. L’ordine degli slot è indicato dall’immagine seguente, e a questo link una tabella con la lista degli oggetti. Curiosità: sembrerebbe che mettere come valore della faretra (slot 17) E4 00 (Dec 228) corrisponda all’avere 26 frecce, e non sembra se ne possano avere di più (credo, ma non ho verificato, che sia la somma degli Hex delle varie frecce); non usando mai le frecce (la mia seconda fila è fatta di caster), francamente non mi interessa più di tanto

inventory-slots

  • 60 byte “sconosciuti”: ancora oggi non ho capito a cosa servano (fail per me? Forse si)

 

Ora che avete questa “miniguida” al savegame di EOB, potete iniziare il gioco con i vostri Guerrieri/Chierici in prima fila, e Ladri/Chierici/Maghi in seconda fila (per massimizzare le cure, avere l’artiglieria in seconda fila, ed anche gli scassinatori, che non fa mai male), con tutte le stat a 25, e l’equipaggiamento migliore. Pochi mostri saranno una sfida, in queste condizioni.

Mostra Spoiler ∨

 

 

Quali altri orizzonti?

Come già detto, le possibilità sono ampie. Tutto sta a raccogliere più informazioni possibili sui dati di gioco, e farsi il culo a trovarli ed impegnarsi ad individuarli nel file di salvataggio.

Vorrei giusto fare una nota “di merito” per X-Com (capitoli 1 e 2, gli altri non ho testato). Nella splendida saga degli alieni, infatti, esiste un folder per ogni savegame (GAME_##), al cui interno sono presenti diversi file .DAT, relativi ai diversi elementi di gioco. Qui c’è da divertirsi, alla ricerca delle locazioni dei diversi dati.

Un indizio: nel file delle basi, oltre alla struttura presente nella base, è indicato anche il tempo di costruzione rimanente…

 

 

Conclusioni

L’Hex Editing è stato per me un modo per “sentirmi nerd”, dato che tra amici, parenti, e compagni di classe/scuola nessun’altro riuscì a dimenarsi in questo ambito.

Si è trattata di una parentesi divertente, di “ricerca e sviluppo”, oserei dire, e mi fece anche guadagnare facilmente qualche spicciolo (che da adolescenti non fa mai male).

Se qualcuno è interessato all’argomento, sono sempre a disposizione per scambio informazioni.

P.S.: in tempi relativamente più recenti (parliamo comunque già di giochi di dieci o quindici anni fa), purtroppo, i programmatori hanno iniziato a salvare i dati in modo diverso (numeri cifrati e roba varia), e la mia pigrizia mi ha portato a non sfruttare più questa via, ma a cercarmeli sul web…

Condividi questo Articolo:
Send to Kindle
Aree Tematiche Articolo:
Hacking & Cracking Retrogaming Videogames
Tag Articolo:
colonization
Cu Chulain
Eye of the Beholder
Hex Editing
Hex-Editor
102 LoadingMe Gusta
Loggati

56 Commenti

  1. Avatar di itomi itomi 19/7/2013 10:23

    :res:

  2. Avatar di Nicholas | Nè Nicholas | Nè 19/7/2013 10:29

    Bene ora voglio rigiocarmi EOB!
    Grazie eh, mi sono appena speso un capitale sui saldi di Steam e mo mi andrò a reinstallare EOB.
    Ma lo finirò senza cheattare!

    Mostra Spoiler ∨

  3. Avatar di ibbatta ibbatta 19/7/2013 10:33

    Ma che cagata… :o

    Mostra Spoiler ∨

  4. Avatar di drakazzone drakazzone 19/7/2013 10:53

    like a boss! :res:

  5. Avatar di FrancisDrake FrancisDrake 19/7/2013 11:04

    Ciao, anche per me è stato un po così con l’informatica…. Volevo farti una domanda: Cheat Engine è utile come memory reader per giochi online?

    • Avatar di FrancisDrake FrancisDrake 19/7/2013 11:18

      o comunque….. in generale, potresti darmi una dritta?

      • Avatar di RemtonJDulyak RemtonJDulyak 19/7/2013 12:40

        Personalmente, al di là degli abandonware, i cheat come ho scritto vado a cercarmeli sui siti vari, al giorno d’oggi (il top resta gamefaqs).
        In generale, poi, sugli online non voglio usare cheat.

  6. Avatar di kivek3d kivek3d 19/7/2013 11:09

    io facevo le modifiche ai file di salvataggio del primo Carmageddon e di Dune 2000…. Mettevo sempre i soldi a Palla!!! e poi sfondavo tutti qui cazzo di Atreides!!!

  7. Avatar di Code2 Code2 19/7/2013 11:12

    :res:

  8. Avatar di paxvinci | Né paxvinci | Né 19/7/2013 11:29

    Che cheattone schifoso! Sono quelli come te che hanno rovinato la vita ai videogamers! :res:
    Mostra Spoiler ∨

  9. Avatar di eagle1 eagle1 19/7/2013 11:47

    Figata :)

    Comunque ci sono ancora giochi nei quali .savegame ci puoi mettere le mani in HEX con grandissima soddisfazione :)

    • Avatar di RemtonJDulyak RemtonJDulyak 19/7/2013 12:41

      Vero, qualcuno ogni tanto arriva.
      Notevole la saga di Starfleet Command, dove il file dati con le statistiche delle navi è un “banale” CSV!!!
      :res: :res: :res: :res:

      • Avatar di alc0r alc0r 19/7/2013 14:39

        Beh non devi scavare tanto nel “passato”.
        I file di “caratteristiche” dei veicoli di GTA3 (pc) sono in csv… puoi fare macchine pesanti come carri armati e veloci come Ferrari senza tante difficolta’…

  10. avatar tipo 19/7/2013 12:03

    la “regola fissa dell’informatica nella gestione dei numeri interi relativi” è chiamata complemento a due ed è utile perchè consente di effettuare le operazioni di somma e sottrazione aritmentica con la sola operazione di addizione binara sulla rappresentazione dei numeri
    http://it.wikipedia.org/wiki/Complemento_a_due

    E’ interessante pensare che i processori non sappiano in realtà fare le sottrazioni.

    Per quanto riguarda la rappresentazione “al contrario” ecco maggiori info per chi fosse interessato:
    http://it.wikipedia.org/wiki/Ordine_dei_byte

    :D

  11. Avatar di Askariwa Askariwa 19/7/2013 12:14

    Anch’io modificavo proprio i save file di Eye of the Beholder usando il hex editor durante le sessioni di gioco nei laboratori dell’università :D . Bei tempi passati ! +1

  12. Avatar di maicolengel maicolengel 19/7/2013 12:49

    @dulyak, che dire: vaffanculo!!!
    Con un solo post mi mi hai fatto nell’ordine:
    A ) sentire vecchio, ma vecchio vecchio, io usavo il tuo stesso sistema per colonization e (se non erro) per il primo Sim City, ma a differenza tua il liceo per me è finito nel 1990.
    B ) scendere una lacrimuccia pensando a giochi ed amici di cui mi ero scordato totalmente
    C ) venire voglia di rigiocare a roba che nemmeno online è più possibile trovare (parliamo di avventure testuali della fine degli anni 80)
    Comunque sia meriti un :select: anche solo per la passeggiata sul viale dei ricordi!

    • Avatar di RemtonJDulyak RemtonJDulyak 19/7/2013 13:08

      @maicolengel, prendo il tuo “vaffanculo” per quello che è, un messaggio d’amore…
      :rofl: :D :rofl: :D :rofl: :D
      :res:

    • Avatar di lugg lugg 19/7/2013 13:13

      Quoto tutto Maicolengel :D a parte gli hex cheat, io li ho sempre usati pochissimo perche’ volevo vincere io :D
      E cmq @Maicolengel, si trovano, sia online che offline – sai quanti motori per Zork e per altra roba puoi scaricare? :)

  13. Avatar di Abibobe | Fuffaiter Abibobe | Fuffaiter 19/7/2013 12:51

    :fav: :fav: :fav: :fav: :fav: :fav: :fav: :fav: :fav:

  14. Avatar di sssank sssank 19/7/2013 13:19

    megusta :res:
    un amarcord mica da niente!
    Mostra Spoiler ∨

  15. Avatar di sauron sauron 19/7/2013 14:28

    :fav:

    Mi permetto di fare un paio di appunti.

    1) Non è corretto dire che in tutti i pc i dati vengono scritti al contrario: è una questione di progettazione del processore, se Little Endian come gli Intel o Big Endian come Motorola. In questo caso, si usa Little Endian in quanto è appunto scritto tutto al contrario, 2 byte alla volta. Vedi https://it.wikipedia.org/wiki/Ordine_dei_byte

    2)

    Questo -1 è per noi indicativo, in quanto ci spiega che il gioco gestisce i soldi come numeri interi relativi (quindi gli interi positivi e negativi).

    Ne consegue, applicando una regola fissa dell’informatica nella gestione dei numeri interi relativi, la prima metà dei valori possibili con quei byte rappresenta i numeri positivi, mentre la seconda rappresenta i numeri negativi.

    Ni. I numeri sono scritti su memoria in binario con il formato complemento a due, che rende MOLTO comoda l’addizione di numeri in binario. E’ solamente il MSB (il bit più significativo) a definire il segno del numero, non la metà! Ad esempio, 1111 in complemento a 2 equivale a -1, mentre 0111 vale 7, 1000 vale -8. Con 4 bit si possono infatti rappresentare i numeri da -8 a 7.
    Quindi, quello che hai fatto è mettere a zero il MSB e a 1 tutti i restanti bit. 7F infatti in binario è 0111 1111.

    Bell’articolo, peccato che adesso i salvataggi non sono più modificabili come una volta (mi ricordo di quelle cose in Caesar III…).

    • Avatar di Nicholas | Nè Nicholas | Nè 19/7/2013 14:45

      Quindi ora posso commentare i post dei grillini con
      SVEGLIA!!7F!

      :rofl: :D :rofl:

      • Avatar di sauron sauron 19/7/2013 14:54

        LOL :rofl: non credo in molti lo capiranno

        • Avatar di lugg lugg 19/7/2013 15:00

          capirai, SOLO quello? Prova con 7fff :)

          • Avatar di sauron sauron 19/7/2013 15:08

            Passi solo da 8 a 16 bit, ti daranno dell’antiquato perché loro sono a 64 bit e zip arwan jargon

            • Avatar di lugg lugg 19/7/2013 15:13

              fai prima allora a fare !!!-1!!! :D

              • Avatar di sauron sauron 19/7/2013 16:00

                Ma il “!” è già una negazione :D vale già come NOT

              • Avatar di lugg lugg 19/7/2013 16:14

                Diopende se ce ne metti un numero pari o dispari :D

    • Avatar di RemtonJDulyak RemtonJDulyak 19/7/2013 15:18

      Appunti correttissimi, ma due contro-osservazioni:

      1) Io parlo di giochi sviluppati per piattaforme Intel (8086, 8088, 80286, 80386, 80486, Pentium). In più il savegame è salvato così, non c’era bisogno di spiegare la differenza tra i tipi di processore (ci si dovrebbe fare un articolo completo)

      2) La spiegazione del “metà” è fatta per i non informatici, in modo da non bloccare l’usufrutto di questa para-guida ai soli addetti al mestiere (leggi: renderla più fruibile). A questo, infatti, mi riferisco con la mia nota finale:

      L’Hex Editing è stato per me un modo per “sentirmi nerd”, dato che tra amici, parenti, e compagni di classe/scuola nessun’altro riuscì a dimenarsi in questo ambito.

      Persino i compagni di scuola, nonostante fossero informatici quanto me, ebbero difficoltà (ed io ci guadagnai!).
      Per i non addetti al settore è più semplice da capire se gli dici “prima metà, seconda metà”.

      • Avatar di sauron sauron 19/7/2013 16:00

        Hai ragione, per la maggior parte del pubblico il livello di dettaglio era sufficiente, ho voluto semplicemente mettere due precisazioni in più ;)

        Ripeto, ottimo articolo :res:

        • Avatar di cloudlas cloudlas 19/7/2013 16:50

          e di questo ringrazio @remtonjdulyak!
          Detto come ha fatto Sauron non avrei capito una mazza… così invece ho capito pure io che ho fatto ing. meccanica dove di informatica c’era giusto giusto un abbozzo di C++

  16. Avatar di altervox altervox 19/7/2013 14:40

    :select: come se non ci fosse un domani! :res:

  17. Avatar di Zip Zip 19/7/2013 15:32

    quando un notepad ti fa sentire una divinità

  18. Avatar di popper popper 19/7/2013 16:28

    fichissimo…nostalgia vera!

  19. Avatar di albyok albyok 19/7/2013 17:08

    Bell’articolo.

  20. Avatar di PullS PullS 19/7/2013 17:14

    Vabbè non è roba morta con gli anni 90 eh :D Cheat Engine FTW tutt’ora, soprattutto nei game online.

  21. Avatar di Matt17 Matt17 19/7/2013 17:40

    Ci sono ancora dei giochi con i salvataggi in chiaro su cui poter fare questi magheggi :) mi ricordo che con GTA San Andreas si poteva settare addirittura in decimale la velocità e l’accellerazione delle auto.. fantastico :rofl: con i motorini se prendevo il salto giusto riuscivo a farmi in volo 3-4 volte il mondo di gioco da quanta accellerazione avevo :rofl: :D
    Comunque bell’articolo :res:

  22. Avatar di DeadSpawn™ DeadSpawn™ 19/7/2013 19:26

    :res:

  23. Avatar di esseci esseci 19/7/2013 20:02

    Fantastico! Io invece modificavo i savegames di simcity. La ragione? Soldi, sempre soldi…

  24. Avatar di fireandflames7 19/7/2013 20:09

    Ma ti diverti a fare articoli cosi oscenamente lunghi e pieni di immagini? non sono abituato a tutta questa chiarezza da blog specializzato :(

  25. Avatar di BloodBlade BloodBlade 21/7/2013 23:19

    Correvano gli anni ’90, gli anni in cui andavo alle superiori e studiavo informatica (“studiavo” per modo di dire, in realtà con quel poco che sapevo ero comunque avanti rispetto ai docenti).

    È così ancora oggi, fidati.

  26. Avatar di gpcoco gpcoco 24/7/2013 13:49

    Io ricordo per command & conquer red alert il mega truccone di aprire un file *.bin (se non erro) che pesava una badilata di mega, copiavi e incollavi su un nuovo file txt solo una parte di quel file interno di gioco e modificandolo potevi smanettare all’infinito con tutte le caratteristiche di gioco.
    Dio quanto rimpiango quei tempi

    AH!! ELI ELI LEMA’ SABACTHANI!

  27. Avatar di salva salva 24/7/2013 17:47

    :( ….vorrei esser nato dieci anni prima

    :res: sei un BOSS!

  28. Avatar di chiave chiave 26/7/2013 19:59

    io l’hex lo sfruttavo per modificare i css del mio vecchio cellulare xD

  29. avatar nicolura 17/1/2014 19:22

    Come quando al Polimi bloccavano SOF e ci toccava editare l’eseguibile con HEX per non farlo riconoscere dal server e giocare come banditi!!! Bei tempi!!!

Lascia un Commento

Devi essere loggato per inviare un commento.

LN Panic Mode - Premi "P" per tornare a Lega Nerd