martedì 21 aprile 2009

Vista 64bit e le applicazioni (giochi) a 32bit

Mi rivolgo alla pletora di nerd che come me hanno la potenza di un 64bit sotto il sedere e sono costretti a nerdare con software destinati ad usare solo 2Gb di memoria virtuale (32bit).

Cerchero’ di spiegarmi: tutte le applicazioni create su ambiente di sviluppo a 32bit hanno un range massimo di indirizzi allocabili di 2GB (2,147,483,648 bytes) quindi con un sistema a 64bit e 4Gb di ram installata, usando tali software ci si ritrova nella situazione di non sfruttare per niente tutta la potenza a disposizione. Il bello e’ che il 90% delle applicazioni (soprattutto quelle non professionali) sono programmate con registri a 32bit.

Si puo’ comunque rimediare! In che modo penserete voi?

Be’, bisogna innanzitutto avere visual c++ express 2008, che potete scaricare in trial per 30gg da QUA e, una volta installato, aprire la finestra di comandi sotto la voce “Tools” del programma stesso, andare nella cartella del game che volete editare, cercare il suo .exe e scrivere il seguente comando:

“editbin.exe /largeaddressaware xxxxx.exe”

Questo comando abilitera’ il flag Large_address_ware per dare l’accesso all’applicazione in 32bit ad un indirizzo di memoria piu’ grosso, per un massimo di 3GB (3,221,225,472 bytes). Non sara’ certo quel cambiamento radicale alla vostra vita che stavate aspettando ma con certi giochi parecchio esosi, 1GB in piu’ di memoria allocabile vuol dire moooolto.

Vien da se che prima di fare qualunque tipo di modifica conviene salvarsi l’.exe originale e non e’ comunque detto che il gioco/programma modificato poi funzioni.

Ho fatto ieri sera la prova con Demigod e per quanto parta regolarmente, se cerco di giocare in rete unendomi alla partita hostata da un altro, mi avvisa che il mio eseguibile e’ diverso da quello verso cui sto cercando di accedere e mi blocca. Credo che il check dell’.exe sia automatico per qualsiasi partita online in cui ci sia un server e un client. Ergo per tutti i giochi che fate online scordatevi l’editbin. Invece per Demigod single player penso non ci siano problemi, cosi’ come non ce ne sono per mirror’s edge (tutto e’ partito correttamente) e per fallout 3 (solo questi ho provato).

Non aspettatevi un boost di prestazioni, piu’ fps o caricamenti piu’ veloci (be’ forse quelli un po’ si), aspettatevi piuttosto un gioco piu’ “solido” e meno propenso ai crash, poi ovvio se il sistema che c’e’ sotto supporta bene questa modifica (ovvero ram veloce e hard disk veloce per lo swap) allora ci saranno anche miglioramenti a livello di “minor pesantezza” del game… e mi viene in mente fallout 3 durante le concitate fasi all’aperto.

Per controllare che nel vostro exe sia stato abilitato il large_address_aware usate questo comando (sempre dalla console di visual basic):

“dumpbin.exe /headers xxxxx.exe”

uscira’ un report dei vari headers con lo status on o off

Tutto quello che ho scritto vale solo per i 64bittari, gli altri possono sedersi comodamente sul loro divano e lucidarsi il fioretto :D

 

fonti: msdn wiki tomshw

Nessun commento: