--------------------------------------------------------------------

PSX hacking tutorial by +=|KaRMa|=+

Guida all'inserimento di files modificati in immagini BIN

--------------------------------------------------------------------

Leggendo sul forum Traduzioni mi sono accorto che il problema principale per chi si accinge a tradurre giochi per PSX e' quello di reinserire files o settori modificati nell'immagine .BIN. Questa guida nasce per questo scopo...

In questa guida vorrei prima di tutto distinguere tra immagini ISO e immagini BIN. A volte si tende a far confusione tra i 2 formati e a pensare che siano uguali ma in realta' non lo sono. Il formato ISO utilizza 2048 bytes x settore, mentre il formato BIN (utilizzato dal CDRWin) utilizza 2352 bytes x settore poiche'introduce, oltre ai 2048 bytes di dati presenti sul CD, ulteriori bytes che non fanno in realta' parte dei dati del gioco. Questi bytes creano qualche difficolta' se vogliamo reinserire un file modificato nel .BIN (a patto di conoscere l'offset) o se vogliamo estrarre della grafica TIM dal file BIN e il "ripper" non supporta il formato .BIN.

Questa guida ed i tools di cui vi parlero' vi saranno utili nei seguenti casi:

  • il testo nel gioco non e' in ASCII ma ha bisogno di una table e il Translhextion non vi carica tutta l'immagine del CD.
    E' ovvio quindi che dovete lavorare su files o su porzioni/settori di BIN con il Translhextion e poi reinserire il tutto nell'immagine.

  • avete modificato un file (grafica, audio, etc...) del CD e volete reinserirlo nel .BIN.

  • non si ha spazio sull'HD per contenere l'immagine .BIN del CD. Infatti la mia guida ed i miei tools sono nati PRINCIPALMENTE per questo scopo (al mio HD sono rimasti solo 100 miseri MB...).

  • I tools che utilizzeremo x questa guida sono:
  • WinHex (ma va bene anche un altro hex editor).

  • CD-R Diagnostic: e' un tool per analizzare il contenuto di un CDROM. Questo tool serve per ottenere il settore di partenza del file sul CD, settore che utilizzeremo per inserire il file modificato nell'immagine .BIN.

  • ppfinsert: e' un tool creato da me. Crea, dati in input il file da inserire ed un offset esadecimale calcolato in base al settore di partenza del file originale sul CD, la patch PPF che inserisce il file nell'immagine.BIN

  • ApplyPPF: e' un tool per applicare le patch PPF all'immagine .BIN.

  • Per questa guida prendero' in considerazione un semplice gioco con del testo in ASCII: Medal Of Honor Underground (versione PAL).

    Supponiamo di voler tradurre la seguente schermata tratta dalla prima missione del gioco.

    schermata non tradotta

    Incominciamo:

  • Copiate dal CD il file level.bin sull'HD.

  • Aprite il file con WinHex. Nelle immagini potete vedere il testo evidenziato con i relativi offsets:

    testo originale1
    testo originale2

    Traducete ora le due frasi in italiano:

    testo tradotto 1 testo tradotto 2

  • Salvate il file (se vi da' un errore il file potrebbe essere protetto in lettura).

  • Lanciate CD-R Diagnostic con il CD del gioco inserito e aspettate che finisca di fare lo scan del disco.
    A questo punto avete la lista dei files sul CD ognuno con il settore (block) di partenza sul CD.
    Annotatevi il settore (block) del file level.bin

    cdr diagnostic

  • Calcolate l'offset su CD del file in questo modo:

    offset = block x 2048

    Convertite poi l'offset in esadecimale (usate la calcolatrice di Winzozz...)

    In questo caso: 299 x 2048 = 612352 = 95800 in esadecimale

  • Andate nel prompt del DOS e lanciate ppfinsert in questo modo:

    ppfinsert level.bin mohu.ppf

    Inserite la descrizione della vostra patch e poi l'offset calcolato precedentemente: 95800.

  • A questo punto testate la patch mohu.ppf. Potete farlo in due modi.

    • (Metodo testato)
      Testate la PPF utilizzando un emulatore PSX che supporti i plugin PSEmuPro (io uso FPSE ^_^) ed il
      plugin "Pete's CDR ASPI/IOCTL 1.7". La caratteristica di questo plugin e' che applica "al volo" la patch
      PPF al CD senza dover patchare il file. BIN un po' come fa l'emulatore ZSNES con le patch IPS.

    • (Metodo NON testato)
      Applicate la PPF all'immagine .BIN in questo modo:

      applyppf mohu.ppf mohu.bin

      Il programma vi dira' che il file .BIN che state patchando non e' corretto ma questo e' dovuto al fatto che le
      PPF costruite utilizzando il tool ppfinsert non contengono le informazioni x il check dell'immagine
      (dimensione file .BIN e un blocco di 1K all'offset 0x9320 dell'immagine .BIN). Il fatto e' che, come detto in
      precedenza, il tool ppfinsert nasce dall'esigenza di creare patch PPF senza usare file .BIN.
      Continuate quindi l'applicazione della patch.

      Non mi assumo nessuna responsabilita' se il file .BIN ottenuto diventa inutilizzabile. Dipende tutto da come
      avete calcolato l'offset precedentemente. Create ua copia di backup se avete spazio a sufficienza sull'HD
      prima di applicare la patch. Testate il file .BIN con un emulatore PSX. Io vi consiglio di testare con il metodo
      precedente e poi, se tutto funziona, applicare la PPF al file BIN.

  • Lanciate il gioco e, se tutto e' andato bene, dovreste avere la seguente schermata:

    schermata tradotta
  • Aggiungo solo un'altra piccola cosa.
    Se dovete reinserire "parte" di un file l'offset che dovrete specificare nel tool ppfinsert, ovviamente, sara' dato da:

    offset = (block x 2048) + l'offset RELATIVO all'interno del file (in decimale)

    Convertite il valore in esadecimale e seguite le stesse operazioni illustrate nella guida.

    Questo e' tutto. E' la mia prima guida in assoluto, se notate degli errori fatemelo sapere...