Modificare la grafica RAW nei giochi PSX
15/09/2002 Dark Schneider 2002
Questo documento nasce per rendere disponibili a tutti le mie "scoperte" nel campo della grafica PSX. Non so se ad alcuni siano già note, se ho scoperto l'acqua calda, fatto sta che ricevo continue richieste di aiuto (anche dall'estero, in particolare da un neo traduttore brasiliano ... ) proprio in questa cosa. Tutto nacque quando decisi di tradurre Castlevania SOTN (la cui patch non dovrebbe essere troppo lontana) e trovai subito l'ostacolo delle lettere accentate. Ebbene, dopo decine di prove sono in grado di modificare qualunque (o quasi) oggetto grafico presente nel gioco, rendendomi la vita più facile.
Fatte le dovute presentazioni passiamo subito al sodo. Diversi giochi per PSX utilizzano il formato di memorizzazione RAW (=grezzo). Dico diversi perchè ho avuto esperienza con due di essi. Non conosco le specifiche di questo formato grafico, ma "a naso" posso dire che ad ogni pixel dell'immagine RAW è assegnato un codice esadecimale, che rappresenta il colore del pixel in questione. Nessuna compressione quindi. Probabilmente esiste un header con qualche informazione, ma non ne sono sicuro, dato che per aprire un disegno RAW si devono fornire dei parametri come l'altezza e la larghezza. Queste cose comunque le vedremo dopo.
Ricerca del file
La prima cosa da fare per modificare una qualunque immagine di un gioco è cercare l'immagine stessa! e vi assicuro che non è la cosa più semplice. In genere il nome dei file è molto indicativo, e comunque viene usato lo stesso schema per tutti i file contenenti grafica. Ad esempio, in Castlevania SOTN (CSOTN per gli amici, verrà usato come "cavia" per tutta la guida), i file che iniziano per "F_" contengono grafica (scritte, sprite, titoli ecc). Per trovare i file ci sono due metodi: con un editor esadecimale o con un programma di grafica (consiglio caldamente l'uso di JASC Paint Shop Pro 7.0 in quanto è migliore di Photoshop almeno per quanto riguarda i RAW). Il secondo lo capirete quando vado a spiegare come modificare un file, mentre il primo metodo è senza dubbio più rapido, in quanto non dovrete impostare alcun parametro per aprire il file. Ma come si può vedere con un editor esadecimale se il file contiene grafica, vi chiederete?? Dovete sapere che inizialmente non conoscevo il formato grafico di cui stiamo parlando, e l'unico sistema per modificare gli elementi grafici era proprio tramite il mio fedele editor...il procedimento comunque è molto semplice. Come programma consiglio HexEdit 2.20, non perchè sia particolarmente potente ma perchè permette di rimpicciolire il font con cui si visualizza il contenuto di un file. Probabilmente ne esistono altri che hanno questa opzione, ma io conosco soltanto questo :)
Procediamo quindi con un esempio, in cui aprirò il file F_TITLE1.BIN. In particolare, il file contiene le scritte 'PRESS START BUTTON', '(C) KONAMI...' e le piante in ombra in background. Guardate l'immagine a sinistra per capire di cosa sto parlando. Il titolo principale è in un altro file.
Apritelo con HexEdit e impostate queste opzioni dal menù Tools -> Options:
Una volta impostate e confermate le opzioni come nell'immagine a sinistra, premete il pulsante "A" con la frecciolina in giù nella toolbar, che serve a rimpicciolire il font, finchè non diventa grigio, cioè finchè non raggiungete le dimensioni minime del font. Trascinate la barra di scorrimento in basso tutta verso sinistra ...
Et voilà, ecco cosa appare:
Quelle scritte mi sembra di conoscerle, e a voi? :) Chiaramente, modificare un'immagine con questo sistema è da suicidio o quasi. E io all'inizio l'ho fatto, e infatti stavo per decidere il metodo più indolore per suicidarmi! scherzi a parte, mi sono chiesto "ma possibile che questo sia l'unico modo per modificare quei benedetti caratteri?!" e vi giuro, ho preso PSP e ho provato ad aprire quei file rinominandoli con tutte le estensioni grafiche che PSP può aprire (che sono un'infinità). Quindi .gif, .jpg, .bmp, ecc ecc ... finchè non sono giunto al RAW. Tagliando corto, sono arrivato a quello che sto per spiegarvi.
Modifica del file
Copiate il file dal CD al vostro hard disk, e rinominatelo in .raw. Quindi avviate PSP e aprite il file in questione. Vi apparirà una finestra intitolata "RAW options", in cui dovrete mettere i parametri che seguono:
- Width: 64
- Height: Dimensioni del file / 64 ('/' = diviso)
- Color Channels: Single channel (greyscale)
- Header Size: 0
- Interleaved
- Order RGB
In pratica i parametri da inserire sono i primi due, gli altri dovrebbero essere così di default. E' molto importante che l'altezza sia calcolata propriamente. Se uno dei parametri è errato (per esempio mettendo l'altezza a caso), una volta salvato il file le sue dimensioni saranno diverse (maggiori o minori) da quelle originali, il programma non vi dirà niente di niente, ma il gioco si bloccherà inevitabilmente (e vorrei ben vedere ... ).
Apriamo dunque F_TITLE1.BIN con PSP, impostando come larghezza 64 e come altezza 4096 (ossia 262.144 byte / 64). Otterremo un'immagine molto alta (4096 pixel per l'appunto) che dovrà essere zoomata almeno 2 o 3 volte per poter visualizzare qualcosa di concreto, mentre per poterla modificare si deve zoomare almeno 4 o 5 volte.
Ecco un piccolo estratto del file (ingrandito 4 volte). Vi ricorda niente? :D Queste non sono altro che le scritte che avete visto nello screenshot del titolo sopra e nell'editor esadecimale, soltanto in scale di grigio ...
Nonostante l'inconveniente del grigio (che poi inconveniente non è, per me) adesso avete la possibilità di spippolare sull'immagine quanto e come volete! E quindi diamo il via alla fantasia (...) e traduciamo queste brutte scritte in inglese in un più elegante italiano (mwahahahahaha che cavolate che sto scrivendo vi prego qualcuno mi fermi). Giungiamo così al risultato a destra :D
Salvate il file, reinseritelo nell'immagine del cd e provatelo, magari con un emulatore che supporti il formato BIN+CUE, altrimenti dovreste fare un cd per ogni prova che fate ... e tadaaaaa ecco il risultato:
Bene, mi pare di aver detto tutto, più o meno. Un'ultima cosa riguarda la scelta di utilizzare scale di grigio per aprire il file. Ho provato anche tutte le altre combinazioni in PSP e si ottengono i colori, ma una volta salvato il file le dimensioni sono diverse. Non chiedetemi perchè, comunque io mi trovo bene così.
Aggiornerò questa guida con eventuali scoperte future, spero che sia utile a qualcuno e soprattutto di non aver scritto sfondoni (sapete quando si ha una testa come la mia, potenziale fonte di studio per migliaia di psichiatri e/o psicologi ... ).
See you in space cowboy.
Dark Schneider (la famosa marca di elettrodomestici forniti dalla Mondial Casa, però Oscura).